lab_1_var_4 (1)

8
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-141

Upload: petru-bujac

Post on 15-Jan-2016

220 views

Category:

Documents


0 download

DESCRIPTION

fdsfffffffffffffffaF D SD FDS DSAfsdvs d;;kkkkkkkkkkkkkkkkksss;;;;;;;aa

TRANSCRIPT

Page 1: LAB_1_VAR_4 (1)

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

Page 2: LAB_1_VAR_4 (1)

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.

Page 3: LAB_1_VAR_4 (1)

Schema logică a programului

Page 4: LAB_1_VAR_4 (1)

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

Page 5: LAB_1_VAR_4 (1)

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:

Page 6: LAB_1_VAR_4 (1)

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)