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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 10.04.2011, 09:09   #1
vereney
Пользователь
 
Регистрация: 01.03.2011
Сообщений: 28
По умолчанию Зарисовать весь экран окружностями.

Написала программу в Турбо Паскале, но она не работает, т.к. пишет что не найден модуль Graph. Что я неправильно сделала?
Код:
Program grafika;
Uses graph;
   var
      i,j:integer;
begin
     i:=detect;
     j:=0;
Initgraph(i,j,'');
     SetColor(14);
     i:=1;
begin
     circle(20;20;15);
     for i:=1 to 640 do
     i:=i+30;
end;
close graph;
end.
vereney вне форума Ответить с цитированием
Старый 10.04.2011, 12:46   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Вам надо скачать GRAPH.TPU и положить его там, где его увидит компилятор (куда настроены пути). например, туда же, где лежит сам TURBO.EXE.

версия Turbo Pascal какая у Вас?

ну и сразу же могу сказать - рядом с Вашей программой должны находится BGI файлы
(EGAVGA.BGI, например)
Serge_Bliznykov вне форума Ответить с цитированием
Старый 10.04.2011, 13:55   #3
vereney
Пользователь
 
Регистрация: 01.03.2011
Сообщений: 28
По умолчанию

версия 7.1. И GRAPH.TPU и BGI файлы (EGAVGA.BGI, например) находятся в папке ТурбоПаскаль 7.1. И никак не могу взять в толк,чего не хватает.Прописала директорию в меню Options/Directories путь к файлу graph.tpu, например, d:\Program Files\Turbo Pascal 7.1\(там у меня папка со всеми файлами.
Должна ли я в программе добавить :
Код:
GrDriver := Detect;
   InitGraph(GrDriver, GrMode, 'C:\TP\BGI'); {установка графического режима}

Последний раз редактировалось vereney; 10.04.2011 в 15:22.
vereney вне форума Ответить с цитированием
Старый 10.04.2011, 15:41   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

похоже, что Вы всё путаете....

тут Вы пишете, что "И GRAPH.TPU и BGI файлы (EGAVGA.BGI, например) находятся в папке ТурбоПаскаль 7.1"
и тут же:
"Должна ли я в программе добавить :С
InitGraph(GrDriver, GrMode, 'C:\TP\BGI'); "
Зачем такое добавлять, если у Вас нет на диске C: папки \TP\BGI ?!

это раз.
второе.
я бы крайне рекомендовал Вам создать в корню диска (хоть C:, хоть D
папку TP и именно туда переписать содержимое папки d:\Program Files\Turbo Pascal 7.1\
ну и настроить пути к этим папкам.

3) GRAPH.TPU должен (по умолчанию!) лежать в подпапке TP\BIN (я же писал, там же, где находится файл TURBO.EXE )

4) файл GRAPH.TPU и EGAVGA.BGI - могут вполне находится в разных папках! Обычно в папке TP создают подпапку BGI и при иницилизации графики указывают путь к этой папке:
InitGraph(GrDriver, GrMode, 'C:\TP\BGI');
но вполне можно просто переписать EGAVGA.BGI туда, где лежит исходники вашей программы (точнее в ту папке, где будет лежать созданный из вашего исходника исполняемый EXE файл)...
Serge_Bliznykov вне форума Ответить с цитированием
Старый 10.04.2011, 15:46   #5
vereney
Пользователь
 
Регистрация: 01.03.2011
Сообщений: 28
По умолчанию

Похоже, не понимаю суть, простите, постараюсь разобраться, спасибо за терпение к таким вот ученикам
vereney вне форума Ответить с цитированием
Старый 10.04.2011, 16:39   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
'C:\TP\BGI'
При GrDriver := Detect; не нужно путь указывать, ТР в этом плане не всегда корректен.
Либо четко указать :
Код:

  GrDriver := VGA; GrMode:=VGAHi
   InitGraph(GrDriver, GrMode, 'egavga.bgi'); {установка графического режима}
