- •Основы алгоритмизации и программирования
- •Введение
- •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. Организация форматного вывода данных на языке Паскаль
- •Вопросы для самопроверки
- •Лабораторная работа №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. Двумерные массивы
- •Полная форма описания матрицы:
- •Формирование элементов случайным образом:
- •Формирование элементов матрицы при вводе с клавиатуры:
- •Фрагменты программ по обработке 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_1 составление программ с использованием подпрограмм - процедур
- •Методические указания
- •Варианты заданий
- •8.3. Подпрограммы-функции (function)
- •Вопросы для самопроверки
- •Лабораторная работа №8_2 составление программ с использованием подпрограмм - функций
- •Варианты заданий
- •8.4. Рекурсия
- •8.4.1. Вычисление факториала
- •8.4.2. Формы рекурсивных процедур
- •8.4.3. Числа Фибоначчи
- •Вопросы для самопроверки
- •9. Модули
- •Структура модуля
- •Interface
- •Implementation
- •Вопросы для самопроверки
- •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. Запись файла
- •Вопросы для самопроверки
- •13.1. Объявление множества
- •13.2. Операции над множествами
- •13.3. Сравнение множеств
- •Include (s, I);
- •13.4. Старшинство множественных операций
- •Вопросы для самопроверки
- •Лабораторная работа №13 множества
- •Варианты заданий
- •Горячие клавиши
- •Библиографический список
- •Оглавление Введение 3
- •1. Программирование на языке Паскаль 5
- •1.1. Структура программы 5
- •2. Организация форматного вывода данных на языке Паскаль 17
- •Лабораторная работа №7_1.
- •Лабораторная работа №7_2.
- •Лабораторная работа №8_2.
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;
UNTILX=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;
Блок-схема алгоритма
Листинг программы
PROGRAMTASK2;
USESCRT;
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.