Как составить циклический алгоритм в паскале

to continue to Google Sites

Not your computer? Use Guest mode to sign in privately. Learn more

План урока:

Понятие циклического алгоритма

Программирование циклического алгоритма

Операторы цикла

Решение задач с использованием операторов while, repeat, for

Понятие циклического алгоритма

В жизни людей очень часто встречаются циклы. Будь то жизнь маленького ребёнка или взрослого человека, а то и пожилых людей. Эти циклы можно расписать как выполнение одних и тех же действий, пока выполняется определённое условие. К примеру, взрослый человек находится на работе до момента, когда наступит время его ухода. И так изо дня в день, однако, есть и исключения в виде выходных. В жизни детей можно привести такой пример, как обязанность каждый день ходить в школу до момента, когда наступят выходные или каникулы.

Циклические алгоритмы – это алгоритмы, в которых некоторая часть операций повторяется многократно.

Цикл – конструкция с оператором, который повторяется определённое или неопределённое заранее количество раз. Действия, выполняющиеся последовательно внутри цикла, называют телом цикла.

В разных средах программирования циклические конструкции могут быть реализованы по-разному, но неизменным остается главный признак, отличающий циклы от линейных операций и ветвлений – возможность перемещения по программе не только «сверху-вниз», но и «снизу-вверх», для возврата к уже выполненным ранее действиям.

Циклы разделяют на три типа в зависимости от метода организации повторений:

  • Цикл, в котором задано условие окончания работы;
  • Когда известно условие продолжения работы цикла;
  • Когда известно число повторений цикла.

1 cikly razdelyaut na tri ripa

Программирование циклического алгоритма

Выбрав среду программирования Паскаль необходимо познакомиться с операторами, с помощью которых можно разработать программу с циклом. Ими являются while, repeat, for. Оператор while был разобран ещё на прошлом уроке, однако забывать о нём нельзя.

Цикл с предусловием

Цикл с предусловием реализует циклический алгоритм, записанный на языке программирования, с использованием определённого условия, истинность которого проверяется перед каждой итерацией цикла. Выполнение цикла прекращается, когда условие становится ложным.

2 cikl s predusloviem

Цикл с постусловием

Цикл с постусловием – это алгоритм циклической структуры, в котором проверка условия продолжения осуществляется после выполнения тела цикла.

Тело цикла с постусловием всегда выполняется как минимум один раз, независимо от истинности или ложности условия. Это его ключевое отличие от цикла с предусловием.

Такие циклы удобны, когда в условии используется результат выполнения тела цикла. Например, если мы хотим найти в тексте слово «стоп», мы должны сначала прочитать очередное слово, и только потом проверить, является ли оно искомым или следует продолжить поиск.

3 cikl s postusloviem4 cikl s postusloviem drugoi variant 

Цикл с заданным числом повторений

Этот вид цикла вместо логического условия выполнения использует параметр (счетчик) – специальную переменную, которая на каждом шаге цикла получает очередное значение из определенного диапазона. Цикл повторяется до тех пор, пока не будут перебраны все элементы диапазона. Таким образом, определяя диапазон, мы определяем заранее заданное число повторений.

4 cikl s postusloviem drugoi variant

Операторы цикла

Для программирования циклических алгоритмов и корректного выполнения программ с их использованием, необходимо знать операторы цикла. Чаще всего, в языке Паскаль используют операторы цикла: for, repeat и while. Разберем их подробнее.

Оператор while

Оператор while используется, когда нужно создать цикл с предусловием. Его схема в циклическом алгоритме выглядит следующим образом:

6 uslovie operatora

Если переводить его дословно, то можно сказать, что он работает по принципу «пока <условие> выполнять действие <оператор 1>», а заканчивается при переходе программы на слово end. Перед выполнением операторов внутри цикла условие обязательно проверяется и уже дальше, в зависимости от его истинности, программа либо выполняет тело цикла, либо переходит к последующим операторам.

Решение задач с использованием оператора while

Для более чёткого понимания решения задач нужно разобрать циклические алгоритмы, примеры которых приведены в решениях.

Задача 1. На вход подаются целые числа. До тех пор, пока не будет введено число, которое больше 17, программа должна вывести сумму полученного числа и числа 8. Когда вводимое число будет больше 17, то после выполнения программы цикл завершается.

Решение.

7 kod na vhod podautsya celye chisla

Шаг 1. Для начала необходимо дать программе название.

Шаг 2. Учитывая, что на вход подаётся целое число, указать тип данных, в данном случае – integer.

Шаг 3. Запись командного блока. Нужно написать слово, обозначающее начало, begin.

Шаг 4. Нужно дать переменной a значение 1, чтобы цикл начался автоматически.

Шаг 5. Запись цикла. Поскольку известно условие окончания работы, для этой задачи необходимо написать «пока a меньше или равно 17» и сделать переход к последующим операторам путём написания составного цикла.

Шаг 6. Первоначальный вывод программы. Необходимо написать то, что программа будет выдавать в первую очередь. В данном случае, она будет запрашивать целое число, запрос так и пишется: «Введите целое число: » .

Шаг 7. Запись необходимых операторов. Используя оператор readln программа считывает данные и переводит курсор на новую строку. Далее она производит операции над поступившими данными.

Шаг 8. Запись суммы. Исходя из условия задачи необходимо сделать так, чтобы программа выводила сумму входящего числа и числа 8. Осуществить это можно используя оператор writeln.

Шаг 9. Запись вывода программы после цикла. После того, как программа выполнит свою работу в цикле, необходимо показать, что она из него вышла. Можно просто попрощаться, как в данном случае.

Шаг 10. Проверка правильности записи алгоритма. В конце программного блока, после слова end нельзя забывать точку, её обязательно нужно поставить.

Оператор repeat

Оператор цикла repeat until используется для создания циклического алгоритма с постусловием. Его схема выглядит так:

8 operator cikla repeat until

Дословно оператор Паскаля repeat можно перевести как «повторяй <оператор 1>, до <условие>». В зависимости от истинности условия, либо происходит переход на повторение «оператора 1», либо осуществляется выход из цикла к последующим операторам.

Оператор repeat имеет два важных отличия от оператора while:

  • в операторе repeat сначала выполняется тело, а затем проверяется условие;
  • в операторе repeat прописывается условие завершения цикла, тогда как в операторе while – условие его продолжения.

Решение задач с использованием оператора repeat

Задача 1. Придумать алгоритм и написать по нему программу, результатом выполнения которой будет вывод последовательности натуральных чисел от 1 до введенного пользователем числа.

Решение.

9 kod pridumat algoritm i napisat programmu

Шаг 1. Название программы. В данном случае — «задача 1».

Шаг 2. Учитывая, что на вход подаются целые числа, требуется указать тип данных – integer.

Шаг 3. Командный блок. Запись начального слова begin.

Шаг 4. Вывод запроса программы. Поскольку программе необходимо целое число, нужно попросить пользователя ввести его. Осуществляется это с помощью процедуры writeln и текста «Введите целое число, которое больше 1: ».

Шаг 5. Необходимо присвоить переменной i значение 1 для того, чтобы последовательность начиналась с натурального числа.

Шаг 6. Запись цикла. Учитывая, что используется цикл с постусловием, необходимо сначала записать оператор, который будет повторяться, затем увеличить i на 1, чтобы образовывалась последовательность, и уже после этого прописать условие повторения. В данной задаче цикл перестаёт повторяться тогда, когда переменная i принимает значение больше введённого числа, которое является последним членом последовательности.

Шаг 7. Проверка программы на правильность в выводе. В результате своей работы программа должна вывести последовательность натуральных чисел от 1 до n, через пробел.

Оператор for

Используя оператор for можно задать нужное количество повторений одних и тех же действий. По-другому его называют оператором циклов с известным числом повторений. Он имеет два соединительных слова – это to и downto. Различие между ними в том, что при использовании первого к предыдущему значению переменной цикла прибавляется единица, а при написании второго – вычитается единица. Схемы оператора имеют следующий вид:

10 operator for

Дословно его можно перевести как «для переменной в значении от начального к конечному выполнять <оператор 1> ».

Решение задач с использованием оператора for

Рассмотреть пример с оператором for можно при написании короткого алгоритма для следующей задачи.

Задача 1. Напишите на одном из языков программирование алгоритм, который выводит квадраты чисел от 1 до 10.

Решение.

11 reshenie zadach s ispolzovaniem operatora for

Шаг 1. Необходимо дать программе название.

Шаг 2. Поскольку на вход числа не подаются, тип указывается в зависимости от данных, которые изначально находятся в программе. В данном случае – это целые числа. 

Шаг 3. Запись блока с командами алгоритма.

Шаг 4. Перебор последовательности чисел осуществляется в цикле for, в котором счетчик i пробегает значения от 1 до 10, а расчет и вывод квадратов осуществляется в процедуре write.

Решение задач с использованием операторов while, repeat, for

Задача 1 Разработать алгоритм программы, которая выведет таблицу умножения чисел от 1 до 10 на 9.

Решение

12 reshenie zadach algoritm programmy

13 razrabotat algoritm programmy

Для решения можно написать два вида кода. Однако, этапы разработки программы, задачи, которые ей необходимо выполнить, очень похожи на прошлые примеры, и она ничем не отличается от решения обычной задачи. Поскольку различие в этих двух кодах лишь в использованном операторе while и for, то рассматривать их по-отдельности нет смысла. Последовательность написания первого кода выглядит так:

Шаг 1. Нужно назвать программу.

Шаг 2. Так как пользователь не вводит никаких данных, то их можно ввести в сам код программы. Тип используемых данных в данном случае – это integer.

Шаг 3. Написание команд. Изначально нужно сделать так, чтобы программа вывела название того, для чего она предназначена. В данной задаче это «Таблица умножения на 9».

Шаг 4. Запись цикла for. С помощью него программа будет последовательно умножать числа от 1 до 10 на 9 и составлять таблицу умножения путём вывода каждого значения по схеме «9x, i, =, p», где i – умножаемое на 9 число, p – результат произведения 9 и i.

Шаг 6. Программа завершает свою работу. Необходимо проверить правильность выведенных данных и, если это необходимо, поправить код для более корректной работы.

Практическая работа №3

Программирование циклических алгоритмов на
языке Паскаль

Цель
работы
:
научиться программировать алгоритмы циклической структуры, освоить приемы
организации цикла с предусловием, цикла постусловием и цикла с параметром на
языке Паскаль.

Краткие
теоретические сведения

Циклический алгоритм
это алгоритм, в котором используется многократное выполнение набора команд,
которые повторяются указанное число раз, или пока не выполнено заданное
условие.
 

В Паскале существуют три оператора цикла: 

     
цикл
while … do с предусловием

     
цикл
repeatuntil с постусловием

     
цикл
for … to… do (с параметром)

Цикл с предусловием

 

Особенность данного вида цикла: операторы
цикла будут повторяться до тех пор, пока условие истинно. Его проверка делается
каждый раз перед выполнением операторов цикла. Цикл может ни разу не
выполниться, если его условие ложно.

На рисунке показано два варианта записи
данной структуры на языке программирования Паскаль: с использованием
операторных скобок (begin end), выполнение двух и более команд; запись с
одной командой.

Пример
1.
Вывести
на экран первые 10 натуральных чисел.

Program primer1; var
i:
integerbegin      i:=1;

     while
i<=
10 do begin             writeln(i);            
i:=i+
1;         end;       readln;     end.

Пример
2.
Напечатать
слово «Привет» указанное количество раз.

Program primer2; var
i,n:
integer; begin

write (‘количество
слов=’
);
readln(n); i:=
1; while i<=n do  begin {составной
оператор}  
writeln(‘Привет’);   i:=i+1
end; end.

Пример
3.
Определить 
сумму введенных с клавиатуры чисел до тех пор, пока не будет введен ноль.

Решение
данной задачи основывается на использовании цикла WHILE, т.к. мы не знаем,
когда будет введен ноль, и мы перестанем вводить числа.

program primer3; var
a,s:
integer; begin s:=0;

