Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
PASСAL_a4_2007.doc
Скачиваний:
32
Добавлен:
13.09.2019
Размер:
2.51 Mб
Скачать

3. Вычисление сумм

Одна из часто встречающихся задач - вычисление различных сумм. Если число слагаемых велико (больше трех) и известно заранее, то удобно пользоваться циклом с параметром. Основными повторяющимися действиями при этом будут получение нового слагаемого (ввод, вычисление и т.п.) и добавление его к уже имеющейся сумме. При этом для хранения всех слагаемых используется одна переменная (ячейка памяти) в которую слагаемые попадают поочередно. Перед началом цикла нужно занести 0 в переменную, предназначенную для хранения суммы. Например:

writeln('Введите количество слагаемых: ');

readln(n);

writeln('Вводите слагаемые, нажимая <Enter> после каждого');

Sum := 0;

for i:=1 to n do

begin

readln(Slagaemoe); { вводим число }

Sum := Sum + Slagaemoe; { добавляем его к сумме }

end;

4. Выборки

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

...

k := 0; { счетчик чисел, кратных трем }

for i:=1 to n do

begin

readln(A); { вводим число }

if a mod 3 = 0 { если число кратно трем }

then k := k + 1; { увеличили счетчик на 1 }

end;

5. Максимумы и минимумы

Еще одна часто встречающаяся задача - выбрать наибольшее число из вводимой последовательности. Идею алгоритма можно проиллюстрировать на такой ситуации: идет строй юношей, нам нужно определть рост самого высокого из них. Мы устанавливаем планку на высоте роста первого из них, а дальше действуем так: если юноша не проходит под планкой - поднимаем планку на высоту его роста, если же проходит - планка остается на месте. После того, как строй закончился, высота планки соответствует наибольшему росту. Вот, как это записывается на языке Pascal:

var i,max,a:real;

begin

Write('Введите рост: ');

readln(a); { вводим первое число }

max := a; { устанавливаем "планку" }

for i:=2 to n do { начинаем с 2, т.к. первое число уже обработано }

begin

write('Введите рост:');

readln(a); { вводим очередное число }

if a > max { если "не прошел под планкой" }

then max := a; { "подняли планку" }

end; { max - наибольшее число }

ReadLn

end.

Если кроме самого числа нас интересует его номер, то нужно в цикле запоминать номер каждого «подозрительного на наибольший» элемента:

readln(a); { вводим первое число }

max := a; { устанавливаем "планку" }

k := 1; { запоминаем номер }

for i:=2 to n do { начинаем с 2, т.к. первое число уже обработано }

begin

readln(a); { вводим очередное число }

if a > max then { если "не прошел под планкой" }

begin

max := a; { "подняли планку" }

k := i; { запомнили номер }

end { max - наибольшее число, k - его номер }

end;

Лабораторная работа 7. Циклы с параметром

Задание 1

Скопируйте в Ваш каталог файлы lab5_1.pas, lab5_2.pas, lab5_3.pas из каталога PAS_TXT. Запустите среду Turbo Pascal.

Задание 2

Считайте с диска файл с именем lab5_1.pas. Содержащаяся в нем программа 15 раз печатает на экране слово “Халва...” (убедитесь в этом, запустив программу). Модифицируйте программу так, чтобы:

а) слово печаталось не 15, а 10 раз;

б) слова печатались в одну строку;

в) перед первым словом печаталось слово “Начало”, а после последнего - слово “Конец”;

г) каждое слово печаталось с новой строки, и между ними была пустая строка;

д) перед каждым словом “Халва... “ печатался его порядковый номер (значение переменной i ).

Задание 3

В файле lab5_2.pas находится программа печати таблицы значений функции f(x) = sin(x) при x = 0, 0.1, 0.2,..., 1. Модифицируйте программу так, чтобы:

а) печатался заголовок;

б) печатались еще и значения аргумента x;

в) печатались значения при x = 0, 0.2, 0.4, ..., 4;

г) то же самое печаталось в обратном порядке.

Задание 4

Считайте с диска файл с именем lab5_3.pas. Перед вами появилась программа рисования на экране дисплея “палитры” из 15 кругов одинакового размера, заштрихованных разными цветами. Запустите программу и убедитесь, что она работает правильно. Модифицируйте программу так, чтобы на экране рисовалась “мишень” - 10 концентрических кругов разных цветов и радиусов.

Задание 5

Смоделируйте на экране равномерное прямолинейное движение “материальной точки” (неболь­шой окружности):

а) по горизонтали;

б) по вертикали;

в ) “с горки”.

Задание 6

Используя конструкцию цикла со счетчиком, самостоятельно составь­те программу рисова­ния детской игрушечной пира­мид­­ки (вид сбоку).

  • Продемонстрируйте программы преподавателю.

Задание 7

Выйдите из среды Turbo Pascal. Удалите из Вашего каталога файлы lab5_1.pas, lab5_2.pas, lab5_3.pas.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]