
Turbo pascal-procedura
Ahoj, nemohl by mi někdo poradit jak mam dat dohromady tuto proceduru v TP aby mi fungovala a ukazalo mi to na konec tu tabulku, dik moc.
Příklad: procedura, která vytvoří čáru skládající se z n pomlček '-' a odřádkuje:
procedure cara(n:integer);
var i:integer;
begin
for i:=1 to n do write('-');
writeln;
end;
Procedura, vypíše na řádek násobky čísla n. Řádek začíná a končí svislou čárkou '|'.
procedure nasobky(n:integer);
var j:integer;
begin
write('|');
for j:=1 to 10 do write(j*n:4);
writeln(' |');
end;
Po provedení programu:
cara(43);
for i:=1 to 10 do nasobky(i);
cara(43);
Dostaneme tento výsledek:
-------------------------------------------
| 1 2 3 4 5 6 7 8 9 10 |
| 2 4 6 8 10 12 14 16 18 20 |
| 3 6 9 12 15 18 21 24 27 30 |
| 4 8 12 16 20 24 28 32 36 40 |
| 5 10 15 20 25 30 35 40 45 50 |
| 6 12 18 24 30 36 42 48 54 60 |
| 7 14 21 28 35 42 49 56 63 70 |
| 8 16 24 32 40 48 56 64 72 80 |
| 9 18 27 36 45 54 63 72 81 90 |
| 10 20 30 40 50 60 70 80 90 100 |
-------------------------------------------
He? Vzdyt tam snad vsechno mas ne?
no jo tak zacnu :
program MUJPROGRAM;
uses CRT;
a pak tam opisu tady toto vsecko pod sebe a u toho:
cara(43);
for i:=1 to 10 do nasobky(i); --------- u "i" mi to pise chybu
cara(43);
a jak to pak ukoncit??
lebo 'i' nemas zadeklarovane
var i: integer;
tak kdyz to napisu tak jak mi radite tak ted mi to pise chybu z beginem a ukazujet to na tu caru..
Program Muj program;
Uses CRT;
procedure cara(n:integer);
var i:integer;
begin
for i:=1 to n do write('-');
writeln;
end;
procedure nasobky(n:integer);
var j:integer;
begin
write('|');
for j:=1 to 10 do write(j*n:4);
writeln(' |');
end;
cara(43);
var i:integer;
for i:=1 to 10 do nasobky(i);
cara(43);
end.
je to divný nevim kde mam chybu, potrebuju to na zitrek..
Prosimta to kto vas uci programovat? To mate na hodinach dejepisu? Lebo turbo packal sa uz tak 15 rokov nepouziva :) Navyse vas nenaucili ani zaklady a hrrr robit programy
V packali musia byt tusim premenne deklarovane pred programom (pred volanim funckii atd).
P.S. a ked to vypisuje nejaku chybu tak pis aj aku chybu to vypise. On ten text chyby tam neni pre srandu.
No prave nenaucili a ted to po nas chcou.. ja bych potreboval presnej to napsat ale to uz si asi za tech 15 roku nepamatujes co?:-d

Premenne deklaruj (var i:integer) predtym ako zacnes volat nejake funkcie (cara).
A daj tam nazad begin - tusim ze hlavny begin ma byt pred tym var i:integer
P.S. a sorry hlavny begin ma byt asi za var i:integer.
var i:integer;
begin
cara(43);
for i:=1 to 10 do nasobky(i);
cara(43);
end.
neviem zhlavy ci za poslednym end ma byt bodkociarka ; alebo bodka, myslim ze bodka.
Nemáš tam hlavní begin.
Predtym pisal citujem "tak ted mi to pise chybu z beginem", tak ho asi vyhodil aby nepisalo chybu
kdyz ho dam uplne nahoru ten begin pod uses CRT tak to zas odkazuje chybu na procedure (erorr in statement)
Bože! Vyser se na to nebo si přečti základy. Ten begin patří nad 1. cara(43);
EDIT: A to var i: integer; (ze spodu) dej za uses crt;
begin
cara(43);
var i:integer;-------------------------Error in statement
for i:=1 to 10 do nasobky(i);
cara(43);
UZ to funguje diky ti;)
Sedmnáct odpovědí kvůli hovadiny...
PS: Teď už vlastně osmnáct.
a jak malo stacilo,jeste jednou dik;)
Jo no, stačilo napsat do google třeba "program v pascalu" a nějaký si prohlédnout...
Pro priste se polepsim