- •Практикум по Турбо Паскалю
- •Первые занятия Первое знакомство с системой программирования Турбо Паскаль
- •Команды редактора
- •Задания
- •Режим помощи
- •Первая программа
- •Запуск программы
- •Сохранение программы
- •Выход из системы программирования Турбо Паскаль
- •Простейшие линейные программы
- •Арифметический квадрат. Абсолютная величина
- •Целый и логический типы данных Условный оператор
- •Логический тип данных
- •Условный оператор
- •Вложенные операторы условия
- •Целый тип данных. Цикл с параметром
- •Цикл с параметром (разбор на примере)
- •Работа с окнами. Метод пошагового выполнения программ
- •Работа с окнами
- •Решение задач с использованием цикла с параметром
- •Вопросы для обсуждения
- •Трассировка примера
- •Цикл с постусловием
- •Алгоритм Евклида
- •Вложенные циклы
- •Решение задач с использованием циклов с условием
- •Простые типы данных
- •Задания
- •Решение задач
- •Вещественный тип данных
- •Задание
- •Решение задач
- •Ограниченный, перечисляемый типы данных. Оператор варианта
- •Ограниченный тип данных
- •Оператор варианта
- •Перечисляемый тип данных
- •Решение задач
- •Описание переменных, констант и типов Раздел описания констант
- •Раздел описания переменных
- •Раздел описания типов
- •Решение задач
- •Преобразование типов. Совместимость типов
- •Задания
- •Решение задач
- •Решение задач
- •Контрольные работы Контрольная работа №1
- •Контрольная работа №2
- •Основы Паскаля
- •X y22m размер gamma alfa r15
- •Процедуры и функции
- •Описание процедур и функций
- •Файловый тип
- •Описание файлового типа
- •Подпрограммы
- •Процедура Assign
- •Процедура Reset
- •Процедура Rewrite
- •Процедура Write
- •Процедура Close
- •Функция FileSize
- •Функция FilePos
- •Текстовые файлы
- •Описание текстового файла
- •Консоль
- •Устройства
- •Соответствие текстовых файлов и логических устройств
- •Операции над текстовыми файлами
- •Процедура Assign
- •Процедура Reset
- •Процедура Rewrite
- •Процедура Append
- •Процедура Close
- •Функция Eof
- •Функция SeekEof
- •Блочные файлы Описание типа блочного файла
- •Процедура BlockRead
- •Процедура BlockWrite
- •Операции ввода-вывода
- •Регулярные типы данных Одномерные массивы. Работа с элементами
- •Способы задания одномерных массивов
- •Работа с элементами массива (разбор на примерах)
- •Методы работы с элементами одномерного массива Изменение значения некоторых элементов
- •Создание массива
- •Работа с несколькими массивами
- •Удаление элементов из одномерного массива Удаление элемента
- •Вставка элементов в одномерный массив Вставка одного элемента
- •Вставка нескольких элементов
- •Перестановка элементов массива
- •Перестановка части массива
- •Найти сумму элементов
- •Работа с несколькими массивами
- •Двумерный массив. Работа с элементами Изменение значений некоторых элементов, удовлетворяющих заданному свойству
- •Заполнение двумерного массива по правилу.
- •Вставка и удаление элементов двумерного массива
- •Перестановка элементов массива
- •Комбинированный тип данных (записи)
Цикл с постусловием
Повторение
Запишите конструкцию цикла с предусловием. В каких случаях применяется цикл с предусловием?
Ниже представлен фрагмент программы вычисления количества цифр в заданном натуральном числе.
a := n; ck := 0 While a>=0; Do Begin ck := ck + 1; a := a Div 10 End;
Найдите и исправьте в нём ошибки.
Каким условиям должны удовлетворять значения переменной k, чтобы следующие циклы были бесконечны:
While c<0 Do c:=c+k; While k<>0 Do k:=k+1; While k<>0 Do k:=k-2.
Примечание. Перед занятием можно подготовить таблицу с конструкцией цикла с постусловием.
Для программной реализации циклических процессов с неизвестным числом повторений существует ещё один оператор - оператор цикла с постусловием, который имеет следующий вид:
Оператор цикла с постусловием |
Repeat |
<оператор 1>; |
<оператор 2>; |
... |
<оператор n>; |
Until <условие>; |
где Repeat(повторять), Until (до тех пор, пока).
Этот оператор аналогичен оператору цикла с предусловием, но отличается от него тем, что проверка условия производится после очередного выполнения тела цикла. Это обеспечивает его выполнение хотя бы один раз.
Обратите внимание на то, что данный оператор цикла предполагает наличие нескольких операторов в теле цикла, поэтому служебные слова Begin и End не нужны.
Последовательность операторов, входящих в тело цикла выполняется один раз, после чего проверяется соблюдение условия, записанного следом за служебным словом Until. Если условие не соблюдается, цикл завершается. В противном случае - тело цикла повторяется ещё раз, после чего снова проверяется соблюдение условия.
Задание
Придумать примеры из жизни, иллюстрирующие данную конструкцию.
Пример
Составить программу планирования закупки товара в магазине на сумму, не превышающую заданную величину.
Решение
Обозначим через x, k - соответствующую цену и количество товара, через p - заданную предельную сумму, через s - общую стоимость покупки. Начальное значение общей стоимости покупки (S) равно нулю. Значение предельной суммы считывается с клавиатуры. необходимо повторять запрос цены и количества выбранного товара, вычислять его стоимость, суммировать ее с общей стоимостью и выводить результат на экран до тех пор, пока она не превысит предельную сумму р. В этом случае на экран нужно вывести сообщение о превышении.
Program Example_10; Var x, k, p, s : Integer; Begin WriteLn('Введите цену товара и его количество'); ReadLn(x,k); s:=s+x*k; WriteLn('Стоимость покупки равна ',s); Until s>p; WriteLn('Суммарная стоимость покупки превысила предельную сумму'); End.
При описании циклов с постусловием необходимо принимать во внимание следующее:
|
перед первым выполнением цикла условие его окончания (или продолжения) должно быть определено; |
|
тело цикла должно содержать хотя бы один оператор, влияющий на условие окончания (продолжения), иначе цикл будет бесконечным; |
|
условие окончания цикла должно быть в результате выполнено. |
Решение задач
Определить значение переменной s после выполнения следующих операторов:
s := 0; i := 1; Repeat s := s + 5 Div i; i := 1 - 1; Until i<=1;
Произведение N первых нечетных чисел равно p. Сколько сомножителей взято?
Числа Фибоначчи (fn) определяется формулами: f0 = f1 = 1; fn = fn = fn-1 + fn-2 при n=2, 3,... Составить программу:
определения f - 40-е число Фибоначчи;
поиска f - первого числа Фибоначчи, большего m (m>1);
вычисления s - суммы всех чисел Фибоначчи, которые не превосходят 1000.
Составить программу, проверяющую, является ли заданное натуральное число совершенным, то есть равным сумме своих положительных делителей, кроме самого этого числа.
Показать, что любой оператор цикла с предусловием можно записать с помощью условного оператора и оператора цикла с постусловием.
Показать, что любой оператор цикла с постусловием можно записать с помощью условного оператора и оператора цикла с предусловием.
Дана непустая последовательность натуральных чисел, за которой следует 0. Вычислить сумму положительных элементов последовательности, порядковые номера которых нечетны.
