Как повторить программу в паскале

Задача такая: как после вывода нужной информации спросить: «Повторить еще раз? «. Если пользователь отвечает Y, то повторить, в обратном случае ввести любой другой символ. Условие: Ввести число от 0 до 5. Вывести его название на английском.

program Easy; var num: integer; begin write(‘Введите число от 0 до 5 ‘); readln(num); if (num>5) or (num<0) then writeln(‘Неверно указан номер’); case num of 0:write(‘Zero’); 1:write(‘One’); 2:write(‘Two’); 3:write(‘Three’); 4:write(‘Four’); 5:write(‘Five’); end; end.
Отслеживать
ValeraKolosov
задан 13 сен 2013 в 16:01
ValeraKolosov ValeraKolosov
31 1 1 серебряный знак 6 6 бронзовых знаков
13 сен 2013 в 17:09

1 ответ 1

Сортировка: Сброс на вариант по умолчанию

Используйте while вместо if. Точнее, Until.

Так же можно упростить

if num=1 then write(‘One’);
write(numbers_array[num]);
numbers_array — array of string

Например, так: Можно еще красивее, но лень.

program Easy2; var num: integer; begin write(‘Введите число от 0 до 5 ‘); repeat readln(num); if (num>5) or (num<0) then begin writeln(‘Неверно указан номер’); end; until (num<5) and (num>0); case num of 0:write(‘Zero’); 1:write(‘One’); 2:write(‘Two’); 3:write(‘Three’); 4:write(‘Four’); 5:write(‘Five’); end; end.

Источник: ru.stackoverflow.com

Паскаль с нуля [ч12]. Сортировка массива методом пузырька

Оператор повтора Repeat

Оператор повтора repeat имеет две особенности:

  1. Условие проверяется после очередного выполнения операторов тела цикла (очередной итерации) и таким образом гарантируется хотя бы однократное выполнение цикла.
  2. Критерием прекращения цикла является равенство выражения константе True.

За это цикл repeat часто называют циклом с постусловием, или циклом «ДО», так как он прекращает выполняться, как только значение выражения условия, записанного после слова until, равно True (истина).

Оператор повтора repeat состоит из заголовка repeat, тела и условия окончания until.

Операторы, заключенные между словами repeat и until, являются телом цикла. Вначале выполняется тело цикла, затем проверяется условие выхода из цикла. Именно поэтому цикл, организованный с помощью оператора repeat, в любом случае выполнится хотя бы один раз. Если результат булевского выражения равен False, то тело цикла активизируется еще раз; если результат True, происходит выход из цикла.

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

Пример программы с использованием оператора repeat

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

Читайте также:
Diy k150 программа как пользоваться

#4. Циклы For, While, repeat на PascalABC.net

Writeln(‘Сумма введенных чисел= ‘,Sum) ;

В данном примере в разделе описания переменных описана переменная Х целочисленного типа integer и Sum вещественного типа real.

В начале выполнения программы обнуляется значение суммы чисел. Затем зарезервированным словом repeat объявляется цикл, после чего следуют операторы тела цикла, которые выводят на экран запрос ‘Значение Х= ‘, считывают введенное с клавиатуры значение X.

Оператор if проверяет его на неравенство числу 999 и, если оно не равно 999, увеличивает значение суммы Sum на значение числа X. В конце цикла оператор until X = 999 проверяет условие окончания цикла. Если значение выражения Х = 999 истинно, то цикл завершится, а управление в программе будет передано на оператор, находящийся за словом until, т. е. первый оператор за границей цикла repeat. Это вызов процедуры Writeln, которая выведет сообщение ‘Сумма введенных чисел равна’ и напечатает значение переменной Sum.

Пример программы с использованием операторов присваивания, повтора и выбора

Operation, Ans : char;

case Operation of

Until (Ans=’N’) or (Ans=’n’);

В разделе описания переменных описаны переменные — операнды X, Y и результат арифметических операций Rezult вещественного типа, а также переменная Operation символьного типа, в которой хранится значение знака арифметической операции, и Ans- переменная символьного типа, которой присваивается значение «Y» или «N».

Процесс выполнения арифметических операций калькулятором организован с помощью оператора repeat и продолжается до тех пор, пока переменной Ans не будет присвоено значение ‘N’ или ‘п’.

В теле цикла сначала запрашиваются и считываются с клавиатуры значения операндов X и Y, затем запрашивается и считывается знак арифметической операции. Оператор выбора case по значению переменной Operation (селектор) выбирает знак операции и в зависимости от его значения выполняет арифметическую операцию. Например, если значение переменной Operation равно значению константы выбора ‘-‘, то выполняется оператор присваивания Rezult := Х-Y и т. д. Если значение переменной Operation не равно ни одному значению константы выбора, то управление передается на оператор, стоящий за словом else, и на экран выводится сообщение ‘Ошибка ввода’. После этого на экран выводится запрос ‘Продолжить (Y/N)’ и с клавиатуры считывается значение переменной символьного типа Ans. Если значение выражения (Ans=’N’) or (Ans=’n’) будет False, то цикл повторится вновь, иначе цикл будет завершен и управление в программе будет передано на оператор end.

