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

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

  • автор:

Мир науки

Рефераты и конспекты лекций по географии, физике, химии, истории, биологии. Универсальная подготовка к ЕГЭ, ГИА, ЗНО и ДПА!

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

Также реализована работа с вложенными циклами. Вложенные циклы — циклические процессы, допускающие укладенисть одних циклов в другие.
Цикл с предусловием (или цикл-«пока») — это цикл, в котором тело цикла выполняется только при выполнении условия, заданной перед телом цикла. Если условие становится неверной, то работа цикла прекращается и управление передается оператору, следующему за оператором цикла.
На языке Паскаль оператор цикла с предусловием еще называется «циклом While-Do».
WHILE DO ;
Пример: вычисление суммы первых 100 натуральных чисел методом последовательного добавления.
m: = 1; S: = 0;
WHILE m begin
S: = S + m;
m: = m +1;
end;
Цикл с писляумовою (или цикл-«до») — это цикл, в котором тело цикла выполняется до тех пор, пока условие, заданное после тела цикла, не станет правильной. Если условие становится правильной, то работа цикла прекращается и управление передается оператору, следующему за оператором цикла.
На языке Паскаль оператор цикла с писляумовою еще называется «цикл Repeat-Until».
REPEAT UNTIL ;
Пример: вычисление суммы первых 100 натуральных чисел методом последовательного добавления.
m: = 0; S: = 0;
REPEAT
m: = m +1;
S: = S + m;
UNTIL m> = 100;
Цикл со счетчиком (с пошаговой изменением аргумента) — это цикл, в котором тело цикла выполняется заранее известное количество раз. В разных алгоритмических языках реализация этого цикла может предусматривать использование аргументов различных типов, изменение аргумента в разное шаг, диапазон изменения аргумента и т. д.
Цикл со счетчиком аргумента реализуется следующим образом:
1) аргумента предоставляется начальное значение;
2) если значение входит в заданный диапазон, то выполняется тело цикла;
3) аргумент меняется на заданный шаг; выполняется 2);
4) если значение не входит в заданный диапазон, то выполнение цикла прекращается и управление передается оператору, следующему за оператором цикла.
В языке Паскаль реализованы два оператора цикла с пошаговой изменением аргумента: «цикл For-То» и «цикл For-DownТо».
FOR : = TO DO ; (цикл с шагом 1),
FOR : = DOWNTO DO ; (цикл с шагом -1),
где — переменная порядкового типа,
и — выражения того же типа, что и (диапазон изменения счетчика цикла),
— простой или составной оператор.
Примеры: вычисление суммы первых 100 натуральных чисел методом последовательного добавления.
а) S: = 0;
for m: = 1 to 100 do
S: = S + m;
б) S: = 0;
for m: = 100 downto 1 do
S: = S + m;
При реализации цикла с пошаговой изменением аргумента в Паскале необходимо заранее знать о количестве повторений тела цикла и помнить о возможности изменения счетчика цикла только на 1 или -1.

Реферати і шпаргалки на українській мові.

Учебные материалы

  • Экономическая и социальная география Белоруссии;
  • Экономическая и социальная география Украины;
  • Экономическая и социальная география Молдавии;
  • Экономическая и социальная география Грузии;
  • Экономическая и социальная география Армении;
  • Экономическая и социальная география Азербайджана;
  • Экономическая и социальная география Казахстана;
  • Экономическая и социальная география Узбекистана;
  • Экономическая и социальная география Киргизии;
  • Экономическая и социальная география Туркменистана;
  • Природоведение;
  • Экономическая и социальная география Таджикистана;
  • Экономическая и социальная география Эстонии;
  • Экономическая и социальная география Латвии;
  • Экономическая и социальная география России;
  • Дальний Восток России;
  • География Литвы;
  • Социально-экономическая география.

