Цикл с параметром на Паскале

Рассмотрим полный текст программы на Паскале.

ProgramTemperature;

varТ: array[1..12] ofreal;

I: integer; Tsred: real;

Begin

{Цикл ввода}

forI:=lto12do

Begin

write('Tt',1:2, '] = ');

readln(T[I])

end;

{Цикл суммирования}

Tsred:=0;

forI:=lto12 do

Tsred:=Tsred+T[I];

{Вычисление среднего}

Tsred:=Tsred/12;

writeln('Среднегодовая температура = ', Tsred:6:2,' градусов')

End.

В этой программе дважды использован оператор цикла с параметром. В простейшем случае формат этого оператора следующий:

for<параметр цикла>:=<начальное значение параметра>

to<конечное значение параметра>

do<тело цикла>

Значение параметра цикла увеличивается на единицу при каждом повторении тела цикла. Существует другой вариант этого оператора, в котором вместо слова toзаписывается down to.В этом случае значение параметра цикла убывает на единицу, следовательно, начальное значение должно быть больше конечного.

Так же как и для оператора цикла while,здесь тело цикла может быть либо простым оператором, либо составным. В первом случае тело цикла заканчивается на ближайшей точке с запятой. В нашем примере — это цикл суммирования. Во втором случае тело цикла заключается между словами beginи end(цикл ввода).

Форматы вывода

В программе присутствует еще один новый для вас элемент Паскаля: формат вывода. Это числа с двоеточиями, стоящие после переменных в операторе вывода write:

write ('Т[',1:2,'] = ' )

В этой записи 1:2 обозначает, что значение переменной I выводится как целое число в две символьные позиции на экране. Для однозначного числа в первой позиции будет помещен пробел, например: _5.

В операторе вывода результата также используется формат вывода: Tsred: 6:2. Значение переменной Tsred выводится как смешанное число в 6 позиций, две последние из которых занимает дробная часть. В третьей справа позиции — точка. Лишние позиции для целой части занимаются пробелами. Например: 34.25.

Результат выполнения программы Temperature будет выведен на экран в следующем виде:

Среднегодовая температура = 2.56 градусов

Программа с двумя массивами

А теперь расширим условие задачи. Требуется для каждого месяца определить отклонение его средней температуры от среднегодовой величины.

Вернемся к электронной таблице на рис. 2.9. Добавим к ней еще один столбец С, в котором будут вычисляться искомые отклонения. В ячейку С2 занесем формулу =В2-$В$14. По этой формуле вычис- лится отклонение январской температуры от среднегодовой. Скопировав эту формулу в ячейки C3:C13, получим все остальные величины. Смысл «замораживания» адреса В14 вам должен быть понятен. Результаты приведены в таблице на рис. 2.10.

Реализуем вычисление отклонений в программе на Паскале. Очевидно, в программе должен появиться еще один массив для размещения в нем таблицы отклонений. Дадим этому массиву имя Dt. Как и массив температур, он состоит из 12 чисел: Dt [1], Dt [2], Dt [3],..., Dt [12].

К предыдущей программе надо добавить описание массива Dt в следующем виде:

var Dt: array[1..12] of real;

Значение каждого элемента массива вычисляется как разность между средней температурой в соответствующем месяце и среднегодовой температурой. Например, для января Dt[l] :=Т [1]-Tsred. Такие вычисления повторяются в цикле 12 раз. Значения массива Dt выводятся на экран.

Цикл с параметром на Паскале - student2.ru

Запишем на Паскале фрагмент, который надо вставить в конец предыдущей программы, чтобы решить поставленную задачу.

for I:=l to 12 do

Begin

Dt [I] :=T[I]-Tsred;

writeln ( ' Dt [' ,1: 2, ' ] = ',Dt[I]:6:2)

End

Здесь вычисление значений массива Dt и вывод их на экран совмещены в одном цикле. Результат работы программы будет следующим:

Dt [ 1]= -23.56

Dt[ 2]= -20.56

Dt[ 3]= -10.06

Dt [ 12]= -20.56

Как и следовало ожидать, это те же самые числа, что получены в электронной таблице.

Коротко о главном

Простейший формат описания одномерного массива:

var <имя массива>: array [<нижняя граница индекса .. верхняя граница индекса>] of<тип массива>

В простейшем случае оператор цикла с параметром записывается так:

for <параметр цикла>:=<начальное значение параметра>

to <конечное значение параметра>

do <тело цикла>

В формате вывода указывается количество позиций на экране для вывода значения. Для вещественного числа указывается также количество цифр в дробной части.

В программе на Паскале должен быть описан каждый используемый в ней массив.

Цикл с параметром на Паскале - student2.ru Вопросы и задания

Цикл с параметром на Паскале - student2.ru 1. Как можно описать на Паскале массив, в котором будут храниться значения численности населения Москвы к концу каждого года XX века?

Цикл с параметром на Паскале - student2.ru 2. Вы приобрели котенка. Каждый вечер вы определяете его вес с помощью весов. Как можно описать на Паскале массив, в котором будут храниться значения веса котенка в течение месяца (например, мая)?

Цикл с параметром на Паскале - student2.ru 3. Напишите фрагмент программы на Паскале ввода исходных данных для массивов, определенных в заданиях 1 и 2.

Цикл с параметром на Паскале - student2.ru 4. Введите в компьютер программу Temperature, добавив к ней обработку массива Dt. Выполните программу, получите результаты. Сравните их с приведенными в параграфе.

Цикл с параметром на Паскале - student2.ru 5. Составьте программы на Паскале по алгоритмам из заданий 3, 4 предыдущего параграфа. Выполните эти программы на компьютере.

Цикл с параметром на Паскале - student2.ru ЕК ЦОР: часть 2, глава 6, § 42. ЦОР № 3, 8.

§19

Наши рекомендации