Презентация по информатике с методическим сопровождением Циклы в языке программирования Pascal


Циклы Презентация по программированию 2015 год Часть 1. Виды циклов. I. Цикл с параметром.Выполняется заранее определенное количество раз. FOR – дляTO – доDO - выполнить ДЛЯ 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 убывает если в теле цикла несколькодействий если в теле цикла одно действие i,1,n Действие 1 Действие 2 i,1,n Действие 1 Действие 2 FOR i:=1 TO N DO BEGIN действие1; действие2; END; FOR i:=1 TO N DO действие1; действие2; Блок-схема цикла с параметром. Виды циклов. 2 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 II. Цикл с постусловием.Выполняется всегда хотя бы один раз.Выполняется пока условие ложно. REPEAT – повторятьUNTIL – до тех пор ПОВТОРЯТЬ действие1; действие2; ДО ТЕХ ПОР (ПОКА УСЛОВИЕ ЛОЖНО); REPEAT действие1; действие2; UNTIL (ПОКА УСЛОВИЕ ЛОЖНО); условие Действие 1 Действие 2 да нет Виды циклов. 4 Пример 2. Вывести на экран 64 вертикальные линии. Виды циклов. 5 повторять до тех пор пока условие ложно WHILE (УСЛОВИЕ ИСТИННО) DO BEGIN действие1; действие2; END; III. Цикл с предусловием.Может не выполнится не разу.Выполняется пока условие истинно. WHILE – покаDO – выполнять ПОКА (УСЛОВИЕ ИСТИННО) ВЫПОЛНЯТЬ НАЧАЛО действие1; действие2; КОНЕЦ; нет условие Действие 1 Действие 2 да Виды циклов. 6 WHILE (УСЛОВИЕ ИСТИННО) DO BEGIN действие1; действие2; END; условие Действие 1 Действие 2 да нет WHILE (УСЛОВИЕ ИСТИННО) DO действие1;действие2; условие Действие 1 Действие 2 да нет Виды циклов. 7 Пример 3. Вывести на экран 64 вертикальные линии. Виды циклов. 8 повторять пока Х меньше 640 Часть 2. Графические задачи на циклы. Задача 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 do line(320,400,x*10,1);end. Графические задачи на циклы. 9 Задача 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 (x>640); end. В теле цикла могут изменяться две переменные Графические задачи на циклы. 10 Задача 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 строки Графические задачи на циклы 12 Часть 3. Расчетные задачи на циклы. Построить таблицу значений функции 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 Построить таблицу значений функции, на интервале [-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 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: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 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 (x>1); end. Пусть все числа, по модулю меньшие 0,000000000001будут для нас нулями. Вот одно из возможных решений данной проблемы: Расчетные задачи на циклы 16 Задача 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 Задача 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 Задача 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 Блок-схема к задаче 5 начало D,1,9 E,0,9 d+e=10 Вывод d*10+e конец Тело цикла Внутренний цикл Внешний цикл да нет Расчетные задачи на циклы 20 Задача 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 Задача 8. Вычислить площадь фигуры ограниченной линиями: X=1, X=4, Y=0, . Program n8;Uses 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 Задача 9. Найти количество цифр в числе введенном с клавиатуры. Program n8;Uses Crt;Var 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; Часть 4. Всегда ли нужны циклы. Задача 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 Program n10; Uses crt; var s:Real; begin Clrscr; s:=(2+100)/2*50; writeln('s=',s:10:5); End. Вспомним формулу суммы n членов арифметической прогрессии Всегда ли нужны циклы 24 Найдем количество n членов в этой последовательности: an=a1+d(n-1) 100=2+2(n-1) 100=2+2n-2 100=2n n=50 Подставим значения в формулу суммы