- •Программирование в системе Pascal abc
- •Введение
- •1. Система программирования pascal abc
- •1.1. Структура меню среды
- •1.2. Команды редактора Pascal abc
- •Команды удаления и вставки
- •1.3. Правила оформления программ
- •1.4. Компиляция и исправление синтаксических ошибок
- •1.5. Этапы подготовки и решения задач на компьютере
- •1.6. Словарь основных терминов
- •2. Начальные сведения о языке pascal abc
- •2.1. Алфавит языка
- •2.2. Константы
- •2.3. Идентификаторы и типы данных
- •2.4. Переменные и именованные константы
- •2.5. Структура простой программы и комментарий
- •3. Оператор присваивания и числовые данные
- •3.1. Арифметические выражения
- •Приоритеты операций в выражении
- •3.2. Оператор присваивания
- •3.3. Процедуры ввода-вывода
- •3.4. Стандартные функции Pascal abc
- •3.5. Целые типы в Pascal abc
- •3.6. Вещественные типы
- •Переменные комплексного типа
- •3.7. Примеры и задания к самостоятельному выполнению
- •4. Программирование разветвленных алгоритмов
- •4.1. Логические выражения
- •4.2. Условный оператор if
- •4.3. Составной и пустой операторы
- •4.4. Оператор безусловного перехода
- •4.5. Пример и задания с оператором if
- •4.6. Оператор выбора варианта case
- •4.7. Примеры и задания с оператором case
- •5. Программирование алгоритмов циклической структуры
- •5.1. Оператор счётного цикла
- •5.2. Примеры и задания для оператора цикла со счётчиком
- •Задания к самостоятельному выполнению
- •5.3. Оператор цикла с предусловием
- •5.4. Пример и задания для оператора цикла с предусловием
- •5.5. Оператор цикла с постусловием
- •5.6. Процедуры прерываний циклов
- •5.7. Примеры и задания для циклов с постусловием
- •Задания для самостоятельного выполнения
- •6. Структурированные типы данных
- •6.1. Массивы данных
- •Типизированные константы-массивы
- •6.2. Пример и задания для одномерных массивов
- •Задания для самостоятельного выполнения Задание 1
- •Задание 2
- •6.3. Ограниченный тип (диапазон)
- •6.4. Пример и задания для двумерных массивов
- •Задания для самостоятельного выполнения Задание 1
- •Задание 2
- •Задание 3
- •7. Структурное программирование
- •7.1. Структура сложной программы
- •7.2. Подпрограммы. Процедуры и функции
- •7.3. Структура подпрограммы-функции
- •7.4. Примеры и задания с подпрограммой-функцией
- •Задания для самостоятельного выполнения Задание 1
- •Задание 2
- •7.5. Структура подпрограммы-процедуры
- •7.6. Передача в подпрограмму массивов и строк
- •7.7. Рекурсия в программе
- •7.8. Вложенные подпрограммы
- •7.9. Процедуры exit и halt
- •7.10. Пример и задания с подпрограммой-процедурой
- •Задания для самостоятельного выполнения Задание 1
- •Задание 2
- •8. Обработка символьных данных
- •8.1. Символьный тип
- •8.2. Задания для символьных данных
- •9. Обработка строк текста
- •9.1. Строковый тип
- •9.2. Встроенные функции и процедуры для обработки строк
- •9.3. Пример и задания для обработки строк
- •Задания для самостоятельного выполнения
- •10. Файлы
- •10.1. Процедура связывания файлов
- •10.2. Процедуры и функции для работы с файлами
- •10.3. Типизированные файлы
- •10.4. Текстовые файлы
- •10.5. Процедуры ввода
- •10.6. Процедуры вывода
- •10.7. Примеры и задания для работы с файлами
- •Задания для самостоятельного выполнения Задание 1
- •Задание 2
- •11. Комбинированный тип – записи
- •11.1. Структура данных типа записи
- •11.2. Обработка полей записей
- •11.3. Задания с обработкой записей Задание 1
- •Задание 2
- •12. Процедурные типы
- •Библиографический список
- •Обозначения графические в схемах алгоритмов (гост 19.701-90)
- •Содержание
5.5. Оператор цикла с постусловием
Оператор цикла с постусловием производит проверку условия после выполнения операторов тела цикла. Поэтому тело цикла должно выполниться хотя бы один раз. Стpуктуpа оператора имеет следующий вид:
REPEAT <оператор1>;
...
<операторN>
UNTIL <условие_выхода >;
Правило выполнения оператора цикла. Выход из цикла происходит при истинности значения логического выражения <условие_выхода>, иначе операторы тела цикла повторяются. Изменение параметра цикла задается внутри тела цикла, а сам параметр цикла используется в <условии_выхода>. Здесь ключевые слова REPEAT и UNTIL выполняют также роль операторных скобок, поэтому точку с запятой перед словом UNTIL не ставят.
Пример фрагмента программной реализации вычисления значения суммы Y = 1 + 1/2 + 1/3 + ... + 1/N с помощью оператора цикла с постусловием:
BEGIN
Y := 0; I :=1;
REPEAT Y:=Y+1/I;
I:=I+1
UNTIL I>N;
END.
5.6. Процедуры прерываний циклов
В циклах FOR, REPEAT и WHILE можно использовать процедуры прерываний BREAK и CONTINUE.
Процедура BREAK осуществляет немедленный выход из цикла, не дожидаясь выполнения условия о выходе из него. Процедура CONTINUE позволяет начать новую итерацию цикла, даже если предыдущая еще не закончена.
Пример. Найти первое отрицательное число во входном потоке из вещественных чисел (не более 100).
Program contine;
Var
i: Integer;
a: Real;
Begin
For i:=1 to 100 do
Begin
read (a);
If a >= 0 then сontinue; {пpи выполнении условия изменяется паpаметp цикла и цикл повторяется сначала}
WriteLn ( ' Первое отрицательное число = ' , a);
Break {выход из цикла}
end
end.
5.7. Примеры и задания для циклов с постусловием
Пример 1. Вычислить 15 значений для двух функций: y1(x) = tg(x) и y2(x) = ctg(x) на интервале a ≤ x ≤ b, при a = 0.6*Pi, b = 0.7*Pi.
Для вычислений функций разработана СА (рис. 10) и следующая программа:
Program func;
Const n = 14;
a = 0.6*Pi;
b = 0.7*Pi;
Var x, y1, y2, dx: real;
Begin
dx:=abs((a-b)/n);
x:=a;
Repeat
y1:=sin(x)/cos(x);
y2:=1/y1;
writeln('x=', x:6:4,' y1= ', y1:7:4,' y2=', y2:7:4);
x:=x+dx
Until x>b;
End.
Пример 2. Вычислить сумму s = 1+1/4+1/9+1/16 +...
сточностью доE = 0.00001 (рис. 11).
PROGRAM summa;
CONST
E = 0.00001; {точность}
VAR
s, r: REAL; { s – сумма, r – слагаемое}
i: INTEGER; { i – счетчик слагаемых}
BEGIN
s:=0;
i:=1;
REPEAT
r: = 1/sqr(i); {вычисление слагаемого}
s := s + r;
I := I + 1 {счет слагаемых}
UNTIL r<E; {сравнение слагаемого с Е}
WRITELN ( 'Сумма = ' , s:9:5); {вывод суммы}
END.