Algoritmi elementari pentru prelucrarea numerelor n pseudocodC 1

  • Slides: 18
Download presentation
Algoritmi elementari pentru prelucrarea numerelor (în pseudocod/C++) 1 2 3 4 5

Algoritmi elementari pentru prelucrarea numerelor (în pseudocod/C++) 1 2 3 4 5

CUPRINS • Determinarea cifrelor unui număr întreg • Algoritmul de descompunere a unui număr

CUPRINS • Determinarea cifrelor unui număr întreg • Algoritmul de descompunere a unui număr întreg în cifre • Exemple de probleme în care se folosește algoritmul de descompunere a unui număr întreg în cifre • Problema 1: Algoritmul de determinare a numărului de cifre a unui număr întreg • Tema de casă

Determinarea cifrelor unui număr întreg • Care credeți că este operația prin care se

Determinarea cifrelor unui număr întreg • Care credeți că este operația prin care se poate determina ultima cifră a unui număr? • Cum vom scrie în pseudocod operația prin care se atribuie unei variabile c ultima cifra a unui număr întreg n? Operația prin care se determină ultima cifră a unui număr este: (1) c n % 10; • Care credeți că este operația prin care se poate ”șterge” sau ”elimina” ultima cifră a unui număr întreg? • Cum vom scrie în pseudocod operația prin care se ”elimină” ultima cifră unui număr întreg n? Operația prin care se ”elimină” ultima cifră a unui număr este: (2) n [n / 10];

Determinarea cifrelor unui număr întreg • Cum credeți că ar trebui să procedăm ca

Determinarea cifrelor unui număr întreg • Cum credeți că ar trebui să procedăm ca să determinăm toate cifrele unui număr, având în vedere că nu știm câte cifre acesta? • Ce structură vom folosi pentru a determina toate cifrele unui număr? • În ce ordine se vor obține cifrele numărului în urma prelucrării?

Algoritmul de descompunere a unui număr întreg în cifre Enunț: Se introduce de la

Algoritmul de descompunere a unui număr întreg în cifre Enunț: Se introduce de la tastatură un număr întreg în variabila n. Scrieți un algoritm în pseudocod care determină și afișează cifrele numărului introdus ( în ordine inversă). Exemplu: Dacă n= 3517 atunci algoritmul va afișa cifrele lui n astfel: 7 1 5 3

Algoritmul de descompunere a unui număr întreg în cifre • Care sunt datele, respectiv

Algoritmul de descompunere a unui număr întreg în cifre • Care sunt datele, respectiv tipul lor, necesare rezolvării algoritmului și ce reprezintă fiecare? • Ce structură vom utilizat pentru a determina cifrele numărului? • Care este expresia structurii, necesară repetării operațiilor? • Care sunt operațiile din interiorul structurii repetitive care duc la rezolvarea algoritmului?

Algoritmul de descompunere a unui număr întreg în cifre(în pseudocod) Rezolvare: n, c întreg;

Algoritmul de descompunere a unui număr întreg în cifre(în pseudocod) Rezolvare: n, c întreg; /* sau c natural; */ Citește n; Cât – timp n>0 execută Început c n % 10; /*ultima cifră*/ Scrie c, ” ”; /*afișare cifră*/ n [n / 10]; /*ștergere cifră*/ Sfârșit Verificare: n c Se afișează 3517 7 7 351 1 1 35 5 5 3 3 3 0

