Перейти на главную страницу сайта
Сделать закладку на наш сайтСделать ЧКС стартовой страницейНаписать письмо в администрацию ЧКС

( | )

 
Ответить в эту темуОткрыть новую тему
Pascal
V
archangel
19.11.2007, 20:41
#1


Домовой


Администратор
3688
24-December 06
Chuguev
3008



Вот у меня проблемма с написанием проги с использованием модуля Graph. Вот часть программы. Скажите в чём ошибка.

program viziol;
  uses crt,graph;
  var gd,gm:integer;
begin
  initgraph(gd,gm,'');
  setbkcolor(blue);
  setcolor(red);
  setfillstyle(1,green);
  line(70,80,320,80);
  line(70,80,210,180);
  line(210,180,320,80);
  line(70,80,262,132);
  setfillstyle(1,red);
  floodfille(300,90,red);
  outtextxy (100,200,'Фигура');
  readkey;
end.




--------------------

P.S. Искренне Ваш Вячеслав
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
powerslave
19.11.2007, 21:48
#2


Заcлуженный постер
***********

ЧKС
1812
29-July 05
Україна, Харків
305



Сходу подумалось, что у тебя библиотеки где-то не там лежат.
А вообще надо было написать в какой строке выдает ошибку.

Поставь после initgraph такую карлючку
H:=GraphResult;
И если я правильно помню инфо об ошибке вызывалось так: GraphErrorMsg(H);



--------------------
Клявіятурте розум,почуття і волю
клявіятурте!

Не хватайте озлоблених у тюрми: вони
самі
собі тюрма.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
archangel
19.11.2007, 22:30
#3


Домовой


Администратор
3688
24-December 06
Chuguev
3008



Вот я нашёл ошибки, но не добился желаемого результата.

текст программы:
program viziol;
  uses crt,graph;
  var gd,gm:integer;
begin
  clrscr;
  initgraph(gd,gm,'');
  setbkcolor(10);
  setcolor(red);
  setfillstyle(1,green);
  line(70,80,320,80);
  line(70,80,210,180);
  line(210,180,320,80);
  line(70,80,262,132);
  setfillstyle(1,red);
  setcolor(green);
  FloodFill(300,90,red);
  setcolor(green);
  FloodFill(120,100,green);
  SetTextStyle(0,0,2);
  outtextxy (100,200,'Mediana');
  readkey;
end.


А задание у меня такое: Нарисовать произвольный треугольни. Посторить медиану острого угла. Полученные половинки треугольника покрасить разными цветами. Под треугольником сделать надпись "Mediane" шрифтом DefaultFont.

Я смог нарисовать треугольник и надпись под ним. Но когда я стал закрышивать, то у меня получилась следующая картина. Когда я закрашиваю одну часть треугольника, всё работает нормально, но когда начинает закрашиваться вторая часть, весь экран заливается красным цветом.



--------------------

P.S. Искренне Ваш Вячеслав
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
powerslave
20.11.2007, 10:22
#4


Заcлуженный постер
***********

ЧKС
1812
29-July 05
Україна, Харків
305



тю, так это известная ошибка, где-то просто пролазит заливка через дырявую границу - нарисуй еще одну линию под косой стороной - дожно помочь.


--------------------
Клявіятурте розум,почуття і волю
клявіятурте!

Не хватайте озлоблених у тюрми: вони
самі
собі тюрма.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
archangel
20.11.2007, 18:01
#5


Домовой


Администратор
3688
24-December 06
Chuguev
3008



Ну попробовать конечно можно, хотя врятли поможет.


--------------------

P.S. Искренне Ваш Вячеслав
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
powerslave
20.11.2007, 18:14
#6


Заcлуженный постер
***********

ЧKС
1812
29-July 05
Україна, Харків
305



(Arhangel @ 20.11.2007, 18:01) *
Ну попробовать конечно можно, хотя врятли поможет.

ничего у меня есть еще много идей smile.gif


--------------------
Клявіятурте розум,почуття і волю
клявіятурте!

Не хватайте озлоблених у тюрми: вони
самі
собі тюрма.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
archangel
20.11.2007, 18:38
#7


Домовой


Администратор
3688
24-December 06
Chuguev
3008



Ну вот как я и говорил. Как бы я не менял параметры треугольника, всеравно получается одно и тоже. Значит ошибка где-то в коде. Но вот где.

