Оператор выбора (case)

Предназначен для ветвления программ на 2 или несколько направлений.

Case <ключ выбора> of <список выбора> else P end;

<ключ выбора> - идентификатор целого или символьного типа,

<список выбора> - включает в себя две или более конструкций следующего вида:

<константа выбора> : <оператор>;

<константа выбора> - это идентификатор того же типа, что и <ключ выбора>.

Пример. Для 100 целых значений x рассчитать значение Оператор выбора (case) - student2.ru .

Составить два варианта программ: с помощью условного оператора if и c помощью оператора выбора Case.

Технологические операции программирования приведены в таблице

Таблица

N Технологическая операция Выполнение
1. Постановка задачи Для 100 целых значений x рассчитать значение y, Оператор выбора (case) - student2.ru
2. Математическое описание Для определения четности воспользуемся оператором mod – остаток целочисленного деления: Если x mod 2=0, то x-четное Если x mod 2=1, то x-нечетное
3. Разработка структограммы Оператор выбора (case) - student2.ru
4. Написание программы  
4.1 С помощью оператора If Program P4; Var x,y:integer; Begin For x:=1 to 100 do Begin If x mod 2 =0 then y:=2*x else y:=2+x; Writeln(x,y); End; End.
4.2 С помощью оператора Case Program P4; Var x,y:integer; Begin For x:=1 to 100 do Begin Case x mod 2 of 0: y:=2*x; 1: y:=2+x; end; Writeln(x,y); End; End.
5. Отладка и получение результатов Выполнить самостоятельно


ФУНКЦИЯ И ПРОЦЕДУРА

Функции и процедуры представляют собой важный инструмент Турбо Паскаля, позволяющий писать хорошо структурированные программы.

Функции и процедуры должны быть описаны в разделе описания, обращение к ним производится, как правило, из тела основной программы.

Описание функций и процедур включает заголовок и основную часть описания.

  1. Заголовок:

Function F1(<С.Ф.П.>): тип; {для функций},

Procedure Pr(<С.Ф.П.>); {для процедур},

где Function, Procedure – служебные слова, показывающие, что далее следует описание функции и процедуры соответственно,

F1 и Pr – имена функции и процедуры, которые записываются как идентификаторы ТП, <С.Ф.П.> - список формальных параметров.

Входные параметры от выходных при описании процедуры разделяются служебным словом var. Выходным параметром у функции является имя функции.



  1. Основная часть описания функции и процедуры полностью повторяет структуру программы (см. лекцию 3).
  2. Обращение к функциям и процедурам выполняется, как правило, в теле основной программы. Порядок описания функций и процедур и обращения к ним рассмотрим на примере.

Пример. Написать программу вычисления площади круга с помощью функции и процедуры.

Технология разработки программы приведена в таблице.

Таблица

N Этап программирования Выполнение
Постановка задачи Написать программу вычисления площади круга с помощью функции и процедуры
Математическое описание Формула для площади круга S=π∙R2
Разработка структограммы  
3.1 С использованием функции Оператор выбора (case) - student2.ru
3.2 С использованием процедуры Оператор выбора (case) - student2.ru
4. Написание программы  
4.1 С использованием функции Program PY; Var R,S:real; Function PL(R:real):real;{Описание функции } Begin PL:=p*sqr(R); End; Begin R:=3; S:=PL(R); {Обращение к функции} Writeln(R,S); End.
4.2 С использованием процедуры Program PY; Var R,S:real; Procedure PL(R:real;var S:real); {Описание процедуры } Begin S:=p*sqr(R); End; Begin R:=3; PL(R,S); {Обращение к процедуре} Writeln(R,S); End.
5. Отладка и получение результатов Выполнить самостоятельно

Для использования графических возможностей Турбо Паскаля необходимо в блоке описания uses подключить графический модуль Graph. Модуль содержит набор графических функций и процедур, основные из которых рассмотрены ниже.

Графические процедуры

Arc(x,y:integer;St,En,R:word); {рисование дуги, где x,y - коорд. центра дуги, R - радиус, St, En - нач. и конечный углы.}

Оператор выбора (case) - student2.ru

ClearDevice; {очистка экрана}

Circle(x,y:integer;R:word); {окружность радиуса R

cцентром в точке (x,y)}

CloseGraph; {закрытие графики}

InitGraph(gd,gm:integer;Path:string); {инициализация графики, где

gd - графический драйвер,

gm - графический режим,

Path - путь размещения файла

с расширением .bgi.}

Line(x1,y1,x2,y2:integer); {рисование линии, проходящей через две точки:

с координатами (x1,y1) и (x2,y2) }

LineRel(dx,dy:integer); {рисование линии: dx, dy – приращения

координат к координатам текущей

позиции курсора}

Оператор выбора (case) - student2.ru

LineTo(x,y:integer); {рисование линии, проходящую через текущую

позицию курсора и точку с координатами (x,y)}

Moveto(x,y:integer); {задание координат текущей точки}

OutText(T:string); {вывод текста в текущую точку}

OutTextXY(x,y:integer;T:string);{вывод текста в точку с координатами х,у}

Rectangle(x1,y1,x2,y2:integer); {рисование прямоугольника: (x1,y1) и (x2,y2) - координаты противоположных вершин}

PutPixel(x,y:integer;c:word); {выводит точку с координатами (х,у) цветом с}

Оператор выбора (case) - student2.ru

Графические функции

GetMaxX - определяет максимальный размер экрана по оси x.

GetMaxY - определяет максимальный размер экрана по оси y.

GetX - координата текущей позиции курсора по оси x.

GetY - координата текущей позиции курсора по оси y.

Машинные координаты

Начало машинной системы координат, направление осей, а также максимальные значения координат монитора показаны на рисунке

Оператор выбора (case) - student2.ru

На рисунке приведена также машинная (xm, ym) и физическая (x,y) системы координат. Для изображения на экране точки с физическими координатами (x,y) необходимо определить ее машинные координаты (xm, ym). Расчетные формулы имеют следующий вид (попробуйте самостоятельно получить эти формулы):

xm=x0+x*Mx ,

ym=y0-y*My,

где Mx, My-масштабы соответственно по осям x и y, которые показывают число пикселей в одной физической единице,

x, y- физические координаты точки,

xm, ym- машинные координаты точки,

x0, y0- машинные координаты начала физической системы координат.

Пример. Нарисовать через весь экран горизонтальную и вертикальную линии, пересекающиеся в центре монитора.

Этапы разработки программы сведены в таблицу.

Таблица

N Этапы программирования Выполнение
1. Постановка задачи Нарисовать через весь экран горизонтальную и вертикальную линии, пересекающиеся в центре монитора.
2. Математическое описание Изобразим вид экрана с указанием координат требуемых линий Оператор выбора (case) - student2.ru
  3. Разработка структограммы Оператор выбора (case) - student2.ru
4. Написание программы Program P5; Uses graph; {подключение граф.модуля} Var gd,gm:integer; Begin gd:=detect;{определение граф. драйвера} InitGraph(gd,gm,’ ‘);{инициализация графики} Line(0, round(GetMaxY/2), GetMaxX, Round(GetMaxY/2));{гориз. лин.} Line(round(GetMaxX/2), 0, Round(GetMaxX/2), GetMaxY); {вертик. лин.} Readln; {пустой ввод} CloseGraph;{закрытие графики} End.
5. Отладка и получение результатов Выполнить самостоятельно

Пример. Написать программу построения графика функции y=x2 для x∈[-1;1].

Этапы разработки программы сведены в таблицу.

Таблица

N Этапы программирования Выполнение
1. Постановка задачи Построить график функции y=x2 для x∈[-1;1].
2. Математическое описание Изобразим вид экрана, который мы хотели бы получить после выполнения программы. Оператор выбора (case) - student2.ru
3. Разработка структограммы Оператор выбора (case) - student2.ru
4. Написание программы Program P6; Uses graph; Var gd,gm:integer; x,y:real; x0,y0,xm,ym,Mx,My:integer; begin gd:=detect; InitGraph(gd,gm,’ ‘); Mx:=300; x0:=320; My:=440; y0:=460; {выбраны для монитора 640×480 пикс.} For xm:=20 to 620 do Begin x:=(xm-x0)/Mx; y:=sqr(x); ym:=round(y0-y*My); PutPixel(xm,ym,1); End; Readln; CloseGraph; End.
5. Отладка и получение результатов Выполнить самостоятельно

Среда Турбо Паскаля загружается файлом turbo.exe.

Главное меню ТП содержит оглавление дополнительных меню:

  1. Оператор выбора (case) - student2.ru - вспомогательные действия.
  2. File(файл) – действие с файлами.
  3. Edit (редактировать) – редактирование файлов.
  4. Search (искать) – поиск.
  5. Run (работа) –прогон программы.
  6. Compile (компиляция) – компиляция программы.
  7. Debug ( отладка) – отладка программы.
  8. Options (варианты) – установка параметров среды.
  9. Windows (окно) – работа с окнами.
  10. Help (помощь) –обращение к справочной службе.

Выбор пункта главного меню приводит к появлению дополнительного меню, вид и назначение которого для каждой клавиши рассмотрены ниже на примере версии Турбо Паскаля 6.0.

  1. Оператор выбора (case) - student2.ru Вспомогательные действия
About Версия о Паскале
Refresh display Восстановление экрана
Clear Desktop Очистка экрана

  1. File (файл) – действие с файлами;
OpenF3 Открыть файл {A:\LB1}
New Новый файл
SaveF2 Сохранение
Save as … Сохранить как
Save all Записать всё
Change dir Изменение директории
Print Распечатывает файл из активного окна
Get into Получение информации
Dos shell Временный выход в DOS (из Turbo Pascal)
Exit Alt-X Выход из Turbo Pascal

  1. Edit – редактирование
Restore Line Восстановление строки
CutShift+Del Удаление выделенного блока из окна в буфер
Copy Ctrl-Ins Копирование выделенного блока из окна в буфер
Paste Shift-Ins Копирование буфера в окно редактирования
Copy Examples Копирование примера
Clear Ctrl-Del Удаление выделенного блока

  1. Search - поиск