Algoritmul de descompunere a unui număr întreg în cifre(în C++) Rezolvare: int main() {

Algoritmul de descompunere a unui număr întreg în cifre(în C++) Rezolvare: int main() { int n, c; cout << "n= "; cin>>n; while(n!=0){ c=n%10; //determină ultima cifră cout<<c<<" "; //afișează cifra n=n/10; //elimină ultima cifră } return 0; } Verificare: n c Se afișează 3517 7 7 351 1 1 35 5 5 3 3 3 0

Exemple de probleme în care se folosește algoritmul de descompunere a unui număr întreg

Exemple de probleme în care se folosește algoritmul de descompunere a unui număr întreg în cifre Folosind algoritmul studiat puteți: • calcula suma tuturor cifrelor sau suma cifrelor pare/impare; • determina câte cifre are un număr sau câte cifre pare sau impare un număr; • căuta o anumită cifră dată; • determina cifra minimă sau maximă; • construi un nou număr folosind cifre(pare, impare, divizibile cu x) din numărul citit inițial, etc.

Problema 1: Algoritmul de determinare a numărului de cifre a unui număr întreg Enunț:

Problema 1: Algoritmul de determinare a numărului de cifre a unui număr întreg Enunț: Se introduce de la tastatură un număr întreg în variabila n. Scrieți un algoritm în pseudocod care determină și afișează câte cifre are numărul introdus. Exemplu: Dacă n= 3517 atunci algoritmul va afișa valoarea 4, deoarece numărul 3517 are 4 cifre.

Problema 1: Algoritmul de determinare a numărului de cifre a unui număr întreg •

Problema 1: Algoritmul de determinare a numărului de cifre a unui număr întreg • Care sunt datele, respectiv tipul lor, necesare rezolvării algoritmului și ce reprezintă fiecare? • Putem folosi algoritmul de descompunere a unui număr în cifre în rezolvarea problemei noastre? • Ce trebuie adăugat algoritmului de descompunere a unui număr în cifre astfel încât să numărăm cifrele? • Care sunt operațiile din interiorul structurii repetitive care duc la rezolvarea algoritmului?

Problema 1: Algoritmul de determinare a numărului de cifre a unui număr întreg(în pseudocod)

Problema 1: Algoritmul de determinare a numărului de cifre a unui număr întreg(în pseudocod) Rezolvare: n, c, i întreg; /* sau n, c, i natural; */ Citește n; i 0; Cât – timp n>0 execută Început c n % 10; /*ultima cifră*/ i i + 1; /*se numără cifra*/ n [n / 10]; /*ștergere cifră*/ Sfârșit Scrie ”Numărul cifrelor este: ”, i; n 3517 351 35 3 0 Verificare: c 7 1 5 3 i( i=0) 1 2 3 4

Problema 1: Algoritmul de determinare a numărului de cifre a unui număr întreg(în C++)

Problema 1: Algoritmul de determinare a numărului de cifre a unui număr întreg(în C++) Rezolvare: int main() { int n, c, i=0; cout << "n= "; cin>>n; while(n!=0){ c=n%10; //aflăm cifra i++; //numărăm cifra n=n/10; //eliminam cifra } cout<<"Nr. de cifre este: "<<i<<endl; return 0; n } 3517 351 35 3 0 Verificare: c 7 1 5 3 i( i=0) 1 2 3 4

Test de verificare a cunoștințelor dobândite 1. Care dintre variantele de mai jos, ca

Test de verificare a cunoștințelor dobândite 1. Care dintre variantele de mai jos, ca date de intrare, determină ca valoarea finală a variabilei contor, din algoritmul de determinare a numărului de cifre a unui număr întreg, să fie 4? a) 4 b) 0000 c) 1000 d) 444 2. Se știe că valoarea finală a variabilei contor din algoritmul de determinare a numărului de cifre a unui număr întreg, este 3. Pentru câte date de intrare obținem această valoare? a) 3 b) 333 c) 900 d) Nu se poate determina numărul. 3. În algoritmul de determinare a numărului de cifre a unui număr întreg cu ce valoare trebuie inițializată valoarea contorului ? a) 0 b) – 1 c) 1 d) 2

Tema de casă 1. (Suma a cifrelor unui număr) Se citeşte de la tastatură

