
- •Кафедра информационных технологий
- •Практикум
- •Введение
- •Тема 1. Основы алгоритмизации
- •1.1. Общие понятия и определения
- •1.2. Свойства информации
- •1.3. Этапы решения задач
- •1.4. Блок-схемы алгоритмов
- •Тема 2. Интегрированная среда Turbo Pascal 7.0
- •2.1. Основные элементы ide Turbo Pascal 7.0
- •2.2. Ввод программы в среде Turbo Pascal
- •2.3.Сохранение программы в файле
- •2.4. Работа с существующей программой
- •2.5. Компиляция программы в среде Turbo Pascal
- •Compile successful: Press any key... (Успешная компиляция: Нажмите любую клавишу...)
- •2.6. Выполнение программы в среде Turbo Pascal
- •2.7. Выход из среды Turbo Pascal
- •Тема 3. Элементы языка Турбо Паскаль и программирование линейных вычислительных процессов
- •3. 1. Алфавит языка
- •3. 2. Идентификаторы
- •3.3. Основные типы данных и операции с ними
- •3.4. Константы и переменные
- •3.5. Выражения
- •3.6. Стандартные математические функции языка Турбо - Паскаль
- •3.7. Структура программы
- •X,y : Integer;
- •3.8. Ввод исходных данных. Операторы read и readln
- •3.9. Вывод данных. Операторы write и writeln
- •Writeln (выражение 1, выражение 2, … , выражение n).
- •3. 10. Оператор присваивания
- •3.11. Пример составления программы
- •3.12. Контрольные вопросы
- •3.13. Варианты заданий
- •Тема 4. Программирование разветвляющихся процессов
- •4.1. Методические указания
- •4.2. Условный оператор if и составной оператор Begin … End
- •4.3. Оператор безусловного перехода goto и оператор отбора case
- •4.4. Контрольные вопросы
- •4.5. Варианты заданий
- •Тема 5. Циклические процессы
- •5.1. Общие сведения
- •5.2. Цикл с предусловием
- •I:integer;
- •5.3. Оператор цикла с постусловием
- •I:integer;
- •5.4. Цикл с параметром
- •I:integer;
- •5.5. Итерационные циклы
- •XI, s, X, e: real;
- •5.6. Контрольные вопросы
- •5.7. Варианты заданий
- •Тема 6. Ввод с клавиатуры и формы представления выходной информации
- •6.1. Операторы ввода и вывода
- •6.2. Управление шириной поля вывода в процедурах Write и Writeln
- •6.3. Пример выполнения задания
- •Xn, xk, hx : real;
- •Результаты выполнения программы
- •6.4. Контрольные вопросы
- •6.5. Варианты заданий
- •Тема 7. Вложенные циклы
- •7.1. Общие сведения
- •7.2. Примеры выполнения задания
- •X, hx, a, b, hx, s, x0, xn, y: Real;
- •7.3. Контрольные вопросы
- •7.4. Варианты заданий
- •Тема 8. Массивы и действия с ними.
- •8.1. Методические указания
- •8.2.Одномерные массивы
- •8.3.Многомерные массивы
- •V:stroka;
- •8.4.Символьные массивы
- •8.5.Ввод-вывод массивов
- •8.6. Примеры выполнения программ
- •I,k,l:integer;
- •I,j,m,r:integer;
- •8.7. Контрольные вопросы
- •I,j: integer;
- •8.8. Варианты заданий
- •Приложение 1
- •Приложение 2 Структурограммы
- •Рязанский государственный медицинский университет
- •Кафедра информационных технологий отчет
- •Рязань 2004
- •Составить программу для вычисления значения функции
- •Библиографический список
- •Содержание
I:integer;
f:longint;
begin
f:=1;
i:=2;
while i<=10 do begin
f:=f*i;
i:=i+1
end;
writeln ('f=', f)
end.
Результат выполнения программы:
f=3628800
Рис.1
5.3. Оператор цикла с постусловием
В операторе REPEAT используется так называемое постусловие, то есть значение логического выражения, управляющее выходом из цикла, проверяется после выполнения операторов, содержащихся внутри оператора REPEAT. Оператор имеет следующий вид:
REPEAT
<последовательность операторов>
UNTIL <выражение>;
В результате вычисления выражения должно получится значение логического типа. Последовательность операторов, заключенная между ключевыми словами REPEAT и UNTIL, выполняется до тех пор, пока выражение не примет значение TRUE. В этом случае цикл заканчивается, и происходит переход на оператор, следующий за REPEAT. Операторы внутри цикла REPEAT выполняются, по меньшей мере, один раз, поскольку условие выхода из цикла проверяется только после его очередного выполнения. С выходом из цикла параметр цикла становится неопределённым.
Ниже приведёны алгоритм и программа ранее рассмотренной задачи с использованием цикла REPEAT ... UNTIL.
Цикл REPEAT ... UNTIL в данном примере выполняется до тех пор, пока выражение i>10 имеет значение FALSE. В тот момент, когда выражение i>10 принимает значение TRUE, цикл REPEAT ... UNTIL завершается. При построении циклов с использованием REPEAT ... UNTIL необходимо помнить, что этому оператору должен предшествовать оператор присваивания начального значения параметру цикла.
program forExample;
var
I:integer;
f:longint;
begin
f:=1;
i:=2;
repeat
f:=f*i;
i:=i+1
until i>10;
writeln ('f=', f)
end.
Результат выполнения программы:
f=3628800
Рис.2
5.4. Цикл с параметром
Синтаксическая запись цикла с параметром имеет два варианта:
- с возрастанием переменной цикла:
FOR <переменная цикла> := <начало> TO <конец> DO <оператор>;
- с убыванием переменной цикла:
FOR <переменная цикла>:=<начало> DOWNTO <конец> DO <оператор>;
В качестве переменной цикла должна использоваться переменная порядкового типа, объявленная в том блоке, где содержится оператор FOR. Параметры <начало> и <конец> задаются выражениями, типы которых должны быть совместимы по присваиванию с типом переменной цикла. Их значения определяются один раз, при входе в оператор FOR, и сохраняются на протяжении всего процесса его выполнения. После задания (вычисления) начального и конечного значений первое из них присваивается переменной цикла. Затем, если используется схема с возрастающим параметром, то производится проверка, не превосходит ли содержимое переменной цикла конечного значения. Если не превосходит, выполняются операторы, образующие тело цикла. Далее значение переменной цикла увеличивается на единицу, и процесс, включающий проверку и выполнение операторов, повторяется. Так происходит до тех пор, пока проверка не даст положительный результат (TRUE). В этом случае цикл завершается, переменная цикла объявляется неопределённой и осуществляется переход на оператор, следующий за FOR.
Схема с убывающим значением параметра имеет следующие особенности. В ней при проверке определяется, не меньше ли содержимое переменной цикла конечного значения, и в случае ответа FALSE выполняются входящие в структуру FOR операторы. Переменная цикла при каждом повторении цикла не увеличивается, а уменьшается на единицу.
Р
ассмотрим
ниже алгоритм и программу той же задачи
с использованием оператора цикла FOR.
program forExample;
var