Obsah fóra
PravidláRegistrovaťPrihlásenie




Odpovedať na tému [ Príspevkov: 5 ] 
AutorSpráva
Offline

Užívateľ
Užívateľ
Pascal-chyba pri volani procedur

Registrovaný: 21.11.05
Prihlásený: 18.10.10
Príspevky: 607
Témy: 60
Bydlisko: Prievidza
Príspevok NapísalOffline : 14.12.2008 18:54

Zdravim, vyhadzuje mi chybu pri volani procedur a dako parametre procedur moc neovladam.... musim to v utorok odovzdať a nemám to ešte ani otestované:

Kód:
program semestralka_matica;
uses crt;
type matica=array[1..20,1..20] of integer;
     pr=array[1..100] of integer;
var hl_matica:matica;
    m,n:integer;

procedure nacitanie_matice ( i,j:integer);
          begin
          clrscr;
          writeln('Zadajte rozmer matice:');
          writeln ('Pocet stlpcov: ');
          read(n);
          writeln('Pocet riadkov: ');
          read(m);
          If (m<=10) and (n<=10) and (m>=2) and (m>=2) then
             begin for i:=1 to m do
                       for j:=1 to n do
                           begin write('Zadajte cislo, ktore sa bude nachadzat v riadku ', i ,' a v stlpci ', j);
                           read(hl_matica[i,j]);
                           end;
             end;
          end;
procedure vypis_hl_matice (i,j:integer);
          begin
               writeln('Vypis matice:');
               writeln;
               for i:=1 to m do
                   begin for j:=1 to n do writeln(hl_matica[i,j]:8);
                   end;
               readkey;
          end;
procedure riadkove_maximum (s,max,riadok:integer);
          begin
               writeln('V ktorom riadku chcete najst maximum?');
               writeln('Riadok cislo: ');
               readln(riadok);
               if (m>=riadok) then begin
                                        max:=0;
                                        for s:=1 to n do
                                            begin if (hl_matica[riadok,s]>max) then max:=hl_matica[riadok,s];
                                                  writeln('Maximum v riadku cislo ', riadok, 'je: ', max);
                                            end;
                                   end
                              else writeln('Zadaliste zlú hodnotu');
               readkey;
           end;
procedure sucet_diagonal ( i,s_hd,s_vd:integer);
          begin
               s_hd:=0;
               s_vd:=0;
               if (m=n) then begin
                            for i:=1 to n do s_hd:=s_hd+hl_matica[i,i];
                            for i:=n downto 1 do s_vd:=s_vd+hl_matica[i,n-i+1];
                            writeln('Sucet hlavne diagonaly je: ');
                            write(s_hd);
                            writeln;
                            writeln('Sucet vedlajsej diagonaly je: ');
                            write(s_vd);
                            readkey;
                            end;
          end;
procedure nulovanie (var pm_matica:matica; i,j:integer);
          begin
               if (m=n) then begin
                                  pm_matica:=hl_matica;
                                  for i:=1 to n do for j:=i+1 to n do pm_matica[i,j]:=0;
                                  for i:=n downto 1 do for j:=n downto (n-i+1) do pm_matica[i,j]:=0;
                                  writeln('Povodna matica je:');
                                  vypis_hl_matice(m,n);
                                  writeln('Nova matica po vynulovani je:');
                                  writeln('Vypis matice:');
                                  writeln;
                                  for i:=1 to n do begin for j:=1 to n do writeln(pm_matica[i,j]:8);
                                                   end;
                             end
                        else writeln('Matica nema rozmer vhodny na nulovanie podla diagonal.');
              writeln('Porkacujte stlacenim lubovolnej klavesy...');
              readkey;
          end;
procedure triedenie_vzostupne (var pm_matica:matica ; p_riadok:pr; i,j,r,b:integer  );
          begin
               pm_matica:=hl_matica;
               r:=0;
               for i:=1 to m do
                               begin
                               for j:=1 to n do begin
                                               r:=r+1;
                                               p_riadok[r]:=pm_matica[i,j];
                                               end;
                               end;
               for i:=2 to r do begin
                                     for j:=r  downto i do begin
                                                           if p_riadok[j-1]>p_riadok[j] then begin
                                                                                             b:=p_riadok[j-1];
                                                                                             p_riadok[j-1]:=p_riadok[j];
                                                                                             p_riadok[j]:=b;
                                                                                             end;
                                                           end;
               r:=0;
               for i:=1 to m do
                               begin
                                    for j:=1 to n do begin
                                                          r:=r+1;
                                                          pm_matica[i,j]:=p_riadok[r];
                                                     end;
                               end;
               writeln('Povodna matica je:');
               writeln;
               for i:=1 to m do for j:=1 to n do writeln(hl_matica[i,j]);
               writeln('Utriedena matica je:');
               writeln;
               for i:=1 to m do for j:=1 to n do writeln(pm_matica[i,j]);
          end;end;
procedure menu (c:byte);
          begin
               writeln('Menu semestralnej prace Olivera Krisku');
               writeln;
               writeln('1....Nacitanie rozmerov a samostnej matice');
               writeln('2....Vypisanie matice');
               writeln('3....Maximum vo zvolenom riadku');
               writeln('4....Sucet diagonal (len v stvorcovej matici)');
               writeln('5....Nulovanie prvkov podla diagonal (len v stvorcovej matici)');
               writeln('6....Vzostupne utriedenie matice');
               writeln('7....Ukoncenie aplikacie');
               writeln('Zvolte si operaciu: ');
               read(c);
               case c of
                        1: nacitanie_matice(m,n);
                        2: vypis_hl_matice(m,n);
                        3: riadkove_maximum(m,n);
                        4: sucet_diagonal(m,n);
                        5: nulovanie(m,n);
                        6: triedenie_vzostupne(m,n);
                        7: halt;
               end;
          end;




begin
menu(c);
end.







_________________
Neverte, že človek sa môže stať šťastným nešťastím druhých. (Seneca)
Neplač, že zapadlo slnko, lebo slzy ti zabrania uvidieť hviezdy.(Einstein)
Fujitsu Siemens Amilio PA1510, 15.4` WXGA CrystalView display, AMD Turion 64 X2 TL50, 2x 512MB DDR2 533MHz RAM, 120GB SATA HDD, ATI Radeon Xpress 1100, USB 2.0, FireWire, PCMCIA typ II, VGA (D-Sub konektor), S-Video (TV out), mikrofón/line-in, sluchátka/line-out, čítačka pamäťových kariet
Pripojenie: WiFi 768 kbps
Offline

Užívateľ
Užívateľ
Pascal-chyba pri volani procedur

Registrovaný: 30.05.07
Prihlásený: 29.03.14
Príspevky: 641
Témy: 46
Príspevok NapísalOffline : 14.12.2008 19:15

ved predsa to ako to spustas ze menu(c) je nezmysel, kedze c nie je ziadna premenna, takze bud das menu(premenna alebo konstanta) alebo to menu moze byt aj bezparametricka procedura - co je teda rozhodne lepsie, kedze to c nacitavas az v procedure, tak naco to ma byt ako parameter


Offline

Užívateľ
Užívateľ
Pascal-chyba pri volani procedur

Registrovaný: 21.11.05
Prihlásený: 18.10.10
Príspevky: 607
Témy: 60
Bydlisko: Prievidza
Príspevok Napísal autor témyOffline : 14.12.2008 19:29

no to c tam pôvodne nebolo...to som len zo zufalstva dával..ide o volanie procedur v procedure menu....vypis_hl_matice až tie ostatné...tie parametre som tam skúšal všeliako dať...







_________________
Neverte, že človek sa môže stať šťastným nešťastím druhých. (Seneca)
Neplač, že zapadlo slnko, lebo slzy ti zabrania uvidieť hviezdy.(Einstein)
Fujitsu Siemens Amilio PA1510, 15.4` WXGA CrystalView display, AMD Turion 64 X2 TL50, 2x 512MB DDR2 533MHz RAM, 120GB SATA HDD, ATI Radeon Xpress 1100, USB 2.0, FireWire, PCMCIA typ II, VGA (D-Sub konektor), S-Video (TV out), mikrofón/line-in, sluchátka/line-out, čítačka pamäťových kariet
Pripojenie: WiFi 768 kbps
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 30.04.08
Prihlásený: 15.05.15
Príspevky: 884
Témy: 3
Príspevok NapísalOffline : 15.12.2008 17:21

