Форум программистов, компьютерный форум, киберфорум
Наши страницы
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.62/39: Рейтинг темы: голосов - 39, средняя оценка - 4.62
Danil999
0 / 0 / 0
Регистрация: 15.12.2012
Сообщений: 5
1

Выдает ошибку Array type required

15.12.2012, 23:28. Просмотров 7926. Ответов 10
Метки нет (Все метки)

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
function mine(n,m:Integer;y:array of real):real;
var min: Real;
    u,o:Integer;
begin
min:= y[u,o];
for u:= 1 to n do
for o:= 1 to m do
  begin
      if y[u,o]< min then
      begin
      min:= y[u,o];
      result:= min;
      end;
  end;
end;
суть проблемы в следующем:
при чтении программой строки min:= y[u,o]; выдается ошибка: Array type required. помогите разобраться пожалуйста(
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.12.2012, 23:28
Ответы с готовыми решениями:

Ошибка: Array type required
Подскажите, пожалуйста, как исправить ошибку Array type required, которая появляется на строке...

Ошибка в программе: Array type required
Помогите пожалуйста исправить ошибку

Что делать с ошибкой Array type required
Объясните пожалуйста в чем проблема и как её решить :scratch: const V = 6; inf = 100000; ...

Экспорт из Excel в массив - Array type required
Доброго времени суток, уважаемые форумчане! // глобальные var Form1 : TForm1; Ap :...

ошибка [Error] Unit1.pas(37): Array type required
всем привет тут такая фигнчя задача не получается помогите нйти ошибку unit Unit1; interface ...

10
OverDozero
101 / 101 / 50
Регистрация: 07.04.2011
Сообщений: 545
15.12.2012, 23:41 2
Цитата Сообщение от Danil999 Посмотреть сообщение
array of real
Массив одномерный,а тут
Цитата Сообщение от Danil999 Посмотреть сообщение
min:= y[u,o];
-двумерный.Переопредели массив.

Добавлено через 2 минуты
Цитата Сообщение от Danil999 Посмотреть сообщение
min:= y[u,o];
И тут u и o еще не определены..Либо так min:= y[1,1], либо задай этим переменным начальные значения.
1
Danil999
0 / 0 / 0
Регистрация: 15.12.2012
Сообщений: 5
22.12.2012, 19:33  [ТС] 3
OverDozero, Благодарю, за п.3. но у меня возникает тогда другой вопрос, как можно переопределить этот массив правильно? по заданию, у меня должно рассматриваться 3 массива, причем один из них другой размерности. плюс ко всему, массивы должны читаться с текстового файла. я попробовал доделать программу до конца, вот что вышло:
Delphi
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
function mine(n,m:Integer;y:array of real):real;
var min: Real;
    u,o:Integer;
begin
min:= y[1,1];
for u:= 1 to n do
for o:= 1 to m do
  begin
      if y[u,o]< min then
      begin
      min:= y[u,o];
      result:= min;
      end;
  end;
end;
 
 
procedure TForm1.N1Click(Sender: TObject);
var A:array[1..2,1..2] of Real;
    B:array[1..2,1..2] of Real;
    C:array[1..3,1..3] of Real;
    a1,b1,c1,otv:TextFile;
    i,j,k,h,t,g:Integer;
    p,d,r:Real;
begin
AssignFile(a1,'Г¬Г*Г±Г±ГЁГў ГЂ.txt');
AssignFile(b1,'Г¬Г*Г±Г±ГЁГў Г‚.txt');
AssignFile(c1,'Г¬Г*Г±Г±ГЁГў Г‘.txt');
AssignFile(otv,'îòâåò.txt');
Reset(a1);
Reset(b1);
Reset(c1);
Rewrite(otv);
for i:=1 to 2 do
for j:=1 to 2 do
  read(a1,A[i,j]);
for k:=1 to 2 do
for h:=1 to 2 do
  read(b1,B[k,h]);
for t:=1 to 3 do
for g:= 1 to 3 do
  read(c1,C[t,g]);
CloseFile(a1);
CloseFile(b1);
CloseFile(c1);
p:=mine(2,2,A);
d:=mine(2,2,B);
r:=mine(3,3,C);
edt1.text:=FloatToStr(p);
edt2.text:=FloatToStr(d);
edt3.text:=FloatToStr(r);
F1book1.textRC[1.1]:='min A';
F1book1.numberRC[2.1]:=p;
F1book1.textRC[1.2]:='min B';
F1book1.numberRC[2.2]:=d;
F1book1.textRC[1.3]:='min C';
F1book1.numberRC[2.3]:=r;
q=p*d*r;
edt4.text:=FloatToStr(q);
write(n,q);
end;
 
end.
буду благодарен любой помощи. у меня есть мысль по поводу функции: а что если задать в функции размерность наибольшей из матриц, а наименьшие в наименьшие просто нули дописать?
0
mss
2639 / 2263 / 277
Регистрация: 24.12.2010
Сообщений: 13,725
22.12.2012, 20:49 4
type TMatrix = array of array of real
..
var a,b,c: TMatrix;
..
function mine(y:TMatrix):real;
..
p:=mine(A);
d:=mine(B);
r:=mine(C);
2
22.12.2012, 20:49
Danil999
0 / 0 / 0
Регистрация: 15.12.2012
Сообщений: 5
22.12.2012, 21:08  [ТС] 5
спасибо
0
Danil999
0 / 0 / 0
Регистрация: 15.12.2012
Сообщений: 5
26.12.2012, 21:49  [ТС] 6
блин, ошибку выдает в
Delphi
1
2
3
4
5
6
7
8
9
for i:=1 to 2 do
for j:=1 to 2 do
  read(a1,A[i,j]);
for k:=1 to 2 do
for h:=1 to 2 do
  read(b1,B[k,h]);
for t:=1 to 3 do
for g:= 1 to 3 do
  read(c1,C[t,g]);
что делать?
0
FIL
Модератор
3436 / 2566 / 733
Регистрация: 19.09.2012
Сообщений: 7,939
26.12.2012, 22:00 7
Какую?
0
mss
2639 / 2263 / 277
Регистрация: 24.12.2010
Сообщений: 13,725
26.12.2012, 22:02 8
Цитата Сообщение от Danil999 Посмотреть сообщение
что делать?
Устанавливать соответствующие размерности соответствующих массивов.
0
Danil999
0 / 0 / 0
Регистрация: 15.12.2012
Сообщений: 5
26.12.2012, 22:06  [ТС] 9
[Warning] Unit1.pas(55): Return value of function 'mine' might be undefined
0
mss
2639 / 2263 / 277
Регистрация: 24.12.2010
Сообщений: 13,725
26.12.2012, 22:09 10
warning - это не ошибка.
0
volvo
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
27299 / 18268 / 7229
Регистрация: 22.10.2011
Сообщений: 32,167
Записей в блоге: 6
27.12.2012, 02:42 11
В данном случае - явное указание на ошибку (если реализация Mine не менялась). Если то самое первое значение матрицы, которое присваивается переменной min, будет на самом деле минимальным, то функция Mine вернет мусор. Warning-и - они не от нечего делать придуманы.
0
27.12.2012, 02:42
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.12.2012, 02:42

Ошибка: "Array type required"
программа выдает ощибку в 30 строке Array type required помогите исправить implementation ...

Ошибка: "Array type required"
помогите с этой ошибкой unit Unit4; interface uses Windows, Messages, SysUtils,...

Почему выдает ошибку: Operator not applicable to this operand type?
Не могу понять как устранить эти ошибки. Помогите пожалуйста. Unit1.pas(105): Left side cannot be...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru