ВУЗ:
Составители:
Рубрика:
208
end;
{ Деление двух дробей }
procedure del(a,b,c,d:integer; var e,f:integer);
var r:integer;
begin e:=a*d;
f:=b*c;
sokr(e,f)
end;
begin
write('Введите первую дробь ');
wwod(x,y);
write('Введите вторую дробь ');
wwod(p,q);
write('Сумма равна '); sum(x,y,p,q,s,t); wywod(s,t);
write('Разность равна '); raz(x,y,p,q,s,t); wywod(s,t);
write('Произведение равно '); mult(x,y,p,q,s,t); wywod(s,t);
write('Частное равно '); del(x,y,p,q,s,t); wywod(s,t);
end.
Пример 13.4. Выпуклый многоугольник на плоскости задается количеством
вершин и координатами каждой вершины, перечисленными в порядке обхода
сторон многоугольника по часовой стрелке. Написать набор процедур и функций
для вычисления длины стороны многоугольника, его периметра и площади, длины
наибольшей стороны и диагонали.
Решение. Для представления многоугольника будем использовать целую
переменную n - количество вершин, и двумерный массив из двух строк. В первой
строке массива будем размещать абсциссы, а во второй строке в соответствующих
элементах - ординаты вершин многоугольника. Для вычисления длины стороны
воспользуемся известной формулой. Для вычисления периметра будем обходить
стороны многоугольника от первой вершины к
последней по часовой стрелке и
суммировать длины сторон. В результате такого же обхода можно найти и длину
наибольшей стороны многоугольника.
Для вычисления площади многоугольника разобьём его диагоналями,
выходящими из вершины 1, на треугольники. Найдем площадь каждого
треугольника и сумму этих площадей, которая и будет равна площади
многоугольника. Вершина 1 здесь была выбрана
произвольно, можно было
выбрать любую другую вершину.
Для вычисления длины наибольшей диагонали нужно перебрать все диагонали
многоугольника. При этом уже просмотренные диагонали перебирать не надо.
Например, для n=6 нужно просмотреть диагонали между вершинами 13, 14, 15, 24,
25, 26, 35, 36, 46. Замечаем, что для первой точки возможные диагонали
заканчиваются в точке n-1, а для остальных точек - в точке 6.
const nn=100; { максимальное
количество вершин выпуклого
многоугольника }
type mnogoug=array[1..2,1..nn]of real; { тип массива вершин }
208
end;
{ Деление двух дробей }
procedure del(a,b,c,d:integer; var e,f:integer);
var r:integer;
begin e:=a*d;
f:=b*c;
sokr(e,f)
end;
begin
write('Введите первую дробь ');
wwod(x,y);
write('Введите вторую дробь ');
wwod(p,q);
write('Сумма равна '); sum(x,y,p,q,s,t); wywod(s,t);
write('Разность равна '); raz(x,y,p,q,s,t); wywod(s,t);
write('Произведение равно '); mult(x,y,p,q,s,t); wywod(s,t);
write('Частное равно '); del(x,y,p,q,s,t); wywod(s,t);
end.
Пример 13.4. Выпуклый многоугольник на плоскости задается количеством
вершин и координатами каждой вершины, перечисленными в порядке обхода
сторон многоугольника по часовой стрелке. Написать набор процедур и функций
для вычисления длины стороны многоугольника, его периметра и площади, длины
наибольшей стороны и диагонали.
Решение. Для представления многоугольника будем использовать целую
переменную n - количество вершин, и двумерный массив из двух строк. В первой
строке массива будем размещать абсциссы, а во второй строке в соответствующих
элементах - ординаты вершин многоугольника. Для вычисления длины стороны
воспользуемся известной формулой. Для вычисления периметра будем обходить
стороны многоугольника от первой вершины к последней по часовой стрелке и
суммировать длины сторон. В результате такого же обхода можно найти и длину
наибольшей стороны многоугольника.
Для вычисления площади многоугольника разобьём его диагоналями,
выходящими из вершины 1, на треугольники. Найдем площадь каждого
треугольника и сумму этих площадей, которая и будет равна площади
многоугольника. Вершина 1 здесь была выбрана произвольно, можно было
выбрать любую другую вершину.
Для вычисления длины наибольшей диагонали нужно перебрать все диагонали
многоугольника. При этом уже просмотренные диагонали перебирать не надо.
Например, для n=6 нужно просмотреть диагонали между вершинами 13, 14, 15, 24,
25, 26, 35, 36, 46. Замечаем, что для первой точки возможные диагонали
заканчиваются в точке n-1, а для остальных точек - в точке 6.
const nn=100; { максимальное количество вершин выпуклого
многоугольника }
type mnogoug=array[1..2,1..nn]of real; { тип массива вершин }
Страницы
- « первая
- ‹ предыдущая
- …
- 204
- 205
- 206
- 207
- 208
- …
- следующая ›
- последняя »
