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

Структура цикла с заданным числом повторений.

1.png

Общий вид конструкции: 

Screenshot_12.png

I — параметр цикла;

M — начальное значение параметра;

N — конечное значение параметра

h — шаг, с которым изменяется параметр цикла.

Порядок выполнения цикла-ДЛЯ (цикла с параметром): 

  • вычисляется значение M и N;
  • параметру цикла присваивается значение M;
  • если M не превышает значение N, то выполняется тело цикла.
  • если M больше N, то цикл заканчивается.

Используем цикл с параметром для Робота и нарисуем прямоугольник.

Screenshot_14.png

План урока:

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

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

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

Решение задач с использованием операторов 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. Программа завершает свою работу. Необходимо проверить правильность выведенных данных и, если это необходимо, поправить код для более корректной работы.

Вопросы:

·    
Организация
цикла с заданным числом повторений.

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

Рассмотрим алгоритм
чтения книги, в которой 100 страниц:

·    
открыть
книгу,

·    
50
раз:

·    
прочесть
2 страницы,

·    
перевернуть
страницу;

·    
закрыть
книгу.

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

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

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

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

Рассмотрим, как записывается
цикл с параметром в языке Паскаль. Для этого используется оператор for,
что
в переводе на русский язык означает «Для». После этого слова следует
название параметра, который должен быть заранее объявлен в разделе описания
переменных. Параметр может принадлежать только к одному из целочисленных типов.
Далее следует знак присваивания, после него начальное значение параметра.
Дальше, через пробел, следует одно из двух служебных слов to
или
downto. Первое используется,
когда конечное значение параметра больше начального, когда конечное значение
меньше начального используется второе. После через пробел указывается конечное
значение параметра, а после него через пробел служебное слово do.
В языке Pascal шаг изменения параметра
всегда равен 1, поэтому его указывать не требуется. Дальше со следующей строки,
на расстоянии одного пробела от слова for
следует тело цикла. Если в нём больше одного оператора, оно записывается между
логическими скобками.

for <параметр>:=<начальное значение> to/downto <конечное
значение> do

begin

 <оператор
1>;

 <оператор
2>;

 …

end;

Описание цикла с
параметром

Задача:
Написать программу, которая возводит число k
в целую положительную степень n.

Составим блок-схему
алгоритма решения задачи. В начале пользователь вводит значения k
и n. Обозначим результат
выполнения программы r
и присвоим ему в начале значение k0,
то есть 1. В дальнейшем мы будем умножать его на k
необходимое
количество n раз. Напишем для этого
цикл с параметром. Назовём параметр i, начальным значением параметра
будет 1, а конечным – n.
Так как шаг будет равен 1, указывать его не требуется. В цикле будет следовать
всего один блок, в котором переменной r
присваивается его значение, умноженное на n.
Таким образом с помощью цикла мы умножим r
на k n
раз. После цикла нам достаточно вывести на экран значение r.
На этом наша программа завершит работу.

Блок-схема
алгоритма

Напишем программу по
составленной блок-схеме. Назовём её stepen.
В разделе описания переменных объявим переменные n
и i. n
целое по условию задачи, а i параметр цикла, значит обе они
будут целочисленного типа byte.
Дальше укажем переменные k
и r, так как в условии
задачи не сказано, что k
целое, они будут принадлежать к вещественному типу real.

Запишем логические
скобки. В начале запишем оператор writeln,
который будет выводить сообщение о том, что это программа вычисления значения k^n.
Дальше будет следовать оператор write,
который будет выводить запрос на ввод k,
считаем его с помощью оператора readln.
Точно также выведем запрос на ввод и считаем n.
Теперь запишем оператор присваивания переменной r
значения 1. Теперь запишем цикл с параметром i,
изменяющимся от 1 до n.
Он будет содержать всего один оператор, поэтому логические скобки указывать не
требуется. Это будет оператор присваивания r:=r*k.
После цикла будет следовать оператор Райт, который будет выводить на экран
поясняюще сообщения что значение выражения равно r.

