Примеры программ с постусловием

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

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

  1. оператор цикла с предварительным условием;
  2. оператор цикла с последующим условием;
  3. оператор цикла с параметром.

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

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

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

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

While условие Do Оператор ;

Здесь While и Do – служебные слова.

Условие – какое-либо логическое выражение.

Оператор – Простой или составной оператор.

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

Примеры использования цикла с предусловием

Вычислить у=х 2 при х=2, 4, 6, 8, 10.

Вычисление квадратного корня из вводимых чисел.

If X>=0 Then Writeln(‘Корень из ’, Х, ‘ равен ’, Sqrt(X))

Else Writeln(‘Действительного ответа нет’);

While Not((C=’Y’)Or(C=’N’) Do

Write(‘Желаете ввести еще одно число? (Y/N) ’);

If C= ‘N’ Then B:=False;

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

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

Until Условие выхода из цикла;

Слова Repeat (повторять) и Until (До тех пор) являются служебными словами. Условие выхода из цикла – любое логическое выражение. Операторы циклической части программы -–любое количество любых операторов.

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

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

Вычислить у=х 2 при х=2, 4, 6, 8, 10.

Сначала задается первое значение аргумента х=2, затем внутри циклической части выполняются следующие действия:

Цикл с постусловием | Информатика Паскаль #16 | Инфоурок

  1. Вычисляется значение у при текущем значении х;
  2. Значения х и у выводятся на экран монитора;
  3. Вычисляется новое значение х прибавлением к нему двойки.
  4. Производится проверка: если х>10, то конец цикла, иначе переходим на шаг циклической части алгоритма.
Читайте также:
Выбор программы стиральной машины

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

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

For i:=m1 To(DownTo) m2 Do Оператор ;

Здесь For (для), То(до), Do(делать) – служебные слова;

I – параметр цикла, (счётчик цикла);

m1, m2 – соответственно начальное и конечное значение параметра цикла;

Оператор – любой простой или составной оператор.

Циклическая часть программы выполняется для каждого значения i от его начального m1 до конечного m2 включительно.

В качестве параметра цикла, из уже изученых типов могут использоваться только переменные типа Integer или Char. В качестве m1, m2 могут использоваться любые выражения того же типа, что и счётчик цикла.

Чаще всего параметр цикла – переменная целого типа, а шаг ее изменения равен +1 или –1.

Если значение параметра возрастает (шаг=+1), то используется служебное слово То, если убывает (шаг=-1), используется слово DownTo.

For i:= 1 To 10 Do Write(i);

Означает, что для всех значений i от 1 до 10 выводятся на экран значение i.

Замечание: Параметр цикла не должен переопределяться внутри цикла.

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

В качестве примера, рассмотрим предыдущую задачу и постараемся реализовать ее с помощью оператора цикла с параметром.

Или возможен также другой вариант решения задачи:

Вывести на экран все буквы латинского алфавита.

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

For c:=’a’ To ‘z’ Do Write(c);

Тип

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

Типы real, integer – это числовые множества. Вместе с ними рассматривают соответствующие арифметические операции. Тип char – это множество символов. Вместе с ними рассматривают функции, для работы с символами. Тип Boolean – множество, состоящее их двух элементов: True, False.

Для него определены соответствующие логические операции.

Эти четыре типа – стандартные типы Паскаля. В Паскале имеются средства, позволяющие определять, исходя из имеющихся типов, новые нестандартные типы. Мы остановимся сейчас на одном из этих средств.

Одномерные массивы

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

Массив – это упорядоченный набор однотипных элементов определенной длины. Каждый элемент массива имеет свой номер (индекс). К каждому элементу массива имеется прямой доступ. Это означает, что для того, чтобы обратиться к какому-либо элементу массива, нет нужды перебирать все его предыдущие элементы, нам достаточно указать номер этого элемента.

Описание массивов

Описать массив можно двумя способами.

В разделе описания переменных мы можем описать массив следующим образом:

Var A:Array[n1..n2] Of базовый тип ;

Здесь А – название массива;

Array – служебное слово (англ. массив).

n1,n2- соответственно номер первого и последнего элемента массива.

Базовый тип – любой из уже изученных типов.

Количество элементов массива будет равно n2-n1+1.

Var Massiv:Array[1..20] Of Real;

означает что полученный массив будет состоять из 20 вещественных чисела, первое из которых будет иметь номер 1, последнее – 20. Наш массив будет иметь название Massiv.

Читайте также:
Лучшая программа для кмд металлоконструкций

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

=Array[n1..n2]Of Базовый тип ;

После этого в разделе описания переменных мы можем описать массив, который имеет созданный нами тип, например,

Mas=Array[10..19] Of Integer;

В данном случае мы сначала описали новый тип Mas – массив из десяти целых чисел с номерами от 10 до 19, затем описали переменную B типа Mas. Переменная В – переменная типа Mas.

Чтобы обратиться к какому либо элементу массива, необходимо указать имя массива и в квадратных скобках номер элемента. В[5], A[i] и т.д. Номером элемента может быть любое целочисленное выражение.

Замечание: номерами элементов могут быть не только выражения типа Integer, но так же и типа Char, перечисления и диапазоны.

Ввод и вывод одномерных массивов

В большинстве случаев для обработки массивов используются циклы. В цикле имеется возможность поочередно перебрать все элементы массива.

Для ввода массива с клавиатуры может быть использован цикл следующего вида: пусть у нас имеется массив с именем А, состоящий из n элементов, тогда:

For i:=1 To n Do Read(A[i]);

В этом случае, пользователь вводит через пробел n элементов массива.

Ввод данных в массив происходит следующим образом: сначала значение счётчика цикла равно 1; выполняется операция read (A[1]); после чего счётчик цикла становится равным 2; выполняется операция Read(A[2])… и т.д. до значения i=n включительно.

Для вывода массива на экран используется следующий цикл:

For i:=1 To n Do Write(A[i]);

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

Обработка массива

Как уже было сказано для обработки массивов используются циклы.

Пусть имеется массив М, состоящий из n элементов с номерами от 1 до n. Найти Сумму элементов массива, вывести ее на экран.

For i:=1 To n Do Sum:=Sum+M[i];

Writeln(‘Сумма элементов мапссива = ’ ,Sum);

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

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

В вышеприведенном примере как раз используется оператор цикла с постусловием. Синтаксис этого оператора следующий: repeat until Здесь repeat, until–ключевые слова (перев. сангл. повторять и до тех пор пока); –любые операторы Турбо-Паскаля (их называют телом цикла); –логическое выражение типа сравнения, используемое для выхода из цикла.

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

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

Схема алгоритма приведена на рис.10, а программа в примере – pr10. Рис. 10program pr10;var i:integer;begini:=1;repeatwriteln(i);i:=i+2;until i>10;end. В результате работы этой программы будут напечатаны в столбик все нечетные числа от 1 до 9.

      Читайте также:
      Вайбер чья это программа

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

        В отличие от оператора цикла с постусловием оператор цикла с предусловием вычисляет и проверяет условие до выполнения операторов, составляющих тело цикла. В остальном эти операторы похожи.

        Синтаксис этого оператора следующий: while do ; Здесь while, do–ключевое слово (перев. сангл. пока и делать); –любой оператор Турбо-Паскаля, в том числе и составной (этот оператор называют телом цикла); –логическое выражение типа сравнения, используемое для выхода из цикла. Оператор работает следующим образом: сначала вычисляется условие, и если получается истинное значение, то выполняется оператор, являющийся телом цикла, а затем снова проверяется условие.

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

        Например, следующий фрагмент программы будет печатать радостное сообщение бесконечное число раз, так как отсутствуют в цикле конструкции, изменяющие величину i:i:=1;while i writeln(‘Доброеутро!’); Чтобы получить работающий фрагмент программы, добавим в тело цикла оператор, увеличивающий значение i:i:=1;while i beginwriteln(‘Доброеутро!’);i:=i+1;end;end; Проиллюстрируем использование оператора цикла с предусловием на примере pr11нахождения среднего арифметического последовательности чисел (схема алгоритма приведена на рис.11). Последовательность чисел вводится с клавиатуры и завершается стоп-кодом.

        Использование стоп-кода в данном случае состоит в том, что какое-то числовое значение заведомо исключается из входной последовательности и используется как стоп-код. Если мы заранее знаем, что -1у нас никогда не появится в последовательности, то можно -1использовать для указания ее конца. Рис.

        11program pr11;const stopcod=-1;var c: integer; sum, number:real; beginsum:=0;c:=0;writeln(‘Введите пеpвое число последовательности:’);read(number);while number<>stopcod dobeginsum:=sum+number;c:=c+1;writeln(‘Введите cледующее числопоследовательности:’ );read(number);end;if c=0 then writeln (‘Сpеднеезначениеpавнонулю’)else writeln (‘Сpеднее значение pавно ‘,sum/c);end. Необходимо отметить, что перед первым вхождением в цикл whileзначениеnumberдолжно быть прочитано, иначеnumberне будет определено при первой проверке условияwhile.

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

        Следующий пример иллюстрирует работу оператора цикла с предусловием на задаче, вычисляющей c точностью е сумму ряда: s=1+1/2+1/3+1/4+. . Вычислить сумму ряда с точностью е –это значит завершить суммирование членов ряда тогда, когда очередной член ряда окажется меньшеепо абсолютной величине. Схема алгоритма приведена на рис.12, а программа – в примереpr12.program pr12;vari:integer;sum,суммаpяда>e,точность>k:real;очеpеднойчленpяда>beginsum:=0;i:=1;writeln(‘Введитеточность:’);read(e);k:=1/i;while k>e do покаочеpеднойчленpядабольшеточности>beginsum:=sum+k;i:=i+1;k:=1/i;end;writeln (‘Суммаpядаpавна’, sum);end.Рис. 12

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

        1. Циклы с предусловием и постусловием

        Screenshot_10.png

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

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

        Напишем программу, которая будет выводить на экран первые (10) целых чисел на экран.

        Screenshot_11.png

        Цикл с заданным условием окончания работы (цикл с постусловием) записывается с помощью оператора « repeat ».

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

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