Sunteți pe pagina 1din 8

Ministerul Educaţiei al Republicii Moldova

Universitatea Tehnică a Moldovei

Catedra Informatica Aplicată

RAPORT
Lucrarea de laborator nr.7
la Programarea Calculatoarelor

A efectuat:
st. gr. TI-15X Student Name

A verificat:
dr., conf.univ. M. Kulev

Chişinău -2015
Lucrarea de laborator nr.7
Tema: Prelucrarea datelor de tip String
Scopul lucrării: acumularea deprinderilor de algoritmizare si programare a
problemelor ce prelucreaza date de tip Sir de caractere, introducerea si afisarea
sirurilor de caractere, prelucrarea lor folosind functiile si procedurile de prelucrare
a sirurilor de caractere.
Condiţia problemei (sarcina de lucru): De executat pe calculator programul de
prelucrare a datelor de tip Sir de caractere, in corespundere cu varianta.De afisat
Sirul de date initial introdus si cel prelucrat.

10. De elaborat un program care lasa numai un spatiu intre cuvinte, daca sunt mai
multe spatii.

Mersul lucrării:
Noţiuni principale din teorie şi metode folosite:
Un sir de caractere este o structură de date formată dintr-o succesiune de caractere
care se termină cu caracterul NULL (’ \0’). Implementarea sirurilor de caractere se
face sub forma unui tablou unidimensional (vector) ale cărui elemente sunt de tip
caracter, fiecare caracter fiind reprezentat prin codul său ASCII. Sirul de caractere
se deosebeste de vectorii cu alte tipuri de elemente prin marcatorul logic utilizat la
sfârsitul sirului - NULL (care are codul ASCII 0).
Declararea ex: char x[5]; // am declarat sirul x care va putea contine maxim 4
caractere .
Dimensiunea vectorului de caractere trebuie declarată cu un caracter mai mult
decât cel mai mare sir de caractere pe care îl poate contine, pentru a exista loc si
pentru terminatorul sirului (caracterul ‘\0’).
O constantă sir de caractere este o succesiune de caractere delimitată de ghilimele.
ex: char sir[256]=”Buna ziua”;
Datele care se reprezintă sub formă se şiruri de caractere au o largă aplicabilitate în
programarea calculatoarelor, indiferent de limbajul folosit. Astfel şi în limbajul C
se pot memora şi prelucra informaţii de tip şir de caractere. In limbajul C, un şir de
caractere este un tablou unidimensional cu elemente de tip caracter şi care se
termină cu NULL. Totuşi compilatorul C nu adaugă automat terminatorul NULL,
decăt în cazul folosirii fucţiilor predefinite fgets() şi gets(), iar în celelalte cazuri
este necesar ca programatorul să adauge terminatorul de şir atunci când doreşte
acest lucru, pentru a lucra cu şirurile de caractere.

Analiza datelor:
a) date de intrare:
i,n,m,c – variabila de tip integer.
s – variabile de tip char (adresa tabloului)
optiune – variabile de tip char
b) date de ieşire:
optiune - variabila de tip char (de afişat pe ecran).
c) date intermediare: i –variabila de tip integer.
Schema logică a algoritmului:

void introduce(char *s) – prototipul functiei introduce()

Aceasta functie de tip void, introduce sirul de caractere de la


tastatura
a) parametri :
s – parametru formal
b) variabile:
s - pointer de tip char, care reprezinta adresa de inceput a tabloului
bidimensional
void afisare(char *s) – prototipul functiei afisare()

Aceasta functie de tip void, afiseaza sirul de caractere introdus de


la tastatura
a) parametri :
s – parametru formal
b) variabile:
s - pointer de tip char, care reprezinta adresa de inceput a tabloului
bidimensional

void removespace(char *s) – prototipul functiei removespace()

Aceasta functie de tip void, sterge spatiile intre


cuvinte daca sunt mai multe spatii si lasa numai un
singur spatiu
a) parametri :
s – parametru formal
b) variabile:
i,j – variabile locale simple de tip integer
s - pointer de tip char, care reprezinta adresa de
inceput a tabloului bidimensional

Codul programului in C:
#include <stdio.h>
#include <string.h>
#define SPACE ' '
void introduce(char *s){
printf(" Introduceti sirul: ");
gets(s);
fflush(stdin);
}
void afisare(char *s){
printf(" Sirul introdus este: ");
puts(s);
fflush(stdin);
}

void removespace(char *s){


int i=0,j=0;
while(s[i]!='\0'){
if(!(s[i] == ' ' && s[i+1] == ' ')){
s[j++]=s[i];
}
i++;
}
s[j]='\0';
printf(" Rezultatul dupa modificarea sirului: ");
puts(s);
fflush(stdin);
return;
}

int main(){
char *s;
int i,m,n,c;
char optiune;
c=0;
s=(char*)malloc(n*sizeof(char));
if(!s){
printf("Memoria nu a fost alocata!");
exit(1);
}
for(i=0;i<n;i++){
s[i]=(char*)malloc(m*sizeof(char));
if(!s[i]){
printf("Memoria nu a fost alocata!",i+1);
exit(i+1);
}
}

do{
system("CLS");
printf(" Buna ziua!\n Selectati o optiune din meniul de mai jos!\n\n");
puts(" Menu:");
puts(" 1.Pentru a introduce sirul de caractere.");
puts(" 2.Pentru a vedea sirul introdus.");
puts(" 3.Pentru a vedea rezultatul dupa modificarea sirului.");
puts(" 0.Iesire.");
printf("\n Alegeti optiunea: ");
scanf("%c",&optiune);
fflush(stdin);
switch (optiune){
case '1': {introduce(s);
system("PAUSE");
break;
}
case '2': {afisare(s);
system("PAUSE");
break;
}
case '3': {removespace(s);
system("PAUSE");
break;
}
case '0':{
printf(" Daca doriti sa iesiti tastati ENTER\n");
return 0;
}
default:{
printf(" Optiunea nu este valida!\n");
system("PAUSE");
}

}
}
while(optiune!=0);
getchar();
return 0;
}

Rezultatele obtinute:
Analiza rezultatelor si concluzii:
1. In urma acestei lucrari de laborator s-a efectuat verificarea rezultatelor a
programului de mai sus ceea ce ne arată ca rezultatele obţinute sunt corecte şi ca
programul elaborat la tema “Prelucrarea datelor de tip String”, lucrează corect.
2. În laborator si studierii materialelor la tema “Prelucrarea datelor de tip String”,
au fost acumulate cunostinte si deprinderi pentru scrierea unui program in limbajul
C si rezolvarea problemelor cu ajutorul subprogramelor.

Bibliografie:

1. Carcea L.,Vlas S., Bobicev V. Informatica: Sarcini pentru lucrări de laborator.


Chișinău: UTM, 2005. - 19 p.
2. Conspectul prelegerilor cursului Programarea Calculatoarelor pentru studenți gr.
TI-154, TI-155, SI-151, SI-152. Lector: dr., conf. univ. M.Kulev. Chișinău, UTM,
2015.
3. Tutorial in C language: http://www.tutorialspoint.com/cprogramming/

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