71542

Команды ветвления на языке Pascal. Решение задач на использование операторов IF - THEN – ELSE; CASE

Лабораторная работа

Информатика, кибернетика и программирование

If — это оператор позволяющий осуществить выбор в программе одной из двух последовательностей команд (ветвей) в зависимости от некоторого условия. Условный оператор имеет две формы:

Русский

2017-10-23

52.5 KB

0 чел.

Лабораторная работа

Команды ветвления на языке Pascal. Решение задач на использование операторов IF - THEN – ELSE; CASE.

Цель: научиться использовать операторы «ветвления» и «выбора» при написании программ на языке программирования Pascal.

1) Условный оператор (или оператор ветвления)

If — это оператор позволяющий осуществить выбор в программе одной из двух последовательностей команд (ветвей) в зависимости от некоторого условия. Условный оператор имеет две формы:

неполная форма:

If <условие>

Then <оператор>;

полная форма:

If <условие>

Then <оператор1>

Else <оператор2>;

где условие — выражение булевского типа, оператор, оператор1 — оператор, который выполняется, если условие принимает значение True, оператор2 — оператор, который выполняется если условие принимает значение False. В полной форме оператора If обязательно будет выполнен один из двух операторов: оператор1 или оператор2, а затем управление будет передано следующему оператору, стоящему в тексте программы за оператором If. В неполной форме — либо будет выполнен оператор, либо управление будет передано следующему оператору, стоящему в тексте программы за оператором If.

Задание 1.

Задача 1. Даны два числа X и Y. Определить наибольшее значение этих чисел.

Рассмотреть программу решения задачи. Объяснить работу программы.

Program Maximum;

Var x, y, max : Real; // описание переменных

Begin

Write('X Y : ');

Readln(x,y); // ввод значений переменных X и Y

If x>y Then max:=x Else max:=y; // определение наибольшего значения и присвоение этого значения переменной MAX

Writeln('Max = ', max); // вывод на экран максимального значения переменных X и Y

End.

Проверить работу программы на компьютере.

Разработать программу решения задачи 2.

Задача 2. Даны три числа X, Y, Z. Определить наибольшее значение этих чисел.

Задание 2.

Задача 3. Определить, попадает ли точка с координатами (Xa,Ya) внутрь круга с радиусом R, центр круга совпадает с началом координат.

Рассмотреть программу решения задачи. Объяснить работу программы.

Program Krug;

Var xa,ya,r : Real ;

Begin

Writeln ('Программа определяет принадлежит ли точка кругу радиуса R');

Write ('Введите значения координат Xa,Ya и радиуса R ');

Readln (xa,ya,r);

Write ('Точка ');

If (sqr(xa)+sqr(ya)>sqr(r)) then write ('не принадлежит ') else writeln ('принадлежит');

End.

Проверить работу программы на компьютере.

Заменить в программе строку

If (sqr(xa)+sqr(ya)>sqr(r)) then write ('не принадлежит ') else writeln ('принадлежит');

на строки

If (sqr(xa)+sqr(ya)>sqr(r)) Then Write ('не ');

Writeln ('принадлежит');

Объяснить в чем разница вывода ответа.

Задания для самостоятельного решения:

Составить и выполнить программу, которая находит среди данных трех чисел среднее (под средним числом будем понимать число, которое больше наименьшего, но меньше наибольшего).

Составить и выполнить программу вывода на экран номера четверти, которой принадлежит точка с координатами (Х,Y) при условии, что Х и Y отличны от 0.

Составить и выполнить программу, которая по заданному Х вычисляет Y, если

Y =

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

Составить и выполнить программу, которая выводит на экран частное от деления А на В, если А делится на В нацело, в противном случае - сообщение "А на В нацело не делится".

2) Оператор выбора Case — это оператор позволяющий осуществить выбор в программе одной из последовательностей команд (ветвей) в зависимости от значения переключателя. Оператор выбора имеет две формы:

– Полная форма записи: Case выражение of

список(диапазон)_констант_1: оператор1;

список(диапазон)_констант_2: оператор2;

…………………………………………………

список(диапазон)_констант_N: операторN

else операторE

end;

– Неполная форма записи: Case выражение of

список(диапазон)_констант_1: оператор1;

список(диапазон)_констант_2: оператор2;

…………………………………………………

список(диапазон)_констант_N: операторN

end;

