![]() |
Autor artykułu: mgr Jerzy Wałaszek, wersja1.0 |
©2010 mgr
Jerzy Wałaszek
|
Z podanych rozwiązań należy korzystać dopiero po samodzielnym rozwiązaniu danego zadania w celu sprawdzenia poprawności wyniku. Rozwiązania nie są optymalne (nie zostały sprawdzone z kluczem odpowiedzi, ponieważ na dzień dzisiejszy klucz ten nie został jeszcze opublikowany w Internecie).
Palindromem nazywamy słowo, które czytane od lewej i od prawej strony jest takie samo.
Na przykład palindromami są słowa:
JABFDFBAJ
HAJAHAJAH
ABBA
Słowo JANA nie jest palindromem.
W pliku dane.txt umieszczono w kolejnych wierszach 1000 słów o długościach od 2 do 25 znaków, składających się z wielkich liter A, B, C, D, E, F, G, H, I, J. Napisz program, który przegląda słowa zapisane w pliku dane.txt i wypisuje te z nich, które są palindromami, po jednym w wierszu. Kolejność wypisywania palindromów powinna być taka sama jak w pliku z danymi.
Uwaga: plik dane.txt należy umieścić w tym samym katalogu co program exe. Program uruchamiamy z poziomu okna konsoli, a nie z IDE.
Program C++:
// Zadanie 4
// Wyszukiwanie palindromów
//-------------------------
#include <iostream>
#include <string>
#include <fstream>
using namespace std;
int main()
{
ifstream dane;
string palindrom;
int i,j;
bool test;
dane.open("dane.txt");
while(dane.good())
{
getline(dane,palindrom);
test = true;
i = 0; j = palindrom.length() - 1;
while(i < j)
if(palindrom[i++] != palindrom[j--])
{
test = false;
break;
}
if(test) cout << palindrom << endl;
}
dane.close();
return 0;
}
|
Program Pascal:
{ Zadanie 4
Wyszukiwanie palindromów
------------------------}
program palindromy;
var
dane : text;
palindrom : string;
i,j : integer;
test : boolean;
begin
assign(dane,'dane.txt');
reset(dane);
while not eof(dane) do
begin
readln(dane,palindrom);
test := true;
i := 1; j := length(palindrom);
while i < j do
begin
if palindrom[i] <> palindrom[j] then
begin
test := false;
break;
end;
inc(i); dec(j);
end;
if test then writeln(palindrom);
end;
close(dane);
end.
|
![]() | I Liceum Ogólnokształcące |
Pytania proszę przesyłać na adres email: i-lo@eduinf.waw.pl
W artykułach serwisu są używane cookies. Jeśli nie chcesz ich otrzymywać,
zablokuj je w swojej przeglądarce.
Informacje dodatkowe