На этом уроке мы познакомимся c организацией логических циклических структур на языке Турбо-Паскаль.
- Для чего применяются циклы?
- Как записывается арифметический цикл ?
- Что такое переменная –счетчик цикла?
- Какого типа она должна быть?
- С каким шагом она изменяется?
При составлении программ часто возникают ситуации, когда
1. Заранее не известно количество повторений цикла;
2. Переменная – счетчик цикла должна изменяться с шагом ≠ 1.
В таких случаях используют
- Это циклическое повторение блока команд, пока выполняется (или не выполняется) некоторое условие
- В цикле While проверка условия выполнения цикла находится в начале цикла, а в Repea t – в конце. Цикл Repeat всегда выполняется хотя бы один раз, а цикл While может не выполнятся ни разу.
- В цикле While выход из цикла осуществляется, если условие ложно, а в Repeat – если условие истинно.
- Между словами Repeat и Until можно размещать несколько операторов без Begin и End , а цикл While … do может содержать только один оператор тела цикла; поэтому нужно использовать Begin и End .
Найти все двузначные числа, кратные 7.
Program Kratn_7;
Uses Crt;
Var k: integer;
Begin
Clrscr;
k:=14;
While k
Begin
Writeln(k);
k:=k+7;
end;
readln;
end.
При использовании логических циклов необходимо всегда заботиться о том, чтобы переменная, использующаяся в условии завершения цикла, каким-то образом обязательно изменялась в теле цикла. Это может быть команда присваивания ( как в данной программе) или команда ввода.
Начало
k:=1 4
-
K =99
+
Вывести k
k:=k+ 7
Конец
При каком количестве слагаемых последовательности их сумма превысит 10?
Program Summa_2;
Uses Crt;
Var sum, x: real;
K: integer;
Begin
Clrscr;
sum:=0;
k:=1;
While sum
Begin
Sum:=sum+1/k;
k:=k+1;
end;
Writeln('Kolichestvo elementov=',k);
readln;
end.
Начало
sum:=0 k:=1
-
sum 10
+
Sum:=sum+1/k
k:=k+1
Kolichestvo elementov
=k
Конец
- Сегодня мы познакомились с логическими циклами While и Repeat .
- Узнали об их отличиях и особенностях применения.
- Рассмотрели примеры использования цикла WHILE .
- Обратили особое внимание на необходимость изменения в цикле переменной, которая участвует в условии завершения цикла.
С клавиатуры вводится произвольная последовательность положительных чисел, за которой следует 0. Определить:
- Максимальное число в этой последовательности. Количество четных чисел.
- Максимальное число в этой последовательности.
- Количество четных чисел.
- § 14, стр 113 № 1(а, б, в)
- § 15, стр 115 № 1
- Когда нельзя использовать цикл FOR?
- Как записывается цикл WHILE?
- Как записывается цикл REPEAT?
- Назовите различия циклов WHILE и REPEAT .
Написать программу, которая «задумывает» число в диапазоне от 1 до 9 и предлагает пользователю угадать это число за 5 попыток.
Пояснения к программе:
- Компьютер может «задумать» число с помощью функции Random .
- Количество повторений цикла в этой задаче может быть от 1 до 5 – то есть, заранее не известно.
- Так как пользователь должен сделать хотя бы одну попытку, то логично использовать команду цикла Repeat…until .
Program Ugaday_chislo;
const Npop=5;
var comp, igrok, n: integer;
Begin
Randomize;
comp:=random(9)+1;
Writeln ('Game "Угадай число" ');
Writeln ( ‘ Комптьютер загадывает число от 1 до 9 ’ );
Writeln (‘Вы должны угадать это число');
Writeln ( ‘ за 5 попыток');
repeat
n:=n+1;
Write (‘Введите число- ');
readln(igrok);
until (n=npop) or (comp=igrok);
if comp = igrok
then Writeln ('Win')
else Writeln (' No win Chislo - ',comp);
readln; end.
0 . Алгоритм : Для того, чтобы не «потерять» заданное число, введем переменную y , значение которой сначала будет = x. С- целая часть от деления числа y на 10 R- остаток от деления y на 10 K- кол-во цифр в числе x Последовательно будем находить целую часть и остаток от деления числа y на 10.Именно остаток от деления будет очередной цифрой x . На каждом шаге будем изменять число y : присваивать ему значение целой части от деления y на 10.Для нахождения количества цифр организуем счетчик, значение которого будет увеличено на 1.Процесс повторяется пока значение числа y не станет меньше 1. " width="640"
Найти все цифры и их количество заданного произвольного целого числа x0 .
Алгоритм :
Для того, чтобы не «потерять» заданное число, введем переменную y , значение которой сначала будет = x.
С- целая часть от деления числа y на 10
R- остаток от деления y на 10
K- кол-во цифр в числе x
Последовательно будем находить целую часть и остаток от деления числа y на 10.Именно остаток от деления будет очередной цифрой x . На каждом шаге будем изменять число y : присваивать ему значение целой части от деления y на 10.Для нахождения количества цифр организуем счетчик, значение которого будет увеличено на 1.Процесс повторяется пока значение числа y не станет меньше 1.
Program Zifry;
Uses Crt;
var x, y, c: longint;
r, k: integer;
Begin
clrscr;
Writeln ('Enter zeloe chislo do 10 snakov');
Readln (x);
writeln;
y:=x; k:=0;
Writeln ('Zifry zadannogo chisla:');
repeat
r:=y mod 10;
c:=y div 10;
k:=k+1;
y:=c;
Writeln (k,' zifra = ',r);
until y
Writeln ('Chislo - ',x,' coderjit ', k, ' zifr');
readln;
end.
начало
Ввод целого числа
0
k:= 0 ;y:=x
Цифры заданного
числа x:
r:=y mod 10
c:=y div 10
k:=k+1; y:=c
k- ая цифра = r
-
y
+
Число Х содержит
k цифр
Конец
- Сегодня рассмотрели примеры использования цикла REPEAT.
- Вывести на экран таблицу значений функции x 2 на отрезке [0,1] с шагом 0.1. Каждое число вывести в 8 позициях на отдельной строке.(Использовать команду Repeat)
- Выучить конспект, повторить § 14 и 15 .
- Написать программу, которая проверяет знание учениками таблицы умножения. Сомножители определяются с помощью функции Random . Каждому ученику дается 5 попыток, за которые программа выставляет оценку. Программу написать 3-мя способами – с использованием циклов For , While и Repeat .


Логические циклы. While_Repeat (3.87 MB)

