Циклический алгоритм Алгоритм называется циклическим, если в нем есть повторяющиеся действия. Цикл означает ПОВТОРЕНИЕ Условие продолжения цикла Повторяющиеся.

Презентация:



Advertisements
Похожие презентации
Оператор цикла с предусловием. Оператор цикла с предусловием используется в тех случаях, когда заранее неизвестно число повторений цикла. Форма записи.
Advertisements

Циклические программы Информатика и ИКТ 9 класс Гимназия 1 г. Новокуйбышевска Учитель информатики: Красакова О.Н.
Циклические конструкции 1. Цикл с предусловием предусловием 2. Цикл с постусловием постусловием 3. Цикл с параметром параметром 4. Вложенные циклы Вложенные.
Циклы на языке Pascal повторение. Циклы позволяют многократно выполнять одну или группу команд, причем в тексте программы нет необходимости записывать.
Pascal Алгоритмы циклической структуры, программирование на языке Pascal 9 класс.
1 Программирование на языке Паскаль Циклы. 2 Цикл – это многократное выполнение одинаковой последовательности действий. цикл с известным числом шагов.
Знакомство с языком Паскаль Структура программы Ветвление на Паскале Циклические программы Пример линейной программы Пример программы с ветвлением Пример.
АЛГОРИТМИЧЕСКАЯ СТРУКТУРА ЦИКЛ АЛГОРИТМИЧЕСКАЯ СТРУКТУРА ЦИКЛ В TURBO PASCAL Условие Оператор ДаНет Учитель информатики: Коваленко Татьяна Викторовна
Программирование на Pascal. Темы Повторение. Составные логические условия Повторение. Составные логические условия Повторение. Составные логические условия.
Циклические вычислительные процессы. Процессы, в которых ряд действий повторяются многократно по одним и тем же математическим зависимостям, называются.
Организация повторений в Паскале. Найди ошибки: Program new Uses crt; Var a, b, c integer Begin clrscr Readln(a,b); C:=a*a+b*b Wreteln(c); End.
Алгоритмическая структура цикл Алгоритм циклической структуры - это алгоритм, в котором происходит многократное повторение одного и того же участка программы.
Pascal Алгоритмы циклической структуры, программирование на языке Pascal Часть 2 8 «Б» и 10 «Б» классы.
ЦИКЛИЧЕСКИЙ АЛГОРИТМ Цели: -Познакомиться с понятием циклического алгоритма. -Освоить языковые средства для реализации циклических алгоритмов.
Циклический алгоритм –это алгоритм команды которого выполняются несколько раз подряд. В языке Паскаль имеется три различных оператора цикла: 1. Оператор.
Организация циклов Компьютер может заданное число раз выполнить одни и те же действия с разными данными. Повторяющиеся действия в программировании называются.
Программирование на языке Паскаль. 3 Циклы Цикл – это многократное выполнение одинаковой последовательности действий. цикл с известным числом шагов цикл.
Организация повторений в Паскале. i,1,n Действие 1 Действие 2 i,1,n Действие 1 Действие 2 FOR i:=1 TO N DO BEGIN действие 1; действие 2; END; FOR i:=1.
Организация циклических процессов начало К:=1 S:=1 N:=5 K<=N S:=S*K K:=K+1 S конец данет При решении многих задач вычислительный процесс имеет циклический.
«Программирование циклических алгоритмов» Учитель информатики гимназии 12 г. Тюмени Бугаева Елена Викторовна.
Транксрипт:

Циклический алгоритм Алгоритм называется циклическим, если в нем есть повторяющиеся действия. Цикл означает ПОВТОРЕНИЕ Условие продолжения цикла Повторяющиеся действия ДА НЕТ Повторяющиеся действия называются телом цикла

Цикл с параметром или счётчиком Цикл может быть со счётчиком, то есть условием продолжения цикла будет достижение счётчиком какого-то заранее известного значения Счетчик

Цикл ПОКА Цикл может повторяться ПОКА выполняется какое-то условие, например А>B. В этом случае заранее не известно сколько раз выполнится цикл. А>B Повторяющиеся действия, т.е.тело цикла, в котором А и В изменяются ДА НЕТ

Цикл со счётчиком Решим задачу возведения числа А в степень В умножением числа А само на себя В раз. Произведение будем находить в переменной С, количество умножений в переменной I(счётчик)

Пусть А=2, В=3 С=1 i=1 1

Program stepen; var a,b,c,i:integer; Begin write(a,b=); read(a,b); c:=1; for i:=1 to b do { для i от 1 до b выполнять } c:=c*a; writeln(ответ:,c) end.{ i автоматически увеличивается на 1 и проверяется условие i

Program stepen; var a,b,c,i:integer; Begin write(a,b=); read(a,b); c:=1; for i:=1 to b do c:=c*a; writeln(ответ:,c) end.

a,b=2 3 ответ: 8

Program stepen; var a,b,c,i:integer; Begin write(a,b=); read(a,b); c:=1; for i:=1 to b do c:=c*a; writeln(ответ:,c) end. begin end

a,b=2 3 ответ: 8 a,b=2 3 ответ: 2 ответ: 4 ответ: 8 a,b=2 13 ответ: 8192 a,b=2 14 ответ: 16384

Цикл со счётчиком (в общем виде) FOR I:=I1 TO I2 DO для I от I1 до I2 выполнять I-счетчик, переменная счётного типа I1- начальное значение I2 – конечное значение I увеличивается на 1 на каждом шаге цикла I=I2 – условие продолжения цикла Условие продолжения цикла проверяется на каждом шаге цикла.

Примеры алгоритмов с циклом FOR 1.Найти сумму квадратов чисел натурального ряда, то есть 1*1+2*2+3*3+…+N*N, где N – любое целое число. (файл UROK4PR1) VAR S,i,N:INTEGER; BEGIN S:=0;WRITE(N=);READ(N); FOR i:=1 TO N DO S:=S+i*i; WRITELN(S=,S) END. Здесь счетчик i совпадает с числами ряда Задание: выполнить программу для разных значений N найти максимальное значение N для S:integer 45 найти максимальное значение N для S:real 1500 Пусть N=5 iS

VAR S,I,N:INTEGER; BEGIN S:=0;WRITE(N=);READ(N); FOR i:=1 TO N DO S:=S+i*i; WRITELN(S=,S) END.

N=1 S= 1 N= 2 S= 5 N=3 S= 14 N=30 S= 944

Примеры алгоритмов с циклом FOR 2.Найти сумму чисел натурального ряда (1+2+3+…+N) и сумму обратных величин, то есть 1+1/2+1/3+…+1/N, где N – любое целое число. (файл UROK4PR2) var i,n,s:integer; sobr:real; begin write('n=');read(n); s:=0;sobr:=0; for i:=1 to n do begin s:=s+i;sobr:=sobr+1/i; end; writeln(' s=',s,' sobr=',sobr); end. Здесь счетчик i используем как числа ряда и знаменатель членов ряда Задание: выполнить программу для разных значений N Пусть N=5 iSSobr

Задания для самостоятельной работы 1.Выполнить UROK4PR1, UROK4PR2 для разных значений входных величин 2.Изменить программу UROK4PR1, чтобы найти сумму следующего ряда а+2а+3а…+Nа, где а и N любые числа. 3.Среди чисел от 1 до 99 найти такие, квадраты которых равны кубу суммы цифр числа, то есть, если, например 27 2 =(2+7) 3, то число 27 напечатать. 4. Подсчитать, сколько двузначных чисел таких, у которых не совпадают цифры в их десятичной записи. Например, у числа 56 первая цифра не равна второй Подсчитайте, сколько чисел от 1 до 1000 таких, которые делятся на 2, но не делятся на три (без остатка).Использовать функцию MOD (остаток от целочисленного деления)

Цикл ПОКА Решим задачу целочисленного деления числа А на число В вычитанием из числа А числа В ПОКА А>=В. Количество вычитаний и будет результатом целочисленного деления

Пусть А=25 В=6 С=0 25>6 19>6 13>6 7>6 1>6 A=19 A=13 A=7 A=1 C=1 C=2 C=3 C=4 Вывод С=4, А (Остаток)=1 начало Конец Ввод А, В С:=0 A:=A-B С:=С+1 А>=B Вывод С,А нет да нет АЛГОРИТМ Начальное значение переменной С=0

начало Конец Ввод А, В С:=0 A:=A-B С:=С+1 А>=B Вывод С,А нет да Program delenie; var a,b,c:integer; begin write(a,b=); read(a,b); c:=0; WHILE A>=B DO { пока a>=b выполнять } begin a:=a-b; c:=c+1 end; writeln(ответ:,c,остаток=,a) end.

Program delenie; var a,b,c:integer; begin write(a,b=); read(a,b); c:=0; WHILE A>=B DO begin a:=a-b; c:=c+1 end; writeln(ответ:,c, остаток=,a) end.

a,b=25 6 ответ: 4 остаток=1

Program delenie; var a,b,c:integer; begin write(a,b=); read(a,b); c:=0; WHILE A>=B DO begin a:=a-b; c:=c+1 end; end. writeln(ответ:,c, остаток=,a)

a,b=25 6 ответ: 4 остаток=1 a,b=25 6 ответ: 1 остаток=19 ответ: 2 остаток=13 ответ: 3 остаток=7 ответ: 4 остаток=1

Цикл ПОКА (с предусловием) в общем виде WHILE DO пока выполнять Такой вид цикла ПОКА называется циклом с предусловием, так как условие продолжения цикла проверяется до его выполнения. Тело цикла может не выполниться ни разу. В цикле с постусловием условие окончания цикла проверяется после его выполнения. Тело цикла один раз выполняется всегда.

Цикл ПОКА (с постусловием) в общем виде REPEAT (повторять) (любое число операторов) UNTIL (пока не) Этот вид цикла используют, если можно один раз выполнить тело цикла без проверки условия. Например в любой программе можно написать цикл - REPEAT UNTIL KEYPRESSED. Здесь логическая функция принимает значение ИСТИНА при нажатии любой клавиши. Если никакая клавиша не нажата KEYPRESSED = ЛОЖЬ и цикл продолжается. Этот цикл удобно использовать, чтобы не дать программе закончиться и выйти из MS DOS в текстовый редактор

Цикл ПОКА с постусловием Решим задачу нахождения наибольшего общего делителя двух чисел m и n (НОД)по алгоритму Евклида, вычитая из большего числа меньшее, пока они не станут равны.

АЛГОРИТМ файл UROK4PR7 program nod; Пусть m=24, n=64 var m,n:integer; begin write('m= n=');read(m,n); repeat if m>n then m:=m-n; if n>m then n:=n-m; until m=n;{условие окончания цикла} writeln('нод=',n); end. mn

Разряды = Примеры алгоритмов с циклом While и Repeat 1. Перевод трехзначного десятичного числа (А) в двоичное вычитанием степеней двойки. Вспомним алгоритм перевода без программы В программе W:=512; WHILE W>=1 DO BEGIN IF A>=W THEN BEGIN A:=A-W; WRITE('1') END ELSE WRITE('0'); W:=W/2; END; Пусть А=140

Примеры алгоритмов с циклом While и Repeat 1. Перевод трехзначного десятичного числа (А) в двоичное вычитанием степеней двойки, файл UROK4PR3 VAR W,A:REAL; BEGIN W:=512; {наибольшая степень двойки для 3-х-значного числа} WRITE('A(

Примеры алгоритмов с циклом While и Repeat 2. Печатать степени числа А, пока она не превысит второе число (В), файл UROK4PR4 program stepen; var a,b,c:real; begin write('a (>1),b');read(a,b); c:=a; while c

Примеры алгоритмов с циклом While и Repeat 3. Извлечение квадратного корня (Х)с помощью алгоритма Ньютона из числа U по формуле X:=(X+U/X)/2. Вычисление повторяется пока погрешность abs(X*X - U) > заранее заданного числа. Понятно, что при точном извлечении корня X*X – U = 0, файл UROK4PR5 program koren; var u,x:real; begin write('u= ');read(u); x:=(u+1)/2; while abs(x*x-u)>= do begin x:=(x+u/x)/2;writeln(x); end; end. Задание: выполнить программу для разных значений U Пусть U=26 X 13,5 7,713 5,541 5,1167 5, ,09902 Погрешность abs(x*x-u) = 9.313Е-10

Примеры алгоритмов с циклом While и Repeat 4. Алгоритм превращения в единицу любого введенного числа, файл UROK4PR6 program edinica; var x:integer; begin write('x=');read(x); while x1 do begin if odd(x) then x:=x*3+1 else x:=x div 2; writeln(x); end; end. Задание: проверить алгоритм для любых значений Х

Задания для самостоятельной работы 1. Составить программу нахождения наименьшего делителя данного целого числа. 2. Составить программу проверки, является ли данное число простым. 3. Составить программу, вычисляющую для данного нечетного N сумму 1 + 1/3 +1/5 + 1/ /N. 4. Дополнить пример 7: найти НОК (наименьшее общее кратное) чисел m и n по А·В формуле НОК= НОД(А,В) 5. В примерах 3, 4, 5, 6 заменить цикл WHILE на цикл REPEAT 6. В примере 7 заменить цикл с постусловием на цикл с предусловием.