0% au considerat acest document util (0 voturi)
37 vizualizări23 pagini

Referat Informatica

Documentul prezintă funcții de conversie între numere și șiruri de caractere în C/C++, precum atof, atoi, atol, itoa și ltoa. Sunt prezentate exemple de programe care utilizează aceste funcții pentru a rezolva probleme de conversie, verificare de palindroame și determinarea divizorilor comuni.

Încărcat de

Adrian Vancea
Drepturi de autor
© All Rights Reserved
Respectăm cu strictețe drepturile privind conținutul. Dacă suspectați că acesta este conținutul dumneavoastră, reclamați-l aici.
Formate disponibile
Descărcați ca DOCX, PDF, TXT sau citiți online pe Scribd
0% au considerat acest document util (0 voturi)
37 vizualizări23 pagini

Referat Informatica

Documentul prezintă funcții de conversie între numere și șiruri de caractere în C/C++, precum atof, atoi, atol, itoa și ltoa. Sunt prezentate exemple de programe care utilizează aceste funcții pentru a rezolva probleme de conversie, verificare de palindroame și determinarea divizorilor comuni.

Încărcat de

Adrian Vancea
Drepturi de autor
© All Rights Reserved
Respectăm cu strictețe drepturile privind conținutul. Dacă suspectați că acesta este conținutul dumneavoastră, reclamați-l aici.
Formate disponibile
Descărcați ca DOCX, PDF, TXT sau citiți online pe Scribd

Vancea Adrian

Referat informatica

Functii de conversie numar in sir de caractere si din sir de caractere in


numar :

 Functia atof cu forma generala


double atof(sir); – converteste un sir catre tipul double. Daca aceasta
conversie esueaza
(se intalneste un caracter nenumeric), valoarea intoarsa este 0. Aceasta
functie (ca si cele similare) necesita includerea librariei stdlib.h.

 Functia atoi cu forma generala


int atoi(sir); – converteste un sir catre tipul int. Daca aceasta conversie
esueaza (se intalneste un caracter nenumeric), valoarea intoarsa este 0.

 Functia atol cu forma generala


long atol(sir); – converteste un sir catre tipul long. Daca aceasta conversie
esueaza (se intalneste un caracter nenumeric), valoarea intoarsa este 0.

 Functia itoa cu forma generala


itoa(int valoare,sir,int baza); – converteste o valoare de tip int in sir, care
este memorat in variabila sir. Baza retine baza de numeratie catre care sa se
faca conversia. In cazul bazei 10, sirul retine si eventualul semn -.

 Functia ltoa cu forma generala


ltoa(long valoare,sir,int baza); – converteste o valoare de tip long int in sir,
care este memorat in variabila sir.
Functia atof:
[Link] consideră un șir de maximum 50 de caractere, fără spații, ce contine numai
cifre. Scrieți un program C/C++ care să citească de la tastatură un text de tipul
menționat mai sus și determinaţi cea mai mare cifră pară a sa. Dacă numărul nu are
cifre pare se va afişa numărul 10.

Exemplu 1
Date de intrare

1440

Date de ieșire

Exemplu 2
Date de intrare

1111

Date de ieșire

10

#include <iostream>
#include<string.h>
#include<stdlib.h>
using namespace std;

int main()
{
char s[51];
int n,max=10;
cin>>s;
n=atof(s);
if(n==0)
max=0;
while(n!=0)
{
if(max==10)
{
if(n%2==0)
max=n%10;
}
else
{

if(n%10>max && n%2==0)


max = n%10;
}
n=n/10;
}
cout<<max;
return 1;
}
[Link] consideră un șir de maximum 20 de caractere, fără spații, ce contine numai
cifre. Scrieți un program C/C++ care să citească de la tastatură un text de tipul
menționat mai sus și să se scrie un program care să determine numărul de apariţii
ale ultimei cifre a sirului.

Exemplu
Date de intrare

57015

Date de ieșire

#include <iostream>
#include <string.h>
#include<stdlib.h>
using namespace std;

int main ()
{
char s[21];
int n,cnt=0;
cin>>s;
n=atof(s);
int u=n%10;
if(n==0)
cnt++;
while (n!=0)
{
if (n%10 == u)
cnt ++;
n=n/10;
}
cout<<cnt;
return 0;
}

Functia atoi:

1. Se consideră un șir de maximum 100 de caractere, fără spații, cu litere ale


alfabetului englez și cifre. Scrieți un program C/C++ care să citească de la tastatură
un text de tipul menționat mai sus și in cazul in care sirul contine numai cifre să se
afişeze în ordine crescătoare, termenii şirului lui Fibonacci, despartiti prin cate un
spatiu, mai mici sau egali cu numarul format din cifrele sirului iar daca sirul nu
contine numai cifre sa se afiseze mesajul "SIRUL NU ESTE COMPATIBIL".
Exemplu 1
Date de intrare

40

Date de ieșire

1 1 2 3 5 8 13 21 34

Exemplu 2
Date de intrare

40abc

Date de ieșire

SIRUL NU ESTE COMPATIBIL

#include <iostream>
#include<string.h>
#include<stdlib.h>

using namespace std;

int main()
{
char s[101];
int n,nr=0,a,b=1,c,i,p;
cin>>s;
n=atoi(s);
p=n;
while(p!=0)
{
p=p/10;
nr++;
}
if(strlen(s)==nr)
{
i=1;
while(i<=n)
{
a=1;
b=1;
if(n==1)
cout<<1<<' '<<1;
else
{
cout <<1<<' '<<1<<' ';
while(n>=b)
{
c=a+b;
a=b;
b=c;
i=b;
if(b<=n)
cout<<b<<' ';
}
}
}
}
else
cout<<"SIRUL NU ESTE COMPATIBIL";
return 1;
}
2. . Se consideră doua șiruri de maximum 255 de caractere, fără spații, cu litere ale
alfabetului englez și cifre. Scrieți un program C/C++ care să citească de la tastatură
doua text de tipul menționat mai sus și in cazul in care sirurile contin numai cifre
să se scrie un program care afișează divizorii comuni ale celor doua siruri daca
sirul nu contine numai cifre sa se afiseze mesajul "SIRUL NU ESTE
COMPATIBIL".

Exemplu 1:
Intrare

24 36

Ieșire

1 2 3 4 6 12
Exemplu 2:
Intrare

24ab23 36jk

Ieșire

SIRUL NU ESTE COMPATIBIL

#include <iostream>
#include <string.h>
#include<stdlib.h>
using namespace std;

int main()
{
char s1[256],s2[256];
int a,b,x,y,r,cmmdc,p,t,nr=0;
cin>>s1>>s2;
a=atoi(s1);
b=atoi(s2);
p=a;
t=b;
while(p!=0)
{
p=p/10;
nr++;
}
while(t!=0)
{
t=t/10;
nr++;
}
if(strlen(s1)+strlen(s2)==nr)
{
x=a;
y=b;
while (y!=0)
{
r=x%y;
x=y;
y=r;
}
cmmdc=x;
for (int i=1;i<=cmmdc;i++)
if (a%i==0 && b%i==0)
cout<<i<<" ";
}
else
cout<<"SIRURILE NU SUNT COMPATIBILE";
return 0;
}
Functia atol:

1. .Se consideră doua șiruri de maximum 20 de caractere, fără spații, cu litere ale
alfabetului englez și cifre. Scrieți un program C/C++ care să citească de la tastatură
un text de tipul menționat mai sus și in cazul in care sirul contin numai cifre să se
scrie un program care determină suma primelor n pătrate perfecte nenule, iar daca
sirul nu contine numai cifre sa se afiseze mesajul "SIRUL NU ESTE
COMPATIBIL".

Exemplu 1
Intrare

6
Ieșire

Rezultatul este 91

Exemplu 2
Intrare

6abc

Ieșire

SIRUL NU ESTE COMPATIBIL

#include <iostream>
#include<string.h>
#include<stdlib.h>
using namespace std;