Читайте также:
Как в программе 1с установить цену номенклатуры

Порядок выполнения работы

  1. Изучить теоретические сведения по теме: “ Написание программы на Паскале с использованием операторов повтора (For, Repeat)”.
  2. Получить индивидуальное задание у преподавателя и разработать программу в соответствии с поставленной задачей.
  3. Показать работающую программу преподавателю.
  4. Ответить на контрольные вопросы.
  1. Операторы повтора. Общая характеристика.
  2. Оператор повтора for. Форматы записи, описание работы цикла, ограничения использования параметра цикла.
  3. Примеры использования оператора for. Различие to и downto.
  4. Оператор повтора Repeat. Формат записи, особенности использования.
  5. Примеры программ с использованием оператора repeat.

Лабораторная работа № 9

Написание программы на Паскале

с использованием операторов повтора (While)

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

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

Оператор повтора while

Оператор while (пока) часто называют оператором цикла с предусловием за то, что проверка условия выполнения тела цикла производится в самом начале оператора.

Условие — булевское выражение, тело цикла — простой или составной оператор.

Перед каждым выполнением тела цикла вычисляется значение выражения условия. Если результат равен True, тело цикла выполняется и снова вычисляется выражение условия. Если результат равен False, происходят выход из цикла и переход к первому после while оператору.

Источник: studfile.net

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

структура оператора Repeat в Паскале

В переводе Repeat значит повторение. Давайте рассмотрим общую структуру этого цикла.

где
repeat — зарезервированное слово (повторение);
until — зарезервированное слово (до тех пор пока);
выражение — условие, управляющее повторениями, должно быть логического типа;
оператор — любые операторы языка Pascal

    Принцип действия данного цикла схож с циклом while, но есть некоторые отличия:
  1. Выполняется оператор. Это главное отличие от цикла while, в котором сначало проверялось условие;
  2. После того, как оператор выполнился, проверяется выражение. Если его значение false , то цикл повторяется. В противном случае оператор Repeat завершает свою работу (если условие в цикле While является условием продолжения повторений, то условие в цикле Repeat — условием выхода из цикла, его завершения. Поэтому для одной и той же задачи эти условия противоположны).

В принципе, ничего сложного. Поэтому приступим к разбору задачи с циклом Repeat:

Вычислить факториал целого положительного числа N.

Я надеюсь, что все знакомы с понятием факториал числа. Нет? Тогда вам стоит подучить математику, а затем вернуться сюда и продолжить)) Для ленивых, которые не хотят идти учить математику, напомню в двух словах. Факториа́л числа n — произведение всех натуральных чисел от 1 до n включительно. Обозначается факториал восклицательным знаком (!).

Читайте также:
Как создать сайт в программе notepad

Если простым языком то, например, 5! = 1*1*2*3*4*5. А факториал трех 3! = 1*1*2*3. Я думаю принцип понятен, нам нужно перемножить последовательно все члены ряда.

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

Изначально данная переменная будет равна 1 (потому что самый маленький факториал, учитывая возможное число N будет равен 1). Если посмотреть внимательно чуть выше, там где я расписал факториал пяти, то можно заметить одну особенность — каждый раз мы умножаем на число, которое на единицу больше предыдущего. Какой вывод из этого можно сделать? Правильно, нам нужна некоторая переменная — счетчик (обычно берут i), которая будет с каждой новой итерацией (повторением) цикла увеличиваться на единицу. Изначально данная переменная будет равна 0. Все, больше переменных нам не нужно.

Осталось правильно составить цикл Repeat. Еще разок взгляните на это 5! = 1*1*2*3*4*5. Для начала нам нужно организовать это умножение 1*1. Первая единица — это наша переменная F. Второй множитель это наша переменная i, которая у нас пока равна нулю.

Значит перво-наперво в теле цикла Repeat нам нужно прописать строчку i:=i+1;, которая будет каждый раз увеличивать значение множителя на единицу. Хорошо, два первых множителя у нас есть, теперь сделаем так чтобы результат этого умножения сохранился в нашей переменной F. Для этого в блоке операторов цикла Repeat допишем строчку F:=F*i;.

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

Да вот какое — i=N, т.е. пока у нас переменная i меньше заданного с клавиатуры числа N, цикл Repeat будет повторяться. Как только переменная i станет равна N произойдет выход из цикла.

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

program factorial; var F,N,I:integer; begin F:=1; I:=0; writeln(‘N = ‘); readln(N); Repeat I:=I+1; F:=F*I; until I=N; writeln(‘N! = ‘,F); end.

На сегодня это все. Жду вас на следующих занятиях.

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

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