IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> Функции и процедуры, помогите найти ошибку
Glykaman
сообщение 5.09.2007 20:44
Сообщение #1


Гость






М
Код нужно заключать между тегами [code = pas ] [ /code ]



Значит проблема такая я пытался сделать библиотеку процедур. В этой библиотеке мне надо обьявить массив.
Паскаль ругается на ошибку 121 неизвесный сертификатор при первом же использовании массива (массив graf).
вот исходник:

unit DopforGr;
interface
uses
graph;

procedure NEMSAVE(nameFile:String ;nameintofile:string ;graf:array of integer);
implementation

procedure NEMSAVE(nameFile:String ;nameintofile:string ;graf:array of integer);
var

dlafor:integer;
col:integer;
s,d:byte;
gFile:text ;
begin
col:=0;
assign(gFile,'mario.nem') ;
rewrite(gFile) ;
writeln(gFile,nameintofile) ;
for s:=0 to 99 do
for d:=0 to 99 do
begin
if graf[d,s]>0 then col:=col+1;
end;
writeln(gFile,col);
for s:=0 to 99 do
for d:=0 to 99 do
begin
if graf[d,s]>0 then begin writeln(gFile,d); writeln(gFile,s) ; writeln(gFile,graf[d,s]); end;
end;



close(gFile) ;
end.

wacko.gif
подозреваю что я неправильно обьявил массив или какаято проблема с синтаксисом. wacko.gif
сама по себе процедура должна вызываться из библиотеки зарезервированым словом NEMSAVE(переменная;переменная;имя массива) и должна сохранять файлы с параметрами для графики.
Недавно примерно такаяже проблема была у меня при записи в типиризированые типы файлов массивов, но там удалось обойти при помощи циклов и текстовых файлов.
Зарание благодарен. smile.gif

Сообщение отредактировано: klem4 - 5.09.2007 20:59
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
Glykaman
сообщение 5.09.2007 23:18
Сообщение #2


Новичок
*

Группа: Пользователи
Сообщений: 10
Пол: Мужской
Реальное имя: артём

Репутация: -  0  +


Прошу прощения что возвращаюсь к темже баранам. Тестил библиотека работает нормально а вот с использованием возникли проблемы и указывает на Graf :

[code = pas ]
program NeoNMooNpaintVersionFORPascal ;
uses
crt,graph,dopforgr;

type
TMatrix = array [0..99,0..99] of integer;


var
cursor:array[0..99,0..99] of boolean ;

a,b:integer;
x,y:integer;
color:byte;
name:string[8] ;
graf:TMatrix ;

Procedure graphinit ;
var
gm,gd:integer;
begin
gm:=2;
gd:=installuserdriver ('bgi256',nil);
initGraph(gd,gm,' ');

if graphResult <> grOK then halt(1);
end;

Procedure WrStr ;
begin
setcolor(150) ;
moveto (401,0);
lineto (401,401);
lineto (0,401);
moveto (401,40);
lineto (480,40);
SetTextStyle(DefaultFont, HorizDir, 1); ;
outtextxy(410,10,'Welcome to') ;
outtextxy(410,20,'NeoNMooN Paint for PASCAL') ;
outtextxy(410,30,'Glykasoft & NeoNMooN studio') ;
outtextxy(410,50,'You need Help? -> F1 ') ;
end;

Procedure initcolor ;
var
color2:byte;
begin
for color2:=0 to 255 do
begin
setcolor(color2) ;
rectangle(color2*2,460,color2*2,480);
rectangle(color2*2+1,460,color2*2+1,480);


end;
end;








Procedure nemLOAD ;
var
dlafor:integer;
col:integer;
s,d:byte;
gFile:text ;
begin
col:=0;
closegraph;
write('Input name(8) file please: ');
readln(name) ;
assign(gFile, name +'.nem') ;
reset(gFile) ;
readln(gFile,name) ;
readln(gFile,col) ;
for dlafor:=0 to col do
begin
readln(gFile,d) ;
readln(gFile,s) ;
readln(gFile,graf[d,s])
end;
close(gFile) ;
graphinit;
wrstr;
initcolor;
end;



Procedure text ;
var
printtext:string;
begin

setfillstyle(0,0);
bar(10,410,200,420);
setcolor(10) ;
outtextxy(10,410,'X=');
str(a,printtext);
outtextxy(30,410,printtext);
outtextxy(50,410,'Y=');
str(b,printtext);
outtextxy(70,410,printtext);
str(color,printtext);
outtextxy(90,410,'COLOR -');
outtextxy(150,410,printtext);



end;


Procedure chek ;
begin
setcolor(color);
setfillstyle(1,color);
bar(2*(color-10),430,2*(color+10),455) ;
rectangle(color*2,430,color*2,459) ;

for y:=0 to 99 do
begin
for x:=0 to 99 do
begin
if graf[x,y]<>0 then begin setcolor(graf[x,y]) ;rectangle(4*x+1,4*y+1,4*x+3,4*y+3); end;
end;
end;



setcolor(color);
for y:=0 to 99 do
begin
for x:=0 to 99 do
begin
if cursor[x,y]=true then rectangle(4*x,4*y,4*x+4,4*y+4);
end;
end;
end;





Procedure cursorinit ;
var
ch:char;
begin

repeat

chek;
text ;
setcolor(0);
ch := readkey;

case ch of
#75:if a>0 then begin rectangle(4*a,4*b,4*a+4,4*b+4); a:=a-1; cursor[a+1,b]:=false; cursor[a,b]:=true; end;
#77:if a<99 then begin rectangle(4*a,4*b,4*a+4,4*b+4);a:=a+1; cursor[a-1,b]:=false; cursor[a,b]:=true; end;
#72:if b>0 then begin rectangle(4*a,4*b,4*a+4,4*b+4);b:=b-1; cursor[a,b+1]:=false; cursor[a,b]:=true; end;
#80:if b<99 then begin rectangle(4*a,4*b,4*a+4,4*b+4);b:=b+1; cursor[a,b-1]:=false; cursor[a,b]:=true; end;
#49:begin rectangle(2*(color+10),430,2*(color+10)-1,455) ;rectangle(color*2,430,color*2,459) ;color:=color-1;end;
#51:begin rectangle(2*(color-10),430,2*(color-10)+1,455) ;rectangle(color*2,430,color*2,459) ;color:=color+1;end;
#13:graf[a,b]:=color;
#63:NEMSAVE('esd','nem', graf );
#66:nemLOAD;

{c #99:begin readln(color); end;}


else
end;
until ch = #27 ;
end;



begin
color:=1;
cursor[0,0]:=true;
graphinit;
wrstr;
initcolor;
cursorinit;




closegraph;
end.

[ /code ]

вобще тут много не относящегося к поблеме
если в кратце то при компиляции указатель в строке #63:NEMSAVE('esd','nem', graf ); указывает на graf и пишет тип несовместим несмотря на то что graf также принадлежит TMatrix.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 20.07.2025 14:38
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"