Sunteți pe pagina 1din 10

MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII AL REPUBLICII

MOLDOVA

UNIVERSITATEA TEHNICĂ A MOLDOVEI

Facultatea Calculatoare, Informatică şi Microelectronică

Departamentul Informatică și Ingineria Sistemelor

Lucrare de laborator Nr. 6


Tema: Prelucrarea datelor de tip char in limbajul C.

Disciplina: Programarea calculatoarelor

A elaborat st. gr. CR-211 FR, Sava Victoria

A verificat asist. univ., master. Toma Olga

Chisinău 2021
Lucrare de laborator nr. 6
Tema: Prelucrarea datelor de tip char in limbajul C.

1. Scopul lucrării

Progamarea algoritmilor pentru prelucrarea datelor de tip char, folosind


functii standarte de prelucrare in limbajul C.

2. Condiția

Varianta 9. Determinati numarul de consoane intr-o propozitie si numarul de


repetare a fiecarei consoane

Mersul lucrării :

Noțiuni teoretice și metode folosite :


Tipul char este un tip reprezentat pe 8 biti (un octet sau un byte). O variabila de
tipul char poate lua valori intregi in intervalul [-128, 127]. Constantele de tip char
pot fi numere intregi sau caracterele care au codurile ASCII intervalul specificat
anterior. Desi valorile de tip char par a cauza ambiguitate printre oameni deoarece
pot fi reprezentate doua lucruri cu ajutorul lor, caractere si numere intregi pentru
calculator inseamna acelasi lucru, deoarece el retine orice caracter cu ajutorul unei
valorii numerice, denumita cod ASCII. De exemplu, caracterul A si constanta 65
au pentru calculator aceeasi semnificatie, deoarece codul ASCII al caracterului A
este 65.

Citirea unui caracter:


De la tastatura Din fisier
C scanf(“%c”, &a); a = Functia scanf va fi folosita in mod obisnuit dar va fi
fgetc(stdin); folosit %c pentru a citit un caractere.
A = fget(fisier);
Unde fisier este o variabila de tipul FILE *.
C++ Ignora caracterele albe: Va fi folosita variabila declarata ca fiind un fisier in loc
de cin.
cin >> a; cin.get(a);

Afisarea unui caracter:


De la tastatura Din fisier
C Functia scanf va fi folosita in mod obisnuit dar va fi folosit %c
printf(“%c”, a); pentru a citit un caractere.
fputc(a, stdout); fputc(a, fisier);
Unde fisier este o variabila de tipul FILE *.
C++ cout << a; Va fi folosita variabila declarata ca fiind un fisier in loc de cout.
cout.put(a);

Vectori de caractere

Declarare: char a[LUNGIME_VECTOR]; sirurile de caractere incep numerotarea


de la pozitia 0
Accesarea unui caracter dintr-un sir de caractere: a[pozitie] (la fel ca la orice
vector) Un sir de caractere trebuie sa se termine cu caracterul ‘\0’ (marcatorul
de final de sir)

Citirea unui sir de caractere:


De la tastatura Din fisier
C Citeste toate caracterele pana la primul Functia scanf va fi folosita in mod
caracter alb: scanf(“%s”, &a); obisnuit dar va fi folosit %s pentru a citit
Citeste pana la intalnirea lui enter: un caractere.
fgets(a,LUNGIME_VECTOR, stdin); fgets(a, LUNGIME_VECTOR,
fisier);
Unde fisier este o variabila de tipul FILE
*.
C++ Citeste toate caracterele pana la primul Va fi folosita variabila declarata ca fiind un
caracter alb: cin >> a; fisier in loc de cin.

citeste pana la intalnirea lui enter:


cin.getline(a, LUNGIME_VECTOR);

Afisarea unui sir de caractere:


De la tastatura Din fisier
C printf(“%s”, Functia printf va fi folosita in mod obisnuit dar va fi folosit %s
a); pentru a afisa un sir de caractere.
C++ cout << a; Va fi folosita variabila declarata ca fiind un fisier in loc de cout.

Funcții și subprograme în C:

O funcţie reprezintă o secvenţă de instrucţiuni care poate fi identificată şi


apelată prin intermediul unui nume.

Funcţiile sunt un element foarte important în orice limbaj de programare,


deoarece uşurează foarte mult munca programatorului, eliminând necesitatea
scrierii aceluiaşi cod de mai multe ori. De asemenea, prin folosirea funcţiilor
programele pot fi structurate în blocuri, implicând o mai bună depanare şi
modularizare a programelor respective.

Utilizarea unei funcţii presupune două elemente distincte:


- definirea
funcţiei; - apelul
funcţiei;
Definirea unei funcţii reprezintă precizarea tipului returnat de funcţia
respectivă, a argumentelor funcţiei şi a tipurilor acestora şi scrierea corpului
funcţiei (instrucţiunile care vor fi executate când va fi apelată funcţia).

Apelarea unei funcţii constă în folosirea propriu-zisă a funcţiei, într-o altă


funcţie. Apelarea se poate face atât în funcţia principală (main), cât şi într-o altă
funcţie.

Returnarea unei valori de către o funcţie se face folosind instrucţiunea return


înainte de încheierea funcţiei respective. De asemenea, instrucţiunea return se
poate folosi şi pentru încheierea forţată a execuţiei unei funcţii.

O funcţie poate returna orice valoare dintr-un tip de bază, cu excepţia unui
tablou. Dacă funcţia nu returnează nici o valoare, atunci se consideră că returnează
void (tipul vid).
Atenţie! dacă nu se specifică nimic la tipul returnat de funcţie, compilatorul C
consideră că funcţia respectivă returnează o valoare de tip întreg (va fi semnalat un
avertisment (warning) –

Function should return a value)


În utilizarea funcţiilor se pot deosebi două tipuri de parametri, în funcţie de
specificul lor:
- parametrii formali;
- parametrii actuali;
Variabilele care sunt declarate în interiorul unei funcţii se numesc variabile
locale şi sunt accesibile doar în interiorul funcţiei respective. Valorile reţinute în
aceşti parametrii se pierd odată cu ieşirea din blocul respectiv.

Argumentele (parametrii) cu care este definită o funcţie sunt numiţi


parametrii formali. După ce a fost definită funcţia, parametrii formali pot fi folosiţi
în funcţia respectivă ca şi variabile locale obişnuite. Ei sunt numiţi “formali”
deoarece funcţia nu va fi apelată cu parametrii respectivi, ci cu parametrii de
tipurile respective (ei sunt precizaţi pentru a se cunoaşte prototipul funcţiei
respective).

Parametrii actuali sunt parametrii cu care se apelează propriu-


zis o funcţie.

În general, este necesară transmiterea valorilor calculate într-o funcţie, pentru


a putea fi folosite într-o altă funcţie. Transmiterea valorilor se poate face în două
moduri:
- prin valoare;
- prin adresă;

Transmiterea parametrilor prin valoare


Transmiterea parametrilor prin valoare constă în copierea valorii unui
argument într-un parametru formal al unei funcţii. În cazul transmiterii prin
valoare, modificările efectuate asupra parametrului formal NU au efect asupra
argumentului funcţiei.

Transmiterea parametrilor prin valoare este cea mai folosită


metodă de transfer din limbajul C.

Transmiterea matricelor ca argumente pentru o funcţie reprezintă o excepţie


de la regula de transmitere prin valoare a parametrilor.
Dacă se foloseşte o matrice ca şi argument al unei funcţii, atunci funcţiei
respective i se transmite adresa matricei respective (adresa primului element al
matricei), iar funcţia respectivă poate acţiona asupra conţinutului matricei
respective.

În limbajul C există şi instrumente prin care se poate simula un transfer prin


referinţă. Pentru a transfera un obiect V ca parametru prin referinţă, se transferă un
pointer către V; parametrul formal va fi un pointer către valoarea obiectului V.

Transmiterea parametrilor prin referinţă constă în copierea adresei unui


argument într-un parametru. În funcţia în care se face apelarea, este folosită adresa
respectivă pentru accesarea argumentului folosit efectiv la apelare.

În transmiterea prin adresă, modificările efectuate asupra unui parametru


formal afectează argumentul cu care se face apelarea funcţiei (parametrul actual).
Pentru a folosi transmiterea prin referinţă, argumentele funcţiei trebuie declarate ca
pointeri.

Listingul programului

https://replit.com/languages/c
Rezultate
fraza : functionalitate
functionalitate
Consoane = 8
Consoana t se repeta de 3 ori
Consoana f se repeta de 1 ori
Consoana n se repeta de 2 ori
Consoana c se repeta de 1 ori
Consoana l se repeta de 1 ori

Schema logică
1. Schema functiei conditie(char s[10], int n)

start

int conditie(char s[10], int n)

I=0

I<strlen(s)

s[i]=='a') || (s[i]=='e') || (s[i]=='i')


|| (s[i]=='o') || (s[i]=='u'
da nu

P++ R++

I++

Return (r)

stop

2. Schema functiei repetare

start

int repetare (char c, char s[20])

I=0

I<strlen(s)

da nu
s[i]==c
w++

I++

Return (r)

stop

3. Schema logică a funcției main

start

Fraza :

k=strlen(c)

Conditie (c,k)

repetare('f',c)
repetare('n',c)

repetare('c',c)

repetare('l',c)

stop

Concluzie

Am efectuat lucrarea cu tema Prelucrarea datelor de tip char in limbajul C. Am


însușit cunoștințe și capacități de introducere, afișare, prelucrare a șirurilor de
caractere în C și a caracterelor, cât și diferența dintre acestea. Datorită funcțiilor de
prelucrare a caracterelor din tema precendentă, am reușit să soluționez și condiția
acestei probleme. Am aplicat cunoștințe în aplicarea și scrierea subprogramelor,
pentru a face mai ușoară rezolvarea condiției. Ca rezultat am reușit să respect
condiția problemei și să o rezolv.

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