оператор- любой оператор, в том числе и составной.
Принцип работы:
§ Проверяется истинность условия
§ Если условие истинно выполняется оператор
§ Цикл работает, пока условие не станет ложным.
Цикл с последующим условием
repeat <операторы> until <условие>
повторять до тех пор пока
условие- логическое выражение
операторы- любое количество любых операторов, в том числе и составной.
Принцип работы:
§ Выполняются все операторы между repeat и until
§ Проверяется ложность условия
§ Цикл работает, пока условие не станет истинным.
Особенности и отличия операторов цикла
- Вход в цикл возможен только через его начало
- Переменные оператора должны быть определены до входа в цикл
- Необходимо предусмотреть выход из цикла, чтобы он не повторялся бесконечно.
- Оператор while repeat может ни разу не выполнится
- оператор repeat обязательно выполниться хотя бы раз
Примеры программ
Проверить, является ли целое число простым.
Uses crt;
Var n{введенное число},i:integer;
Begin
Readln(n);
For i:=2 to n-1 do
If n mod i =0 then begin writeln(n,’не простое’);readkey; halt;end;
writeln (n, ‘простое’);
readkey;
end.
Написать программу, которая выводит на экран табл. умножения, например на 7.
Uses crt;
Var m,n,p:integer;
Begin
For i:=1 to 10 do
Writeln(7,’*’,I:2,’=’,7*I:2);
Readkey; end.
Написать программу, которая выводит табличные значения функции у=|x|+2. Диапазон изменения аргумента от – 4 до 4, приращение аргумента - 0.5
Написать программу, которая определяет максимальное число из введенной последовательности положительных чисел. Завершение ввода – 0.
Uses crt;
Var a{очередное число}, m{макс.число}:integer;
Begin M:=0;
Repeat
Writeln(‘введи число’);Readln(a);
If a>m then m:=a;
Until a=0;
Writeln(‘max=’,m);
Readkey; end.
Имеются или не имеются среди чисел cos(i3)sin(in), i=1,…,n, числа меньше 0,0001. Если имеются, то выводить «есть», если нет – «нет»
uses crt;
label 1;
var i,n:integer;
begin clrscr;
writeln ('Введите n'); readln (n);
for i:=1 to n do
if cos(i*i*i)*sin(i*n)<0.0001 then begin
writeln ('есть');goto 1; end;
writeln ('нет');
1:readkey;end.
Написать программу, которая позволяет найти наибольший общий делитель двух целых чисел
program nod;
uses crt;
var n1,n2,nod: integer;
begin clrscr;
writeln ('Введите два целых числа');
readln (n1,n2);
while n1<>n2 do
if n1>n2 then n1:=n1-n2 else n2:=n2-n1;
nod:=n1;
writeln 'Наибольший общий делитель -',nod);
readkey;end.
Написать программу, которая позволяет найти наименьшее общее кратное двух целых чисел
program nok1;
uses crt;
var nok,n1,n2:byte;i:word;
begin
clrscr;
writeln('введите два числа'); readln(n1,n2);
nok:=1;
for i:=n1*n2 downto 2 do
if (n1 mod i=0) and (n2 mod i=0) then nok:=i;
write('NOK -',nok);
readkey;end.
7. По тексту готовой программы составить условие задачи:
1) program pt1;
uses crt;
var a,i,j:integer;
begin
clrscr;
randomize;
for i:=1 to 15 do
begin
a:=trunc((random(7))*5)-10;
write(a:4);
end;
readln;
end.
2) program pt1;
uses crt;
var a,i,j:integer;
begin
clrscr;
randomize;
for j:=1 to 10 do
begin
a:=trunc((random(9))*5)-20;
write(a:4);
end;
readln;
end.
3) program pt1;
uses crt;
var a,i,j:integer;
begin
clrscr;
randomize;
for i:=1 to 15 do
begin
a:=trunc((random(11))*5)-20;
write(a:4);
end;
readln;
end._
4) program pt1;
uses crt;
var a,i,j:integer;
begin
clrscr;
randomize;
for i:=1 to 4 do
begin
for j:=1 to 5 do
begin
a:=trunc((random(7))*5)-10;
write(a:4);
end;
writeln;
end;
readln;
end._
5) program pt1;
uses crt;
var a,i,j:integer;
begin
clrscr; randomize;
for i:=1 to 5 do begin
for j:=1 to 5 do begin
a:=trunc((random(9))*5)-20; write(a:4);
end;
writeln;
end;
readln; end.