и положить этот bgi в каталог где прога компилируется, либо убрать путь вообще и оставить Detect.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 10.04.2011, 17:50   #7
vereney
Пользователь
 
Регистрация: 01.03.2011
Сообщений: 28
По умолчанию

Запустить графику запустила.ТОлько вот рисуется всего два кружочка,цикл не получился
Код:
Program grafika;
Uses Crt, graph;
   var
      i,j,GrDriver, GrMode : integer;
begin
GrDriver := Detect;
  InitGraph(GrDriver, GrMode,'c:\TP\BGI');
     i:=detect;
     j:=detect;
Initgraph(i,j,'');
     SetColor(14);
     i:=1;
     for i:=1 to 640 do
begin    
     circle(20,20,15);
     circle(20,60,15);
 i:=i+30;
end;
readln;
closegraph;
end.
vereney вне форума Ответить с цитированием
Старый 10.04.2011, 19:09   #8
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

какой кошмар...
1) зачем Вы ДВАЖДЫ иницилизируете графику?!
InitGraph достаточно один раз вызвать!

2) кто Вас учил в цикле FOR I:=
изменять I ?!
Цитата:
Код:
 for i:=1 to 640 do
begin    
     circle(20,20,15);
     circle(20,60,15);
  i:=i+30;end;
readln
и, главная ошибка, из-за которой Вы не видите кружочки,
вы 21 раз выводите в цикле - это потому что Вы рисуете эти кружочки в одном и том же месте! (место расположения у Вас в коде не зависит от переменной цикла!)

ДОБАВЛЕНО
не знаю, как Вы хотите покрыть экран кружочками.
но посмотрите этот пример
Код:
Program grafika;
Uses Crt, graph;
var
      i,j : integer;
begin
  i:=detect;
  j:=detect;
  Initgraph(i,j,'');
  
  SetColor(14);
  i:=1;
  while (i+20) < GetMaxX do begin
     circle(20+i,20,15);
     circle(20+i,60,15);
     i:=i+30;
  end;
  readln;
  closegraph;
end.

Последний раз редактировалось Serge_Bliznykov; 10.04.2011 в 19:12.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 10.04.2011, 20:07   #9
vereney
Пользователь
 
Регистрация: 01.03.2011
Сообщений: 28
По умолчанию

Конечно, я понимаю ваше удивление.Но мы учимся и у нас не все получается,поэтому то и обращаемся к вам)).И если вам несложно, поясните
Код:
while (i+20) < GetMaxX do begin
. ПОлучилось два ряда кружочков.А чтобы пять рядов надо тогда надо
Код:
while (i+20) < GetMaxX do begin
     circle(20+i,20,15);
     circle(20+i,60,15);
circle(20+i,100,15);
circle(20+i,140,15);
circle(20+i,180,15);

     i:=i+30;
  end;
  readln;
  closegraph;
end.

Последний раз редактировалось vereney; 10.04.2011 в 20:14.
vereney вне форума Ответить с цитированием
Старый 10.04.2011, 20:10   #10
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
ПОлучилось два ряда кружочков.
Правильно
Цитата:
while (i+20) < GetMaxX do begin
Пока не конец экрана
Цитата:
circle(20+i,20,15);
circle(20+i,60,15);
Выводим по два кружка сверху и снизу
Цитата:
i:=i+30;
и переходим на координату вправо
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
приложение во весь экран Михаил Юрьевич Общие вопросы Delphi 6 23.08.2010 19:40
Во весь экран _-Re@l-_ Общие вопросы Delphi 10 22.06.2010 11:00
Во весь экран!!! Orodret Общие вопросы C/C++ 2 01.05.2009 17:58
форма во весь экран??? zzzzz Помощь студентам 8 08.11.2007 08:39
во весь экран Артэс Общие вопросы C/C++ 7 17.08.2007 23:37