Форум программистов, компьютерный форум, киберфорум
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.66/29: Рейтинг темы: голосов - 29, средняя оценка - 4.66
JerseyDK

Ошибка компиляции Паскаль

17.03.2012, 18:06. Показов 5468. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Вот программа которая правым удаление удаляет максимальную вершину с некоторым условием.
Free Pascal IDE (2.6 вроде)
Входные данные
tst.in содержит последовательность ключей дерева.
Выходные данные
tst.out содержит массив вершин, полученный !!прямым левым обходом итогового дерева.
Пример
tst.in
50 40 60 30 45 55 70 2735 46 65 62 68 30
tst.out
50 40 30 27 35 45 46 60 55 65 62 68
но суть не в этом. вот главное:
Ошибка компиляции:
Indentifier not found "AssignFile" -- 243 строка 13 символ
Indentifier not found "CloseFile" -- 252 строка \ 12 символ
Indentifier not found "AssignFile" -- 266 строка 13 символ
Indentifier not found "CloseFile" -- 269 строка \ 12 символ


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
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
 program Reverse;
 
{$APPTYPE CONSOLE}
 
uses
  SysUtils;
 
const
 NumberMax=10000;
 
type
 PTreeNode=^TTreeNode;
 TTreeNode=record
  Key    : integer;     //???
  L      : byte;
  R      : byte;
  All    : byte;
  Father : PTreeNode; {указатель на отца}
  LSon   : PTreeNode; {указатель на левого сына}
  RSon   : PTreeNode; {указатель на правого сына}
 end;
 TTree=record
  Root   : PTreeNode;
 end;
 Mas=array [1..2,1..NumberMax] of integer;   //???
 
var
 Tree    : TTree;
 f_in,
 f_out   : TextFile;
 count,
 i,
 val     : byte;
 massiv  : Mas;
 number  : integer;
 
 procedure Create(var T : TTree); {создание дерева}
  begin
   T.Root:=NIL;
  end;
 
 procedure Visit(var f : TextFile; N : PTreeNode); {прямой левый обход дерева с записью ключей вершин в файл}
  begin
   if N=NIL then
    exit;
   writeln(f,N^.Key);
   Visit(f,N^.LSon);
   Visit(f,N^.RSon);
  end;
 
procedure Destroy(var T : TTree); {уничтожение дерева}
 procedure Round(var N : PTreeNode); {обратный обход дерева}
  begin
   if N=NIL then
    exit;
   Round(N^.LSon);
   Round(N^.RSon);
   Dispose(N);
  end; {Round}
 begin
  Round(T.Root);
  T.Root:=NIL;
 end;
 
function Find(T : TTree; Number : integer; var N : PTreeNode) : boolean;  //???
  {при удачном поиске функция возвращает true,а параметр N содержит
   указатель на найденную вершину;при неудачном поиске функция
   возвращает false,а параметр N содержит указатель на вершину,
   на которой завершился поиск;при попытке поиска в пустом дереве
   параметр N содержит NIL}
 var
  P : PTreeNode;
 begin
  N:=NIL;
  P:=T.Root;
  while true do
   begin
    if P=NIL then
     begin
      Find:=false;
      exit;
     end;
    N:=P;
    if P^.Key=Number then
     begin
      Find:=true;
      exit;
     end;
    if P^.Key>Number then
     P:=P^.LSon
    else
     P:=P^.RSon;
   end;
 end;
 
function Insert(var T : TTree; Number : integer) : boolean;  //???
{вставка элемента по значению в бинарное поисковое дерево;
 функция возвращает false при обнаружении дубликата}
 var
  N,
  P  : PTreeNode;
 begin
  if Find(T,Number,N) then
   begin {нашли дубликат}
    Insert:=false;
    exit;
   end;
  Insert:=true;
  New(P);
  P^.Key:=Number;
  if N=NIL then
   begin {вставка первого элемента в пустое дерево}
    T.Root:=P;
    P^.Father:=NIL;
   end
  else
   begin
    P^.Father:=N;
    if N^.Key<Number then
     N^.RSon:=P
    else
     N^.LSon:=P;
   end;
 end;
 
function Delete(var  T : TTree; Number : integer) : boolean;  //???
{удаление элемента по значению из бинарного поискового дерева;
 функция возвращает false при неудачном удалении}
 var
  N,
  P   :  PTreeNode;
  procedure DeleteNode(P : PTreeNode);
  {удаление вершины,имеющей не более одного сына}
   var
    Q : PTreeNode;
    begin
     if P^.LSon<>NIL then
      Q:=P^.LSon
     else
      Q:=P^.RSon;
     if Q<>NIL then
      Q^.Father:=P^.Father;
     if P^.Father=NIL then
      T.Root:=Q
     else
      if (P^.Father)^.LSon=P then
       (P^.Father)^.LSon:=Q
      else
       (P^.Father)^.RSon:=Q;
       Dispose(P);
    end; {DeleteNode}
 begin
  if not Find(T,Number,N) then
   begin {не нашли удаляемый элемент}
    Delete:=false;
    exit;
   end;
  Delete:=true;
  if (N^.LSon<>NIL) and (N^.RSon<>NIL) then
   begin
    P:=N^.RSon;
    while P^.LSon<>NIL do
     P:=P^.LSon;
    N^.Key:=P^.Key;
    DeleteNode(P);
   end
  else
   DeleteNode(N);
 end;
 