writeln(‘Введите
число’
);
readln(a); while(a<>
0) do     
begin

     s:=s+a;  {подсчет
суммы S}     
writeln(‘Введите число’);     
readln(a);        end; writeln(
‘Сумма чисел равна ‘,S); end.   

Пример
4.
Вычислить
сумму ряда 1+1.5+2+2.5+3+3.5+ .. + 30.

program primer4; var
sum:
real;    n:real; BEGIN   
sum:=
0;    n:=1;    while
n <=
30 do         begin            sum:=sum+n;           
n:=n+
0.5;         end;

   writeln(‘Сумма
равна ‘
,sum);
end.

2

Пример
5.
Составить таблицу значений функции                    на
отрезке [ -5; 5 ] с шагом 0.5.

 

program primer5; var
x
, y: real; begin

      x := 5;

 writeln(
x      y  ‘
);  while x <= 5 do 
 begin   y
:= 5 x*x/2;   writeln(x:4:1,
| ‘
,y:5:2);   x := x + 0.5

     end; end.

 Пояснение:
Под дробное число x выделяется четыре знакоместа. При этом
 значение
числа x округляется до одного знака после запятой
(x:4:1).

 Для
значения y выделяется пять знакомест, а округление идет до двух знаков
 после
запятой
(y:5:2)

Пример
6.
Используя алгоритм Евклида, найти НОД двух чисел.

 program NOD; var
M, N:
integer; begin

     writeln(‘Введите
М и N’
);      
readln(M, N);      while M<>N do  begin

               if
M>N
then M:=M-N else N:=N-M;      end;      write(
‘Н0Д
= ‘
,M);
end.

Цикл с постусловием

  

Особенность данного вида цикла: операторы
цикла будут повторяться до тех пор, пока условие ложно. Его проверка делается
каждый раз после выполнения операторов цикла. Команды, входящие в тело цикла,
всегда выполняются хотя бы один раз.

Пример
7.
Выполнить
деление числа 100 на 2 до тех пор пока не получим число меньше 10.

program primer7; var
b:
real; begin b:=100; repeat b:=b/2; until b<10;
writeln(b); end.

Пример
8.
Вывести
на экран числа, начиная с 1 до тех пор пока число не станет равным 50.

program primer8; var
b:
real; begin b:=0; repeat b:=b+1;
writeln(b); until b=
50; end.

Цикл с параметром

У данного цикла есть и другие названия: цикл-для,
цикл со счетчиком
(оператор for to do, оператор цикла с параметром).
Особенность данного цикла заключается в том, что использовать его нужно, когда
заранее известно количество повторений команд. На рисунке представлена блок
схема for (блок-схема цикла с параметром) и его запись на языке программирования
Паскаль.

 

Параметр
это целая величина, которая обозначается любой латинской буквой. Чаще всего
используют символ
i.
Начальные и конечные значения параметра тоже целые числа. Счетчик цикла может
работать в двух направлениях: увеличение или уменьшение значения параметра.

Как
работает цикл с параметром? 

Разберемся, как работает оператор for
в Паскале. Выполнение начинается с получения переменной i начального значения
а. Затем проверяется это значение с конечным значением n. Выполнение операторов
цикла происходит в случае, когда i меньше или равно n (при положительном шаге
счетчика) или i больше или равно n (при отрицательном шаге счетчика).

Пример
9.
Напишите
программу, которая выводит на экран 10 строк следующего содержания:

«**++==++**»

program for1; {
название программы } 
var i:integer; {
описание переменных } 
begin { начало программы } 

 
for
i:=1
to
10 do { цикл выполняется 10
раз }   
writeln(‘**++==++**’); {вывод
строки символов на экран } 
end. { конец программы
}

Пример
10.
Напишите
программу вывода на экран чисел от 1 до 10.

program for2; {Вывод
чисел}
var i : integer;      begin 

    for i:=1
to
10 do        writeln (i);     readln; end.

Пример
11.
Напишите
программу вывода на экран чисел от 10 до 1.

program for3; {Вывод
чисел}
var i : integer;      begin 

    for i:=10
downto
1 do        writeln (i);     readln; end.

Пример
12.
Дано
целое число N (> 0). Найти сумму чисел 1 · 2 · 3 · . . . (N слагаемых).

program for4; {
название программы } 
var i,n,s:integer; begin 

  write (‘введите
число слагаемых n=’
);   read(n); 

  s:=0; {первоначальное
произведение не должно быть нулевым}   
for i:=1
to
n
do    s:=s+i;
{ вычисление сомножителей}    write(‘s=’,s);  end.

Пример
13.
Дано
целое число N (> 0). Найти произведение 1 · 2 · 3 · . . . (N сомножителей).

program for5; {
название программы } 
var i,n:integer; p:realbegin 

  write (‘введите
число сомножителей n=’
);   read(n); 

  p:=1; {первоначальное
произведение не должно быть нулевым} 
  for i:=1
to
n
do 

  p:=p*i; {
вычисление сомножителей} 
  write(‘p=’,p);  end.

Пример
14.
Напишите
программу, которая выводит значения функции y=kx+b на интервале [2, 8] с шагом
1.

rogram for6; {
название программы } 

var x,a,n:integer; {
x- параметр цикла, a,n — интервал} 
k,b:real; {
коэффициенты функции} 
begin { начало программы }    write(‘Введите
значение k = ‘
);   readln(k);  

  write(‘Введите
значение b = ‘
);   readln(b);

  write(‘Введите
значение начала интервала = ‘
);   readln(a); 

  write(‘Введите
значение конца интервала = ‘
);   readln(n); 

  for x:=a
to n do
{ цикл с параметром }    writeln(‘x=’,x,
y=’
,k*x+b);
{вывод значений аргумента и функции }  end. {
конец программы }

Самостоятельно:

1.     
Вычислить
сумму первых 40 чисел натурального ряда.

2.     
Вывести
на экран 20 раз свое имя и название группы.

3.     
Вывести
на экран все двухзначные числа. Найти их сумму.

4.     
Вывести
на экран все двухзначные числа в порядке их убывания.

5.     
Вычислить
значение функции y = sin(x), для х меняющегося от
до

с шагом
/4.

6.     
Вычислить
значение функции y = x2 — 1 для х меняющегося от n1 до n2 с шагом 1.

7.     
Вычислить
значение функции y = x2 для х меняющегося от -6 до 6 с шагом 1.

8.     
Даны
10 чисел, найти их произведение. 

9.     
Даны
n действительных чисел. Найти среднее арифметическое всех элементов.

10. 
Дано
натуральное число n. Вывести квадраты чисел от 1 до n.

Выводы:

1.     
Цикл с предусловием While
выполняется до тех пор, пока условие выполнения не станет

ложным, и продолжается, если условие
истинно.

2.     
Цикл с постусловием Repeat
выполняется до тех пор, пока условие не станет истинно, если условие ложно,
цикл продолжается.  

3.     
Цикл с параметром For
используется переменная, называемая параметром цикла или счётчиком. Перед
выполнением цикла параметру (счётчику) устанавливается начальное значение.
После выполнения шага цикла значение параметра увеличивается на единицу. Цикл
продолжается до тех пор пока параметр не достигнет своего конечного значения,
которое указывается после to (downto).

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

Циклы бывают: с параметром (счётчиком), с условием. Циклы с условием ещё называют итерационными.

Циклы с параметром (счётчиком) выполняются заданное число раз.

Программа на Pascal Программа на Python
for (i)(:) (= n) to (k) do
      begin
       …
     end;
for (i) in range((n)):
     …

Пример

Дан ряд чисел от (1) до (20), нужно найти сумму ряда.

Чтобы найти сумму, нужно выполнить алгоритм (20) раз. Обозначим слагаемое через (i) и на каждом повторе будем добавлять в переменную (S). Запишем программу.

1.jpg

Рис. (1). Программа на Pascal

2.jpg

Рис. (2). Программа на Python

Примечание: в программном коде на Python в строке for i in range указываем (21), т. к. последнее число в заданный диапазон не входит.

Добавим в программу условие, например: нужно сложить не все цифры диапазона, а только чётные. Условие проверяет чётность числа.

3.jpg

Рис. (3). Программа на Pascal

4.jpg

