On Fri, Apr 26, 2002 at 08:47:30PM +0200, bigmartin@centrum.cz wrote:
> 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
>
> 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
> martin sznapka
Viděl bych tady příčinu v tom, že hodnotou lze předávat pouze
jednoduché datové struktury, zatím co složitější se předávají
odkazem. Pokud smázneš místo, stane se z mat vlastně pole,
se kterým si už Pascal poradí správně.
V Pascalu jsem dlouho nedělal, řekl bych, že je to vlastnost
daného kompilátoru. Pokud funguje předávání parametrů odkazem,
použij ho. Není to sice úplně čisté, ale běh se tím i zrychlí.
Bye Kit
--
Ing. Vlastimil Pospíchal
http://www.hoteldrnholec.cz
This archive was generated by hypermail 2.1.2 : 27. 04. 2002, 08:27 CEST