Блоки операторов
Управляющая структура if ... then может показаться негибкой, так как после служебного слова then должен стоять только один оператор.
Если вы напишете два оператора подряд (например, if х<>0 then у:=1/х; х:=0;), то второй оператор выполнится в любом случае, независимо от проверяемого условия.
Если требуется выполнить последовательность действий (несколько операторов подряд), то ее заключают в блок, образуемый операторами begin и end.
Пример:
if X > 3 then begin S1; S2; S3; S4 end;
Здесь S1-S4 символически обозначают операторы.
Эта группа (begin S1; S2; S3; S4 end) называется составным оператором, или операторной скобкой. Она как бы говорит компилятору, что данный блок операторов нужно рассматривать как единое целое.
Пример 5.2.
Вычисление корней квадратного уравнения
Program Quad;
var
А.В.С: real;{ Переменные для хранения коэффициентов }
D:rеаl; { Переменная для дискриминанта }
X1,Х2: real;{ Переменные для получения корней }
begin
writeln('Введите коэффициенты А, В, С:');
readln(A.B.C);
D:=Sqr(B) - 4*А*С;
if D < 0 then
writeln('Уравнение не имеет вещественных корней')
else
if D=0 then
writeln('У уравнения один корень', -В/(2*А):б:2)
else
{Ниже идет составной оператор }
begin
Х1:=(-В + Sqrt(D))/(2*А);
Х2:=(-В -Sqrt(D))/(2*A);
Writeln('У уравнения два корня:', X1:6:2, Х2:6:2)
end:
readln
end.
Задание 5.3.
Нарисовать блок-схемe алгоритма и написать программу, в которой с клавиатуры вводится код режима работы Kd и цвет CL.
На экран выводится сообщение. При этом, если Kd = 0, то сообщение выводится символами цвета Сl, а если Kd = 1, то сообщение выводится символами цвета Сl+16.
На экране во втором случае вы получите мигающие символы, так как код их цвета больше 15. В этом случае в качестве номера мигающего цвета Паскаль использует остаток от деления кода цвета нацело на 16.
ЗАМЕЧАНИЕ
В качестве проверяемых условий можно использовать логические операции.
Рассмотрим задачу: ввести три числа А, В, С и определить, равны ли введенные числа. Блок-схема алгоритма показана на рис. 5.5.
Рис. 5.5. Блок-схема алгоритма, определяющего, равны ли друг другу три введенные с клавиатуры числа
Пример 5.3.
Проверка равенства трех чисел, введенных с клавиатуры .
Program Мх;
var
А,В,С: integer;
begin
writeln(' Введите 3 числа:');
readln(A.B.C);
if (А = В) and (А = С) then
writeln('Числа равные')
else
writeln('Числа не равны');
readln
end.
Задание 5.4.
Ввести три числа А, В, С и определить максимальное из них. Нарисуйте блок-схему алгоритма и напишите программу.
Задание 5.5.
Ввести четырехзначное целое число и определить, является ли оно палиндромом, или «перевертышем» (такими, например, являются числа 6666 и 3223). Нарисуйте блок-схему алгоритма.
Подсказка: для выделения отдельных разрядов числа используются операции div и mod.
Задание 5.6.
Ввести три числа А, В, С. Если ни одно из чисел не равно нулю, то в переменную К записать среднее арифметическое трех чисел.
Задание 5.7.
Введите значение X и, используя график функции (рис. 5.6), определите значение Y. Заполните блок-схему алгоритма (рис. 5.7).
Рис. 5.7. «Слепая» блок-схема алгоритма вычисления кусочно-заданной функции, изображенной на рис. 5.6
Задание 5.8.
Положение фигуры на шахматной доске (8 х 8) описывается двумя числами — номером горизонтали и номером вертикали. Ввести с клавиатуры координаты ферзя (X, Y) и координаты любой фигуры (М, N). Проверить, находится ли фигура под ударом. Ферзь бьет по вертикали, горизонтали и диагонали.
Задание 5.9.
Введите число с клавиатуры. Если это число четное и кратно 7, то выведите свое имя на экран красным (red) цветам, иначе — выведите его зеленым (green) цветом. Предварительно заполните блок-схему алгоритма (рис. 5.8).
Рис. 5.8. «Слепая» блок-схема алгоритма, выводящего слово «Вася» красным цветом на экран, если введенное число кратно 7, и зеленым цветом в противном случае
Задание 5.10.
Ввести три числа А, В, С и определить среднее из них (то, которое больше одного, но меньше другого). Нарисуйте блок-схему алгоритма и напишите программу.
<< Назад В начало Далее >>
Комментарии: 2012-02-20 ответил )))
СПАСИБО!!!
2012-08-08 ответил Ростик
У меня получилась 5,10 УРА!!!!!!!!!
2015-06-25 ответил слава
чет сложненько мне с этой математикой. может,потому что я в 6-ом классе?
Добавить свой комментарий:
|
|