Facebook
From Ula, 6 Months ago, written in Plain Text.
Embed
Download Paste or View Raw
Hits: 153
  1. //AUTOR URSZULA SKOTNY
  2.  
  3. #include <iostream>
  4. #include <fstream>
  5. #include <string>
  6. #include "stdafx.h"
  7.  
  8. using namespace std;
  9.  
  10. void T(char **M_pocz, int rozmiarMacierzy);
  11. void D(char **M_pocz,
  12. \int rozmiarMacierzy);
  13. void H(char **M_pocz, int rozmiarMacierzy);
  14. void V(char **M_pocz, int rozmiarMacierzy);
  15.  
  16. void A(char **M_pocz, int rozmiarMacierzy);
  17. void B(char **M_pocz, int rozmiarMacierzy);
  18. void C(char **M_pocz, int rozmiarMacierzy);
  19. void X(char **M_pocz, int rozmiarMacierzy);
  20. void Y(char **M_pocz, int rozmiarMacierzy);
  21. void Z(char **M_pocz, int rozmiarMacierzy);
  22.  
  23. void Show(char **M_pocz, int rozmiarMacierzy);
  24.  
  25. int main(int argc, char*argv[])
  26. {
  27.         string plikWejsciowy, plikWyjsciowy;
  28.  
  29.         if (argc !=3)
  30.         {
  31.                 cout << "Zla ilosc argumentow. Sposob uzycia: problemA.exe< [plikWejsciow]:A.in < [plikWyjsciowy]:A.out ";
  32.                 getchar();
  33.                 return 0;
  34.         }
  35.         else
  36.         {
  37.                 plikWejsciowy = argv[1];
  38.                 plikWyjsciowy = argv[2];
  39.         }
  40.         string linia;
  41.         ifstream plikWe = ifstream(plikWejsciowy); // "otwieranie pliku"
  42.  
  43.         ofstream plikWy = ofstream(plikWyjsciowy); // "zamykanie pliku"
  44.  
  45.         getline(plikWe, linia);
  46.  
  47.         int iloscTestow = stoi(linia); // Funkcja stoi konwertuje sekwencj─Ö znak├│w w _Str do warto┼Ťci typu int i zwraca warto┼Ť─ç
  48.  
  49.         for (int i = 0; i < iloscTestow; i++) // mowi─Ö ile razy ma sie wykona─ç - czyli ilo┼Ťc testow
  50.         {
  51.                 // pobranie rozmiaru macierzy
  52.                 getline(plikWe, linia);
  53.                 int rozmiarMacierzy = stoi(linia);
  54.  
  55.                 // alokacja pamieci odpowiednio przydzia┼é i zwolnienie ci─ůg┼éego obszaru pami─Öci.
  56.                 char **macierz = new char*[rozmiarMacierzy];
  57.  
  58.                 for (int j = 0; j < rozmiarMacierzy; j++)
  59.                 {
  60.                         macierz[j] = new char[rozmiarMacierzy];
  61.                 }
  62.  
  63.                 // wczytanie danych z pliku wejsciowego
  64.                 for (int j = 0; j < rozmiarMacierzy; j++)
  65.                 {
  66.                         getline(plikWe, linia);
  67.                         for (int k = 0; k < rozmiarMacierzy; k++)
  68.                         {
  69.                                 macierz[j][k] = linia[k];
  70.                         }
  71.                 }
  72.  
  73.                 string operacje;
  74.                 getline(plikWe, operacje); // bierz skad i co
  75.  
  76.                 int iloscOperacji = operacje.length() - 1;
  77.  
  78.                 for (int j = 0; j < iloscOperacji; j++)
  79.                 {
  80.                         switch (operacje[j])
  81.                         {
  82.                         case 'T':
  83.                                 T(macierz, rozmiarMacierzy);
  84.                                 break;
  85.                         case 'D':
  86.                                 D(macierz, rozmiarMacierzy);
  87.                                 break;
  88.                         case 'H':
  89.                                 H(macierz, rozmiarMacierzy);
  90.                                 break;
  91.                         case 'V':
  92.                                 V(macierz, rozmiarMacierzy);
  93.                                 break;
  94.  
  95.                         case 'A':
  96.                                 A(macierz, rozmiarMacierzy);
  97.                                 break;
  98.                         case 'B':
  99.                                 B(macierz, rozmiarMacierzy);
  100.                                 break;
  101.                         case 'C':
  102.                                 C(macierz, rozmiarMacierzy);
  103.                                 break;
  104.  
  105.                         case 'X':
  106.                                 X(macierz, rozmiarMacierzy);
  107.                                 break;
  108.                         case 'Y':
  109.                                 Y(macierz, rozmiarMacierzy);
  110.                                 break;
  111.                         case 'Z':
  112.                                 Z(macierz, rozmiarMacierzy);
  113.                                 break;
  114.                         }
  115.                 }
  116.  
  117.                         // zapis do pliku wyjsciowego
  118.                 for (int j = 0; j < rozmiarMacierzy; j++)
  119.                 {
  120.                         for (int k = 0; k < rozmiarMacierzy; k++)
  121.                         {
  122.                                 plikWy << (char)macierz[j][k];
  123.                         }
  124.                         plikWy << endl;
  125.                 }
  126.                        
  127.         }
  128.         plikWe.close();
  129.         plikWy.close();
  130. }
  131.  
  132. void T(char **M_pocz, int rozmiarMacierzy)
  133. // M_pocz - macierz poc┼╝atkowa. czyli wej┼Ťciowa
  134. {
  135.         char **m_pocz = new char *[rozmiarMacierzy];
  136.         //m_pocz - macierz ko┼äcowa, czyli wyj┼Ťciowa
  137.         for (int i = 0; i < rozmiarMacierzy; i++) m_pocz[i] = new char[rozmiarMacierzy];
  138.         for (int i = 0; i < rozmiarMacierzy; i++)
  139.         {
  140.                 for(int j=0; j< rozmiarMacierzy; j++)
  141.                 {
  142.                         m_pocz[j][i] = M_pocz[i][j];
  143.                 }      
  144.         }
  145.         for (int i = 0; i < rozmiarMacierzy; i++)
  146.         {
  147.                 for (int j = 0; j < rozmiarMacierzy; j++)
  148.                 {
  149.                         M_pocz[i][j] = m_pocz[i][j];
  150.                 }
  151.  
  152.  
  153.         }
  154. }
  155. void D(char **M_pocz, int rozmiarMacierzy)
  156. {
  157.         char **m_pocz = new char*[rozmiarMacierzy];
  158.         for (int i = 0; i < rozmiarMacierzy; i++) m_pocz[i] = new char[rozmiarMacierzy];
  159.         for (int i = 0; i < rozmiarMacierzy; i++)
  160.         {
  161.                 for (int j = 0; j < rozmiarMacierzy; j++)
  162.                 {
  163.                         m_pocz[rozmiarMacierzy - j - 1][rozmiarMacierzy - i - 1] = M_pocz[i][j];
  164.                 }
  165.         }
  166.         for (int i = 0; i < rozmiarMacierzy; i++)
  167.         {
  168.                 for (int j = 0; j < rozmiarMacierzy; j++)
  169.                 {
  170.                         M_pocz[i][j] = m_pocz[rozmiarMacierzy- i-1][j];
  171.                 }
  172.  
  173.         }
  174.  
  175.  
  176.        
  177.  
  178.  
  179.  
  180.  
  181. }
  182. void H(char **M_pocz, int rozmiarMacierzy)
  183. {
  184.         char **m_pom = new char *[rozmiarMacierzy];
  185.         for (int i = 0; i < rozmiarMacierzy; i++)  m_pom[i] = new char[rozmiarMacierzy];
  186.         for (int i = 0; i < rozmiarMacierzy; i++)
  187.         {
  188.                 for (int j = 0; j < rozmiarMacierzy; j++)
  189.                 {
  190.                         m_pom[i][rozmiarMacierzy - j - 1] = M_pocz[i][j];
  191.                 }
  192.         }
  193.         for (int i = 0; i < rozmiarMacierzy; i++)
  194.         {
  195.                 for (int j = 0; j < rozmiarMacierzy; j++)
  196.                 {
  197.                         M_pocz[i][j] = m_pom[rozmiarMacierzy - j - 1][i];
  198.                 }
  199.         }
  200.  
  201. }
  202. void V(char **M_pocz, int rozmiarMacierzy)
  203. {
  204.         char **m_pom = new char *[rozmiarMacierzy];
  205.         for (int i = 0; i < rozmiarMacierzy; i++)  m_pom[i] = new char[rozmiarMacierzy];
  206.         for (int i = 0; i < rozmiarMacierzy; i++)
  207.         {
  208.                 for (int j = 0; j <rozmiarMacierzy; j++)
  209.                 {
  210.                         m_pom[rozmiarMacierzy - i - 1][j] = M_pocz[i][j];
  211.                 }
  212.         }
  213.         for (int i = 0; i < rozmiarMacierzy; i++)
  214.         {
  215.                 for (int j = 0; j <rozmiarMacierzy; j++)
  216.                 {
  217.                         M_pocz[i][j] = m_pom[j][rozmiarMacierzy - i - 1];
  218.                 }
  219.         }
  220. }
  221.  
  222. void A(char ** M_pocz, int rozmiarMacierzy) //Obr├│t w prawo o 90st
  223. {
  224.         char **m_pom = new char *[rozmiarMacierzy];
  225.  
  226.         for (int i = 0; i < rozmiarMacierzy; i++)
  227.                 m_pom[i] = new char[rozmiarMacierzy];
  228.  
  229.         for (int i = 0; i < rozmiarMacierzy; i++)
  230.         {
  231.                 for (int j = 0; j <rozmiarMacierzy; j++)
  232.                 {
  233.  
  234.                         m_pom[j][rozmiarMacierzy - i - 1] = M_pocz[i][j];
  235.                 }
  236.         }
  237.         for (int i = 0; i < rozmiarMacierzy; i++)
  238.         {
  239.                 for (int j = 0; j < rozmiarMacierzy; j++)
  240.                 {
  241.                         M_pocz[i][j] = m_pom[i][j];
  242.                 }
  243.         }
  244. }
  245. void B(char ** M_pocz, int rozmiarMacierzy ) // obr├│t w prawo o 180st
  246. {
  247.         for (int i = 0; i < 2; i++) A(M_pocz, rozmiarMacierzy); // wykorzystanie sposobu z A- skracanie kodu
  248. }
  249. void C(char ** M_pocz, int rozmiarMacierzy) // obr├│t o 270st w prawo
  250. {
  251.         for (int i = 0; i < 3; i++) A(M_pocz,rozmiarMacierzy );
  252. }
  253. void X(char ** M_pocz, int rozmiarMacierzy) // obr├│t w lewo o 90
  254. {
  255.         char **m_pom = new char *[rozmiarMacierzy];
  256.         for (int i = 0; i < rozmiarMacierzy; i++) m_pom[i] = new char[rozmiarMacierzy];
  257.         for (int i = 0; i <rozmiarMacierzy; i++)
  258.         {
  259.                 for (int j = 0; j < rozmiarMacierzy; j++)
  260.                 {
  261.  
  262.                         m_pom[rozmiarMacierzy - j - 1][i] = M_pocz[i][j];
  263.                 }
  264.         }
  265.         for (int i = 0; i <rozmiarMacierzy; i++)
  266.         {
  267.                 for (int j = 0; j < rozmiarMacierzy; j++)
  268.                 {
  269.                         M_pocz[i][j] = m_pom[i][j];
  270.                 }
  271.         }
  272. }
  273. void Y(char **M_pocz, int rozmiarMacierzy) // obr├│t w lewo o 180
  274. {
  275.         for (int i = 0; i < 2; i++) X(M_pocz, rozmiarMacierzy); // wykorzystanie fukcji X
  276. }
  277. void Z(char **M_pocz, int rozmiarMacierzy)
  278. {
  279.         for (int i = 0; i < 3; i++) X(M_pocz, rozmiarMacierzy);
  280. }
  281.  
  282. void Show(char **M_pocz, int rozmiarMacierzy)
  283. {
  284.         for (int i = 0; i < rozmiarMacierzy; i++)
  285.         {
  286.                 for (int j = 0; j < rozmiarMacierzy; j++)
  287.                 {
  288.                         cout << "[" << M_pocz[i][j] << "]\t";
  289.                 }
  290.                 cout << endl;
  291.         }
  292. }
  293.  

Replies to ProblemA rss

Title Name Language When
Re: ProblemA Ula text 6 Months ago.