Matematické Fórum

Nevíte-li si rady s jakýmkoliv matematickým problémem, toto místo je pro vás jako dělané.

Nástěnka
22. 8. 2021 (L) Přecházíme zpět na doménu forum.matweb.cz!
04.11.2016 (Jel.) Čtete, prosím, před vložení dotazu, děkuji!
23.10.2013 (Jel.) Zkuste před zadáním dotazu použít některý z online-nástrojů, konzultovat použití můžete v sekci CAS.

Nejste přihlášen(a). Přihlásit

#1 20. 04. 2011 15:38

myrek
Příspěvky: 223
Reputace:   
 

pascal problem s polem

Dobry den,
mam tu takovy problem, prikladam vynatek zdrojaku, tam kde je par tecek, je cast, se kterou neni problem.



var cislo:char; dobre:boolean;
cethlasproc:array['a'..'z'] of real;
cetdvojproc:array['a'..'z','a'..'z'] of real;



procedure nacteni(var cethlasproc:array of real; var cetdvojproc:array of real);
var cetnost_hlasek:array['a'..'z']of int64;
cetnost_dvojic:array['a'..'z','a'..'z'] of int64;
t:text;g,hel:char;
angl,dvojic:int64;

begin
........................................
for hel:='a' to 'z' do
        begin
        cethlasproc[hel]:=(cetnost_hlasek[hel]/angl);
        for g:='a' to 'z' do
                begin
                cetdvojproc[hel,g]:=(cetnost_dvojic[hel,g]/dvojic);
                end;
        end;
end;

................................

begin
.....................
nacteni(cethlasproc,cetdvojproc);
end.


Problem spociva v tom, ze dostanu hlasku u prirazovani cethlasproc[hel] i u toho cetdvojproc[hel,g]
incompatible types got char, expected longint.
Jenze ja potrebuji ty dve pole mit charem od a do z a ne cisly.
dekuji za rady.
myrek

Offline

 

#2 21. 04. 2011 07:47 — Editoval musixx (21. 04. 2011 07:56)

musixx
Místo: Brno
Příspěvky: 1771
Reputace:   45 
 

Re: pascal problem s polem

Myslím, že tímto způsobem nejdou do procedury/funkce předat takto definovaná pole. Udělej si na to speciální typ:

type
  pole1_typ = array['a'..'z'] of real;
  pole2_typ = array['a'..'z', 'a'..'z'] of real;

var
  cethlasproc: pole1_typ;
  cetdvojproc: pole2_typ;

procedure nacteni(var cethlasproc: pole1_typ; var cetdvojproc: pole2_typ);

==================

Kromě toho, malinko míň elegantní řešení by též mohlo využít toho, že procedura bude přímo přistupovat na globální proměnnou. V tom případě můžeš nechat definice jak máš (tj. bez zavádění datových typů pole1_typ a pole2_typ), procedura nacteni nebude mít žádný formální parametr a protože jsi stejně ty formální parametry pojmenovat stejně jako globální proměnné, nic víc se nezmění. Prostě jen bude

procedure nacteni;

Offline

 

Zápatí

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson