Sunteți pe pagina 1din 3

Colegiul Național de Informatică „Spiru Haret’’ Suceava

Fișa de lucru L15


clasa a IX-a /
1 - Conversii între baze de enumerație

1. Se citește un număr N de la tastatură (N- număr natural, de maximum 3 cifre). Să se scrie


numărul N în baza 2.
#include <iostream> p=p*10;
using namespace std; N=N/2;
int main() }
{ int N,m,r,p; cout<<m<<endl;
Cout<<”N=”;cin>>N; }
while(N>0) return 0;
{ r=N%2; }
m=m+p*r;

2. Se citește un număr N, scris în baza 2. Să se exprime valoarea lui în baza 10.


#include <iostream> p=p*2;
using namespace std; N=N/10;
int main() }
{ int N,m,r,p; cout<<m<<endl;
Cout<<”N=”;cin>>N; }
while(N>0) return 0;
{ r=N%10; }
m=m+p*r;

3. În codul ASCII (American Standard Code for Information Interchange), fiecare caracter
(literă, cifră, semn de punctuație, etc) primește câte un cod numeric format din combinații
de 1 și 0 într-un octet. Codul este exprimat în baza 10, astfel ”A” primește codul 65, ”B”
codul 66, şi aşa mai departe, până la ”Z” care primește codul 90.
Să se scrie un program în C++ prin care să se afișeze combinația de 0 și 1 (octetul) asociat
fiecărei litere mari a alfabetului englez, sub forma:
A = 1000001
B = 1000010
C = 1000011
.....................................
Z = 1011010
Obs. Tipărirea unui caracter pornind de la codul său se face prin expresia char(n), unde n
este valoarea codului ASCII pentru un caracter.
#include <iostream> r=n%2;
using namespace std; m=m+p*r;
int main() p=p*10;
{ int i, n,m,r,p; n=n/2;
for (i=32; i<=64;i++) }
{ n=i;m=0;p=1; cout<<m<<endl;
cout<<char(i)<<" = "; }
while(n>0) return 0;
{ }
4. Dacă într-un octet se pot forma maximum 256 de combinații de 0 și 1, a câta combinație
este reprezentată de configurația 00001110 și ce caracter definește ? (Se va utiliza
char(nr) pentru tipărirea caracterului)

#include <iostream> p=p*2;


using namespace std; N=N/10;
int main() }
{ int N,m=0,r,p=1; cout<<"Combinatia cu numarul
cout<<"N=";cin>>N; "<<m+1<<" =>"<<char(m)<<endl;
while(N>0)
{ r=N%10; return 0;
m=m+p*r; }

5. Se citește un număr N exprimat într-o anumită bază B. Să se scrie un program care să


afișeze baza minimă în care poate fi exprimat numărul N.
#include <iostream> maxi=N%10;
using namespace std; N=N/10;
int main() }
{ cout<<"Baza minima in care
int N, maxi=0; poate fi exprimat numărul este:
cout<<"N="; cin>>N; "<<maxi+1;
while(N>0) return 0;
{ }
if(N%10>maxi)

6. Se citește un număr N exprimat în baza 4: (N)4. Scrieți numărul N în baza 6: (N)6

#include <iostream> r=N%10;


using namespace std; m=m+r*p;
int main() p=p*4;
{ N=N/10;
int N,i,r,m=0,p=1,maxi, cn; }
//cout<<"N="; cin>>N; cout<<endl<<m<<" in baza 10 "<<endl;
do{ //transformam din baza 10 in
cout<<"N=";cin>>N; baza 6
maxi=0;cn=N; //REinitializam variabilele
while(cn>0) utilizate
{ N=m;
if(cn%10>maxi) m=0;r=0;p=1;
maxi=cn%10; while(N>0)
cn=cn/10; {
} r=N%6;
if(maxi>3) m=m+r*p;
cout<<"Numarul NU poate fi p=p*10;
exprimat in baza 4 ! Mai incercati N=N/6;
!"<<endl; }
}while(maxi>=4); cout<<"si apoi "<<m<<" in baza
6 "<<endl;
//transformam in baza 10 return 0;
cout<<N<<" in baza 4 devine "; }
while(N>0)
{
2. Algoritmi cu rezolvare recursivă

2.a – Factorialul unui număr


2.b – Șirul lui Fibonacci

2.a – Se citește un număr x. Să se afișeze Factorialul lui x;


#include <iostream> f=f*i;
using namespace std; cout<<"factorialul lui
int main() "<< x <<" este "<<f;
{int x; return 0;
cin>>x; }
int f=1;
for(int i=2; i<=x; i++)
2.a(1) – Să se calculeze și să se afișeze factorialele numerelor de la 10 la 20

#include <iostream> {
#include <fstream> x=j;
using namespace std; int f=1;
ifstream f("date.in"); for(int i=2; i<=x; i++)
int main() f=f*i;
{ int x;
f>>x; cout<<endl<<"factorialul lui
///1- Factorialul unui "<< x <<" este "<<f;
numar }
for(int j=10; j<=20; j++)

2.b – Șirul lui Fibonacci

Șirul Fibonacci este un șir de numere descoperit de matematicianul Leonardo Pisano, unde
fiecare element se generează pe baza ultimelor două numere. Astfel:

Primele două numere ale șirului sunt egale cu 1: f1 = 1, f2 = 1;


Pentru celelalte numere: fn = fn - 1 + fn - 2 (n ≥ 3).
Unele persoane consideră și elementul 0 ca fiind elementul f0 al șirului.

Astfel, primele 20 de numere ale șirului sunt 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377,
610, 987, 1597, 2584, 4181, 6765, …, care verifică condiția fn = fn-1 + fn-2:

Pentru a implementa șirul Fibonacci în C++, ne vom folosi de trei variabile, a, b și c, cu


următorul algoritm:

La început, a și b sunt egale cu 1 (primele două elemente Fibonacci);


La fiecare pas, c primește a + b (devenind astfel noul termen Fibonacci generat), iar a devine
b și b devine c (ca să generăm următorul element, care ar fi fost egal cu b + c)

#include <iostream> c = a + b; a = b; b = c;
using namespace std; cout << c << " "; //Afișăm
int main() noul element generat
{ int n; }
cin >> n; //Numărul return 0;
int a = 1, b = 1, c; }
cout << a << " " << b << " ";
//Afișăm primii 2 termeni
for(int i = 3; i <= n; i++) {
//Afișăm restul de termeni

S-ar putea să vă placă și