Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.12.2011, 23:38   #1
Silverstone
Пользователь
 
Регистрация: 13.12.2011
Сообщений: 75
По умолчанию Нужно переделать программу

Что нужно сделать:
Цитата:
Написать процедуру рисования полигона. Параметры: 1) ад-рес массива координат полигона (так как количество вершин каж-дый раз разное – параметр нетипизирован); 2) количество вершин полигона. В процедуре привести нетипизированный параметр к удобному для программиста типу и нарисовать полигон. Из основ-ной программы обратиться к данной процедуре 3 раза, в качестве фактического параметра использовать различные структуры дан-ных, хранящие координаты полигонов (например, массив записей, двумерный массив, одномерный массив).
Сам код:
Код:
Program r12;
Uses graph;
type
    coords = record
    x:word;
    y:word;
    end;
    arr1=array[1..12] of coords;
    arr2=array[1..24] of word;
    arr3=array[1..12, 1..2] of word;
Var
    GD,Gm:integer;
    a:arr1;
    b:arr3;
    c:arr2;
    phi:real;
    x,y:word;
    i:1..12;
procedure abc(var t;const n:byte);
type arrmax=array[1..16383,1..2] of word;
  var i:byte;
	begin
  for i:=1 to n do
      begin
      if i=1 then moveto(arrmax(t)[i,1],arrmax(t)[i,2])
             else lineto(arrmax(t)[i,1],arrmax(t)[i,2]);
      if i=n then lineto(arrmax(t)[1,1],arrmax(t)[1,2]);
      end;
	end;

Begin
  randomize;
  gD:=detect;
  gM:=2;
  initGraph (gD,gM,'..\bgi\');


 {for i:=1 to 12 do
	    begin
      phi:=(pi/6)*(i-1);
      y:=240-round(sin(phi)*100);
      x:=320+round(cos(phi)*100);
      a[i].x:=x;
      a[i].y:=y;
      b[i,1]:=x;
    	b[i,2]:=y;
      c[i*2-1]:=x;
      c[i*2]:=y;
	    end;}

  abc(a,12); readln; cleardevice; readln;
  abc(b,12); readln;cleardevice; readln;

  abc(c,12);

readln;
end.
Помогите переделать выделенную часть в коде на функцию, которая рисовала бы любой другой полигон

Последний раз редактировалось Silverstone; 28.12.2011 в 22:22.
Silverstone вне форума Ответить с цитированием
Старый 27.12.2011, 23:44   #2
Mad_Cat
Made In USSR!
Старожил
 
Аватар для Mad_Cat
 
Регистрация: 01.09.2010
Сообщений: 3,657
По умолчанию

я бы лучше
Код:
 procedure abc(var t;const n:byte);
переписал
"...В жизни я встречал друзей и врагов.В жизни много всего перевидал.Солнце тело мое жгло, ветер волосы трепал,но я смысла жизни так и не узнал..."
(c) Юрий Клинских aka "Хой"
Mad_Cat вне форума Ответить с цитированием
Старый 28.12.2011, 17:59   #3
Silverstone
Пользователь
 
Регистрация: 13.12.2011
Сообщений: 75
По умолчанию

процедура нужна именно такая
полигон нужен другой
Silverstone вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нужно переделать программу Javan Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 1 05.10.2011 11:42
Нужно переделать программу - упростить lukoie Фриланс 14 29.01.2010 01:09
нужно переделать программу Real7 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 0 24.12.2009 16:43
Нужно переделать программу? bamer Фриланс 6 28.12.2008 17:12