
- •Кафедра информационных технологий
- •Практикум
- •Введение
- •Тема 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;
for i:=2 to 10 do
f:=f*i;
writeln ('f=', f)
end.
Результат выполнения программы:
f=3628800
Рис.3
Параметром цикла может быть и переменная типа BOOLEAN. В качестве примера рассмотрим программу вычисления логического выражения
F= ┑a∧(y>0)∨(y>z) для двух значений a: “истина” и “ложь” при заданных y и z.
PROGRAM LOGIC (input, output);
(*******************************)
(* Задача: вычислить значение *)
(* логической функции *)
(* F= ┑a∧(y>0)∨(y>z) *)
(* Переменные: *)
(* F - логическая функция; *)
(* y, z - исходные данные; *)
(* а - параметр цикла. *)
(*******************************)
var
F,a:Boolean;
z,y:integer;
begin
write('z='); read(z);
write('y='); read(y);
for a:=true downto false do
begin
F:=not a and (y>0) or (y>z);
writeln ('a=', a, 'F=',F);
end
end.
Результат выполнения программы:
z=1
y=2
a=TRUE F=TRUE
a=FALSE F=TRUE
В качестве параметра цикла в операторе FOR можно использовать и переменные типа CHAR. Так, если стоит задача вывести на экран буквы от Z до A, относящихся к типу CHAR, то программа циклического процесса может иметь следующий вид:
PROGRAM ALPHABET;
(****************************************)
(* Цель – вывести на экран буквы от Z до A*)
(* Переменные: *)
(* BUKVA - параметр цикла *)
(****************************************)
VAR
BUKVA: CHAR;
BEGIN
FOR BUKVA:=’Z’ DOWNTO ’A ’ DO
WRITE (BUKVA);
WRITELN
END.
Результат выполнения программы:
ZYXWVUTSRQPONMLKJIHGFEDCBA
Отметим,
что часто циклические процессы
используются для решения задачи
табулирования функции y=f(x)
(составления таблицы значений функции
для каждого значения аргумента) на
каком-либо промежутке [x1;x2]
с шагом h,
где все переменные действительного
типа. В таком случае поступают следующим
образом. Отсчитывают число повторений
цикла по формуле Nx:=TRUNC((x2-x1)/h)+1.
А далее в задаче аргумент меняют как
x:=x1+(i-1)*h
для которого i=
.
5.5. Итерационные циклы
Циклический процесс называется итерационным, если каждое новое значение переменной цикла определятся через её предыдущее значение, число повторяющихся вычислений в цикле неизвестно и определить заранее (без реализации программы) его невозможно, если выход из цикла осуществляется по достижению решением заданной точности.
Другими словами, итерационный процесс имеет место в том случае, если невозможно предсказать заранее через которое количество шагов он закончится.
Итерационные циклы, реализующие метод последовательных приближений, широко используются в задачах с числовыми, функциональными и степенными рядами, при вычислении определённых интегралов, значений функций, в решении нелинейных алгебраических и трансцендентных (решающихся только графическим способом) уравнений.
Алгоритм итерационного цикла в общей постановке поиска с заданной точностью решения Y одной из перечисленных задач включает в себя:
ввод исходных данных а, ;
установку начального значения решения Y0 = a;
вычисление текущего значения решения Y1 = f (Y0);
проверку условия на окончание цикла |Y0 – Y1| ;
если условие TRUE, то вывод результата Y1 и конец решения;
в противном случае, т.е. если условие FALSE, Y0 = Y1 и переход на п. 3.
В
качестве примера рассмотрим вычисление
суммы степенного ряда
для
X=0.3
и =0.01,
где
.
PROGRAM EXPONENT;
VAR