Просмотр содержимого документа
«Презентация Циклы»
Понятие цикла разработки программы вPascal: назначение этапов цикла и действия разработчика.
Виды циклов. 1
I.Цикл с параметром.
Выполняется заранее определенное количество раз.
FOR –для
TO –до
DO-выполнить
ДЛЯi:=1ДОNВЫПОЛНЯТЬдействие;
если в теле цикла одно действие
FORi:=1TONDOдействие;
FORi:=1TONDOBEGIN
действие1;
действие2;
END;
если в теле цикла несколько
действий
FORi:=NDOWNTO1DOдействие;
если переменнаяiубывает
Виды циклов. 2
Блок-схема цикла с параметром.
i,1,n
i,1,n
Действие 1
Действие 1
Действие 2
Действие 2
FORi:=1TONDOBEGIN
FORi:=1TONDOдействие1;
действие1;
действие2;
END;
действие2;
Виды циклов. 3
Пример 1.
Вывести на экран 64 вертикальные
линии.
Program n1; Uses Crt, GraphABC; var x,y,i:Integer;beginx:=1; // устанавливаем координату Х первой линииFor i:=1 to 64 do begin // перебираем от 1 до 64Line (x,0,x,400);// рисуем очередную линиюx:=x + 10; // увеличиваем координату на 10end;end.
Виды циклов. 4
II.Цикл с постусловием.
Выполняется всегда хотя бы один раз.
Выполняется пока условие ложно .
REPEAT –повторять
UNTIL –до тех пор
ПОВТОРЯТЬ
действие1;
действие2;
ДО ТЕХ ПОР(ПОКА УСЛОВИЕ ЛОЖНО);
Действие 1
Действие 2
REPEAT
действие1;
действие2;
UNTIL(ПОКА УСЛОВИЕ ЛОЖНО);
нет
условие
да
640) end. повторять до тех пор пока условие ложно" width="640"
Виды циклов. 5
Пример 2.
Вывести на экран 64 вертикальные
линии.
Program n2;Uses Crt, GraphABC;var x:Integer;beginx:=1; repeatLine (x,0,x,400); x:=x+10;until (x640)
end.
повторять до тех пор пока условие ложно
Виды циклов. 6
III.Цикл с предусловием.
Может не выполнится не разу.
Выполняется пока условие истинно .
WHILE –пока
DO –выполнять
ПОКА(УСЛОВИЕ ИСТИННО) ВЫПОЛНЯТЬ
НАЧАЛО
действие1;
действие2;
КОНЕЦ;
нет
условие
да
Действие 1
WHILE(УСЛОВИЕ ИСТИННО)DO
BEGIN
действие1;
действие2;
END;
Действие 2
Виды циклов. 7
WHILE(УСЛОВИЕ ИСТИННО)DO
BEGIN
действие1;
действие2;
END;
WHILE(УСЛОВИЕ ИСТИННО)DO
действие1;
действие2;
нет
условие
нет
условие
да
Действие 1
да
Действие 1
Действие 2
Действие 2
Виды циклов. 8
Пример 3.
Вывести на экран 64 вертикальные
линии.
Program n3;Uses Crt, GraphABC;var x:Integer;beginx:=1;while(x Line (x,0,x,400); x:=x+10;end;end.
повторять пока Х меньше 640
Графические задачи на циклы. 9
Задача 1.
Составить программу выводящую
на экран следующее изображение
Program n1;
Uses Crt, GraphABC;
var x,i:Integer;
begin
x:=1;
For i:=1 to 64 do begin
line(320,400,x,1);
x:=x+10;
end;
end.
Более короткое решение:
Program n1;
Uses Crt, GraphABC;
var x:Integer;
begin
For x:=1 to 64 doline(320,400,x*10,1);
end.
640); end. В теле цикла могут изменяться две переменные" width="640"
Графические задачи на циклы.10
Задача 2.
Составить программу выводящую
на экран следующее изображение
Program n2;
Uses Crt, GraphABC;
var x,y:Integer;
begin
x:=1;
y:=1;
repeat
Line (x, 0 , 0 , y);
x:=x + 16;
y:=y + 10;
until (x640);
end.
В теле цикла могут изменяться две переменные
Графические задачи на циклы12
Задача 3.
Составить программу выводящую
на экран следующее изображение
Program n3;
Uses Crt,GraphABC;
var i,j,x,y:Integer;
Begin
clrscr;
y:=10;
for i:=1 to 12 do begin
x:=10;
for j:=1 to 20 do begin
circle (x,y,10);
x:=x+30;
end;
y:=y+30;
end;
end.
Выводi-ой строки
Изменение координатыYстроки
1); end." width="640"
Расчетные задачи на циклы13
Построить таблицу значений функции y = 3 sin x +cos2xна интервале [-1 ; 1] с шагом Δх = 0,1.
Задача 1.
Program n1;
Uses Crt;
var x,y,dx:real;
begin
ClrScr;
x:=-1;
dx:=0.1;
repeat
y:= 3*sin(x) + cos(2*x);
writeln ('x= ',x:7:5,' y= ',y:7:5);
x:=x+dx;
until (x1);
end.
10); Построить таблицу значений функции на интервале [- 1 ; 1 ] с шагом Δх = 0,1 если функция имеет вид : Задача 3. x +1, при x 0.5 Y= x 2 , при - 0.5 x 0.5 x -2, при x 0.5 repeat if (x if (x=-0.5) and (x if (x0.5) then y:=x-2; writeln ('x= ',x:7:5,' y= ',y:7:5); x:=x+dx; until (x1);" width="640"
Расчетные задачи на циклы14
Построить таблицу значений функции,на интервале [-10; 10] с шагом Δх = 1.
Задача 2.
repeat
if (x1) then begin
y:= (x+1)/(1-x);
writeln ('x= ',x:7,' y= ',y:7:5);
end;
x:=x+dx;
until (x10);
Построить таблицу значений функции на интервале [-1;1] с шагом Δх = 0,1 если функция имеет вид:
Задача 3.
x+1, приx0.5
Y=x2, при -0.5x0.5
x -2, при x0.5
repeat
if (x
if (x=-0.5) and (x
if (x0.5) then y:=x-2;
writeln ('x= ',x:7:5,' y= ',y:7:5);
x:=x+dx;
until (x1);
1); end. Program n1; Uses Crt; var x,y,dx:real; begin ClrScr; x:= -1; dx:=0.1; repeat if (x0) then begin y:= 1/x; writeln ('x= ',x,' y= ',y:7:5); end; x:=x+dx; until (x1); end. Нуля нет! А в место него число в минус шестнадцатой степени. Изменим формат вывода" width="640"
Расчетные задачи на циклы15
Небольшое отступление:
Построить таблицу значений функции y = 1/х на интервале[-1; 1]с шагом 0,1
Program n1;
Uses Crt;
var x,y,dx:real;
begin
ClrScr;
x:= -1;
dx:=0.1;
repeat
if (x0) then begin
y:= 1/x;
writeln ('x= ',x:7:5,' y= ',y:7:5);
end;
x:=x+dx;
until (x1);
end.
Program n1;
Uses Crt;
var x,y,dx:real;
begin
ClrScr;
x:= -1;
dx:=0.1;
repeat
if (x0) then begin
y:= 1/x;
writeln ('x= ',x,' y= ',y:7:5);
end;
x:=x+dx;
until (x1);
end.
Нуля нет! А в место него число в минус шестнадцатой степени.
Изменим формат вывода
1e-12) then begin y:= 1/x; writeln ('x= ',x:7:5,' y= ',y:7:5); end; x:=x+dx; until (x1); end. Пусть все числа, по модулю меньшие 0,000000000001 будут для нас нулями." width="640"
Расчетные задачи на циклы16
Вот одно из возможных решений данной проблемы:
Program n1;
Uses Crt;
var x,y,dx:real;
begin
ClrScr;
x:= -1;
dx:=0.1;
repeat
if(abs(x)1e-12)then begin
y:= 1/x;
writeln ('x= ',x:7:5,' y= ',y:7:5);
end;
x:=x+dx;
until (x1);
end.
Пусть все числа, по модулю меньшие 0,000000000001
будут для нас нулями.
Расчетные задачи на циклы17
Составить программу вычисления среднего арифметического
числовой последовательности. Где количество элементов и
сами элементы вводятся с клавиатуры .
Задача 4.
Математическая запись задачи
Program n4;
Uses Crt;
var i,n:integer;
a,s,sr:real;
Begin
ClrScr;
write('N=');readln(n);
s:=0;
for i:=1 to n do begin
write( ‘ Введи [ ‘ , i , ‘ ] = ‘ );Readln(a);
s:=s+a;
end;
sr:=s/n;
writeln(‘Среднее арифметическое = ',sr:10:5)
end.
Результат выполнения программы
0). Используя один цикл найти сумму 1+ 1/2 + 1/3 +…+1/N Program n1; Uses crt; var s:real; i,n:Integer; begin Clrscr; Write(‘Введи n=');Readln(n); s:=0; For i:=1 to N do s:=s+1/i; writeln('s=',s:10:5); End. Результат очень легко проверить в ручную" width="640"
Расчетные задачи на циклы18
Задача 5.
Дано целое число N (N0). Используя один цикл найти сумму
1+ 1/2 + 1/3 +…+1/N
Program n1;
Uses crt;
var s:real;
i,n:Integer;
begin
Clrscr;
Write(‘Введи n=');Readln(n);
s:=0;
For i:=1 to N dos:=s+1/i;
writeln('s=',s:10:5);
End.
Результат очень легко проверить в ручную
Расчетные задачи на циклы19
Написать программу выводящую на экран все двузначные
числа сумма цифр которых равна 10.
Задача 6.
program n6;
Uses Crt;
var e,d:integer;
begin
ClrScr;
for d:=1 to 9 do
for e:=0 to 9 do
if d+e=10 then writeln(d*10+e);
end.
1/i); writeln('S=',s:10:5); end." width="640"
Расчетные задачи на циклы21
( Вычисление суммы бесконечного ряда с определенной
точностью).
Вычислите значение суммы ряда
с точностью Е=0,02
Задача 7.
Сумма вычисляется до тех пор, пока очередное слагаемое не станет меньше