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 01. 12. 2015 01:24

zn
Zelenáč
Příspěvky: 19
Škola: JČU
Pozice: student
Reputace:   
 

Pascal-výpis pole a záznamu

Ahoj, nevím si rady s výpisem záznamu v Pascalu.
Když potřebuji vypsat obsah pole, jde mi to snadno

Takto zadané pole
type pole = packed array[1..2]of string;
var p:pole;
     i:integer;

se mi tímto příkazem vypíše:
  for i:=1 to 2 do
  begin
    write(p[i],',');

Ale když chci vypsat záznam, kde si přes record ukládám data do pole takto:
type slovo=record
       jmeno:string;
       end;
type pole = array[1..2]of slovo;
var p:pole;
     i:integer;

tady se mi program při ladění řekne po zadání stejného příkazu k vypsání pole
for i:=1 to 2 do
  begin
    write(p[i],',');
, že  Nemůže tisknout proměnné tohoto typu a označený je řádek "write(p[i],',')".

Přeci musí nějak jít v Pascalu vytisknout záznam.
Poradíte?
Děkuji.
zn

Offline

  • (téma jako vyřešené označil(a) zn)

#2 01. 12. 2015 08:18

Stýv
Vrchní cenzor
Příspěvky: 5710
Reputace:   215 
Web
 

Re: Pascal-výpis pole a záznamu

celý záznam funkcí write vypsat nemůžeš, můžeš ale (a nejspíš i chceš) vypsat ten řetězec jmeno

Offline

 

#3 01. 12. 2015 10:16

zn
Zelenáč
Příspěvky: 19
Škola: JČU
Pozice: student
Reputace:   
 

Re: Pascal-výpis pole a záznamu

↑ Stýv:
zkoušel jsem vypsat i jen to jméno, ale stejně mi to nejde,
mělo by to být write(slovo.jmeno) ? to mi program nebere a write(p.jmeno) mi vypisuje jen jedno jméno a nemůžu tam dostat všechny (něco jako write(p.jmeno[i]).

Offline

 

#4 01. 12. 2015 18:40

Wrunx
Příspěvky: 65
Reputace:   
 

Re: Pascal-výpis pole a záznamu

Je nutné to dvojí přetypování? Tedy jeden type cpát do druhého?
Jak napsáno níže, mi to projde ve freepascalu bez problémů:

Code:

type slovo=record
       jmeno:string;
     end;
var p:array[1..2]of slovo;
i:integer;

begin
p[1].jmeno:='prvni'; p[2].jmeno:='druhy';
for i:=1 to 2 do
  begin
  write(p[i].jmeno,',');
  end;
end.

Offline

 

#5 01. 12. 2015 19:49

zn
Zelenáč
Příspěvky: 19
Škola: JČU
Pozice: student
Reputace:   
 

Re: Pascal-výpis pole a záznamu

↑ Wrunx: Ahoj a děkuji. Když jsem vynechal dvojí přetypování, mohl jsem přiřazovat rovnou prvkům pole a ty tisknout, jak jsem potřeboval a hlavně všechny. Přiřazení jsem udělal takhle: ale vy to tu jistě znáte, já se znát snažím
begin
with p1 do
begin
for i:=1 to 2 do
begin
write('napis jmeno ');
readln(jmeno);
p[i]:=p1;   (*tady jsem se snažil jít přes další pomocnou proměnnou*)
Ještě jednou moc děkuji a zavírám téma.
zn

Offline

 

Zápatí

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson