Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Задания по ЯиСП 1-14 ИВТ.doc
Скачиваний:
53
Добавлен:
01.04.2015
Размер:
648.7 Кб
Скачать

Задания для самостоятельного выполнения лабораторной работы 5

1 Ввести номер дня недели и вывести соответствующий ему день недели на русском и английском языках.

2 Ввести номер месяца и вывести соответствующее ему название на русс­ком языке.

3 Введите номер месяца. Напечатайте соответствующее месяцу время го­да: "зима", "весна", "лето", "осень".

4 Введите время (только часы). Напечатайте соответствующее этому вре­мени сообщение: "Доброе утро", "Добрый день", "Добрый вечер", "Доб­рой ночи".

5 Зведите количество посадочных мест. Напечатайте соответствующий этому количеству вид транспорта: "велосипед", "мотоцикл", "легковой автомобиль", "микроавтобус", "автобус". (Возможны другие варианты)

6 Составить программу, которая выводит сообщение о своих возможностях {Введите номер необходимой операции:1 - сумма; 2 - разность; 3 - произведение; 4 - частное; }

7 Составить программу, которая выводит сообщение о своих возможностях {Введите номер необходимой функции:1 - квадрат; 2 - корень квадратный; 3 - синус; 4 - косинус}

8 Напишите программу, выводящую сообщение о возможных сообщениях {1 – фамилия ; 2- имя; 3 – отчество; 4 - год рождения}

9Напишите программу для вычисления степени введённого с клавиатурычисла. Степень в диапазоне 0 .. 9.

10Определите количество символов, из которых состоит целое положи­тельное число х.

Лабораторная работа 6. Управляющие конструкции языка. Оператор безусловного перехода.

В языке программирования Паскаль, и следовательно в системе прог­раммирования TurboPascal 7.0 поддерживаются современные методологии проектирования программ (нисходящее, модульное проектирование, струк­турное программирование).

Концепция структурного программирования пришла в своё время на смену линейному программированию, реализованному в таких языках прог­раммирования как Бейсик. 3 настоящее время наиболее применяемой явля­ется структурная концепция программирования. 3 структурном программи­ровании принят естественный порядок выполнения программы: все операто­ры выполняются последовательно один за другим в том порядке, как они записаны. Для структурированных программ характерны легкость отладки и корректировка, низкая частота ошибок.

Описанный в данной лабораторной работе безусловный оператор, строго говоря, просто "запрещён" структурной концепцией как грубо нару­шающий её основные принципы, и является "атавизмом" оставшимся как воспоминание о более примитивном линейном программировании. Система программирования TurboPascal 7.0 обладает достаточно мощными средс­твами, позволяющими полностью отказаться от применения этого опера­тора.

Учитывая все описанные выше причины, настоятельно рекомендуется вообще отказаться от использования оператора безусловного перехода, или свести его применение к минимуму. Если же вы всё-таки решили при­менить его в своей программе, то вы должны помнить, что использовать этот оператор следует крайне осторожно. Широкое его применение без особых на то оснований ухудшает понимание логики работы программы. 5е-зусловный переход можно осуществлять далеко не из каждого места прог­раммы. Так, нельзя с помощью этого оператора перейти из основной прог­раммы в подпрограмму, или выйти из подпрограммы, не рекомендуется осу­ществлять переход внутрь структурированного (составного) оператора, т.к. он может дать неправильный результат, с помощью оператора перехо­да, расположенного вне условного оператора или оператора цикла, нельзя перейти внутрь этого условного оператора или оператора цикла и т.д.

Оператор безусловного перехода.

Оператор безусловного (быстрого) перехода GOTO позволяет изменить стандартный последовательный порядок выполнения операторов и перейти к выполнению программы, начиная с заданного оператора.

Форма записи оператора.

GOTO<метка>

Он указывает, что дальнейшая работа программы должна продолжатся с оператора, на котором стоит <метка>. Оператор, на который происходит переход, должен быть помечен меткой. Эта же метка должна быть указана в операторе GOTO, и описана в разделе описания меток.

Описание меток.

Метки используемые в TP, могут быть двух типов:

целым числом в диапазоне от 0 до 9999;

обычным идентификатором.

Все перечисленные метки должны быть перечислены в разделе объяв­ления меток, начинающимся зарезервированным словом label, например:

label 1, 2, MetJca;

Одной меткой можно пометить только один оператор. Метка от поме­ченного оператора отделяется двоеточием. Метка может устанавливаться перед любым оператором, в том числе и перед пустым оператором. Напри­мер:

1: Write(‘Привет’);

Пустой оператор.

Пустой оператор не предписывает никаких действий. По определению он представляет собой пустую совокупность символов. Как и все операто­ры, пустой оператор может быть помечен меткой.

Примеры программ.

Пример 1.

Найти частное от деления целых чисел.

PROGRAM Ех_1;

LabelOut; {описаниеметки}

Var X,Y,Res: Integer;{описание переменных}

Begin

Write(‘Введите делимое: ‘); {вывод сообщения на экран}

Readln(X); {ввод числа}

Write( ‘Введите делитель: ‘);

Redln(Y);

if Y = 0 then {ветвление}

begin {составной оператор}

Writeln(‘деление на ноль’);

GOTO Out; {использование GOTO}

end;

Res := X div Y; Write (‘Частное = ‘,Res);

Out: {метка на "пустой" оператор}

End.

ПРИМЕР2

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

PROGRAMM Ех_2 ;

Label1, 2;

Varх,у,res: real; s: byte;

Begin

1: Write(‘Введитеделимое:’); Readln(x); Write(‘Введитеделитель:’); Readln(у);

if Y = 0 then beginWriteln(‘делениенаноль’); GOTO 2; end;

res := x/y; Writeln(‘Частное =’ ,res);

2: Write(‘Продолжитьвычисления? 1-да, 2-нет. :’); Readln(s);

if s = 1 then GOTO 1;

End.

Контрольные вопросы.

1 Назовите причины нежелательного использования оператора безусловно­го перехода.

2 Что такое метка? Как она описывается и используется?

3 Что такое пустой оператор?