Вводятся координаты вершин треугольников(сохр в файле). Выбрать треугольник с наибольшей площадью - PascalABC.NET

Узнай цену своей работы

Формулировка задачи:

По заданию необходимо, чтобы вводимая последовательность чисел сохранялась в файле(это я сделала) и представляла собой массив записей. Я не понимаю, как по этому файлу находить площади треугольников. Формулу-то знаю(). Но как это воспроизвести в Паскале?
вот это сохраняет координаты в файл и выводит его. А дальше не соображу... Помогите, пожалуйста, разобраться!

Решение задачи: «Вводятся координаты вершин треугольников(сохр в файле). Выбрать треугольник с наибольшей площадью»

textual
Листинг программы
program poisk;
const N = 10;
type coordinates = record
                   x, y: real;
                  end;
type ft = file of coordinates;
var f: ft;
    mas: array[0..N-1] of coordinates;
    i, j, k, imx, jmx, kmx: integer;
    max, s: real;
    a :coordinates;
begin
assign(f, 'in');
rewrite(f);
for i := 1 to N do
 begin
  writeln('Введите кординаты точки ',i);
  write('x=');readln(a.x);
  write('y=');readln(a.y);
  write(f,a);
 end;
reset(f);
writeln('Координаты точек');
for i:=0 to filesize(f)-1 do
 begin
  read(f,mas[i]);
  write(i+1:2,'(',mas[i].x:5:2,',',mas[i].y:5:2,')  ');
  if i=5 then writeln;
 end;
close(f);
writeln;
max:=0;  //пусть макс. площадь=0
for i:=0 to N-3 do
for j:=i+1 to N-2 do
for k:=j+1 to N-1 do
 begin
  //считаем площадь
  s:=abs(((mas[i].x-mas[k].x)*(mas[j].y-mas[k].y)-(mas[j].x-mas[k].x)*(mas[i].y-mas[k].y))/2);
  if s>max then//если больше максимума
   begin
     max:=s;//это макс.
     imx:=i;//номера точек
     jmx:=j;
     kmx:=k;
   end;
 end;
writeln('Самую большая площадь=',max:0:2,' имеет треугольник, образованный точками:');
writeln(imx+1:2,'(',mas[imx].x:5:2,',',mas[imx].y:5:2,')');
writeln(jmx+1:2,'(',mas[jmx].x:5:2,',',mas[jmx].y:5:2,')');
writeln(kmx+1:2,'(',mas[kmx].x:5:2,',',mas[kmx].y:5:2,')');
end.

Объяснение кода листинга программы

  1. Объявлены переменные: N - количество точек (константа); coordinates - тип данных для хранения координат точек; ft - тип данных для работы с файлом; mas - массив для хранения координат точек; i, j, k, imx, jmx, kmx - счётчики для обработки цикла; max, s - переменные для хранения площади и её максимального значения; a - переменная типа coordinates для ввода координат точки; f - файл для ввода и вывода данных.
  2. Создаётся файл для записи координат точек и открывается на запись.
  3. Запрашивается ввод координат каждой точки и записывается в файл.
  4. Файл закрывается и открывается на чтение.
  5. Выводятся координаты всех точек.
  6. Находится максимальная площадь.
  7. Находится треугольник с наибольшей площадью.
  8. Выводится сообщение с координатами этого треугольника.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

9   голосов , оценка 3.889 из 5
Похожие ответы