Find Найти
Replace Заменить
Search again Повторить поиск
Go to line number Искать линию с номером
Find procedure Поиск процедуры
Find Error Поиск ошибки

  1. Run – работа
Run Ctrl+F9 Запуск программы
Program Reset Прекращение отладки
Go to cursor Начало режима отладки
Trace into F7 Режим отладки сначала
Step over F8 Следующий шаг
Parameters Параметры

  1. Compile – компиляция
CompileAlt+F9 Создание exeфайла
MakeF9 Перекомпиляция измененных файлов
Build Перекомпиляция всех файлов
Destination Путь компиляции
Primary File Имя компилируемого файла

  1. Debug – отладка
Evaluate/Modify Ctrl+F4 Оценка модификации
Watches Наблюдение
Toggle Break Point Ctrl+F8 Установка контрольной точки
Break points Контрольные точки

  1. Options – Опции
Compiler Компилятор
Memory size Размер памяти
Linker Редактор связи
Debugger Отладка
Directories Директории
Environment Окружающая среда
Save options Запись опций
Retrieve Загрузка опций

  1. Windows – окна
Size/Move Размер и положение окна на экране
ZoomF5 Распахнуть
Title Черепица
Cascade Каскад
Next F6 Следующее окно
Previous Shift+F6 Предыдущее окно
CloseAlt+F3 Закрыть
Watch Окно наблюдения
Register Регистр
Output Выходное окно
Call stack Показать список
User screenAlt+ F5 Окно пользователя
List Посмотреть содержимое экрана

  1. Help – помощь
Contents Содержание
IndexSheft+F1 Алфавитный список
Topic Search Ctrl+F1 Поиск в окрестностях курсора
Previous Topic Alt+F1 Предыдущее сообщение

Редактирование файла

Для корректировки файла в редакторе ТП зарезервированы следующие комбинации клавиш:

Оператор выбора (case) - student2.ru

Подготовка к промежуточному контролю

Под первичной обработкой информации будем понимать следующие операции заполнение массивов, отыскание в нем максимального и минимального элементов, определение среднего арифметического и среднего геометрического значений, сортировку элементов массива.

Рассмотрим некоторые примеры первичной обработки информации, выносимые на промежуточный контроль.

Пример. Для заданного случайным образом массива x (1.5<=x<=2.5), состоящего из 12 элементов, определить среднее арифметическое для всех и среднее геометрическое для x>2. Этапы решения задачи сведены в таблицу

Таблица

N Этапы программирования Выполнение
1. Постановка задачи Для заданного случайным образом массива х (1.5<=x<=2.5), состоящего из 12 элементов, определить среднее арифметическое для всех x и среднее геометрическое для х>2.
2. Математическое описание Оператор выбора (case) - student2.ru - среднее арифметическое. Оператор выбора (case) - student2.ru - среднее геометрическое
3. Разработка структограммы Оператор выбора (case) - student2.ru
4. Написание программы Program PK1; Var x:array [1..12] of real; i,n,k:integer; A,P:real; Begin A:=0; P:=1; n:=12; k:=0; {задание нач. зн.} Randomize; {подключение генератора случайных чисел} For i:=1 to 12 do Begin x[i]:=random+1.5; {генерация x∈(1.5,2.5)} A:=A+x[i]; {сумматор для среднего арифметического} If x[i]>2 then Begin P:=P*x[i]; {произведение для вычисление среднего геометрического} k:=k+1; {счетчик сомножителей для вычисление среднего геометрического} end; end; A:=A/n; {среднее арифметическое} P:=exp(Ln(P)/k); {среднее геометрическое} Writeln(A,P); end.
5. Отладка и получение результатов Выполнить самостоятельно.


Пример. Для шести произвольных значений X∈(1,3) рассчитать и записать массив Y

Оператор выбора (case) - student2.ru

Этапы решения задачи сведены в таблицу

Таблица

N Этапы программирования Выполнение
1. Постановка задачи Для шести произвольных значений X∈(1,3) рассчитать и записать массив Y. Оператор выбора (case) - student2.ru
  2. Математическое описание
3. Разработка структограммы Оператор выбора (case) - student2.ru
4. Написание программы Program P6; Var x,y:array[1..6] of real; I:integer; Begin X[1]:=1,2;X[2]:=2,5;X[3]:=2,9;{зад. массивов} X[4]:=1,7;X[5]:=1,5;X[6]:=2,3; {опер. присв.} For i:=1 to 6 do Begin If x[i]<2 then y[i]:=exp(x[i]*ln(2,5)); If x[i]>=2 then y[i]:=sqr(sin(x[i])/cos(x[i]); Writeln(x[i],y[i]); End; End.
5. Отладка и получение результатов Выполнить самостоятельно


Пример. Самостоятельно составьте программу для решения задачи.

Заполнить массив из 10 элементов. Отсортировать элементы массива в порядке возрастания. Найти min и max значения массива. Вывести на экран исходный, отсортированный массивы, min и max значения.

Наши рекомендации