int main()
{
char s[31];
int n,p,nr=0;
n=atol(s);
p=n;
while(p!=0)
{
p=p/10;
nr++;
}
if(strlen(s)==nr)
cout<<"Rezultatul este"<<n*(n+1)*(2*n+1)/6;
else
cout<<"SIRUL NU ESTE COMPATIBIL";
return 0;
}
[Link] consideră doua șiruri de maximum 30 de caractere, fără spații, cu litere ale
alfabetului englez și cifre. Scrieți un program C/C++ care să citească de la tastatură
un text de tipul menționat mai sus și in cazul in care sirul contin numai cifre să se
scrie un program care citește numărul natural n și determină suma pătratelor
perfecte mai mici sau egale cu n., iar daca sirul nu contine numai cifre sa se afiseze
mesajul "SIRUL NU ESTE COMPATIBIL".

Exemplu
Intrare

20

Ieșire

Rezultatul este 30

Explicație
Pătratele perfecte mai mici sau egale cu 20 sunt 1, 4, 9 și 16, iar suma lor este 30.
#include <iostream>
#include <string.h>
#include <stdlib.h>
#include <math.h>
using namespace std;

int main()
{
char s[31];
int n,p,nr=0,a;
cin>>s;
n=atol(s);
p=n;
while(p!=0)
{
p=p/10;
nr++;
}
if(strlen(s)==nr)
{
a=sqrt(n);
cout<<"Rezultatul este "<<a*(a+1)*(2*a+1)/6;
}
else
cout<<"SIRUL NU ESTE COMPATIBIL";
return 1;
}
Functia itoa:

Se citesc de la tastatură două șiruri a și b, fără spații cu cel mult 100 de


caractere . Scrieți un program în C/ C++ care să converteasca sirul a in baza
16 si sirul b in baza 2 daca a si b sunt numere palindrom, altfel afisam
mesajul “NU EXISTA”.
Exemplu
Intrare

1221 131

Ieșire

1221 in baza 16 4c5


131 in baza 2 10000011

#include<iostream>
#include<stdlib.h>
#include<string.h>
using namespace std;
int main()
{
char a[101],b[101];
int ogl1=0,ogl2=0,p,t,c1,c2,x,y;
cout<<"a=";cin>>a;
cout<<"b=";cin>>b;
x=atoi(a);
y=atoi(b);
p=x;
t=y;
while(p!=0)
{
c1=p%10;
ogl1=ogl1*10+c1;
p=p/10;
}
while(t!=0)
{
c2=t%10;
ogl2=ogl2*10+c2;
t=t/10;
}
if(ogl1==atoi(a)&&ogl2==atoi(b))
{
itoa(x,a,16);
cout<<x<<" "<<"in baza 16"<<" "<<a<<endl;
itoa(y,b,2);
cout<<y<<" "<<"in baza 2"<<" "<<b;
}
else
cout<<"NU EXISTA";
return 1;
}
Functia ltoa :

Un număr natural este pseudoperfect dacă este divizor al sumei divizorilor


săi.
Se citeste de la tastatură sirul x, fără spații si ce contine numai cifre,cu cel
mult 60 de caractere . Scrieți un program în C/ C++ care să converteasca
sirul x in baza 8 daca sirul x verifică dacă un numărul natural citit de la
tastatură este pseudoperfect, altfel afisam mesajul “NU”.

Exemplu
Intrare

120

Ieșire
120 in baza 8 170

Exemplu
Intrare

170

Ieșire

NU

#include<iostream>
#include<stdlib.h>
#include<string.h>
using namespace std;

int main()
{
char x[61];
cin>>x;
long long S;
int n,i;
n=atoi(x);
S=0;
for (i=1;i*i<=n;i++)
if (n%i==0 )
if (i==n/i)
S=S+i;
else
S=S+i+n/i;
if (S%n==0)
{
ltoa(n,x,8);
cout<<n<<" "<<"in baza 8"<<" "<<x<<endl;
}
else
cout<<"NU";
return 1;
}

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