Advertisement
Guest User

Untitled

a guest
Jun 29th, 2017
137
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 6.22 KB | None | 0 0
  1. /*Zad.1.Napisz program, który poprosi użytkownika o podawanie dwóch liczb tak długo, aż jedna z nich będzie zerem.
  2. Dla każdej pary liczb program ma wyliczyć ich średnią harmoniczną. Funkcja ma zwracać wynik funkcji main(), która z kolei wynik ten ma pokazać.*/
  3.  
  4.  
  5. #include <iostream>
  6. #include <windows.h>
  7. #include <cstdio>
  8.  
  9.  
  10. using namespace std;
  11.  
  12. double liczby(double x, double y)
  13. {
  14.     double srednia = 2 / ((1/x)+(1/y));
  15.  
  16.     return srednia;
  17. }
  18.  
  19. int main()
  20. {
  21.     double x, y;
  22.  
  23.     while(x!=0 && y!=0)
  24.     {
  25.         cout<<"Podaj 1-wsza liczbe: ";
  26.         cin>>x;
  27.  
  28.         cout<<"\nPodaj 2-ga liczbe: ";
  29.         cin>>y;
  30.  
  31.  
  32.         cout<<"\nSrednia harmoniczna = "<<liczby(x,y)<<endl;
  33.  
  34.         getchar(); getchar();
  35.         system("cls");
  36.     }
  37.  
  38.     return 0;
  39. }
  40.  
  41.  
  42. /*==============================================================================================*/
  43.  
  44.  
  45. /*Zad.2.Napisz program wykorzystujący następujące funkcje:
  46.  
  47. -Funkcje fill_array() jako parametr pobiera nazwę tablicy oraz jej wielkość. Użytkownik jest proszony o podanie wartości double, które zostaną wpisane do tablicy.
  48. Pobieranie danych jest przerywane, kiedy tablica jest pełna. Funkcja zwraca liczbę wprowadzonych wartości.
  49.  
  50. -Funcka show_array() jako parametr pobiera nazwę tablicy liczb double oraz wielkość tablicy po czym pokazuje zawartość tablicy
  51.  
  52. -Funkcja reverse_array() jako parametr pobiera nazwę tablicy oraz jej wielkość, po czym odwraca kolejność liczb w przekazanej tablicy
  53.  
  54. Program ma użyć opisanych funkcji do wypełnienia tablicy, wyświetlenia jej, odwrócenia i ponownego wyświetlenia
  55. */
  56. #include <iostream>
  57. #include <windows.h>
  58.  
  59.  
  60. using namespace std;
  61.  
  62. int fill_array(double tab[], int rozmiar)
  63. {
  64.     int j=0;
  65.  
  66.     for(int i=0; i<rozmiar; i++)
  67.     {
  68.         cout<<"Podaj "<<i+1<<" liczbe: ";
  69.         cin>>tab[i];
  70.  
  71.         j++;
  72.         system("cls");
  73.     }
  74.     return j;
  75. }
  76.  
  77. void show_array(double tab[], int rozmiar)
  78. {
  79.     for(int i=0; i<rozmiar; i++)
  80.     {
  81.         cout<<tab[i]<<" ";
  82.     }
  83. }
  84.  
  85. void reverse_array(double tab[], int rozmiar)
  86. {
  87.     double bufor;
  88.     for(int i=0; i<rozmiar/2; ++i)
  89.     {
  90.         bufor = tab[i];
  91.         tab[i] = tab[rozmiar-1 - i];
  92.         tab[rozmiar - 1 - i] = bufor;
  93.     }
  94. }
  95.  
  96. int main()
  97. {
  98.     double tablica[10];
  99.     cout<<"Liczba elementow w tablicy to: "<<fill_array(tablica, 10)<<endl;
  100.  
  101.     cout<<"\nWszystkie elementy w tablicy:"<<endl<<endl;
  102.     show_array(tablica, 10);
  103.  
  104.  
  105.     reverse_array(tablica, 10);
  106.     cout<<"\nWszystkie elementy w tablicy po odwroceniu:"<<endl<<endl;
  107.     show_array(tablica, 10);
  108.     return 0;
  109. }
  110.  
  111.  
  112. /*==============================================================================================*/
  113. /*Zad.3 Napisz funkcje mnozaca dwie macierze*/
  114.  
  115. #include <iostream>
  116. #include <stdio.h>
  117. #define ILE_WIERSZY 2
  118. #define ILE_KOLUMN 3
  119.  
  120. using namespace std;
  121.  
  122. int mnozenie_m(double X[ILE_WIERSZY][ILE_KOLUMN], double Y[ILE_KOLUMN][ILE_WIERSZY], double W[ILE_WIERSZY][ILE_KOLUMN])
  123. {
  124.     int i, j, k;
  125.     for(i = 0; i < ILE_WIERSZY; i++)
  126.         for(j = 0; j < ILE_KOLUMN; j++)
  127.             W[i][j] = 0;
  128.     for(i = 0; i < ILE_WIERSZY; i++)
  129.         for(j = 0; j < ILE_WIERSZY; j++)
  130.             for(k = 0; k < ILE_KOLUMN; k++)
  131.                 W[i][j] = W[i][j] + X[i][k] * Y[k][j];
  132.     return 0;
  133. }
  134.  
  135.  
  136. int main()
  137. {
  138.     int i, j;  // liczniki
  139.     double X[2][3] =
  140.     {
  141.         {1, 2, 3},
  142.         {1, 4, 5}
  143.     };
  144.  
  145.     double W[2][3]; // macierz wyników
  146.  
  147.     double Y[3][2] =
  148.     {
  149.         {3, 7},
  150.         {5, 8},
  151.         {7, 1}
  152.     };
  153.  
  154.     mnozenie_m(X, Y, W);
  155.     cout<<"Iloczyn macierzy X * Y"<<endl;
  156.     for(i = 0; i < ILE_WIERSZY; i++)
  157.     {
  158.         for(j = 0; j < ILE_WIERSZY; j++)
  159.             cout<< W[i][j];
  160.         puts("");
  161.     }
  162.     return 0;
  163. }
  164.  
  165.  
  166.  
  167. /*==============================================================================================*/
  168.  
  169. /*zad4.Napisz funkcje, która otrzymuje cztery argumenty: dodatnią liczbę
  170. całkowitą n oraz trzy n-elementowe tablice tab1, tab2 i tab3 o elementach typu int, i:
  171.  
  172. a) przypisuje elementom tablicy tab3 sumę odpowiadających im elementów tablic tab1 i tab2
  173.     (do komórki tablicy tab3 o indeksie i powinna trafić suma elementów tab1[i] i tab2[i]),
  174.  
  175. b) przypisuje elementom tablicy tab3 większy spośród odpowiadających im elementów tablic tab1 i tab2
  176. (do komórki tablicy tab3 o indeksie i powinien trafić większy spośród elementów tab1[i] i tab2[i]),
  177.  
  178. c) przypisuje zawartość tablicy tab1 do tablicy tab2, zawartość tablicy tab2 do tablicy tab3 oraz zawartość tablicy tab3 do tablicy tab1.
  179. */
  180.  
  181. #include <iostream>
  182. #include <cstdlib>
  183. #include <time.h>
  184.  
  185.  
  186. using namespace std;
  187.  
  188. int suma(int n, int tab1[], int tab2[], int tab3[])
  189. {
  190.     for(int i=0; i < n; i++)
  191.     {
  192.         tab3[i]=tab1[i]+tab2[i];
  193.         cout<<tab3[i]<<", ";
  194.     }
  195. }
  196.  
  197.  
  198. int wiekszy(int n, int tab1[], int tab2[], int tab3[])
  199. {
  200.     for(int i=0; i < n; i++)
  201.     {
  202.         if(tab1[i] > tab2[i])
  203.         {
  204.             tab3[i]=tab1[i];
  205.             cout<<tab3[i]<<", ";
  206.         }
  207.         else
  208.         {
  209.             tab3[i]=tab2[i];
  210.             cout<<tab3[i]<<", ";
  211.         }
  212.     }
  213. }
  214.  
  215. int przypisz(int n, int tab1[], int tab2[], int tab3[])
  216. {
  217.     int bufor=0;
  218.     for(int i=0; i < n; i++)
  219.     {
  220.         bufor=tab3[i];
  221.         tab3[i]=tab2[i];
  222.         tab2[i]=tab1[i];
  223.         tab1[i]=bufor;
  224.  
  225.         cout<<"tab1: "<<tab1[i]<<", ";
  226.         cout<<"tab2: "<<tab2[i]<<", ";
  227.         cout<<"tab3: "<<tab3[i]<<", ";
  228.     }
  229. }
  230.  
  231.  
  232. int main()
  233. {
  234.     int n;
  235.     srand(time(NULL));
  236.  
  237.     cout<<"Podaj liczbe elementow tablicy: "<<endl;
  238.     cin>>n;
  239.  
  240.     int tab1[n], tab2[n], tab3[n];
  241.  
  242.     for(int i=0; i<n; i++)
  243.     {
  244.         tab1[i]=rand()%100+1;
  245.         cout<<tab1[i]<<", ";
  246.     }
  247.  
  248.     cout<<endl<<endl;
  249.  
  250.     for(int i=0; i<n; i++)
  251.     {
  252.         tab2[i]=rand()%100+1;
  253.         cout<<tab2[i]<<", ";
  254.     }
  255.  
  256.     cout<<"\n\nWartosci w tab3 po dodaniu wartosci z tab1 i tab2: "<<endl;
  257.  
  258.     suma(n, tab1, tab2, tab3);
  259.  
  260.     cout<<"\n\nWartosci wieksze z tab1 i tab2 zapisane w tab3: "<<endl;
  261.  
  262.     //wiekszy(n, tab1, tab2, tab3);
  263.  
  264.     cout<<"\n\nWartosci przypisane z tab1 do tab2 z tab2 do tab3 i z tab3 do tab1: "<<endl;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement