Sunteți pe pagina 1din 6

Ministerul Educaiei i Tineretului al Republicii Moldova

Universitatea Tehnic a Moldovei

Catedra: Automatica i Tehnologii Informaionale

RAPORT
Lucrare de laborator Nr.1
la Structuri de date i algoritmi
Varianta 4

A efectuat:

St. gr. TI-141


P.Bujac

A verificat:

lect. univ. superior


L. Stadler

Chiinu 2015

Tema: iruri de caractere


Scopul lucrrii: Acumularea deprinderilor de algoritmizare i programare a
problemelor ce prelucreaz datele de tip ir de caractere; introducerea, afiarea i
prelucrarea irurilor de caractere, folosind funciile definite explicit i funciile-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 afieaz suma celor 4
valori."
Mersul lucrrii:
1. Utilizatorul va fi rugat s introduc de la tastatur 4 iruri de caractere (n
cadrul unui ciclu).
2. La sfritul fiecrei iteraiei (14) a ciclului, irul introdus se transmite ca
parametru funciei cu prototipul
double numTransf(char[255]);
3. Urmeaz parcurgerea irului transmis funciei numTransf(), cu ajutorul unui
ciclu pentru strlen(/* irul transmis */) ori, de la sfritul irului, spre nceputul
acestuia, verificnd, de fiecare dat, caracterul irului de pe poziia i, dac acesta
aparine diapazonului de valori [1..10], unde sir[i] ['1'..'10']. Ca urmare, lui
intNum (apriori iniializat prin zero) i se atribuie valoarea expresiei:
intNum + ( cifra_corespunzatoare_caracterului * pow(zece, exponent) );
unde zece = 10.0, iar exponent -ul este egal cu numrul iteraiei ciclului dat.
4. Valoarea calculat n cadrul funciei 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 ieire: sum - variabil simpl de tip double, cu ajutorul creia va
fi afiat suma celor patru numere ntregi.

/* Textul programului in limbajul "C" */


#include
#include
#include
#include
#include

<conio.h>
<string.h>
<ctype.h>
<stdlib.h>
<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[strlen(name[i])] = '\0';

aux1[k] = toupper(name[i][k]);

//AL DOILEA CUVINT


for(k=0; k < strlen(name[j]); k++)
aux2[strlen(name[j])] = '\0';

aux2[k] = toupper(name[j][k]);

//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 ntrit 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 lng aceasta, am acumulat ni te cuno tin e adi ionale de
algoritmizare i programare a problemelor ce utilizeaz biblioteca string.h,
familiarizndu-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)

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