kestutis

2 lygis | 6 pamokėlė | 5. Laivų mūšis

May 8th, 2014
292
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.16 KB | None | 0 0
  1. #include <iostream>
  2. #include <fstream>
  3. #include <iomanip>
  4. #include <string>
  5. #include <stdio.h>
  6. #include <stdlib.h>
  7. using namespace std;
  8.  
  9. const int dydis = 100;
  10.  
  11. void skaitymas(int Laivai[][dydis], int &d, int LaivuKiekiai[],int NepavykoKiekiai[]);
  12. void isvedimas(int Laivai[][dydis], int d, int NepavykoKiekiai[]);
  13. int pildymas(int Laivai[][dydis],int d, int ilgis);
  14. void formavimas(int Laivai[][dydis], int d, int LaivuKiekiai[],int NepavykoKiekiai[]);
  15.  
  16. int main()
  17. {
  18.     int Laivai[dydis][dydis], LaivuKiekiai[4], NepavykoKiekiai[4], d;
  19.     skaitymas(Laivai, d, LaivuKiekiai, NepavykoKiekiai);
  20.     formavimas(Laivai, d, LaivuKiekiai, NepavykoKiekiai);
  21.     isvedimas(Laivai, d, NepavykoKiekiai);
  22.     return 0;
  23. }
  24. void skaitymas(int Laivai[][dydis], int &d, int LaivuKiekiai[], int NepavykoKiekiai[]) {
  25.     ifstream fd ("Duomenys.txt");
  26.     fd >> d;
  27.     for (int i = 0; i < 4; i++){
  28.         fd >> LaivuKiekiai[i];
  29.         NepavykoKiekiai[i] = 0;
  30.     }
  31.     for (int i = 0; i < d; i++){
  32.         for (int j = 0; j < d; j++){
  33.             Laivai[i][j] = 0;
  34.         }
  35.     }
  36. }
  37.  
  38. void formavimas(int Laivai[][dydis], int d, int LaivuKiekiai[], int NepavykoKiekiai[]){
  39.     for (int i = 0; i < 4; i++){
  40.         int kiekis = LaivuKiekiai[i];
  41.         for (int j = 0; j < kiekis; j++){
  42.             int rez = pildymas(Laivai, d, i+1);
  43.             if (rez == 0){
  44.                 NepavykoKiekiai[i]++;
  45.             }
  46.         }
  47.     }
  48. }
  49.  
  50. int pildymas(int Laivai[][dydis], int d, int ilgis){
  51.     int x = rand() % d;
  52.     int y = rand() % (d - ilgis);
  53.     for (int j = 0; j < ilgis; j++){
  54.         if (Laivai[x][y+j] != 0){
  55.             return 0;
  56.         }
  57.     }
  58.     for (int j = 0; j < ilgis; j++){
  59.         Laivai[x][y+j] = ilgis;
  60.     }
  61.     return 1;
  62. }
  63.  
  64. void isvedimas(int Laivai[][dydis], int d, int NepavykoKiekiai[]){
  65.     ofstream fr ("Rezultatai.txt");
  66.     for (int i = 0; i < d; i++){
  67.         for (int j = 0; j < d; j++){
  68.             fr << fixed << setprecision(2) << Laivai[i][j] << "";
  69.         }
  70.         fr << fixed << setprecision(2) << endl;
  71.     }
  72.      
  73.     fr << fixed << endl<< "Nepavyko suformuoti:" << endl;
  74.     fr << fixed << "Vienviečių: " << NepavykoKiekiai[0] << endl;
  75.     fr << fixed << "Dviviečių: " << NepavykoKiekiai[1] << endl;
  76.     fr << fixed << "Triviečių: " << NepavykoKiekiai[2] << endl;
  77.     fr << fixed << "Keturviečių: " << NepavykoKiekiai[3] << endl;
  78. }
Advertisement
Add Comment
Please, Sign In to add comment