Курсовая работа: Разработка приложений на С Pascal Delphi
statement;
end;
Рассмотрим элементы этой конструкции. Во-первых, это три зарезервированных слова: case, of и end. Между case и of находится выражение expression, принимающее значение, которое, возможно, имеется в одном из списков значений, находящихся слева от двоеточий. Данное выражение называется селектором оператора case. Каждый оператор, идущий за двоеточием, отделяется от следующего списка значений точкой с запятой. Ветвь else, отвечающая всем не перечисленным значениям выражения expression, необязательна. При выполнении данного оператора вначале вычисляется значение селектора. Затем выбирается тот список значений, которому принадлежит полученное значение, и выполняется соответствующий оператор.
В списках значений оператора case допустимыми являются типы переменных, называемые скалярными, включая целые и исключая вещественные типы. Любое заданное значение селектора может входить в список значений неоднократно, но выполняться будет лишь первая подходящая ветвь. Если значение селектора отсутствует в списках значений, ни одна из альтернатив выполняться не будет. В этом случае выполняется ветвь else оператора case или (если эта ветвь отсутствует) следующий за case оператор.[4]
1.4 Алгоритм программы вычисления определённого интеграла
Блок-схема 1 Функция lpf1 Блок-схема 2 Функция lpf2
Блок-схема 4Функция lpintegra1
Блок-схема 5Функция lpintegralf2
Блок-схема 6. Функцияlp2
Блок-схема 8 Функция ppf1 Блок-схема 7 Функция ppf2
Блок-схема 6Функция ppintegralf1
Блок-схема 10 Функция ppintegralf2
Блок-схема 10 Функция pp1
Блок-схема 9Функция pp2
Блок-схема 11 Функция spf1 Блок-схема 13 Функция spf2
Блок-схема 14Функция spintegralf1
Блок-схема 12Функция spintegralf2
Блок-схема 15 Функция sp1
Блок-схема 16Функция sp2
Блок-схема 20 Функция trf1Блок-схема 17 Функция trf2
Блок-схема 18 Функция trintegralf1
Блок-схема 19 Функция trintegralf2
Блок-схема 22Функция tr1
Блок-схема 21 Функция tr2
Блок-схема 23 Главная функция
Блок-схема 24 Главная функция
Блок-схема 25 Главная функция
1.5 Тестирование программы
Для тестирования проведём интегрирование обеих функций всеми четырьмя методами и рассмотри интерфейс программы при интегрировании одной из функций одним из 4 методов.
При запуске программа задаёт вопрос пользователю, откуда взять обрабатываемые данные:
Рисунок 1 Запрос источника данных
Когда пользователь выберет необходимый источник, ему будет предложено выбрать способ интегрирования:
Рисунок 2 Запрос метода интегрирования
Когда выбран метод вычисления интеграла, выдаётся запрос о функции, которую следует проинтегрировать:
Рисунок 3 Запрос интегрируемой функции
Рисунок 4 Запрос на сохранение результатов в файл
После этого пользователю будет предложено сохранить результаты в файл. В самом конце работы программы будет задан вопрос, продолжить ли работу. Если пользователь согласится, то программа вернётся к началу – вопросу об источнике данных, если нет, то завершит свою работу.
Глава 2. Обработка результатов измерений
2.1 Теоретическая часть. Метод наименьших квадратов
Рассмотрим случай линейной функции одного аргумента. Пусть из опыта получены точки:
(1)
Требуется найти уравнение прямой y=ax+b (2), наилучшим образом согласующейся с опытными точками. Пусть мы нашли такую прямую. Обозначим через расстояние опытной точки от этой прямой (измеренное параллельно оси y). Из уравнения (2) следует, что
(3) Чем меньше числа
, тем лучше подобрана прямая. Характеристикой точности подбора может служить сумма квадратов этих расстояний
.(4). Покажем, как можно подобрать прямую (2) так, чтобы сумма квадратов S была минимальной. Из уравнений (3) и (4) получаем: S=
(5)
Условия минимума:
=0 (6)
(7)
Уравнения (6) и (7) можно записать в виде (8) и (9):
(8)
+n
(9)
Из уравнений (8) и (9) легко найти a и b по опытным значениям и
. Прямая (2), определяемая уравнениями (8) и (9), называется прямой, полученной по методу наименьших квадратов (этим названием подчеркивается то, что сумма квадратов S имеет минимум). Уравнения (8) и (9), из которых определяется прямая (2), называются нормальными уравнениями.
Можно указать простой и общий способ составления нормальных уравнений. Используя опытные точки (1) и уравнение (2), можно записать систему уравнений для a и b:
(10)
Умножим левую и правую части каждого из этих уравнений на коэффициент при первой неизвестной a (т.е. на , … ,
) и сложим полученные уравнения, в результате получится первое нормальное уравнение (8). Умножим левую и правую части каждого из этих уравнений на коэффициент при второй неизвестной b, т.е. на 1, и сложим полученные уравнения, в результате получится второе нормальное уравнение (9). Решая его, получим коэффициенты искомой прямой a, b.
Блок-схема 28 Функция fa0 Блок-схема 29 Функция fb
2.2 Алгоритм программы обработки данных
Блок-схема 31 Процедура TForm1.Help1Click
Блок-схема 32 Процедура TForm1.Exit1Click
Блок-схема 33 Процедура TForm1.Button1Click
Блок-схема34 Процедура TForm1.Print1Click
Блок-схема 35 Процедура TForm1.PrintSetup1Click
Блок-схема 36 Процедура TForm1.Button2Click
Блок-схема 37 Процедура TForm1.Button3Click
2.3 Тестирование программы
Блок-схема 38 Процедура TForm1.Save1Click
При запуске программы на экране появляется форма:
Рисунок 5 Форма запуска
При нажатии на кнопку Menu, пользователь получает доступ к главному меню программы:
Назначение его пунктов и общие принципы пользования программой описаны в окне, выпадающем при нажатии кнопки Help.
Рисунок 6 Главное меню
Рисунок 7 Окно Help
Если пользователь выберет количество результатов для обработки и способ их введения, то на экране появится таблица измерений. Для проведения расчетов следует нажать кнопку Рассчитать. Для получения наглядного представления данных следует нажать одну из кнопок y=f(x) или Yp=f1(x). Построенные графики были проверены в программе MicrosoftExcel 2007.
Рисунок 8 Таблица измерений
Рисунок 9 Сравнение графиков у=f(x)
Рисунок 10 Сравнение графиков Yp=f1(x)
После завершения расчетов программа позволяет сохранить результаты в файл, используя соответствующую кнопку главного меню.
Листинги программ
Вычисление интегралов С
(главная функция main)
void main ()
{/*opisanie peremennyh*/
float x,a,b,h,y,integral,eps;
int n;
char vop,vop1;
LevPr lp;