Конспект лекций по программированию для начинающих. Гладков В.П. - 206 стр.

UptoLike

Составители: 

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; { тип массива вершин }