
- Обучение
- Поступление в ЗФТШ
- О ЗФТШ
- Учителям
- Лекторий
-
Курсы
- Заочное отделение
- Очное отделение
- Факультативы
Теперь воспользуемся всеми полученными знаниями и рассмотрим примеры простейших программ. Условимся в примерах не различать заглавные и строчные буквы, а ключевые слова выделять жирным шрифтом.
Ввести координаты трёх вершин треугольника. Вывести его площадь. Гарантируется, что треугольник существует (ввод корректный).
Для решения этой задачи нам потребуется `6` переменных, в которые будут введены значения координат `(x1, y1, x2, y2, x3, y3)`. Можно сделать их целыми для простоты, а можно вещественными, чтобы решать задачу в более общем случае. Так же потребуются переменные, в которые мы запишем длины сторон треугольника `(a, b, c)` и площадь `(S)`. Эти переменные однозначно должны быть вещественными, так как при вычислении расстояния между точками нам придётся извлекать квадратный корень, и, соответственно, результат получится вещественным. И ещё предлагается ввести вещественную переменную `p`, в которой будет храниться полупериметр треугольника, так как площадь будет вычисляться по формуле Герона. Приведём полный текст программы:
var x1,y1,x2,y2,x3,y3:integer; a,b,c,p,S:real;
begin
Write('Введите координаты вершин треугольника ');
Readln(x1,y1,x2,y2,x3,y3);
a:=sqrt(sqr(x1-x2)+sqr(y1-y2));
b:=sqrt(sqr(x1-x3)+sqr(y1-y3));
c:=sqrt(sqr(x2-x3)+sqr(y2-y3));
p:=(a+b+c)/2;
S:=sqrt(p*(p-a)*(p-b)*(p-c));
Writeln('Площадь треугольника равна ',S:5:2);
Readln;
end.
Идёт `k`-ая секунда суток (`k` вводится). Вывести, сколько полных часов `h` и полных минут `m` прошло с начала суток.
В этой задаче все параметры целые. Решается она с помощью операций div и mod. Эти операции можно использовать для «срезания периодов» при переводе мелких единиц измерения в более крупные (например, секунд в минуты). Операция div нам выдаст количество полных периодов (сколько полных минут содержится в большом количестве секунд), а операция mod – количество единиц в последнем неполном периоде (сколько секунд не укладывается в полное количество минут). Приведём полный текст решения.
var k,h,m:integer;
begin
Write('Введите номер секунды в сутках');
Readln(k);
h:=k div 3600;
m:=k mod 3600 div 60;
writeln('С начала суток прошло ',h,' часов и ',m,' минут');
readln;
end.
Вводится четырёхзначное число. Вывести произведение его цифр.
Эта задача показывает ещё одно применение операций div и mod – выделение цифр из целого числа. Описанное ниже решение работает только для случая, когда количество цифр в числе заранее известно. В противном случае придётся использовать циклический алгоритм. Приведём текст решения.
var N,c1,c2,c3,c4:integer;
begin
Write('Введите целое четырёхзначное число');
Readln(N);
c1:=N div 1000;
c2:=N div 100 mod 10;
c3:=N div 10 mod 10;
c4:=N mod 10;
Writeln('Произведение цифр вашего числа равно',c1*c2*c3*c4);
Readln;
end.