- •4. Составной Оператор. Понятия функции и процедуры. Пользовательский интерфейс, Структура программ на языке Паскаль
- •4.1. Составной оператор, понятия функции и процедуры в языке Паскаль
- •4.2. Понятие интерфейса пользователя. Средства создания текстового пользовательского интерфейса в Паскале
- •4.3. Реализация базовых функций интерфейса по вводу и выводу данных в Паскале
- •4.4. Использование библиотеки crt для создания текстового пользовательского интерфейса
- •Рассмотрим выполнение отдельных функций по работе с текстовым экраном при помощи подпрограмм из библиотеки crt.
- •Процедуры работы со звуком.
- •Процедура ожидания.
- •4.5. Общая структура программы на Паскале. Комментарии
- •4.6. Содержание подразделов в разделе описаний
- •4.7. Простейшие программы на языке Паскаль для обработки данных простых типов. Основная задача программы и ее интерфейс
- •III. Тело алгоритма.
- •5. ОРганизация ветвлений
- •5.1. Полный и сокращенный оператор if
- •If условие then оператор 1 else оператор 2;
- •If условие then оператор 1;
- •5.2. Полный и сокращенный оператор case
- •5.3. Оператор безусловного перехода goto. Пример программы с использованием ветвления
- •Календарный план семинаров (18 семинаров - 36 час)
- •Указатели в Паскале. Динамическая память на языке Паскаль
- •Ссылочные типы. Указатели в Паскале
- •Операции с указателями
- •Процедуры и функции для работы с указателями и адресами в Паскале
5.3. Оператор безусловного перехода goto. Пример программы с использованием ветвления
Оператор безусловного перехода GOTO имеет структуру:
goto метка
Оператор GOTO осуществляет переход к тому оператору программы, перед которым находится метка (обязательно описанная в данной программе или модуле). Необходимо, чтобы в программе существовал оператор, отмеченный указанной меткой.
Так как применение GOTO ухудшает "читаемость" программ и снижает их вычислительную эффективность, одним из требований структурного программирования является максимальное сокращение, а в идеале - полный отказ от данного оператора.
Пример 1 программы с ветвлением. Разработать блок-схему алгоритма решения основной задачи и написать программу, в которой требуется:
1) ввести вещественные величины a,b,c;
2) рассчитать величины х и у:
3) вывести у.
Дополнительные требования к интерфейсу программы: а) вначале работы программы должна выполняться очистка экрана с заданием темно-зеленого фона, б) ввод чисел a,b,с должен выполняться с клавиатуры в одной строке, в) вывод результата производится на экран с новой строки, цвет букв - белый. Общая ширина поля вывода результата равна 10.
Решение. Блок-схема алгоритма решения основной задачи дана на рис.5.7.
Рис.5.7. Блок-схема алгоритма решения основной задачи
Ниже приведен текст программы с подробными комментариями:
program primer_5_1_3 {алгоритм решения задачи из примера 3}
uses Crt; {подключение библиотеки CRT для работы с экраном}
var a,b,c,x,y,min,max:real;{описание входных, выходных и промежуточных величин программы}
begin {начало раздела операторов}
TextBackground(Green); {Установка темно-зеленого цвета фона}
ClrScr;{ очистка экрана и заполнение его цветом фона}
Write ("Vvedite chislа а,b,с ="); {выдача на экран запроса на
ввод чисел а,b,с}
ReadLn (а,b,с); {ввод чисел а,b,с с переходом на новую строку}
if a+b>c then x:=a+b else x:=c; да нет { вычисление значения x}
min=a;if b<а then min:=b;if x<min then min:=x; {определение min(a,b,x)}
max:= b;if c>b then max:=c;if x>max then max:=x;{определение max(b,c,x)}
y:=min/(max*max+1); { вычисление значения y}
TextColor(White); { установка белого цвета букв}
WriteLn("y = ",y:10);{форматированный вывод на экран величины y с шириной поля вывода 10}
ReadKey; {ожидание нажатия клавиши для перехода от пользовательского экрана в основной}
end. {конец раздела операторов и всей программы}
Вопросы для проверки знаний.
1. Какие алгоритмы называют ветвящимися ?
2. Какие операторы используют для организации ветвления в программах на Паскале ?
3. Какую структуру имеет а)полный и б) сокращенный оператор IF ?
4. В чем отличие выполнения полного и сокращенного операторов IF ?
5. Какую структуру имеет а)полный и б) сокращенный оператор CASE ?
6. В чем отличие выполнения полного и сокращенного операторов CASE ?
7. В чем назначение оператора GOTO и почему в структурном программировании требуется максимально сокращать его использование в программах ?
Практические задания.
1. Написать операторы, реализующие следующие вычисления:
a) если (a-b)2 (c-d)2, то х:= (c-d)2/(a-b)2, иначе х:= (a-b)2 / (c-d)2,
б) если abs(a-b) <0.001, то х:=a/abs(a-b), иначе х:= abs(a-b),
в) если символьная переменная l изменяется от 'a' до 'd', то х:='abcd', если l изменяется от 'e' до 'h', то х:= efgh, если l изменяется от 'i' до 'n', то х:='ijklmn', если l изменяется от 'o' до 'r', то х:='opqr', иначе х:= 's_z'.
2. Разработать блок-схему алгоритма решения основной задачи и написать программу, в которой требуется:
1) ввести вещественные величины a,b,c,d;
2) рассчитать величины х и у:
3) вывести x,у.
Дополнительные требования к интерфейсу программы: а) вначале работы программы должна выполняться очистка экрана с заданием cветло-бирюзового фона, б) ввод всех чисел - в одной строке, в) вывод результата производится на экран с новой строки, цвет букв - красный. Общая ширина поля вывода результата равна 12.
Типы компонент образуются из других типов (простых, структурированных, указателей и т. д.)
данных. В языке Паскаль существуют следующие структурированные типы:
- тип-массив;
- тип-запись;
- тип-множество;
- тип-файл.
4.
5. Структура программы на языке Турбо Паскаль. Использование библиотек в языке Турбо Паскаль. Операторы языка Турбо-Паскаль. Операторы ввода-вывода данных. Форматированный вывод. Оператор присваивания.
6. Условный оператор. Организция ветвлений в программах на языке Турбо Паскаль. Оператор перехода. Метка. Составной оператор. Оператор выбора (варианта).
7. Циклические программы. Арифметический цикл. Итерационные циклы. Цикл с предусловием. Цикл с постусловием. Вложенные циклы.
8. Структурированный тип данных. Массивы – одномерные и двухмерные. Стандартные операции с массивами.
9. Процедуры и функции в языке Турбо Паскаль. Математические и логические операции, выражения. Входные и выходные, формальные и фактические параметры. Локальные и глобальные идентификаторы.
