Тема: "Разработка алгоритмов вида "выбор" и "выбор-иначе".
Цель работы:
Получение практических навыков по разработке алгоритмов вида "выбор" и "выбор-иначе".
Количество часов на выполнение работы
Продолжительность выполнения данной практической работы составляет 2 академических часа.
Оборудование
Аппаратное обеспечение: персональный компьютер следующей конфигурации:
процессор не ниже Intel i3;
жесткий диском со свободным объемом не менее 1 Гб;
Программное обеспечение:
операционная система Windows 7 / 8 / 8.1 / 10.
установленная среда программирования PascalABC.
Краткие теоретические сведения
Оператор case.
Оператор case используется для создания развилки на более чем 2 ветви. Понять его работу поможет следующий пример:
Program YourMark;
{ ваша отметка }
var n : integer;
begin
write ('Введите вашу отметку ');
readln (n);
case n of
2 : writeln('Плохо');
3 : writeln('Удовлетворительно ');
4 : writeln('Хорошо');
5 : writeln('Отлично');
end;
end.
Обратите внимание, что оператор case заканчивается скобкой end.
Если пользователь введет отметку, не попадающую в диапазон 2-5, то никаких действий выполняться не будет. Можно, конечно, обработать и эту ситуацию. Тогда синтаксис оператора case будет такой:
Program YourMark2;
{ ваша отметка }
var n : integer;
begin
write('Введите вашу отметку '); readln(n);
case n of
2 : writeln('Плохо');
3 : writeln('Удовлетворительно ');
4 : writeln('Хорошо');
5 : writeln('Отлично')
else writeln ('Вы ввели недопустимую отметку!')
end;
end.
Обратите внимание на отсутствие точки с запятой перед else и двоеточия после else.
Кроме единичных значений переключателя n можно указывать диапазон значений.
Program YourMark3;
{ ваша отметка }
var n : integer;
begin
write('Введите вашу отметку '); readln(n);
case n of
2..3 : writeln ('Это все очень плохо!');
4 : writeln ('Хорошо!');
5..6 : writeln ('Так держать!')
else writeln ('Вы ввели недопустимую отметку!')
end;
end.
Обратите внимание на отсутствие точки с запятой перед else и двоеточия после else.
Задания по практической работе
Дано целое число в диапазоне 1–7. Вывести строку — название дня недели, соответствующее данному числу (1 — «понедельник», 2 — «вторник» и т.д.).
Дано целое число K. Вывести строку-описание оценки, соответствующей числу K (1 — «плохо», 2 — «неудовлетворительно», 3 — «удовлетворительно», 4 — «хорошо», 5 — «отлично»). Если K не лежит в диапазоне 1–5, то вывести строку «ошибка».
Дан номер месяца — целое число в диапазоне 1–12 (1 — январь, 2 — февраль и т.д.). Вывести название соответствующего времени года («зима», «весна», «лето», «осень»).
Дан номер месяца — целое число в диапазоне 1–12 (1 — январь, 2 — февраль и т.д.). Определить количество дней в этом месяце для невисокосного года.
Арифметические действия над числами пронумерованы следующим образом: 1 — сложение, 2 — вычитание, 3 — умножение, 4 — деление. Дан номер действия N (целое число в диапазоне 1–4) и вещественные числа A и B (В не равно 0). Выполнить над числами указанное действие и вывести результат.
Единицы длины пронумерованы следующим образом: 1 — дециметр, 2 — километр, 3 — метр, 4 — миллиметр, 5 — сантиметр. Дан номер единицы длины (целое число в диапазоне 1–5) и длина отрезка в этих единицах (вещественное число). Найти длину отрезка в метрах.
Единицы массы пронумерованы следующим образом: 1 — килограмм, 2 — миллиграмм, 3 — грамм, 4 — тонна, 5 — центнер. Дан номер единицы массы (целое число в диапазоне 1–5) и масса тела в этих единицах (вещественное число). Найти массу тела в килограммах.
Даны два целых числа: D (день) и M (месяц), определяющие правильную дату невисокосного года. Вывести значения D и M для даты, предшествующей указанной.
Даны два целых числа: D (день) и M (месяц), определяющие правильную дату невисокосного года. Вывести значения D и M для даты, следующей за указанной.
Робот может перемещаться в четырех направлениях («С» — север, «З» — запад, «Ю» — юг, «В» — восток) и принимать три цифровые команды: 0 — продолжать движение, 1 — поворот налево, −1 — поворот направо. Дан символ C — исходное направление робота и целое число N — посланная ему команда. Вывести направление робота после выполнения полученной команды.