[ Príspevkov: 9 ] 
AutorSpráva
Offline

Užívateľ
Užívateľ
PASCAL-parameter

Registrovaný: 14.11.10
Prihlásený: 30.04.12
Príspevky: 13
Témy: 4 | 4
Bydlisko: MT
NapísalOffline : 14.11.2010 21:22 | PASCAL-parameter

Mohol by mi niekto pls poradiť čo mám zle v tomto algoritme ?
THX

Kód:
PROGRAM POLEP;
USES CRT;
TYPE ES=ARRAY[1..100]OF INTEGER;
VAR A,B,C:INTEGER;
    K,L,M:ES;

PROCEDURE NACITAJ(VAR N:INTEGER; VAR P:ES);
          VAR K:INTEGER;
          BEGIN
          WRITELN('DAJ POCET CISEL');
          READLN(N);
          FOR K:=1 TO N DO
          P[K]:=RANDOM(100);
          END;

PROCEDURE TLAC(N:INTEGER; P:ES);
          VAR K:INTEGER;
          BEGIN
          FOR K:=1 TO N DO
          WRITE(P[K]:5);
          END;

PROCEDURE VYMENA (VAR A,B:INTEGER);
          VAR POM:INTEGER;
          BEGIN
          POM:=A;
          A:=B;
          B:=POM;
          END;

PROCEDURE ZORAD(VAR N:INTEGER; VAR P:ES);
          VAR K,I:INTEGER;
          BEGIN
          FOR I:=1 TO N-1 DO
          BEGIN
          FOR K:=1 TO N-1 DO
          IF P[K]>P[K+1] THEN VYMENA;
          END;
          END;


BEGIN
CLRSCR;
NACITAJ(A,K);
NACITAJ(B,L);
NACITAJ(C,M);
TEXTCOLOR(RED);
TLAC(A,K);
WRITELN;
TEXTCOLOR(GREEN);
TLAC(B,L);
WRITELN;
TEXTCOLOR(YELLOW);
TLAC(C,M);
ZORAD(A,K);
ZORAD(B,L);
ZORAD(C,M);
TEXTCOLOR(RED);
TLAC(A,K);
WRITELN;
TEXTCOLOR(GREEN);
TLAC(B,L);
WRITELN;
TEXTCOLOR(YELLOW);
TLAC(C,M);
READKEY
END.


Offline

Užívateľ
Užívateľ
PASCAL-parameter

Registrovaný: 19.09.09
Prihlásený: 12.09.13
Príspevky: 359
Témy: 55 | 55
Bydlisko: Rohožník
NapísalOffline : 14.11.2010 21:41 | PASCAL-parameter

co to ma robit akoze??
pretože nesedia mi tam tie premenne ... v 2 procedure konkretne - mas tam N ale jak ho tam dostanes? N mas lokalne, ale ako ho tam dostanes? Bud v 1 proceduje N nakopirujes do globalnej premennej a potom ju pouzijes aj v druhej procedure. a to iste plati aj pre zvysok...

Ale aký je presny popis programu? co ti to robi, nerobi?


Offline

Užívateľ
Užívateľ
PASCAL-parameter

Registrovaný: 01.04.10
Prihlásený: 08.10.11
Príspevky: 339
Témy: 0 | 0
NapísalOffline : 15.11.2010 12:12 | PASCAL-parameter

PANEBOZE KTO TA UCIL PISAT KOD CELY VELKYMI PISMENKAMI ?
A BOLO BY SUPER KEBY SI NAM POVEDAL CO TO MA ROBIT, NAM SA NECHCE HADAT.

S POZDRAVOM,
TVOJ CAPS LOCK


Offline

Skúsený užívateľ
Skúsený užívateľ
Obrázok užívateľa

Registrovaný: 29.10.08
Prihlásený: 30.07.12
Príspevky: 933
Témy: 2 | 2
NapísalOffline : 15.11.2010 12:32 | PASCAL-parameter

hm toto je co ?
Kód:
IF P[K]>P[K+1] THEN VYMENA;
kam si dal vstupne parametre ?


Offline

Užívateľ
Užívateľ
PASCAL-parameter

Registrovaný: 14.11.10
Prihlásený: 30.04.12
Príspevky: 13
Témy: 4 | 4
Bydlisko: MT
Napísal autor témyOffline : 15.11.2010 19:51 | PASCAL-parameter

mack0 - v procedure tlac je n parameter ktorý plati "len" pre tu proceduru preto ho nemusím globalne definovať

Forty- učím sa to sám a mám skriptá v ktorých je všetko veľkým tak to robím podľa nich ale rád si nechám poradiť ...a je to jedno podľa mňa či to je veľkým alebo nie

coldak-no veď to neviem ako má byť ta procedúra, je to program ktorý pracuje s parametrami a zoradí mi jednorozmerné pole od najmenšieho čísla po najväčšie

ako by som mohol upraviť tu proceduru lebo keď tam nedam parametre tak to vyzerá takto:

Kód:
PROGRAM ZORAD;
USES CRT;
VAR N,I,K,POMOC,POZ:BYTE;
    P:ARRAY[1..100]OF INTEGER;
PROCEDURE NACITAJ;
          BEGIN
          WRITELN('DAJ POCET PREMENNYCH');
          READLN(N);
          FOR K:=1 TO N DO
          P[K]:=RANDOM(50);
          END;
PROCEDURE TLAC;
          BEGIN
          WRITELN;
          FOR K:=1 TO N DO
          WRITE(P[K]:4);
          WRITELN;
          END;
PROCEDURE VYMENA;
          BEGIN
          POMOC:=P[K];
          P[K]:=P[K+1];
          P[K+1]:=POMOC;
          END;
PROCEDURE TRIED;
          BEGIN
          FOR I:=1 TO N-1 DO
          BEGIN
          FOR K:=1 TO N-1 DO
          IF P[K]>P[K+1] THEN VYMENA;
          END;
          END;


BEGIN
CLRSCR;
Gotoxy(20,1);
writeln('Bublinkova metoda triedenia');
NACITAJ;
TLAC;
TRIED;
TLAC;
READKEY
END.


a ja chcem toto isté ale s parametrami


_________________
|ASUS-N53SN|i7-2630QM Sandy Bridge|6GB DDR3 1333 MHz|GeForce GT550m 2GB VRAM|OCZ Agility 3 120GB SSD|
Offline

Užívateľ
Užívateľ
PASCAL-parameter

Registrovaný: 23.11.08
Príspevky: 187
Témy: 34 | 34
Bydlisko: IP: 209.85....
NapísalOffline : 15.11.2010 20:55 | PASCAL-parameter

elementstyle píše:
...a je to jedno podľa mňa či to je veľkým alebo nie
V Pascale je to jedno, ale v pridu jazyky, v ktorych to jedno isto nebude. Ak chces nieco moderne nakodit tak potrebujes novsie jazyky, ktore su "case sensitive", typicky "C".

Tu to mas trocha upravene a doplnene parametre:
Kód:
PROGRAM POLEP;
USES CRT;
TYPE ES=ARRAY[1..100]OF INTEGER;
VAR A,B,C:INTEGER;
    K,L,M:ES;

PROCEDURE NACITAJ(VAR N:INTEGER; VAR P:ES);
          VAR K:INTEGER;
          BEGIN
            WRITELN('DAJ POCET CISEL');
            READLN(N);
            FOR K:=1 TO N DO
              P[K]:=RANDOM(100);
          END;

PROCEDURE TLAC(N:INTEGER; P:ES);
          VAR K:INTEGER;
          BEGIN
            FOR K:=1 TO N DO
            WRITE(P[K]:5);
          END;

PROCEDURE VYMENA (VAR A,B:INTEGER);
          VAR POM:INTEGER;
          BEGIN
            POM:=A;
            A:=B;
            B:=POM;
          END;

PROCEDURE ZORAD(VAR N:INTEGER; VAR P:ES);
          VAR K,I:INTEGER;
          BEGIN
            FOR I:=1 TO N-1 DO
              BEGIN
                FOR K:=1 TO N-1 DO
                  IF P[K]>P[K+1] THEN VYMENA(P[K],P[K+1]);
              END;
          END;


BEGIN
  CLRSCR;
  NACITAJ(A,K);
  NACITAJ(B,L);
  NACITAJ(C,M);
  TEXTCOLOR(RED);
  TLAC(A,K);
  WRITELN;
  TEXTCOLOR(GREEN);
  TLAC(B,L);
  WRITELN;
  TEXTCOLOR(YELLOW);
  TLAC(C,M);
  ZORAD(A,K);
  ZORAD(B,L);
  ZORAD(C,M);
  TEXTCOLOR(RED);
  TLAC(A,K);
  WRITELN;
  TEXTCOLOR(GREEN);
  TLAC(B,L);
  WRITELN;
  TEXTCOLOR(YELLOW);
  TLAC(C,M);
  READKEY
END.
Naco si tam daval farby ked ti nejde ani zakladny program? A preco ked si to odpisoval z knihy tak to neslo? hmmmm? Vyskusaj ci to funguje ako ma...


_________________
Tajna misia: Ignorovat dlzne a makcene.
Offline

Užívateľ
Užívateľ
PASCAL-parameter

Registrovaný: 14.11.10
Prihlásený: 30.04.12
Príspevky: 13
Témy: 4 | 4
Bydlisko: MT
Napísal autor témyOffline : 16.11.2010 12:32 | PASCAL-parameter

nevedel by si mi ešte poradiť s týmto:

Kód:
Program retaz;
uses crt;
var p,i:integer;
    x:string;
begin
writeln('Napis vetu');
readln(x);
p:=1;
    for i:=1 to lenght(x) do
    if x[i]=' ' then p:=p+1;
writeln(' Vo vete: ',x,'je ',p,' slov.');
end.


je to program ktorý mi ma vypočítať počet slov vo vete za predpokladu že za každým slovom je len jedna medzera...a neviem prečo mi nechce zobrat to LENGHT(x) ...


Offline

Čestný člen
Čestný člen
PASCAL-parameter

Registrovaný: 11.08.07
Príspevky: 4062
Témy: 30 | 30
Bydlisko: Brno
NapísalOffline : 16.11.2010 14:43 | PASCAL-parameter

Mozno preto, ze sa to pise length?


Offline

Užívateľ
Užívateľ
PASCAL-parameter

Registrovaný: 14.11.10
Prihlásený: 30.04.12
Príspevky: 13
Témy: 4 | 4
Bydlisko: MT
Napísal autor témyOffline : 16.11.2010 16:17 | PASCAL-parameter

aha :) ďakujem


_________________
|ASUS-N53SN|i7-2630QM Sandy Bridge|6GB DDR3 1333 MHz|GeForce GT550m 2GB VRAM|OCZ Agility 3 120GB SSD|
 [ Príspevkov: 9 ] 


PASCAL-parameter




© 2005 - 2018 PCforum, edited by JanoF