Автор работы: Пользователь скрыл имя, 15 Марта 2012 в 23:33, задача
Тройку чисел (a, b, c) назовём Героновой тройкой, если эти числа натуральные и площадь треугольника—также натуральное число. Вывести n Героновых троек.
МЕТОДЫ ПРОГРАММИРОВАНИЯ
Вычислительная практика
Отчёт по заданию № 6
“Задачи целочисленной арифметики”
Вариант 25
Выполнила студентка
1 курса 3 группы ММФ
Михович И.А.
Преподаватель:
Расолько Г.А.
Постановка задачи
Тройку чисел (a, b, c) назовём Героновой тройкой, если эти числа натуральные и площадь треугольника—также натуральное число. Вывести n Героновых троек.
Алгоритм решения в виде блок-схемы.
Алгоритм решения в виде последовательности действий:
1) Задаём n;
2) Печатаем шапку таблицы;
3) Задаём цикл:
a) a:=1,n;
b) b:=1,n;
c) c:=1,n;
4) Ищем площадб треугольника:
a) проверяем условие: (a+b)>c, (a+c)>b, (b+c)>a;
b) ищем полупериметр: p:=(a+b+c)/2;
c) ищем площадь;
5) проверяем условие: площадь треугольника—натуральное число;
6) Речатуем таблицу с результатом.
Программа с комментариями
program geronow;
const n=20;
var a,b,c:integer; p,r,s:real;
begin
writeln('╔════════╤════════╤══
writeln('║ a │ b │ c │ s ║');
writeln('╠════════╪════════╪══
begin
for a:=1 to n do
for b:=a to n do
for c:=b to n do
begin
if ((a+b)>c) and ((a+c)>b) and ((b+c)>a) then
begin
p:=(a+b+c)/2;
S:=sqrt(p*(p-a)*(p-b)*(p-c));
if frac(s)=0 then writeln('║',a:5,' │',b:5,' │',c:5,' │',s:5:0,' ║');
end;
end;
writeln('╚════════╧════════╧══
readln;
end;
end.
Результат