Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <cstdlib>
- #include <iostream>// Input output stream
- #include <ctime> // time used for random number generation
- using namespace std;
- // ------------------------------------------------------------ //
- // Funkciju prototipai
- void numberGen(int a[], int n, int x, int y);
- void printOut(int a[], int n);
- void bubbleSort(int a[], int n);
- float findMedian(int a[], int n);
- // ------------------------------------------------------------ //
- // Pagrindine programa
- int main(int argc, char *argv[])
- {
- srand(time(NULL)); // Atsitiktiniu skaiciu generavimas.
- int n; // Kitamasis nustato masyvo A dydi.
- int x, y; // Intervalo [x:y] kintamieji. Galima intepretuoti kaip min max.
- cout << "Kiek elementu yra masyve? "; cin >> n; // Atspausdina teksta ekrane
- int A[n]; // Sukuriamas masyvas pagal vartotojo yvesta dydi 'n' taupant atminti.
- cout << "Kokio dydzio intervalas? [X : Y]" << endl; // Atspausdina teksta ekrane
- cin >> x >> y; // Vartotojas nurodo [x:y] intervala.
- // Kvieciamos funkcijos
- cout << "\n\nAtsitiktiniu skaiciu eilute: " << endl;
- numberGen(A, n, x, y); // Sukuriami atsitiktiniai skaiciai.
- printOut(A, n); // Tie skaiciai atspauzdinami ekrane.
- cout << "\n\nSkaiciai surusiuoti didejimo tvarka: " << endl;
- bubbleSort(A, n); // Skaiciai surusiuojami.
- printOut(A, n); // Surusiuoti skaiciai atspauzdinami ekrane.
- cout << "\n\nSios eilutes mediana yra: " << findMedian(A, n) << endl; // Atspauzdinamas atsakymas.
- cout << " " << endl;
- return 0;
- }
- // ------------------------------------------------------------ //
- // Funkcijos
- void numberGen(int a[], int n, int x, int y)
- {
- for (int i = 0; i < n; i++)
- a[i] = x + (rand() %(y - x + 1));
- // Generuojamas skaicius is [x:y] intervalo kiekvienam masyvo a[i] elementui.
- }
- void printOut(int a[], int n)
- {
- for (int i = 0; i < n; i++)
- cout << a[i] << " ";
- cout << endl;
- }
- void bubbleSort(int a[], int n) // Naudojamas "bubble sort" rusiavimo metodas,
- { // kad isrykiuoti skaicius didejimo tvarka
- int temp;
- for (int i = 0; i < n; i++)
- {
- for (int j = i+1; j < n; j++)
- {
- if (a[i] > a[j])
- {
- temp = a[i];
- a[i] = a[j];
- a[j] = temp;
- }
- }}}
- float findMedian(int a[], int n)
- {
- // Laikini kintamieji
- float median;
- int location;
- float average;
- if (n % 2 == 0) // Jei yra lyginis skaicius elementu, tai reikes rasti du viduriniuosius.
- {
- location = n / 2 ;
- average = a[location];
- location--;
- average += a[location];
- average /= 2;
- median = average;
- }
- else // Jeigu yra nelyginis skaicius elementu, reikia rasti tik vidurini.
- {
- location = n / 2;
- median = a[location];
- }
- return median; // Grazinama mediana
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement