Циклы в языке программирования Pascal

Содержание

Слайд 2

Часть 1. Виды циклов.

Часть 1. Виды циклов.

Слайд 3

I. Цикл с параметром.
Выполняется заранее определенное количество раз.

FOR – для
TO – до
DO

I. Цикл с параметром. Выполняется заранее определенное количество раз. FOR – для
- выполнить

ДЛЯ i:=1 ДО N ВЫПОЛНЯТЬ действие;

FOR i:=1 TO N DO действие;

FOR i:=1 TO N DO BEGIN
действие1;
действие2;
END;

FOR i:=N DOWNTO 1 DO действие;

Виды циклов. 1

если переменная i убывает

если в теле цикла несколько
действий

если в теле цикла одно действие

Слайд 4

i,1,n

Действие 1

Действие 2

i,1,n

Действие 1

Действие 2

FOR i:=1 TO N DO BEGIN
действие1;

i,1,n Действие 1 Действие 2 i,1,n Действие 1 Действие 2 FOR i:=1
действие2;
END;

FOR i:=1 TO N DO действие1;
действие2;

Блок-схема цикла с параметром.

Виды циклов. 2

Слайд 5

Program n1;   Uses Crt, GraphABC;   var x,y,i:Integer; begin        x:=1;             // устанавливаем координату  Х первой линии       

Program n1; Uses Crt, GraphABC; var x,y,i:Integer; begin x:=1; // устанавливаем координату
For i:=1 to 64 do begin        // перебираем от 1 до 64                                       Line (x,0,x,400);   // рисуем очередную линию                                       x:=x + 10; // увеличиваем координату на 10                                     end; end.

Пример 1.

Вывести на экран 64 вертикальные
линии.

Виды циклов. 3

Слайд 6

II. Цикл с постусловием.
Выполняется всегда хотя бы один раз.
Выполняется пока условие ложно.

REPEAT

II. Цикл с постусловием. Выполняется всегда хотя бы один раз. Выполняется пока
– повторять
UNTIL – до тех пор

ПОВТОРЯТЬ
действие1;
действие2;
ДО ТЕХ ПОР (ПОКА УСЛОВИЕ ЛОЖНО);

REPEAT
действие1;
действие2;
UNTIL (ПОКА УСЛОВИЕ ЛОЖНО);

Виды циклов. 4

Слайд 7

Пример 2.

Вывести на экран 64 вертикальные
линии.

Program n2; Uses Crt, GraphABC; var x:Integer; begin     x:=1;       repeat            Line

Пример 2. Вывести на экран 64 вертикальные линии. Program n2; Uses Crt,
(x,0,x,400);            x:=x+10;      until (x>640) 
end.

Виды циклов. 5

повторять до тех пор пока условие ложно

Слайд 8

WHILE (УСЛОВИЕ ИСТИННО) DO
BEGIN
действие1;
действие2;
END;

III. Цикл с предусловием.
Может не

WHILE (УСЛОВИЕ ИСТИННО) DO BEGIN действие1; действие2; END; III. Цикл с предусловием.
выполнится не разу.
Выполняется пока условие истинно.

WHILE – пока
DO – выполнять

ПОКА (УСЛОВИЕ ИСТИННО) ВЫПОЛНЯТЬ
НАЧАЛО
действие1;
действие2;
КОНЕЦ;

Виды циклов. 6

Слайд 9

WHILE (УСЛОВИЕ ИСТИННО) DO
BEGIN
действие1;
действие2;
END;

условие

Действие 1

Действие 2

да

нет

WHILE (УСЛОВИЕ ИСТИННО)

WHILE (УСЛОВИЕ ИСТИННО) DO BEGIN действие1; действие2; END; условие Действие 1 Действие
DO
действие1;
действие2;

условие

Действие 1

Действие 2

да

нет

Виды циклов. 7

Слайд 10

Пример 3.

Вывести на экран 64 вертикальные
линии.

Program n3; Uses Crt, GraphABC; var x:Integer; begin     

Пример 3. Вывести на экран 64 вертикальные линии. Program n3; Uses Crt,
x:=1;        while(x<640) do begin                                         Line (x,0,x,400);                                       x:=x+10;                                  end; end.

Виды циклов. 8

повторять пока Х меньше 640

Слайд 11

Часть 2. Графические задачи на циклы.

Часть 2. Графические задачи на циклы.

Слайд 12

Задача 1.

Составить программу выводящую
на экран следующее изображение

Program n1;
Uses Crt, GraphABC;
var x,i:Integer;
begin

Задача 1. Составить программу выводящую на экран следующее изображение Program n1; Uses
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 do line(320,400,x*10,1);
end.

Графические задачи на циклы. 9

Слайд 13

Задача 2.

Составить программу выводящую
на экран следующее изображение

Program n2;
Uses Crt, GraphABC;
var x,y:Integer;
begin

Задача 2. Составить программу выводящую на экран следующее изображение Program n2; Uses
x:=1;
y:=1;
repeat
Line (x, 0 , 0 , y);
x:=x + 16;
y:=y + 10;
until (x>640);
end.

В теле цикла могут изменяться две переменные

Графические задачи на циклы. 10

Слайд 14

Задача 3.

Составить программу выводящую
на экран следующее изображение

Program n3;
Uses Crt,GraphABC;
var i,j,x,y:Integer;
Begin
clrscr;

Задача 3. Составить программу выводящую на экран следующее изображение Program n3; Uses
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 строки

Графические задачи на циклы 12

Слайд 15

Часть 3. Расчетные задачи на циклы.

Часть 3. Расчетные задачи на циклы.

Слайд 16

Построить таблицу значений функции y = 3 sin x + cos 2x

Построить таблицу значений функции y = 3 sin x + cos 2x
на интервале [-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 (x>1);
end.

Расчетные задачи на циклы 13

Слайд 17

Построить таблицу значений функции, на интервале [-10 ; 10] с шагом Δх

Построить таблицу значений функции, на интервале [-10 ; 10] с шагом Δх
= 1.

Задача 2.

Построить таблицу значений функции на интервале [-1; 1] с шагом Δх = 0,1 если функция имеет вид:

x+1, при x<-0.5
Y= x2 , при -0.5<=x<=0.5
x -2, при x>0.5

Задача 3.

repeat
if (x<-0.5) then y:=x+1;
if (x>=-0.5) and (x<=0.5) then y:=x*x;
if (x>0.5) then y:=x-2;
writeln ('x= ',x:7:5,' y= ',y:7:5);
x:=x+dx;
until (x>1);

repeat
if (x<>1) then begin
y:= (x+1)/(1-x);
writeln ('x= ',x:7,' y= ',y:7:5);
end;
x:=x+dx;
until (x>10);

Расчетные задачи на циклы 14

Слайд 18

Program n1;
Uses Crt;
var x,y,dx:real;
begin
ClrScr;
x:= -1;
dx:=0.1;
repeat
if (x<>0) then

Program n1; Uses Crt; var x,y,dx:real; begin ClrScr; x:= -1; dx:=0.1; repeat
begin
y:= 1/x;
writeln ('x= ',x:7:5,' y= ',y:7:5);
end;
x:=x+dx;
until (x>1);
end.

Небольшое отступление:
Построить таблицу значений функции y = 1/х на интервале [-1; 1] с шагом 0,1

Program n1;
Uses Crt;
var x,y,dx:real;
begin
ClrScr;
x:= -1;
dx:=0.1;
repeat
if (x<>0) then begin
y:= 1/x;
writeln ('x= ',x,' y= ',y:7:5);
end;
x:=x+dx;
until (x>1);
end.

Изменим формат вывода

Нуля нет! А в место него число в минус шестнадцатой степени.

Расчетные задачи на циклы 15

Слайд 19

Program n1;
Uses Crt;
var x,y,dx:real;
begin
ClrScr;
x:= -1;
dx:=0.1;
repeat
if (abs(x)>1e-12) then

Program n1; Uses Crt; var x,y,dx:real; begin ClrScr; x:= -1; dx:=0.1; repeat
begin
y:= 1/x;
writeln ('x= ',x:7:5,' y= ',y:7:5);
end;
x:=x+dx;
until (x>1);
end.

Пусть все числа, по модулю меньшие 0,000000000001
будут для нас нулями.

Вот одно из возможных решений данной проблемы:

Расчетные задачи на циклы 16

Слайд 20

Задача 4.

Составить программу вычисления среднего арифметического
числовой последовательности. Где количество элементов и

Задача 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.

Математическая запись задачи

Результат выполнения программы

Расчетные задачи на циклы 17

Слайд 21

Задача 5.

Дано целое число N (N>0). Используя один цикл найти сумму

Задача 5. Дано целое число N (N>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.

Результат очень легко проверить в ручную

Расчетные задачи на циклы 18

Слайд 22

Задача 6.

Написать программу выводящую на экран все двузначные
числа сумма цифр

Задача 6. Написать программу выводящую на экран все двузначные числа сумма цифр
которых равна 10.

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.

Расчетные задачи на циклы 19

Слайд 23

Блок-схема к задаче 5

начало

D,1,9

E,0,9

d+e=10

Вывод
d*10+e

конец

Тело цикла

Внутренний цикл

Внешний цикл

да

нет

Расчетные задачи на циклы 20

Блок-схема к задаче 5 начало D,1,9 E,0,9 d+e=10 Вывод d*10+e конец Тело

Слайд 24

Задача 7.

(Вычисление суммы бесконечного ряда с определенной
точностью).
Вычислите значение суммы ряда
с точностью

Задача 7. (Вычисление суммы бесконечного ряда с определенной точностью). Вычислите значение суммы
Е=0,02

Сумма вычисляется до тех пор, пока очередное слагаемое не станет меньше
точности Е

Program n7;
Uses crt;
var s,e:real; i:integer;
begin
clrscr;
s:=0; i:=1; e:=0.02;
Repeat
s:=s+1/i;
Writeln('i=',i,' слагаемое',1/i);
i:=i+1;
until (e>1/i);
writeln('S=',s:10:5);
end.

Расчетные задачи на циклы 21

Слайд 25

Задача 8.

Вычислить площадь фигуры ограниченной линиями: X=1, X=4, Y=0,

.

Program n8;
Uses

Задача 8. Вычислить площадь фигуры ограниченной линиями: X=1, X=4, Y=0, . Program
Crt;
Var x,h,s:Real;
Begin
ClrScr;
h:=(4-1)/1000;
x:=1;
Repeat
s:=s+h*1/x;
x:=x+h;
Until x>4;
writeln('Площадь = ',S:10:5);
end.

Ширина прямоугольника h:=(4-1)/1000;

Высота прямоугольника
1/x

Площадь одного прямоугольника
h*1/x

Расчетные задачи на циклы 22

Слайд 26

Задача 9.

Найти количество цифр в числе введенном с клавиатуры.

Program n8;
Uses Crt;
Var

Задача 9. Найти количество цифр в числе введенном с клавиатуры. Program n8;
n:Real;
k:Integer;
Begin
ClrScr;
Write ('N= ');readln(n);
k:=0;
Repeat
n:=int(n/10);
k:=k+1;
Until n<0.1;
writeln('Кол-во = ',k:5);
end.

Расчетные задачи на циклы 23

Если n имеет тип integer то эту строку можно записать так: n:=n div 10;

Слайд 27

Часть 4. Всегда ли нужны циклы.

Часть 4. Всегда ли нужны циклы.

Слайд 28

Задача 10.

Найти сумму целых четных чисел от 2 до 100.

Program

Задача 10. Найти сумму целых четных чисел от 2 до 100. Program
n10;
Uses crt;
var i,s:Integer;
begin
Clrscr;
s:=0;
For i:=2 to 100 do if (i mod 2 = 0) then s:=s+i;
writeln('s=',s:10);
End.

Всегда ли нужны циклы 23

Имя файла: Циклы-в-языке-программирования-Pascal.pptx
Количество просмотров: 263
Количество скачиваний: 2