Tytu³: Sortowanie - podstawa zarz±dzania baz danych Wiadomo¶æ wys³ana przez: 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". Tytu³: Odp: Sortowanie - podstawa zarz±dzania baz danych Wiadomo¶æ wys³ana przez: admin 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; } Tytu³: Odp: Sortowanie - podstawa zarz±dzania baz danych Wiadomo¶æ wys³ana przez: admin 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; } Tytu³: Odp: Sortowanie - podstawa zarz±dzania baz danych Wiadomo¶æ wys³ana przez: admin 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. Tytu³: Odp: Sortowanie - podstawa zarz±dzania baz danych Wiadomo¶æ wys³ana przez: admin 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; } Tytu³: Odp: Sortowanie - podstawa zarz±dzania baz danych Wiadomo¶æ wys³ana przez: admin 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
Tytu³: Odp: Sortowanie - podstawa zarz±dzania baz danych Wiadomo¶æ wys³ana przez: admin 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
Tytu³: Odp: Sortowanie - podstawa zarz±dzania baz danych Wiadomo¶æ wys³ana przez: admin 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¶æ. Tytu³: Odp: Sortowanie - podstawa zarz±dzania baz danych Wiadomo¶æ wys³ana przez: admin 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±.
Tytu³: Odp: Sortowanie - podstawa zarz±dzania baz danych Wiadomo¶æ wys³ana przez: admin 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; } Tytu³: Odp: Sortowanie - podstawa zarz±dzania baz danych Wiadomo¶æ wys³ana przez: admin 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; } Tytu³: Odp: Sortowanie - podstawa zarz±dzania baz danych Wiadomo¶æ wys³ana przez: admin 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; } Tytu³: Odp: Sortowanie - podstawa zarz±dzania baz danych Wiadomo¶æ wys³ana przez: admin 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; } Tytu³: Odp: Sortowanie - podstawa zarz±dzania baz danych Wiadomo¶æ wys³ana przez: admin 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. Tytu³: Odp: Sortowanie - podstawa zarz±dzania baz danych Wiadomo¶æ wys³ana przez: admin 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; } |