Оператор Case работает следующим образом. Сначала вычисляется выражение. Если вычисленное значение равно одной из констант некоторого списка, то выполняется соответствующий оператор для данного списка. Затем управление передается за пределы оператора Case. Выражение может быть скалярного типа, кроме Real. В соответствии с этим и константа не может быть действительного типа. Тип константы должен совпадать с типом <выражения>. Символ точка с запятой (;) перед else никогда не ставится! В случае, когда вместо одного оператора в какой-либо из ветвей оператора case должна стоять последовательность операторов, то ее необходимо заключить в командные скобки: Begin [список_операторов] end. В результате получается составной оператор, который уже можно поместить в любую ветвь оператора Сase.

Задание 3.

Задача 4. Ввести номер дня недели и вывести соответствующий день недели на русском языке.

Рассмотреть программу решения задачи. Объяснить работу программы.

Program Nedelya;

Var N : Integer;

Begin

Write ('Введите номер дня недели:'); Readln (N);

Write (n,' - ');

Case N Of

1 : Writeln ('Понедельник');

2 : Writeln ('Вторник');

3 : Writeln ('Среда');

4 : Writeln ('Четверг');

5 : Writeln ('Пятница');

6 : Writeln ('Суббота');

7 : Writeln ('Воскресенье')

Else Write ('Нет такого номера дня недели!')

End

End.

Проверить работу программы на компьютере.

Доработать рассмотренную программу. По номеру дня недели необходимо выводить соответствующее название на русском и английском (немецком) языках.

Задание 4.

Задача 5. Составить программу, которая, на вводимый с клавиатуры символ, выдавала бы что это: цифра, буква (строчная или прописная, русская или латинская)), пробел или Enter.

Рассмотреть программу решения задачи. Объяснить работу программы.

Program Vvod_symbol;

var Symbol:Char;

Begin

WriteLn('Нажмите любую клавишу, а затем нажмите клавишу Enter');

ReadLn(Symbol);

Write('Это ');

Case Symbol of

'0'..'9': WriteLn('цифра ',Symbol);

'a'..'z': WriteLn('строчная латинская буква ',Symbol);

'A'..'Z': WriteLn('прописная латинская буква ',Symbol);

'а'..'я': WriteLn('строчная русская буква ',Symbol);

'А'..'Я': WriteLn('прописная русская буква ',Symbol);

#13: WriteLn('Enter'); // ASCII-код клавиши Enter равен 13

' ': WriteLn('пробел')

else WriteLn('другой символ')

end; // конец оператора Case

end.

Проверить работу программы на компьютере.

Задача 6. Разработать программу вычисления функции. Дан список трех встроенных функций. При нажатии первой буквы имени функции на экран выводится полное название этой функции и вычисляется ее значение.

Рассмотреть программу решения задачи. Объяснить работу программы.

Какое назначение функции UpCase?

Program Menu;

Var Name : Char ; // вводимый символ

X : Real ; // аргумент функции

Begin

Writeln ('Введите имя функции: A-Abs, S-Sin, C-Cos');

Readln (Name);

Writeln ('Введите аргумент '); Readln (X);

Case UpCase(Name) Of

'A': Begin

Writeln ('Вычисление абсолютной величины');

Writeln ('Abs(',X:2:1,') = ',Abs(X):2:1)

End;

'S': Begin

Writeln ('Вычисление синуса угла');

Writeln ('Sin(',X:2:1,') = ',Sin(X):8:6)

End;

'C': Begin

Writeln ('Вычисление косинуса угла');

Writeln ('Cos(',X:2:1,') = ',Cos(X):8:6)

End

Else Writeln ('Указанного имени нет в меню')

End

End.

Проверить работу программы на компьютере.

Задания для самостоятельного решения:

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

Составить и выполнить программу, которая подсчитывает, сколько вводится 1, 2 и 3 среди последовательности 5 чисел.

Составить и выполнить программу, которая по возрасту человека в годах (В<100) приписывает к этому числу текст ГОД, ГОДА или ЛЕТ. Например, 1 ГОД; 23 ГОДА, 45 ЛЕТ.

Составить и выполнить программу, которая по номеру месяца определяет количество дней в месяце (год - не високосный).

Составить и выполнить программу, которая вычисляет площади прямоугольника, прямоугольного треугольника, трапеции, круга.


 

А также другие работы, которые могут Вас заинтересовать

24694. НЕСЕЛЕКТИВНЫЕ ОТСЕЧКИ 45 KB
  Такая отсечка применяется для быстрого отключения КЗ в пределах всей защищаемой ЛЭП. Неселективное действие отсечки при КЗ вне ЛЭП исправляется при помощи АПВ включающего обратно отключившуюся ЛЭП. При этом пускается устройство АПВ которое включает обратно неселективно отключившуюся ЛЭП W1 и восстанавливает питание подстанции В.
24695. УКАЗАТЕЛЬНЫЕ РЕЛЕ 101 KB
  20 показано указательное реле типа РУ21 сигнализирующее действие РЗ на отключение выключателя. При срабатывании РЗ по обмотке реле 3 проходит ток приводящий реле в действие. Ввиду кратковременности прохождения тока в обмотке указательных реле они выполняются так что сигнальный флажок и контакты реле остаются в сработанном состоянии до тех пор пока их не возвратит на место обслуживающий персонал.
24696. НЕОБХОДИМОСТЬ И СПОСОБЫ РЕЗЕРВИРОВАНИЯ 177 KB
  С ними нельзя не считаться поскольку отказ РЗ или выключателя означает неотключение КЗ а следовательно длительное прохождение токов КЗ и снижение напряжения в сети. Наряду с принятием мер по повышению надежности действия РЗ и выключателей особо важное значение приобретает резервирование отключения КЗ в случае отказа выключателя или действующей на него РЗ. Применяются два способа резервирования: дальнее осуществляемое РЗ и выключателями смежных участков установленными на соседних энергообъектах; ближнее осуществляемое РЗ и...
24697. НАЗНАЧЕНИЕ ЗАЩИТЫ ШИН 380.5 KB
  ДИФФЕРЕНЦИАЛЬНАЯ ЗАЩИТА ШИН Дифференциальная РЗ шин ДЗШ рис. Для питания ДЗШ на всех присоединениях устанавливаются ТТ с одинаковым коэффициентом трансформации К независимо от мощности присоединения. Тогда при внешних КЗ X 1пр = 0 и реле не будет действовать а при КЗ в зоне на шинах равна сумме токов КЗ притекающих к месту повреждения и ДЗШ работает. Вторичные токи направлены в обмотке реле одинаково поэтому ток в реле равен их сумме: Так както Выражение показывает что При КЗ на шинах ДЗШ реагирует на...
24698. 34 ЗАЩИТА АД 110 KB
  Наиболее просто токовая отсечка выполняется с реле прямого действия встроенными в привод выключателя. С реле косвенного действия отсечка выполняется с независимыми токовыми реле по схемам на рис.7; Iпуск пусковой ток электродвигателя; k0TC коэффициент отстройки Токовую РЗ электродвигателей мощностью до 2000 кВт следует выполнять как правило по наиболее простой и дешевой однорелейной схеме рис. На электродвигателях мощностью 20005000 кВт токовая отсечка выполняется двухрелейной.
24699. Основные особенности выполнения РЗ на блоках 88 KB
  2 отсутствие электрической связи между генератором и сетью имеющее место в блочных схемах облегчает решение вопросов селективности РЗ генератора от замыканий на землю вследствие высокой стоимости мощных генераторов и трансформаторов повышенные требования в части чувствительности быстродействия и надежности на блоках без поперечных связей необходимость действия на останов блока в целом; На блоках малой мощности до 30 МВт включительно в качестве РЗ от внешних КЗ применяется МТЗ с комбинированным пуском по напряжению. На блоках...
24700. ЗАЩИТА РОТОРА от замыкания на корпус 63 KB
  Для периодического контроля за состоянием изоляции цепей возбуждения используется вольтметр один зажим которого соединен с землей а второй поочередно подключается к полюсам ротора. Если изоляция ротора достаточно высока замеры вольтметра в обоих случаях будут близки к нулю. Второй конец обмотки токового реле заземляется через специальную щетку имеющую электрический контакт с валом ротора.
24701. Защита ротора от перегрузки 38 KB
  Для предотвращения повреждения ротора при перегрузке предусматривается специальная РЗ а также выполняется ограничение длительности форсировки возбуждения. Наиболее полноценную РЗ ротора от перегрузки можно осуществить с помощью реле имеющего характеристику соответствующую перегрузочной характеристике ротора. Выдержка времени первой ступени при одних и тех же значениях тока ротора примерно на 20 меньше выдержки времени второй ступени.
24702. ПОВРЕЖДЕНИЯ И НЕНОРМАЛЬНЫЕ РЕЖИМЫ РАБОТЫ ГЕН-В, ОСНОВНЫЕ ТРЕБОВАНИЯ К ЗАЩИТЕ ГЕНЕРАТОРОВ 41.5 KB
  Обмотка ротора гена находится под сравнительно невысоким напряжением и поэтому ее изоляция имеет значительно больший запас элой прочности чем изоляция статорной обмотки. Однако изза значительных механических усилий обусловленных большой частотой вращения роторов турбогенов относительно часто наблюдаются случаи повреждения изоляции и замя обмотки ротора на корпус т. Замыкание на корпус в одной точке обмотки ротора неопасно так как ток в месте замыкания очень мал и нормальная работа генератора не нарушается. При двойных...