Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Информ 1.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
139 Кб
Скачать
☆

3. Порядок выполнения домашней работы «Структурные типы данных: массивы»

Этап 1. Постановка задачи 1. Разработать алгоритм, спецификацию, тестовый пример и программу обработки статистических данных: вычисления среднего арифметического, дисперсии и стандартного отклонения для числового ряда , состоящего из n(=12) членов, где массив а: ежемесячные данные за 2004 год о реально отработанных в России часах в расчете на одного занятого человека.

Этап 2. Анализ поставленной задачи. Из теории математики и математической статистики определяем необходимые для вычисления формулы: сумма ряда ; среднее арифметическое ; дисперсия , где .

Сумма элементов массива S определяется методом накопления. Количество суммируемых чисел известно, поэтому используем цикл с заданным количеством повторений. При каждом проходе к сумме будем добавлять значение , где i будет изменяться от 1 до n(=12). Перед началом цикла необходимо переменную суммы обнулить. Затем определим значение среднего арифметического. Сумма U определяется аналогично сумме S.

В последнюю очередь вычисляем значение дисперсии.

Этап 3. Проектирование и определение спецификаций. В данных методических указаниях предлагается производить расчет тестовых (контрольных) примеров в EXCEL.

На рис. 5 приведена схема алгоритма. Результаты расчета тестового примера занесем в табл. 1. Спецификация к алгоритму представлена в табл. 2.

Рис. 5. Блок – схема алгоритма решения задачи 1.

Таблица 1.

Тестовые примеры для задачи 1.

Н№ теста

n

Массив а

Результат

Результат

U

Дисперсия

g2

1

12

120; 130; 140; 150; 160; 123; 145; 156; 167; 144; 122; 177

144,5

3765

313,75

Таблица 2.

Спецификация к алгоритму на рис. 5.

№

Наименование

Обозначение в алгоритме

Обозначение в программе

Статус переменной

Тип переменной

1

Количество элементов массива

n

N

Входная

Целый

2

Параметр цикла

i

i

Расчетная

Целый

3

Значение суммы

S

S

Выходная

Не целый

4

Значение суммы

U

U

Выходная

Не целый

5

Среднее арифметическое

a_1

Выходная

Не целый

6

Массив

а

а

Входная

Не целый

7

Дисперсия

g2

Выходная

Не целый

Этап 4. Реализация. Разрабатываем программу:

Program Massiv; Uses Crt;

Var a:array[1..12] of Real;

U, S, a_1, g2: Real;

i, n: Byte;

Begin

ClrScr;

Writeln('Введите n:'); Readln(n);

Writeln('Введите массив a:'); с м

S:=0;

For i:=1 to n do

Begin

Read(a[i]);

S:=S+a[i];

End;

Readln;

a_1:=S/n;

Writeln('Среднее арифметическое а_1=',a_1:4:1);

U:=0;

For i:=1 to n do

U:=U+Sqr(a[i]-a_1);

g2:=U/n;

Writeln('U=',U:5:2);

Writeln('Дисперсия g2=',g2:5:2);

Readln;

End.

Результат работы программы:

Введите n:

12

Введите массив a:

120 130 140 150 160 123 145 156 167 144 122 177

Среднее арифметическое а_1=144.5

U=3765.00

Дисперсия g2=313.75

Сверяем полученные результаты с тестовым примером.

Вывод: Результаты работы программы на Паскале совпадают со значениями, рассчитанными в среде MATHCAD.