Рис. (4). Программа на Python

Усложним условие: дан ряд из (N) чисел, посчитать количество чисел, кратных (5) и не кратных (3).

5.jpg

Рис. (5). Программа на Pascal

6.jpg

Рис. (6). Программа на Python

Циклы с условием

В Pascal используются циклы с постусловием (repeatuntil) и предусловием (while), а в Python используется только while.
 

В чём отличие?

Цикл repeatuntil — цикл, в котором серия команд повторяется, пока не выполнено условие, а в цикле while серия команд выполняется, пока выполняется условие.
В цикле while серия команд может не выполниться ни разу, в цикле repeat такого произойти не может — хоть раз, но выполнится.
В Python нет цикла repeat, но его можно организовать с помощью цикла while, например так:

7.jpg

Рис. (7). Программа с использованием постусловия

While True будет выполняться бесконечно, но при вводе с клавиатуры числа больше (0) цикл закончится.

Рассмотрим задачу: определить количество чётных цифр в числе.

Составим алгоритм решения задачи.

1. Вводим число.
2. «Отсекаем» последнюю цифру числа ((a)(:) (= x) (mod) (10)).
3. Проверяем: если цифра чётная ((if) (a) (mod) (2 = 0) (then) (k)(:) (= k + 1)), то добавляем в переменную, например (k), единицу ((k)(:) (= k + 1)).
4. Уменьшаем количество цифр на одну, команда (x) (div) (10) уменьшает число на (1) разряд.
5. Повторяем цикл, пока есть цифры в числе (while (x > 0) (do)).

8.jpg

Рис. (8). Программа на Pascal

9.jpg

Рис. (9). Программа на Python

Решение задачи «Как на ЕГЭ» (17)

Рассматривается множество целых чисел, принадлежащих полуинтервалу ((1310; 13154]), которые делятся на (3) и не делятся на (9, 11, 19).

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

Составим алгоритм решения.

1. Для решения будем использовать цикл for, диапазон от (1311) (круглая скобка) до (13154) включительно.
2. С помощью определения остатка от деления находим количество чисел, кратных (3) и не кратных (9), (11), (19).
3. Найдём максимальное число, которое попадает под условие (максимальным будет число, которое попадает под условие позже всего).
4. Найдём минимальное число, которое попадает под условие (минимальное число можно найти, «прокрутив» последовательность в обратном порядке).
5. Найдём разницу между минимальным и максимальным числом.

10.jpg

Рис. (10). Программа на Pascal

Ответ:  

(k = 2265).

Разница max-min (= 11835).

11.jpg

Рис. (11). Программа на Python

Ответ:  

(k = 2265).

Разница max-min (= 11835).

Как на ЕГЭ. Задание (14).

Для решения задания рассмотрим программу на Python.

Алгоритм решения.

1. Запишем число в переменную, например (x).

2. Организуем цикл while, пока (x) больше (0), будем выполнять следующие действия:

  1. определим остаток от деления (x) на основание системы счисления (например, (2)).
  2. Если будем считать количество единиц в числе, то добавим в переменную, например (k), единицу.
  3. Уменьшим число, т. е. поделим нацело на (2).

3. Напечатаем (k).

Значение арифметического выражения:

42018+8512−22017−130

 записали в системе счисления с основанием (2). Сколько значащих нулей содержится в этой записи?

сс.jpg

Рис. (12). Программа на Python

Ответ: (483).

Источники:

Рис. 1. Программа на Pascal. © ЯКласс.

Рис. 2. Программа на Python.© ЯКласс.

Рис. 3. Программа на Pascal. © ЯКласс.

Рис. 4. Программа на Python. © ЯКласс.

Рис. 5. Программа на Pascal. © ЯКласс.

Рис. 6. Программа на Python. © ЯКласс.

Рис. 7. Программа с использованием постусловия. © ЯКласс.

Рис. 8. Программа на Pascal. © ЯКласс.

Рис. 9. Программа на Python. © ЯКласс.

Рис. 10. Программа на Pascal. © ЯКласс.

Рис. 11. Программа на Python. © ЯКласс.

Рис. 12. Программа на Python. © ЯКласс.

