Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.12.2010, 05:21   #1
Марат05
Пользователь
 
Регистрация: 07.12.2010
Сообщений: 72
По умолчанию Задача дв.Массивы в Делфи!

Условие: Двумерный динамический массив заполняется из текстового файла, 4 строки должны сортироваться по значению 1-го столбца и результат вывести в новом текстовом файле!
Мой код:
program Project1;

{$APPTYPE CONSOLE}

uses
SysUtils;
type myarray=array of array of integer;
var f1,f2:textfile;
B:set of 0..255;
Procedure Init;
begin
assignfile(f1,'file1.txt');Reset (f1);
assignfile(f2,'file2.txt'); ReWrite (f2);
While not eof(f1)do
end;
Procedure Sort(N:integer; Var A:myarray);
var i,j,k,m:integer;
begin
For i:=N DownTo 2 do
begin
for j:=1 to i-1 do
if A[j]>m Then
begin
k:=j; m:=A[j]
End;
if k<>i Then
begin
A[k]:=A[i]; A[i]:=m;
end;
end;
end;
Procedure done;
begin
closefile(f1);
closefile(f2);
end;
end.
Устраните ошибки пожалуйста!
Ошибки:
[Error] Project1.dpr(22): Operator not applicable to this operand type
[Error] Project1.dpr(25): Incompatible types: 'Integer' and 'dynamic array'
[Error] Project1.dpr(28): Incompatible types: 'Integer' and 'dynamic array'
Марат05 вне форума Ответить с цитированием
Старый 22.12.2010, 05:55   #2
ArtGrek
DelphiProger
Участник клуба
 
Аватар для ArtGrek
 
Регистрация: 14.11.2010
Сообщений: 1,023
По умолчанию

у тебя неправелно объявлена A[]

myarray=array of array of integer;
может так надо
myarray=array of integer;

и редактируи код как надо! ест кнопочка #, сплошнои техт читат не риално
VirusN13

Последний раз редактировалось ArtGrek; 22.12.2010 в 06:05.
ArtGrek вне форума Ответить с цитированием
Старый 22.12.2010, 06:01   #3
Марат05
Пользователь
 
Регистрация: 07.12.2010
Сообщений: 72
По умолчанию

program Project1;

{$APPTYPE CONSOLE}

uses
SysUtils;
type myarray=array of array of integer;
var f1,f2:textfile;
B:set of 0..255;
Procedure Init;
begin
assignfile(f1,'file1.txt');Reset (f1);
assignfile(f2,'file2.txt'); ReWrite (f2);
While not eof(f1)do
end;
Procedure Sort(N:integer; Var A:myarray);
var i,j,k,А:integer;
begin
For i:=N DownTo 2 do
begin
for j:=1 to i-1 do
if A[j]>m Then
begin
k:=j; m:=A[j]
End;
if k<>i Then
begin
A[k]:=A[i]; A[i]:=m;
end;
end;
end;
Procedure done;
begin
closefile(f1);
closefile(f2);
end;
end.
вот описал.
Все равно жалуется.
[Error] Project1.dpr(17): Illegal character in input file: 'А' ($C0)
[Error] Project1.dpr(22): Undeclared identifier: 'm'
Марат05 вне форума Ответить с цитированием
Старый 22.12.2010, 06:04   #4
Марат05
Пользователь
 
Регистрация: 07.12.2010
Сообщений: 72
По умолчанию

myarray=array of array of integer; тут ошибок нет, он на 'm' жалуется.
Марат05 вне форума Ответить с цитированием
Старый 22.12.2010, 06:07   #5
Donatello
Форумчанин
 
Аватар для Donatello
 
Регистрация: 22.12.2010
Сообщений: 109
По умолчанию

на m жалуется т.к. она не объявлена никаким либо типом.
Объяви ее мб обе ошибки пропадут.
а на A может жаловаться из-за того что ты А делаешь массивом, а он у тебя уже объявлен. Хотя могу ошибаться, я с массивами пока что не очень дружен.
Я бы изменил мир, но бог не дает исходников (c)

И сказал мыслитель, напиши свою проблему на бумаге и ты увидишь свои ошибки.

Последний раз редактировалось Donatello; 22.12.2010 в 06:12.
Donatello вне форума Ответить с цитированием
Старый 22.12.2010, 06:12   #6
Марат05
Пользователь
 
Регистрация: 07.12.2010
Сообщений: 72
По умолчанию

m:=myarray; я ее описал, он на не соответствие типов жалуется!
program Project1;

