top of page

Урок 23-24

Тема: Операторы цикла на Паскале. Цикл с постусловием.

Цель:  познакомить учащихся с форматом оператора цикла с предусловием, учить составлять программы на использование оператора цикла с предусловием.

 

1.Проверка домашнего задания.

2.Новый материал.

 

Тело цикла

Условие окончания

да

нет

Оператор цикла repeat

Оператор цикла repeat имеет следующую форму:

repeat
  операторы
until условие

В отличие от цикла while, условие вычисляется после очередной итерации цикла, и если оно истинно, то происходит выход из цикла. Таким образом, операторы, образующие тело цикла оператора repeat, выполняются по крайней мере один раз.

Если условие всегда оказывается ложным, то может произойти зацикливание:

repeat
  write(1);
until 2=1;

Чтобы прервать зациклившуюся программу, следует использовать комбинацию клавиш Ctrl-F2.

3.Решение задач.

Задача 1. Определить сумму цифр натурального числа n и вывести его запись в обратном порядке.

 

program z2;

uses crt;

var k, s, n: integer; a: longint;

begin

readln (n);

k:=0; s:=0; a:=0;

repeat

k:=k+1;

s:=s+ n mod 10;

a:= a*10 +n mod 10;

n:= n div 10;

until n=0;

writeln ('число цифр ', k, '  сумма цифр; ', s);

writeln (‘Запись в обр. порядке; ',a);

end.

Задача 2. Суммирование любого количества целых чисел.

 

program z4;

var sum: real;

count, x:integer;

begin

count:=1; sum:=0;

repeat

write ('Введите значение’, count, '-го слагаемого'); read(x);

count:=count+1;

if x<>999 then sum:=sum+x;

until x=999;

writeln ('Сумма введенных чисел = ', sum:7:3);

end.

 

Задача 3. «Угадай число»

 

program z5;

var comp: integer;

igrok : integer;

begin

randomize;

comp:=random(100);

 repeat

write ('Введите число');  read (igrok);

if igrok > comp then writeln ('Слишком много…')

else if igrok<comp then writeln ('Слишком мало…')

else writeln ('Вы угадали! ');

until igrok=comp;

end.

Задача 4. Арифметический калькулятор.

program z1; {k -сомножители, a- число сомножителей , s - произведение}

uses crt;

var x, y, s: real;

a, b: char;

begin

repeat

write(‘x=’); read(x);

write(‘y=’); read(y);

write(‘Операция(+, -, *, /)’); read(a);

case a of

‘+’: s:=x+y;

‘-’: s:=x-y;

‘*’: s:=x*y;

‘/’: s:=x/y

else

write(‘Ошибка ввода’);

end;

writeln (x:7:3, a:3, y:7:3, ‘=’, s:7:3 );

write (‘Продолжить (y/n)’);

read(b);

until (b=’n’) or (b=’n’);

end.

 

Задача 5. Произведение N первых нечетных чисел равно p. Сколько сомножителей взято?

 

program z1; {k -сомножители, a- число сомножителей , s - произведение}

uses crt;

var k,s,p:integer; a: longint;

begin

readln(p);

k:=1; s:=1; a:=0;

repeat

s:=s*k;

k:=k+2;

a:=a+1;

until p=s;

writeln ('число сомножителей; ',a);

end.

 

Задача 6.  Известен факториал числа n. Найти это число.

 

 

program faktorial;

uses crt;

var n: real;

i: integer;

begin

read (n);

i:=1;

repeat

n:=n/i;

i:=i+1;

until n=1;

write (i-1);

end.

 

4.Итог урока.

5.Домашнее задание.

         Найти наименьшее общее кратное (НОК) чисел n и m, если                                  HOK(n, m)=n*m/(HOД(n, m)).

bottom of page