Цикл – команда исполнителю повторить многократно указанную последовательность команд алгоритмического языка или, другими словами, многократно повторяющаяся часть программы.
Существует три разновидности оператора цикла.
2. Оператор цикла с параметром.
Используется, когда известно, сколько раз выполняется циклическая часть программы.
for <параметр цикла>:=<начало> to/downto <конец> do <оператор>;
для до делать
параметр цикла - числовая переменная типа integer
начало, конец - арифметическое выражение
to - используется когда начало меньше конца
downto - используется когда начало больше конца
оператор - тело цикла, любой оператор, в том числе и составной
Принцип работы:
§ Параметру присваивается значение начало
§ Выполняется оператор - тело цикла.
§ Затем параметр сравнивается с концом.
§ Если параметр больше/меньше конца, то начинает работать следующий оператор за оператором цикла, в противном случае к параметру прибавляется/отнимается единица.
§ Снова выполняется оператор.
§ Так продолжается пока параметр не станет больше/меньше конца.
3. Цикл с предварительным условием
while <условие> do <оператор>;
пока делать
условие
- логическое выражение
оператор
- любой оператор, в том числе и составной.
Принцип работы:
§ Проверяется истинность условия
§ Если условие истинно выполняется оператор
|
Проверить, является ли целое число простым. |
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 |
uses crt; var x,y:real; begin; clrscr; writeln('y':20,' : ','x':5); writeln(' --------------'); x:=-4; repeat y:=abs(x)+2; writeln(y:20:1,' : ',x:5:1); x:=x+0.5; until x>4; readkey; end. |
|
Написать программу, которая определяет максимальное число из введенной последовательности положительных чисел. Завершение ввода – 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. |
|
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. |