Форум программистов, компьютерный форум, киберфорум
Pascal ABC
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/6: Рейтинг темы: голосов - 6, средняя оценка - 4.50
Alvin Seville
343 / 273 / 134
Регистрация: 25.07.2014
Сообщений: 4,537
Записей в блоге: 9
1

Ошибка с конструктором

08.10.2017, 09:19. Показов 1130. Ответов 7
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
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
uses ABCObjects, GraphABC;
const
  StarR = 5;
  N = 4;
 
procedure CreateFractal(x, y, x1, y1, x2, y2: real; iterations: integer);
var
  mx1, my1: real;
  mx2, my2: real;
  mx3, my3: real;
  mxA, myA: real;
  mxB, myB: real;
  mxC, myC: real;
  r2: real;
  A, B, C: StarABC;
  
begin
  mx1 := (x + x1) / 2;
  my1 := (y + y1) / 2;
  mx2 := (x1 + x2) / 2;
  my2 := (y1 + y2) / 2;
  mx3 := (x2 + x) / 2;
  my3 := (y2 + y) / 2;
 
  mxA := (x + mx1 + mx3) / 3;
  myA := (y + my1 + my3) / 3;
  mxB := (mx1 + x1 + mx2) / 3;
  myB := (my1 + y1 + my2) / 3;
  mxC := (mx2 + x2 + mx3) / 3;
  myC := (my2 + y2 + my3) / 3;
 
  if iterations > 0 then
  begin
    Dec(iterations);
    CreateFractal(x, y, mx1, my1, mx3, my3, iterations);
    CreateFractal(mx1, my1, x1, y1, mx2, my2, iterations);
    CreateFractal(mx3, my3, mx2, my2, x2, y2, iterations);
  end
  else
  begin
    r2 := Round(StarR * 0.4);
    A := StarABC.Create(Round(mxA), Round(myA), StarR, r2, N, clBlack); // Почему здесь ругается?
    A.Bordered := false;
    B := StarABC.Create(Round(mxB), Round(myB), StarR, r2, N, clRed);
    B.Bordered := false;
    C := StarABC.Create(Round(mxC), Round(myC), StarR, r2, N, clGreen);
    C.Bordered := false;
  end;
end;
 
var
  i: integer;
 
begin
  FloodFill(1, 1, clBlack);
  CreateFractal(100, 500, 100, 100, 500, 500, 5);
 
  LockDrawingObjects();
  while true do
  begin
    for i := 0 to Objects.Count - 1 do
      Objects[i].Color := clRandom();
    RedrawObjects();
    Sleep(100);
  end;
end.
Добавлено через 31 секунду
Почему ругается на строке 42?
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
08.10.2017, 09:19
Ответы с готовыми решениями:

В чем разница между конструктором по умолчанию и конструктором с параметрами?
Объясните пожалуйста в чем разница между конструктором по умолчанию и конструктором с параметрами,...

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

Ошибка с конструктором
Students::Students(UnicodeString _marks) { for (int i = 0; i < 5; i++) marks = _marks; } ...

Ошибка с конструктором
Помогите исправить ошибку в классе Save package project1; public class Project1 { ...

7
Почетный модератор
64300 / 47595 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
08.10.2017, 10:25 2
Лучший ответ Сообщение было отмечено Volobuev Ilya как решение

Решение

Pascal
1
2
3
4
5
6
7
8
9
var
  mx1, my1: real;
  mx2, my2: real;
  mx3, my3: real;
  mxA, myA: real;
  mxB, myB: real;
  mxC, myC: real;
  r2: integer;//не real!
  A, B, C: StarABC;
1
Alvin Seville
343 / 273 / 134
Регистрация: 25.07.2014
Сообщений: 4,537
Записей в блоге: 9
08.10.2017, 10:52  [ТС] 3
Pascal
1
2
  SetWindowWidth(600);
  SetWindowHeight(600);
Теперь ругается на это и пишет: неверный номер рисунка при выполнении SetDrawSurface.
0
Почетный модератор
64300 / 47595 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
08.10.2017, 10:56 4
Не знаю, в моей версии нет SetDrawSurface.
0
Alvin Seville
343 / 273 / 134
Регистрация: 25.07.2014
Сообщений: 4,537
Записей в блоге: 9
08.10.2017, 10:59  [ТС] 5
У меня версия 3.0.1.35.
0
Почетный модератор
64300 / 47595 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
08.10.2017, 11:11 6
3.3.0.1531

Добавлено через 8 минут
Я наверное не понял смысл SetDrawSurface. Приведи свой код, где вылазит ошибка
Неверный номер рисунка при выполнении SetDrawSurface
0
Alvin Seville
343 / 273 / 134
Регистрация: 25.07.2014
Сообщений: 4,537
Записей в блоге: 9
08.10.2017, 11:32  [ТС] 7
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
uses ABCObjects, GraphABC;
const
  StarR = 5;
  N = 4;
 
procedure CreateFractal(x, y, x1, y1, x2, y2: real; iterations: integer);
var
  mx1, my1: real;
  mx2, my2: real;
  mx3, my3: real;
  mxA, myA: real;
  mxB, myB: real;
  mxC, myC: real;
  r2: integer;
  A, B, C: StarABC;
 
begin
  mx1 := (x + x1) / 2;
  my1 := (y + y1) / 2;
  mx2 := (x1 + x2) / 2;
  my2 := (y1 + y2) / 2;
  mx3 := (x2 + x) / 2;
  my3 := (y2 + y) / 2;
 
  mxA := (x + mx1 + mx3) / 3;
  myA := (y + my1 + my3) / 3;
  mxB := (mx1 + x1 + mx2) / 3;
  myB := (my1 + y1 + my2) / 3;
  mxC := (mx2 + x2 + mx3) / 3;
  myC := (my2 + y2 + my3) / 3;
 
  if iterations > 0 then
  begin
    Dec(iterations);
    CreateFractal(x, y, mx1, my1, mx3, my3, iterations);
    CreateFractal(mx1, my1, x1, y1, mx2, my2, iterations);
    CreateFractal(mx3, my3, mx2, my2, x2, y2, iterations);
  end
  else
  begin
    r2 := Round(StarR * 0.4);
    A := StarABC.Create(Round(mxA), Round(myA), StarR, r2, N, clYellow);
    A.Bordered := false;
    B := StarABC.Create(Round(mxB), Round(myB), StarR, r2, N, clRed);
    B.Bordered := false;
    C := StarABC.Create(Round(mxC), Round(myC), StarR, r2, N, clGreen);
    C.Bordered := false;
  end;
end;
 
var
  i: integer;
 
begin
  SetWindowWidth(600); // Ошибка как это добавлю появляется.
  SetWindowHeight(600);  // Ошибка как это добавлю появляется.
 
  FloodFill(1, 1, clBlack);
  CreateFractal(100, 500, 100, 100, 500, 500, 5);
 
  LockDrawingObjects();
  while true do
  begin
    for i := 0 to Objects.Count - 1 do
      Objects[i].Color := clRandom();
    RedrawObjects();
    Sleep(100);
  end;
end.
0
Почетный модератор
64300 / 47595 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
08.10.2017, 11:55 8
Странно, но у меня никакой ошибки нет, все работает.

Добавлено через 3 минуты
Да и не должны эти строки вызывать никакие ошибки, это просто устанавливается размер окна.
0
08.10.2017, 11:55
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
08.10.2017, 11:55
Помогаю со студенческими работами здесь

Ошибка с конструктором копирования
В коде в строках 59 и 60 компилятор выдает ошибку:#include<iostream> #include<conio.h> ...

Ошибка при работе с конструктором WinForms
Возникла такая проблема. Я создал проект WinForms, все работает, компиляция проходит, но при...

Ошибка инициализации объекта, конструктором класса
Добрый день. Написал программу. Создание класса (упражнение из книги Дейтеля) "Создайте класс...

Ошибка при создании формы с собственным конструктором. Автоприведение типов.
Вечер добрый, помогите исправить ошибку. С++ Builder 6.0 Создаю дополнительные конструкторы в...

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

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


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru