kestutis

2 lygis | 6 pamokėlė | 4. Magiškasis kvadratas

May 8th, 2014
312
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.54 KB | None | 0 0
  1. #include <fstream>
  2. using namespace std;
  3. const char CDfd[]="Duomenys.txt";
  4. const char CDfr[]="Rezultatas.txt";
  5. int const Cmax=50;
  6. int sei[Cmax], sst[Cmax];
  7. int mkvad[Cmax][Cmax];
  8.  
  9. void nuskaitymas (int &n,int mkvad[][Cmax]); //nuskaitymo funkcija
  10. void sumos (int n,int mkvad[][Cmax],int sei[],int sst[], int &ist1, int &ist2);
  11. bool magiskas (int sei[],int sst[],int istr1,int i);
  12. void isvedimas (int n,int sei[],int sst[],int istr1,int istr2); //isvedimo funkcija
  13.  
  14. int main()
  15. {
  16.     int istr1, istr2;int n;
  17.     nuskaitymas (n,mkvad);
  18.     sumos (n,mkvad,sei,sst,istr1,istr2);
  19.     isvedimas (n,sei,sst,istr1,istr2);
  20.     return 0;
  21. }
  22. void nuskaitymas (int &n,int mkvad[][Cmax])
  23. {
  24.     ifstream fd(CDfd);
  25.     fd>>n;
  26.     for (int i=0;i<n;i++)
  27.         for (int j=0;j<n;j++)
  28.             fd>>mkvad[i][j];
  29.     fd.close();
  30. }
  31. void sumos (int n,int mkvad[][Cmax],int sei[],int sst[], int &istr1, int &istr2)
  32. {
  33.     for (int i=0;i<n;i++)
  34.     {
  35.         sei[i]= 0; sst[i]= 0;
  36.         for (int j=0;j<n;j++)
  37.         {
  38.             sei[i] = sei[i] + mkvad[i][ j];
  39.             sst[i] = sst[i] + mkvad[j][ i];
  40.         }
  41.     }
  42.     istr1 = 0; istr2 = 0;
  43.     for (int i=0;i<n;i++)
  44.     {
  45.         istr1 = istr1 + mkvad[i][i];
  46.         istr2= istr2 + mkvad[i][ n-i-1];
  47.     }
  48. }
  49. bool magiskas (int sei[],int sst[],int istr1,int i)
  50. {
  51.     return (istr1==sei[i]&&sei[i]==sst[i]);
  52. }
  53. void isvedimas (int n,int sei[],int sst[],int istr1,int istr2)
  54. {
  55.     int k=0;
  56.     ofstream fr(CDfr);
  57.     if (istr1==istr2)
  58.         for (int i=0;i<n;i++)
  59.             if (magiskas(sei,sst,istr1,i)==true)
  60.                 k++;
  61.     if(k==n)
  62.         fr <<"Magiškasis kvadratas";
  63.     else
  64.         fr<<"Nemagiškasis kvadratas";
  65.     fr.close();
  66. }
Advertisement
Add Comment
Please, Sign In to add comment