program stepen;

var

 n, i: byte;

 k, r: real;

begin

 writeln (‘Программа вычисления значения k^n.’);

 write (‘k=’);

 readln (k);

 write (‘n=’);

 readln (n);

 r:=1;

 for i:=1 to n do

  r:=r*k;

 write (‘k^n=’, r);

end.

Исходный код программы

Запустим программу на
выполнение. Введём k
=
2
,
а n = 10.

210 = 1024.

Снова запустим программу
и введём k = 0.5,
а n = 2.

0.52 = 0.25.
Программа работает правильно задача решена.

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

Задача: Вычислить
значение суммы 11 + 22 + 33 + … + nn.
Значение n пользователь вводит с
клавиатуры. 2 ≤ n
≤ 10.

Запишем блок-схему алгоритма
решения задачи. В начале пользователь вводит с клавиатуры значение n.
Обозначим результат выражения s,
и сразу учтём в нём первое слагаемое. Так, как 11 = 1, присвоим s
значение 1. Далее будет следовать цикл для i
от 2 до n. В нём нам нужно расcчитать
значение очередного слагаемого, то есть ii
и
добавить его к результату выражения. Обозначим очередное слагаемое p, и
присвоим ему значение i0,
то есть 1. Дальше будет следовать вложенный цикл для j
от 1 до i. Это будет цикл для
расчёта значения ii.
В нём будет всего один блок, присваивания переменной p
её значения умноженного на i.
После внутреннего цикла нам достаточно присвоить s
её значение, увеличенное на p.
После внешнего цикла нужно вывести на экран значение переменной s.
На этом наша программа завершит свою работу.

Блок-схема
алгоритма

Напишем программу по
составленной блок-схеме. Назовём её summa.
В программе на понадобится 5 переменных. Переменные s
и p будут хранить значение
итоговой суммы и отдельных слагаемых, они будут принадлежать к целочисленному
типу integer. Так как n
по условию задачи не превышает 9, а i
и j изменяются в диапазоне
от 1 до n, для их хранения нам
будет достаточно типа byte.

Запишем логические
скобки. В начале запишем оператор write,
который будет выводить запрос на ввод n.
Дальше запишем оператор readln
(
n).
Дальше будет следовать оператор присваивания s:=1.
Сразу с помощью оператора write
выведем на экран сообщение: «1^1». Теперь запишем цикл для i
от 2 до n. Так как в нём будет
несколько операторов, они будут замкнуты между логическими скобками, запишем их.
В начале цикла запишем оператор write,
который будет выводить на экран сообщение, состоящее из знака «+», а также «i^i».
Дальше присвоим переменной p
значение 1. Теперь запишем вложенный цикл для j
от 1 до i, который будет содержать
оператор присваивания p:=p*i.
После внутреннего цикла будет следовать оператор присваивания s:=s+p.
После внешнего цикла запишем оператор write,
который будет выводить на экран знак равенства и значение s.

program summa;

var

 s, p, i, j, n: integer;

begin

 write (‘n=’);

 readln (n);

 s:=1;

 write (‘1^1’);

 for i:=2 to n do

 begin

  write (‘ + ‘, i, ‘^’, i);

  p:=1;

  for j:=1 to i do

   p:=p*i;

  s:=s+p;

 end;

 write (‘ = ‘, s);

end.

Исходный код программы

Запустим программу на
выполнение. Введём n
=
5.

11 + 22
+ 33 + 44 + 55 = 3413. Программа работает
правильно. Задача решена.

Задача:
Написать программу для перевода целых положительных чисел из двоичной системы
счисления в десятичную.

Мы помним, что для того,
чтобы перевести число из двоичной степени в десятичную нужно представить его в
виде суммы его цифр, умноженных на два в степени на единицу меньшей разряда
числа.

10102
= 0 × 20 + 1 × 21 + 0 × 22 +
1 × 23

Составим блок-схему
алгоритма решения задачи. Число в двоичной системе счисления будем хранить в
виде строки, назовём её s.
В начале пользователь вводит её значение с клавиатуры. Обозначим число в
десятичной системе счисления d.
Так как мы ещё не рассчитали его значение, присвоим ему значение 0. Так же нам
понадобится множитель слагаемых суммы, обозначим его m,
присвоим ему начальное значение 20, то есть 1.  Мы будем
рассчитывать сумму начиная с цифры, младшей по разряду. Запишем цикл для i
от значения равного длине s
до
1. Он будет начинаться с преобразования i-того
символа строки s, в число равное
соответствующей цифре двоичного числа, назовём её c.
Дальше присвоим d:=d+c*m.
После этого присвоим m
его значение, умноженное на основание системы счисления, то есть 2. После
завершения работы цикла выведем на экран значение переменной d.
На этом наша программа завершит свою работу.

Блок-схема
алгоритма

Напишем программу по
составленной блок-схеме. Назовём её BinToDec.
Раздел описания переменных будет содержать строку s,
а также переменные d,
i, m,
c и дополнительную переменную е,
принадлежащие к целочисленному типу integer.
Запишем логические скобки. В начале запишем оператор writeln,
который будет выводить сообщение о том, что это программа перевода чисел и
двоичной системы счисления в десятичную и запрос на ввод числа. Дальше будет
следовать оператор readln,
который будет считывать значение строки s.
Запишем операторы присваивания: d:=0 и
m:=1.
Теперь запишем цикл для i
от длины s до 1. В этом цикле после
слова for будет следовать
присваивания i значения функции
определяющей длины строки, которая записывается словом length,
в качестве параметра зададим ей строку s.
Далее, так как параметр цикла будет уменьшаться, будет следовать служебное
слово downto. Конечным
значением i будет 1. Дальше в
логических скобках запишем тело цикла. Оно будет начинаться с функции
преобразования i-того символа строки s
в
число c. Она записывается
служебным словом val, после которого в
скобках через запятую указывается символьное или строковое значение, в нашем
случае i-тый символ строки s,
числовая переменная, в нашем случае c,
и дополнительная целочисленная переменная, в которую в случае ошибки будет
сохранён номер некорректного символа, в нашем случае e.
Теперь увеличим значение переменной d
на произведение c и m,
а также увеличим значение m
в 2 раза. После цикла запишем оператор write,
который будет выводить значение d
и сообщение о том, что это введённое число в десятичной системе счисления.

program BinToDec;

var

 s: string;

 d, i, m, c, e: integer;

begin

 writeln (‘Программа перевода чисел из двоичной системы счисления в десятичную.
Введите двоичное число.’);

 readln (s);

 d:=0;

 m:=1;

 for i:=length(s) downto 1
do

 begin

  val (s[i], c,
e);

  d:=d+c*m;

  m:=m*2;

 end;

 write (d, ‘ — введённое число в десятичной системе счисления.’);

end.

Исходный код программы

Запустим программу на
выполнение. Введём 1111 1111.

В десятичной системе
счисления это число действительно равно 255. Ещё раз запустим программу и
введём 1000.

В десятичной системе
счисления это действительно число 8.

Важно запомнить:

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

Для записи любого алгоритма достаточно трёх основных алгоритмических конструкций (структур): следования, ветвления, повторения.

Повторение — алгоритмическая конструкция, представляющая собой последовательность действий, выполняемых многократно.

Алгоритмы, содержащие конструкцию «повторение», называют циклическими или циклами.

Последовательность действий, многократно повторяющаяся в процессе выполнения цикла, называется телом цикла.

В зависимости от способа организации повторений различают три типа циклов:

1) цикл с заданным условием продолжения работы;

2) цикл с заданным условием окончания работы;

3) цикл с заданным числом повторений.

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

Когда учитель заранее знает, какое количество тетрадей дано ему на проверку, реализовать алгоритм проверки тетрадей можно с использованием циклической конструкции с фиксированным числом повторений. Эти конструкции удобно использовать в таких задачах, как подсчет факториала числа n, вычисление n степени числа и им подобных, где заранее известно, сколько раз необходимо выполнить повторения. С помощью блок-схемы такую конструкцию можно записать следующим образом:

