Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Informatika_Lektsii_4_5.doc
Скачиваний:
3
Добавлен:
01.03.2025
Размер:
423 Кб
Скачать
☆

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. Процедуры и функции в языке Турбо Паскаль. Математические и логические операции, выражения. Входные и выходные, формальные и фактические параметры. Локальные и глобальные идентификаторы.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]