Форум программистов, компьютерный форум, киберфорум
PascalABC.NET
Войти
Регистрация
Восстановить пароль
Другие темы раздела
PascalABC.NET Этот код слишком кривой? https://www.cyberforum.ru/ pascalabc-net/ thread2004667.html
unit Graph; uses GraphABC; const Radius = 5; type ///Location object Location = class
Ускоряет ли выполнение программы запоминание длины массива? PascalABC.NET
Верно ли я полагаю, что чем длиннее массив, тем дольше работает функция Length()? Будет ли следующий код оптимизацией в некотором смысле? l := Length(Vertexes); SetLength(Vertexes, l + 1); Vertexes := v;
PascalABC.NET Перевести код Pascal turbo в abc.net https://www.cyberforum.ru/ pascalabc-net/ thread2004551.html
Помогите перевести код Pascal turbo в abc.net, сам не могу так как не обладаю нужными знаниями. uses graph; var x,y: integer; gd,gm:integer; gp:string; errcode:integer; i,n,k:integer; a:string;
PascalABC.NET Как считывать нажатия клавиш клавиатуры? Как считывать нажатия клавиш клавиатуры с активным окном программы с graphabc? https://www.cyberforum.ru/ pascalabc-net/ thread2004542.html
Как переделать массив в изображение PascalABC.NET
В текстовом файле есть двумерный массив. Можно ли (и как) переконвертировать его в изображение, где каждая ячейка массива = 1 пикселю? И обратный процесс тоже интересует. Можно ли (и как) перегнать изображение в двумерный массив?
PascalABC.NET Как сделать на паскале разделение программы на файлы? https://www.cyberforum.ru/ pascalabc-net/ thread2004459.html
Недавно начал учить pascal и тут появилась потребность разбить программу на несколько файлов из-за ее громоздкости. Например: В файле main.pas Если choose = 1, тогда запустить программу из файла intro.pas Если choose = 2, тогда запустить программу из файла minigame.pas P.S.: Никаких переменных из подпрограмм выводить в основную не нужно
PascalABC.NET Запись в файл var t:text; begin assign(t,'kj.txt'); rewrite(t); for a:integer:=1 to 1000 do for b:integer:=1 to 1000 do writeln(t,random(1,999)); end. Если я правильно думаю, этот код должен записать 1000000 строк чисел в файл kj.txt Но он записывает примерно 999ххх строк. https://www.cyberforum.ru/ pascalabc-net/ thread2004368.html Вычислить и вывести значения периметров 30 прямоугольников при различных значениях их сторон (А>0 и В>0), ввод PascalABC.NET
Вычислить и вывести значения периметров 30 прямоугольников при различных значениях их сторон (А>0 и В>0), вводимых с клавиатуры.
PascalABC.NET Написать программу вывода на экран таблицы значений Y: Y=X2+1 Для всех значений X от 0 до 2 с интервалом 0,25 Написать программу вывода на экран таблицы значений Y: Y=X2+1 Для всех значений X от 0 до 2 с интервалом 0,25. https://www.cyberforum.ru/ pascalabc-net/ thread2004188.html PascalABC.NET Написать программу вывода на экран кубов всех целых чисел от – 5 до 12 Написать программу вывода на экран кубов всех целых чисел от – 5 до 12. https://www.cyberforum.ru/ pascalabc-net/ thread2004186.html
Вычислить и вывести значения площадей 40 квадратов при различных значениях их сторон (А>0), вводимых с клавиат PascalABC.NET
Вычислить и вывести значения площадей 40 квадратов при различных значениях их сторон (А>0), вводимых с клавиатуры.
PascalABC.NET Составить программу вывода на экран удвоенных значений целых чисел от 5 до 15 https://www.cyberforum.ru/ pascalabc-net/ thread2004181.html
Составить программу вывода на экран удвоенных значений целых чисел от 5 до 15.
Alvin Seville
343 / 273 / 134
Регистрация: 25.07.2014
Сообщений: 4,537
Записей в блоге: 9
16.06.2017, 15:01  [ТС] 0

Как добавлять и удалять элементы из очереди? - PascalABC.NET - Ответ 10550045

16.06.2017, 15:01. Показов 1010. Ответов 11
Метки (Все метки)

Ответ

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
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
unit Graph;
 
uses GraphABC;
 
const
  Radius = 5;
 
