#include #include #include #include //pt functiile toupper si tolower //////////////////////////////////////// //citirea unei variabile cu n elem intr-o functie separata, // apelata dintr-o alta functie unde a este declarata locala //declarati un vector, si afisati maximul /*void citire_vector(int dim, int *v) { int *v_init; v_init = v; printf("\nIntroduceti elementele vectorului:\n"); for (int i = 0; i < dim; i++) { printf("v[%d] = ", i); scanf_s("%d", v); v++; } v = v_init; printf("\nVectorul introdus este:\n v=[ "); for (int i = 0; i < dim; i++) { printf("%d ", *v); v++; } printf("]"); } int maxim(int dim, int *v) { int max; max = *v; for (int i = 0; i < dim; i++) { if (max < (*v)) { max = *v; } v++; } return max; } void main() { int *v, dim; int max; printf("Introduceti dimensiunea vectorului: "); scanf_s("%d", &dim); if ((v = (int *)malloc(sizeof(int)*dim)) == NULL) { printf("Memorie insuficienta!"); exit(0); } citire_vector(dim, v); printf("\nElementul maxim din vector este: %d", maxim(dim, v)); _getch(); }*/ /////////////////////////// //afisarea celui de-al t-element dintr-un pointer de n elem /*void citire_afisare_v(int dim, int *v) { int *v_init; v_init = v; printf("\nIntroduceti elementele vectorului:\n"); for (int i = 0; i < dim; i++) { printf("v[%d] = ", i); scanf_s("%d", v); v++; } v = v_init; printf("\nVectorul introdus este:\n v=[ "); for (int i = 0; i < dim; i++) { printf("%d ", *v); v++; } printf("]"); } void afisare_n_elem_cu_for(int dim, int p, int *v) { printf("\nElementul ce se afla pe pozitia %d este: ",p); for (int i = 0; i < dim; i++) { if (i == p) { printf("%d", *v); break; } v++; if (p >= dim) { printf("\nPozitia este mai mare decat dimensiunea vectorului (pozitiile incep de la 0 la n-1)"); break; } } } void main() { int dim, *v, poz, *v_init; printf("Introducedti dimensiunea vectorului: "); scanf_s("%d", &dim); if ((v = (int*)malloc(sizeof(int)*dim)) == NULL) { printf("\nMemorie insuficienta!"); exit(0); } v_init = v; citire_afisare_v(dim, v); printf("\nIntroduceti o pozitie din vector: "); scanf_s("%d", &poz); //daca nu folosim al doilea if din functia afisare_n_elem_cu_for, vom face ciclarea urmatoare: //while (poz >= dim) { // printf("\nReintroduceti pozitie: "); // scanf_s("%d", &poz); //} afisare_n_elem_cu_for(dim, poz, v); _getch(); }*/ //// //citirea si afisarea unei matrici //suma elementelor diagonalei si //afisarea elementelor diagonalei puse intr-un vector /*void citire_matricii(int dim, int *a) { int i, j; int *a_init; a_init = a; printf("\nIntroduceti elementele matricii:\n"); for (i = 0; i < dim; i++) { for (j = 0; j < dim; j++) { printf("a[%d][%d] = ", i, j); scanf_s("%d", a); a++; } } printf("\Matricea introdusa este:\n"); a = a_init; for (i = 0; i < dim; i++) { for (j = 0; j < dim; j++) { printf("%d ", *a); a++; } printf("\n"); } } int suma_diag(int dim, int *a) { int suma = 0; for (int i = 0; i < dim; i++) { for (int j = 0; j < dim; j++) { if (i == j) suma = suma + (*a); a++; } } return suma; } void diagonala_in_vector(int dim, int *a, int *v) { int i, j; int *v_init; v_init = v; //cream vectorul ce contine diagonala for (i = 0; i < dim; i++) { for (j = 0; j < dim; j++) { if (i == j) { *v = *a; v++; } a++; } } //afisam vectorul ce contine diag v = v_init; printf("[ "); for (i = 0; i < dim; i++) { printf("%d ", *v); v++; } printf("]"); } void main() { int dim, *a, linii_coloane, *v; printf("Introduceti dimensiunea matricii patratice: "); scanf_s("%d", &dim); linii_coloane = dim*dim; //alocare memorie matrice patratica if ((a = (int *)malloc(sizeof(int)*linii_coloane)) == NULL) { printf("\nMemorie insuficienta"); exit(0); } //alocare memorie vector diagonalei if ((v = (int *)malloc(sizeof(int)*dim)) == NULL) { printf("\nMemorie insuficienta"); exit(0); } citire_matricii(dim, a); printf("\nSuma diagonalei principale este: %d", suma_diag(dim, a)); printf("\n\nDiagonala principala pusa intr-un vector este:\n"); diagonala_in_vector(dim, a, v); _getch(); }*/ //////////////////////////////////// //citirea si afisarea unei matrici cu un singur for /*void citire_afisare(int dim, int *a) { int i, *a_init, x=0, y=0; a_init = a; int lung = dim*dim; for (i = 0; i < lung; i++) { x = i / dim; y = i % dim; printf("a[%d][%d] = ", x, y); scanf_s("%d", a); a++; } a = a_init; printf("\nMatricea introdusa este:\n"); for (i = 0; i < lung; i++) { if ((i % dim) == 0) { printf("\n"); } printf("%d ", *a); a++; } } void main() { int dim, *a, lung; printf("Dimensiunea matricii:"); scanf_s("%d", &dim); lung = dim*dim; if ((a = (int*)malloc((sizeof(int))*lung))== NULL) { printf("\nMemorie insuficienta"); exit(0); } citire_afisare(dim, a); _getch(); } */ //////////////////////////////////////////////// //se citesc de la tastatura un sir de caractere, //si se foloseste un pointer pentru a accesa elem sirului //apoi se afiseaza cu litere mari folosind functia toupper() //respectiv cu litere mici folosind functia tolower() /*void main() { char sir_caractere[50]; char *p; printf("Introduceti sirul:\n"); gets_s(sir_caractere); p = sir_caractere; while (*p) { *p = toupper(*p); p++; } printf("Litere mari: %s\n", sir_caractere); p = sir_caractere; while (*p) { *p = tolower(*p); p++; //sau o singura instructiune //*p++ = tolower(*p); } printf("Litere mici: %s", sir_caractere); _getch(); }*/