Advertisement
xTheEc0

12. Savarankiško darbo užduotys 1, 2, 8.

Dec 11th, 2015
176
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 4.00 KB | None | 0 0
  1. #include <cstdlib>
  2. #include <iostream> // Input output stream
  3. #include <ctime>    // for random number generation
  4. #include <stdio.h>  // printf library
  5. #include <string>
  6. #include <limits>   // cin.ignore(numeric_limits<streamsize>::max(),'\n');
  7. #include <fstream>  // File input and output.
  8. #include <cmath>    // pow.
  9. #include <iomanip>
  10.  
  11. using namespace std;
  12.  
  13. // Dvimacio masyvo dydis. x = y - kvadratine matrica
  14. const int XMax = 5;
  15. const int YMax = 5;
  16.  
  17. // Funkciju prototipai
  18. void randGenerator(int mas [] [YMax], int sizeX, int sizeY);
  19. void printOut(int mas [] [YMax], int sizeX, int sizeY);
  20. void zeroColumn(int mas [] [YMax], int sizeX, int sizeY);
  21. void iSuma(int mas [] [YMax], int sizeX, int sizeY);
  22. void horizontalSwitch(int mas [] [YMax], int sizeX, int sizeY);
  23.  
  24. // Pagrindine programa
  25. int main(int argc, char *argv[])
  26. {
  27.     // Randomiser initializing
  28.     srand(time(NULL));
  29.  
  30.     // Array initializing
  31.     int dMas [XMax] [YMax];
  32.     int mas [2] [2] = {{1, 2}, {3, 4}};
  33.  
  34.     // Binary generator;
  35.     randGenerator(dMas, XMax, YMax);
  36.  
  37.     // Display to console.
  38.     printOut(dMas, XMax, YMax);
  39.  
  40.     // 1. Zero column
  41.     zeroColumn(dMas, XMax, YMax);
  42.  
  43.     // 2. Pagr. istrizaine
  44.     iSuma(dMas, XMax, YMax);
  45.  
  46.     // 8. Horizontalios asies sukeitimas
  47.     horizontalSwitch(dMas,XMax, YMax);
  48.     printOut(dMas, XMax, YMax);
  49.  
  50.     cout << " " << endl;
  51.     //system ("PAUSE");
  52.     //return EXIT_SUCCESS;
  53.     return 0;
  54. }
  55.  
  56. // Funkcijos
  57. void randGenerator(int mas[] [YMax], int sizeX, int sizeY)
  58. {
  59.     for (int i = 0; i < sizeX; i++)
  60.     {
  61.         for (int j = 0; j < sizeY; j++) {
  62.             //mas [i] [j] = rand() % 2; // 0 or 1
  63.             mas [i] [j] = -5 + (rand() %(10 + 1)); // from -5 to 5
  64.             }
  65.     }
  66. }
  67.  
  68. void printOut(int mas [] [YMax], int sizeX, int sizeY)
  69. {
  70.     for (int i = 0; i < sizeX; i++)
  71.     {
  72.         for (int j = 0; j < sizeY; j++)
  73.             cout << setw(2) << mas [i] [j] << " ";
  74.         cout << endl;
  75.     }
  76.     cout << endl;
  77. }
  78.  
  79. void zeroColumn(int mas [] [YMax], int sizeX, int sizeY)
  80. {
  81.     bool emptyC = false;
  82.     int C = 0;
  83.     int kuris;
  84.  
  85.     for (int i = 0; i < sizeY; i++)
  86.     {
  87.         for (int j = 0; j < sizeX; j++)
  88.         {
  89.             if (mas [j] [i] == 0)
  90.                 C++;
  91.             kuris = i;
  92.         }
  93.  
  94.         if (C == sizeX)
  95.         {
  96.             emptyC = true;
  97.             break;
  98.         }
  99.  
  100.         C = 0;
  101.     }
  102.  
  103.     if (emptyC) cout << "Yra stulpelis tik su nuliais : " << kuris+1 << endl;
  104.  
  105. }
  106.  
  107. void iSuma(int mas [] [YMax], int sizeX, int sizeY)
  108. {
  109.     int suma = 0;
  110.     int sandg = 1;
  111.     int counter = 0;
  112.     if (sizeX == sizeY)
  113.     {
  114.         for (int i = 1; i < sizeX; i++)
  115.         {
  116.             for (int j = 0; j < i; j++)
  117.             {
  118.                 if (mas [i] [j] > 0)
  119.                     suma += mas [i] [j];
  120.             }
  121.         }
  122.         cout << "Teigiamu elementu, esanciu po pagrindine istrizaine suma : " << suma << endl << endl;
  123.     }
  124.     else cout << "Masyvas ne kvadratinis!" << endl << endl;
  125.  
  126.     if (sizeX == sizeY)
  127.     {
  128.         for (int i = 0; i < sizeX; i++)
  129.         {
  130.             for (int j = i+1; j < sizeY; j++)
  131.             {
  132.                 if (mas [i] [j] < 0)
  133.                 {
  134.                     sandg *= mas [i] [j];
  135.                     counter++;
  136.                 }
  137.  
  138.             }
  139.         }
  140.         if (counter != 0) cout << "Neigimu elementu, esanciu virs pagrindines istrizaines sandauga : " << sandg << endl << endl;
  141.         else cout << "Nebuvo neigiamu elementu virs pagrindines istrizaines." << endl;
  142.     }
  143.     else cout << "Masyvas ne kvadratinis!" << endl << endl;
  144. }
  145.  
  146. void horizontalSwitch(int mas [] [YMax], int sizeX, int sizeY)
  147. {
  148.     int temp = 0;
  149.     cout << "Horizontaliai sukeistas dvimatis masyvas" << endl;
  150.     for (int i = 0; i < sizeX / 2; i++)
  151.     {
  152.         for (int j = 0; j < sizeY; j++)
  153.         {
  154.             temp = mas [i] [j];
  155.             mas [i] [j] = mas [sizeX-i-1] [j];
  156.             mas [sizeX-i-1] [j] = temp;
  157.         }
  158.     }
  159. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement