Python 3
Machine Learning

PENTRU ELEVII DE LICEU

PROBLEME REZOLVATE
PAG. 3 / 3
Funcții - probleme rezolvate
Acasă >>> Lecții online
CERINȚĂ

Se citesc două numere naturale m<n. Se cere să se tipărească toate numerele palindrom aflate între m şi n. Un număr este palindrom dacă, citit de la stânga la dreapta şi citit de la dreapta către stânga, rezultatul este acelaşi. De exemplu, numărul 121 este palindrom.

REZOLVARE

Să analizăm problema. Este necesar să fie testate toate numerele între m şi n, pentru ca apoi să fie tipărite numai cele care îndeplinesc condiţia cerută.

Pentru fiecare număr, avem subproblema verificării proprietăţii de număr palindromic. Pentru aceasta, vom scrie o funcţie numită palindrom care are rolul de a testa dacă un număr este sau nu palindrom. Analiza proprietăţii de număr palindromic o efectuăm construind răsturnatul (inversul) acelui număr şi verificăm dacă cele două valori (numărul şi răsturnatul său) sunt egale.

Construirea ”inversului“ (nu în sens matematic) unui număr natural este şi ea o subproblemă a problemei verificării proprietăţii de palindrom. Vom scrie o funcţie invers, care va returna inversul unui număr natural transmis ca parametru.

Urmărind apelurile, vom constata că programul principal apelează funcţia palindrom, iar funcţia palindrom apelează la rândul ei funcţia invers. Programul apelant al funcţiei palindrom este programul principal, în timp ce programul apelant al funcţiei invers este subprogramul palindrom:
Editor - functii_ex3.py
       
Rezultatul în consolă done
DETALII

Care este avantajul scrierii fiecărei funcţii? Acesta este dat de faptul că, atunci când scriem funcţia, ne concentrăm exclusiv asupra ei, deci posibilitatea de a greşi este mai mică. Dacă dispunem de funcţie, algoritmul în continuare devine mult mai simplu. În plus, este posibil ca oricare dintre funcţii să poată fi folosită şi în alte cazuri, la rezolvarea altor probleme.

Ordinea definirii celor două subprograme nu este importantă... în C++ funcţia invers, de care are nevoie funcţia palindrom, trebuia declarată anterior acesteia.

EXERCIȚIU

Un număr natural este superpalindrom dacă este palindrom atât el cât şi pătratul său. Scrieţi, pe baza programului dat, un program care listează toate numerele cu această proprietate aflate între doi întregi a şi b (a<b<30000).
Secțiunea s-a încheiat acum.
 home   list  LECȚII   perm_identity   arrow_upward