- •Программирование на языке высокого уровня
- •1 Часть Учебное пособие Москва 2007
- •Оглавление
- •1. Основы алгоритмизации
- •1.1. Алгоритмизация и требования к алгоритму
- •1.2. Блок-схемы алгоритмов
- •1.2.1. Способы записи алгоритма
- •1.2.2. Блок-схемы
- •1.2.3. Следование, ветвление, цикл
- •1.3. Этапы разработки программы
- •1.3.1. Язык программирования. Программа
- •1.3.2. Этапы разработки
- •1.4. Ошибки
- •1.4.1. Компилятор. Синтаксис и семантика
- •1.4.2. Типы ошибок
- •2. Алфавит языка Турбо Паскаль. Программа
- •2.1. Идентификаторы
- •2.2. Разделители
- •2.3. Специальные символы
- •2.4. Структура Pascal-программы
- •Пример простейшей программы на языке Pascal
- •3. Типы данных
- •3.1. Структура типов данных
- •3.2. Простые типы
- •3.2.1. Порядковые типы
- •3.2.1.1 Целые типы.
- •3.2.1.1.1. Встроенные процедуры и функции, применимые к целым типам
- •3.2.1.2. Логический тип.
- •3.2.1.3. Символьный тип.
- •3.2.1.4. Перечисляемый тип.
- •3.2.2. Вещественные типы
- •3.3. Константы и переменные
- •3.4. Преобразование типов
- •4. Операторы
- •4.1. Ввод данных
- •4.2. Вывод данных
- •4.3. Составной оператор
- •4.4. Условный оператор
- •4.5. Операторы циклов
- •4.5.1. Оператор for
- •4.5.2. Оператор while
- •4.5.3. Оператор repeat
- •4.5.4. Стандартные функции для циклов
- •4.6. Оператор выбора case
- •5. Массивы
- •5.1 Определение массива
- •5.2. Ввод/вывод одномерного массива (вектора).
- •5.3 Типизированные константы – массивы
- •5.4. Сортировка массивов (ранжирование)
- •6. Процедуры и функции
- •6.1. Подпрограммы
- •6.2. Параметры. Глобальные и локальные описания
- •6.3. Процедуры
- •6.4. Функции
- •6.5. Процедура exit
- •6.6. Рекурсия
- •6.7. Директивы подпрограмм
- •6.8. Открытые массивы
- •7. Записи
- •7.1.Определение и правила записи
- •7.2. Оператор присоединения
- •7.3. Записи с вариантами (экономия пространства)
- •8. Множества
- •8.1. Понятие множества
- •8.2. Конструктор множества
- •8.3. Операции над множествами
- •8.4. Примеры программ, использующих множества.
- •Литература
4.5.2. Оператор while
While <условие> do <оператор>
While, do –зарезервированные слова
<условие> – выражение логического типа
<оператор> – произвольный оператор
Если (условие) имеет
значение true, то выпол-
условие
False true няется оператор, после
чего повторяется проверка
условия.
Если (условие) имеет
значение false, то оператор
While прекращает свою
Выполняется оператор
работу.
Пример 1
n:=3;
while n>0 do
begin 2
n:=pred(n); 1
write (n) 0
end;
Следует знать:
-
В условии выражение должно быть определено до первого выполнения оператора цикла.(n:=3);
-
Число повторений оператора цикла while определяется в ходе выполнения программы и как правило заранее неизвестно;
-
В теле цикла обязательно должно быть инструкции, влияющие на условие выполнения цикла (n:= pred (n).
Пример 2
Суммировать десять произвольно введенных целых чисел.
var
count, item, sum : integer;
begin
sum:= 0;
count:=0;
while count<10 do
begin
inc (count);
write (‘Введите‘, count, ‘- е целое число: ‘);
Readln (item);
Sum:= sum+ item
end;
write (‘сумма введенных чисел = ‘,sum)
end.
Следует знать
-
Цикл white – цикл с предусловием, т.е. тело цикла вообще может быть не выполнено, если условие ложно с самого начала.
-
Цикл white считается самым универсальным видом цикла (см. следующее утверждение).
-
Удобнее всего использовать в случаях, когда возможна ситуация невыполнения цикла.
4.5.3. Оператор repeat
Repeat <тело цикла> Until <условие>
повторяет до тех пор пока
Repeat, Until – зарезервированные слова ( повторяет до тех пор пока не будет выполнено условие)
<тело цикла> – произвольная последовательность операторов Т-П
<условие> – выражение логического типа
false
Выполнить операторы
условие
true
Операторы (тело цикла) выполняются хотя бы один раз, после чего проверяется условие. Если значение false (ложь), то операторы цикла повторяются. В противном случае (true) оператор repeat завершает свою работу.
Пример 1 Игра «Угадай число»
var
comp: integer; {число, задуманное компьютером}
igrok : integer; {вариант игрока}
begin
randomize; {инициализация датчика случайных чисел}
comp:= random (1000); {случайное число}
repeat
write (‘Введите число - ‘); Readln (igrok);
if igrok> comp then writeln (‘Слишком много‘)
else
if igrok< comp then writeln (‘Слишком мало‘)
else
writeln (‘Вы угадали‘);
until igrok= comp;
end.
Оператор repeat можно использовать для проверки правильности ввода исходных данных.
Пример 2
Исходное данное должно быть двузначным числом. Программа может повторять запрос, пока не получит требуемое.
var х : integer;
repeat
write (‘Введите двузначное число - ‘); Readln (х);
Until (x<9) and (x>100);
Следует знать:
-
Число повторений оператора цикла заранее неизвестна и определяется в ходе выполнения программы.
-
В теле цикла должны быть инструкции, влияющие на условие завершение цикла (var, участвующие в условии должны изменяться в теле цикла).
-
Цикл repeat – цикл с постусловием и поэтому теле цикла будет выполнено хотя бы раз.
Repeat until false {конструкция вечного цикла}.