Слайд 1

Циклы

Слайд 2

Цикл for

Слайд 3

Задача: Вывести на экран 5 раз « Hello ». Решение: умеем составлять линейный алгоритм program primer 1; begin writeln(‘ Hello’); writeln(‘ Hello ‘); writeln(‘ Hello ‘); writeln(‘ Hello ‘); writeln(‘ Hello ‘); end. Неэффективная программа

Слайд 4

Для записи повторяющейся последовательности операторов используют циклы Program primer 1; var i: integer; begin for i:=1 to 5 do begin writeln(‘Hello’); end; end. Здесь переменная i запоминает сколько раз выполнилась повторяющаяся команда (тело цикла)

Слайд 5

Цикл – это повторяющаяся последовательность операторов. Циклы бывают арифметические и итерационные Арифметический цикл – это такой цикл, число повторений которого известно заранее. В Pascal такой цикл обычно реализуется с помощью оператора for . Итерационный цикл – это такой цикл, число повторений которого заранее неизвестно и выход из цикла производится в случае выполнения или невыполнения какого-то условия. В Pascal такие циклы обычно реализуются с помощью операторов while и repeat

Слайд 6

Цикл for Принцип работы: Сначала счетчику цикла присваивается начальное значение. Если это значение не больше конечного значения, то выполняется тело цикла. Затем значение счетчика увеличивается на 1 и опять сравнивается с конечным значением. Если оно по-прежнему не больше конечного значения, то оператор выполняется еще раз и так далее. Замечание: если тело цикла состоит из одного оператора, то begin и end можно опустить

Слайд 7

Принцип работы: как и в первом случае, пока начальное значение не меньше конечного значения, то выполняется тело цикла. Затем значение счетчика уменьшается на 1

Слайд 8

Задачи: 1) Написать программу, которая выводит на экран все натуральные числа от 1 до n 2) Написать программу, которая подсчитывает сумму натуральных чисел от 1 до n 3) Написать программу, которая считает x n для вещественного x и натурального n 4) Написать программу, которая выводит на экран: 20 40 80 160 320 5) Написать программу, которая подсчитывает произведение натуральных чисел от 1 до n Решение

Слайд 9

1) Написать программу, которая выводит на экран все натуральные числа от 1 до n

Слайд 10

2) Написать программу, которая подсчитывает сумму натуральных чисел от 1 до n

Слайд 11

3) Написать программу, которая считает x n для вещественного x и натурального n

Слайд 12

4) Написать программу, которая выводит на экран: 20 40 80 160 320

Слайд 13

5 ) Написать программу, которая подсчитывает произведение натуральных чисел от 1 до n

Слайд 14

Решение задач ОГЭ Дан фрагмент программы. Чему будет равна переменная s в результате работы данной программы? Решение: В этой задаче есть цикл for. Тело цикла будет выполняться 4 раза (при n=2,3,4,5 ) . s=2 n=2 s=2+2*2=6 n=3 s=6+3*2=12 n=4 s=12+4*2=20 n=5 s=20+5*2=30 Программа выводит значение переменной s , значит на экране будет число 30 Ответ: 30

Слайд 15

Задачи Даны фрагменты программы. Что будет напечатано на экране в результате работы данных программ?

Слайд 16

Цикл While (цикл с предусловием)

Слайд 17

Задача: написать программу, которая выводит на экран все натуральные числа от 1 до n Решение: умеем составлять алгоритм с циклом for Программа с циклом for Program m 1 ; var i,n:integer; begin writeln(‘Введите n’); readln(n); for i:=1 to n do write(i,’ ‘); end . Программа с циклом while Program m2; var i,n:integer; begin writeln(‘Введите n’); readln(n); i:=1; while i<=n do begin write(i,’ ‘); i:=i+1; end ; end .

Слайд 18

Задача: написать программу, которая выводит на экран все натуральные числа от 1 до n Пока истинно условие i<=n , будет выполняться тело цикла: 1) вывод числа i 2) увеличиваем на единицу значение i

Слайд 19

