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

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

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 22.12.2010, 23:25   #1
Хелен
Новичок
Джуниор
 
Регистрация: 22.12.2010
Сообщений: 2
По умолчанию Поправить прогу с графическим режимом.

Написала программу выводящую трёхмерную диаграмму, данные считываются из файла, созданного мной. Программа правильная, но преподаватель не приняла, потому что она не универсальная. Изменяя количество строк в файле, нужно самостоятельно вносить изменения в код, а необходимо чтобы программа сама прогоняла файл и изменялась сама.
Я думаю, Программу нужно оформить в виде процедуры, но не знаю как точно. помогите пожалуйста.

Код:
Текст программы.

program treug;
 uses Graph,crt;
const god:array[1..6] of string=('Milk(max)','Milr(cred)','white(max)','white(cred)','black(max)',
                                 'black(cred)');
      cen:array[1..6] of real=(200,180,200,100,200,50);
var 
GrDrv:integer;        {Графический драйвер}
GrMode:integer;     {Графический режим}
GrErr:integer;          {Графическая ошибка}
    f:text;
    s:string;
    i,j,gd,gm,x0,y0,w:integer;
    mx,h:real;
    k:char;
    begin
      gd:=0;
      w:=25;               {ширина столбцов}
      x0:=50;              {левый край диагоаммы}
      y0:=420;            {нижний край}
      mx:=cen[1];
      clrscr;
      assign(f,'G:\tabl2.txt');
      reset(f);
      writeln('             TABLICA  SHOKOLADA');
      writeln;
      while not eof(f) do
      begin
      readln(f,s);
      writeln(s);
      end;
      close(f);
      writeln;
      writeln('please double press ENTER to continue...');
      K:=readkey;
      if(readkey=#13)
      then
      begin
      initgraph(gd,gm,'');
      for i:=1 to 6 do
    if cen[i]>mx then mx:=cen[i];           {находим максимум}
     h:=(y0-40)/mx;                                 {масштаб по вертикали}
     for i:=1 to 6 do
begin
  setcolor(i+1);{цвет}
  Setfillstyle(i+1,i+1);                           {стиль заполнения}

  {рисуем параллелепипеды с заданной шириной, шагом 
    и высотой соответственно значению цен} 

  Bar3d(x0+4*w*(i-1),y0-round(cen[i]*h),x0+w*(4*i-2),y0,15,topon);
  outtextXY(x0+4*w*(i-1),y0+20,god[i]);           {выводим по низу наименования}
  str(cen[i]:5:2,s);{преобразуем цены в строку}
  outtextXY(x0+4*w*(i-1)+w,y0-round(cen[i]*h)-20,s);    {выводим цену выше столбика}
 end;
 readln
end
else
writeln('error, restart application.');
end.

___________
Код нужно оформлять по правилам:
тегом [CODE]..[/СODE] (это кнопочка с решёточкой #)
Не забывайте об этом!
Модератор.
___________




Текст файла.

200 180 milk
200 100 white
200 50 black

Последний раз редактировалось Serge_Bliznykov; 23.12.2010 в 09:47.
Хелен вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Поправить прогу... Поиск. twister_answer Помощь студентам 0 06.12.2010 21:39
Помогите с графическим режимом romario1978 Общие вопросы C/C++ 1 03.01.2010 16:17
Проблемы с графическим режимом masha17 Помощь студентам 1 05.12.2009 17:58
Те кто работал с DirectShow9 и полноэкранным режимом помогите Anatol_rus Мультимедиа в Delphi 8 10.11.2008 11:15
Выбор между консольным и GUI режимом adwaer Помощь студентам 1 15.06.2008 22:03