Цикл с параметром на Паскале — КиберПедия 

Историки об Елизавете Петровне: Елизавета попала между двумя встречными культурными течениями, воспитывалась среди новых европейских веяний и преданий...

История создания датчика движения: Первый прибор для обнаружения движения был изобретен немецким физиком Генрихом Герцем...

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

2017-09-30 659
Цикл с параметром на Паскале 0.00 из 5.00 0 оценок
Заказать работу

 

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

Program Temperature;

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

I: integer; Tsred: real;

Begin

{Цикл ввода}

for I:=l to 12 do

Begin

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

readln(T[I])

end;

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

Tsred:=0;

for I:=l to 12 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 выводятся на экран.

 

 

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

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 <тело цикла>

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

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

 

Вопросы и задания

 

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

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

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

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

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

 

ЕК ЦОР: часть 2, глава 6, § 42. ЦОР № 3, 8.

 

§19


Поделиться с друзьями:

Механическое удерживание земляных масс: Механическое удерживание земляных масс на склоне обеспечивают контрфорсными сооружениями различных конструкций...

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

Индивидуальные и групповые автопоилки: для животных. Схемы и конструкции...

Индивидуальные очистные сооружения: К классу индивидуальных очистных сооружений относят сооружения, пропускная способность которых...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.016 с.