24.29M
Category: programmingprogramming

Счетный цикл For...do

1.

13.03.2023

2.

Задача:
Вывести на экран квадраты первых 10 натуральных чисел
Способ решения №1 (линейная программа)
Program p1;
Begin
writeln(sqr(1)); writeln(sqr(2)); writeln(sqr(3));
writeln(sqr(4)); writeln(sqr(5)); writeln(sqr(6));
writeln(sqr(7)); writeln(sqr(8)); writeln(sqr(9));
writeln(sqr(10)); end.
{В тексте программы четко прослеживается
повторение команды writeln с меняющимися
числами}
Хорошо, что чисел только десять, а не десять тысяч!
Результат:
1
4
9
16
25
36
49
64
81
100

3.

Способ решения №2 (цикл While…do;)
X:=1
Program p1;
var x: byte;
Begin
x:=1; {присваиваем х нач. знач.}
while x<11 do {пока x<11}
Begin {повторяем: вывод х2; увеличить х на 1}
writeln(sqr(x));
x:=x+1; end;
end.
нет
X<11
Конец
цикла
Вывод: тело цикла содержит две команды: 1) вывод х2 2) увеличение х на 1,
которые будут выполняться, пока х не превысит 10
да
Вывод
х2
x:=x+1

4.

В тех случаях, когда
количество
повторений тела
цикла известно
заранее используется
счетный цикл
For do

5.

Счетный цикл For … do
Счетчик: нач.знач, кон.знач.
Конец
цикла
ТЕЛО ЦИКЛА
For ˽ счетчик:= нач.знач. ˽ to ˽ кон.знач. ˽ Do ˽ Тело цикла;
Где счетчик – имя переменной, которая изменяется от начального значения до конечного значения с шагом 1

6.

Как работает цикл FOR…do:
1. Счетчику присваивается начальное значение
2. Выполняется проверка допустимости значения счетчика ( не
превышает ли оно конечного значения)
3. Если не превышает, то выполняется тело цикла, иначе конец
цикла
4. Значение счетчика увеличивается на 1
5. Переход к пункту 2

7.

Вернемся к нашей задаче:
Решение с циклом While
Решение с циклом For
Program p1;
Program p1;
var x: byte;
var x: byte;
Begin
Begin
For x:=1 to 10 do {счетчик x изменяется
x:=1;
от 1 до 10 с шагом 1}
while x<11 do begin
writeln(sqr(x));
writeln(sqr(x));
End.
x:=x+1; end;
end.
Вывод: Использование цикла For сделало программу более лаконичной.
И можно вывести и десять тысяч квадратов и даже больше, не напрягаясь!

8.

Счетный цикл For … do с шагом -1
For ˽ счетчик:= нач.знач. ˽ Downto˽ кон.знач. ˽ do˽ Тело цикла;
Где счетчик – имя переменной, которая изменяется от начального значения до конечного значения с шагом -1
Например:
Program p1;
var x: byte;
Begin
For x:=10 downto 1 do {счетчик x изменяется от 10 до 1 с шагом -1}
writeln(sqr(x));
End.
Результат:
100
81
64
49
36
25
16
9
4
1

9.

Задачи на вычисление:
Задача 1. Найти сумму ряда чисел от 10 до 50.
Program p2;
var i,s: integer; {s – «копилка», в которую мы будем складывать числа, i – счетчик, изменяющийся от 10 до 50}
Begin
S:=0; {пока ничего не клали в «копилку», там лежит 0}
For i:=10 to 50 do {i изменяется от 10 до 50 с шагом 1 }
S:=s+i;{складываем в «копилку» s текущие значения i}
Writeln(‘Сумма чисел от 10 до 50 равна’, s); {выводим на экран результат}
End.

10.

Задачи на строковые величины
Задача 2. Подсчитать количество запятых в тексте, введенном с клавиатуры.
Program p3;
var i,k:integer; s: string; {i – считает буквы в тексте, к – считает запятые, s - текст}
Begin
write(‘текст?’); readln(s); {вводим с клавиатуры текст, т.е. значение переменной s}
K:=0; {пока ничего не клали в «копилку», там лежит 0}
For i:= 1 to Length(s) do {I меняется от первой до последней буквы текста с шагом 1}
if s[i] =‘,’ then k:=k+1; {копируем из текста символ с номером i и сравниваем его с запятой. Если
символ равен запятой, то увеличиваем k на 1}
Writeln(‘В тексте ‘,k,’запятых’); {выводим результат}
End.
• Например:
Текст? Лето, солнце, каникулы!
В тексте 2 запятых.

11.

Задачи на графику
• Задача 3
• Вывести на экран 50000 окружностей радиуса 10 со случайным центром
и цветом.
Program p4;
Uses Graph ABC;
var i,x,y:integer; {i – счетчик точек, x и y – координаты центра}
Begin
Setwindowsize (500,500); {Устанавливаем размер окна 500 х 500}
For i:=1 to 50000 do
Begin {присваиваем координатам x и y случайные числа от 0 до 500}
X:=Random(500);y:=Random(500);
SetPenColor(clrandom); {Устанавливаем случайный цвет}
Circle(x,y,10); {Выводим окружность}
End;
End.
Результат:

12.

Задачи для домашней работы:
1. Написать программу нахождения среднего арифметического
ряда чисел от 100 до 500.
2. Написать программу, определяющую каких букв «А» или «О»
больше в введенном с клавиатуры тексте.
3. Написать программу, рисующую в центре экрана мишень из 10
концентрических окружностей. Пояснение: Счетчик в цикле For
будет «считать» окружности, а в телом цикла будут команды
рисования окружности и изменение радиуса.

13.

Рекомендации к домашней работе
Все задачи решаются с помощью цикла For..do
Скачать и установить PascalABC можно на свой компьютер с сайта
http://pascalabc.net/ssyilki-dlya-skachivaniya
Если нет возможности выполнить домашнюю работу в среде
PascalABC, вы можете набрать программу в текстовом редакторе.
Выполненное домашнее задание вы высылаете на адрес
электронной почты своего учителя:
Мокрушина А.Е. – [email protected]
Капитонова Я.А. - [email protected]
Или личным сообщением в Дневнике.РУ
English     Русский Rules