prebublavanie
Moderátori: psichac, Moderátori
prebublavanie
Zdravim... mam tu jeden zdrojovy kod od majka ( diky ) mohli by ste mi to trochu bližšie vysvetlit ?
Program Šprotky
#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;
}
Program Šprotky
#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
- 25majo40
- Stály člen
- Príspevky: 106
- Dátum registrácie: 22 Jún 2013, 12:45
- Bydlisko: Takmer Prešov
- Vek: 26
Re: prebublavanie
Sportka
Najprv je vytvorene pole o velkosti 7
Potom v prvom for je nacitane tych sedem cisel
Ale zakladna cast programu je tato
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 ta si zoberies dalsi pohar a to je ta pomoc docasne tam uchovas hodnotu
Posledny for sluzi uz len na vypisanie to je cele
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;
}
}
}
Posledny for sluzi uz len na vypisanie to je cele
0
Elektronika is my love
- 25majo40
- Stály člen
- Príspevky: 106
- Dátum registrácie: 22 Jún 2013, 12:45
- Bydlisko: Takmer Prešov
- Vek: 26
Re: prebublavanie
A aby si si otestoval ci si tomu pochopil tak prerob ten program tak, aby sa ta sam spytal, ze kolko cisel ma vyzrebovat a potom ten pocet cisel zoradil od najmensieho po najvacsie
0
Elektronika is my love
- dxr
- Ultimate člen
- Príspevky: 3968
- Dátum registrácie: 05 Aug 2013, 20:21
- Bydlisko: V strede nicoho
- Kontaktovať používateľa:
Re: prebublavanie
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....
a zapisat do fajlu tam to uvidi ako to prehazduje prvky pripadne hned za ten prvy for....
0
- 25majo40
- Stály člen
- Príspevky: 106
- Dátum registrácie: 22 Jún 2013, 12:45
- Bydlisko: Takmer Prešov
- Vek: 26
Re: prebublavanie
dxr- podla mna je to zbytocne potom je z toho tazsie vyjst zaklad je ked tomu chape on sam
0
Elektronika is my love
Re: prebublavanie
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ť ?
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
0
Re: prebublavanie
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
>
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
0
rad pomožem druhym, ak viem
Re: prebublavanie
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.
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
- 25majo40
- Stály člen
- Príspevky: 106
- Dátum registrácie: 22 Jún 2013, 12:45
- Bydlisko: Takmer Prešov
- Vek: 26
Re: prebublavanie
ak tomu nechapes skus si za to dosadit cisla
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 v jednom pohary mas 5(petku) v druhom 3(trojku) ako ich vymenis zoberiem si dalsi pohar (pomoc) a tam nalejem cislo 5 takze pohar kde bola 5 je prazdny tak dam tam teraz trojku a tam kde bola trojka dam z toho pohara pomoc 5 petku
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 v jednom pohary mas 5(petku) v druhom 3(trojku) ako ich vymenis zoberiem si dalsi pohar (pomoc) a tam nalejem cislo 5 takze pohar kde bola 5 je prazdny tak dam tam teraz trojku a tam kde bola trojka dam z toho pohara pomoc 5 petku
0
Elektronika is my love
- 25majo40
- Stály člen
- Príspevky: 106
- Dátum registrácie: 22 Jún 2013, 12:45
- Bydlisko: Takmer Prešov
- Vek: 26
Re: prebublavanie
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 ale ked si davas vypisat cisla po usporiadani
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
Re: prebublavanie
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.
Teraz mi vypísalo aj usporiadané čísla.
0
- 25majo40
- Stály člen
- Príspevky: 106
- Dátum registrácie: 22 Jún 2013, 12:45
- Bydlisko: Takmer Prešov
- Vek: 26
Re: prebublavanie
ved v tom programe ide len o to, aby tie cisla usporiadalo od najmensieho po najvacsie a nie nieje to osetrene proti nule a tak isto moze sa aj viac krat to iste cislo vygenerovat
0
Elektronika is my love
Re: prebublavanie
Tu je tento triediaci algoritmus nazorne vysvetleny: http://youtu.be/lyZQPjUT5B4
0