Таблица 3.3
Таблица переменных программы
Имя переменной | Тип переменной | Примечание |
f | Text | файловые переменные |
x | Mas | массив чисел Xi |
y | Mas | массив чисел Yi |
i | Integer | текущий индекс |
S1 | Real | результат вычисления |
S2 | Real | результат вычисления |
Контрольный вариант представлен в табличном процессоре Excel, в разделе 2.
Схема алгоритма программы представлена на рисунке 11.
Рис.11. Схема алгоритма программы
Схема алгоритма подпрограммы представлена на рисунке 12:
входвыход
Рис.12. Схема алгоритма подпрограммы
Program Nikita; {программа расчета Sx, Sy}
uses crt; {очистка экрана}
type {раздел описания переменных}
mas=array[1..30] of real;
var
i,n:integer;
x,y:mas;
s1,s2:real;
f:text;
{тело процедуры}
Procedure ssxy(n:integer;p:mas;zcp:real; var sq:real); {выходные параметры}
var {раздел описания переменных процедуры}
s,scp:real;
i:integer;
Begin
s:=0.0; {задание начального значения s}
for i:=1 to 30 do {накопление суммы}
s:=sqr(p[i]-zcp)+s;
scp:=s; {вычисление по формуле
}sq:=sqrt(scp); { вычисление по формуле
}end;
begin {тело программы}
clrscr; {очистка экрана}
assign(f,'1.txt'); {соединение с файлом}
reset(f); {открытие файла для чтения}
for i:=1 to 30 do read(f,x[i]); {чтение массива Х из файла}
for i:=1 to 30 do read(f,y[i]); {чтение массива Y из файла}
close(f); {закрытие файла}
writeln('mas X'); {вывод массива Х}
writeln('---------------------------------');
for i:=1 to 30 do write(' ',x[i]:6:2);
writeln;
writeln('mas Y'); {вывод массива Y}
writeln('---------------------------------');
for i:=1 to 30 do write(' ',y[i]:6:2);
writeln;
ssxy(30,x,150.1,s1); {использование процедуры для расчета S1}
ssxy(30,y,58.6,s2); {использование процедуры для расчета S1}
writeln('S1= ',s1:6:2); {вывод S1}
writeln('S2= ',s2:6:2); {вывод S2}
readln;
end.
Для отладки программы воспользуемся исходными значениями, находящимися во входном файле 1.txt.
Рис.13. Фрагмент входного файла
3.6. Результаты выполнения программы и их анализ
Рис. 14 Фрагмент окна результатов
Сравнительный анализ результатов, полученных в Excel, с результатами, полученных при выполнении программы
Сделаем выводы по результатам полученных данных.
1. Анализ результатов расчетов показывает, что наилучшее уравнение регрессии получается при нахождении коэффициентов по методу наименьших квадратов. Но при очень большом количестве измерений гораздо легче составить корреляционную таблицу и вести расчёты по группированным данным, чем составлять большие циклы нахождения наименьшей суммы квадратов.
2. Сравнивая результаты, полученные при помощи MS Excel и Turbo Pascal, видим, что они совпадают. Это указывает на то, что вычисления верны и отсутствуют какие-либо ошибки.
1)Алексеев В.Е. Вычислительная техника и программирование. Практикум по программированию: Практ. пособие / В.Е. Алексеев, А.С. Ваулин, Г.Б. Петрова: Под. ред. А.В. Петрова. – М.: Высшая школа, 1991.
2)Протосеня А.Г. Малые ЭВМ в горно-экономических задачах: Практ. пособие / А.Г. Протосеня, Б.З. Безмозгин, Г.А. Прудинский. – Л.: Ленинградский горный институт, 1987.
3)Онушкина И.О. Правила оформления курсовых и квалификационных работ: Метод. пособие / И.О. Онушкина, П.Г. Талалай. – СПб: Санкт-Петербургский государственный институт (технический университет), 2005.