procedure ReverseFindSons(var  N : PTreeNode);
 procedure Solve(var  N : PTreeNode);
  begin
   if N^.LSon=NIL then
    N^.L:=0
   else
    N^.L:=(N^.LSon)^.All+1;
   if N^.RSon=NIL then
    N^.R:=0
   else
   N^.R:=(N^.RSon)^.All+1;
   N^.All:=N^.L+N^.R;
   val:=val+1;
   massiv[1,val]:=abs(N^.L-N^.R);
   massiv[2,val]:=N^.Key;
  end;
 begin
  if N<>NIL then
   begin
    ReverseFindSons(N^.LSon);
    ReverseFindSons(N^.RSon);
    Solve(N);
   end;
 end;
 
{function KeyMaximum(Number : byte) : byte;
 var
  max,
  i,
  Key     : byte;
 begin
  max:=massiv[1,1];
  Key:=massiv[2,1];
  for i:=2 to Number do
   if massiv[1,i]>max then
     begin
      max:=massiv[1,i];
      Key:=massiv[2,i];
     end;
  KeyMaximum:=Key;
 end;}
 
function KeyMaximum(Number : byte) : integer; //???
 var
  max,
  i           : byte;
  CurMaxKey,
  Value       : integer;    //???
 begin
  max:=massiv[1,1];
  CurMaxKey:=massiv[2,1];
  for i:=2 to Number do
   if massiv[1,i]>max then
    begin
     max:=massiv[1,i];
     CurMaxKey:=massiv[2,i];
    end;
  for i:=1 to Number do
   if massiv[1,i]=max then
    begin
     Value:=massiv[2,i];
     if Value>CurMaxKey then
      CurMaxKey:=Value;
    end;
  KeyMaximum:=CurMaxKey;
 end;
 
begin
  Create(Tree);
  AssignFile(f_in,ExpandUNCFileName('tst.in'));
  Reset(f_in);
  count:=0;
  while not EOF(f_in) do
   begin
    readln(f_in,number);
    if Insert(Tree,number)=true then
     count:=count+1;
   end;
  CloseFile(f_in);
  val:=0;
  ReverseFindSons(Tree.Root);
  {t:=massiv[1,1];
  k:=1;
  for i:=2 to count do
   if massiv[1,i]=t then
    k:=k+1;}
  {if k=count then
   writeln('There is no such summit in this binary searching tree.')
  else
   Delete(Tree,KeyMaximum(count));}
  //if k<>count then
   Delete(Tree,KeyMaximum(count));
  AssignFile(f_out,ExpandUNCFileName('tst.out'));
  Rewrite(f_out);
  Visit(f_out,Tree.Root); //  прямой левый обход получившегося дерева с записью ключей вершин в файл
  CloseFile(f_out);
  Destroy(Tree);          //  уничтожение получившегося дерева
end.
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
17.03.2012, 18:06
Ответы с готовыми решениями:

Ошибка компиляции
Ребят такая вот фигня:прогу написал,но пишет что Compilation aborted. Почему не компилирует?подскажите пожалуйста

Ошибка компиляции
Люди помогите исправить ошибку копмипляции. В компиляторе пишет такое Runtime error 106 at 000:00B6 X=0.00000000E+06. Вот текст программы...

Ошибка при компиляции
Надо что б считало етот пример,вот что у меня получилось,но выдает ошибку,перед етим выхзодила компиляция но при вводе чисел заместь ответа...

1
Почетный модератор
 Аватар для Puporev
64314 / 47610 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
17.03.2012, 18:17
В Паскале нужно просто
Pascal
1
2
assign(f);
close(f);
Добавлено через 1 минуту
Программа же написана в консоли Делфи.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
17.03.2012, 18:17
Помогаю со студенческими работами здесь

Ошибка в при компиляции.
program summa_ab; uses crt; var a, b, rezult : integer; BEGIN clrscr

Ошибка при компиляции
Помогите исправить ошибку ввода при компиляции, программа на составление уравнения методом итераций при a=-0.5, b=-1. вот текст: ...

Развилки, ошибка компиляции
Вот само задание: Дано l, m, n. Если l&lt;m, вычислить и отпечатать t=\begin{cases}\ln (1+n) &amp; \text{, npu } n&gt;\,2 \\\\...

паскаль, ошибка 105...
Общее условие:Заполнение массива случайными целыми значениями из диапазона - 50 до 50 . Размеры массива м или n взять постоянными, равными...

Турбо Паскаль ошибка 201
Ребят, помогите. Я работаю в Турбо Паскале (первый раз, до этого пользовалась АВС Паскалем), в общем.. написала программу, компиляция...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru