Documente Academic
Documente Profesional
Documente Cultură
Departamentul de Informatică
Chișinău, 2020
1.Sarcina
Se citește un șir care conține doar paranteze rotunde și paranteze drepte. Parantezele se împerechează
corect dacă toate parantezele formează perechi de paranteză deschisă – paranteză închisă, iar în
interiorul unei perechi pot fi zero sau mai multe perechi. Să se testeze dacă șirul dat are paranteze
împerecheate corect.
2.Codul programului
#include<stdio.h>
#include<stdlib.h>
#define bool int
struct paranteze
{
char data;
struct paranteze *k;
};
void a(struct paranteze** sus, int dt_nou);
int b(struct paranteze** sus);
if (stiva == NULL)
return 1; /*Corect*/
else
return 0; /*Gresit*/
}
/* Declararea functiilor*/
/*testarea functiilor declarare mai sus*/
int main()
{
char exp[100];
printf("Introduceti parantezele:");
gets(exp);
if (suntParPereche(exp))
printf("Corect\n");
else
printf("Gresit \n");
return 0;
}
if (nd == NULL)
{
getchar();
exit(0);
}
nd->data = dt_nou;
nd->k = (*sus);
(*sus) = nd;
}
3.Screenshot
4.Repere teoretice
Algoritm:
Se declara o structura de care include o stiva de caractere .
Se traversează șirul de expresie exp.
1. Dacă caracterul curent este o paranteză de pornire ( '(' sau '[' ), atunci se împinge la stivă.
2. Dacă caracterul curent este o paranteză de închidere ( ')' sau '}' sau ']' ), atunci pop-ul din stivă
și dacă caracterul popped este paranteza de pornire potrivită, atunci alte paranteze nu sunt
imperechiate.
După traversarea completă, dacă mai rămâne un pachet de pornire în stivă atunci se afiseaza
„Gresit”
Reper teoretic : http://andrei.clubcisco.ro/cursuri/1pc/curs/1/Curs%209%20Doc.pdf
5.Concluzie
In urma efectuarii lucrarii date am analizat si elaborat algoritmul necesar efecuarii problemei
date.Am studiat reperele teoretice precum: strucuri de date, siruri, declararea functiilor care m-au ajutat
in elaboararea solutiei problemei date.Mi-a oferit posibilitatea sa imi consolidez si intares cunostintele
in domeniul programarii prin gindirea algoritmica si logica.