Методические материалы

  • Теоретическая механика;
  • Электротехника;
  • Общая экономика;
  • Физическая химия;
  • Микробиология;
  • Растительность мира;
  • Зоология;
  • Религиоведение;

Вас приветствует сайт «Мир науки». На нашем образовательном сайте Вы сможете найти огромное количество шпаргалок, рефератов, конспектов, семинаров, лекций и прочих учебных материалов практически по всем учебным предметам! Все учебные материалы собирались такими же учащимися, как и Вы, уважаемые посетители. Именно поэтому, каждый конспект, каждая лекция и семинар несет в себе огромную информационную нагрузку и полностью раскрывает свою тему! Если Вам необходимы другие рефераты или конспекты, воспользуйтесь формой поиска на нашем образовательном сайте! Все материалы, которые предоставлены на нашем сайте носят исключительно научный характер и не заинтересованы или принятия какой-либо стороны, ведь наука ставит перед собой цель в повышение комфортности жизни человека и достижении новых, неизведанных ранее целей. Мы искренне рады каждому нашему посетителю и мы будем удовлетворять Вашу жажду к знаниям и дальше!

4. Программы циклической структуры

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

Программой циклической структуры называют такую программу, в которой операторы могут повторно, при изменяющихся значениях переменных выполняться несколько раз, образуя цикл . Различают следующие виды циклов (для их организации используются специальные сложные операторы — операторы циклов) : цикл с заданным числом повторений или цикл с параметром (операторы цикла for ) , цикл с предусловием (оператор цикла while ), цикл с постусловием (оператор цикла do while ). В циклах можно выделить управляющие части, определяющие начало и условия выполнения цикла, и тело цикла — части из одного оператора или блока, выполняющие необходимые преобразования данных. Цикл называют простым , если в его теле нет других циклов.

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

Структура оператора цикла for описывается синтаксической диаграммой for ( Сп1 ; W ; Сп2 ) Oп где используются следующие обозначения: Сп1 – список операторов присваивания, задающих начальные значения одной или нескольким переменным — параметрам цикла , которые могут испольльзоваться в выражении W и других частях цикла. Список может отсутствовать, если параметры получили требуемые значения до входа в цикл. W – выражение, вычисляемое перед передачей управления в тело цикла, если его значение «истина» (не ноль), или следующему за циклом оператору, если его значение «ложь» (ноль). Выражение может отсутствовать, если выход из цикла организован в его теле, например, с помощью оператора break (см. ниже). Сп2 – список операторов, задающих новые значения одному или нескольким параметрам цикла. Он может отсутствовать, если значения параметров цикла изменяются, при необходимости, в теле цикла. Оп — тело цикла, в качестве которого должен использоваться или блок, или один оператор, возможно, пустой. Ю. Е. Алексеев, А. В. Куров «Практикум по программированию на языке C в среде VS C++» Оглавление

68 Алгоритма выполнения цикла представляет следующая схема Например, в программе #include «stdafx.h» #include «math.h» int _tmain( int argc, _TCHAR* argv[]) < int i; for (i=0; i<=6; i++) printf( "%10d%8.2f\n" ,i*10,sin(3.14/18*i)); return 0; >оператор printf будет выполняться 7 раз при значениях параметра целого типа i, изменяющемся от 0 до 6 с шагом 1. На экран будет выведена таблица, в первом столбце которой будут целые числа 0, 10, 20, …, 60, представляющие величины углов в градусах, а во втором – соответствующие им значения синуса: 0 0.00 10 0.17 20 0.34 30 0.50 40 0.64 Ю. Е. Алексеев, А. В. Куров «Практикум по программированию на языке C в среде VS C++» Оглавление

69 50 0.77 60 0.87 Параметром цикла for может быть и вещественная переменная, а при наличии в списках Сп1 и Сп2 нескольких операторов они будут выполняться в порядке слева направо, как в следующем примере int i; float r; . . . for (i=1, r=-1.0; i

70 printf ( «%10d%8.4f\n» ,i,r); r/=-i-1; > В общем случае условие выхода из цикла может строиться на основе переменных, изменяющих свои значения в теле цикла, а не в заголовке цикла for . Например, в последнем фрагменте программы заголовок цикла можно заменить следующим for (i=1; fabs(r)>0.0013; ++i)

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

Структура оператора цикла while описывается синтаксической диаграммой while ( W ) Oп где используются следующие обозначения: W – выражение, Oп – тело цикла — оператор или блок, выполняемый внутри цикла. Заголовок цикла – конструкция, предшествующая части Оп, управляет выполнением цикла следующим образом: тело цикла будет последовательно выполняться, пока выражение W имеет отличное от нуля значение («истина»), или не будет выполняться вообще, если при входе в цикл значение выражения окажется равным нулю («ложь»). Например, фрагмент программы i=0; while (i <=60) < printf ( "%10d%8.2f\n" ,i,sin(3.14/180*i)); i=i+10; >буде выполнять ту же работу, что и в первом из предыдущих примеров на оператор for .

Цикл с постусловием (do while)

Структура оператора цикла do while описывается синтаксической диаграммой

do Oп while ( W ) ;

Ю. Е. Алексеев, А. В. Куров «Практикум по программированию на языке C в среде VS C++» Оглавление

71 Внутри такого цикла может находиться либо один оператор, либо блок, который будет выполняться один или более раз до получения выражением W значения ноль («ложь»).. Например, такую же таблицу, что и в первом примере с применением оператора for , будет выводить следующий фрагмент программы: i=0; do < printf( "%10d%8.2f\n" ,i,sin(3.14/180*i)); i=i+10; >while (i<=60); Существует возможность и досрочного выхода из любого цикла, организованного рассмотренными операторами, либо с помощью оператора безусловного перехода goto (их мы не будем использовать), либо с помощью оператора break . В теле любого из рассмотренных циклов допускается использовать оператор continue . Его действие сводится к тому, что сразу происходит переход к очередному выполнению тела цикла (в циклах f o r с очередным значением параметра), или выход из цикла, если выполнено условие его завершения. Следующий пример - на использование операторов break и continue . . . #include "conio.h" . . . int d,i; . . . d=0; for (i=1; i<=3; ++i) < printf(Ruc( "\nВведите перввый символ пароля: " )); if (getch() != 'a' ) //getch требует #include "conio.h" continue ; printf(Ruc( "\nВведите второй символ пароля: " )); if (getch() == 'b' ) < Ю. Е. Алексеев, А. В. Куров «Практикум по программированию на языке C в среде VS C++» Оглавление

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

Если вычислительный процесс содержит многократные вычисления по одним и тем же математическим зависимостям, но для различных значений входящих в них величин (переменных), то его называют циклическим. Многократно повторяемые участки вычислений называются циклами, а переменные изменяющиеся в цикле – переменными цикла. Алгоритм циклической структуры в наиболее общем виде должен содержать:

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

2 . Тело цикла: действия, повторяемые в цикле для различных значений переменных цикла;

3 . Модификацию (изменение) значений переменных цикла перед каждым новым его повторением;

4 . Управление циклом: проверку условия продолжения (или окончания) цикла, переход на начало цикла (или выход из цикла по его окончании).

На рис.показан общий вид циклического алгоритма.

Различают циклы с заданным и заранее неизвестным числом повторений. Циклы первого типа называют циклами со счетчиком. Число повторений тела цикла в этом случае подсчитывается с помощью специальной переменной (счетчика), для которой известны только начальное и конечное (пороговое) значение, шаг ее изменения. Управление циклом осуществляется на основании сравнения текущего значения счетчика с заданным порогом. Переменную – счетчик часто именуют параметром цикла, а сам цикл – циклом с параметром.

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

Оператор цикла с параметром имеет следующий вид:

FOR N:=A TO B DO C или FOR N:=A DOWNTO D DO C

Оператор цикла с предусловием

Оператор цикла с предусловием имеет следующую общую форму записи:

Оператор выполняется в цикле WHILE до тех пор, пока УСЛОВИЕ истинно (имеем значение TRUE). Если условие ложно (имеем значение FALSE), то выполняется оператор, следующий за WHILE. Если условие

ложно с самого начала, то оператор не вычисляется ни разу. Условие

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

и термин «предусловие».

PROGRAM SUMMA ;

VAR X, SUM: REAL;

BEGIN

SUM: = 0;

X: = 10;

WHILE X > 5.5 DO

BEGIN

SUM: = SUM + X;

X: = X – 1

END.

WRITELN (‘ Сумма =’ , SUM);

WRITELN (X =,X)

END.

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

Оператор цикла с постусловием имеет следующий вид:

REPEAT

UNTIL ,

Действие оператора REPEAT подобно действию оператора WHILE, но проверка условия производится после очередного цикла, что обеспечивает его выполнение хотя бы один раз. Служебные слова REPEAT,

UNTIL по действию похожи на операторные скобки BEGIN – END: между ними можно поместить группу операторов, отделяя их друг от друга точкой с запятой. Оператор 1. оператор N выполняется в цикле REPEAT до тех пор, пока условие ложно.

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

PROGRAM SUMMA_1;

VAR X,SUM:REAL;

BEGIN

SUM:=0;

X: =10;

SUM :=SUM+X;

X: =X-1;

WRITELN (‘SUM =’ , SUM);

WRITELN (‘X=’,X);

END.

Вложенные циклы

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

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

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

Познакомимся с первым из них – оператором цикла с предусловием while.

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

При выполнении оператора while определенная группа операторов выполняется до тех пор, пока определенное в операторе while булево условие истинно. Если условие сразу ложно, то оператор не выполнится ни разу.

Общая форма записи следующая

while do
begin
группа операторов
end;

На русском языке это звучит примерно так:

пока выполняется это условие, делай
от начала
группа операторов
до конца;

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

При использовании цикла с предусловием надо помнить следующее:

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

Вернемся к нашей задаче вычисления суммы чисел. При вычислении суммы используем следующий прием: вначале, когда еще не задано ни одно слагаемое, сумму полагают равной нулю (S:=0), а затем, получая очередное слагаемое, прибавляют его к сумме (S:=S+x) (см. программу ниже).

Очень важную роль в операторе цикла играет так называемая переменная цикла. В нашей программе она называется i. С ее помощью мы обращаемся к пользователю за очередным числом (write (‘Введите ‘,i,’-ое число ’)) и считаем количество уже введенных чисел (i:=i+1), чтобы не запросить лишнее. Одновременно переменная цикла участвует в булевом выражении (i<=N).

Рассмотрите внимательно программу, решающую нашу задачу.

Program Summa;
Uses
Crt;
Var
i,
N : integer;
x, S : real;
Begin
ClrScr;
write (‘Сколько чисел для сложения? ‘);
readln (N);
S:=0;
i:=1;
while i begin
write (‘Введите ‘,i,’-е число ‘);
readln (x);
S:=S+x;
i:=i+1;
end;
write (‘Сумма введенных чисел равна ‘,s:5:2);
readln;
End.

Хотелось бы, чтобы Вы смогли представить работу этой программы. Давайте попробуем вместе.

Пусть нам требуется сложить следующие числа: 5, 7, -4, 0, 8, 20. Посчитаем, сколько их всего – шесть. Это число мы введем, когда программа задаст вопрос: Сколько чисел для сложения? Теперь наша программа запросит ввести 1-ое число, т. к. на первом шаге переменная i равна 1. Мы введем число 5. Программа считает его в переменную х. Теперь число 5 сложим с числом 0 и результат присвоим переменной S (оператор S:=S+x). В этот момент S становится равной 5. Чтобы перейти к следующему числу, увеличим значение переменной i на 1 (оператор i:=i+1). Выполнение операторов тела цикла закончено. Теперь программа переходит опять к анализу условия вхождения в цикл (i<=N). Переменная цикла i=2, переменная N=6, поэтому значение логического условия 2<=6 равно True. Значит снова выполняется тело цикла:

while i
begin
write (‘Введите ‘,i,’-ое число ‘);
readln (x);
S:=S+x;
i:=i+1;
end;

Итак, мы сложили два числа и переходим опять к проверке условия. Ответим на вопрос: 3

while i
begin
write (‘Введите ‘,i,’-ое число ‘);
readln (x);
S:=S+x;
i:=i+1;
end;

Аналогично, мы сложим и остальные числа. Но когда же операторы цикла выполнятся последний раз и остановится работа цикла? Когда сложим последнее число. Проверим это.

while i
begin
write (‘Введите ‘,i,’-ое число ‘);
readln (x);
S:=S+x;
i:=i+1;
end;

В этом примере известно заранее количество повторений — N раз. Но чаще всего этот вид цикла используется тогда, когда количество повторений заранее не известно и зависит от выполнения какого-либо условия. Рассмотрим еще один пример.

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

Например, рассмотрите следующие циклические алгоритмы

а) Пока не сдал выпускные экзамены делай:
начало
готовь уроки;
посещай школу;
конец;