Общий вид цикла while Цикл while организует выполнение тела цикла неизвестное заранее число раз. Выход осуществляется, если условие окажется ложным. Принцип работы: перед каждым выполнением цикла анализируется условие: если оно истинно, выполняется тело цикла и управление передается на повторную проверку условия. Если условие ложно – цикл завершается и управление передается на оператор, следующий за циклом while .

Слайд 20

Замечания : Если условие во время цикла не будет изменяться, то возможна ситуация зацикливания, т.е. цикл не закончится никогда. Поэтому внутри цикла должны находится операторы, приводящие к изменению условия, чтобы цикл мог корректно завершиться Если тело цикла состоит из одного оператора, то begin и end можно опустить

Слайд 21

Задачи: 1) Напечатать целые числа -10, -5, 0, 5…20 2) Найти произведение чисел из диапазона от A до B ( A<=B ) с шагом h Вход: 1 15 5 Вход: 10 100 30 Выход: 66 Выход: 2800000 3) Для заданного натурального n и действительного x подсчитать сумму Вход: 3 Вход: 2 Выход: 14 Выход: 5 4) Напечатать таблицу перевода расстояний в дюймах в сантиметры для значений 10, 11, 12,…20 дюймов (1 дюйм=2,54 см) Выход: 10 дюймов=25,4 см 11 дюймов=27,94 см … 20 дюймов=50,8 см Решение

Слайд 22

Задачи: 5) Напечатать все целые значения от A до B с шагом h . Вход: 1 10 2 Вход: 5 20 5 Выход: 1 3 5 7 9 Выход: 5 10 15 20 6) Найти сумму чисел из диапазона от A до B с шагом 3. Вход: 1 15 Вход: 0 10 Выход: 35 Выход: 18 7) Для заданного натурального n и действительного x подсчитать сумму Вход: 3 Вход: 5 Выход: 1.83 Выход: 2.28 8) Напечатать таблицу соответствия между весом в фунтах и весом в килограммах для значений 5,10,15…50 фунтов (1 фунт=0,453 кг) Выход: 5 фунтов=2,265 кг 10 фунтов=4,53 кг … 50 фунтов=22,65 кг Решение

Слайд 25

Цикл repeat (цикл с постусловием)

Слайд 26

Общий вид цикла Принцип работы: выполняется тело цикла. Если < условие > истинно, то выполнение цикла завершится. Если < условие > ложно, то снова выполняется тело цикла

Слайд 27

Замечания: т. к. условие завершения цикла проверяется в конце цикла, то операторы тела цикла выполнятся хотя бы один раз В цикле repeat , так же как и в операторе while возможна ситуация зацикливания в случае, если < условие > всегда будет оставаться ложным

Слайд 28

Задача: написать программу, которая выводит на экран все натуральные числа от 1 до n Программа с циклом while Program m2; var i,n:integer; begin writeln(‘Введите n’); readln(n); i:=1; while i<=n do begin write(i,’ ‘); i:=i+1; end ; end . Программа с циклом repeat Program m 3 ; var i,n:integer; begin writeln(‘Введите n’); readln(n); i:=1; repeat write(i,’ ‘); i:=i+1; until i>n end .

Слайд 29

Задачи: 1 ) Напечатать все целые значения от A до B с шагом h . Вход: 1 10 2 Вход: 5 20 5 Выход: 1 3 5 7 9 Выход: 5 10 15 20 2 ) Для заданного натурального n и действительного x подсчитать сумму Вход: 3 Вход: 2 Выход: 14 Выход: 5 3 ) Для заданного натурального n и действительного x подсчитать сумму Вход: 3 Вход: 5 Выход: 1.83 Выход: 2.28 Решение

Слайд 31

Источники информации М. В. Огнева, Е. В. Шуринова, Turbo Pascal : первые шаги. Саратов: издательство «Стило», 2001 http://opengia.ru/subjects/informatics-9 http://kpolyakov.spb.ru

Понравилась статья? Поделить с друзьями:
  • Скрипит ламинат как исправить без разборки в домашних
  • Как найти тангенс угла в многограннике
  • Как найти георадаром армейский груз
  • Как можно исправить ошибку в документах
  • Как можно найти потерявшийся пульт