Stránka: 1 z 1
| [ Príspevkov: 11 ] | |
Autor | Správa |
---|
Registrovaný: 23.12.10 Prihlásený: 10.09.22 Príspevky: 1056 Témy: 157 | 157 Bydlisko: KK/PP/BA |
cawte. Pokusam sa napisat program, ktory nacita lubovolny pocet cisel do pola a potom ich zoradi od najmensieho po najvetsie. Ja nemam ani sajnu ako ich zoradit.
Myslim ze treba najprv kazdy prvok pola prechadzat danym cislom a skontrolovat ci je vetsie (kontrolovalo by sa odzadu) ak je mensie ako cislo pred nim a vetsie ako cislo za nim, tak by vsetky vetsie cisla posunulo doprava, spravilo miesto na to cislo a ulozilo ho. Lenze ja neviem, alebo nerozumiem, ako to prepisat do pascalu. Mohol by mi niekto prosim spravit ten algoritmus? nemusi byt cely program, ale iba toto. dakujem
|
|
Registrovaný: 01.12.09 Prihlásený: 20.04.19 Príspevky: 862 Témy: 26 | 26 Bydlisko: Žilina |
Použi [url=http://sk.wikipedia.org/wiki/Bublinkové_triedenie]bubble sort[/url], to by ťa mali naučiť ak ste preberali cykly.
_________________ PC :ASUSTeK M2A-VM, AMD Phenom X3 8650 AM2 @ 2,3 Ghz, 4 GB RAM DDR2 1800 MHz, SAPPHIRE HD 6770 VAPOR-X 1GB DDR5, 400W Zdroj, 500 GB HDD, Windows Vista 64 bit
Notebook : Asus EEEPC 1201NL, intel Atom N270 512 KB L2 Cache 533 MHz FSB @ 1,6 Ghz, 1 GB DDR2 RAM, nVidia ION, 320 GB HDD, Windows XP 32 bit
Iná technika : LG P500 (806 Mhz, Android 2.3.3 Gingerbread, root, JIT), Koss Pathfinder, kedysi iPhone =( |
|
Registrovaný: 23.12.10 Prihlásený: 10.09.22 Príspevky: 1056 Témy: 157 | 157 Bydlisko: KK/PP/BA |
vyzera to dobre, asi to je presne co som hladal vdaka.
_________________ HP ProBook 4530s Intel® Core™ i5-2430M (2.4GHz, 3MB, 2 jadrá)*4GB 1333MHz DDR3*ATI Mobility Radeon HD 6490 1GB + Intel HD Graphics 3000*640GB SATA 5400RPM *Windows 7 Home Premium 64 bitová verzia Lenovo IdeaPad Z50-70 Intel Core i5 4210 Haswell* NVIDIA GeForce GT 840M 4GB + Intel HD Graphics 4000*SSHD 1TB 5400 otáčok + 8GB cache*RAM 4GB* Full HD (1920 × 1080)*Windows 10 pro
Boh je reálny, pokial nebol deklarovaný ako integer |
|
Registrovaný: 19.10.10 Prihlásený: 28.10.12 Príspevky: 41 Témy: 9 | 9 |
popripade mozes skusit este aj ine typy sortov - insertion sort alebo selection sort. Ak to chces urobit efektivne, tak merge sort alebo quick sort. Pseudokody su na wikipedii.
|
|
Registrovaný: 23.12.10 Prihlásený: 10.09.22 Príspevky: 1056 Témy: 157 | 157 Bydlisko: KK/PP/BA |
znovu trocha pootravujem.
nastudoval som si ten bubble sort. vyskusal som si jeden priklad a fungovalo to.
teraz som chcel napisat program na sposob kena. uzivatel by zadal 10 cisel a pc by vypisalo 10 cisel vygenerovanych od 1 do 70. potom ich zoradi a vypise. Dalej bude nasledovat porovnavanie a nakoniec vypise uhadnute cisla a spravne tipy.
zdrojovy kod:
Kód: uses crt; var a,p: array [1..10] of integer; i,k,o,pocitadlo,c:integer; begin clrscr; pocitadlo:=0; //----------------------------------------------------- writeln ('zadaj 10 cisel od 1 do 70 \pokracuj enterom'); for i:=1 to 10 do begin readln (c); if (c >= 1) and (c <= 70) then a[i]:=c else writeln ('zadal si zle cislo'); end; clrscr; writeln ('tvoje stastne cisla: '); for i:=1 to 10 do begin write (a[i],','); end; writeln; writeln; writeln ('vyzrebovane cisla: '); for i:=1 to 10 do begin p[i]:=random(70)+1; write (p[i],','); end; //-------------------------------------------------------- for i:=9 downto 1 do begin for o:=1 to i do begin if a[o] > a[o+1] then begin k:=a[o]; a[o]:=a[o+1]; a[o]:=k; end; end; end; for i:=9 downto 1 do begin for o:=1 to i do begin if p[o] > p[o+1] then begin k:=p[o]; p[o]:=p[o+1]; p[o]:=k; end; end; end; //---------------------------------------------------------------- writeln; writeln; writeln; writeln ('tvoje usporiadane cisla: '); for i:=1 to 10 do write (a[i],','); writeln; writeln; writeln ('vyzrebovane a usporiadane cisla: '); for i:=1 to 10 do write (p[i],','); //----------------------------------------------------------------- writeln; writeln; writeln ('uhadnute cisla: '); for i:=9 downto 1 do begin for o:=1 to i do begin if a[i] = p[i] then begin pocitadlo:=pocitadlo+1; write (p[i],','); end; end; end; //--------------------------------------------------------------------- writeln; writeln; writeln ('pocet spravnych typov je: ',pocitadlo,' z 10'); readln; end.
program funguje ale, cisla nezoradi, ale vypise v tom istom poradi, a to porovnavane polia su tam tiez zle, pretoze program nevypise nic.
|
|
Registrovaný: 11.08.07 Príspevky: 4088 Témy: 34 | 34 Bydlisko: Brno |
Samozrejme, ze ich nezoradi, posledny riadok tej vetvy ma byt a[o+1]:=k;
Na tom porovnavani sa mi nieco nezda, zmaz ho a napis cele odznova. Lebo ten tvoj vnutorny cyklus s pocitadlom o tam mas zbytocne, a porovnavas vzdy len a[i] = p[i], ale to je zasa blbost, lebo si mozu byt rovne napriklad a[3] a p[5], ale to sa u teba neukaze. Navyse, preco ten vonkajsi cyklus zacinas pri cisle 9 a nie pri 10?
|
|
Registrovaný: 23.12.10 Prihlásený: 10.09.22 Príspevky: 1056 Témy: 157 | 157 Bydlisko: KK/PP/BA |
jasne to p/a[o+1] som si nevsimol. to bol len preklep
pri tom porovnavani som ta kus nepochopil... nemam ani sajnu ako to porovnat. na internete som nic nenasiel a ja som myslel ze bude prve cislo pola a[1] prechadzat cele pole p[i] a tak bude pokracovat ay na koniec.
vonkajsi cyklus zacinam pri 9 preto, lebo asi potrebujem 1 prvok pola prazdny, pri tom vymienani, lebo ked dam 10, tak nacita cisla a program vypise chybu.
vysledne mi ukaze vsetky 10 cisel. ale skusim v deklaracii pola rozsirit o 1 prvok a cyklus zacnem pri 10.
|
|
Registrovaný: 27.12.08 Prihlásený: 13.12.22 Príspevky: 1874 Témy: 96 | 96 Bydlisko: Bratislava,... |
to zoradovanie mas dobre ze to ide od 9.. ale to porovnavanie pustaj od 10 a aj vnutorny cyklus od 10.. proste kazde s kazdym.... lebo ti neporovna vsetky prvky iba najskor 9, potom 8 atd...
_________________ ~Listen to your brain, not your heart~ NB1: Lenovo Y500: CPU: Intel Core i7-3630QM; GPU: nVidia GT650M 2GB SLi; RAM: 16GB DDR3; HDD: 1TB + 256GB SSD (m4); LCD: 15,6" 1920x1080; OS: Win8.1 64-bit + Arch Linux 64-bit (UEFI Powered DualBoot) NB2: Asus K53SJ-SX093: CPU: Intel Core i3-2310M; GPU: Intel HD3000 / nVidia GT520M 1GB Optimus; RAM: 8GB DDR3; SSD: 128GB 840Evo; LCD: 15,6" 1366x768; OS: Win 8.1 Pro 64-bit (UEFI) |
|
Registrovaný: 23.12.10 Prihlásený: 10.09.22 Príspevky: 1056 Témy: 157 | 157 Bydlisko: KK/PP/BA |
takze prepisal som to a aj tak to nefunguje.
riesme iba porovnavaci algoritmus.
napisal som na to zvlast program:
Kód: uses crt; var p,a: array [1..5] of integer; i,k,pocitadlo: integer; begin clrscr; for i:=1 to 5 do begin p[i]:=random(10)+1; write (p[i],','); end; writeln; for i:=1 to 5 do begin a[i]:=random(10)+1; write (a[i],','); end; pocitadlo:=0; writeln; writeln ('rovnake cisla su: '); for i:=5 downto 1 do begin for k:=1 to i do begin if p[i] = a[i] then begin pocitadlo:=pocitadlo+1; write (p[i],','); end; end; end; writeln; writeln ('pocet rovnakych cisel je: ',pocitadlo,' z 10'); readln; end. vysledok mi vyhodi od veci. ked, chcem tie cisla premiesat a napisem randomize, tak vysledok vyjde 0 tak ako v programe vysie. Kód: clrscr; randomize; for i:=1 to 5 do begin ...
nemam ani sajnu, preco to robi... dakujem.
|
|
Registrovaný: 19.10.10 Prihlásený: 28.10.12 Príspevky: 41 Témy: 9 | 9 |
if p[i] = a[i] - tato podmienka nema zmysel. Porovnas prve cislo s prvym, druhe s druhym...ale nie povedzme prve s tretim. Skus tam dat if p[i] = a[k] , lebo inak ti je ten vnutorny for cyklus uplne nanic.
|
|
Registrovaný: 23.12.10 Prihlásený: 10.09.22 Príspevky: 1056 Témy: 157 | 157 Bydlisko: KK/PP/BA |
dakujem zaefrim takze tam bol cely zadrhel... este by trebalo nieco spravit s tym premiesanim.
|
|
Stránka: 1 z 1
| [ Príspevkov: 11 ] | |
Podobné témy | Témy | Odpovede | Zobrazenia | Posledný príspevok |
---|
| v Assembler, C, C++, Pascal, Java | 2 | 559 | 17.12.2011 18:36 fubu | | [ Choď na stránku: 1, 2 ] v PC zostavy | 37 | 1923 | 25.01.2017 9:44 Xaltotun | | v Assembler, C, C++, Pascal, Java | 0 | 430 | 19.12.2014 13:18 Styracoz | | v Ponuka práce | 0 | 1618 | 09.06.2008 13:41 Jurdo | | v Ekonomika, práca, biznis, podnikanie a peniaze | 20 | 1914 | 21.01.2011 7:49 vladopt | | v Assembler, C, C++, Pascal, Java | 8 | 1041 | 11.07.2011 14:35 marian_r | | v Ponuka práce | 0 | 635 | 02.02.2012 13:32 exet | | v Ekonomika, práca, biznis, podnikanie a peniaze | 15 | 3255 | 18.04.2011 7:02 Jarkou | | v Pamäte | 1 | 369 | 02.12.2012 2:30 AdrianVAIO | | v Vzdelanie, štúdium, škola | 0 | 361 | 26.10.2020 11:23 DanielH | | v Video programy | 3 | 680 | 04.08.2008 19:30 Mandy | | v Assembler, C, C++, Pascal, Java | 16 | 1838 | 21.01.2014 19:52 ac.milan | | v Ostatné | 3 | 693 | 16.04.2009 17:51 tomxi | | v Assembler, C, C++, Pascal, Java | 7 | 666 | 09.10.2011 21:30 F3RY | | v Assembler, C, C++, Pascal, Java | 11 | 1326 | 07.04.2007 16:50 programator | | v Assembler, C, C++, Pascal, Java | 7 | 874 | 14.05.2011 20:04 F3RY |
|