Пример цикла с параметром:

Пришиваем пуговицы

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

Пример 1. Рабочий день курьера.

Курьеру дано задание развести документы по десяти адресам. Адреса известны курьеру заранее, и он заранее прокладывает маршрут своего движения.

  • 1. Приехать в главный офис.
  • 2. Забрать документы.
  • 3. Повторить 10 раз пункты с 4-го по 7-й.
  • 4. Поехать по очередному в списке документов адресу.
  • 5. Найти нужного человека.
  • 6. Отдать документ.
  • 7. Получить подпись.
  • 8. Приехать в главный офис.
  • 9. Отчитаться о проделанной работе.

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

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

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

Реализация циклических конструкций в целом во многих языках очень похожа:

Цикл с предусловием Цикл с постусловием Цикл с фиксированным числом повторений
Pascal while выражение do оператор; repeat Список операторов until (выражение); for переменная := <начальное значение> {to | downto} <конечное значение> do оператор;

Семантика этих операторов в разных языках также схожа:

Цикл с предусловием Цикл с постусловием Цикл с фиксированным числом повторений
Сначала проверяется условие, определяющее вход в цикл. Если оно истинно, то выполняются операторы тела цикла. Сначала выполняются операторы тела цикла, а после проверяется условие, которое определяет выход из цикла. Цикл выполняется от начального до конечного значения счетчика с указанным шагом.

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

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

Пример 2

Задача: Подсчитать сумму квадратов первых n натуральных чисел.

Эту задачу одинаково удобно решать двумя способами: используя цикл с предусловием или используя цикл с фиксированным числом повторений. Теперь рассмотрим фрагменты программ для обоих вариантов.

Использование цикла с предусловием Цикл с фиксированным числом повторений
Pascal write(‘Введите n: ‘);

readln(n);

s:= 0;

i:= 0;

while i < n do

begin

i:= i + 1;

s:= s + i * i

end;

writeln(‘Сумма квадратов равна ‘, s);
write(‘Введите n: ‘);

readln(n);

s:= 0;

for i:= 1 to n do

s:= s + i * i;

writeln(‘Сумма квадратов равна ‘, s);

Наглядные примеры циклических алгоритмов

Пример 3. Вычисление среднего значения последовательности чисел, заканчивающейся нулем (цикл с предусловием)

Pascal

program Average;

var a, s: real;

n: integer;

begin

s:= 0;

n:= 0;

write(‘Введите a’);

read(a);

while a <> 0 do

begin

s:= s + a;

n:= n + 1;

write(‘Введите a’);

read(a)

end;

if n > 0 then

write(‘Среднее = ‘, s / n)

end.

Пример 4. Вычисление суммы последовательности чисел, заканчивающейся нулем (цикл с постусловием). По условию мы должны ввести хотя бы одно число. Если последовательность пустая, то первым числом будет число 0, но его все равно придется ввести. Поэтому логично использовать для записи алгоритма цикл с постусловием, то есть осуществлять проверку после того, как мы ввели число.

Pascal

program Sum;

var a, s: real;

begin

s:= 0;

repeat

write(‘Введите a’);

read(a);

s:= s + a;

until a = 0;

writeln(‘Сумма = ‘, s)

end.

Пример 5. Вычисление целой неотрицательной степени ненулевого числа N (цикл с фиксированным числом повторений)

Pascal

program power;

var i, n: integer;

s, x: real;

begin

write (‘Введите число и степень x, n: ‘); readln(x, n);

s:= 1;

for i:= 1 to n do

s:= s * x

writeln (‘x^n = ‘, s)

end.

Понравилась статья? Поделить с друзьями:
  • Как найти карту в google play
  • Как найти преподавателя по рисованию
  • Как исправить растянутое изображение на экране компьютера
  • Как найти человека по совместимости
  • Как найти майка лжеца