Ĺadny brzuch
Trzeba napisać cztery funkcje (w jednym zadaniu oczywiście): 1. Funkcja przesuwa największy element danej tablicy na koniec. 2. Funkcja przesuwająca najmniejszy element tablicy na początek.3.Sortuje tablicę metodą bąbelkową: http://dyniax.republ...sort/bubble.htm
4. Mini statystyka , podana musi być liczba wystąpień danego elementu w tablicy i jej * (gwiazdkowy odpowiednik )
Przykład:
Int tablica[15]={2,9,5,7,9,2,4,2,1,8,3,5,7,4,2};
Pierwsza funkcja przesunęła największy element tablicy na koniec (potwierdzenie):
Zawartość tablicy: {2,5,7,9,2,4,2,1,8,3,5,7,4,2,9}
Druga funkcja przesunęła najmniejszy element tablicy na początek (potwierdzenie):
Zawartość tablicy: {1,2,5,7,9,2,4,2,8,3,5,7,4,2,9}
Trzecia funkcja posortowała tablice:
Zawartość tablicy: {1,2,2,2,3,4,4,5,5,7,7,8,9,9} (cos przeoczyłem bo teraz jest mniej liczb w tej tablicy ale każdy wie o co chodzi )
Czwarta funkcja:
STATYSTYKA
Wartość Liczba wystąpień Odpowiednik gwiazdkowy
1 1 *
2 3 ***
3 1 *
4 2 **
itd.
Koniec programu J
Powodzenia
Linki:
http://avocado.risp....k/html/1_1.html
(podmieniamy indeks 1_1 , 1_2 ,1_3 itd.)
http://forum.ks-eksp...showtopic=40073
Odpowiedz: zadanka opublikowane nie są i nie bedą modyfikowane , chyba , że zawierają jakiś błąd logiczny
Użytkownik kanap edytował ten post 16 kwiecień 2005, 17:21
A może ktoś mi podpowie (da linka) jak wywołać funkcje z tablicą typu int i wogóle jak takoą funkcję zdeklarować. Chyba żeby autor zadanka zgodził się na to aby wszystko czynności były wykonane w jednej funkcji.
Już gotowe:
#include <iostream> //======================================================================================== const int MAX = 14; // Ilość elementów tablicy - 1 int ARRAY[] = { 2, 9, 5, 7, 9, 2, 4, 2, 1, 8, 3, 5, 7, 4, 2 }; //tablica void MoveToEnd (void); // void MoveToHome(void); // void BubbleSort(void); // Prototypy funkcji void Statistic (void); // void PrintArray(void); // "Drukuje" tablicę using namespace std; //======================================================================================== int main() { short op; bool end = true; char* str = "nic jeszcze nie zrobiono."; while(end) { cout << "Ostatnio wykonywana akcja: " << str; PrintArray(); cout << "\n\nCo mam zrobic:\n1. Przesunac najwiekszy element tablicy na jej koniec\n"; cout << "2. Przesunac najmniejszy element tablicy na jej poczatek\n"; cout << "3. Posortowac tablice metoda babelkowa\n"; cout << "4. Wyswietlic statystki tablicy\n"; cout << "------------------------------------------------------------\n"; cout << "5. Zakonczyc dzialanie aplikacji\n\n"; cout << "\n\n\n\n\n\n\n\n\n"; cin >> op; cout << endl; switch (op) { case 1 : { MoveToEnd(); str = "najwiekszy element tablicy przeniesiony na koniec"; break; } case 2 : { MoveToHome(); str = "najmniejszy element tablicy przeniesiony na poczatek"; break; } case 3 : { BubbleSort(); str = "sortowanie babelkowe"; break; } case 4 : { Statistic(); str = "prezentacja statystyk"; break; } case 5 : { end = false; break; } default: str = "podano nieprawidlowy indeks operacji"; } } return 0; }; //======================================================================================== void PrintArray(void) { cout << "\n\n============================================================================\ n"; cout << "| "; for(int i=0; i<MAX+1; i++) { cout << ARRAY[i] << " "; } cout << "\n============================================================================\n"; }; //======================================================================================== void MoveToEnd (void) { int max, index; int ARRAY2[MAX+1]; index = 0; max = ARRAY[0]; for(int i=0; i<MAX+1; i++) { if(ARRAY[i] > max) { index = i; max = ARRAY[i]; } ARRAY2[i] = ARRAY[i]; } for(i=0; i<MAX+1; i++) { if(index != i) ARRAY[i] = ARRAY2[i]; else { ARRAY[i] = ARRAY[i+1]; index++; } } ARRAY[MAX] = max; } //======================================================================================== void MoveToHome(void) { int min, index; int ARRAY2[MAX+1]; index = 0; min = ARRAY[0]; for(int i=0; i<MAX+1; i++) { if(ARRAY[i] < min) { index = i; min = ARRAY[i]; } ARRAY2[i] = ARRAY[i]; } for(i=MAX+1; i>0; i--) { if(index != i) ARRAY[i] = ARRAY2[i]; else { ARRAY[i] = ARRAY[i-1]; index--; } } ARRAY[0] = min; } //======================================================================================== void BubbleSort(void) { int a; for(int i=0; i<MAX-1; i++) { for(int j=0; j<MAX; j++) { if(ARRAY[j] > ARRAY[j+1]) { a = ARRAY[j]; ARRAY[j] = ARRAY[j+1]; ARRAY[j+1] = a; } } } } //======================================================================================== void Statistic (void) { int ARRAY2[MAX+1]; int cur, a, j; for(int i=0; i<MAX+1; i++) ARRAY2[i] = ARRAY[i]; BubbleSort(); cur = ARRAY[0]; a = 1; for(i=1; i<MAX+1; i++) { if(ARRAY[i] == cur) a++; else { cout << cur << " " << a << " "; for(j=0; j<a; j++) cout << "*"; cout << endl; cur = ARRAY[i]; a = 1; } } for(i=0; i<MAX+1; i++) ARRAY[i] = ARRAY2[i]; cout << "\n\n\n"; system("PAUSE"); } //========================================================================================
Użytkownik Futhark edytował ten post 16 kwiecień 2005, 16:10
A może ktoś mi podpowie (da linka) jak wywołać funkcje z tablicą typu int i wogóle jak takoą funkcję zdeklarować. Chyba żeby autor zadanka zgodził się na to aby wszystko czynności były wykonane w jednej funkcji.
Zadanie zostało rozwiązanie prawidłowo przez: Futhark
A oto moje rozwiązanie:)
#include <iostream> #include <iomanip> #pragma hdrstop void przesunMaxNaKoniec(int *kas ,int *basia); void presunMinNaPoczatek(int *ola , int *jola); void wyswietlaTabliceKasia(int *ptr ); void zamiana(int &pZ,int &pRef); void sortowanieBabelkowe(int Go[],int wielk); void statystyka(int czest[],int Haha[] , int wiel); const int ala = 15; using std::cout; using std::cin; using std::setw; int main() { int Kasia[ala]={2,9,5,7,9,2,4,2,1,8,3,5,7,4,2}; int czestosc[10]={0}; cout<<"Tak wyglada tablica Kasia na poczatku:\n"; wyswietlaTabliceKasia(Kasia); cout<<"\nPierwsza funkcja przesunela najwiekszy element\n" <<"\ntablicy na koniec (potwierdzenie)\n"; cout<<"\nZawartosc tablicy:\n"; przesunMaxNaKoniec(Kasia,Kasia); wyswietlaTabliceKasia(Kasia); cout<<"\nDruga funkcja przesunela najmniejszy element tablicy\n" <<"\nna poczatek (potwierdzenie):\n"; cout<<"\nZawartosc tablicy:\n"; presunMinNaPoczatek(Kasia ,Kasia); wyswietlaTabliceKasia(Kasia); cout<<"\nTrzecia funkcja posortowala tablice:\n"; cout<<"\nZawartosc tablicy:\n"; sortowanieBabelkowe(Kasia , ala); wyswietlaTabliceKasia(Kasia); cout<<"\nCzwarta funkcja :\n"; cout<<"\nSTATYSTYKA\n"; statystyka(czestosc ,Kasia ,ala); return 0; } void przesunMaxNaKoniec(int *kas,int *basia) { basia++; for(int i=0 ; i < ala; i++) { if(*basia < *kas) { zamiana(*basia ,*kas ); } kas++; basia++; } } void presunMinNaPoczatek(int *ola , int *jola) { ola += ala; jola += ala - 1; for(int i=0 ; i < ala; i++) { if(*ola < *jola) { zamiana(*ola ,*jola ); } ola--; jola--; } } void sortowanieBabelkowe(int Go[],int wielk) { int ladownia; for(int i = 1 ;i < wielk ; i++) for(int j = 0 ; j < wielk - 1 ; j++) if(Go[j] > Go[j+1]) { ladownia=Go[j]; Go[j]=Go[j+1]; Go[j+1]=ladownia; } } void zamiana(int &pZ,int &pRef) { int pom = pZ; pZ = pRef; pRef = pom; } void wyswietlaTabliceKasia(int *ptr) { for(int i=0 ; i<ala ; i++) { std::cout<<*ptr<<'\t'; ++ptr; } } void statystyka(int czest[],int Haha[] , int wiel) { int najwieksza = 0 ,wartosc = 0 , rating; cout<<"\nStatystyka:\n"; for(rating = 0 ; rating <= 9 ; rating++) ++czest[rating] = 0; for(int j = 0 ; j < wiel ; j++) ++czest[Haha[j]]; cout<<"Wartosc"<<setw(15)<<"Wystopien"<<setw(15)<<" Gwiazdki\n\n"; for(rating =1 ;rating <= 9 ;rating++) { cout<<setw(2)<<rating<<setw(14)<<czest[rating]<<setw(13); if(czest[rating]>najwieksza) { najwieksza = czest[rating]; wartosc = rating; } for(int h=1;h<=czest[rating];h++) cout<<"*"; cout<<'\n'; } }
Następne zadanie będzie w Poniedziałek o godzinie 21:00 !!! Zadanka będą publikowane od Poniedziałku do Piatku .
Użytkownik kanap edytował ten post 18 kwiecień 2005, 22:57
zanotowane.pl doc.pisz.pl pdf.pisz.pl zsf.htw.pl
4. Mini statystyka , podana musi być liczba wystąpień danego elementu w tablicy i jej * (gwiazdkowy odpowiednik )
Przykład:
Int tablica[15]={2,9,5,7,9,2,4,2,1,8,3,5,7,4,2};
Pierwsza funkcja przesunęła największy element tablicy na koniec (potwierdzenie):
Zawartość tablicy: {2,5,7,9,2,4,2,1,8,3,5,7,4,2,9}
Druga funkcja przesunęła najmniejszy element tablicy na początek (potwierdzenie):
Zawartość tablicy: {1,2,5,7,9,2,4,2,8,3,5,7,4,2,9}
Trzecia funkcja posortowała tablice:
Zawartość tablicy: {1,2,2,2,3,4,4,5,5,7,7,8,9,9} (cos przeoczyłem bo teraz jest mniej liczb w tej tablicy ale każdy wie o co chodzi )
Czwarta funkcja:
STATYSTYKA
Wartość Liczba wystąpień Odpowiednik gwiazdkowy
1 1 *
2 3 ***
3 1 *
4 2 **
itd.
Koniec programu J
Powodzenia
Linki:
http://avocado.risp....k/html/1_1.html
(podmieniamy indeks 1_1 , 1_2 ,1_3 itd.)
http://forum.ks-eksp...showtopic=40073
Odpowiedz: zadanka opublikowane nie są i nie bedą modyfikowane , chyba , że zawierają jakiś błąd logiczny
Użytkownik kanap edytował ten post 16 kwiecień 2005, 17:21
A może ktoś mi podpowie (da linka) jak wywołać funkcje z tablicą typu int i wogóle jak takoą funkcję zdeklarować. Chyba żeby autor zadanka zgodził się na to aby wszystko czynności były wykonane w jednej funkcji.
Już gotowe:
#include <iostream> //======================================================================================== const int MAX = 14; // Ilość elementów tablicy - 1 int ARRAY[] = { 2, 9, 5, 7, 9, 2, 4, 2, 1, 8, 3, 5, 7, 4, 2 }; //tablica void MoveToEnd (void); // void MoveToHome(void); // void BubbleSort(void); // Prototypy funkcji void Statistic (void); // void PrintArray(void); // "Drukuje" tablicę using namespace std; //======================================================================================== int main() { short op; bool end = true; char* str = "nic jeszcze nie zrobiono."; while(end) { cout << "Ostatnio wykonywana akcja: " << str; PrintArray(); cout << "\n\nCo mam zrobic:\n1. Przesunac najwiekszy element tablicy na jej koniec\n"; cout << "2. Przesunac najmniejszy element tablicy na jej poczatek\n"; cout << "3. Posortowac tablice metoda babelkowa\n"; cout << "4. Wyswietlic statystki tablicy\n"; cout << "------------------------------------------------------------\n"; cout << "5. Zakonczyc dzialanie aplikacji\n\n"; cout << "\n\n\n\n\n\n\n\n\n"; cin >> op; cout << endl; switch (op) { case 1 : { MoveToEnd(); str = "najwiekszy element tablicy przeniesiony na koniec"; break; } case 2 : { MoveToHome(); str = "najmniejszy element tablicy przeniesiony na poczatek"; break; } case 3 : { BubbleSort(); str = "sortowanie babelkowe"; break; } case 4 : { Statistic(); str = "prezentacja statystyk"; break; } case 5 : { end = false; break; } default: str = "podano nieprawidlowy indeks operacji"; } } return 0; }; //======================================================================================== void PrintArray(void) { cout << "\n\n============================================================================\ n"; cout << "| "; for(int i=0; i<MAX+1; i++) { cout << ARRAY[i] << " "; } cout << "\n============================================================================\n"; }; //======================================================================================== void MoveToEnd (void) { int max, index; int ARRAY2[MAX+1]; index = 0; max = ARRAY[0]; for(int i=0; i<MAX+1; i++) { if(ARRAY[i] > max) { index = i; max = ARRAY[i]; } ARRAY2[i] = ARRAY[i]; } for(i=0; i<MAX+1; i++) { if(index != i) ARRAY[i] = ARRAY2[i]; else { ARRAY[i] = ARRAY[i+1]; index++; } } ARRAY[MAX] = max; } //======================================================================================== void MoveToHome(void) { int min, index; int ARRAY2[MAX+1]; index = 0; min = ARRAY[0]; for(int i=0; i<MAX+1; i++) { if(ARRAY[i] < min) { index = i; min = ARRAY[i]; } ARRAY2[i] = ARRAY[i]; } for(i=MAX+1; i>0; i--) { if(index != i) ARRAY[i] = ARRAY2[i]; else { ARRAY[i] = ARRAY[i-1]; index--; } } ARRAY[0] = min; } //======================================================================================== void BubbleSort(void) { int a; for(int i=0; i<MAX-1; i++) { for(int j=0; j<MAX; j++) { if(ARRAY[j] > ARRAY[j+1]) { a = ARRAY[j]; ARRAY[j] = ARRAY[j+1]; ARRAY[j+1] = a; } } } } //======================================================================================== void Statistic (void) { int ARRAY2[MAX+1]; int cur, a, j; for(int i=0; i<MAX+1; i++) ARRAY2[i] = ARRAY[i]; BubbleSort(); cur = ARRAY[0]; a = 1; for(i=1; i<MAX+1; i++) { if(ARRAY[i] == cur) a++; else { cout << cur << " " << a << " "; for(j=0; j<a; j++) cout << "*"; cout << endl; cur = ARRAY[i]; a = 1; } } for(i=0; i<MAX+1; i++) ARRAY[i] = ARRAY2[i]; cout << "\n\n\n"; system("PAUSE"); } //========================================================================================
Użytkownik Futhark edytował ten post 16 kwiecień 2005, 16:10
A może ktoś mi podpowie (da linka) jak wywołać funkcje z tablicą typu int i wogóle jak takoą funkcję zdeklarować. Chyba żeby autor zadanka zgodził się na to aby wszystko czynności były wykonane w jednej funkcji.

