Sunteți pe pagina 1din 4

1.

CONVERSIE SIRURI DE CARACTERE -> VALORI NUMERICE SI INVERS (a =array; f= floa t; i=integer; l=long int) Functia atof converteste un sir catre tipul DOUBLE double.double atof(const char *s)

Functia atoi converteste un sir catre int:int atoi(const char *s); ? Functia atol converteste long:long atol(const un sir

tipul

INT

catre

tipul

char *s);

Daca conversia esueaza (se ntlneste un caracter nenumeric) valoarea ntoarsa este 0. Daca primele caractere ale sirului sunt albe, acestea sunt ignorate.

Functia

char* itoa(int valoare, char * sir, int baza); converteste valoare (de tip intreg) la un sir de caractere, a carui adresa este memorata de sir.

2. STRUCTURI ALTERNATIVE: a) Instructiunea switch...case switch (selector) {case expresie1: {instructiune1; break;}; case expresie2: {instructiune2; break;}; ....... default instructiune;

} Selectorul poate fi doar o valoare intreaga. Se compara selectorul cu expresie1. Daca sunt egale se executa instructiune1 si se trece la urmatoarea instructiune de dupa switch...case. Daca nu sunt egale se compara selector cu expresie2, etc. Daca selector nu este egal cu nici una dint re expresii se executa instructiune (In cazul in care exista default. Acesta poa te lipsi...).

b) Operatorul de selectie: Operatorul conditional Operatorul conditional este singurul operator ternar. Are prioritatea mai ridica ta doar decat a operatorilor de atribuire si a celui secvential, iar asociativit atea este de la dreapta spre stanga. El se foloseste in situatiile in care exist a doua variante de obtinere a unui rezultat, dintre care se alege una singura, f unctie de indeplinirea sau neindeplinirea unei conditii. Cei trei operanzi sunt expresii, prima reprezentand conditia testata. expr0 ? expr1 : expr2 Daca valoarea expr0 este adevarata ( !=0 ), se evalueaza expr1, altfel expr2, re zultatul expresiei evaluate fiind rezultatul final al expresiei conditionale. Exemple: Expresia de mai jos determina valoarea maxima dintre a si b, pe care o memoreaza in max: max=a>b?a:b; Acelasi rezultat se obtine daca se foloseste instructiunea if: if(a>b)max=a; else max=b; 3.ALGORITMUL LUI EUCLID: determina cmmdc a doua numere natural int cmmdc(int a, int b) {int rest; while(b!=0){ rest=a%b; a=b; b=rest; } return a; }

4. METODE DE ORDONARE A VECTORILOR:

a) METODA SELECTIEI DIRECTE (pentru vectori de mici dimensiuni) Determina elemental minim pentru fiecare secventa care incepe de pe pozitia i ca tre dreapta vectorului si il plaseaza pe pozitia i. void selectie(int v[100], int n) {int min, pozmin,i,j; for(i=0;i<=n-2;i++) {min=v[i]; for(j=i+1; j<=n-1;j++) if(v[j]<min) {min=v[j]; pozmin=j;} if(v[i]>min) {aux=v[i]; v[i]=v[pozmin]; v[pozmin]=aux;} } }

b) METODA NUMARARII Pentru fiecare element aflat pe pozitia i intr-un vector v determina cate elemen te din vector sunt mai mici decat el (k) si plaseaza elemental v[i] intr-un nou vector b pe pozitia corespunzatoare (k+1) void numarare(int v[100], int n) {int b[100], i,j,k; for(i=1;i<=n;i++) {k=0; for(j=1;j<=n;j++) if(v[i]>v[j] && i!=j) k++; b[k+1]=v[i]; } }

5. GRAH HAMILTONIAN= graf care contine un ciclu Hamiltonian. Un ciclu Hamiltonia n=ciclu care contine toate nodurile grafului. GRAF EULERIAN= graf care contine un ciclu eulerian. Un ciclu eulerian = ciclu ca re contine toate muchiile grafului.

6. ANALIZA COMPLEXITATII UNUI ALGORITM: a) DURATA DE EXECUTARE: i) Daca in program nu exista nicio structura repetitive-> algoritm liniar cu com plexitatea O(1). 2i) Daca in program exista o singura instructiune for(i=1;i<=n;i++) complexitate a algoritmului este O(n). Tot atat este si daca sunt mai multe instructiuni for independente. In acest caz algoritmul este liniar 3i) Daca exista: for(i=1;i<=n;i++) for(j=i+1;j<=n;j++) complexitatea algoritmului este O(n^2). In acest caz algoritmul este patratic 4i) Daca in program exista h=1; while(h<=n) {instructiuni; h=2*h; } Variabila h ia valorile 1,2,4,8,... pana cand depaseste n. rezulta ca sunt 1+log n (in baza 2) executii ale instructinilor din structura repetitiva. Complexitat ea algoritmului este log n (in baza 2). Algoritmul se numeste logaritmic.

b) SPATIU DE MEMORIE UTILIZAT: int x=10; float y=100; double z=200; char c='a',s[10]; cout<<sizeof(x)<<endl; cout<<sizeof(y)<<endl; cout<<sizeof(z)<<endl; cout<<sizeof(c)<<endl; cout<<sizeof(s)<<endl; variabilele de tip int si float au memoria de 4 kb, cele de tip double au 8 kb, si char are 1 kb.

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