Presne, na co volas funckiu nacitanie_matice(); s dvoma premennymi, ked budu ajtak pouzite len ako riadiace premenne cyklu for? A ked vo funkcii menis hodnotu premennej, ktora bola predana ako parameter, tak musis pred nu uvies slovo var, napr. procedure menu (var c:byte);. Skus kazdu funckiu upravit tak, aby nemala ziadne parametre... Nie su imho potrebne...


Offline

Užívateľ
Užívateľ
Pascal-chyba pri volani procedur

Registrovaný: 21.11.05
Prihlásený: 18.10.10
Príspevky: 607
Témy: 60
Bydlisko: Prievidza
Príspevok Napísal autor témyOffline : 15.12.2008 17:35

presne takto som to spravil pred chviľkou ale dakujem za najdenie chyb...zle ma to asi dakto naučil :-)







_________________
Neverte, že človek sa môže stať šťastným nešťastím druhých. (Seneca)
Neplač, že zapadlo slnko, lebo slzy ti zabrania uvidieť hviezdy.(Einstein)
Fujitsu Siemens Amilio PA1510, 15.4` WXGA CrystalView display, AMD Turion 64 X2 TL50, 2x 512MB DDR2 533MHz RAM, 120GB SATA HDD, ATI Radeon Xpress 1100, USB 2.0, FireWire, PCMCIA typ II, VGA (D-Sub konektor), S-Video (TV out), mikrofón/line-in, sluchátka/line-out, čítačka pamäťových kariet
Pripojenie: WiFi 768 kbps
Odpovedať na tému [ Príspevkov: 5 ] 


Podobné témy

 Témy  Odpovede  Zobrazenia  Posledný príspevok 
V tomto fóre nie sú ďalšie neprečítané témy. Pascal - chyba pri I/O

v Assembler, C, C++, Pascal, Java

2

401

12.05.2012 9:53

Kroncisko Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. zmena sessid pri AJAXovom volani

v PHP, ASP

1

375

04.09.2010 16:38

tomxi Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Samsung Monte S5620 (Problém pri volaní)

v Smartfóny a tablety

0

228

03.07.2014 20:58

1adamm115 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Pascal - chyba v kode

v Assembler, C, C++, Pascal, Java

17

790

18.02.2012 23:06

fubu Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. pascal- kde je chyba?

v Assembler, C, C++, Pascal, Java

8

789

02.03.2011 20:58

firefox4 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Chyba v programe Pascal (Lazarus)

v Assembler, C, C++, Pascal, Java

5

486

12.11.2016 19:15

BX Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Vzdialene volanie procedur zlyhalo

v Ovládače

0

1056

05.10.2008 17:19

konig Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. php+mysql viac volaní rovnakej procedúry

v Databázy

2

819

28.01.2009 13:17

rooobertek Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Win 7 - chyba pri starte AsusVibe2.0 a aplikacie pri starte

v Operačné systémy Microsoft

5

1349

31.07.2014 18:07

Megi Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Free Pascal a Turbo Pascal

v Assembler, C, C++, Pascal, Java

0

385

19.12.2014 13:18

Styracoz Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Chyba pri instalacii

v Operačné systémy Microsoft

4

615

20.12.2014 20:29

milan1966 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. chyba pri spustani

v Operačné systémy Microsoft

2

434

06.01.2013 12:52

zaciatocnik787 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. chyba pri inštalácii

v Operačné systémy Microsoft

2

1103

11.11.2006 13:11

quatermain Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Chyba pri aktulizacii

v Operačné systémy Microsoft

1

515

17.09.2012 18:02

44mato44 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Chyba pri kompilacii

v Assembler, C, C++, Pascal, Java

2

941

05.05.2009 11:49

fonseka Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. chyba pri inštalácie

v Operačné systémy Microsoft

2

517

24.11.2010 17:25

hornak Zobrazenie posledných príspevkov


Nemôžete zakladať nové témy v tomto fóre
Nemôžete odpovedať na témy v tomto fóre
Nemôžete upravovať svoje príspevky v tomto fóre
Nemôžete mazať svoje príspevky v tomto fóre

Skočiť na:  

Powered by phpBB Jarvis © 2005 - 2024 PCforum, webhosting by WebSupport, secured by GeoTrust, edited by JanoF
Ako väčšina webových stránok aj my používame cookies. Zotrvaním na webovej stránke súhlasíte, že ich môžeme používať.
Všeobecné podmienky, spracovanie osobných údajov a pravidlá fóra