prebublavanie

C,C++,C#

Moderátori: psichac, Moderátori

stanly120
Stály člen
Stály člen
Príspevky: 175
Dátum registrácie: 01 Mar 2014, 17:19
Bydlisko: Prešov

prebublavanie

Príspevok od používateľa stanly120 » 16 Apr 2014, 17:12

Zdravim... mam tu jeden zdrojovy kod od majka :D ( diky :D ) mohli by ste mi to trochu bližšie vysvetlit ? :D

Program Šprotky :D

#include <cstdlib>
#include <iostream>
#include <time.h>
using namespace std;

int main(int argc, char *argv[])
{
int pole[7],i,j,pomoc;
cout << "Sportka"<<endl;
srand(time(0));
cout<<"Vyzrebovane cisla su : "<<endl;
for(i=0;i<7;i++)
{
pole=rand()%50;
cout<<pole<<endl;
}
for (i=0;i<7;i++)
{
for (j=0;j<6;j++)
{
if(pole[j]>pole[j+1])
{
pomoc=pole[j];
pole[j]=pole[j+1];
pole[j+1]=pomoc;
}
}
}
cout<<"\nCisla sportky su : "<<endl;
for (i=0;i<7;i++)
{
cout<<"\t"<<pole<<endl;
}


system("PAUSE");
return 0;
}
0
rad pomožem druhym, ak viem

Používateľov profilový obrázok
25majo40
Stály člen
Stály člen
Príspevky: 106
Dátum registrácie: 22 Jún 2013, 12:45
Bydlisko: Takmer Prešov
Vek: 26

Re: prebublavanie

Príspevok od používateľa 25majo40 » 16 Apr 2014, 17:22

Sportka :D

Najprv je vytvorene pole o velkosti 7
Potom v prvom for je nacitane tych sedem cisel

Ale zakladna cast programu je tato

Kód: Vybrať všetko

for (i=0;i<7;i++)
{
for (j=0;j<6;j++)
{
if(pole[j]>pole[j+1])
{
pomoc=pole[j];
pole[j]=pole[j+1];
pole[j+1]=pomoc;
}
}
}
Ide vlastne o to, ze potrebujes tie cisla, ktore ti vygenerovalo (vyzrebovalo) zoradit od najmensieho . Najjednoduchsi priklad je prelievanie. Predstav si, ze mas 2 pohare pohar cislo 1 a pohar cislo 2 v jednotke mas colu v dvojke vodu a potrebujes, dostat colu do dvojky a vodu do jednotky :D ta si zoberies dalsi pohar a to je ta pomoc :D docasne tam uchovas hodnotu :D

Posledny for sluzi uz len na vypisanie :D to je cele :D
0
Elektronika is my love

Používateľov profilový obrázok
25majo40
Stály člen
Stály člen
Príspevky: 106
Dátum registrácie: 22 Jún 2013, 12:45
Bydlisko: Takmer Prešov
Vek: 26

Re: prebublavanie

Príspevok od používateľa 25majo40 » 16 Apr 2014, 17:35

A aby si si otestoval ci si tomu pochopil tak prerob ten program tak, aby sa ta sam spytal, ze kolko cisel ma vyzrebovat :D a potom ten pocet cisel zoradil od najmensieho po najvacsie
0
Elektronika is my love

Používateľov profilový obrázok
dxr
Ultimate člen
Ultimate člen
Príspevky: 3968
Dátum registrácie: 05 Aug 2013, 20:21
Bydlisko: V strede nicoho
Kontaktovať používateľa:

Re: prebublavanie

Príspevok od používateľa dxr » 16 Apr 2014, 19:05

To vyzera ako bublesort? Este si to moze vypisat po kazdom prehodeni prvkov
a zapisat do fajlu tam to uvidi ako to prehazduje prvky pripadne hned za ten prvy for....
0
Mahátma Ghándí: „Nejdřív tě budou ignorovat. Pak se ti budou smát. Pak proti tobě budou bojovat. Potom zvítězíš.“
čo viac dodať som taký a možeš to skúsiť vyhrať aj tak to vzdáš.. Obrázok
Arduino is popular becouse allow complex task with minimum investment

Používateľov profilový obrázok
25majo40
Stály člen
Stály člen
Príspevky: 106
Dátum registrácie: 22 Jún 2013, 12:45
Bydlisko: Takmer Prešov
Vek: 26

Re: prebublavanie

Príspevok od používateľa 25majo40 » 16 Apr 2014, 19:17

dxr- podla mna je to zbytocne potom je z toho tazsie vyjst :D zaklad je ked tomu chape on sam
0
Elektronika is my love

Používateľov profilový obrázok
Pozitron
Stály člen
Stály člen
Príspevky: 312
Dátum registrácie: 20 Dec 2011, 19:49

Re: prebublavanie

Príspevok od používateľa Pozitron » 22 Apr 2014, 19:44

Ahoj 25majo40
Opísal som kód "Športka" a vyskúšal. Posielam dva obrázky : vedel by si ten kód (isteže áno) trochu vyleštiť ?
Prílohy
Tu mi to dáva nulu. Nula sa asi nežrebuje ...
Tu mi to dáva nulu. Nula sa asi nežrebuje ...
Tu mi to dáva dve desiny - obyčajne býva iba jedna ...
Tu mi to dáva dve desiny - obyčajne býva iba jedna ...
0

stanly120
Stály člen
Stály člen
Príspevky: 175
Dátum registrácie: 01 Mar 2014, 17:19
Bydlisko: Prešov

Re: prebublavanie

Príspevok od používateľa stanly120 » 27 Apr 2014, 16:49

Mohli by ste mi niekto vysvetliť toto>>>>>>>>>>>>
>


if(pole[j]>pole[j+1])
{
pomoc=pole[j];
pole[j]=pole[j+1];
pole[j+1]=pomoc;
}

pozeram na to už asi 10 min a nemožem prist na to :D
0
rad pomožem druhym, ak viem

Používateľov profilový obrázok
Mat77
Pokročilý člen
Pokročilý člen
Príspevky: 749
Dátum registrácie: 11 Nov 2012, 08:30
Bydlisko: Košice
Vek: 28

Re: prebublavanie

Príspevok od používateľa Mat77 » 27 Apr 2014, 16:56

Ak som to dobre pochopil...

Povedzme ze v poli su 2 cisla zasebou. Ak je 1. cislo vacsie ako 2. cislo, tak sa vzajomne vymenia. Ak su rovne, pripadne 2.>1. tak sa nic nedeje.
0

Používateľov profilový obrázok
25majo40
Stály člen
Stály člen
Príspevky: 106
Dátum registrácie: 22 Jún 2013, 12:45
Bydlisko: Takmer Prešov
Vek: 26

Re: prebublavanie

Príspevok od používateľa 25majo40 » 27 Apr 2014, 16:56

:D ak tomu nechapes skus si za to dosadit cisla :D

if(pole[j]>pole[j+1])
{
pomoc=pole[j];
pole[j]=pole[j+1];
pole[j+1]=pomoc;
}

ak cislo, ktore je v pole[j] je vacsie ako cislo v pole[j+1] tak ich proste vymeni :D v jednom pohary mas 5(petku) v druhom 3(trojku) ako ich vymenis :D zoberiem si dalsi pohar (pomoc) a tam nalejem cislo 5 :D takze pohar kde bola 5 je prazdny tak dam tam teraz trojku :D a tam kde bola trojka dam z toho pohara pomoc 5 petku :D
0
Elektronika is my love

Používateľov profilový obrázok
petersno
Ultimate člen
Ultimate člen
Príspevky: 2774
Dátum registrácie: 06 Aug 2011, 00:00
Bydlisko: ba
Vek: 63

Re: prebublavanie

Príspevok od používateľa petersno » 27 Apr 2014, 17:01

prirad prvkom pola rozne hodnoty a sleduj, co sa udeje :wink:
0

Používateľov profilový obrázok
25majo40
Stály člen
Stály člen
Príspevky: 106
Dátum registrácie: 22 Jún 2013, 12:45
Bydlisko: Takmer Prešov
Vek: 26

Re: prebublavanie

Príspevok od používateľa 25majo40 » 27 Apr 2014, 17:11

Pozitron napísal:Ahoj 25majo40
Opísal som kód "Športka" a vyskúšal. Posielam dva obrázky : vedel by si ten kód (isteže áno) trochu vyleštiť ?

Tak ten kod trochu vylepsim :D ale :D ked si davas vypisat cisla po usporiadani :D

Tak ty tam mas toto :

for (i=0;i<7;i++)
{
cout<<"\t"<<endl;
}

A ma tam byt toto :
for (i=0;i<7;i++)
{
cout<<"\t"<<pole<<endl;
}
0
Elektronika is my love

Používateľov profilový obrázok
Pozitron
Stály člen
Stály člen
Príspevky: 312
Dátum registrácie: 20 Dec 2011, 19:49

Re: prebublavanie

Príspevok od používateľa Pozitron » 27 Apr 2014, 21:32

Hej, urobil som chybu pri opisovaní. Ale aj tak neviem, či je to ošetrené proti nule a viacnásobnému výskytu toho istého čísla (alebo niekedy možno aj znaku).
Teraz mi vypísalo aj usporiadané čísla.
Prílohy
Ashampoo_Snap_2014.04.27_21h26m21s_001_.png
0

Používateľov profilový obrázok
25majo40
Stály člen
Stály člen
Príspevky: 106
Dátum registrácie: 22 Jún 2013, 12:45
Bydlisko: Takmer Prešov
Vek: 26

Re: prebublavanie

Príspevok od používateľa 25majo40 » 27 Apr 2014, 21:36

:D ved v tom programe ide len o to, aby tie cisla usporiadalo od najmensieho po najvacsie :D a nie nieje to osetrene proti nule :D a tak isto moze sa aj viac krat to iste cislo vygenerovat
0
Elektronika is my love

milanbb
Okoloidúci
Okoloidúci
Príspevky: 47
Dátum registrácie: 17 Nov 2013, 20:12

Re: prebublavanie

Príspevok od používateľa milanbb » 27 Apr 2014, 22:57

Tu je tento triediaci algoritmus nazorne vysvetleny: http://youtu.be/lyZQPjUT5B4
0

Napísať odpoveď