type
  ///Location object
  Location = class
  private 
    dx, dy: integer;
    
    function XpositionRead()  := dx;
    
    function YpositionRead()  := dy;
    
    procedure XpositionWrite(v: integer);
    begin
      dx := v;
    end;
    
    procedure YpositionWrite(v: integer);
    begin
      dy := v;
    end;
  
  public 
    constructor(x, y: integer);
    begin
      dx := x;dy := y;
    end;
    
    ///X
    property Xposition: integer read XpositionRead write XpositionWrite;
    ///Y
    property Yposition: integer read YpositionRead write YpositionWrite;
  end;
  
  
  ///Graph's vertex
  GraphVertex = class
  private 
    p: Location;
    n: string;
    marked: boolean;
    Lev: integer;
    function PositionRead()  := p;
    
    procedure PositionWrite(v: Location);
    begin
      p := v;
    end;
    
    function NameRead()  := n;
    
    procedure NameWrite(v: string);
    begin
      n := v;
    end;
    
    function IsMarkedRead()  := marked;
    
    procedure IsMarkedWrite(v: boolean);
    begin
      marked := v;
    end;
    
    function LevelRead()  := Lev;
    
    procedure LevelWrite(v: integer);
    begin
      Lev := v;
    end;
  
  public 
    ///List of linked vertexes
    Vertexes: array of GraphVertex;
    
    constructor(x, y: integer);
    begin
      p := new Location(x, y); marked:=false;
    end;
    
    ///Position of the vertex
    property Position: Location read PositionRead write PositionWrite;
    ///Vertex'es name
    property Name: string read NameRead write NameWrite;
    ///The vertex is marked
    property IsMarked: boolean read IsMarkedRead write IsMarkedWrite;
    ///Level value (for DFS and other seaching algorithms)
    property Level: integer read LevelRead write LevelWrite;
    
    ///Draw free vertex
    procedure Draw(v: GraphVertex);
    begin
      SetPenColor(clBlack);
      SetPenWidth(1);
      SetBrushColor(clRed);
      FillCircle(v.Position.Xposition, v.Position.Yposition, Radius);
      DrawCircle(v.Position.Xposition, v.Position.Yposition, Radius);
      SetBrushColor(ARGB(0, 0, 0, 0));
      TextOut(v.Position.Xposition + 10, v.Position.Yposition + 10, v.Name+' L:'+IntToStr(Lev));
    end;
    
    ///Draw all vertexes, those are liked to the current vertex.
    procedure DrawLinked();
    begin
      for var i := 0 to Length(Vertexes) - 1 do Draw(Vertexes[i]);
    end;
    
    ///Draw vertex
    procedure DrawSelf() := Draw(self);
    
    ///Draw all lines those connect the current vertex to the others
    procedure DrawLines();
    begin
      Draw(self);
      for var i := 0 to Length(Vertexes) - 1 do
        if Vertexes[i] <> nil then
          Line(self.Position.Xposition, self.Position.Yposition, self.Vertexes[i].Position.Xposition, self.Vertexes[i].Position.Yposition);
    end;
    
    ///Add new vertex
    procedure AddVertex(v: GraphVertex);
    begin
      SetLength(Vertexes, Length(Vertexes) + 1);
      Vertexes[Length(Vertexes) - 1] := v;
    end;
    
    ///Add new vertex in any array
    class procedure AddVertex(var a: array of GraphVertex; v: GraphVertex);
    begin
      SetLength(a, Length(a) + 1);
      a[Length(a) - 1] := v;
    end;
    
    ///Replace the first vertex with the second one
    procedure ResetVertex(v, v2: GraphVertex);
    var
      l, i: integer;
    begin
      l := Length(Vertexes);
      i := 0;
      while (i < l) and (Vertexes[i] <> v) do Inc(i);
      Vertexes[i] := v2;
    end;
    
    ///Replace the first vertex with the second one in any array
    procedure ResetVertex(var a: array of GraphVertex; v, v2: GraphVertex);
    var
      l, i: integer;
    begin
      l := Length(a);
      i := 0;
      while (i < l) and (a[i] <> v) do Inc(i);
      a[i] := v2;
    end;
    
    ///Get vertex by it's id (name).
    class function GetVertex(a: array of GraphVertex; id: string): GraphVertex;
    var
      l, i: integer;
    begin
      l := Length(a);
      i := 0;
      while (i < l) and (a[i].Name <> id) do Inc(i);
      if i < l then GetVertex := a[i] else GetVertex := nil;
    end;
    
    ///Get all marked (not marked) vertexes from Vertexes.
    function GetMarkedVertexes(t: boolean): array of GraphVertex;
    var
      a: array of GraphVertex;
    begin
      for var i := 0 to Length(Vertexes) - 1 do
        if Vertexes[i].IsMarked = t then AddVertex(a, Vertexes[i]);
      GetMarkedVertexes := a;
    end;
  end;
end.
Код модуля.

Вернуться к обсуждению:
Как добавлять и удалять элементы из очереди? PascalABC.NET
0
Заказать работу у эксперта
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.06.2017, 15:01
Готовые ответы и решения:

Добавлять/удалять элементы с разных концов очереди
Как создать очередь в си и работать с ней? Необходимо добавлять/удалять элементы с разных концов

Как правильно добавлять и удалять элементы в вектор и из него
Всем доброго времени суток. Прошу объяснить как правильно добавлять и удалять элементы в вектор и...

Как во время работы программы добавлять и удалять элементы, pictureBox в том числе?
Как во время работы программы нажимая на button добавлять в форму группы элементов, чтобы новая...

Описать класс «множество», позволяющий добавлять и удалять элементы
Всем доброго времени суток, нужна небольшая помощь, void set(int fir, int sec, int thir,int...

11
16.06.2017, 15:01
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.06.2017, 15:01
Помогаю со студенческими работами здесь

Создать файл, в который можно добавлять, редактировать и удалять элементы структуры
По заданию нужно создать файл, в который можно добавлять, редактировать и удалять элементы...

Как удалять и добавлять вертексы в шейдер?
Всё копаюсь с морфингом. Есть необходмость в определённые момент добавлять некоторые НОВЫЕ грани в...

Как в datagrid добавлять и удалять колонки
Как можно сделать динамическое добавление и удаление колонок в datagrid? В devexpress есть...

Как динамически добавлять/удалять страницы ViewPager
Добрый день Всем! как можно добавлять и удалять страницы во ViewPager? пытаюсь делать так: ...

0
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru