Разветвляющиеся алгоритмы
Условный оператор CASE
Задача 1. Составить программу, которая по введенному значению 1, 2, 3, 4 вычисляет площадь треугольника:
1. По основанию и высоте
2. По трем сторонам
3. По двум сторонам и углу между ними
4. Выход
USES Crt;
LABEL M1,M2;
VAR
X:INTEGER; A,H,S,B,L,C,P:REAL;
BEGIN M1:
ClrScr;
WriteLn('Вычисление площади треугольника'); WriteLn;
WriteLn('1.По основанию и высоте');
WriteLn('2.По трем сторонам');
WriteLn('3.По двум сторонам и углу между ними');
WriteLn('4.Выход');
WriteLn;
WriteLn('Введите номер пункта'); ReadLn(X);
CASE X OF
1: Begin
ClrScr;
Write('Введите основание и высоту треугольника '); ReadLn(A,H);
S:=A*H/2;
WriteLn('Площадь треугольника = ',S:5:2); ReadLn;
GOTO M1;
End;
2: Begin
ClrScr;
Write('Введите значения сторон треугольника ');
ReadLn(A,B,C);
P:=(A+B+C)/2;
S:=Sqrt(P*(P-A)*(P-B)*(P-C));
WriteLn('Площадь треугольника = ',S:5:2); ReadLn;
GOTO M1
End;
3: Begin
ClrScr;
Write('Введите значения двух сторон и угол между ними ');
ReadLn(A,B,L);
S:=A*B*Sin(L*Pi/180)/2;
WriteLn('Площадь треугольника = ',S:5:2); ReadLn;
GoTo M1;
End;
4: Begin
ClrScr;
WriteLn('Программа закончила свою работу'); ReadLn;
GoTo M2;
End;
ELSE
ClrScr;
WriteLn('Номер пункта ввели неверно'); ReadLn;
GoTo M1;
End;
M2:END.
Задача 2. Составить программу, которая по введенному значению выводит оценки по математике, физике, информатике.
USES Crt;
LABEL R1,R2;
VAR X: INTEGER; M:CHAR;
BEGIN
R1:ClrScr;
WriteLn('ПРГ выводит оценки по математике, физике и химии');
WriteLn('1.Вывод оценок по предметам');
WriteLn('2.Выход');
WriteLn('Введите номер пункта');
ReadLn (X);
CASE X OF
1: Begin
ClrScr;
WriteLn(' По какому предмету Вы хотите увидеть оценки');
WriteLn(' М - математика');
WriteLn(' Ф - физика');
WriteLn(' Х - химия');
ReadLn(M);
CASE M OF
'М','м':WriteLn('5 5 4 4 5 5 3 5 5 ');
'Ф','ф':WriteLn('5 4 5 3 5 4 5 5 5 ');
'Х','х':WriteLn('4 3 5 3 4 4 4 5 ');
End;
End;
2: Begin
WriteLn('Программа закончена');
GoTo R2;
End;
Else
WriteLn('Номер неверен'); ReadLn;
GoTo R1;
End;
R2:End.
.....................................................................................................................................
Практические задания
.....................................................................................................................................
1. Составить программу, которая по введенному значению 1, 2, 3 вычисляет:
1. Площадь параллелограмма
2. Периметр параллелограмма
3. Выход
2. Составить программу «Календарь XX столетия», которая определяет день недели любого дня XX-го столетия. По введенному значению 1, 2, 3 вычисляет
1. номер дня недели по формуле, где D- день, М-месяц, G-год:
• S=[(12-M)/10]
• K=[(G-1900-S)*365,25]+[(M+12*S-2)*30,59]+D+29
• N=K-7[K/7] (N-вычисляется от 0-воскресенье до 6-суббота, []-целая часть)
2. день недели по его номеру
3. выход