Модераторы: volvo877, Snowy, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Алгоритм не срабатывает, Или ошибка в коде или нет файла? 
:(
    Опции темы
COOLJohn
  Дата 30.12.2005, 12:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 33
Регистрация: 30.12.2005

Репутация: нет
Всего: нет



Написал так:

Код
program Tiny;
uses
  Crt, Graph;
var
  x,y,c:  Integer;
  ig : Integer;
  igMode : Integer;
  ErrCode : Integer;
begin
  ig := Detect;
  InitGraph(ig, igMode, '');
  ErrCode := GraphResult;
  if ErrCode = grOk then begin
    x:=random(640); y:=Random(480); c:=Random(15);
    PutPixel(x, y, c);
    CloseGraph;
  end; else
  Writeln('Ошибка инициализации графики');
end.


А программа пишет, что произошла Ошибка инициализации графики. Короче точки не видно.
PM MAIL   Вверх
volvo877
Дата 30.12.2005, 13:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2073
Регистрация: 15.11.2004

Репутация: 2
Всего: 116



COOLJohn, твоя программа ничего подобного написать не может, ибо вообще не откомпилируется. Точка с запятой перед Else недопустима... А для того, чтобы знать, какая ошибка произошла при инициализации графики, тебе нужно
Код
Writeln('Ошибка инициализации графики: ', GraphErrorMsg(ErrCode));

, хотя скорее всего ошибка в том, что у тебя в текущей директории просто нет BGI-файла (например, EGAVGA.BGI)... Скопируй его туда из TP\BGI...
Добавлено @ 13:08
Кстати, даже если точка и будет нарисована, ты ее не увидишь - просто не успеешь, графика сразу закроется... Хотя бы ReadLn; перед CloseGraph поставь, чтобы программа ждала твоего нажатия на Enter...

Это сообщение отредактировал(а) volvo877 - 30.12.2005, 13:08
PM MAIL   Вверх
Snowy
Дата 30.12.2005, 13:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: нет
Всего: 484



Цитата(volvo877 @ 30.12.2005, 13:06)
ошибка в том, что у тебя в текущей директории просто нет BGI-файла (например, EGAVGA.BGI)...

А он вообще не указывает какой bgi будет грузить.
Отсюда и ошибка.
PM MAIL   Вверх
Guedda
Дата 30.12.2005, 22:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Подрывник
****


Профиль
Группа: Завсегдатай
Сообщений: 3137
Регистрация: 27.12.2005
Где: Ростов-на-Дону

Репутация: нет
Всего: 78



Да не... Все нормально работает у меня... Если, конечно, у end убрать ";"
И после...
Вот, в общем, полностью рабочий код:
Код

program Tiny;    
uses    
  Crt, Graph;    
var    
  x,y,c:  Integer;    
  ig : Integer;    
  igMode : Integer;    
  ErrCode : Integer;    
begin    
  ig := Detect;    
  InitGraph(ig, igMode, '');    
  ErrCode := GraphResult;    
  if ErrCode = grOk then begin    // если хочешь много точек, то вгони в цикл
    x:=random(640); y:=Random(480); c:=Random(15);    
    PutPixel(x, y, c);
    Readln;    
    CloseGraph;    
  end else    
  Writeln('Ошибка инициализации графики');    
end.

У меня замечательно все работает. smile


--------------------
Ll 2
PM MAIL WWW ICQ Skype GTalk   Вверх
Гость_Александр
Дата 31.12.2005, 00:26 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Цитата(Snowy @ 30.12.2005, 13:10)
Цитата (volvo877 @ 30.12.2005, 13:06)
А он вообще не указывает какой bgi будет грузить.
Отсюда и ошибка.


Ты не прав. Он указывает на все *.bgi, находящиеся в той папке, в которой и находится прога.

smile
  Вверх
armageddon
Дата 9.1.2006, 11:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 117
Регистрация: 9.11.2005
Где: 239

Репутация: нет
Всего: нет



a readln разве не после закрытия граф. режима надо писать?
PM MAIL   Вверх
volvo877
Дата 9.1.2006, 12:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2073
Регистрация: 15.11.2004

Репутация: 2
Всего: 116



Цитата(armageddon @ 9.1.2006, 10:56 Найти цитируемый пост)
readln разве не после закрытия граф. режима надо писать?
А смысл?

До закрытия - понятно, показали что-то и ждем реакции пользователя. А после закрытия графики зачем? Чтобы пользователь полюбовался пустым экраном?
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi"
THandle
Rrader
volvo877

Запрещается!

1. Обсуждать и делится взломанными компонентами или программным обеспечением

2. Публиковать ссылки на варез

3. Оффтопить

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, THandle, Rrader, volvo877.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Object Pascal: кроссплатформенные технологии | Следующая тема »


 




[ Время генерации скрипта: 0.1377 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.