
Сегодня мы с вами продолжаем решать задачи Begin11-20. В этой статье не будет блок-схем вообще. «Почему?» — спросите вы. Потому что на данном этапе задачи настолько просты, и настолько дублируют друг друга, что смысла в подробном разборе просто нет.
Begin11. Даны два ненулевых числа. Найти сумму, разность, произведение и частное их модулей.
Для того, чтобы решить данную задачу вы должны вспомнитьвстроенную в Паскаль функцию. Эта функция — abs. Кроме того, хотелось бы рассказать еще об одной интересной фишке. Наверняка, во время тестирования какой-либо программы вы сталкивались с проблемой типа Real. Считая корни, синусы, косинусы и прочее получается примерно такое число — 0.784674838737. Как избежать этого? Для этого после переменной прописываются определенные параметры. Например, write(a:5:2), где 5 — ширина поля вывода, а 2 количество знаков после запятой.
program Begin11;
var
a, b, summ, razn, proizv, chast: real;
begin
write('Введите два числа: ');
read(a, b);
a := abs(a); {используем функцию}
b := abs(b);
summ := a + b;
proizv := a * b;
chast := a / b;
razn := a - b;
writeln('Сумма модулей -- ', summ:5:2);
writeln('Разность модулей -- ', razn:5:2);
writeln('Частное модулей -- ', chast:5:2);
writeln('Произведение модулей -- ', proizv:5:2);
end.Begin12. Даны катеты прямоугольного треугольника a и b.
Найти его гипотенузу c и периметр P: c = √(a2 + b2), P = a + b + c.
Ничего сложного в этой задаче нет.
program Begin12;
var
a, b, c, p: real;
begin
write('Введите два катета прямоугольного треугольника: ');
read(a, b);
c := sqrt(sqr(a) + sqr(b));
p := a + b + c;
writeln('Периметр -- ', p:5:2);
writeln('Гипотенуза -- ', c:5:2);
end.Begin13. Даны два круга с общим центром и радиусами R1 и R2 (R1 > R2). Найти площади этих кругов S1 и S2, а также площадь S3 кольца, внешний радиус которого равен R1, а внутренний радиус равен R2. S1 = π·(R1)2, S2 = π·(R2)2, S3 = S1 – S2. В качестве значения π использовать 3.14.
Не забываем указывать pi, как константу.

program Begin13;
const
pi = 3.14;
var
R1, R2, S1, S2, S3: real;
begin
write('Введите два радиуса: ');
read(R1, R2);
S1 := pi * sqr(R1);
S2 := pi * sqr(R2);
S3 := S1 - S2;
writeln('Площадь большего круга -- ', S1:5:2);
writeln('Площадь меньшего круга -- ', S2:5:2);
writeln('Площадь кольца -- ', S3:5:2);
end.Begin14. Дана длина L окружности. Найти ее радиус R и площадь S круга, ограниченного этой окружностью, учитывая, что L = 2·π·R, S = π·R2. В качестве значения π использовать 3.14.
program Begin14;
const
pi = 3.14;
var
L, S, R: real;
begin
write('Введите длину окружности: ');
read(L);
R := L / (2 * pi);
S := pi * sqr(R);
writeln('Площадь круга -- ', S:5:2);
writeln('Радиус круга -- ', R:5:2);
end.Begin15. Дана площадь S круга. Найти его диаметр D и длину L окружности,ограничивающей этот круг, учитывая, что L = π·D, S = π·D2/4. В качестве значения π использовать 3.14.
program Begin15;
const
pi = 3.14;
var
L, S, D: real;
begin
write('Введите площадь окружности: ');
read(S);
D := sqrt(4 * S / pi);
L := D * pi;
writeln('Длина круга -- ', L:5:2);
writeln('Диаметр круга -- ', D:5:2);
end.Begin16. Найти расстояние между двумя точками с заданными координатами x1 и x2 на числовой оси: |x2 – x1|.
На самом деле непонятно, почему именно х2-х1. Ведь число в модуле будет одинаковым. Что 8 — 9, что 9 -8 равняются единице.
program Begin16;
const
pi = 3.14;
var
X1, X2, Rast: real;
begin
write('Введите координаты двух точек на оси x: ');
read(X1, X2);
Rast := abs(X2 - X1);
writeln('Расстояние между двумя точками -- ', Rast:5:2);
end.Begin17. Даны три точки A, B, C на числовой оси. Найти длины отрезков AC и BC и их сумму.
Иногда, если не понимаешь условие задачи, полезно составить рисунок к задаче.

