Модераторы: Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [Delphi 7] Работа с модулями 
:(
    Опции темы
panasenko
Дата 26.11.2006, 16:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Задача в следующем дано

массив
0.5 -2 4.1 -3
-1.3 5.2 -1.1 6.6

исходный файл
2 4
0.5 -2 4.1 -3
-1.3 5.2 -1.1 6.6

где 2,4 размер матрицы

главная программа

Код

program units;

{$APPTYPE CONSOLE}

uses
  SysUtils,
  myunit in 'myunit.pas';

var
    A:arr;                // ìàññèâ À
    m,n:integer;            // ðàçìåð êâàäðàòíîé ìàòðèöû
begin
    ReadFromFile(A,m);        // ÷òåíèå äàííûõ èç ôàéëà
    KYB(A,m,n);    // ðåøåíèå îñíîâíîé çàäà÷è
    SaveToFile(Amin,Amax,R);    // âûâîä ðåçóëüòàòîâ â ôàéë
 Finalize(A);                // îñâîáîæäåíèå äèíàìè÷åñêîé ïàìÿòè
end.



модуль

Код

unit myunit;

interface
type
    arr=array of array of integer;    // òèï arr äëÿ ìàññèâà À
// Èíòåðôåéñ ïðîöåäóðû ÷òåíèÿ ìàññèâà èç ôàéëà
Procedure ReadFromFile(var A:arr;var m,n:integer);
// Èíòåðôåéñ ïðîöåäóðû íàõîæäåíèÿ ìèíèìàëüíîãî è
// ìàêñèìàëüíîãî ýëåìåíòîâ ìàññèâà è èõ ðàçíîñòè
Procedure KYB(A:arr; m,n:integer);
// îïèñàíèå ïðîöåäóðû âûâîäà ðåçóëüòàòà â ôàéë
Procedure SaveToFile(Amin,Amax,R:integer);

implementation // ðàçäåë ðåàëèçàöèè
//-------------------------------------------------------------
//    Îïèñàíèå ïðîöåäóðû ÷òåíèÿ ìàññèâà èç ôàéëà
//-------------------------------------------------------------
Procedure ReadFromFile(var A:arr; var m,n:integer);
Var
 i,j:integer;        // ñ÷åò÷èêè ïî ñòðîêàì, ñòîëáöàì
    fi:text;        // ôàéëîâàÿ ïåðåìåííàÿ
begin
    // Ôàéëîâîé ïåðåìåííîé fi íàçíà÷àåòñÿ ôàéë Units.txt
    AssignFile(fi,'Units.txt');
    Reset(fi);    // òåêñòîâûé ôàéë îòêðûâàåòñÿ äëÿ ÷òåíèÿ
    Readln(fi,m,n);        // ÷òåíèå ðàçìåðà
    SetLength(A,m,n);    // âûäåëåíèå ïàìÿòè äèíàìè÷åñêîìó ìàññèâó A
    for i:=0 to m-1 do    // ÷òåíèå èç ôàéëà ìàòðèöû À
        for j:=0 to n-1 do Read(fi,A[i,j]);
    CloseFile(fi);        // çàêðûòèå ôàéëà fi
end;
//-------------------------------------------------------------
// Îïèñàíèå ïðîöåäóðû íàõîæäåíèÿ ìèíèìàëüíîãî è ìàêñèìàëüíîãî
// ýëåìåíòîâ ìàññèâà
//-------------------------------------------------------------
Procedure KYB(A:arr;  var m,n :integer);
Var
  // n?ao?eee ii no?ieai, noieaoai - eieaeuiua ia?aiaiiua
    i, j : word;
 begin
 for i:=1 to m do
 for j:=1 to n do
  begin
   if A[i,j]<0 then begin  A[i,j]:=A[i,j]*A[i,j]*A[i,j]; end
   else
  A[i,j]:=A[i,j]*A[i,j];
  end;
  end;

//-------------------------------------------------------------
// Îïèñàíèå ïðîöåäóðû âûâîäà ðåçóëüòàòà â ôàéë
//-------------------------------------------------------------
Procedure SaveToFile(var f:text;A:arr;var m,n:integer);
begin
var
i,j:integer;
for i:=1 to n do begin
 for j:=1 to m do
  begin
  Write(A[i,j]);
  writeln;
  end;
end;
   for i:=1 to n do begin
 for j:=1 to m do
Writeln(f,A[i,j]);
end;

end;

end.



Помогите найти ошибки в программе у меня при запуске возникает такое 

[Error] myunit.pas(36): Declaration of 'KYB' differs from previous declaration
[Error] myunit.pas(53): Previous declaration of 'SaveToFile' was not marked with the 'overload' directive
[Error] myunit.pas(55): Statement expected but 'VAR' found
[Error] myunit.pas(57): Declaration expected but 'FOR' found
[Error] myunit.pas(58): Undeclared identifier: 'm'
[Error] myunit.pas(60): Undeclared identifier: 'A'
[Error] myunit.pas(63): '.' expected but ';' found
[Error] myunit.pas(64): Identifier redeclared: 'Finalization'
[Error] myunit.pas(66): Undeclared identifier: 'f'
[Warning] myunit.pas(67): Text after final 'END.' - ignored by compiler
[Error] myunit.pas(12): Unsatisfied forward or external declaration: 'SaveToFile'
[Fatal Error] units.dpr(7): Could not compile used unit 'myunit.pas'

PM MAIL   Вверх
Guedda
Дата 26.11.2006, 21:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Подрывник
****


Профиль
Группа: Завсегдатай
Сообщений: 3137
Регистрация: 27.12.2005
Где: Ростов-на-Дону

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



Цитата(panasenko @  26.11.2006,  16:37 Найти цитируемый пост)
[Error] myunit.pas(36): Declaration of 'KYB' differs from previous declaration

В 36 строке удали var, так как в объявлении этой функции вместо 
Код

Procedure KYB(A:arr; m,n:integer);

стоит
Код

Procedure KYB(A:arr; var m,n:integer);

Цитата(panasenko @  26.11.2006,  16:37 Найти цитируемый пост)
[Error] myunit.pas(53): Previous declaration of 'SaveToFile' was not marked with the 'overload' directive

Просто поменяй название функции, так как в модуле SysUtils уже есть функция с таким же именем. Либо в объявлениях функций после ; напиши так:
Код

Procedure SaveToFile(Amin,Amax,R:integer); overload;

Цитата(panasenko @  26.11.2006,  16:37 Найти цитируемый пост)
[Error] myunit.pas(55): Statement expected but 'VAR' found

var не ставится после begin
Цитата(panasenko @  26.11.2006,  16:37 Найти цитируемый пост)
[Error] myunit.pas(57): Declaration expected but 'FOR' found

Иправишь предыдущую ошибку, и эта исправится.
И вообще все следующие ошибки исправятся, если эту исправишь.



--------------------
Ll 2
PM MAIL WWW ICQ Skype GTalk   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Центр помощи"

ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Несоблюдение правил может повлечь за собой самые строгие меры от закрытия/удаления темы до бана пользователя!


  • Название темы должно отражать её суть! (Не следует добавлять туда слова "помогите", "срочно" и т.п.)
  • При создании темы, первым делом в квадратных скобках укажите область, из которой исходит вопрос (язык, дисциплина, диплом). Пример: [C++].
  • В названии темы не нужно указывать происхождение задачи (например "школьная задача", "задача из учебника" и т.п.), не нужно указывать ее сложность ("простая задача", "легкий вопрос" и т.п.). Все это можно писать в тексте самой задачи.
  • Если Вы ошиблись при вводе названия темы, отправьте письмо любому из модераторов раздела (через личные сообщения или report).
  • Для подсветки кода пользуйтесь тегами [code][/code] (выделяйте код и нажимаете на кнопку "Код"). Не забывайте выбирать при этом соответствующий язык.
  • Помните: один топик - один вопрос!
  • В данном разделе запрещено поднимать темы, т.е. при отсутствии ответов на Ваш вопрос добавлять новые ответы к теме, тем самым поднимая тему на верх списка.
  • Если вы хотите, чтобы вашу проблему решили при помощи определенного алгоритма, то не забудьте описать его!
  • Если вопрос решён, то воспользуйтесь ссылкой "Пометить как решённый", которая находится под кнопками создания темы или специальным флажком при ответе.

Более подробно с правилами данного раздела Вы можете ознакомится в этой теме.

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Poseidon, Rodman

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


 




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


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

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