это быстро и бесплатно
Оформите заказ сейчас и получите скидку 100 руб.!
ID (номер) заказа
4050506
Ознакомительный фрагмент работы:
ВВЕДЕНИЕ. 3
1.ОПИСАНИЕ РАБОТЫ 4
2. АНАЛИЗ ЗАДАЧИ И ВЫБОР МЕТОДА РЕШЕНИЯ 5
2.1 РАСЧЕТНЫЕ ВЫРАЖЕНИЯ 5
Задание передаточной характеристики в виде графика. 5
2.2 КОНТРОЛЬНЫЙ РАСЧЕТ 6
2.3 ГРАФИКИ, ПОЛУЧЕННЫЕ С ПОМОЩЬЮ ПРОГРАММЫ8
2.4 СХЕМА ОБОБЩЕННОГО АЛГОРИТМА12
2.5 ТАБЛИЦА ИДЕНТИФИКАТОРОВ13
2.6 ТАБЛИЦА ПОДКЛЮЧЕННЫХ БИБЛИОТЕК14
2.7 ТАБЛИЦА МЕТОДОВ ПРОГРАММЫ15
3.РАЗРАБОТКА АЛГОРИТМОВ16
ЗАКЛЮЧЕНИЕ 18
СПИСОК ИСПОЛЬЗУЕМОЙ ЛИТЕРАТУРЫ 18
КОД ПРОГРАММЫ 19
ВВЕДЕНИЕ.Курсовая работа посвящена решению задач машинного анализа электрических цепей. Итогом курсовой работы являются программа на языке С++ (Си плюс плюс) с пояснительной запиской. Для заданного варианта электрической цепи и входного сигнала программа должна уметь: А) рассчитывать значения входного сигнала, Б) рассчитывать значения выходного сигнала, Цель работы: улучшение своих навыков в программирование на языке C++, а также реализация программы для анализа поставленной задачи.ОПИСАНИЕ РАБОТЫЗадание передаточной характеристики в виде графика (Код 23).Рисунок 1 – график зависимости напряжения выходного сигнала от напряжения входного сигналаРабочий набор:U1=20 В;U2=40 В; a=0,1 1ВВыходное напряжение имеет квадратичную зависимость.Задание входного сигнала в виде системы (Код 23).Uвxt= U1-e-at, при tнач≤t≤t1U1-e-at1e-b(t-t1), при t1U1Выходное напряжение имеет квадратичную зависимость.Задание входного сигнала в виде графика.Выражение: Uвxt= U1-e-at, при tнач≤t≤t1U1-e-at1e-b(t-t1), при t1 eps) вызов функции form_t для n точек вызов функции form_Uvx для n точек вызов функции form_Uvix для n точек par1=вызов функции parametr для n точек p=fabs(par-par1)/par1 cout<<”n=”<#include #include #include #include using namespace std;void zastavka() // распечатывается файл Name.txt с именем и фамилией{string x;ifstream info;info.open("Name.txt");while (getline(info, x))cout << x << endl;info.close();}void Menu() { // функция вывода текста менюcout << endl << "" << "Menu" << endl;cout << "1. Вывод таблицы для n точек" << endl;cout << "2. Расчет погрешности для входа" << endl;cout << "3. Расчет погрешности для выхода" << endl;cout << "4. Сохранить результаты в файле .txt" << endl;cout << "5. Закрыть консоль" << endl;}void Time(int n, double* t) { // Формирование массива времени tdouble tn = 0, tk = 40; // Начальное и конечное времяdouble dt = (tk - tn) / (n - 1); // Расчет шагаfor (int i = 0; i < n; i++)t[i] = tn + i * dt; // расчет каждого элемента массива времени}void inputU(int n, double* t, double* Uvx) { // Формирование массива Uvxdouble a = 0.25, b = 0.75, tn = 0, U = 75, tk = 40, t1 = 20; // Начальные данныеfor (int i = 0; i < n; i++)if (tn <= t[i] && t[i] <= t1) // Если tn <= t <= t1Uvx[i] = U * (1 - exp(-a * t[i])); // происходит данное действиеelse if (t1 < t[i] && t[i] <= tk)Uvx[i] = U * (1 - exp(-a * t1)) * exp(-b * (t[i] - t1)); // иначе происходит данное}void outputU(int n, double* Uvx, double* Uvix) // Формирование массива Uvix{double U1 = 20, U2 = 40, a = 0.1; // Начальные данныеfor (int i = 0; i < n; i++)if (Uvx[i] <= U1)Uvix[i] = a * pow(Uvx[i], 2);elseUvix[i] = U2;}void table(int n, double* t, double* Uvx, double* Uvix) // Вывод данных в виде таблицы{cout << "№tUvxUvix" << endl;for (int i = 0; i < n; i++) // Вывод данных в виде таблицыprintf("\n % 4d % 8.3f % 8.3f % 8.3f", i, t[i], Uvx[i], Uvix[i]);}int tablefile(int n, double* t, double* Uvx, double* Uvix, double x, double y) //записывает данные в файл{float cdt;string path = "myFile.txt";ofstream fout;fout.open(path);if (!fout.is_open()){cout << "Error 404";}else {fout << "№tUvxUvix" << endl;for (int i = 0; i < n; i++){fout << i << "" << t[i] << "" << Uvx[i] << "" << Uvix[i] << endl;}fout << endl << "tok1: "; //вывод параметровfout << x << endl;fout << endl << "tok2: ";fout << y << endl;}fout.close();return 0;}double Indpulse(int n, double* U) { // Нахождение длительности переднего фронта импульса входного сигналаdouble Umax = U[0], // максимальное значение массива отсчетов сигналаdlit = 0; // длительность импульсаdouble tn = 0, tk = 40; // начальное и конечное времяdouble dt = (tk - tn) / (n - 1); // рассчет шагаfor (int i = 0; i < n; i++)if (U[i] > Umax)Umax = U[i]; // находим максимальное значение в массивеdouble U1 = 0.9 * Umax,U2 = 0.1 * Umax;for (int i = 0; i < n; i++)if (U[i] < U1 && U[i] > U2 && U[i - 1] < U[i])dlit += dt;return dlit;}double Outdpulse(int n, double* U) { // Нахождение длительности заднего фронта импульса выходного сигналаdouble Umax = U[0], // максимальное значение массива отсчетов сигналаdlit = 0; // длительность импульсаdouble tn = 0, tk = 40; // начальное и конечное времяdouble dt = (tk - tn) / (n - 1); // рассчет шагаfor (int i = 0; i < n; i++)if (U[i] > Umax)Umax = U[i]; // находим максимальное значение в массивеdouble U1 = 0.9 * Umax,U2 = 0.1 * Umax;for (int i = 0; i < n; i++)if (U[i] < U1 && U[i] > U2 && U[i - 1] > U[i])dlit += dt;return dlit;}void inaccuracyI() {double p = 1, // Текущая погрешностьeps = 0.01, // Заданная погрешностьpar = 100000, // начальное значение параметра (очень большое число)parl = 0;int n = 11;double* pt, *pUvx;pt = new double[n];pUvx = new double[n]; // инициализация динамических массивов с заданным количеством точекwhile (p > eps){pt = new double[n];pUvx = new double[n]; // инициализация динамических массивов с заданным количеством точекTime(n, pt);inputU(n, pt, pUvx);parl = Indpulse(n, pUvx);p = fabs(par - parl) / parl;cout << "n = " << n << " Параметр = " << parl << " Погрешность = " << p << endl << endl;par = parl;n *= 2;}delete[] pt;delete[] pUvx;}void inaccuracyO() {double p = 1, // Текущая погрешностьeps = 0.01, // Заданная погрешностьpar = 100000, // начальное значение параметра (очень большое число)parl = 0;int n = 11, pi = 0;double* pt, *pUvx, *pUvix;pt = new double[n];pUvx = new double[n]; // инициализация динамических массивов с заданным количеством точекpUvix = new double[n];while (p > eps){pt = new double[n];pUvx = new double[n]; // инициализация динамических массивов с заданным количеством точекpUvix = new double[n];Time(n, pt);inputU(n, pt, pUvx);outputU(n, pUvx, pUvix);parl = Outdpulse(n, pUvix);p = fabs(par - parl) / parl;cout << "n = " << n << " Параметр = " << parl << " Погрешность = " << p << endl << endl;par = parl;n *= 2;}delete[] pt;delete[] pUvix;delete[] pUvx;}int main(){setlocale(LC_ALL, "RUS");double* t, *Uvx, *Uvix; int n = -1, ns = 1;double cvix = -1, cvx = -1, x = 0, y = 0;double dt = 0;zastavka();while (ns < 5) {Menu();cin >> ns;switch (ns){case 1:cout << "Введите необходимое количество точек: ";cin >> n;t = new double[n];Uvx = new double[n]; // инициализация динамических массивов с заданным количеством точекUvix = new double[n];Time(n, t); // формирование массива tinputU(n, t, Uvx); // формирование массива UvxoutputU(n, Uvx, Uvix); // формирование массива Uvixtable(n, t, Uvx, Uvix); // Вывод всех массивовcout << endl << "inputU: ";cout << Indpulse(n, Uvx) << endl;cout << endl << "outputU: ";cout << Outdpulse(n, Uvix) << endl;delete[] t;delete[] Uvix;delete[] Uvx;break;case 2:inaccuracyI(); //погр. входbreak;case 3:inaccuracyO(); //погр. выходbreak;case 4:cout << "Введите необходимое количество точек: ";// Ввод необходимого количества точекcin >> n;t = new double[n];Uvx = new double[n]; // инициализация динамических массивов с заданным количеством точекUvix = new double[n];Time(n, t); // формирование массива tinputU(n, t, Uvx); // формирование массива UvxoutputU(n, Uvx, Uvix); // формирование массива Uvixx = Indpulse(n, Uvx);y = Outdpulse(n, Uvix);tablefile(n, t, Uvx, Uvix, x, y);delete[] t;delete[] Uvix;delete[] Uvx;break;default:break;}}return 0;}
Сделайте индивидуальный заказ на нашем сервисе. Там эксперты помогают с учебой без посредников
Разместите задание – сайт бесплатно отправит его исполнителя, и они предложат цены.
Цены ниже, чем в агентствах и у конкурентов
Вы работаете с экспертами напрямую. Поэтому стоимость работ приятно вас удивит
Бесплатные доработки и консультации
Исполнитель внесет нужные правки в работу по вашему требованию без доплат. Корректировки в максимально короткие сроки
Гарантируем возврат
Если работа вас не устроит – мы вернем 100% суммы заказа
Техподдержка 7 дней в неделю
Наши менеджеры всегда на связи и оперативно решат любую проблему
Строгий отбор экспертов
К работе допускаются только проверенные специалисты с высшим образованием. Проверяем диплом на оценки «хорошо» и «отлично»
Работы выполняют эксперты в своём деле. Они ценят свою репутацию, поэтому результат выполненной работы гарантирован
Ежедневно эксперты готовы работать над 1000 заданиями. Контролируйте процесс написания работы в режиме онлайн
Согласно материалам изложенных в файле (текстовый материал
Лабораторная, Экология и природопользование
Срок сдачи к 30 апр.
Требуется курсовой проект по предмету Технология перегрузочных...
Курсовая, Технология перегрузочных процессов в портах и на транспортных терминалах
Срок сдачи к 26 апр.
Решить 5 задач по МОР с условием, мат моделью, и решением в екселе
Решение задач, Методы оптимальных решений
Срок сдачи к 25 апр.
Бюджетная политика в области управления расходами муниципального бюджета (на примере бюджета Петрозаводского городского округа)
Диплом, Экономика / Государственные и муниципальные финансы
Срок сдачи к 10 мая
Пересчитать в образце по своим цыфрам самостоятельную работу
Самостоятельная работа, производство исходного сырья
Срок сдачи к 30 апр.
Система пособий по социальному обеспечению в российском праве...
Курсовая, Обеспечение реализации прав граждан в сфере пенсионного обеспечения и социальной защиты
Срок сдачи к 30 апр.
Добрый день, я бы хотел уточнить работаете ли вы в следующем режиме
Другое, Телевидение и режиссура
Срок сдачи к 7 мая
Вы являетесь адвокатом. К Вам за юридической помощью обратился ...
Другое, Адвокатура
Срок сдачи к 25 апр.
Заполните форму и узнайте цену на индивидуальную работу!