Форум программистов, компьютерный форум, киберфорум
Pascal ABC
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
0 / 0 / 1
Регистрация: 01.07.2016
Сообщений: 20

Ошибка в построении

04.01.2017, 23:16. Показов 1081. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Прошу помочь. В чем ошибка? Программа утолщает линии, а нужно, чтобы она самостоятельно строила такие же деревья независимо от месторасположения.
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
Program RA_EXAM;
uses VCL, utils;
var   MainForm: Form;
      e: PaintBox;
      P: Panel;
      i,x,y: integer;
      l: textlabel;
      se,se1: SpinEdit;
      b1,b2 : Button;
      A1,A2 :integer;
      const XX = 640;
            YY = 500;
            
procedure read_file;
var t:text;
begin
end;
 
procedure Draw;
var i,x,y: integer;
begin
read_file;
e.Pen.Width:= se1.Value;
//небо
if A1 = 1 then A1:= clAqua
else A1:= clBlue;
e.Pen.Color:= A1;
e.Brush.Color:=A1;
e.Brush.Style:=bsSolid;
e.rectangle(0,0,640,480);
//трава
e.Pen.Color:=clGreen;
e.Brush.Color:=clGreen;
e.Brush.Style:=bsSolid;
e.Circle(250, 670, 400);
e.Circle(550, 570, 300);
//деревья
e.Pen.Color:=clBlack;
e.Brush.Color:=clBlack;
e.Brush.Style:=bsSolid;
e.rectangle(400, 250, 420, 350);
e.Pen.Color:=clGreen;
e.Brush.Color:=clGreen;
e.Brush.Style:=bsSolid;
e.Circle(400, 260, 30);
e.Circle(420, 260, 30);
e.Circle(390, 240, 30);
e.Circle(430, 240, 30);
e.Circle(410, 220, 30);
end;
 
 
 
 
 
procedure B1Click;
begin
  MainForm.Close;
end;
 
procedure B2Click;
begin
execute('hh.exe help.chm');
end;
 
 
BEGIN
read_file;
 
MainForm:=Form.Create (350,200,XX+120,YY);
MainForm.Caption:=' ';
 
p:=Panel.Create;
p.Width:=120;
p.Align:=alLeft;
 
B1:=Button.Create (p,0,YY-90,p.Width,40);
B1.Caption:='Закрыть программу';
B1.OnClick:=b1Click;
 
l:=TextLabel.Create(p,10,70,'Количество: ');
se1:=SpinEdit.Create(p,20,95,60,20);
se1.Min:=1;
se1.Max:=10;
se1.Value:=A2;
B2:=Button.Create (p,0,YY-125,p.Width,25);
B2.Caption:='Справка';
B2.OnClick:=B2Click;
 
e:=PaintBox.Create(p.width,0,screen.width,screen.height);
Draw;
 se1.OnChange:=Draw;
end.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
04.01.2017, 23:16
Ответы с готовыми решениями:

Ошибка в построении
Еще одна задача, в которой нужно разобраться. Как сделать так, чтобы кораблик закрашивался, а море не пропадало? Program RA_EXAM; ...

Ошибка при построении графика
помогите найти ошибки, график не хочет строиться uses GraphABC; function F(a:real):real; var x,dx,b,c:real; begin dx:=1; ...

Ошибка при построении графика
Народ подскажите ,пожалуйста,почему выскакивает ошибка(( Invalid Floating Operation Заранее благодарю Вас! это программа построения...

3
Почетный модератор
 Аватар для Puporev
64314 / 47610 / 32743
Регистрация: 18.05.2008
Сообщений: 115,168
05.01.2017, 08:47
Лучший ответ Сообщение было отмечено Getheur как решение

Решение

В код сильно не лез, ну например так.
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
Program RA_EXAM;
uses VCL, utils;
var   MainForm: Form;
      e: PaintBox;
      P: Panel;
      i,x,y: integer;
      l: textlabel;
      se,se1: SpinEdit;
      b1,b2 : Button;
      A1,A2 :integer;
      const XX = 640;
            YY = 500;
 
procedure read_file;
var t:text;
begin
end;
 
procedure Fon;
var i,x,y: integer;
begin
read_file;
e.Pen.Width:= se1.Value;
//небо
if A1 = 1 then A1:= clAqua
else A1:= clBlue;
e.Pen.Color:= A1;
e.Brush.Color:=A1;
e.Brush.Style:=bsSolid;
e.rectangle(0,0,640,480);
//трава
e.Pen.Color:=clGreen;
e.Brush.Color:=clGreen;
e.Brush.Style:=bsSolid;
e.Circle(250, 670, 400);
e.Circle(550, 570, 300);
end;
procedure Tree;
//деревья
begin
e.Pen.Color:=clBlack;
e.Brush.Color:=clBlack;
e.Brush.Style:=bsSolid;
x:=x+75;
repeat
y:=300+random(200);
until e.GetPixel(x,y)=clGreen;
e.rectangle(x-10, y-100, x+10, y);
e.Pen.Color:=clGreen;
e.Brush.Color:=clGreen;
e.Brush.Style:=bsSolid;
e.Circle(x, y-90, 30);
e.Circle(x+20, y-90, 30);
e.Circle(x-10, y-110, 30);
e.Circle(x+30, y-110, 30);
e.Circle(x+10, y-130, 30);
end;
 
procedure B1Click;
begin
  MainForm.Close;
end;
 
procedure B2Click;
begin
execute('hh.exe help.chm');
end;
 
 
BEGIN
read_file;
 
MainForm:=Form.Create (150,200,XX+120,YY);
MainForm.Caption:=' ';
 
 
p:=Panel.Create;
p.Width:=120;
p.Align:=alLeft;
 
B1:=Button.Create (p,0,YY-90,p.Width,40);
B1.Caption:='Закрыть программу';
B1.OnClick:=b1Click;
 
l:=TextLabel.Create(p,10,70,'Количество: ');
se1:=SpinEdit.Create(p,20,95,60,20);
se1.Min:=0;
se1.Max:=8;
se1.Value:=A2;
B2:=Button.Create (p,0,YY-125,p.Width,25);
B2.Caption:='Справка';
B2.OnClick:=B2Click;
 
e:=PaintBox.Create(p.width,0,screen.width,screen.height);
Fon;
se1.OnChange:=Tree;
end.
1
0 / 0 / 1
Регистрация: 01.07.2016
Сообщений: 20
05.01.2017, 11:15  [ТС]
Большое спасибо. А как реализовать, чтобы он уменьшении он ничего не строил? И когда счетчик = 8 и пытаешься понизить значение, то программа зависает.
0
Почетный модератор
 Аватар для Puporev
64314 / 47610 / 32743
Регистрация: 18.05.2008
Сообщений: 115,168
05.01.2017, 12:02
Лучший ответ Сообщение было отмечено Getheur как решение

Решение

Попробуй так.
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
var k:integer;
........................
procedure Tree;
//деревья
begin
if (se1.value>k)and(k<8) then
begin
e.Pen.Color:=clBlack;
e.Brush.Color:=clBlack;
e.Brush.Style:=bsSolid;
x:=x+75;
repeat
y:=300+random(200);
until e.GetPixel(x,y)=clGreen;
e.rectangle(x-10, y-100, x+10, y);
e.Pen.Color:=clGreen;
e.Brush.Color:=clGreen;
e.Brush.Style:=bsSolid;
e.Circle(x, y-90, 30);
e.Circle(x+20, y-90, 30);
e.Circle(x-10, y-110, 30);
e.Circle(x+30, y-110, 30);
e.Circle(x+10, y-130, 30);
k:=se1.value;
end;
end;
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
05.01.2017, 12:02
Помогаю со студенческими работами здесь

Ошибка топологии, ошибка при построении разреза
Добрый день. Кто-то сталкивался с данной проблемой и как решать? При построении достаточно сложной модели литьевой детали не возникает...

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

Ошибка в построении графика
Строю функции Хаара, когда количество отсчётов беру 10001 clc a=0; b=1; l=0; n=1; h=0.0001; i=1; t=0; for t=a:h:b; x(i)=t; ...

Ошибка в построении графика
Доброго времени суток господа знатоки.Пытаюсь построить график но он выдает ошибку &quot;Все вычисления привели или к ошибке или к...

Ошибка при построении
Вот такая проблема, лишних слов она не нуждается, просто скажите почему не получается.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru