lab_1_var_4 (1)
DESCRIPTION
fdsfffffffffffffffaF D SD FDS DSAfsdvs d;;kkkkkkkkkkkkkkkkksss;;;;;;;aaTRANSCRIPT
Ministerul Educaţiei şi Tineretului al Republicii Moldova
Universitatea Tehnică a Moldovei
Catedra: Automatica și Tehnologii Informaționale
RAPORT
Lucrare de laborator Nr.1 la Structuri de date și algoritmi
Varianta 4
A efectuat: St. gr. TI-141P.Bujac
A verificat: lect. univ. superiorL. Stadler
Chişinău 2015
Tema: „Șiruri de caractere”
Scopul lucrării: „Acumularea deprinderilor de algoritmizare și programare a problemelor ce prelucrează datele de tip „șir de caractere”; introducerea, afișarea și prelucrarea şirurilor de caractere, folosind funcțiile definite explicit și funcţiile-standard de prelucrare a şirurilor”.
Sarcina de lucru pentru varianta IV:"De elaborat un program, care va introduce 4 șiruri ce reprezintă valori
întregi, transformă șirurile în numere întregi, sumează și afișează suma celor 4 valori."
Mersul lucrării:
1. Utilizatorul va fi rugat să introducă de la tastatură 4 șiruri de caractere (în cadrul unui ciclu).
2. La sfîrșitul fiecărei iterației (1−4) a ciclului, șirul introdus se transmite ca parametru funcției cu prototipul double numTransf(char[255]);
3. Urmează parcurgerea șirului transmis funcției numTransf(), cu ajutorul unui ciclu pentru strlen(/* șirul transmis */) ori, de la sfîrșitul șirului, spre începutul acestuia, verificînd, de fiecare dată, caracterul șirului de pe poziția i, dacă acesta aparține diapazonului de valori [1..10], unde sir[i] ∈ ['1'..'10']. Ca urmare, lui intNum (apriori inițializat prin zero) i se atribuie valoarea expresiei:
intNum + ( cifra_corespunzatoare_caracterului * pow(zece, exponent) );
unde zece = 10.0, iar exponent -ul este egal cu numărul iterației ciclului dat.
4. Valoarea calculată în cadrul funcției numTransf(), este returnată prin numele ei în programul principal, și adunată la variabila sum, menită să stocheze suma celor patru numere întregi.
Schema logică a programului
Analiza datelor:
1. Datele de intrare : strNum - reprezintă un șir de caractere (un array de tip char).2. Datele de ieşire : sum - variabilă simplă de tip double, cu ajutorul căreia va fi afișată suma celor patru numere întregi.
/* Textul programului in limbajul "C" */
#include <conio.h>#include <string.h>#include <ctype.h>#include <stdlib.h>#include <stdio.h>
struct { int index; int value;} PX[10], P;
int main(){ int i,j,k, boolean, n = 10; char name[10][50], aux1[50], aux2[10], *p;
printf("\n");
for(i=0; i < n; i++){ printf(" Indtrodu numele #%d: ", i+1); gets(name[i]);
}
for(i=0; i < n; i++){ PX[i].index = i; PX[i].value = 0; }
for(i=0; i < n; i++) for(j=0; j < n; j++){
//PRIMUL CUVINT for(k=0; k < strlen(name[i]); k++) aux1[k] = toupper(name[i][k]); aux1[strlen(name[i])] = '\0';
//AL DOILEA CUVINT for(k=0; k < strlen(name[j]); k++) aux2[k] = toupper(name[j][k]); aux2[strlen(name[j])] = '\0';
//COMPARAREA
boolean = strcmp( aux1, aux2 ); // bool > 0 daca aux1 > aux 2 if (boolean > 0) PX[i].value++; // MARIM CU O UNITATE, GRADUL POZITIEI SIRULUI IN LISTA }
for(i=0; i < n-1; i++) for(j=i+1; j < n; j++){ if(PX[i].value > PX[j].value){ P = PX[i]; PX[i] = PX[j]; PX[j] = P; } }
printf("\n\n");
for(i=0; i< n; i++){ printf(" "); puts( name[ PX[i].index ] ); }
printf("\n\n");
/*for(i=0; i< n; i++){ printf(" index[%d] = %d \n",i, index[i]); } */
getch();return 0;}
Exemplu de execuție a programului:
Concluzie:
În lucrarea dată am obținut deprinderi practice de lucru cu tablouri de
tip char, am întărit cunoștințele în ceea ce privește particularitățile de
declarare, de introducere și de prelucrare a șirurilor de caractere (tablourilor
de tip char).
Pe lîngă aceasta, am acumulat niște cunoștințe adiționale de
algoritmizare și programare a problemelor ce utilizează biblioteca string.h,
familiarizîndu-mă cu principalele funcții-standard de prelucrare și de
procesare a șirurilor de caractere, precum și crearea unor funcții explicite de
prelucrare a șirurilor.
Bibliografie:
„Programare: inițializare în limbajele C/C++ ” de Sergiu G. Istrati
„Totul despre C si C++. Manualul fundamental de programare în C și C++ ” de Dr. Kris Jamsa & Lars Klander.
„УЧЕБНИК ПРОГРАММИРОВАНИЯ НА ЯЗЫКЕ СИ” (http://citforum.ru/programming/c/dir.shtml)