admin
|
 |
« : Listopad 17, 2010, 08:23:12 » |
|
Sortowanie ma za zadanie uporz¹dkowanie zbioru danych wed³ug zadanego kryterium. Zadane kryterium sortowania mo¿e byÌ wartoœÌ liczby, pierwsza litera umieszczonego s³owa, d³ugoœÌ s³owa. Uwaga nieuporz¹dkowana tablica nie pozwoli lub znacznie wyd³u¿y wykonanie funkcji wyboru. Czyli np. na zrealizowanie polecenia wybrania z grupy osób o imieniu "£ukasz".
|
|
« Ostatnia zmiana: Listopad 24, 2010, 08:17:42 wysłane przez admin »
|
Zapisane
|
|
|
|
admin
|
 |
« Odpowiedz #1 : Listopad 17, 2010, 08:26:27 » |
|
Zadanie 1. Proszê utworzyÌ dwie tablice o dwuelementowe o nazwach A i B. Do pierwszej proszê wpisaÌ z klawiatury dwie dowolne liczby. Do drugiej tablicy liczby powinny byÌ automatycznie przepisane z tablicy A w porz¹dku rosn¹cym. WyœwietliÌ zawartoœÌ obu tablic na ekranie.
#include <cstdlib> #include <iostream>
using namespace std;
int main(int argc, char *argv[]) { int A[2],B[2]; int a,b,c; for(a=0;a<=1;a++){ cout<<"Podaj "<<a+1<<" element tablcy A: "; cin>>A[a];} if (A[1]<A[0]){B[0]=A[1];B[1]=A[0];} else {B[0]=A[0];B[1]=A[1];} for(a=0;a<=1;a++){cout.width(3); cout<<A[a];} cout<<endl; for(a=0;a<=1;a++){cout.width(3); cout<<B[a];} cout<<endl; system("PAUSE"); return EXIT_SUCCESS; }
|
|
« Ostatnia zmiana: Listopad 17, 2010, 09:20:04 wysłane przez admin »
|
Zapisane
|
|
|
|
admin
|
 |
« Odpowiedz #2 : Listopad 17, 2010, 09:09:10 » |
|
Zadanie 2. Proszê utworzyÌ dwie tablice pozwalaj¹ce na wprowadzenie trzech zmiennych o nazwach A i B. Do pierwszej proszê wpisaÌ z klawiatury trzy dowolne liczby. Do drugiej tablicy liczby powinny byÌ automatycznie przepisane z tablicy A w porz¹dku rosn¹cym. WyœwietliÌ zawartoœÌ obu tablic na ekranie.
#include <cstdlib> #include <iostream>
using namespace std; int main(int argc, char *argv[]) {int z[3],b[3]; for (int c=0;c<3;c++){ cout<<"Podaj "<<c+1<<" wartoÂśc : ";cin>>z[c];}
if ((z[2]<=z[1]) &&(z[2]<=z[0])) {b[0]=z[2]; if (z[1]<=z[0]){b[1]=z[1];b[2]=z[0];} else{b[1]=z[0]; b[2]=z[1];}} else if ((z[0]<=z[1]) &&(z[0]<=z[2])) {b[0]=z[0]; if (z[1]<=z[2]){b[1]=z[1];b[2]=z[2];} else{b[1]=z[2];b[2]=z[1];}} else if ((z[1]<=z[0]) &&(z[1]<=z[2])) {b[0]=z[1]; if (z[2]<=z[0]){b[1]=z[2];b[2]=z[0];} else{b[1]=z[0];b[2]=z[2];}}; for(int c=0;c<=2;c++) {cout.width(4);cout<<z[c];} cout<<endl; for(int d=0; d<=2;d++){cout.width(4);cout<<b[d];} cout<<endl; system("PAUSE"); return EXIT_SUCCESS; }
|
|
« Ostatnia zmiana: Listopad 17, 2010, 10:30:28 wysłane przez admin »
|
Zapisane
|
|
|
|
admin
|
 |
« Odpowiedz #3 : Listopad 17, 2010, 11:01:43 » |
|
Przedstawione powy¿ej algorytmy sortowania s¹ skuteczne tylko dla niewielkiej liczby danych w tablicy. Powy¿ej trzech elementów tworzenie "drabinki if...if...if " wprowadza powa¿ny chaos. Dlatego opracowano pewne techniki pozwalaj¹ce na uporz¹dkowanie zmiennych bez absorbowania zbyt du¿ej liczby zmiennych. Pierwszym omawianym algorytmem sortowania jest algorytm sortowania b¹belkowego. Algorytm sortowania b¹belkowego polega na porównywaniu par elementów le¿¹cych obok siebie i, jeœli jest to potrzebne, zmienianiu ich kolejnoœci. Czyli w pierwszym przebiegu porównujemy (i ewentualnie zamieniamy):
1 - Element pierwszy i drugi 2 Element drugi i trzeci ... n-ty Element (n-1)-wszy i n-ty
KaÂżdy element jest tak dÂługo przesuwany w ciÂągu, aÂż napotkany zostanie element mniejszy od niego, wtedy w nastĂŞpnych krokach przesuwany jest ten mniejszy element.
|
|
« Ostatnia zmiana: Listopad 24, 2010, 08:18:16 wysłane przez admin »
|
Zapisane
|
|
|
|
admin
|
 |
« Odpowiedz #4 : Listopad 17, 2010, 12:50:38 » |
|
Zadanie 3. ProszĂŞ wprowadziĂŚ do tablicy trzy liczby i nastĂŞpnie posortowaĂŚ je w porzÂądku rosnÂącym.WykorzystaĂŚ algorytm sortowania bÂąbelkowego
#include <cstdlib> #include <iostream>
using namespace std;
int main(int argc, char *argv[]) {int a[3],b[3]; int r,y,z; for(r=0;r<3;r++) {cout<<"Podaj liczbĂŞ :";cin>>a[r];b[r]=a[r]; }
for(r=0;r<2;r++){ for(y=2;y>r;y--){ if(a[y]<a[y-1]){z=a[y];a[y]=a[y-1];a[y-1]=z;} }}
for(r=0;r<3;r++) {cout.width(4);cout<<a[r];} cout<<endl; system("PAUSE"); return EXIT_SUCCESS; }
|
|
« Ostatnia zmiana: Listopad 17, 2010, 12:53:25 wysłane przez admin »
|
Zapisane
|
|
|
|
admin
|
 |
« Odpowiedz #5 : Listopad 17, 2010, 13:13:55 » |
|
Zadanie 4. ProszĂŞ wprowadziĂŚ do tablicy piĂŞĂŚ liczb i nastĂŞpnie posortowaĂŚ je w porzÂądku rosnÂącym.WykorzystaĂŚ algorytm sortowania bÂąbelkowego
|
|
|
Zapisane
|
|
|
|
admin
|
 |
« Odpowiedz #6 : Listopad 17, 2010, 13:15:24 » |
|
Zadanie 5. NapisaĂŚ program wprowadzajÂący do tablicy dane i sortujÂący tablicĂŞ o dowolnym wymiarze. WykorzystaĂŚ algorytm sortowania bÂąbelkowego
|
|
|
Zapisane
|
|
|
|
admin
|
 |
« Odpowiedz #7 : Listopad 24, 2010, 08:30:16 » |
|
Sortowanie korzystajÂące z algorytmu : dziel i zwyciĂŞÂżaj. Uwaga Opisywana jest metoda ktĂłra w koĂącowej fazie wprowadza scalanie.
Ten sposób sortowania polega na dzieleniu zbiór danych na coraz mniejsze czêœci i rozwi¹zywaniu problemów lokalnych. Jest to trochê niefortunne t³umaczenie algorytmu, bo moim zdaniem algorytm powinien nazywaÌ siê: dziel-rozwi¹¿-po³¹cz. Przedstawiany algorytm dziel i zwyciê¿aj wygl¹da nastêpuj¹co: - Dziel- dzielimy ci¹g na dwa i te dwie czêœci jeszcze na dwie itd, do chwili uzyskania mo¿liwoœci prostego sortowania - Zwycie¿aj - porz¹dkuje utworzone przez dzielenie krótkie zbiory danych - Po³¹cz- ³¹czy uporz¹dkowane ci¹gi w jedn¹ ca³oœÌ.
|
|
« Ostatnia zmiana: Grudzień 14, 2010, 17:16:07 wysłane przez admin »
|
Zapisane
|
|
|
|
admin
|
 |
« Odpowiedz #8 : Listopad 24, 2010, 09:43:32 » |
|
InnÂą metodÂą sortowania jest metoda sortowania nazywana szybkÂą. Polega one na wybraniu liczby (tzw. elementu osiowego) ze zbioru i przerzuceniu liczb mniejszych od wartoÂści elementu osiowego na jego lewÂą stronĂŞ, a wiĂŞkszych elementĂłw na prawÂą.
|
|
|
Zapisane
|
|
|
|
admin
|
 |
« Odpowiedz #9 : Marzec 09, 2011, 08:35:23 » |
|
WywoÂłanie funkcji pseudo losowej wersja1 .
#include <cstdlib> #include <iostream>
using namespace std;
int main(int argc, char *argv[]) {int a[5]; int z; srand(time(NULL)); for(int z=0;z<5;z++){ a[z]=1+rand()%100;};
for(int c=0;c<10,c++;){cout<<a[c]<<endl;}; system("PAUSE"); return EXIT_SUCCESS; }
|
|
« Ostatnia zmiana: Marzec 09, 2011, 09:36:53 wysłane przez admin »
|
Zapisane
|
|
|
|
admin
|
 |
« Odpowiedz #10 : Marzec 09, 2011, 09:06:29 » |
|
Zadanie. Program wpisujÂący do tablicy 5 liczb pseudolosowych. W tablicy liczby sÂą sortowane rosnÂąco i wyÂświetlane na ekranie
#include <cstdlib> #include <iostream>
using namespace std;
int main(int argc, char *argv[]) {int a[5]; int z1; //losowanie srand(time(NULL)); for(int z=0;z<5;z++){ a[z]=1+rand()%100;}; //wyÂświetlanie for(z1=0;z1<5;z1++){cout<<a[z1]<<endl;}; cout<<endl; //sortowanie for(int s=0;s<5;s++){ for(int y=4;y>=s;y--) { if(a[y]<a[y-1]){z1=a[y];a[y]=a[y-1];a[y-1]=z1;} }}
//wyÂświetlanie for(z1=0;z1<5;z1++){cout<<a[z1]<<endl;}; system("PAUSE"); return EXIT_SUCCESS; }
|
|
|
Zapisane
|
|
|
|
admin
|
 |
« Odpowiedz #11 : Marzec 09, 2011, 09:44:28 » |
|
Zadanie Adam P _v1. Podobnie jak w poprzednim zadaniu lecz program wykorzystuje funkcje.
#include <cstdlib> #include <iostream>
using namespace std; int a[5]; int z1;
void los(int d[5]) {srand(time(NULL)); for(int z=0;z<5;z++){ a[z]=1+rand()%100;}};
void wysw(int d[5]) {for(z1=0;z1<5;z1++){cout<<a[z1]<<endl;}}; void sort(int d[5]){ for(int s=0;s<5;s++){ for(int y=4;y>=s;y--) { if(a[y]<a[y-1]){z1=a[y];a[y]=a[y-1];a[y-1]=z1;} }};}
int main(int argc, char *argv[]) { los(a); wysw(a); sort(a); wysw(a);
system("PAUSE"); return EXIT_SUCCESS; }
|
|
|
Zapisane
|
|
|
|
admin
|
 |
« Odpowiedz #12 : Marzec 09, 2011, 09:55:07 » |
|
Zadanie Adam P _v2. Podobnie jak w poprzednim zadaniu lecz program wykorzystuje funkcje dodatkowo uporzÂądkowano sprawĂŞ zmiennych.
#include <cstdlib> #include <iostream>
using namespace std;
void los(int d[5]) {srand(time(NULL)); for(int z=0;z<5;z++){ d[z]=1+rand()%100;}};
void wysw(int d[5]) {for(int z1=0;z1<5;z1++){cout<<d[z1]<<endl;}}; void sort(int d[5]){ for(int s=0;s<5;s++){ for(int y=4;y>=s;y--) { if(d[y]<d[y-1]){int z1=d[y];d[y]=d[y-1];d[y-1]=z1;} }};}
int main(int argc, char *argv[]) {int a[5]; los(a); wysw(a); sort(a); wysw(a);
system("PAUSE"); return EXIT_SUCCESS; }
|
|
|
Zapisane
|
|
|
|
admin
|
 |
« Odpowiedz #13 : Marzec 09, 2011, 10:13:40 » |
|
Zadanie 1. NapisaĂŚ program ktĂłry do tablicy 10 elementowej wpisze 10 losowych liczb z zakresu od 6 do 18. NastĂŞpnie posortuje je rosnÂąco.
include <cstdlib> #include <iostream>
using namespace std;
void los(int d[5]) {srand(time(NULL)); for(int z=0;z<5;z++){ d[z]=6+rand()%12;}};
void wysw(int d[5]) {for(int z1=0;z1<5;z1++){cout<<d[z1]<<endl;}}; void sort(int d[5]){ for(int s=0;s<5;s++){ for(int y=4;y>=s;y--) { if(d[y]<d[y-1]){int z1=d[y];d[y]=d[y-1];d[y-1]=z1;} }};}
int main(int argc, char *argv[]) {int a[5]; los(a); wysw(a); sort(a); wysw(a);
system("PAUSE"); return EXIT_SUCCESS; } Zadanie 2. Podobnie jak poprzednie zadanie, ale wpisane do tablicy liczby nie mogÂą siĂŞ powtarzaĂŚ. #include <cstdlib> #include <iostream>
using namespace std;
void los(int d[10]) {srand(time(NULL)); int w[19]; for(int r=0;r<19;r++){w[r]=0;} for(int z=0;z<10;){ int n=6+rand()%12; if (w[n]==0){d[z]=n;z++;w[n]=1;} }};
void wysw(int d[10]) {for(int z1=0;z1<10;z1++){cout<<d[z1]<<endl;}}; void sort(int d[10]){ for(int s=0;s<10;s++){ for(int y=9;y>=s;y--) { if(d[y]>d[y-1]){int z1=d[y];d[y]=d[y-1];d[y-1]=z1;} }};}
int main(int argc, char *argv[]) {int a[10]; los(a); wysw(a); cout<<endl<<endl; sort(a); wysw(a);
system("PAUSE"); return EXIT_SUCCESS; }
Zadanie 3. Podobnie jak w zadaniu 2, tylko sortowanie od najwiĂŞkszej do najmniejszej.
Zadanie 4. Podobnie jak w zadaniu 3 , ale w funkcji g³ównej (main{}) wpisano tylko wywo³anie funkcji zewnêtrznych.
|
|
« Ostatnia zmiana: Marzec 09, 2011, 12:42:47 wysłane przez admin »
|
Zapisane
|
|
|
|
admin
|
 |
« Odpowiedz #14 : Marzec 16, 2011, 08:42:31 » |
|
Zadanie 7. NapisaĂŚ program ktĂłry losuje liczby od 0 do 50 i wyÂświetla je na ekranie. JeÂżeli wylosowana zostanie liczba= 5 to losowanie zostaje zatrzymane. StworzyĂŚ wÂłasnÂą funkcjĂŞ losowania.#include <cstdlib> #include <iostream> using namespace std; void los(void) {srand(time(NULL));int n;int b; for (b=1;  {n=rand()%51; cout.width(4);cout<<n; if (n==5){break;} };cout<<endl;}; int main(int argc, char *argv[]) {los(); system("PAUSE"); return EXIT_SUCCESS; }
|
|
|
Zapisane
|
|
|
|
|