| | |
| Stránka: 1 z 1
| [ Príspevkov: 5 ] | |
Autor | Správa |
---|
Registrovaný: 21.11.05 Prihlásený: 18.10.10 Príspevky: 607 Témy: 60 Bydlisko: Prievidza |
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 |
|
Registrovaný: 30.05.07 Prihlásený: 29.03.14 Príspevky: 641 Témy: 46 |
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
|
|
Registrovaný: 21.11.05 Prihlásený: 18.10.10 Príspevky: 607 Témy: 60 Bydlisko: Prievidza |
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 |
|
Registrovaný: 30.04.08 Prihlásený: 15.05.15 Príspevky: 884 Témy: 3 |
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...
|
|
Registrovaný: 21.11.05 Prihlásený: 18.10.10 Príspevky: 607 Témy: 60 Bydlisko: Prievidza |
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 |
|
| Stránka: 1 z 1
| [ Príspevkov: 5 ] | |
Podobné témy | Témy | Odpovede | Zobrazenia | Posledný príspevok |
---|
| Pascal - chyba pri I/O v Assembler, C, C++, Pascal, Java | 2 | 401 | 12.05.2012 9:53 Kroncisko | | zmena sessid pri AJAXovom volani v PHP, ASP | 1 | 375 | 04.09.2010 16:38 tomxi | | Samsung Monte S5620 (Problém pri volaní) v Smartfóny a tablety | 0 | 228 | 03.07.2014 20:58 1adamm115 | | Pascal - chyba v kode v Assembler, C, C++, Pascal, Java | 17 | 790 | 18.02.2012 23:06 fubu | | pascal- kde je chyba? v Assembler, C, C++, Pascal, Java | 8 | 789 | 02.03.2011 20:58 firefox4 | | Chyba v programe Pascal (Lazarus) v Assembler, C, C++, Pascal, Java | 5 | 486 | 12.11.2016 19:15 BX | | Vzdialene volanie procedur zlyhalo v Ovládače | 0 | 1056 | 05.10.2008 17:19 konig | | php+mysql viac volaní rovnakej procedúry v Databázy | 2 | 819 | 28.01.2009 13:17 rooobertek | | 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 | | Free Pascal a Turbo Pascal v Assembler, C, C++, Pascal, Java | 0 | 385 | 19.12.2014 13:18 Styracoz | | Chyba pri instalacii v Operačné systémy Microsoft | 4 | 615 | 20.12.2014 20:29 milan1966 | | chyba pri spustani v Operačné systémy Microsoft | 2 | 434 | 06.01.2013 12:52 zaciatocnik787 | | chyba pri inštalácii v Operačné systémy Microsoft | 2 | 1103 | 11.11.2006 13:11 quatermain | | Chyba pri aktulizacii v Operačné systémy Microsoft | 1 | 515 | 17.09.2012 18:02 44mato44 | | Chyba pri kompilacii v Assembler, C, C++, Pascal, Java | 2 | 941 | 05.05.2009 11:49 fonseka | | chyba pri inštalácie v Operačné systémy Microsoft | 2 | 517 | 24.11.2010 17:25 hornak |
| 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
|
|