Ещё одно. Если я рисую трегольник не красным как раньше а белым или любым другим цветом, то уже с первой же половины начинает закрашиваться весь экран.


--------------------

P.S. Искренне Ваш Вячеслав
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
powerslave
20.11.2007, 19:30
#8


Заcлуженный постер
***********

ЧKС
1812
29-July 05
Україна, Харків
305



Одна идейка - во FloodFill третий аргумент цвет границы - я так понимаю граница у тебя красная.
Смени-ка там green на red, а цвет заливки меняется в SetFillstyle задается.
Если не получиться завтра отвечу.


--------------------
Клявіятурте розум,почуття і волю
клявіятурте!

Не хватайте озлоблених у тюрми: вони
самі
собі тюрма.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
archangel
20.11.2007, 19:52
#9


Домовой


Администратор
3688
24-December 06
Chuguev
3008



Так та оно работает, только вот врорую часть треугольника мне надо закрасить не в красный а в какой-нибудь другой цвет.


--------------------

P.S. Искренне Ваш Вячеслав
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
Vedmak
20.11.2007, 20:40
#10


Я не читатель, я писатель!
*******

ЧKС
371
15-February 07
3934



Нда, зря школьников путают. У нас в школе для изучения паскаля стоял Algo.
Там эта задача выглядит так:
Program viziol;
Begin
  Clear;
  Brush(1,0,0,0);
  Fill(0,0);
  Pen(1,255,0,0);
  Line(70,80,320,80);
  Line(70,80,210,180);
  Line(210,180,320,80);
  Line(70,80,262,132);
  Brush(1,0,255,0);
  Fill(300,90);
  Brush(1,0,0,255);
  Fill(120,100);
  MoveTo(100,200);
  Write('Mediana');
  ReadLn;
end.

или так:
Програма viziol;
Початок
  Витерти;
  Пензлик(1,0,0,0);
  Заповнити(0,0);
  Олівець(1,255,0,0);
  Лінія(70,80,320,80);
  Лінія(70,80,210,180);
  Лінія(210,180,320,80);
  Лінія(70,80,262,132);
  Пензлик(1,0,255,0);
  Заповнити(300,90);
  Пензлик(1,0,0,255);
  Заповнити(120,100);
  Позиція(100,200);
  Вивести('Mediana');
  ВвестиР;
кінець.


Согласитесь, что для школьника так намного понятнее wink.gif Им ведь надо только основы понять, а писать реальные програмки им всеравно ни к чему.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
archangel
20.11.2007, 20:45
#11


Домовой


Администратор
3688
24-December 06
Chuguev
3008



(Vedmak @ 20.11.2007, 21:40) *
Нда, зря школьников путают. У нас в школе для изучения паскаля стоял Algo.
Там эта задача выглядит так:
Program viziol;
Begin
  Clear;
  Brush(1,0,0,0);
  Fill(0,0);
  Pen(1,255,0,0);
  Line(70,80,320,80);
  Line(70,80,210,180);
  Line(210,180,320,80);
  Line(70,80,262,132);
  Brush(1,0,255,0);
  Fill(300,90);
  Brush(1,0,0,255);
  Fill(120,100);
  MoveTo(100,200);
  Write('Mediana');
  ReadLn;
end.


При компиляции этого кода мой FreePascal обнаружил 23 ошибки.


--------------------

P.S. Искренне Ваш Вячеслав
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
Vedmak
20.11.2007, 22:06
#12


Я не читатель, я писатель!
*******

ЧKС
371
15-February 07
3934



Я же говорил, что он для Algo. Там очень упрощенная версия паскаля. Специально для изучения основных принципов программирования. Естественно он не будет работать на FreePascal или чемто подобном.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
powerslave
21.11.2007, 08:52
#13


Заcлуженный постер
***********

ЧKС
1812
29-July 05
Україна, Харків
305



(Arhangel @ 20.11.2007, 19:52) *
Так та оно работает, только вот врорую часть треугольника мне надо закрасить не в красный а в какой-нибудь другой цвет.

Какой-нибудь другой цвет задается не во FloodFill, а во SetFillStyle.
Ты пробуй, а идей у меня еще много smile.gif


--------------------
Клявіятурте розум,почуття і волю
клявіятурте!

Не хватайте озлоблених у тюрми: вони
самі
собі тюрма.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения

Ответить в эту темуОткрыть новую тему
()

 

: · ·

· · ·

RSS : 26th April 2024 - 13:39