Advertisement
bartkoo

tablice

Feb 20th, 2021
98
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 9.57 KB | None | 0 0
  1. #include <iostream>
  2. #include <string>
  3. #include <cstdlib>
  4. #include <ctime>
  5.  
  6. using namespace std;
  7.  
  8. void zadanie1_fill(int tab[], int t_size);
  9. void zadanie1_show(int tab[], int t_size);
  10. int zadanie1_sum(int tab[], int t_size);
  11. int zadanie4_min(int tab[], int t_size);
  12. int zadanie4_max(int tab[], int t_size);
  13. void zadanie5_fill(int tab[], int t_size);
  14. int zadanie5_check(int tab[], int t_size, int input);
  15. void zadanie6_pow(int tab[], int t_size);
  16. void zadanie9_make(int tabA[], int tabB[], int tabC[], int t_size, int r_range);
  17.  
  18. template <typename tab_2D>
  19. void zadanie10_make(tab_2D tab, int t_size_x, int t_size_y);
  20.  
  21. void zadanie11_draw(int tab[], int t_size);
  22. int zadanie11_check(int tabL[], int tabU[], int t_size);
  23.  
  24. template <typename tab_2D>
  25. int zadanie14_fill(tab_2D tab, int t_size_x, int t_size_y);
  26.  
  27. template <typename tab_2D>
  28. auto zadanie8(tab_2D tab, int t_size_x, int t_size_y){
  29.     //zwraca tylko pierwszego z najwyzsza srednia (jesli jest takich 2 to 2. jest ignorowany)
  30.     struct _ {float u_id, u_av;};
  31.     float av;
  32.     float tab_hi[] = {-1, -1};
  33.     for(int x=0;x<t_size_x;x++){
  34.         av=0;
  35.         for(int y=0;y<t_size_y;y++){
  36.             cout<<"Uczen nr: " + to_string(x+1) + " -> ocena nr: " + to_string(y+1) + " wynosi: ";
  37.             cin>>tab[x][y];
  38.             av += tab[x][y];
  39.         }
  40.         av /= t_size_y;
  41.         if (tab_hi[1] < av){
  42.             tab_hi[0] = x;
  43.             tab_hi[1] = av;
  44.         }
  45.     }
  46.     return _ {tab_hi[0], tab_hi[1]};
  47. }
  48.  
  49. int main()
  50. {
  51.     srand(time(NULL));
  52.  
  53.     //zadanie1
  54.     cout<<endl<<"Zadanie 1:"<<endl<<endl;
  55.     int tab_z1[5];
  56.     zadanie1_fill(tab_z1, 5);
  57.     zadanie1_show(tab_z1, 5);
  58.     int zadanie1_suma = zadanie1_sum(tab_z1, 5);
  59.     cout<<zadanie1_suma<<endl;
  60.  
  61.  
  62.     //zadanie2
  63.     cout<<endl<<"Zadanie 2:"<<endl<<endl;
  64.     int tab_z2[10];
  65.     for(int i = 0; i<10; i++){
  66.         tab_z2[i] = 1 + rand()%50;
  67.         cout<<tab_z2[i]<<endl;
  68.     }
  69.  
  70.  
  71.     //zadanie3
  72.     cout<<endl<<"Zadanie 3:"<<endl<<endl;
  73.     for(int i=0;i<10; i++) cout<<"Tab[" + to_string(i) + "]=" + to_string(tab_z2[i]) + ";"<<endl;
  74.  
  75.  
  76.     //zadanie4
  77.     cout<<endl<<"Zadanie 4:"<<endl<<endl;
  78.     int min_z2 = zadanie4_min(tab_z2, 10);
  79.     int max_z2 = zadanie4_max(tab_z2, 10);
  80.     cout<<"Najmniejsza wartosc tablicy znajduje sie na pozycji: " + to_string(min_z2) + " -> wartosc: " + to_string(tab_z2[min_z2])<<endl;
  81.     cout<<"Najwieksza wartosc tablicy znajduje sie na pozycji: " + to_string(max_z2) + " -> wartosc: " + to_string(tab_z2[max_z2])<<endl;
  82.  
  83.  
  84.     //zadanie5
  85.     cout<<endl<<"Zadanie 5:"<<endl<<endl;
  86.     int input_z5;
  87.     int tab_z5[50];
  88.     zadanie5_fill(tab_z5, 50);
  89.     cout<<"Podaj l.calkowita: ";
  90.     cin>>input_z5;
  91.     while(!(input_z5>0 && input_z5<101)){
  92.         cout<<"Podaj l.calkowita z zakresu (1 - 100): ";
  93.         cin>>input_z5;
  94.     }
  95.     int index_z5 = zadanie5_check(tab_z5, 50, input_z5);
  96.     if(index_z5 != -1) cout<<"Index: " + to_string(index_z5) + " -> wartosc: " + to_string(tab_z5[index_z5])<<endl;
  97.     else cout<<"W tablicy nie ma liczby podanej przez uzytkownika"<<endl;
  98.  
  99.  
  100.     //zadanie6
  101.     cout<<endl<<"Zadanie 6:"<<endl<<endl;
  102.     int tab_z6[8];
  103.     for(int i=0;i<8;i++){
  104.         cout<<"Podaj liczbe nr " + to_string(i+1) + " : ";
  105.         cin>>tab_z6[i];
  106.     }
  107.     zadanie6_pow(tab_z6, 8);
  108.     for(int i=0;i<8;i++) cout<<"tab_z6[" + to_string(i) + "]=" + to_string(tab_z6[i])<<endl;
  109.  
  110.  
  111.     //zadanie7
  112.     cout<<endl<<"Zadanie 7:"<<endl<<endl;
  113.     int tab_z7[10];
  114.     for(int i=0;i<10;i++){
  115.         tab_z7[i] = i*i;
  116.         cout<<"tab_z7[" + to_string(i) + "]=" + to_string(tab_z7[i])<<endl;
  117.     }
  118.  
  119.  
  120.     //zadanie8
  121.     cout<<endl<<"Zadanie 8:"<<endl<<endl;
  122.     int tab_z8[4][5];
  123.     auto [u_id, u_av] = zadanie8(tab_z8, 4, 5);
  124.     cout<<"Najwyzsza srednia mial uczen nr: " + to_string((int)u_id + 1) + " a wyniosla ona -> " + to_string(u_av) <<endl;
  125.  
  126.  
  127.     //zadanie9
  128.     cout<<endl<<"Zadanie 9:"<<endl<<endl;
  129.     int t_size;
  130.     int range;
  131.     cout<<"Podaj ilosc elementow tablicy: ";
  132.     cin>>t_size;
  133.     cout<<"Podaj granice przedzialu: ";
  134.     cin>>range;
  135.     int tabA[t_size], tabB[t_size], tabC[t_size];
  136.     zadanie9_make(tabA, tabB, tabC, t_size, range);
  137.     for(int i=0;i<t_size;i++) cout<<to_string(tabA[i]) + " + " + to_string(tabB[i]) + " -> " + "tabC[" + to_string(i) + "]=" + to_string(tabC[i])<<endl;
  138.  
  139.  
  140.     //zadanie10
  141.     cout<<endl<<"Zadanie 10:"<<endl<<endl;
  142.     int tab_z10[3][4];
  143.     zadanie10_make(tab_z10, 3, 4);
  144.  
  145.  
  146.     //zadanie11
  147.     cout<<endl<<"Zadanie 11:"<<endl<<endl;
  148.     int tabL[] = {-1, -1, -1, -1, -1, -1};
  149.     int tabU[6];
  150.     zadanie11_draw(tabL, 6);
  151.     int correct = zadanie11_check(tabL, tabU, 6);
  152.     for(int i=0;i<6;i++){
  153.         cout<<"Wylosowana liczba nr " + to_string(i+1) + " : "<<tabL[i]<<endl;
  154.     }
  155.     cout<<"Wynik: " + to_string(correct) +"/6"<<endl;
  156.  
  157.  
  158.     //zadanie12
  159.     cout<<endl<<"Zadanie 12:"<<endl<<endl;
  160.     srand(time(NULL));
  161.     int w_num;
  162.     int w_sum = 0;
  163.     int tab_z12[10][10];
  164.     for(int i=0;i<10;i++){
  165.         for(int ii=0;ii<10;ii++) {tab_z12[i][ii] = 1 + (rand()%100); cout<<tab_z12[i][ii]<<"\t";}
  166.         cout<<endl;
  167.     }
  168.     cout<<"Podaj nr wiersza do zsumowania: ";
  169.     cin>>w_num;
  170.     w_num --;
  171.     while(!((w_num > 0) && (w_num < 10))){
  172.         cout<<"Podaj poprawny numer wiersza do zsumowania: ";
  173.         cin>>w_num;
  174.     }
  175.     for(int i=0;i<10;i++) w_sum += tab_z12[w_num][i];
  176.     cout<<"Suma liczb w wierszu nr: " + to_string(w_num + 1) + " wynosi: " + to_string(w_sum)<<endl;
  177.  
  178.  
  179.     //zadanie13
  180.     cout<<endl<<"Zadanie 13:"<<endl<<endl;
  181.     int z13_size;
  182.     cout<<"Podaj wielkosc tablicy kwadratowej: ";
  183.     cin>>z13_size;
  184.     while(!z13_size > 0){
  185.         cout<<"Podaj poprawna wielkosc tablicy kwadratowej: ";
  186.         cin>>z13_size;
  187.     }
  188.     cout<<endl;
  189.     int tab_z13[z13_size][z13_size];
  190.     for(int i=0;i<z13_size;i++){
  191.         for(int ii=0;ii<z13_size;ii++) tab_z13[i][ii] = 1;
  192.         tab_z13[i][i] = 0;
  193.         for(int ii=0;ii<z13_size;ii++) cout<<tab_z13[i][ii]<<" ";
  194.         cout<<endl;
  195.     }
  196.  
  197.  
  198.     //zadanie14
  199.     cout<<endl<<"Zadanie 14:"<<endl<<endl;
  200.     int tab_z14[5][5];
  201.     int z14_count = zadanie14_fill(tab_z14, 5, 5);
  202.     for(int i=0;i<5;i++){
  203.         for(int ii=0;ii<5;ii++) cout<<tab_z14[i][ii]<<"\t";
  204.         cout<<endl;
  205.     }
  206.     cout<<endl<<"12 przekracza: "<<z14_count<<" elementow!"<<endl;
  207.  
  208.  
  209.     //zadanie15
  210.     cout<<endl<<"Zadanie 15:"<<endl<<endl;
  211.     int tab_z15[8][8];
  212.     int z15_suma = 0;
  213.     for(int i=0;i<8;i++){
  214.         for(int ii=0;ii<8;ii++){
  215.             tab_z15[i][ii] = 1 + rand()%10;
  216.             cout<<tab_z15[i][ii]<<"\t";
  217.         }
  218.         cout<<endl;
  219.         z15_suma += tab_z15[i][i];
  220.     }
  221.     cout<<endl<<"Suma na glownej przekatnej wynosi: "<<z15_suma<<endl;
  222.  
  223.     return 0;
  224. }
  225.  
  226. void zadanie1_fill(int tab[], int t_size){
  227.     int tab_size = &tab[t_size - 1] - &tab[0];
  228.     for (int i=0;i<=tab_size;i++){
  229.         cout<<"Podaj element nr " + to_string(i) + " : ";
  230.         cin>>tab[i];
  231.     }
  232. }
  233.  
  234. void zadanie1_show(int tab[], int t_size){
  235.     for(int i =0;i<t_size;i++) cout<<tab[i]<<endl;
  236. }
  237.  
  238. int zadanie1_sum(int tab[], int t_size){
  239.     int sum = 0;
  240.     for(int i=0;i<t_size;i++) sum += tab[i];
  241.     return sum;
  242. }
  243.  
  244. int zadanie4_min(int tab[], int t_size){
  245.     int min_t = 0;
  246.     for(int i=1;i<t_size;i++){
  247.         if(tab[min_t] > tab[i]) min_t = i;
  248.     }
  249.     return min_t;
  250. }
  251.  
  252. int zadanie4_max(int tab[], int t_size){
  253.     int max_t = 0;
  254.     for(int i=1;i<t_size;i++){
  255.         if(tab[max_t] < tab[i]) max_t = i;
  256.     }
  257.     return max_t;
  258. }
  259.  
  260. void zadanie5_fill(int tab[], int t_size){
  261.     for(int i = 0;i<t_size; i++){
  262.         tab[i] = 1 + rand()%100;
  263.     }
  264. }
  265.  
  266. int zadanie5_check(int tab[], int t_size, int input){
  267.     for(int i = 0; i<t_size; i++){
  268.         if(tab[i]==input) return i;
  269.     }
  270.     return -1;
  271. }
  272.  
  273. void zadanie6_pow(int tab[], int t_size){
  274.     for(int i = 0; i<t_size; i++){
  275.         tab[i] = tab[i]*tab[i];
  276.     }
  277. }
  278.  
  279. void zadanie9_make(int tabA[], int tabB[], int tabC[], int t_size, int r_range){
  280.     for(int i=0;i<t_size;i++){
  281.         tabA[i] = rand()%(r_range + 1);
  282.         tabB[i] = rand()%(r_range + 1);
  283.         tabC[i] = tabA[i] + tabB[i];
  284.     }
  285. }
  286.  
  287. template <typename tab_2D>
  288. void zadanie10_make(tab_2D tab, int t_size_x, int t_size_y){
  289.     int e_count = 0;
  290.     int all_count = 0;
  291.     for(int x=0;x<t_size_x;x++){
  292.         for(int y=0;y<t_size_y;y++){
  293.             tab[x][y] = 1 + (rand()%100);
  294.             cout<<tab[x][y]<<"\t";
  295.             e_count ++;
  296.             all_count += tab[x][y];
  297.         }
  298.         cout<<endl;
  299.     }
  300.     cout<<endl<<"Ilosc elementow: " + to_string(e_count)<<endl;
  301.     cout<<"Suma elementow: " + to_string(all_count)<<endl;
  302.     cout<<"Srednia: " + to_string((float)all_count/e_count)<<endl;
  303. }
  304.  
  305. void zadanie11_draw(int tab[], int t_size){
  306.     for(int i=0;i<t_size;i++){
  307.         tab[i] = 1 + (rand()%50);
  308.         for(int ii=0;ii<i;ii++){
  309.             if(tab[ii] == tab[i]) {i--; break;}
  310.         }
  311.     }
  312. }
  313.  
  314. int zadanie11_check(int tabL[], int tabU[], int t_size){
  315.     int correct = 0;
  316.     for(int i=0;i<t_size;i++){
  317.         cout<<"Podaj liczbe nr " + to_string(i+1) + " : ";
  318.         cin>>tabU[i];
  319.         for(int ii=0;ii<t_size;ii++){
  320.             if(tabU[i]==tabL[ii]) {correct ++; break;}
  321.         }
  322.     }
  323.     return correct;
  324. }
  325.  
  326. template <typename tab_2D>
  327. int zadanie14_fill(tab_2D tab, int t_size_x, int t_size_y){
  328.     int e_count = 0;
  329.     for(int i=0;i<t_size_x;i++){
  330.         for(int ii=0;ii<t_size_y;ii++){
  331.             tab[i][ii] = 1 + rand()%20;
  332.             if(tab[i][ii] > 12) e_count++;
  333.         }
  334.     }
  335.     return e_count;
  336. }
  337.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement