ВУЗ:
Составители:
Рубрика:
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
- …
- следующая ›
- последняя »