Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ТPascal Сборник конспектов.doc
Скачиваний:
28
Добавлен:
10.11.2018
Размер:
924.67 Кб
Скачать

11. Оператор цикла с параметром.

Цикл – это такая структура, с помощью которой организуют повторение выполнения какой-либо группы операций некоторое число раз.

Формат оператора цикла:

For параметр:=НЗ To КЗ Do Оператор(блок);

или

For параметр:=НЗ DownTo КЗ Do Оператор(блок);

где:

параметр – переменная цикла целого типа (Integer)

НЗ – начальное значение параметра (целочисленное выражение)

КЗ – конечное значение параметра (целочисленное выражение)

Вариант со словом To означает, что параметр растет от НЗ до КЗ увеличиваясь на единицу.

Вариант со словом DownTo означает, что параметр убывает от НЗ до КЗ уменьшаясь на единицу.

Пример:

For x:=3 To 7 Do ….

Означает, что параметр x будет последовательно принимать следующие значения: 3, 4, 5, 6, 7

Пример:

For x:=7 DownTo 3 Do ….

Означает, что параметр x будет последовательно принимать следующие значения: 7, 6, 5, 4, 3

Перевод на русский язык (правила выполнения):

Для всех значений параметра от НЗ До КЗ Делать оператор(блок)

Таким образом оператор(блок) будет выполняться не один раз, а столько раз, сколько различных значений будет у параметра цикла.

Примеры:

For n:=1 To 3 Do WriteLn(‘МИР’);

Даст на экране:

МИР

МИР

МИР

Для всех значений n от 1 До 3 Делать вывод на экран строки ‘МИР’

For x:=1 To 5 Do Begin y:=Sqr(x); WriteLn(‘x=’,x,’ y=’,y);End;

Даст на экране:

x=1 y=1

x=2 y=4

x=3 y=9

x=4 y=16

x=5 y=25

Для всех значений х от 1 До 5 Делать блок из двух операций: y присвоить значение х в квадрате, вывести на экран значение х и значение y.

For n:=1 To 10 Do Circle(320,240,n*10);

Даст на экране:

Для всех значений n от 1 До 10 Делать изображение окружности с центром в центре экрана (320,240) и радиусом равным n*10.

(радиусы будут: 10,20,30….100)

12. Решение задач на цикл с параметром.

Задача 1.

Найти следующую сумму:

Решение.

За параметр цикла возьмем переменную n со значениями 1, 2, 3 … 100

(параметр должен быть целым числом и его значения должны увеличиваться или уменьшаться ровно на единицу)

Тогда сумму можно находить путем сложения корней квадратных из значений параметра следующим образом:

S:=0;

Для n=1 выполнить S:=S+Sqrt(n)

Для n=2 выполнить S:=S+Sqrt(n)

Для n=3 выполнить S:=S+Sqrt(n)

…..

Для n=100 выполнить S:=S+Sqrt(n)

WriteLn(‘S=’,S:8:4);

Обнуляем значение будущей суммы S=0

S:=S+Sqrt(1) будет S=0+1=1

S:=S+Sqrt(2) будет S=1+1.4142=2.4142

S:=S+Sqrt(3) будет S=2.4142+1.7321=4.1463

……

S:=S+Sqrt(100) будет S=???+10=???

Выводим на экран значение S

Теперь видно, что нам нужно повторить одну и ту же операцию S:=S+Sqrt(n) 100 раз, правда для разных значений параметра. Это мы можем запрограммировать в одну строчку.

Program Summa;

Var n: Integer; S: Real;

Begin

S:=0;

For n:=1 To 100 Do S:=S+Sqrt(n);

WriteLn(‘S=’,S:8:4);

ReadLn;

End.

Имя программе придумываем сами.

n должен быть целым, а сумма S вещественной

Обнуляем S

Для всех значений n от 1 До 100 Делать S:=S+Sqrt(n)

Выводим на экран значение S

Задача 2.

Найти следующую сумму:

Задача 3.

Найти следующую сумму:

Задача 4.

Найти следующую сумму:

Задача 5.

Найти следующую сумму:

Задача 6.

Найти следующую сумму:

Задача 7.

