
- •Введение
- •1. Программирование на языке Паскаль
- •1.1. Структура программы
- •1.2. Типы данных
- •1.2.1. Целый тип данных
- •1.2.2. Логические типы данных – Boolean
- •1.2.3. Данные символьного типа
- •1.3. Операторы языка программирования Турбо Паскаль
- •1.3.1. Операции в Турбо Паскаль
- •1.3.2. Правила вычисления выражений
- •1.3.3. Встроенные функции в Турбо Паскаль
- •1.3.4. Описание констант и переменных
- •1.3.5. Операторы в Турбо Паскаль
- •Вопросы для самопроверки
- •Лабораторная работа №1 Организация программ линейных структур
- •2. Организация форматного вывода данных на языке Паскаль
- •Варианты задания
- •3. Организация программ разветвляющихся структур
- •3.1. Полная форма условного оператора
- •3.2. Краткая форма условного оператора
- •Вопросы для самопроверки
- •Лабораторная работа №3 Организация программ разветвляющихся структур
- •Варианты заданий
- •4. Организация циклических процессов
- •Лабораторная работа №4 Составление циклических программ
- •Варианты заданий
- •Методические указания
- •Варианты заданий
- •5. Программирование структур с вложенными циклами
- •Вопросы для самопроверки
- •Лабораторная работа №5 программирование структур с вложенными циклами. Вычисление суммы ряда
- •Методические указания
- •Варианты заданий
- •6. Перечислимые и ограниченные типы данных
- •6.1 Перечислимый тип данных
- •6.2. Ограниченный тип данных
- •6.3. Оператор выбора (варианта)
- •Вопросы для самопроверки
- •Лабораторная работа №6 Перечислимые и ограниченные типы данных
- •Варианты заданий.
- •7. Регулярные типы данных
- •7.1. Одномерные массивы
- •7.1.1. Краткая форма объявления одномерного массива
- •7.1.2. Полная форма объявления одномерного массива
- •7.1.3. Доступ к элементам массива
- •Вопросы для самопроверки
- •Лабораторная работа №7_1 регулярные типы данных. Массивы
- •Варианты заданий
- •7.2. Двумерные массивы
- •Вопросы для самопроверки
- •Лабораторная работа №7_2 регулярные типы данных. МАтрицы
- •Варианты заданий
- •7.3. Сортировка элементов массива
- •7.3.1. Сортировка методом «пузырька»
- •7.3.2. Сортировка вставками
- •7.3.3. Сортировка посредством выбора
- •7.3.4. Быстрая сортировка
- •8. Составление программ с использованием подпрограмм
- •8.1. Область видимости идентификатора переменной
- •8.2. Подпрограммы - процедуры (procedure)
- •8.2.1. Формальные и фактические параметры
- •Вопросы для самопроверки
- •8.3. Подпрограммы-функции (function)
- •Вопросы для самопроверки
- •Лабораторная работа №8_2 составление программ с использованием подпрограмм - функций
- •Варианты заданий
- •8.4. Рекурсия
- •8.4.1. Вычисление факториала
- •8.4.2. Формы рекурсивных процедур
- •8.4.3. Числа Фибоначчи
- •Вопросы для самопроверки
- •9. Модули
- •Вопросы для самопроверки
- •Лабораторная работа №9 составление программ с использованием модулей
- •Варианты заданий
- •10. Строковые типы данных (String)
- •10.1 Операции со строками
- •10.2. Стандартные процедуры и функции для строк
- •10.3. Хранение строк
- •Вопросы для самопроверки
- •Лабораторная работа №10 обработка символьной информации
- •Варианты заданий
- •11. Комбинированные типы. Записи (Record)
- •11.1 Записи с фиксированными частями
- •11.2. Оператор with…do
- •11.3. Вариантные записи
- •Вопросы для самопроверки
- •Лабораторная работа №11 Комбинированные типы. Записи
- •Варианты заданий
- •12. Файлы
- •12.1. Классификация файлов
- •12.1.1. Чтение файла
- •12.1.2. Запись файла
- •Вопросы для самопроверки
- •Лабораторная работа №12 организация работы с внешней памятью
- •Варианты заданий
- •13. Множества
- •13.1. Объявление множества
- •13.2. Операции над множествами
- •13.3. Сравнение множеств
- •13.4. Старшинство множественных операций
- •Вопросы для самопроверки
- •Лабораторная работа №13 множества
- •Варианты заданий
- •Библиографический список
4. Организация циклических процессов
Ц
иклом
называется многократно повторяющийся
участок вычислительного процесса.
Каждое повторение этого участка
происходит при новом значении некоторой
переменной, называемой параметром
цикла. Циклы различаются по способу
проверки условия выхода из цикла и по
построению.
По способу проверки условия выхода из цикла их делят на следующие циклы:
циклы с предусловием (рис.1);
ц
иклы с постусловием (рис.2).
Итерационные циклы характеризуются последовательным приближением к искомому значению с заданной точностью.
В языке Паскаль имеются три вида операторов цикла:
Оператор цикла с предусловием;
Оператор цикла с постусловием;
Оператор цикла с заданным числом повторений.
Все данные операторы являются сложными. Вход в цикл возможен через его начало.
Цикл с предусловием используют, если число повторений в цикле заранее неизвестно. Форма данного циклического оператора имеет вид:
WHILE <лог_выражение> DO {начало цикла}
BEGIN
Операторы циклической части программы {тело цикла}
END; {конец цикла}
Где while (пока), do (делать) – служебные слова.
Предварительно проверяется значение логического выражения. Пока оно истинно, выполняются операторы циклической части программы, как только выражение становится ложным, происходит выход из цикла. Операторы циклической части заключаются в операторные скобки BEGIN END и представляют составной оператор.
Если в циклической части всего один оператор, то оператор цикла принимает следующий вид:
WHILE <лог_выраж> DO оператор1;
Пример 4.1.
A := 1;
N := 1;
WHILE 2*A<=3*N+1 DO
BEGIN
A := A+2;
N := N+1;
END;
Оператор цикла с последующим условием используется, когда заранее неизвестно число повторений в цикле.
REPEAT {начало цикла}
Операторы циклической части программы {тело цикла}
UNTIL<лог_выражение>; {конец цикла}
где REPEAT (повторять), UNTIL (до тех пор) – служебные слова.
Выделяется сначала циклическая часть, а затем проверяется условие. Операторы циклической части можно заключать в операторные скобки (ошибки не будет).
Например, y=x2, при x=8, 6, 4, 2.
X:=8;
REPEAT
Y:=SQR(X);
WRITE(X:3, Y:5);
X:=X-2;
UNTIL X=0;
О
ператор
цикла с параметром
используется, когда известно число
повторений.
FOR I:=M1 TO M2 DO {ЗАГОЛОВОК ЦИКЛА}
BEGIN
операторы циклической части {ТЕЛО ЦИКЛА}
END;
Например,
FOR I:= 1 TO 5 DO
BEGIN
A:=2*I+1;
B:=2*I;
END;
FOR I:= 5 DOWNTO 1 DO
BEGIN
A:=2*I+1;
B:=2*I;
END;
Если в цикле один оператор, то можно использовать следующие формы записи:
FOR I := M1 TO M2 DO ОПЕРАТОР1;
FOR I := M2 DOWNTO M1 DO ОПЕРАТОР1;
Например. Дано N действительных чисел. Вычислить их среднее арифметическое.
PROGRAM PRIM;
VAR
I, N : INTEGER;
X,S:REAL;
BEGIN
READ(N);
S:=0;
FOR I:=1 TO N DO
BEGIN
READ(X);
S := S+X;
END;
S:=S/N;
WRITELN(S:8:3);
END.
Задача 4.1.
Построить таблицу функции
на отрезке от 0 до 1, количество точек
на этом отрезке - М = 10, с шагом H=(B-A)/M.
В
ариант
№1. Цикл
While…do Вариант
№2. Цикл Repeat…until
Вариант №3. Цикл с параметром For…
Программа для блок-схемы №1.
PROGRAM Fun1;
VAR M: integer;
A, B, H, X, Y: real;
BEGIN
READ(A,B,M);
WRITELN (‘Таблица значений функции’);
{***}
H := (B-A)/M;
X:=A;
WHILE X<=B DO
BEGIN
Y:= ESP(X)+SQRT(1-X);
WRITELN(X,’’:2, Y);
X:=X+H;
END;
{***}
END.
Программа для блок-схемы №2.
…
{***}
REPEAT
Y:= ESP(X)+SQRT(1-X);
WRITELN(X,’’:2, Y);
X:=X+H;
UNTIL X>B;
{***} …
Программа для блок-схемы №3.
…
{***}
FOR i:= 1 TO N DO
BEGIN
Y:= ESP(X)+SQRT(1-X);
WRITELN(X,’’:2, Y);
X:=X+H;
END;
{***} …
Задача 4.2. Определить сумму и произведение числового ряда: 1+2+3+4+…+n;
Б
лок-схема
алгоритма
Листинг программы
PROGRAM TASK2;
USES CRT;
VAR I, N, S, P : INTEGER;
BEGIN
CLRSCR;
WRITELN (‘Введите n’);
READLN(N);
S:=0;
P:=1;
FOR I:=1 TO N DO
BEGIN
S:= S+I;
P:=P*I;
END;
WRITELN (‘Сумма числового ряда равна - ’, S);
WRITELN (‘произведение ряда равно - ’, P);
READLN;
END.