Модераторы: volvo877, Snowy, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Borland Pascal, ошибка в несоответствии типов.  
:(
    Опции темы
DangerousV
Дата 22.12.2013, 13:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 22.12.2013

Репутация: нет
Всего: нет



ошибка в несоответствии типов. Ошибка в головной программе. 4 модуля компилируются

Добавлено через 2 минуты и 8 секунд
Головная программа:
Код



Program Lab_11;
  Uses WinCrt,MyType,Vvod,Vyvod,TypeAlg;
  Var
    A:TMas2I;
    B,C,D,E:TMas1I;
    minB,minC:ShortInt;
    k1,k2,k3:Byte;
    Begin
Randomize;
VvodMatrI(6,6,-10,10,A);
Writeln('Матрица А');
VyvodMatrIC(6,6,A);
Writeln('Матрица А');
VyvodMatrIF(6,6,A);
VvodVekI(6,-10,10,B);
Writeln('Вектор B');
VyvodVekIC(6,6,B);
Writeln('Вектор B');
VyvodVekIF(6,6,B);
FormVekFromSumStr(A,6,6,C,k1);
Writeln('Полученный вектор');
VyvodVekIC(k1,6,C);
Writeln('Полученный вектор');
VyvodVekIF(k1,6,C);
minB:=minMas1R(6,B);
minC:=minMas1R(k1,C);
Writeln('minB=',minB:3,' minC=',minC:3);
Writeln('minB=',minB:3,' minC=',minC:3);
minC:=2*minB;
Writeln('minB=',minB:3,' minC=',minC:3);
If minC mod minB =0
  Then
    Begin
      FormVekFromPolMatr(A,6,6,D,k2);
      Writeln('Вектор из положительных элементов матрицы');
      VyvodVekIC(k2,5,D);
      Writeln('Вектор из положительных элементов матрицы');
      VyvodVekIF(k2,5,D);
      UporVek(k2,D);
      Writeln('Упорядоченный вектор');
      VyvodVekIC(k2,5,D);
      Writeln('Упорядоченный вектор');
      VyvodVekIF(k2,5,D);
       End
  Else
    Begin
      FormVekFromMatr(A,6,6,D,k3);
      UporVek(k3,D);
      Writeln('Упорядоченный преобразованный вектор ');
      VyvodVekIC(k3,10,D);
      Writeln('Упорядоченный преобразованный вектор ');
      VyvodVekIF(k3,10,D);
      FormMatrFromVek(D,6,6,A);
      Writeln(' ');
      Writeln('Упорядоченная матрица ');
      VyvodMatrIC(6,6,A);
      Writeln('Упорядоченная матрица ');
      VyvodMatrIF(6,6,A);
      End;
End.

Добавлено через 3 минуты и 38 секунд
Код


Модуль MyType:
Unit MyType;
 Interface
  Type
  TMas2I=Array[1..10,1..10] of ShortInt;
  TMas2R=Array[1..10,1..10] of Real;
  TMas1I=Array[1..100] of ShortInt;
  TMas1R=Array[1..100] of Real;
Implementation
End.
Код




Добавлено через 4 минуты и 40 секунд
Модуль TypeAlg:
Unit TypeAlg;
 Interface
   Uses MyType;
Procedure FormVekFromSumStr(Aa:TMas2I;na,ma:Byte;Var Ba:TMas1I;Var ka:Byte);
Procedure FormVekFromPolMatr(Aa:TMas2I;na,ma:Byte;Var Ba:TMas1I;Var ka:Byte);
Procedure UporVek(na:Byte;Var Aa:TMas1I);
Procedure FormVekFromMatr(Aa:TMas2I;na,ma:Byte;Var Ba:TMas1I;Var ka:Byte);
Procedure FormMatrFromVek(Ba:TMas1I;na,ma:Byte;Var Aa:TMas2I );
Function MinMas1R(na:Byte;Aa:TMas1I):Real;

Implementation
Procedure FormVekFromSumStr;
  Var i,j:Byte;Sm:ShortInt;
Begin
For i:=1 to na Do
  Begin
    Sm:=0;
    For j:=1 to ma Do
      Sm:=Sm+Aa[i,j];
    Ba[i]:=Sm;
  End;
ka:=na;
End;
Function MinMas1R;
  Var
    i:Byte;minMas:Real;
Begin
minMas:= Aa[1];
For i:=2 to na Do
  If Aa[i]<minMas Then minMas:=Aa[i];
MinMas1R:=minMas;
End;
Procedure FormVekFromPolMatr;
  Var i,j:Byte;
Begin
ka:=0;
For i:=1 to na Do
For j:=1 to ma Do
  If Aa[i,j]>0
   Then Begin ka:=ka+1;Ba[ka]:=Aa[i,j];End;
End;
Procedure UporVek;
  Var i,j,Nmin:Byte;Min,Temp:ShortInt;
Begin
For i:=1 to na-1 Do
  Begin
    min:=Aa[i];Nmin:=i;
    For j:=i+1 to na Do
      If Aa[j]<min Then Begin Min:=Aa[j];Nmin:=j;End;
    Temp:=Aa[i];Aa[i]:=Aa[Nmin];Aa[Nmin]:=Temp;
  End;
End;
Procedure FormVekFromMatr;
  Var i,j:Byte;
Begin
ka:=0;
For i:=1 to na Do For j:=1 to ma Do
 Begin
   ka:=ka+1;Ba[ka]:=Aa[i,j]
 End;
End;
Procedure FormMatrFromVek;
  Var i,j,k:Byte;
Begin
k:=0;
For i:=1 to na Do For j:=1 to ma Do
 Begin
   k:=k+1;Aa[i,j]:=Ba[k];
 End;
End;
End.

Добавлено через 5 минут и 49 секунд
Модуль Ввод:
Unit Vvod;
 Interface
   Uses MyType;
Procedure VvodMatrR(na,ma:Byte;Pa,Qa:Real;Var Aa:TMas2R);
Procedure VvodMatrI(na,ma:Byte;Pa,Qa:ShortInt;Var Aa:TMas2I);
Procedure VvodVekR(na:Byte;Pa,Qa:Real;Var Aa:TMas1R);
Procedure VvodVekI(ma:Byte;Pa,Qa:ShortInt;Var Aa:TMas1I);
Implementation
Procedure VvodMatrR;
 Var
  i,j:Byte;
 Begin
  For i:=1 to na do
    For j:=1 to ma do
       Aa[i,j]:=(Qa-Pa)*Random+Pa;
 End;
Procedure VvodMatrI;
 Var
  i,j:Byte;
 Begin
  For i:=1 to na do
    For j:=1 to ma do
       Aa[i,j]:=Random(Qa-Pa)+Pa;
 End;
Procedure VvodVekR;
 Var
  i:Byte;
 Begin
  For i:=1 to na do
     Aa[i]:=(Qa-Pa)*Random+Pa;
 End;
Procedure VvodVekI;
 Var
  i:Byte;
 Begin
  For i:=1 to ma do
    Aa[i]:=Random(Qa-Pa)+Pa;
 End;
End.

Добавлено через 6 минут и 25 секунд
Модуль Вывода:
Unit Vyvod;
 Interface
  Uses MyType;
Procedure VyvodMatrRC(na,ma:Byte;Var Aa:TMas2R);
Procedure VyvodMatrRF(na,ma:Byte;Var Aa:TMas2R);
Procedure VyvodMatrIC(na,ma:Byte;Var Aa:TMas2I);
Procedure VyvodMatrIF(na,ma:Byte;Var Aa:TMas2I);

Procedure VyvodVekRC(na,ka:Byte;Var Aa:TMas1R);
Procedure VyvodVekRF(na,ka:Byte;Var Aa:TMas1R);
Procedure VyvodVekIC(na,ka:Byte;Var Aa:TMas1I);
Procedure VyvodVekIF(na,ka:Byte;Var Aa:TMas1I);

Implementation
Procedure VyvodMatrRC;
 Var
  i,j:Byte;
 Begin
  For i:=1 to na do
   Begin
    For j:=1 to ma do
      Write(Aa[i,j]:2,' ');
    WriteLn('');
   End;
  End;
Procedure VyvodMatrRF;
 Var
  i,j:Byte;
 Begin
  For i:=1 to na do
   Begin
    For j:=1 to ma do
    Write(Aa[i,j]:2,' ');
   WriteLn('');
   End;
  End;
Procedure VyvodMatrIC;
 Var
  i,j:Byte;
 Begin
  For i:=1 to na do
   Begin
    For j:=1 to ma do
      Write(Aa[i,j]:4,' ');
    WriteLn('');
   End;
  End;
Procedure VyvodMatrIF;
 Var
  i,j:Byte;
 Begin
  For i:=1 to na do
   Begin
    For j:=1 to ma do
    Write(Aa[i,j]:4,' ');
   WriteLn('');
   End;
  End;

Procedure VyvodVekRC;
 Var
  i:Byte;
 Begin
  For i:=1 to na do
   Begin
    Write(Aa[i]:2,' ');
     If i mod ka=0 Then WriteLn('');
   End;
  End;
Procedure VyvodVekRF;
 Var
  i:Byte;
 Begin
  For i:=1 to na do
   Begin
    Write(Aa[i]:2,' ');
     If i mod ka=0 Then WriteLn('');
   End;
  End;
Procedure VyvodVekIC;
 Var
  i:Byte;
 Begin
  For i:=1 to na do
   Begin
    Write(Aa[i]:4,' ');
     If i mod ka=0 Then WriteLn('');
   End;
  End;
Procedure VyvodVekIF;
 Var
  i:Byte;
 Begin
  For i:=1 to na do
   Begin
    Write(Aa[i]:4,' ');
     If i mod ka=0 Then WriteLn('');
   End;
  End;

  End.


Присоединённый файл ( Кол-во скачиваний: 2 )
Присоединённый файл  lab11.pas 1,55 Kb
PM MAIL   Вверх
ФедосеевПавел
Дата 22.12.2013, 20:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 291
Регистрация: 7.2.2009

Репутация: 2
Всего: 10



Всё правильно тебе компилятор пишет.

Спорная строка
minB := minMas1R(6, B);

Смотрим объявления типов:
minB, minC: shortint;
И смотрим на тип результата функции
function MinMas1R(na: byte; Aa: TMas1I): real;
PM   Вверх
Akella
Дата 23.12.2013, 15:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: нет
Всего: 329



Никогда не пользуйтесь на форумах кнопкой КОД
PM MAIL   Вверх
ФедосеевПавел
Дата 23.12.2013, 22:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 291
Регистрация: 7.2.2009

Репутация: 2
Всего: 10



Sorry. В своё оправдание скажу лишь, что желал выделить цветом типы переменной и функции.
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi"
THandle
Rrader
volvo877

Запрещается!

1. Обсуждать и делится взломанными компонентами или программным обеспечением

2. Публиковать ссылки на варез

3. Оффтопить

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, THandle, Rrader, volvo877.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Object Pascal: кроссплатформенные технологии | Следующая тема »


 




[ Время генерации скрипта: 0.0505 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.