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

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

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

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

Как видите, сам процесс отжимания это не более чем обычный повтор одних и тех же действий, т.е. тот же по сути цикл. Надеюсь, вы поняли суть. Если нет, то ниже мы уже разберем цикл на примерах. Для тех, кто лучше усваивает визуальную информацию, можете посмотреть мой урок по с++ 6. В нем я также приводил блок-схемы циклов.

Цикл for. Что это. Что делает. Пример. Синтаксис. Циклы. Урок #16.

В C# циклы делятся на четыре группы: цикл с предусловием, цикл с постусловием, параметризованный цикл и так называемый цикл Для каждого (foreach). Давайте рассмотрим их на нашем примере с отжиманием.

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

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

while (условие)

действие;

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

Действие;

while (условие выхода из цикла);

Обратите внимание на то, что в пункте а я указал всего одно действие. Их может быть много, тогда после скобок с условием ставятся операторные скобки <> (правило то же, что и в if). Тоже самое относится и к остальным циклам (исключение цикл с постусловием, так как там уже есть операторные скобки)

while (условие)

Действие2;

А теперь давайте рассмотрим, как работают эти циклы.

Итак, опишем наш алгоритм с помощью цикла с предусловием. Допустим, что вы собрались отжаться 30 раз. Тогда наш алгоритм будет выглядеть так:

int КоличествоОтжиманий=0; //пока мы не отжимались while (КоличествоОтжиманий

Читайте также:
Какая программа видит флешку

Как видите, все предельно просто. Я ввел счетчик КоличествоОтжиманий, который потом уже использовал в качестве проверки условия. В теле цикла я уже приращивал этот счетчик на единицу. Как только у меня КоличествоОтжиманий сравнялось 30, цикл прекращает свою работу.

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

int КоличествоОтжиманий=0; //пока мы не отжимались do < КоличествоОтжиманий++; >while (КоличествоОтжиманий<30)

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

int КоличествоОтжиманий=30; //Этот цикл уже никогда не выполнится while (КоличествоОтжиманий

А в случае цикла с постусловием спортсмену придется еще раз отжаться, чтобы сообразить, что он уже делал эти пресловутые 30 отжиманий.

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

bool Устал=false; string Ответ; int КоличествоОтжиманий=0; while (!Устал) < КоличествоОтжиманий++; Console.WriteLine (“Вы устали? (да/нет)”); Ответ=Console.ReadLine (); Ответ=Ответ.ToLower().Trim (); //уберем пробелы и сделаем текст строчным if (Ответ.Equals(“да”)) Устал=true; >Console.WriteLine (“Вы сделали всего отжиманий”, КоличествоОтжиманий);

Пробежитесь мысленно по коду. Думаю, что здесь для вас все ясно.

Единственное, на что стоит обратить внимание — в последней строчке кода в методе WriteLine я написал непонятную для вас . Дело в том, что этот метод умеет форматировать вывод, а нам нужно, чтобы наш счетчик плавно вписался в текст. Поставив , я указал, что в этом месте будет наш счетчик. 0 обозначает порядок вывода переменных. Если бы я указал после запятой несколько переменных, то другие бы в тексте были бы помечены как , и т.д. Более подробно мы рассмотрим это с вами, когда будем изучать классы и методы, а это уже совсем скоро.

Читайте также:
Почему нет программы что где когда

В циклах часто бывают ситуации, когда мы точно не знаем, где будет точка выхода. Например, предыдущий код можно отнести к подобному. В случае такого цикла нужно использовать оператор прерывания цикла break. Встретив этот оператор, C# сразу же покинет тело цикла. В случае нашего верхнего кода можно было бы не присваивать переменной Устал значение true, а написать так:

if (Ответ.Equals(“да”)) break;

Все, цикл прервался. Это очень часто используемый в циклах оператор, так что имейте это в виду. У него есть брат continue, о котором мы поговорим в следующем уроке.

А пока на этом все. Отдыхайте и готовьтесь к следующему уроку.

  1. Урок 6: «Циклы – это повторяющийся участок кода»
  2. Урок Ruby №6: «Автоматизируем повтор кода с помощью циклов»

Источник: www.programbeginner.ru

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

обучение PascalABC

Инфоучка

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

Цикл — одна из форм управляющих конструкций в языках программирования. Используется для многократного выполнения набора команд.

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

На рисунке ниже представлена блок-схема цикла с предусловием. Другие названия цикла: цикл-пока, цикл с заданным условием продолжения работы.

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

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

На рисунке показано два варианта записи данной структуры на языке программирования Паскаль:

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

Задачи на циклы Паскаль

Задание 1. Даны два положительных числа A и B (A > B). На отрезке длины A размещено максимально возможное количество отрезков длины B (без
наложений). Не используя операции умножения и деления, найдите длину незанятой части отрезка A.

Решение:
Вариант 1

program cycle1; var a,b:real; begin read(a,b); while a > b do a:=a-b; write(a); end.

Вариант 2 (с подсказками)

program cycle1; var a,b:real; begin write(‘Введите длину отрезка А ‘); readln(a); write(‘Введите длину отрезка В ‘); readln(b); while a > b do a:=a-b; write(‘Длина незанятой части отрезка А равна ‘,a); end.

  • 1 ряд: 1/1*2 + 1/2*4 +1/3*6…
  • 2 ряд: 1/1*2*3 + 1/2*3*4 + 1/3*4*5….
  • 3 ряд: 1/1*3 + 1/2*4 +1/3*5…
Читайте также:
Задачи программы камертон костиной

Решение для 1 ряда:

var a,ap,s:real; i:integer; begin s:=0; i:=1; a:=0; ap:=1; while Abs(a-ap)>1e-6 do begin ap:=a; a:=1/(i*i*2); s:=s+a; i:=i+1; end; write(‘Сумма ряда = ‘,s); end.

Формула текущего элемента для второго ряда a:=1/(i*(i+1)*(i+2)); для третьего — a:=1/(i*(i+2));

Вычисление суммы ряда с определенной точностью ε означает, что сумма ряда вычисляется до тех пор, пока модуль разности между текущим и предыдущим членом последовательности больше ε. В виде формулы это утверждение можно записать так:|a – aр| > ε, то есть пока это выражение истинно, вычисления продолжаются.

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

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

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

цикл repeat паскаль

Задание 3. Дано целое число N (>0). Найти наименьшее целое положительное число K, квадрат которого превосходит N: K 2 > N. Функцию извлечения квадратного корня не использовать.

Решение:

program cycle2; var n,k:integer; begin read(n); repeat k:=k+1; until k*k > n; write(k); end.

Задание 4. Дано натуральное число N. Найти сумму первой и последней цифры этого числа

Решение:

var a,c1,c2:int64; begin write(‘Введите исходное число => ‘); readln(a); c1:=a mod 10; if a>9 then while a>0 do begin c2:=a; a:=a div 10; end; write(‘Сумма первой и последней цифры = ‘,c1+c2); end.

Задача 5. Покупатель должен заплатить в кассу S руб. У него есть купюры номиналом: 1,2,5,10,50,100,500. Сколько купюр разного номинала отдаст покупатель, если он начинает платить с самых крупных?

Посмотреть решение
var s,k500,k100,k50,k10,k5,k2,k1:integer; begin read (s); while s>0 do begin if s>=500 then begin k500:=k500+1; s:=s-500;end else if s>=100 then begin k100:=k100+1; s:=s-100;end else if s>=50 then begin k50:=k50+1; s:=s-50;end else if s>=10 then begin k10:=k10+1; s:=s-10;end else if s>=5 then begin k5:=k5+1; s:=s-5;end else if s>=2 then begin k2:=k2+1; s:=s-2;end else if s>=1 then begin k1:=k1+1;s:=s-1;end; end; writeln(‘Купюра 500 — ‘,k500); writeln(‘Купюра 100 — ‘,k100); writeln(‘Купюра 50 — ‘,k50); writeln(‘Купюра 10 — ‘,k10); writeln(‘Купюра 5 — ‘,k5); writeln(‘Купюра 2 — ‘,k2); writeln(‘Купюра 1 — ‘,k1); end.

Источник: infouch.ru

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru