В процедуре привести нетипизированный параметр к удобному для программиста типу - Turbo Pascal

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

А именно : В процедуре привести нетипизированный параметр к удобному для программиста типу( и нарисовать полигон). С полигоном разберусь,а вот само приведение не понимаю.(три раза вызвать процедуру ,каждый раз используя один из массивов из тела программы)
program laba12;
 
 
uses Crt, Graph ;
 
type
  CoordinateTYPE = Record
    X2: integer;
    Y2: integer;
  end;
 
 
const
  Count1 = 100;
  Count2 = 50;
  Count3 = 50;
 
var
  f1, f2: file;
  Coordinate1: array [1..Count1]of integer;
  Coordinate2: array[1..2, 1..Count2] of integer;
  Coordinate3: array[1..Count3]of CoordinateTYPE;
  i, j, N, k, buf,g,h: integer;//N-число вершин,i,j индексы массива,buf-буффер
 
Procedure MyPolygon(var Coordinate;N:integer);
 
begin
 
begin
 
end;
 
 
end;
 
begin
 
clrscr;
  Assign(f1, 'X_coordinates');//Файл куда запишем Х координаты вершин
  Rewrite(f1, 4);//Элементы по 4 байта!!! Записываем интеджер
  Assign(f2, 'Y_coordinates');//Файл куда запишем У координаты  веришн
  Rewrite(f2, 4);//4 БАЙТА ЭЛЕМЕНТ!!!
  writeln('Vvedite kolichestvo vershin poligona');
  Readln(N);
  k := 1;//Счетчик вершин
  for i := 1 to N * 2 do
  begin//НАЧАЛО ЦИКЛА 1
    if i mod 2 <> 0 then
    begin
      writeln('Vvedite X koordinaty ', k, ' vershiny');
      Readln(Coordinate1[i]);
      buf := Coordinate1[i];
      BlockWRITE(f1, buf, 1)//ЗАПИСЫВАЕМ Х КООРДИНАТЫ В ФАЙЛ 1 ДЛЯ ДАНННОЙ ВЕРИШИНЫ
    end;
 
    if i mod 2 = 0 then
    begin
      writeln('Vvedite Y koordinaty ', k, ' vershiny');
      Readln(Coordinate1[i]);
      buf := Coordinate1[i];
      BlockWRITE(f2, buf, 1);//ЗАПИСЫВАЕМ Y КООРДИНАТЫ В ФАЙЛ 2 ДЛЯ ДАНННОЙ ВЕРИШИНЫ
      k := k + 1;//увеличиваем его ИМЕННО ТУТ потому,что должен увеличиватся только после ввода Х И У координат!!!
    end;
  end;//КОНЕЦ ЦИКЛА 1
  close(f1);
  close(f2);
 
    Reset(f1,4);
    Reset(f2,4);
   for i:=1 to N do begin
 
   BlockREAD(f1, buf, 1);//СЧИТЫВАЕМ ИЗ ФАЙЛА С КООРДИНАТАМИ Х
   Coordinate3[i].X2 :=buf ;
   BlockREAD(f2, buf, 1);//СчИТЫВАЕМ ИЗ ФАЙЛА С КООРДИНАТАМИ У
   Coordinate3[i].Y2 :=buf ;
  end;//КОНЕЦ ЦИКЛА 2
  for i := 1 to 2 do
    for j := 1 to N do
    begin//НАЧАЛО ЦИКЛА 3
      if i = 1 then Coordinate2[i, j] :=  Coordinate3[j].X2;
      if i = 2 then Coordinate2[i, j] :=  Coordinate3[j].Y2;
    end;//КОНЕЦ ЦИКЛА 3
 
    g:=detect;
initgraph(g,h,'');
 
 
 
 
 
 
 
end.


textual

Код к задаче: «В процедуре привести нетипизированный параметр к удобному для программиста типу - Turbo Pascal»

uses Graph;
Procedure MyPolygon(var p;x,y,n,c:integer);
begin
setcolor(c);
drawpoly(n,p)
end;
var p1: array [1..4] of pointtype;
    p2: array [1..5] of pointtype;
    x,y,i:integer;
    u:real;
begin
initgraph(x,y,'');
x:=100;
y:=240;
u:=pi/2;
for i:=1 to 4 do
 begin
  p1[i].x:=x+round(100*cos(u));
  p1[i].y:=y-round(100*sin(u));
  u:=u+2*pi/3;
 end;
x:=400;
y:=240;
u:=pi/2;
for i:=1 to 5 do
 begin
  p2[i].x:=x+round(100*cos(u));
  p2[i].y:=y-round(100*sin(u));
  u:=u+2*pi/4;
 end;
MyPolygon(p1,100,240,4,12);
MyPolygon(p2,400,240,5,9);
readln
end.
Эта работа вам не подошла?

Вы всегда можете заказать любую учебную работу у наших авторов от 20 руб.


СДЕЛАЙТЕ РЕПОСТ

15   голосов, оценка 3.733 из 5

Источник