- •Основы алгоритмизации и программирования
- •Введение
- •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.
6.3. Оператор выбора (варианта)
Характерной чертой многих алгоритмов является широкая разветвляемость, задаваемых ими вычислительных процессов. Для задания таких разветвлений используют условный оператор, по которому выбирается ход вычисления в зависимости от выполнения одного, двух условий. Но на практике часто встречаются случаи, когда вычислительный процесс надо разветвить не по двум, а по К (К>2) возможным путям. Это можно сделать и при помощи условного оператора, но в этом случае структура программы будет громоздкой:
IF B1 THEN S1 ELSE
IF B2 THEN S2 ELSE
…
IF BK THEN SK ELSE
В языке Паскаль предусмотрен производный от условного оператор, называемый оператором варианта или выбора. Позволяет выбрать одно из нескольких возможных продолжений программы. Этот оператор относится к сложным.
Полный формат оператора:
CASE<ключ_выбора>OF
константа1 : оператор1;
константа2 : оператор2;
…
константаN: операторN;
elseоператор;
end;
Краткий формат оператора:
CASE<ключ_выбора>OF
константа1 : оператор1;
константа2 : оператор2;
…
константаN: операторN;
end;
Здесь CASE (в случае), OF (из), END (конец) – служебные слова. <ключ_выбора> - является селектором, значение которого может быть целого, литерного, логического типа, либо типом, определяемым пользователем (за исключением действительного типа REAL).
Константы должны быть того же типа, что и селектор. Выбор оператора определяется совпадением значений селектора и константы, стоящей перед оператором: если значение выражения равно одной из констант, то выполняется соответствующий ей оператор, а управление передаётся за пределы оператора выбора. Если значение выражения не совпадает ни с одной константой, то управление передаётся за пределы оператора.
Пример 6.1.
CASE I MOD 3 OF
0: M:=0;
1: M:=2;
2: M:=3;
end;
Пример 6.2.
CASE S OF
‘=’, ‘*’, ‘/’, ‘+’: K:=1;
‘!’, ‘-’: K:=2;
‘A’: K:=;
end;
Задача 6.1. Ввести с клавиатуры букву, в ответ на мониторе будет выведена фамилия, начинающаяся на эту букву.
Листинг программы
PROGRAM FAM;
USES CRT;
VAR
OP: CHAR;
BEGIN
CLRSCR;
WRITELN (‘Введите букву’);
OP:= READKEY;
CASE OP OF
‘A’:WRITELN (‘Анисимов’);
‘B’:WRITELN (‘Владимиров’);
ELSEWRITELN(‘Фамилии на данную букву нет’);
END;
END.
Задача 6.2. Написать программу, имитирующую работу калькулятора.
Листинг программы
PROGRAM CALC;
USES CRT;
VAR
OP:CHAR; X, Y, Z : REAL; STOP : BOOLEAN;
BEGIN
CLRSCR;
STOP:= FALSE;
WRITELN (‘Введите X, Y’);
READLN (X, Y);
OP:= READKEY;
CASE OP OF
‘+’: Z:= X+Y;
‘-’: Z:= X-Y;
‘*’: Z:= X*Y;
‘/’: Z:= X/Y;
ELSE STOP := TRUE;
END;
IF NOT STOP THEN WRITELN (‘Результат = ’, Z:6:2);
END.
Задача 6.3. Использовать оператор варианта для ввода и вывода значений перечислимых скалярных типов.
Листинг программы
PROGRAM CAS;
USES CRT;
TYPE COLOR = (RED, BLUE, BLACK);
VAR CLR : COLOR; N : 0..2;
BEGIN
CLRSCR;
WRITELN ('ENTER THE NUMBER OF COLOR 0..2');
READLN (N);
CASE N OF
0 : CLR := RED;
1 : CLR := BLUE;
2 : CLR := BLACK;
END;
WRITELN ('THE LIST OF COLORS:');
CASE CLR OF
RED : WRITELN ('RED');
BLUE : WRITELN ('BLUE');
BLACK : WRITELN ('BLACK');
END;
READLN; END.
Задача 6.4. Использовать оператор выбора (варианта) для определения принадлежности буквы и латинскому и русскому алфавиту.
Листинг программы
PROGRAM TASK1;
USES CRT;
VAR S: 'A'..'G';
BEGIN
CLRSCR;
READLN (S);
CASE S OF
'A', 'B', 'C', 'E': WRITELN ('THE WORD TO BELONG BOTH ALPHABETS');
'D', 'E', 'F', 'G': WRITELN ('THE WORD TO BELONG LATIN ALPHABET');
END; END.
Задача 6.5. Использовать оператор выбора для определения чётности/ нечётности числа на промежутке 1..9.
Листинг программы
PROGRAM TASK2;
USES CRT;
VAR I : 1..9;
BEGIN
CLRSCR;
READLN (I);
CASE I OF
2, 4, 6, 8 : WRITELN ('THE NUMBER IS EVEN');
1, 3, 5, 7, 9 : WRITELN ('THE NUMBER IS UNEVEN');
END;
END.