Un program “fabulos”
1. CONCURS
În rezolvarea programului am omis un punct marcat cu altă culoare “produsul cifrelor nenule ale lui n”
Puteți trimite rezolvarea acestui punct , a programului complet Python, orice idee la (vezi mai jos)
2. Un program “fabulos”
Scrieți un program fabulos care citește un număr natural n
și determină:
- suma pătratelor cifrelor lui n
- suma cifrelor impare ale lui n
- suma cifrelor divizibile cu 3 ale lui n
- numărul cifrelor strict mai mari decât 5
- produsul cifrelor nenule ale lui n
- suma dintre cifra cea mai puțin semnificativă (cifra unităților) lui n și cifra cea mai semnificativă a lui n
problema este preluată dintr-un celebru site de probleme de informatica, PbInfo, #3625 Prelucrari cifre
Realitatea că realizarea acestui program se sprijină pe articolul și postarea anterioară și anume pe extragerea
cifrelor unui număr ( Cum să extragem cifrele unui număr)
De unde plecăm
3. Logica
Să trecem să examinăm cerința :
Fiind vorba de a manipula cifrele unui număr ne vom baza pe extragerea numerelor ( Cum să extragem cifrele unui număr)
- Calculul sumei pătratelor se traduce logic într-o inițializare a variabilei sumapatrate cu zero 0, înaintea buclei și pe adunarea cifrei
extrase la fiecare pas al buclei.
sumapatrate= 0 și sumapatrate = sumapatrate +cifra - Calculul sumei cifrelor impare se traduce logic într-o inițializare a variabilei sumaimpare cu zero 0, înaintea buclei, pe validarea cifrei
par/impar ( impartirea cu rest sau fara rest la2 )
sumaimpare= 0 if cifra % 2 ==1 sumaimpare = sumaimpare +cifra - Calculul sumei cifrelor divizibile cu 3 se traduce logic într-o inițializare a variabilei sumadiv3 cu zero 0, înaintea buclei, pe validarea cifrei
divizibilă sau nu cu 3 ( impartirea cu rest sau fara rest la 3 )
sumadiv3= 0 if cifra % 3 ==0 sumadiv3 = sumadiv3 +cifra - Calculul sumei cifrelor strict mai mari decat 5 se traduce logic într-o inițializare a variabilei sumamm5 cu zero 0, înaintea buclei, pe validarea cifrei
> 5 ( comparatia stricta cu 5 )
sumamm5= 0 if cifra >5 sumamm5 = sumamm5 +cifra - Calculul sumei dintre cifra cea mai puțin semnificativă (cifra unităților) lui n și cifra cea mai semnificativă a lui n. Prin convenție prima cifra
extrasa este cea mai putin semnificativa si ultima extrasa este cea mai semnificativă
4. Pseudocod – generat de Flowgorithm
Declare Integer numar, cifra, pas, sumapatrate, sumaimpare, sumadiv3, sumamm5, ultimacifra, primacifra
Display ” Introduceti un numar natural nenul. Numarul”
Input numar
Set pas = 1
Set primacifra = 0
Set ultimacifra = 0
Set sumapatrate = 0
Set sumaimpare = 0
Set sumadiv3 = 0
Set sumamm5 = 0
While numar != 0
Set cifra = numar MOD 10
Set primacifra = numar MOD 10
Set numar = numar / 10
Display “Pas = “, pas
Display “cifra extrasa este = “, cifra
Display “continuam cu = “, numar
Set pas = pas + 1
Set sumapatrate = sumapatrate + cifra ^ 2
Display “Suma patratelor este = “, sumapatrate
If cifra MOD 2 == 1 Then
Set sumaimpare = sumaimpare + cifra
End If
Display “Suma cifrelor impare = “, sumaimpare
If cifra MOD 3 == 0 Then
Set sumadiv3 = sumadiv3 + cifra
End If
Display “Suma cifrelor divizibile cu 3 = “, sumadiv3
If cifra > 5 Then
Set sumamm5 = sumamm5 + cifra
End If
Display ” Suma cifrelor numarului strict mai mari decat 5 = “, sumamm5
Set ultimacifra = cifra
Display “Suma cifrei cel mai putin semnificativa si cea semnificativa”, primacifra + ultimacifra
End While
5. Schema logica Flowgorithm
Va fi descarcata la cerere, în schimbul e-mailului dvs.
Schema logica
Completați cu emailul dvs.
Veți primi un link de descărcare a fișierului
Căutați cu atenție inclusiv în spam
Send download link to:
6. Codificare Python – structuri de control
Acest program citește un număr natural nenul (introdus de utilizator) și determină următoarele:
- Suma pătratelor cifrelor numărului n
- Suma cifrelor impare ale numărului n
- Suma cifrelor divizibile cu 3 ale numărului n
- Numărul cifrelor strict mai mari decât 5 din numărul n
- Produsul cifrelor nenule ale numărului n
- Suma dintre cifra cea mai puțin semnificativă (cifra unităților) a numărului n și cifra cea mai semnificativă a acestuia.
Pentru a determina aceste valori, programul folosește un buclă while pentru a separa cifrele numărului n și pentru a le analiza în parte, utilizând
diferite condiții (modulo, compararea cu valori concrete). La sfârșit, toate valorile calculate sunt afișate utilizatorului.
6. Codificare Python – structuri de control și functii
Acest program citește un număr natural nenul introdus de utilizator prin intermediul funcției input() și apoi calculează:
- Suma pătratelor cifrelor lui n prin intermediul funcției suma_patrate_cifre(n)
- Suma cifrelor impare ale lui n prin intermediul funcției suma_cifre_impare(n)
- Suma cifrelor divizibile cu 3 ale lui n prin intermediul funcției suma_cifre_div3(n)
- Numărul cifrelor strict mai mari decât 5 prin intermediul funcției numar_cifre_maimari5(n)
- Produsul cifrelor nenule ale lui n prin intermediul funcției produs_cifre_nenule(n)
- Suma dintre cifra cea mai puțin semnificativă (cifra unităților) lui n și cifra cea mai semnificativă a lui n prin intermediul funcției suma_ultima_prima_cifra(n)
Fiecare cerință este tratată de o funcție separată, astfel încât codul să fie mai ușor de înțeles și de întreținut. La sfârșit, rezultatele sunt afișate prin intermediul instrucțiunilor print()