Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
2 / 2 / 1
Регистрация: 29.04.2017
Сообщений: 41
1

E2010 Incompatible types: 'U_Fateev.matr' and 'Superprogram.matr'

29.04.2017, 08:28. Показов 1395. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Проблема такая: я подключаю к приложению модуль. В модуле создан тип matr=array [1..5,1..5] of real. Дальше я создаю такой же тип в модуле приложения. Но компилятор, наверное, думает, что это разные типы, и выдаёт [Pascal Error] Superprogram.pas(83): E2010 Incompatible types: 'U_Fateev.matr' and 'Superprogram.matr'. Пытался матрицу задавать как array [1..5,1..5] of real, но тогда появляется [Pascal Error] Superprogram.pas(82): E2010 Incompatible types: 'matr' and 'Array'. Как сделать так, чтобы работало?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
29.04.2017, 08:28
Ответы с готовыми решениями:

E2010 Incompatible types: 'TComponent' and 'TListItems'
Всем ещё раз здравствуйте столкнулся вот с какой проблемой. Мне нужно из Editов одной формы...

E2010 Incompatible types: 'PWideChar' and 'string'
Помогите исправить ошибку вот ошибка: Unit1.pas(152): E2010 Incompatible types: 'PWideChar' and...

Ошибка: E2010 Incompatible types: 'AnsiChar' and 'Char'
Здравствуйте !!! у меня такая проблема у меня есть программа давно написана на Delphi 7 сегодня я...

отключение ошибки E2010 Incompatible types: 'string' and 'Integer'
Здравствуйте Задание: из текстового файла записать в таблицу данные, в таблице подсчитать средний...

6
Эксперт Pascal/Delphi
6811 / 4568 / 4819
Регистрация: 05.06.2014
Сообщений: 22,438
29.04.2017, 08:39 2
Лучший ответ Сообщение было отмечено Dimamit как решение

Решение

Цитата Сообщение от Dimamit Посмотреть сообщение
в модуле приложения
Допустим, у вас модуль называется myUnit.pas
В приложении в секции uses
допишите
uses
..., myunit;
И тогда ваша программа будет знать тип matr
0
2 / 2 / 1
Регистрация: 29.04.2017
Сообщений: 41
29.04.2017, 08:45  [ТС] 3
Так он у меня и записан.

implementation
uses U_Fateev;
{$R *.dfm}
0
Эксперт Pascal/Delphi
6811 / 4568 / 4819
Регистрация: 05.06.2014
Сообщений: 22,438
29.04.2017, 08:48 4
Dimamit, в секции interface
0
2 / 2 / 1
Регистрация: 29.04.2017
Сообщений: 41
29.04.2017, 08:51  [ТС] 5
И если сюда вставить, то та же самая ошибка выдаётся.

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, U_Fateev ;
0
Эксперт Pascal/Delphi
6811 / 4568 / 4819
Регистрация: 05.06.2014
Сообщений: 22,438
29.04.2017, 08:52 6
Dimamit, приложите проект. Так будет проще найти ошибку.
0
2 / 2 / 1
Регистрация: 29.04.2017
Сообщений: 41
29.04.2017, 09:00  [ТС] 7
Лучший ответ Сообщение было отмечено ZX Spectrum-128 как решение

Решение

Это приложение:

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
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
unit Superprogram;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, U_Fateev ;
 
type
  TForm3 = class(TForm)
    Label1: TLabel;
    Label2: TLabel;
    Button1: TButton;
    Exit: TButton;
    OpenDialog1: TOpenDialog;
    SaveDialog1: TSaveDialog;
    Vvod: TButton;
    Nul: TButton;
    Zapis: TButton;
    Minus: TButton;
    Summa: TButton;
    procedure ExitClick(Sender: TObject);
    procedure SummaClick(Sender: TObject);
    procedure MinusClick(Sender: TObject);
    procedure ZapisClick(Sender: TObject);
    procedure NulClick(Sender: TObject);
    procedure VvodClick(Sender: TObject);
    procedure Button1Click(Sender: TObject);
 
  private
    { Private declarations }
  public
    { Public declarations }
  end;
    matr=array [1..5,1..5] of real;
var
  Form3: TForm3;
  var a: array [1..15] of real;
      n,n1,p: integer;
      file1: textfile;
      b: matr;
implementation
{$R *.dfm}
 
procedure TForm3.Button1Click(Sender: TObject);
var i: integer;
str: string;
begin
    showmessage ('Введите имя создаваемого файла и сохраните его');
    if savedialog1.Execute then assignfile (file1,savedialog1.FileName)
                           else begin showmessage ('Извините, вы - идиот!');
                           halt; end;
    rewrite (file1);
    n:=strtoint (inputbox ('Введите размерность матрицы','Внимание! n<=5!',''));
    n1:=0;
    for i:=1 to n do n1:=n1+i;
    str:='Кол-во чисел - '+inttostr(n1);
    for i:=1 to n1 do begin
                         a[i]:=strtofloat (inputbox ('Введите элемент матрицы',str,''));
                         write (file1,a[i]:4:2);
                      end;
    Button1.Visible:=false;
    Minus.Visible:=true;
    Nul.Visible:=true;
    Zapis.Visible:=true;
    Vvod.Visible:=true;
    Summa.Visible:=true;
    showmessage ('Теперь вы можете перейти в основную программу');
end;
 
procedure TForm3.ExitClick(Sender: TObject);
begin
    showmessage ('Вы действительно хотите выйти из СУПЕРПРОГРАММЫ?!');
    if savedialog1.Execute then begin showmessage ('Cпасибо, что выбрали наш продукт! Мы надеемся, что он был вам полезен :)');
                                  close;
                                end
                           else halt;
end;
 
procedure TForm3.MinusClick(Sender: TObject);
begin
    Diag_otr (b,n1,a,p);
    showmessage ('Операция выполнена!');
end;
 
procedure TForm3.NulClick(Sender: TObject);
var t,u: integer;
begin
    t:=strtoint (inputbox ('Введите номер столбца','',''));
    u:=strtoint (inputbox ('Введите номер строки','',''));
    Nuli (n1,u,t,b);
    showmessage ('Операция выполнена!');
end;
 
procedure TForm3.SummaClick(Sender: TObject);
begin
    showmessage ('Сумма равна ',Sum_diag_plus (b,n1));
end;
 
procedure TForm3.VvodClick(Sender: TObject);
begin
    Form_matr_txt (file1,n1,b);
    showmessage ('Операция выполнена!');
end;
 
procedure TForm3.ZapisClick(Sender: TObject);
begin
    showmessage ('Создайте файл для записи матрицы и сохраните его');
    if savedialog1.Execute then assignfile (file1,savedialog1.FileName)
                           else begin showmessage ('Извините, вы - идиот!');
                           halt; end;
    Vvod_v_txt (file1,n1,b);
    showmessage ('Операция выполнена!');
end;
 
END.
 
 
 
А это модуль:
 
unit U_Fateev;
interface
type matr=array [1..5,1..5] of real;
type mas=array [1..20] of real;
procedure Vyvod_matr (m: integer; var a: matr);
procedure Vyvod_mas (m: integer; var c: mas);
procedure Form_matr_txt (var f: textfile; m: integer; var a: matr);
procedure Nuli (m,k,l: integer; var a: matr);
procedure Vvod_v_txt (var f: textfile; m: integer; a: matr);
procedure Diag_otr (a: matr; m: integer; var c: mas; var k: integer);
function Sum_diag_plus (a: matr; m: integer): real;
//------------------------------------------------------------------------------
implementation
procedure Vyvod_matr (m: integer; var a: matr);
var i,j: integer;
begin
     for i:=1 to m do begin
                      for j:=1 to m do write (a[i,j]:6:2,' ');
                      writeln;
                      end;
end;
//------------------------------------------------------------------------------
procedure Vyvod_mas (m: integer; var c: mas);
var i: integer;
begin
     for i:=1 to m do write (c[i]:6:2,' ');
end;
//------------------------------------------------------------------------------
procedure Form_matr_txt (var f: textfile; m: integer; var a: matr);
var i,j: integer;
begin
    reset (f);
    for j:=1 to m do begin
                    i:=0;
                    repeat
                      i:=i+1;
                      read (f,a[i,j]);
                      a[j,i]:=a[i,j];
                    until ((i+j)>=2*j);
                    end;
end;
//------------------------------------------------------------------------------
procedure Nuli (m,k,l: integer; var a: matr);
var i,j: integer;
begin
     for j:=1 to m do a[k,j]:=0;
     for i:=1 to m do a[i,l]:=0;
end;
//------------------------------------------------------------------------------
procedure Vvod_v_txt (var f: textfile; m: integer; a: matr);
var i,j: integer;
begin
     rewrite (f);
     for i:=1 to m do begin
                      for j:=1 to m do write (f,a[i,j]:6:2,' ');
                      writeln (f);
                      end;
end;
//------------------------------------------------------------------------------
procedure Diag_otr (a: matr; m: integer; var c: mas; var k: integer);
var i: integer;
begin
     k:=0; i:=0;
     repeat
          i:=i+1;
          if a[i,i]<0 then begin
                          k:=k+1;
                          c[k]:=a[i,i];
                          end;
          until i>=m;
     i:=0;
     repeat
          i:=i+1;
          if a[i,m+1-i]<0 then begin
                          k:=k+1;
                          c[k]:=a[i,m+1-i];
                          end;
          until i>=m;
end;
//------------------------------------------------------------------------------
function Sum_diag_plus (a: matr; m: integer): real;
var i,j: integer;
    sum: real;
begin
     sum:=0;
     for j:=1 to m do begin
                      i:=0;
                      repeat
                        i:=i+1;
                        if a[i,j]>0 then sum:=sum+a[i,j];
                      until ((i+j)>=2*j);
                      end;
     Sum_diag_plus:=sum;
end;
//------------------------------------------------------------------------------
end.
Добавлено через 3 минуты
А, всё, я понял) Надо было строчку с описанием типа убрать из приложения.
Спасибо большое!
0
29.04.2017, 09:00
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.04.2017, 09:00
Помогаю со студенческими работами здесь

Ошибка: Error E2010 Incompatible types: 'PWideChar' and 'PAnsiChar'
function GetFileList(const Path: String): string; var a: Cardinal; fa: _WIN32_FIND_DATAA;...

[Pascal Error] Unit1.pas(50): E2010 Incompatible types: 'Char' and 'TCaption'
описать логическую функцию ХОДФЕРЗЯ (n1,n2), которая проверяет, может ли ферзь за один ход переидти...

[dcc32 Error] Unit6.pas(66): E2010 Incompatible types: 'string' and 'TStrings'
Не могу понять в чем ошибка ? procedure TForm6.FormCreate(Sender: TObject); begin if...

E2010 Incompatible types: 'FGauss.slau' and 'Main.slau'
Вот такая ошибка руинит весь проект, устал фиксить помогите Main.pas(187): E2010 Incompatible...


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

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