Problemă rezolvată șir de caractere clasa a XI-a mate-info neintensiv

Enunț

Un cuvânt este palindrom dacă citind literele de la dreapta la stânga obținem același cuvânt (de exemplu, cuvintele „cojoc” și „sas” sunt palindroame). Scrieți un program care verifică dacă un cuvânt citit de la tastatură este palindrom sau nu, afișând un mesaj.

Rezolvare

#include
#include
using namespace std;


int main()
{
 char s[201];
 int l;


 cout <> s;

 l = strlen(s);

 bool palindrom = true;

 for (int i = 0; i < l / 2; ++i)
 {
  if (s[i] != s[l – i – 1])
  {
   palindrom = false;
   break;
  }
 }


 cout << (palindrom ? "ESTE PALINDROM." : "NU ESTE PALINDROM.") << endl;

 return 0;
}

Explicații

este antetul pentru scrierea pe ecran și citirea de la tastatură.
(în trecut ) este antetul pentru folosirea funcției strlen.

Presupunem că un cuvânt are maxim 200 de caractere . Al 201-lea este caracterul nul (codul ASCII 0 sau caracterul ‘\0’).

Cu palindrom = true presupunem de la început că cuvântul dat este palindrom și apoi încercăm să demonstrăm contrariul.


Trecem prin fiecare caracter al cuvântului de la stânga la dreapta până la jumătatea lui. Dacă al i-lea caracter de la începutul cuvântului este diferit de al i-lea caracter de la sfârșitul cuvântului, presupunerea e falsă și oprim parcurgerea cu o instrucțiune break.

La sfârșit, înainte de a ieși din main cu return 0, folosim operatorul ?: pentru a afișa un șir de caractere literal în funcție de valoarea variabilei palindrom.

Exemple

Palindromul TOT (3 caractere) : i trece de la 0 la 3 / 2 = 1. Se compară T cu T și O cu O.

Palindromul ABCCBA (6 caractere): i trece de la 0 la 6 / 2 = 3.
Se compară caracterele de pe pozițiile 0 cu 5, 1 cu 4, 2 cu 3. Mai departe nu, deoarece condiția for are semnul strict mai mic, nu mai mic sau egal cu.

Lasă un răspuns

Completează mai jos detaliile tale sau dă clic pe un icon pentru a te autentifica:

Logo WordPress.com

Comentezi folosind contul tău WordPress.com. Dezautentificare /  Schimbă )

Fotografie Google

Comentezi folosind contul tău Google. Dezautentificare /  Schimbă )

Poză Twitter

Comentezi folosind contul tău Twitter. Dezautentificare /  Schimbă )

Fotografie Facebook

Comentezi folosind contul tău Facebook. Dezautentificare /  Schimbă )

Conectare la %s

%d blogeri au apreciat: