You are on page 1of 10
Ki) BACALAUREAT INFORMATICA. LIMBAJUL C++ CAPITOLUL 5 Tablouri bidimensionale (matrice) Tabloul este un tip de date structurat in care elementele sunt de acelasi tip, numit tip de baza al tabloului. Un tablou bidimensional se numeste matrice. Declarare tip nume[nr_max_linii] [nr_max_coloane]; Unde: tip este tipul elementelor tabloului; nr_max_linii este 0 expresie constantd ce reprezint& numarul maxim de linii din matrice, nr_max_coloane este o expresie constant ce reprezinté numarul maxim de coloane din matrice. Exemplu: int a[10][10], L, Cc, i, 33 ‘Am declarat 0 matrice cu 10 linii si 10 coloane si elemente de tip intreg, putem utiliza doar L lini din matrice si C coloane din matrice, L¢10, C<10. Spunem ca L este numarul efectiv de linii din matrice si C este numarul efectiv de coloane din matrice. Citirea si afigarea elementelor unei matrice int a(10][10], L, C, i, 37 //citirea elementelor cin>>L>>C; for (i=0;i>ali] [3]; //afigarea elementelor matricei for (i=0;i3. * Deasupra diagonalei principale se afla elementele A[iJ[j], cu i<}. AUIO Al2]121 AI3I31 Alall4] AISII5) Diagonala secundara int A[6][6], L, i, js Cazul 1: Numerotarea liniilor si coloanelor de la 1 la L © Pentru L = 5 si numerotarea liniilor si coloanelor de la | la L, elementele de pe diagonala secundara sunt evidentiate in matricea de mai jos. «Pe diagonala secundara se afl elementele de forma A[iJ[j], cu proprietatea cA i+ j=L+1, sau elementele AfiJ[L + 1 — i], unde i= 1, L. © Sub diagonala secundar se afla elementele A[i][j], cu i+ j>L+1 * Deasupra diagonalei secundare se afla elemetele A[iJ[j], cu i+ L-1. * Deasupra diagonalei secundare se afla elemetele A[iJ[j], cu i+5<1-1. = ma BACALAUREAT INFORMATICA. LIMBAJUL C++ A(O}(4] ALL: ARI: ABIL ALaI(O) | Zo) Vecinii unui element Intr-o matrice, in functie de pozitia sa, un element poate avea 3, 5 sau 8 vecini. Pentru un element A[i][j], vecinii sai sunt reprezentati in matricea urmatoare. Afi- Uj") | Ati- 111) Ali- fj +1) Alilli- 0 Alil[il Alilli+ 1) Ali+ 1j-1) | Ali+ 1) Ali+ Ui +11 PROBLEME PROPUSE 1. Scrie un program C/C++ care citeste de la tastatura un numar natural N (20, dac& s1>s2 Concatenarea a doua siruri de caractere strcat (s1,s2) Concateneazi s2 la sl si returneaza adresa sl (se reunesc sirurile s1 si s2 prin adjugarea s2 dupa ultimul caracter din s1, rezultatul reunirii se obtine in sl). Ciutarea unui caracter intr-un sir de caractere strchr (s,ch) Daca sirul s contine caracterul ch, functia returneazi adresa din s a primei aparitii a caracterului ch. Daca sirul s nu confine carac- terul ch, functia returneazi NULL. Cautarea unui subsir intr-un sir de caractere strstr(sl,s2) Daca sirul s1 confine un subsir identic cu sirul s2, functia returneazd adresa din sl a primei aparitii a sirului s2. Daca sirul s1 nu contine un subsir identic cu sirul s2, functia returneaza NULL. Separarea unui sir de caractere in mai multe componente (entititi) a) strtok(s, separatori) b) strtok (NULL, separatori) Sirul s confine mai multe entitati (cuvinte, numere, propozitii etc.), separate prin unul sau mai multe caractere, memorate in sirul separatori. Primul apel al functiei are forma a, functia inlocuieste cu NULL primul separator ce apare in girul s si returneaz adresa primei entitati din sir. La fiecare dintre urmatoarele apeluri ale functiei strtok se aplicd forma b si se obtine adresa urmatoarei entitati din sir. Functia strtok returneazi NULL daca nu se mai poate obtine nicio entitate din sirul s. Transformarea unui sir de caractere la litere mari strupr (s) Toate literele mici din sirul s se transforma in litere mari, celelalte caractere din s nu se modifica. ‘Transformarea unui sir de caractere la litere mici strlwr(s) Toate literele mari din sirul s se transforma in litere mici, celelalte caractere din s nu se modifica. Func caractere (definite in headerul ectype) char ¢; isupper (c) predefinite pentru verificarea apartenentei unui caracter la o categorie de ar, Returneazi o valoare diferiti de 0, daca c este litera mare. Verificare litera mica islower (c) Returneaza o valoare diferita de 0, daca c este litera mica. Verificare cifra zecimala isdigit (c) Returneaza o valoare diferita de 0, daca c este cifra in baza 10. Verificare litera sau cifra isalnum(c) Returneaza o valoare diferita de 0, daca c este litera sau cifra. Transformare in literi mare toupper (c) Transforma caracterul ¢ in litera mare si il returneaza. ‘Transformare in litera micd Transforma caracterul c in litera mica si il returneaza. tolower (c) Ghid complet de pregitire a examenului de = BACALAUREAT INFORMATICA. LIMBAJUL C++ PROBLEME PROPUSE 1, in fisierul six. in pe prima linie se afld un text t avnd cel mult 200 de caractere (litere si spatii), format din mai multe cuvinte separate prin spatiu. Pe a doua linie din fisier se afla un cuvant ¢, format din cel mult 20 de litere. Scrie un program C++ care citeste sirurile de caractere t sic si modificd in memorie sirul s prin eliminarea tuturor cuvintelor care au un prefix comun cu sirul ¢. Programul afiseaz pe prima linie din figierul sir. out sirul s, obtinut dupa modificare si pe a doua linie numarul de cuvinte eliminate Exemplu sir.in sir.out maculator calcul cub informatica|maculator informatica calculator 2 2. Se citeste de la tastaturd un text t , avind cel mult 50 de caractere, format din litere si cifre egale cu I sau cu 2. Scrie un program C+ care citeste girul t si il afigeazd pe ecran dupa modificarea sa in memorie, prin inserarea cuvantului unu dupa fiecare aparitie a cifrei 1 in sirul t si inserarea cuvantului doi dupa fiecare aparitie a cifrei 2 in sir. De exemplu, daca t= "abl lcd21” atunci dupa executia programului se obtine t = "ablunul unucd2doilunu”, 3. Se citesc de la tastatura doua giruri de caractere s si t, avand fiecare cel mult 250 de caractere, litere si cifre. Fiecare sir confine cel putin o cifra si cel mult 4 cifre. Scrie un program C++ care determina si afigeaza pe ecran un numar, format din toate cifrele continute de cele doud siruri, in ordinea aparitiei lor in sirul s si t. De exemplu, daca s ="alb2bd9” si t = "7dgh6j”, se va afisa 12976. 4. In fisierul cuvinte. in pe prima linie se afl un numar natural n (O