Введём переменные:
z – введённое трёхзначное число.
Единицы: e = z mod 10;
Десятки: d = (z div 10) mod 10;
Сотни: s = z div 100;
Сумма цифр числа z: Sum = e + d + s.
Блок-схема алгоритма
Текст программы на языке Паскаль
Program Example_1;
Var z, e, d, s, Sum : word;
Begin
write(‘Введите трехзначное число z=‘);
read(z);
e := z mod 10;
d := (z div 100) mod 10;
s := z div 100;
Sum := e + d + s;
writeln(‘Сумма цифр числа ‘, z , ’ = ‘, Sum);
readln
end.
Данные для тестирования
1) Для числа z=128 – сумма цифр = 1 + 2 + 8 = 11
2) Для числа z=756 – сумма цифр = 7 + 5 + 6 = 18
Пример 1.2 . Даны два круга с общим центром и радиусами R1 и R2 (R1 > R2 ). Найти площадь S кольца, внешний радиус которого равен R1 , а внутренний радиус R2. В качестве значения π использовать 3.14.
Математическая модель задачи
Площадь S кольца будет равна разности площади круга с радиусом R1 и площади круга с радиусом R2:
S = 3.14*R12 – 3.14*R22.
Блок-схема алгоритма
Текст программы на языке Паскаль
Program Example_2;
Var R1, R2, S : real;
Begin
write(‘Введите радиус большего круга R1=‘);
read(R1);
write(‘Введите радиус меньшего круга R2=‘);
read(R2);
S := 3.14*R1*R1 - 3.14*R2*R2;
writeln(‘Площадь кольца S = ‘, S:5:2);
readln
end.
Данные для тестирования
1) Для R1=5, R2=3 – Площадь кольца S = 3.14*52 – 3.14*32 = 50.24
2) Для R1=7, R2=5 – Площадь кольца S = 3.14*72 – 3.14*52 = 75.36
УСЛОВНЫЙ ОПЕРАТОР
В этом разделе рассматривается решение задач с использованием условного оператора. В некоторых задачах решение будет более компактным и простым если при проверке условия составить сложное логическое выражение, а в других задачах необходимо использовать вложенный оператор if.
Пример 2.1 . Даны действительные числа x, y. Меньшее из этих двух чисел заменить их удвоенной суммой, а большее – половиной их произведения. Если числа равны, то оставить их без изменения.
Математическая модель задачи
Введём переменные:
min = 2*(x + y);
max = x * y / 2.
Блок-схема алгоритма
Текст программы на языке Паскаль
Program Example_3;
Var x, y, min, max : real;
Begin
write(‘Введите x = ‘);
read(x);
write(‘Введите y = ‘);
read(y);
min := 2*(x + y);
max := x * y / 2;
if x<y then begin x:=min; y:=max end
else if x>y then begin y:=min; x:=max end;
writeln(‘Результат: x = ‘, x:4:2, ‘ y = ‘, y:4:2);
readln
end.
Данные для тестирования
1) Для x = 5, y = 3 ð min = 2*(5+3) = 16; max = 5 * 3 / 2 = 7.5;
Результат: x = 7.5 y = 16
2) Для x = 3, y = 5 ð min = 2*(3+5) = 16; max = 3 * 5 / 2 = 7.5;
Результат: x = 16 y = 7.5
3) Для x = 3, y = 3 ð Результат: x = 3 y = 3
Пример 2.2 . Даны два действительных числа x, y. Определить, принадлежит ли точка с координатами x, y заштрихованной области.
Математическая модель задачи
Из рисунка можно определить, что заштрихованная область ограничена тремя прямыми: y = 0, y = -x – 1, y = x – 1. Границы также принадлежат этой области.
Тогда, чтобы точка с координатами (х, у) принадлежала заштрихованной области, необходимо, чтобы одновременно выполнялись три условия:
У ≤ 0
y ≥ x -1 ;
y ≥ -x - 1.
Блок-схема алгоритма
Дата: 2019-03-05, просмотров: 233.