Найти следующую сумму:

Задача 8. «Забор». Построить следующее изображение:

Схема решения:

Сначала строим изображения перекладин, потому что они на заднем плане.

Bar(80,120,600,140);Bar(80,360,600,380);

Для построения изображения досок используем цикл:

n – параметр цикла (номер доски) меняется от 1 до 10

х – координата начала доски должна зависеть от номера доски

подбираем формулу x=n*50+50

для n=1 получим x=100, для n=2 получим x=150, для n=3 получим x=200, для n=4 получим x=250, для n=5 получим x=300, и так далее

xk – координата конца доски будет отличаться от x на ширину доски xk=x+30

Получаем следующий цикл:

Для всех n от 1 До 10 делать блок операций: x:=n*50+50;xk:=x+30; Bar(x,100,xk,400);

Для построения изображения гвоздей также используем цикл

n – параметр цикла (номер гвоздя) меняется от 1 до 10

xg – координата центра гвоздя зависит от n и совпадает с центром доски (x+xk)/2, т.е. xg=n*50+65

Получаем следующий цикл:

Для всех n от 1 До 10 делать блок операций: xg:=n*50+65; Circle(xg,130,10);

Аналогично строим нижний ряд гвоздей.

Программа:

Program Zabor;

Uses Graph;

Var gd,gm,n,x,xk,xg: Integer;

Begin

gd:=Detect; InitGraph(gd,gm,’’);

SetFillStyle(1,8);

Bar(80,120,600,140);Bar(80,360,600,380);

SetFillStyle(1,2);

For n:=1 To 10 Do Begin x:=n*50+50;

xk:=x+30; Bar(x,100,xk,400); End;

SetColor(1);SetFillStyle(1,1);

For n:=1 To 10 Do Begin xg:=n*50+65;

Circle(xg,130,10); FloodFill(xg,130,1);End;

For n:=1 To 10 Do Begin xg:=n*50+65;

Circle(xg,370,10); FloodFill(xg,370,1);End;

ReadLn;

CloseGraph;

End.

Имя программы придумываем сами

Подключаем графический модуль

Объявляем все переменные

Включаем графический режим

Устанавливаем серый цвет заливки

Изображаем серые перекладины

Устанавливаем зеленый цвет заливки

Для всех n от 1 До 10 Делать блок: (вычислить x, xk и изобразить доску).

Установить цвет линий и заливки - синий

Для всех n от 1 До 10 Делать блок: (выч. xg, изоб. окружность и залить окружность).

Для всех n от 1 До 10 Делать блок: (выч. xg, изоб. окружность и залить окружность).

Пауза

Выключение графического режима

В этой программе мы использовали три цикла с параметром. Но если у разных циклов один и тот же параметр, а также совпадают начальное и конечное значение то циклы можно объединить в один:

Program Zabor;

Uses Graph;

Var gd, gm, n, x, xk, xg: Integer;

Begin

gd:=Detect; InitGraph(gd,gm,’’);

SetFillStyle(1,8);

Bar(80,120,600,140);Bar(80,360,600,380);

For n:=1 To 10 Do Begin

x:=n*50+50;xk:=x+30;

SetFillStyle(1,2);Bar(x,100,xk,400);

xg:=(x+xk)/2;

SetColor(1);SetFillStyle(1,1);

Circle(xg,130,10); FloodFill(xg,130,1);

Circle(xg,370,10); FloodFill(xg,370,1);End;

ReadLn;

CloseGraph;

End.

Имя программы придумываем сами

Подключаем графический модуль

Объявляем все переменные

Включаем графический режим

Устанавливаем серый цвет заливки

Изображаем серые перекладины

Для всех n от 1 До 10 Делать блок: (вычислить x, xk

изобразить зеленую доску

вычислить xg

установить цвет линий и заливки - синий

изоб. верхнюю окружность и залить ее изоб. нижнюю окружность и залить ее).

Пауза

Выключение графического режима

Задача 9. «Дом». Построить следующее изображение:

Задача 10. «Рамка». Построить следующее изображение:

Задача 11. «Косой крест». Построить следующее изображение:

Задача 12. «Мишень из квадратов». Построить следующее изображение

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