Re: PASCAL:HELP

From: Michal Bilcik (krutohlav@host.sk)
Date: 26. 04. 2002, 21:56 CEST


Nazdar,
Friday, April 26, 2002, si napisal:

> dobry den
> potrebuju helfnout s pascalem
> nevim proc mi tenhle programek nejde (runtime error):

> program e;
> type  rec=record
>                cislo:0..200;
>                misto:string;
>              end;

>       matice=array[1..200] of rec;

> var mat:matice;

> procedure vypis({var} m:matice);
> begin
>   writeln('hello');
> end;

> begin
>   vypis(mat);
>   readln;
> end.

> jedna se prave o ten var, pokud je totiz matice pouze vstupni
> pak mi cely program haze error
> pokud vstupne-vystupni je vse OK

Asi "vstupni" myslis volane hodnotou a "vstupne-vystupni" volane
odkazom.

> v tom vsak problem nevidim - nebot pokud matice bude pouze 
> vstupni a
> umazneme z typu rec napr misto, pak cely prog jede bez problemu

> napada me pouze nejake omezeni ze strany pameti, ale jelikoz o 
> tom nevim
> tak mi prosim poradte

Mas pravdu, bude to pametovou narocnostou. Pri volani hodnotou sa ten
vstupni paramater kopiruje do lokalnej premennej procedury, teda je v
pameti 2x. Pri volani odkazom sa pouziva premenna ktoru mas v
skutocnych parametroch.

Nasvedcuje tomu aj to ze ked das:
matice=array[1..20] of rec;
teda 20 miesto 200 prvkov pola, tak to funguje obidvoma sposobmi.

Riesenie: pouzivaj dynamicke datove struktury tvorene pointrami.

--
S pozdravom,
 Michal Bilcik (ICQ# 156366308)



This archive was generated by hypermail 2.1.2 : 26. 04. 2002, 23:51 CEST