Весь код, скрины и блок-схемы.
Выводы.
В ходе выполнения данной лабораторной работы были получены основные навыки
численного решения обыкновенных дифференциальных уравнений с помощью метода
Эйлера и метода Рюнге-Кутты. Программа была разработана с использованием навыков
модульного программирования. Результаты работы алгоритмов были записаны в файл,
где и производился их анализ.
По данным, видно , что метод Эйлера менее точный, чем метод Рунге-Кутты. ...
В лабе весь код и скрины. Проверьте значения, в лэти редко что меняют :)
В ходе выполнения данной лабораторной работы была написана
программа для численного решения нелинейного алгебраического уравнения
вида y = ax3 + bx2 +cx +d методом половинного деления и методом ложного
положения. Оба метода, используемых в работе, являются шаговыми методами.
Сравнивая эти два метода, видно, что они имеют разное время
выполнения. Так, решая уравнение методом половинного деления, корень был
найден за 11 шагов, в то время, как в методе ложного положенния, корень был
найден за 5 шагов. Также видно, что для данной задачи, метод ложного
положения оказался немного точнее, чем метод половинного деления.
...
Внутри код программы и графики.
Вывод: В ходе работы мы написали программу для расчета двух функций и
построения графиков, а также обеспечили вывод графиков функций в разных
графических иконах, подписав оси.
ИСХОДНЫЕ ДАННЫЕ:
f(x)=3/5*ln( |sin^2(x)| + 1)*tan(x^3).
Ф(w)=Ф((s^2 +12s +1) / (s^4 - s^3 + 2s^2 +6)) s=jw
...
break;
case '2':return 1;
}
}
}
// Функция ищет символ Symb в массиве M и возвращает его индекс, ес-ли символ не найден, функция вернет размер массива
int SymbolSearch(char M[][MAX_SYMB_LENGHT], int Size, char *Symb)
{
int i = 0;
while (i< Size)
{
if (strcmp(M[i], Symb) == 0) break;
i++;
}
return i;
}
// Функция вводит символы разделенные запятыми из строки Str в мас-сив M, возвращает количество веденных символов
int EnterScores(char M[][MAX_SYMB_LENGHT], int max)
{
char Str[MAX_STR_LENGHT];
char *pNextToken = NULL;
int i = 0;
printf("Введите через запятую множество:\n>> ");
gets_s(Str, MAX_STR_LENGHT-1);
char * pToken = strtok_s(Str, ", ", &pNextToken;);
while (pToken)
{
strcpy_s(M[i], pToken);
i++;
if(i == max) break;
pToken = strtok_s('\0', ", ", &pNextToken;);
}
return i;
}
// Ввод множества конечных состояний
...
Основные переменные программы:
VT – терминальные символы.
VN – нетерминальные символы.
Edit4.Text – целевой символ.
P – правила вывода.
Len1 – минимальная длина выводимых цепочек.
Len2 – максимальная длина выводимых цепочек.
Edit5.Text – символ пустой строки.
Основные блоки программы:
Inp – ввод из полей формы терминальных и нетерминальных символов. Дублирующиеся в пределах одного множества символы игнорируются.
InpG – ввод из окна формы правил вывода.
LG – рекурсивная процедура левостороннего вывода цепочек в заданном диапазоне длин.
RG – рекурсивная процедура правостороннего вывода цепочек в заданном диапазоне длин.
Button1Click – запуск левостороннего вывода цепочек по нажатию кнопки «Левосторонний вывод»;
Button2Click – запуск правостороннего вывода цепочек по нажатию кнопки «Правосторонний вывод».
...