Содержание
-
Тема урока: Циклы с условием
-
Оператор цикла с предусловием Формат оператора: while do Тело цикла Условие да нет Здесь while ( пока ) и do(выполнить) --- служебные слова. - логическое выражение; пока оно истинно, выполняется тело цикла; - простой оператор, с помощью которого записано тело цикла. while do begin операторыциклической части программы end; или:
-
Оператор цикла с предусловием while do begin операторыциклической части программы end; Выполнение оператора: 1). Вычисляется логическое выражение и проверяется условие. 2). Пока значение логического выражения истинновыполняются операторы циклической части. 3). Как только оно становится ложным, происходит выход из цикла. Если с самого начала значение логического выражения ложно, то операторы циклической части не выполняются ни разу. Возможен случай, когда в циклической части стоит оператор перехода (goto), передающий управление за пределы цикла. В такой ситуации цикл может завершится до его естественного окончания.
-
Задача1Мой богатый дядюшка подарил мне один доллар в мой первый день рождения. В каждый следующий день рождения он удваивал свой подарок и прибавлял к нему столько долларов, сколько лет мне исполнилось. Рассмотрим программу, указывающую, к какому дню рождения подарок превысит 100$. programPODAROK; vari, S: integer; begin i:=1; S:=1; whileS
-
Задача2Перед вами программа вычисления суммы элементов ряда: Вычисления заканчиваются, когда очередное слагаемое становится меньше 0.05 1/N>0.05 да S=S+1/N N=N+1 N=1, S=0 нет печатьS, N Блок-схема: Program SUMMA;var S:real;N:integer;begin S:=0;N:=1; while 1/N>0.05 do begin S:=S+1/N; N:=N+1 end; writeln('Сумма = ',S:10:9) end.
-
Задача3Проанализируем алгоритм вычисления суммы ряда: представленный в виде блок-схемы. Вычисления будут закончены, когда очередное слагаемое станет меньше числа 0,001. Блок-схема:
-
Program SUMMA;var s:real;n:integer;begin s:=0;n:=1; while n /((n+1)*(n+4)) >=0.001 do begin S := S + n / ((n+1)*(n+4)); n := n + 1 end; writeln('Сумма = ',s);end. Задача3Перед вами программа вычисления суммы ряда: Вычисления заканчиваются тогда, когда очередное слагаемое становится меньше числа 0,001.
-
program fact;VAR Factorial, N: Integer; BEGIN Factorial := 1; {стартовое значение факториала =0! } N := 1; {стартовое значение для условия цикла } WHILE N
-
Задача5Наша задача усложняется. Нужно вычислить сумму: S=1+1/2!+1/3!+...+1/N! (при целом N>0). Program SUMMA;vars,f:real;i,n:integer;begin write('ВведиN= ');readln(n); s:=1;f:=1; i:= 2; while i
-
Задача 6Рассмотрим программу нахождения наибольшего общего делителя (NOD) двух целых чисел: Mи N по алгоритму Евклида. program Evklid; var M, N, NOD: integer; begin writeln ('Введите два числа'); readln(M, N); whileMN do if M>N then M:=M-N else N:=N-M; NOD:=M; writeln'НОД = ',NOD); end. Начало Ввод M и N M N N=N-M M=M-N M N нет да да нет Вывод M Конец
-
Здесь: repeat (повторить) и until(до тех пор пока) -- служебные слова. ; ; … - операторы, образующие тело цикла; - логическое выражение; если оно ложно, то выполняется тело цикла. Тело цикла Условие да нет Оператор цикла с последующим условием Формат оператора: repeat until
-
Оператор цикла с предварительным условием Выполнение оператора: 1). Операторы циклической части (оператор1; оператор2; …;) выполняются один раз, затем проверяется логическое условие. 2). Если логическое условие ложно, то снова повторно выполняются операторы циклической части. 3). Условием прекращения циклических вычислений является истинное значение логического выражения после UNTIL. Следует подчеркнуть, что нижняя граница операторов циклической части четко обозначена словом UNTIL, поэтому нет надобности заключать операторы циклической части в скобки вида BEGIN --- END. В то же время и дополнительное наличиескобок не является ошибкой. repeat until
-
Задача7 Рассмотрим программу вычисления и печати элементов последовательности, каждый из которых вычисляется по формуле: где n – порядковый номер элемента. Вычисления продолжаются пока xn+1 – xn> 0.001. Программа: Program progr;var A, B:real;n:integer;begin n:=1; A := (2*n – 1)/(2*n); n:=n+1; B = (2*n – 1)/(2*n) repeat writeln(‘элемент=',A, ‘ его номер=‘, n-1); A := (2*n – 1)/(2*n); n:=n+1; B = (2*n – 1)/(2*n); untilABS (A - B)
-
Для решения одной и той же задачи могут быть созданы разные программы, например, для следующей задачи: Составить программу, которая организует ввод целых чисел и подсчёт количества введённых положительных и отрицательных чисел. Ввод должен осуществляться до тех пор, пока не будет введён ноль. В задаче в явном виде задано условие окончания работы. Воспользуемся оператором repeat(повторить) Различные варианты программирования циклического алгоритма
-
programn_17; var n, k1, k2: integer; begin k1:=0; k2:=0; repeat write ('Введите целое число>>'); readln (n); if n>0 then k1:=k1+1; if n 0 Начало Список данных n, k1, k2 - цел n
-
Ввод осуществляется до тех пор, пока не будет введён ноль. Работа продолжается, покаn 0. Воспользуемся операторомwhile: program n_18; var n, k1, k2: integer; begin k1:=0; k2:=0; n:=1; whilen0 do begin writeln ('Введите целое число>>'); read (n); if n>0 then k1:=k1+1; if n 0 да нет Вводn Начало Список данных n, k1, k2 - цел n 0 Выводk1, k2 Конец k1:=0k2:=0 n:=1 k1:=k1+1 k2:=k2+1 нет
-
Выучить конспект урока. 2. Задача. Составьте программу , которая напечатает элементы, каждый из которых вычисляется по формуле: где n - порядковый номер слагаемого. Вывод закончить, когда очередной элемент станет меньше числа 0,001. Задание на дом:
Нет комментариев для данной презентации
Помогите другим пользователям — будьте первым, кто поделится своим мнением об этой презентации.