- •Основы алгоритмизации и программирования
- •Введение
- •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.
3. Организация программ разветвляющихся структур
Условный оператор используется, когда выполнение программы зависит от выполнения некоторого условия.
В Паскале различают две формы условного оператора: полная и сокращенная.
3.1. Полная форма условного оператора
Формат полной формы условного оператора имеет вид:
IF <логическое выражение> THEN оператор1
ELSE оператор2;
где IF (если), THEN (тогда), ELSE (иначе) – служебные слова; оператор1, оператор2 – простые или составные операторы.
Перед ELSE точка с запятой не ставится.
Условие – это любое выражение логического типа, использующее операции сравнения: =, <>, >=, <=; и операции булевой алгебры: and (и), or (или), not (не).
Пример 3.1. Вычислить y=x+1, если x<0 и y=√x, если x ≥ 0.
IF X ≥ 0 THEN Y := SQRT(X)
ELSEY:=X+1;
Если условие сложное, то оно ставиться в круглые скобки.
Пример 3.2. Вычислить k=ln(x/y), если x>0 и y≠0, и k=sin(x), во всех остальных случаях.
IF (X>0) AND (Y<>0) THEN K := LN(X/Y)
ELSEK:=SIN(X);
Пример 3.3. Вычислить:
IF A=B THEN
IF C<D THEN X:=1
ELSEX:=2
ELSEX:=3;
Действие условного оператора расширяется, если использовать после служебных слов составной оператор. Составной оператор – это последовательность действий больше одного, которые заключаются в операторные скобки (begin, end).
IF <лог_усл> THEN
BEGIN
оператор1;
…..
операторN;
END
ELSE
BEGIN
оператор1;
…..
операторN;
END;
Пример 3.4.
Фрагмент программы
IFSUM>KTHEN
BEGIN
A := A+K;
M := M+1;
END
ELSE
BEGIN
A := A+SUM;
WRITELN (A);
END;
Блок-схема алгоритма
3.2. Краткая форма условного оператора
Формат краткой формы условного оператора:
IF <лог_усл> THEN оператор1;
Если логическое условие истинно, то выполняется оператор1, если ложно, то выполняется оператор, следующий за оператором IF.
Пример 3.5. Запишем пример 1 при помощи краткой формы оператора IF.
IF X<0 THEN Y := X+1;
IF X>=0 THEN Y := SQRT(X);
Определение чётности и нечётности числа:
или
IF (X MOD 2 = 0)
THEN WRITRELN (‘чётное число’);
IF (X MOD 2 <> 0)
THEN WRITELN (‘нечётное число’);
Задача 3.1. Определить, принадлежит ли точка с координатами (x,y) прямоугольнику с координатами x1, x2, y1, y2. Примечание. Точка принадлежит прямоугольнику, если x ≥ x1, x ≤ x2; y ≥ y1, y ≤ y2.
Блок-схема алгоритма
Листинг программы
PROGRAMPRIM1;
VAR X, X1, X2, Y, Y1, Y2 : REAL;
BEGIN
READ(X1, X2, Y1, Y2);
IF (X>=X1) AND (X<=X2) AND (Y<=Y1) AND (Y>=Y2)
THENWRITE(‘точка принадлежит прямоугольнику’)
ELSEWRITE(‘точка не принадлежит прямоугольнику’);
END.
Задача 3.2. Вычислить значение функции Y, которая принимает 3 значения.
Блок-схема алгоритма
Листинг программы
PROGRAMFUN;
USES CRT;
VAR X, Y : REAL;
BEGIN
CLRSCR;
WRITE (‘X = ’);
READLN (X);
IF X<=0.5
THEN Y:=X-EXP(COS(X))
ELSE
BEGIN
IF X<=1 THEN Y:= X*SIN(PI*X)
ELSE Y:=ESP(-X);
END;
END.
Задача 3.3. Пусть значение Y зависит от X, график зависимости приведён на рисунке. Программа вычисления значения Y по значению X:
{Использование полной формы условного оператора}
PROGRAMPRIM1;
VAR
Y,X:REAL;
BEGIN
IF X<2 THEN Y := X
ELSE
BEGIN
IF X<3 THEN Y:=2
ELSE Y:=-X+5;
END;
END.
{ Использование краткой формы условного оператора }
PROGRAMPRIM2;
VAR
Y, X : REAL;
BEGIN
IF X<2 THEN Y := X;
IF (X>=2) AND (X<3) THEN Y := 2;
IF (X>=3) Y := -X+5;
END.
Задача 3.4. Разработать алгоритм и составить текст программы.
Блок-схема алгоритма
Листинг программы
P
да да да
VAR
X, Y, Z: REAL;
BEGIN
CLRSCR;
READLN (X, Y);
IF X<0 THEN
BEGIN
IF X>Y THEN Z:=X ELSE Z:=Y;
END
ELSE
BEGIN
IF X<Y THEN Z:=X ELSE Z:=Y;
END;
WRITELN (‘Z = ’, Z:4:2);
END.
Задача 3.5. Ввести 3 числа и расположить их по возрастанию (алгоритм перестановки или сортировки методом пузырька).
Блок-схема алгоритма
Листинг программы
PROGRAMSORT;
USES CRT;
VAR
A, B, C, K: REAL;
BEGIN
CLRSCR;
READLN (A,B,C);
IF A>B THEN
BEGIN
K := A;
A := B;
B := K;
END;
IF A>C THEN
BEGIN
K := A;
A := C;
C := K;
END;
IF B>C THEN
BEGIN
K := B;
B := C;
C := K;
END;
WRITELN (‘A = ’,A:7:4);
WRITELN (‘B = ’, B:7:4);
WRITELN (‘C = ’,C:7:4);
WRITELN;
END.