Операторные скобки.
Составной оператор
Операторные скобки
После служебного слова then, или после служебного else будет выполняться только один оператор. Если необходимо, чтобы выполнялось несколько операторов их нужно взять в операторные скобки:
begin
...
end;
Группу операторов находящуюся внутри операторных скобок будем называть составным оператором. Фактически, весь раздел операторов, внутри операторных скобок, представляет собой один составной оператор.
Для того, чтобы при большом количестве операторных скобок, программа была более читаемая,
end желательно записывать под begin.
Пример 1. Даны действительные числа
а,
b (а≠b). Меньшее из этих двух чисел заменить их суммой, а большее - их произведением.
Этапы выполнения задания.
I.Определение исходных данных: переменные
а, b (a≠b).
II. Определение результатов: переменные
sa,sb.
III. Алгоритм решения
задачи.
1. Ввод исходных данных
2. Присваиваем новым переменным sa:=a,sb:=b.
3. Проверяем х и у на меньшее и большее.
4. Меньшее число заменяем их суммой
a:=sa+sb. Большее число заменяем
произведением b:=sa*sb
5. Вывод результата.
IV. Описание
переменных:
Все переменные, определенные для решения задачи, имеют тип
longint.
V. Программа:
var a,b,sa,sb:longint;
Begin
writeln('Введите два числа');readln(a,b);
sa:=a; sb:=b;
if a>b then
begin
b:=sa+sb;
a:=sa*sb;
end
else
begin
a:=sa+sb;
b:=sa*sb;
end;
writeln ('первоначальные числа a=',sa,' b=',sb);
writeln ('полученные числа a=',a,' b=',b);
End.
Можешь
загрузить!
Пример 1
VI. Тестирование
программы:
1. Проверьте работу программы для следующих значений
Ввод a,b |
Вывод |
6
5 |
первоначальные числа a=6 b=5
полученные числа a=30 b=11 |
1
-9 |
первоначальные числа a=1 b=-9
полученные числа a=-9 b=-8 |
2. Поэкспериментируйте с программой вводя различные значения.
Пример 2. Составить программу решающую квадратное уравнение вида ax2+bx+c=0.
Этапы выполнения задания.
I.Определение исходных данных: переменные а,b,
c.
II. Определение результатов: переменные
х, х1, х2.
III. Алгоритм решения
задачи.
1. Ввод исходных данных
2. Вычисление дискриминанта: d:=b*b-4*a*c.
3. Проверяем дискриминант:
а) если дискриминант меньше нуля, то выводим сообщение 'решений нет'.
б) если дискриминант равен нулю, то 1 решение: х:=-b/(2*a);
в) если дискриминант больше нуля, то 2 решения:
x1:=(-b+sqrt(d))/(2*a);
x2:=(-b-sqrt(d))/(2*a);
IV. Описание
переменных:
Переменные
а, b,
c целого типа integer,
d, x, x1, x2 имеют
вещественный тип
real.
V. Программа:
var
a,b,c:integer;
x,d,x1,x2:real;
Begin
writeln('введите коэффициенты а,b,c');
readln(a,b,c);
d:=b*b-4*a*c; {вычисление
дискриминанта}
if d<0 then writeln('уравнение
не имеет корней');
if
d=0 then
begin
writeln('уравнение
имеет
1 корень');
x:=-b/(2*a);
writeln('x= ',x);
end;
if d>0
then
begin
writeln('уравнение
имеет
2 корня');
x1:=(-b+sqrt(d))/(2*a);
x2:=(-b-sqrt(d))/(2*a);
writeln('x1= ',x1);
writeln('x2= ',x2);
end;
End.
Можешь
загрузить!
Пример 2
VI. Тестирование
программы:
1. Проверьте работу программы для следующих значений
Ввод a,b,c |
Вывод |
1
-4
4 |
уравнение имеет 1 корень
x= 2 |
1
-2
4 |
уравнение не имеет корней
|
-1
2
5 |
уравнение имеет 2 корня
x1= -1.44948974278318
x2= 3.44948974278318 |
1
2
-4
|
уравнение имеет 2 корня
x1= 1.23606797749979
x2= -3.23606797749979
|
1
2
4 |
уравнение не имеет корней
|
2
-2
3
|
уравнение не имеет корней
|
2. Поэкспериментируйте с программой вводя различные значения.
Вопросы для повторения:
1.
В каких случаях после служебных слов
then
и
else
нужно писать
begin
…
end, а в каких нет?
2.
Что представляет собой составной оператор?
3.
Почему end
желательно записывать под
begin?
4.
Для чего в примере 1 введены переменные
sa,
sb?
5.
В
какой из следующих структур допущена ошибка? Какая?
Задачи
для самостоятельного решения
-
Даны действительные числа x, y (x≠y). Меньшее из этих двух чисел заменить их полусуммой, а большее - их удвоенным произведением.
-
Даны два целых числа M, N. Если M делится нацело на N, то вывести на экран частное от деления, в противном случае - сообщение "M на N нацело не делится".
-
Даны три числа. Удвоить их, если они упорядочены по возрастанию, иначе отрицательные заменить их модулями.
-
Даны три числа. Удвоить их, если они целые, иначе нецелые заменить их целыми частями.
-
Дано натуральное число n (n £ 9999). Если число четырёхзначное, то получите и выведите перевёртыш этого числа (3528
Þ
8253), иначе выведите ответ "Число не четырехзначное".
-
Дано натуральное число n. Если оно двухзначное, то впишите в середину ноль (для 56
Þ
506), иначе выведите ответ "Число не двухзначное".
-
* Даны натуральные числа k, l ( 1≤ k, l ≤ 8). На клетке (k, l) расположена шахматная фигура:
a) конь
b) ферзь
Вывести на экран координаты клеток, на которые может походить данная фигура, при этом учитывайте, что нельзя выходить за пределы доски.