Povestea unei rețete (sau algoritm ca să părem savanți)- Cum să extragem cifrele unui număr

Distribuiti cu dragoste

Povestea unei rețete(sau algoritm ca să părem savanți)

Bună Seara

Cum să extragem cifrele unui număr

Am să încerc să vă povestesc astăzi despre rețeta prin care pornind de la un număr oarecare, natural, nenul putem obține cifrele din care este compus , iar  cu acestea să pot face apoi tot felul de lucruri magice (exerciții, probleme, programe).

Deci cerința este să descompunem un număr natural în cifrele care îl compun, să aflăm logica acestui proces să o exprimăm în limbaje înțelese de programatori și să codificăm testând algoritmul

Structura acestui articol este : 

1. Logica după care proiectăm algoritmul

2. Algoritmul – pseudocod

3. Algoritmul – schemă logică

4. Algoritmul – schemă logică Flowgorithm

5. Codificare – Scratch – Codificare vizuală cu blocuri

6. Codificare Edublocks – Python Blocuri

7. Codificare Python

8. Codificare C++

Concluzii

 

1. Logica după care proiectăm algoritmul

Să înțelegem logica, să considerăm numărul dat ca fiind 294. Pentru un număr dat, putem afla cu ușurință cifra prezentă la locul unităților împărțind numărul la 10.

Pasul 1: număr = 294 împărțit la 10 ne dă cât 29 și rest 4. Continuăm procesul considerând noul număr egal cu partea întreagă =29

Pasul 2: număr = 29 împărțit la 10 ne dă cât 2 și rest 9. Continuăm procesul considerând noul număr egal cu partea întreagă =2

Pasul 3: număr = 2 împărțit la 10 ne dă cât 0 și rest 2. Procesul se oprește

Putem atașa acestui proces un pseudocod ( sau o rezolvare în cuvinte pe care programatorii o înțeleg, computerul nu)

2. Algoritmul – pseudocod

General (orientat spre programator)

  1. Initializare variabila “numar” cu un numar introdus de utilizator
  2. Initializare variabila “pas” cu valoarea 1
  3. Inceperea unui ciclu
    • a. Extragerea ultima cifra a lui “numar” si salvarea ei in variabila “cifra”
    • b. Eliminarea ultima cifra din “numar”
    • c. Afisarea pasului ciclului, valorii variabilei “cifra” si valorii variabilei “numar”
    • d. Verificarea daca “numar” este egal cu 0. Daca este, afisarea mesajului “Stop” si iesirea din ciclu
    • e. Incrementarea pasului ciclului cu 1

Specific (orientat spre cod)

Acest algoritm se concentreaza pe extragerea cifrelor unui numar prin utilizarea operatorilor modulo si de impartire la 10 cu pastrarea partii intregi, si afisarea pas cu pas a procesului.

  1. Initializam variabila “numar” cu un numar introdus de utilizator prin functia “input”
  2. Initializam variabila “pas” cu valoarea 1
  3. Incepem un ciclu “while” care verifica daca “numar” este diferit de 0
  4. In interiorul ciclului, extragem ultima cifra a lui “numar” prin utilizarea operatorului modulo (%), si o salvam in variabila “cifra”
  5. Eliminam ultima cifra din “numar” prin utilizarea operatorului de impartire la 10 cu pastrarea partii intregi (//)
  6. Afisam pasul ciclului si valorile variabilelor “cifra” si “numar”
  7. Verificam daca “numar” este egal cu 0, si daca este asa, afisam “Stop” si iesim din ciclu.

3. Algoritmul – schemă logică

4. Algoritmul – schemă logică Flowgorithm

5. Codificare – Scratch – Codificare vizuală cu blocuri

 

Legendă Scratch

Apăsarea stegulețului verde pune scripturile din www.scratch.mit.edu     în execuție 
Puteți testa algoritmul cu numărul dorit de dvs.

6. Codificare Edublocks – Python Blocuri

Legendă Edublocks

Apăsarea butonului de Stop dă acces la cod
Apăsarea butonului de Run pune în execuție http://www.edublocks.org

Aveti acces la interfata mediului de dezvoltare :
– puteti mari imaginea blocurilor +
– puteti micsora –
puteti centra scriptul in mijloc =
– puteti vizualiza blocuri /text

7. Codificare Python

 

Legendă Replit

Apăsarea butonului de Stop dă acces la cod
Apăsarea butonului de Run pune în execuție codul aflat în contul meu pe site-ul  Replit

Puteți să dați un like pe inimioara

Acest cod începe prin a cere utilizatorului sa introducă un număr natural nenul prin intermediul funcției “input”. Apoi, se inițializează variabila “pas” cu valoarea 1.

Urmeaza un ciclu “while” care verifica daca numarul introdus este diferit de 0. In interiorul ciclului, se extrage ultima cifra a numarului prin utilizarea operatorului modulo (%), si se salveaza in variabila “cifra”. Apoi se elimina ultima cifra din numar prin utilizarea operatorului de impartire la 10 cu pastrarea partii intregi (//).

Se afiseaza pasul ciclului, valoarea variabilei “cifra” si valoarea variabilei “numar”. Variabila “pas” este incrementata cu 1, si apoi se verifica daca “numar” este egal cu 0. Daca este asa, se afiseaza mesajul “Am ajuns la 0. Stop” si se iese din ciclu.

In acest caz, acest cod ia un numar introdus de utilizator, extrage cifrele sale individuale si le afiseaza impreuna cu pasul ciclului, pana cand numarul devine 0 si opreste procesul.

 

8. Codificare C++

In acest cod, se incepe prin a include libraria “iostream” si se utilizeaza namespace-ul “std” pentru a putea utiliza functiile cout si cin. Se declara 3 variabile: numar, cifra si pas si se initializeaza pas cu 1. Se cere utilizatorului sa introduca un numar prin intermediul functiei cout si se salveaza acest numar in variabila “numar”.

Urmeaza un ciclu while care verifica daca numarul introdus este diferit de 0. In interiorul ciclului, se extrage ultima cifra a numarului prin utilizarea operatorului modulo (%), si se salveaza in variabila “cifra”. Apoi se elimina ultima cifra din numar prin utilizarea operatorului de impartire la 10.

Se afiseaza pasul ciclului, valoarea variabilei “cifra” si valoarea variabilei “numar” prin intermediul functiei cout. Variabila “pas” este incrementata cu 1, si apoi se verifica daca “numar” este egal cu 0. Daca este asa, se afiseaza mesajul “Am ajuns la 0. Stop” si se iese din ciclu.

In acest caz, acest cod ia un numar introdus de utilizator, extrage cifrele sale individuale si le afiseaza impreuna cu pasul ciclului, pana cand numarul devine 0 si opreste procesul.

Concluzii

  • orice program de calculator începe de la creion și hârtie
  • cel mai important lucru este să găsim și să înțelegem logica rezolvării problemei de la care am plecat
  • algoritmul pe care îl intuim și vrem să îl codificăm și testăm poate fi reprezentat prin pseudocod – o formă de limbaj înțeleasă de programatori nu și de calculator sau prin scheme logice
  • există scheme logice care pot codifica desenul acesteia în linii de cod (Flowgorithm)
  • dacă am testat logica și avem un algoritm bun putem codifica de 7-8 ani cu blocuri vizual (Scratch sau Edublocks- Python), rezultatele sunt aceleași ca la folosirea limbajelor de programare text 
  • consider logic ca evoluția în programare- codificare să fie codificare blocuri Scratch (7-10 ani) – > codificare blocuri Python(9-11 ani)- > codificare text Python(10-16 ani) – > codificare text C++(15-18 ani)
  • logica de dinaintea codificării ESTE ACEEAȘI, copilul/elevul/studentul nu trebuie să fie apăsat de particularități de intrări/ieșiri, biblioteci, etc.Dacă stăpânește logica programării și a structurilor de date și de control se poate apropia de orice limbaj

Succes!

PS Dacă aveți orice întrebare privind acest articol, aveți un copil descurajat de Informatică și TIC, un copil care e apropiat de tehnologie contactați-mă Grup Informatica si TIC (faceți click  si intrati intr-un grup de Whatsapp)

Distribuiti cu dragoste

Leave a Reply

Your email address will not be published. Required fields are marked *