Z takim "typem" bool


//*************************************************************************

//           PROGRAM WYSZUKUJE PALINDROMY W PLIKU 

//               - palindrom to taki wyraz ze czytany od przodu i od tylu jest jednakowy

//                 np. anna, kajak, potop, 

//               - wczytuje pierwszy wyraz z pliku

//               - w petli for sprawdza ostatnia litere z pierwsza, przedostatnia z druga itd

//               - gdy litery takie same to jest palindrom

//               - zapisuje wynik, czyli wyszukane palindromy, do pliku palindrom.txt

//*************************************************************************

 

// UWAGA  przypominam o sprawdzeniu pliku dane i poprawnym go zapisaniu - kursor ustawic -zeby nie bylo pustego wiersza bo zle wyniki

 

 

#include<iostream>

#include<fstream>

 

using namespace std;

 

 int main()

 {

      

      int i;     // iterator petli for dla liczenia -od przodu- czyli z lewej do prawej

      int j;     // iterator petli for dla liczenia -od tylu- czyli z prawej do lewej

     

     string a;   // zmienna na wczytane slowo ze strumienia danych czyli z pliku 

              // wczytana jest do tablicy jednowymiarowej bo to string

             

      int b;     // zmienna przechowująca dlugosc slowa

      

      bool czy_palindrom;           // zmienna pomocnicza, taki wskaźnik,

                                                     // ktory przyjmuje wartosc prawda lub falsz

          

     

     ifstream odczyt("dane.txt");        // definicja obiektu odczyt z wywolaniem konstruktora

                                                             // i konstruktor otwiera plik do odczytu

     ofstream zapis("palindrom.txt");  // definicja obiektu zapis z wywolaniem konstruktora

                                                                // i konstruktor otwiera plik do zapisu

   

  while(!odczyt.eof())              // dopóki nieprawda, ze natrafilismy na koniec pliku   

  {

  

    odczyt>>a;      // czyta pierwszy wyraz z pliku, 

    b=a.size();       // oblicza dlugosc wczytanego slowa 

    

    czy_palindrom = true;    // ustawienie zmiennej pomocniczej na -prawda-

                                              // jak zmieni się na -falsz- to wtedy nie jest palindrom    

   

    for (i=0, j=b-1; i<b/2; i++, j--)     // ustawienie -i- na poczatek wyrazu bo i=0,

                                          // oraz jednoczesne ustawienie -j- na koniec wyrazu bo j=b-1

                                          // w wyrażeniu j=b-1 dlatego jest to "-1" gdyz w C++ liczymy od 0

                                          // i++ bo idziemy w prawo, j-- bo idziemy w lewo

                                          // po tablicy gdzie wpisane jest slowo

    {

    if (a[i]!=a[j])

    czy_palindrom = false;              // jak nie sa to takie same litery

                                                          // to zmienna pomocnicza ma przyjac wartosc -falsz-

    }

 

       if (czy_palindrom==true )        // sprawdzam, jaka wartosc po wyjsciu z petli for

                                                           // ma zmienna czy_palindrom

                                   // jesli ma wartosc -prawda- to zapisuje slowo do pliku palindrom.txt

 

        zapis<<a<<endl;

   

  } 

     

     odczyt.close();

     zapis.close();

     return 0;

 }