Здавалка
Главная | Обратная связь

Примеры и задания с оператором CASE



Пример 1. Выполнить арифметическую операцию в зависимости от введенного с клавиатуры символа.

VARoperation: char;

x, y, z: real;

BEGIN

read(x,y);

read (operation);

CASE operation OF

'+': z:=x+y;

'-':z:=x-y;

'*': z:=x*y;

'/':z:=x/y;

ELSE write('нет опеpаций')

END;

WRITELN( ' z= ' , z )

END.

Пример 2. Составить программу для начисления зарплаты согласно следующему правилу: если стаж работы сотрудника менее пяти лет, то зарплата равна 50$, при стаже работы от пяти до 15 лет – 100$, свыше 15 лет зарплата повышается с каждым годом на 10$, причем при стаже, превышающем 30 лет, она составляет 300$.

Для программирования решения этой задачи определим математичес­кую формулировку задачи:

50, если ST < 5;

ZP =
100, если 5 ≤ ST £ 15;

100 + (ST -15)*10 при 15 < ST ≤ 30;

300, если ST > 30;

где ZP – зарплата, ST – стаж работы.

Реализация задачи для примера 2

представлена следующим алгоритмом

(рис. 6) и программой:

Program zarplata;

var ST: byte; {стаж (байтовый) тип)}

Рис. 6
ZP: real; {вещественный тип}

Begin

writeln('введите стаж');

read(ST); {ввод стажа}

caseST of{выбор из }

1..4: ZP:=50;

5..15: ZP:=100;

16..29: ZP:=100+(ST-15)*10

else ZP:=300

end;

writeln(' Зарплата = ' , ZP:10:2,' $'); {вывод результата}

End.

Задания к самостоятельному выполнению (программа 2_2)

1. Определить остаток от деления на восемь введенного числа х и написать восьмеричную цифру прописью.

2. По цифре (0..9), введенной с клавиатуры, напечатать название этой цифры.

3. С клавиатуры ввести число k (1..30). Определить, какому дню недели оно соответствует, если первое число – понедельник.

4. Ввести число и номер месяца. Напечатать дату с названием месяца прописью.

5. Идет k секунда суток. Вычислить, сколько прошло часов и полных минут к этому моменту, при этом согласовать со значением слова (час, часа, часов, минута, минуты, минут).

6. В зависимости от номера (N) типа фигуры организовать ввод необходимых данных и вычислить при N = 1 – площадь круга, N = 2 – объем шара (4/3πR3), N = 3 – объем цилиндра, N = 4 – площадь поверхности сферы 4πr2.

7. Ввести число N (0 ≤ N ≤ 15). Определить и напечатать шестнадцатеричную цифру, ему соответствующую.

8. Для целого числа R (1…99) напечатать фразу « Мне R лет », при некоторых значениях R слово «лет» заменить словом «год» или «года».

9. В зависимости от заданного номера фигуры ввести необходимые данные и вычислить при к = 1 площадь прямоугольника, при к = 2 площадь параллелограмма, а при к = 3 площадь трапеции по формуле (a+b) h/2. Во втором случае напечатать: является ли фигура параллелограммом или ромбом.

10. Перевести введенное целое число 0 ≤ х ≤ 31 в шестнадцатеричную систему счисления.

5. ПРОГРАММИРОВАНИЕ АЛГОРИТМОВ
ЦИКЛИЧЕСКОЙ СТРУКТУРЫ

5.1.Оператор счётного цикла

В языке Pascal существует три разновидности операторов цикла:

1) счетный оператор цикла (оператор цикла со счётчиком);

2) оператор цикла с предусловием;

3) оператор цикла с постусловием.

Для любого оператора цикла вход в цикл возможен только через его начало, выход осуществляется как вследствие естественного окончания цикла, так и путем выполнения оператора перехода GOTO или процедур выхода, содержащихся внутри цикла.

Счетный оператор цикла FOR реализует циклический процесс с известным числом повторений. Этот оператор имеет две формы записи. Первая форма позволяет наращивать <параметр цикла> на единицу и имеет вид

FOR<параметр_цикла>:=<min_значение>TO<max_значение>DO<оператор>;

Параметром цикла называется переменная, служащая для управления циклом. Для оператора цикла FOR в качестве <параметра_цикла> используется переменная целого либо любого порядкового типа. Здесь <min_значение>и <max_значение>- это константы (или выражения), определяющие соответственно начальное и конечное значения параметра цикла. Их типы должны быть совместимыми с типом параметра цикла.

Вторая форма позволяет уменьшать на единицу значение параметра цикла:

FOR <параметр цикла> := <max значение> DOWNTO

<min значение> DO <оператор>;

Пример. Вычислить Y = 1 + 1/2 + 1/3 + ... + 1/N.

Для вычисления в программе необходимо многократно произвести сложение по “формуле суммы” Y =Y+1/I при изменении параметра I от одного до N.

Реализация 1: Y:=0;

FOR I:=1 TO N DO Y=Y+1/I;

Реализация 2: Y:=0;

FOR I:=N DOWNTO 1 DO Y=Y+1/I;

Значение параметра цикла в теле цикла может не использоваться, а лишь выполнять функцию счетчика. Например, пусть необходимо вычислить Y = Xn. Тогда фрагмент тела программы запишется в следующем виде:

Y:=1;

FOR I :=1 TO N DO Y=Y*X;

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

 







©2015 arhivinfo.ru Все права принадлежат авторам размещенных материалов.