Tema de casă 1. (Suma a cifrelor unui număr) Se citeşte de la tastatură un număr întreg în variabila n. Scrieţi un algoritm în pseudocod/program în C++ care calculează şi afişează suma cifrelor numărului n citit iniţial. Exemplu: Pentru n = 1234 se va afişa valoarea 10. 2. (Număr de cifre pare a unui număr) Se citeşte de la tastatură un număr întreg în variabila n. Scrieţi un algoritm în pseudocod/program în C++ care determină şi afişează câte cifre pare numărul n citit iniţial. Exemplu: dacă se citeşte n = 3825, algoritmul va afişa valoarea 2 (cifra 2 și 8 sunt cifrele pare din număr). 3. (Număr de cifre impare a unui număr) Se citeşte de la tastatură un număr întreg în variabila n. Scrieţi un algoritm în pseudocod/program în C++ care determină şi afişează câte cifre impare numărul n citit iniţial. Exemplu: dacă se citeşte n = 3825, algoritmul va afişa valoarea 2(cifra 3 și 5 sunt cifrele impare ale numărului).

Tema de casă 4. (Cifra maximă a unui număr) Se citeşte de la tastatură

Tema de casă 4. (Cifra maximă a unui număr) Se citeşte de la tastatură un număr întreg în variabila n. Scrieţi un algoritm în pseudocod/program în C++ care determină şi afişează cifra maximă a numărului n citit iniţial. Exemplu: dacă se citeşte n = 3825, algoritmul va afişa mesajul Cifra maximă este: 8. 5. (Cifra minimă a unui număr)Se citeşte de la tastatură un număr întreg în variabila n. Scrieţi un algoritm în pseudocod/program în C++ care determină şi afişează cifra minimă a numărului n citit iniţial. Exemplu: dacă se citeşte n = 3825, algoritmul va afişa mesajul Cifra minimă este: 2. 6. (Numărul de apariții a unei cifre într – un număr) Se citesc de la tastatură un număr întreg în variabila n și o cifră în variabila d. Scrieţi algoritm în pseudocod/program în C++ care determină şi afişează numărul de apariții a cifrei d în numărul n citit iniţial. Dacă cifra căutată nu se găsește se va afișa mesajul ”NU EXISTĂ”. Exemplu: dacă se citeşte n = 3525 și d = 5, algoritmul va afişa valoarea 2.

Tema de casă 7. (Sufixele unui număr) Se citeşte de la tastatură un număr

Tema de casă 7. (Sufixele unui număr) Se citeşte de la tastatură un număr natural nenul n. Scrieţi algoritm în pseudocod/program în C++ care determină şi afişează toate sufixele numărului natural citit iniţial. Observație: Sufixele unui număr se obţin prin eliminarea repetată a ultimei cifre. Exemplu: dacă se citeşte n = 3825, algoritmul va afişa: 3825 382 38 3 8. (Media aritmetică a cifrelor pare și impare) Se citeşte un număr natural nenul n, de maxim 8 cifre, de la tastatură. Scrieţi algoritm în pseudocod/program în C++ care calculează şi afişează media aritmetică a cifrelor pare, respectiv impare din numărul citit iniţial. Exemplu: dacă se citeşte n = 3825, algoritmul va afişa: 5(suma cifrelor pare, adică (8+2)/5=10) și 4, adică (3+5)/2=4

Tema de casă 9. (Cifra de rang k) Se citeşte un număr natural nenul

Tema de casă 9. (Cifra de rang k) Se citeşte un număr natural nenul n, de maxim 8 cifre, de la tastatură şi o valoarea naturală din intervalul [1, 8], în variabila k. Scrieţi un algoritm în pseudocod/program în C++ care determină şi afişează cifra de rang k din numărul n citit iniţial(rangul unei cifre se determină de la dreapta spre stânga). Exemplu: dacă se citeşte n = 3825 și k=3, algoritmul va afişa cifra 8. 10. (Căutarea unei cifre) Se citeşte un număr natural nenul n, de maxim 8 cifre, de la tastatură şi o valoarea naturală din intervalul [0, 9], în variabila c. Scrieţi algoritm în pseudocod/program în C++ care verifică dacă cifra c există cel puţin o dată în numărul citit iniţial. Dacă cifra există se va afişa mesajul „EXISTĂ”, în caz contrar se va afişa mesajul „NU EXISTĂ”.