Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Чернов Шафеева.doc
Скачиваний:
47
Добавлен:
21.05.2015
Размер:
1.39 Mб
Скачать

Лабораторная работа 2 Программирование разветвленных алгоритмов. Операторы передачи управления

Структура условного оператора передачи управления:

IF <условие> THEN <оператор 1> ELSE <оператор 2>;

(Если) (то) (иначе) - ключевые слова,

где <условие> - это произвольное выражение логического типа, которое может принимать два значения: истина (TRUE) и ложь (FALSE);

<оператор> - любой оператор языка Паскаль.

Сокращенная форма условного оператора:

IF <условие> THEN <оператор>;

Оператор безусловной передачи управления GOTO <метка> позволяет перейти к строке с идентификатором <метка>. В языке Турбо Паскаль до­пускается использовать в качестве меток также целые числа без знака [0 .. 9999].

Метка от оператора отделяется в программе двоеточием (':').

Все использованные в программе метки должны быть описаны в разде­ле описаний программы с указанием ключевого слова 'LABEL'.

Оператор выбора CASE позволяет в зависимости от значения ка­кой-либо переменной или выражения <ключа_выбора> выполнить те или иные операторы, помеченные соответствующими константами.

Структура оператора:

CASE <ключ_выбора> OF

<конст.выбора1>:<оператор1>;

<конст.выбора2>:<оператор2>;

. . .

<конст.выбораN>:<операторN>

ELSE <оператор>

END;

где <ключ выбора> - выражение (переменная) любого порядкового типа;

<конст.выбора> - константа того же типа, что и <ключ.выбора>;

<оператор> - произвольный оператор ТП.

Пример. Составить программу для начисления зарплаты согласно следующему правилу: если стаж работы сотрудника менее пяти лет, то зарплата равна 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,а), ей соответствует следующая программа:

Program zarplata;

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

ZP: real; {ZP - зарплата (вещественный тип)}

begin

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

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

if ST<5 then ZP:=50 условный оператор

else if ST<15 then ZP:=100 вложенный условный оператор

else if ST>=30 then ZP:=300

else ZP:=100+(ST-15)*10;

writeln ('зарплата=',ZP:10:2,' $')

end.

Второй вариант реализации задачи с применением оператора выбора представлен СА (рис.2,б) и следующей программой:

Program zarplata2;

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

ZP: real; {зарплата (вещественный тип)}

begin

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

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

case ST 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.

Задание 1 (программа 2_1)

Вычислить значение функции в зависимости от интервала, в который попадает вводимый с клавиатуры аргумент:

1. Дляt[0,3], at2lnt при 1,

где a=-0.5,b=2 z= 1 при t<1,

eatcosbt при t>2,

2. Для x[0,4], при x2,

где а=2.3 f= х при 0.3< x  2,

cos(x-a) при x,

3. Для x[0,7], (a+b)/(ex+cosx) при 0  x2.3,

где a=-2.7,b=-0.27 z= (a+b)/(x+1) при 2.3 x5,

ex+sinx при 7,

4.Для i[7,12], ai4+bi при I< 10,

где a=2.2,b=0.3. y= tg(i+0.5) при I= 10,

e2i+ при I>10,

5. Дляx[0.9,5], x2-7/x2 при x<1.3,

где a=1.5 y= ax3+7 при 1.3  x3,

lg(x+7) при x,

6. Дляt[-1.4], при t<0.1,

где a=2.1,b=0.37. z= at+b при 0.1 t 2,

при t,

7. Для x [0,6], a esinx+2.5 при x<0.3,

где a=1.5. y = ecosx+a при 0.3 x<4,

(sin x)/(a+ex) при x  4,

8. Дляx[1,2], a/x+bx2-c при x,

где a=1.8,b=-0.5, c=3.5 y= (a+bx)/при x>1.2,

9. Дляt[1,5], t при t>a,

где a=2.5 z= t sin at при t=a,

e-at cos at при t<a,

10. Дляx[0,4], e-bx sin bx при x<2.3,

где a=1,b=3. y= сos bx при 2.3,

e-ax cos bx при x

11.Для t[0.5,3], at2-bпри t<a,

где a=1.3,b=6.5 z= a-b при a

a t2/3-при t>b,

12. Для x[0,2], |e-2x sin bx| при x >1,

где b=-2.9 y = cos bx при x = 1,

e-x cos bx при x < 1,

.

13. Для x[0.5,2] sin (cos ax) при x >1,

где a=-0.8 z = tg ax при x = 1,

a2 x при x < 1,

14. Для x[1,2], ln bx - 1/(bx+1) при x < 1.3,

где b=1.3. y = bx + 1 при 1.3  x  1.7,

ln bx +1/(bx+1) при x > 1.7,

15. Дляx[-1,1], ax2+bx2/3 при x<0.1,

где a=2.5,b=-0.9. z= a x2 при x=0.1,

b x2/3 при x>0.1.

16. Ввести координаты точки (x, y). Напечатать, в каком квадранте или на какой оси координат находится эта точка.

17. Ввести радиусы R1, R2 и высоту. Вычислить объем усеченного конуса: , гдеS- площадь оснований. Если R1 = R2 - объем и площадь цилиндра, если R1 = 0 или R2 = 0 - объем (hπr2) и площадь πr() поверхности конуса.

18. Ввести с клавиатуры цифру. Определить, какой системе счисления она может принадлежать.

19. Ввести число. Определить, делится ли оно нацело на два, три или на пять.

20. Ввести a, b, h. Если h=0, вычислить площадь прямоугольника; при a= b, найти площадь квадрата; в противном случае подсчитать площадь трапеции.

Задание 2 (программа 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. В зависимости от номера (N) типа фигуры, организовать ввод необходимых данных, и вычислить при к = 1-площадь прямоугольника, при к = 2-площадь параллелограмма, при к = 3-площадь трапеции (a+b)h/2. В последнем случае напечатать: является ли трапеция параллелограммом или ромбом.

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