Zadanie zostało rozwiązanie prawidłowo przez: Futhark
A oto moje rozwiązanie:)
#include <iostream> #include <iomanip> #pragma hdrstop void przesunMaxNaKoniec(int *kas ,int *basia); void presunMinNaPoczatek(int *ola , int *jola); void wyswietlaTabliceKasia(int *ptr ); void zamiana(int &pZ,int &pRef); void sortowanieBabelkowe(int Go[],int wielk); void statystyka(int czest[],int Haha[] , int wiel); const int ala = 15; using std::cout; using std::cin; using std::setw; int main() { int Kasia[ala]={2,9,5,7,9,2,4,2,1,8,3,5,7,4,2}; int czestosc[10]={0}; cout<<"Tak wyglada tablica Kasia na poczatku:\n"; wyswietlaTabliceKasia(Kasia); cout<<"\nPierwsza funkcja przesunela najwiekszy element\n" <<"\ntablicy na koniec (potwierdzenie)\n"; cout<<"\nZawartosc tablicy:\n"; przesunMaxNaKoniec(Kasia,Kasia); wyswietlaTabliceKasia(Kasia); cout<<"\nDruga funkcja przesunela najmniejszy element tablicy\n" <<"\nna poczatek (potwierdzenie):\n"; cout<<"\nZawartosc tablicy:\n"; presunMinNaPoczatek(Kasia ,Kasia); wyswietlaTabliceKasia(Kasia); cout<<"\nTrzecia funkcja posortowala tablice:\n"; cout<<"\nZawartosc tablicy:\n"; sortowanieBabelkowe(Kasia , ala); wyswietlaTabliceKasia(Kasia); cout<<"\nCzwarta funkcja :\n"; cout<<"\nSTATYSTYKA\n"; statystyka(czestosc ,Kasia ,ala); return 0; } void przesunMaxNaKoniec(int *kas,int *basia) { basia++; for(int i=0 ; i < ala; i++) { if(*basia < *kas) { zamiana(*basia ,*kas ); } kas++; basia++; } } void presunMinNaPoczatek(int *ola , int *jola) { ola += ala; jola += ala - 1; for(int i=0 ; i < ala; i++) { if(*ola < *jola) { zamiana(*ola ,*jola ); } ola--; jola--; } } void sortowanieBabelkowe(int Go[],int wielk) { int ladownia; for(int i = 1 ;i < wielk ; i++) for(int j = 0 ; j < wielk - 1 ; j++) if(Go[j] > Go[j+1]) { ladownia=Go[j]; Go[j]=Go[j+1]; Go[j+1]=ladownia; } } void zamiana(int &pZ,int &pRef) { int pom = pZ; pZ = pRef; pRef = pom; } void wyswietlaTabliceKasia(int *ptr) { for(int i=0 ; i<ala ; i++) { std::cout<<*ptr<<'\t'; ++ptr; } } void statystyka(int czest[],int Haha[] , int wiel) { int najwieksza = 0 ,wartosc = 0 , rating; cout<<"\nStatystyka:\n"; for(rating = 0 ; rating <= 9 ; rating++) ++czest[rating] = 0; for(int j = 0 ; j < wiel ; j++) ++czest[Haha[j]]; cout<<"Wartosc"<<setw(15)<<"Wystopien"<<setw(15)<<" Gwiazdki\n\n"; for(rating =1 ;rating <= 9 ;rating++) { cout<<setw(2)<<rating<<setw(14)<<czest[rating]<<setw(13); if(czest[rating]>najwieksza) { najwieksza = czest[rating]; wartosc = rating; } for(int h=1;h<=czest[rating];h++) cout<<"*"; cout<<'\n'; } }
Następne zadanie będzie w Poniedziałek o godzinie 21:00 !!! Zadanka będą publikowane od Poniedziałku do Piatku .
Użytkownik kanap edytował ten post 18 kwiecień 2005, 22:57