{$APPTYPE CONSOLE}

uses
SysUtils;
type myarray=array of array of integer;
var f1,f2:textfile;
B:set of 0..255;
Procedure Init;
begin
assignfile(f1,'file1.txt');Reset (f1);
assignfile(f2,'file2.txt'); ReWrite (f2);
While not eof(f1)do
end;
Procedure Sort(N:integer; Var A:myarray);
var i,j,k,А,:integer;
m:=myarray;
begin
For i:=N DownTo 2 do
begin
for j:=1 to i-1 do
if A[j]>m Then
begin
k:=j; m:=A[j]
End;
if k<>i Then
begin
A[k]:=A[i]; A[i]:=m;
end;
end;
end;
Procedure done;
begin
closefile(f1);
closefile(f2);
end;
end.
Решите мне эту задачу!
Марат05 вне форума Ответить с цитированием
Старый 22.12.2010, 06:15   #7
Марат05
Пользователь
 
Регистрация: 07.12.2010
Сообщений: 72
По умолчанию

program Project1;

{$APPTYPE CONSOLE}

uses
SysUtils;
type myarray=array of array of integer;
var f1,f2:textfile;
B:set of 0..255;
Procedure Init;
begin
assignfile(f1,'file1.txt');Reset (f1);
assignfile(f2,'file2.txt'); ReWrite (f2);
While not eof(f1)do
end;
Procedure Sort(N:integer; Var A:myarray);
var i,j,k:integer;
m:=myarray;
begin
For i:=N DownTo 2 do
begin
for j:=1 to i-1 do
if A[j]>m Then
begin
k:=j; m:=A[j]
End;
if k<>i Then
begin
A[k]:=A[i]; A[i]:=m;
end;
end;
end;
Procedure done;
begin
closefile(f1);
closefile(f2);
end;
end
Решите мне задачу эту!
Марат05 вне форума Ответить с цитированием
Старый 22.12.2010, 06:16   #8
Donatello
Форумчанин
 
Аватар для Donatello
 
Регистрация: 22.12.2010
Сообщений: 109
По умолчанию

напиши какие теперь ошибки пишет, просто у меня делфи сейчас не стоит, поэтому сам прогнать код не могу.
Я бы изменил мир, но бог не дает исходников (c)

И сказал мыслитель, напиши свою проблему на бумаге и ты увидишь свои ошибки.
Donatello вне форума Ответить с цитированием
Старый 22.12.2010, 06:19   #9
ArtGrek
DelphiProger
Участник клуба
 
Аватар для ArtGrek
 
Регистрация: 14.11.2010
Сообщений: 1,023
По умолчанию

m:=myarray;
в var так не пишут, ты сам бы был чут внимателнее
m: myarray;
VirusN13
ArtGrek вне форума Ответить с цитированием
Старый 22.12.2010, 06:26   #10
Марат05
Пользователь
 
Регистрация: 07.12.2010
Сообщений: 72
По умолчанию

Спасибо за подсказку, у меня голова с утра не работает, а вот ошибки:
[Error] Project1.dpr(23): Operator not applicable to this operand type
[Error] Project1.dpr(26): Incompatible types
[Error] Project1.dpr(29): Incompatible types
Устраните вот эти ошибки.
program Project1;

{$APPTYPE CONSOLE}

uses
SysUtils;
type myarray=array of array of integer;
var f1,f2:textfile;
B:set of 0..255;
Procedure Init;
begin
assignfile(f1,'file1.txt');Reset (f1);
assignfile(f2,'file2.txt'); ReWrite (f2);
While not eof(f1)do
end;
Procedure Sort(N:integer; Var A:myarray);
var i,j,k:integer;
m:myarray;
begin
For i:=N DownTo 2 do
begin
for j:=1 to i-1 do
if A[j]>m Then
begin
k:=j; m:=A[j]
End;
if k<>i Then
begin
A[k]:=A[i]; A[i]:=m;
end;
end;
end;
Procedure done;
begin
closefile(f1);
closefile(f2);
end;
end
Марат05 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Делфи Массивы Пьеро Помощь студентам 0 29.11.2010 23:09
(Делфи)Массивы zoza1 Помощь студентам 1 25.12.2009 08:04
Массивы (ДЕЛФИ) a1ertso Помощь студентам 0 16.12.2009 02:34
массивы(Делфи) a1ertso Помощь студентам 0 15.12.2009 19:17
Задача на одномерные массивы в Делфи Milashka Помощь студентам 2 22.01.2009 00:32