А теперь посмотрим, как можно на Паскале запрограммировать алгоритм вычисления среднегодовой температуры.
Для этого сначала познакомимся с правилами описания массивов. Заметим, что в данном разделе учебника мы ограничиваемся только работой с одномерными массивами (линейными таблицами).
Общая форма описания одномерного массива на Паскале такая:
var <имя массива>: array [<нижняя граница индекса .. верхняя граница индекса>] of <тип массива>
Слово "array" буквально переводится как "массив". Границы индекса могут быть любыми целыми числами. Важно, чтобы нижняя граница была меньше верхней границы. Описание массива температур будет следующим:
var T: array [1..12] of real;
Рассмотрим полный текст программы на Паскале.
В этой программе дважды использован оператор цикла с параметром. Он имеет следующий формат:
for <параметр цикла> := <начальное значение параметра> to <конечное значение параметра> do <тело цикла>;
Если параметр цикла - целая переменная, то ее значение будет возрастать через единицу. Существует другой вариант этого оператора, в котором вместо слова to записывается downto. В этом случае значение параметра цикла убывает через единицу. Следовательно, начальное значение в этом случае должно быть больше конечного.
Так же как и для оператора цикла while, здесь тело цикла может быть либо простым оператором, либо составным. В первом случае тело цикла заканчивается на ближайшей точке с запятой. В нашем примере - это цикл суммирования. Во втором случае тело цикла заключается между словами begin и end (цикл ввода).
В программе присутствует еще один новый для вас элемент Паскаля: формат вывода. Это числа с двоеточиями, стоящие после переменных в операторе вывода write:
write( 'Т [',I:2,']=');
В этой записи I:2 обозначает, что значение переменной I выводится как целое число в две символьные позиции на экране. Для однозначного числа в первой позиции будет помещен пробел, например: _5.
В операторе вывода результата также используется формат: Tsred: 6:2. Значение переменной Tsred выводится как смешанное число в 6 позиций, две последние из которых занимает дробная часть. В третьей справа позиции - точка. Лишние позиции для целой части занимаются пробелами. Например: _34.25.
Результат выполнения программы Temperature будет выведен на экран в следующем виде:
Среднегодовая температура =2.56 градусов.
А теперь расширим условие задачи. Требуется для каждого месяца определить отклонение его средней температуры от среднегодовой величины.
Вернемся к электронной таблице на рис. 3.13. Добавим к ней еще один столбец С, в котором будут вычисляться искомые отклонения. В ячейку С2 занесем формулу =В2-$В$14. По этой формуле вычислится отклонение январской температуры от среднегодовой. Скопировав эту формулу в ячейки СЗ:С13, получим все остальные величины. Смысл "замораживания" адреса В14 вам должен быть понятен. Результаты приведены в таблице:
Здесь вычисление значений массива Dt и вывод их на экран совмещены в одном цикле. Результат работы программы будет следующим:
Dt[1]= -23,56
Dt[2]= -20,56
Dt[3]= -10,06
…
Dt[12]= -20,56
Как и следовало ожидать, это те же самые числа, что получены в электронной таблице.
Простейший формат описания одномерного массива:
var<имя массива>: array [<нижняя граница индекса .. верхняя граница индекса>] of <тип массива> 1. Как можно описать на Паскале массив, в котором будут храниться значения численности населения Москвы к концу каждого года XX века?
В простейшем случае оператор цикла с параметром записываетсятак:
for<параметр цикла>:=<начальное значение параметра> to <конечное значение параметра>
do<тело цикла>
В формате вывода указывется количество позиций на экране для вывода значений.Для вещественного числа указывается также количество цифр в дробной части.Вопросы и задания
2. Вы приобрели котенка. Каждый вечер вы определяете его вес с помощью весов. Как можно описать на Паскале массив, в котором будут храниться значения
веса котенка в течение месяца (например, мая)?
3. Напишите фрагмент программы на Паскале ввода исходных данных для массивов, определенных в заданиях 1 и 2.
4. Введите в компьютер программу Temperature, добавив к ней обработку массива Dt. Выполните программу, получите результаты. Сравните их с приведенными в
параграфе.
5. Составьте программы на Паскале по алгоритмам из заданий 3, 4 предыдущего параграфа. Выполните эти программы на компьютере.
Тест для самопроверки