Работа n 1. Разветвления
Независимость программы от данных часто требует в зависимости от конкретного набора данных ( или промежуточных результатов) выбирать один из двух или более различных вариантов, вычислительного процесса, т.е. осуществлять разветвление вычислительного процесса. В языке PASCAL для таких случаев предусмотрены условный оператор, оператор выбора варианта и оператор перехода.
Условный оператор может принимать одну из двух конструкций:
IF B THEN S1 ELSE S2 IF B THEN S1 |
где B - логическое выражение, а S1, S2 - операторы. Эти операторы могут быть простыми или составными (т.е. сгруппированными вместе при помощи операторных скобок Begin End).
В первом варианте если логическое выражение истинно, то выполняется оператор S1, если логическое выражение ложно, то выполняется оператор S2.
Пример. Вычислить A=k+40, если 15<k<25. При всех других значениях k A=20*k.
Условный оператор имеет вид
If (k>15) And (k<25) Then A := K+40 Else A := 20*k
Другой вариант решения этой же задачи предполагает использование краткой формы условного оператора
A := 20*k
If (k>15) And (k<25) Then A:=K+40
Оператор выбора варианта используется в тех случаях, когда в зависимости от значения какого-либо выражения необходимо выполнить один из нескольких операторов. Этот оператор имеет вид:
Case (селектор) OF (список констант 1 ) : (Оператор 1); (список констант 2 ) : (Оператор 2); . . . . . . . . . . . (список констант N ) : (Оператор N); End; |
Если значение селектора равно одной из констант, то выполняется оператор помеченный этой константой.
Пример. Пусть k - переменная целого типа.
Case k of
1 : A:=Sin(x);
2, 3 : A:=Sin(x)+2;
4..10, 15 : A:=Cos(x)+Sin(x);
End;
Если требуется нарушить естественный порядок выполнения операторов можно воспользоваться оператором безусловного перехода, имеющим вид GOTO (Метка)
Метка является числом или идентификатором, описанным в разделе описания меток, например
Label 10, 20, Lab1, Metka;
Целью данной работы является получение практических навыков использования условных операторов и операторов выбора.
Задание. Напишите программу решения задачи, с использованием операторов организующих разветвления.
Варианты заданий.
Если сумма трех попарно различных чисел x, y, z меньше 10, то наименьшее из этих трех чисел заменить полусуммой двух других, в противном случае заменить меньшее из x и y полусуммой двух оставшихся значений.
Для заданного числа a найти корень уравнения f(x)=0, где
Дано число х. Напечатать в порядке возрастания числа ch(x), 1+│x│, (1+x2)x.
Даны числа A1, B1, C1, A2, B2, C2. Напечатать координаты точки пересечения прямых, описываемых уравнениями A1*X + B1*Y + C1 = 0 A2*X + B2*Y + C2 = 0 либо сообщить, что эти прямые совпадают, не пересекаются либо вообще не существуют.
Даны произвольные числа a, b, c. Если нельзя построить треугольник с такими длинами сторон, то сообщить об этом, в противном случае сообщить является ли треугольник равносторонним, равнобедренным или треугольником общего вида.
Даны действительные числа x, y. Определить принадлежит ли точка с координатами (x, y) заштрихованной части плоскости рис.1, а.
Даны действительные числа x, y. Определить принадлежит ли точка с координатами (x, y) заштрихованной части плоскости рис.1, б.
Даны действительные числа x, y. Определить принадлежит ли точка с координатами (x, y) заштрихованной части плоскости рис.1, в.
Даны действительные числа x, y. Определить принадлежит ли точка с координатами (x, y) заштрихованной части плоскости рис.1, г.
Даны действительные числа x, y. Определить принадлежит ли точка с координатами (x, y) заштрихованной части плоскости рис.1, д.
11.Даны действительные числа x, y. Определить принадлежит ли точка с координатами (x, y) заштрихованной части плоскости рис.1, е.
12.Даны действительные числа x, y. Определить принадлежит ли точка с координатами (x, y) заштрихованной части плоскости рис.1, ж.
13.Даны действительные числа x, y. Определить принадлежит ли точка с координатами (x, y) заштрихованной части плоскости рис.1, з.
14.Пусть D-заштрихованная часть плоскости (рис 2. а) и пусть U определяется по x, y следующим 0, если (x, y)D, u= x, в противном случае. Даны действительные числа х,у. Определить U.
15.Пусть D-заштрихованная часть плоскости (рис 2. б) и пусть U определяется по x, y следующим образом-3, если (x, y) D, u= y*y, в противном случае. Даны действительные числа х,у. Определить U.
16.Пусть D-заштрихованная часть плоскости (рис 2. б) и пусть U определяется по x, y следующим образом x-y, если (x, y) D, u= y*x+7, в противном случае. Даны действительные числа х,у. Определить U.
17.Пусть D-заштрихованная часть плоскости (рис 2. б) и пусть U определяется по x, y следующим образом x*x-1, если (x, y) D, u= │x-1│, в противном случае. Даны действительные числа х,у. Определить U.
18.Пусть D-заштрихованная часть плоскости (рис 2. б) и пусть U определяется по x, y следующим образом x*x-1│, если (x, y) D, u= x+y, в противном случае. Даны действительные числа х,у. Определить U.
19.Пусть D-заштрихованная часть плоскости (рис 2. б) и пусть U определяется по x, y следующим образомx+y, если (x, y) D, u= x-y, в противном случае. Даны действительные числа х,у. Определить U.
20.Известно, что астрологи делят год на 12 периодов и каждому из них ставят в соответствие один из знаков Зодиака.
20.01 |
- |
18.02 |
- |
Водолей |
|
23.07 |
- |
22.08 |
- |
Лев |
19.02 |
- |
20.03 |
- |
Рыбы |
|
23.08 |
- |
22.09 |
- |
Дева |
21.03 |
- |
19.04 |
- |
Овен |
|
23.09 |
- |
22.10 |
- |
Весы |
20.04 |
- |
20.05 |
- |
Телец |
|
23.10 |
- |
22.11 |
- |
Скорпион |
21.05 |
- |
21.06 |
- |
Близнецы |
|
23.11 |
- |
21.12 |
- |
Стрелец |
22.06- |
- |
22.07 |
- |
Рак |
|
22.12 |
- |
19.01 |
- |
Козерог |
Напишите программу, которая вводит дату некоторого дня года и печатает название соответствующего знака Зодиака.