program Begin17;
var
X1, X2, X3: real;
begin
write('Введите координаты трех точек на оси x: ');
read(X1, X2, X3);
writeln('AC = ', abs(X3-X1));
writeln('BC = ', abs(X3-X2));
writeln('AC + BC = ', abs(X3-X1)+ abs(X3-X2));
end.Begin18. Даны три точки A, B, C на числовой оси. Точка C расположена между точками A и B. Найти произведение длин отрезков AC и BC.
Посмотрев на рисунок, мы понимаем, что нахождение длины отрезков не меняется. Кстати, попробуйте составить эту программу, используя только три переменных!
program Begin18;
var
X1, X2, X3: real;
begin
write('Введите координаты трех точек A, B, C : ');
read(X1, X2, X3);
writeln('AC = ', abs(X3-X1));
writeln('BC = ', abs(X3-X2));
writeln('AC * BC = ', abs(X3-X1)* abs(X3-X2));
end.Begin19.Даны координаты двух противоположных вершин прямоугольника: (x1, y1), (x2, y2). Стороны прямоугольника параллельны осям координат. Найти периметр и площадь данного прямоугольника.
Для того, чтобы наглядно увидеть что от нас требуется, составим такой прямоугольник на листе бумаге. И увидим, что на что надо умножать.
program Begin19;
var
X1, X2, Y1, Y2, P, S, a, b: real;
begin
write('Введите координаты двух точек х1 у1 х2 у2 : ');
read(X1, Y1, X2, Y2);
a := abs(X2 - X1);
b := abs(Y2 - Y1);
P := 2 * (a + b);
S := a * b;
writeln('Периметр прямоугольника -- ', P:5:2);
writeln('Площадь прямоугольника -- ', S:5:2);
end.
Begin20. Найти расстояние между двумя точками с заданными координатами (x1, y1) и (x2, y2) на плоскости.
Расстояние вычисляется по формуле √(x2 — x1)2+(y2 — y1)2.
program Begin20;
var
a, x1, x2, y1, y2: real;
begin
write('Введите x1, y1: ');
readln(x1, y1);
write('Введите x2, y2: ');
readln(x2, y2);
a := sqrt(sqr(x2 - x1) + sqr(y2 - y1));
writeln('Расстояние между точками -- ', a:5:2);
end.На сегодня все. С Новым Годом!
Поиграем? Кто поймает кота? 🙂
его фиг поймаешь!!
Ага 🙂
поймал))
Со 3 раза поймал
в задаче 13 есть условие, которое не выполняется
Ошибка в задании Begin 18.
writeln(‘AC + BC = ‘, abs(X3-X1)* abs(X3-X2)); {не правильно)
writeln(‘AC*BC = ‘, abs(X3-X1)*abs(X3-X2)); {правильный вывод на экран}
Нужно найти произведение, а не сумму
Поймаааал!!!
в сафари кот неподвижен, ловить не приходится)
можно спросить ,а вот допустим write(S:5:2) или write(S:0:2) ,что означают цифры 0,5,2
Это формат вывода. Поэкспериментируйте с разными числами и вы увидите, как меняется вывод. Первая цифра — это количество знаков до запятой, а вторая — после. Если первая цифра равно нулю, то тогда число выводится неизменным до запятой. А вот второй цифрой можно округлить число, например, до сотых, как это сделано в задачах выше.
В 18 задание на мой взгляд ошибка в коде: переменную АС вы представляете как х3-х1, но ведь С стоит между А и Б , соответственно код на переменную АС получается таковым writeln(‘AC = ‘, abs(X2-X1));
А зачем в 16 задачи мы вводим константу pi?