б) Пока есть желание, возможность и здоровье делай:
посещай занятия спортом

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

    “Репка”. “Дед тянет-потянет, вытянуть не может. Позвал бабку. Бабка за дедку, дедка за репку, тянут потянут, вытянуть не могут. Позвала бабка внучку. И вытянули репку”.

Продолжим изучение цикла с предусловием на примере решения следующей задачи.

Задача. Найти сумму чисел в непустой последовательности.

Рассмотрим алгоритм решения. Пусть нам дана такая последовательность чисел:

3, -4, 0, 5, 19, -20, 6, 2

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

1 2 3 4 5 6 7 8

3, -4, 0, 5, 19, -20, 6, 2

Получилось, что всего у нас чисел восемь, на первом месте стоит число 3, на втором — число (-4), на третьем — число 0 и т.д. Тогда переменная цикла i будет пробегать числа от 1 до 8, становясь на каждом шаге больше на 1 и запрашивая каждый раз очередное число. Поэтому общая схема цикла будет выглядеть так:

i:=1;
while i begin
write (‘Введите ‘,i,’-ое число’);
readln (x);
. . .
i:=i+1;
end;

Здесь N — количество чисел последовательности (в нашем случае 8), х — член последовательности, i — порядковый номер очередного члена последовательности. Просмотрим, как будет работать этот цикл.

i:=1;
while i
begin
write (‘Введите ‘,i,’-ое число’);
readln (x);
. . .
i:=i+1;
end;
while i
begin
write (‘Введите ‘,i,’-ое число’);
readln (x);
. . .
i:=i+1;
end;
while i
begin
write (‘Введите ‘,i,’-ое число’);
readln (x);
. . .
i:=i+1;
end;
while i
begin
write (‘Введите ‘,i,’-ое число’);
readln (x);
. . .
i:=i+1;
end;

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

Если Вам не совсем понятно, что происходит при выполнении этого оператора, Вам нужно вспомнить, как происходит присваивание значение переменной: сначала вычисляется значение выражения в правой части (в нашем случае Summa+x, т.е., значение переменной Summa увеличиваем на х), а затем присваиваем это значение переменной с именем, записанным в левой части (Summa). Таким образом, в переменной Summa собирается сумма всех считанных чисел.

Задание. Напишите полный текст программы, находящей сумму N чисел последовательности. Дополните программу нахождением среднего арифметического этих чисел.

Примечание. Средним арифметическим чисел называется сумма этих чисел, деленная на их количество.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *