Documente Academic
Documente Profesional
Documente Cultură
Moldova
RAPORT
Chişinău – 20XX
Ex 3.1
/* pr_05_3_1
3.1 De la tastatura se citesc cuvinte ( siruri de caractere ). Sa se
scrie un program care creeaza un arbore de cautare, care contine in
noduri cuvintele
si frecventa lor de aparitie. Sa se afiseze apoi cuvintele in ordine
lexicografica crescatoare si frecventa lor de aparitie.
*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
} while( (c = getchar()) >= 'A' && c <= 'Z' || c >= 'a' && c <=
'z' );
t[i++] = '\0';
int main()
{
char *p;
while( p = citeste_cuvant() )
{
inserare_nod( p );
}
inordine( rad );
return 0;
}
Ex 3.6
/* pr_5_3_6
3.6 Informatiile pentru medicamentele unei farmacii sunt: nume
medicament, pret, cantitate, data primirii, data expirarii.
Evidenta medicamentelor se tine cu un program care are drept
structura de date un arbore de cautare dupa nume medicament.
Sa se scrie programul care executa urmatoarele operatii:
creeaza arborele de cautare;
cauta un nod dupa campul nume medicament si actualizeaza
campurile de informatie;
tipareste medicamentele in ordine lexicografica;
elimina un nod identificat prin nume medicament;
creeaza un arbore de cautare cu medicamentele care au data
de expirare mai veche decat o data specificata de la terminal.
=> nu pot fi 2 medicamente cu acelasi nume; => pentru fiecare
medicament data primirii este aceeasi pentru toata cantitatea,
la fel data expirarii este aceeasi pentru toata cantitatea.
*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main() {
FARM *p; char cheie[] = "med3"; int i;
while( p = citeste_medicament() )
{
inserare_nod( p );
}
inordine( rad );
p = cautare_nod( cheie );
if( p == 0)
{
printf("\nNu exista nod de cheia %s\n", cheie);
}
else
{
extrage_info_nod(p);
}
sterge_nod( cheie );
inordine( rad );
printf("\nIntroduceti data de control: ");
scanf("%s", data);
printf("\ndata de control: %s\n", data);
p = rad;
lista_nodurilor_expirate( p );
p = rad1;
rad1 = 0;
for(i = 0; i < ie; i++)
{
p = LISTA[ i ];
inserare_nod_expirat( p );
}
printf("\nMedicamentele expirate:\n");
inordine( rad1 );
if( rad1 == 0 )
{
printf("Nu exista medicamente expirate.\n");
}
return 0;
}
Laborator 6
/* pr_6_3_1
3.1. Pentru un graf orientat G =(V, E) sa se gaseasca subgraful
indus G' =(V', E'), unde V' este o submultime
de noduri din multimea de noduri V ale grafului G. Elementele
din V si V' se citesc de la tastatura.
E este multimea de arce a grafului G.
*/
#include <stdio.h>
#include <stdlib.h>
int main()
{
/*
Fie graful orientat G are n varfuri, numerotate cu
numerele 0, 1, 2, ..., n - 1.
Notam prin A[n][n] matricea de adiacenta a grafului G.
Atunci A[i][j] = 1,
daca in E exista arcul (i, j), adica arcul de la nodul i spre
nodul j si A[i][j] = 0,
in caz contrar, adica in E nu exista arc de la nodul i spre
nodul j.
n si A[i][j] le introducem de la tastatura.
*/
int n, m, i, j, k, t, r, p, bi, bj;
int A[25][25]; // Matricea de adiacenta a grafului G;
Presupunem ca vor fi nu mai mult de 25 noduri.
int B[25][25]; // Matricea de adiacenta a subrafului G'.
int C[25][25]; // Aici va fi o copie a matricei A.
int V[25]; // Varfurile V'. O submultime de numere din V
(adica din numerele 0, 1, 2, ..., n - 1).
printf("\n");
for(i = 0; i < m; i++)
{
for(j = 0; j < m; j++)
{ printf("B[%d][%d] = %d\t", i, j, B[i][j]); }
printf("\n");
}
return 0;
}
Ex 6.2
/* pr_6_3_2_cu_liste_de _adiacenta
3.2. Sa se scrie cate o functie de construire pentru un graf G
=(V, E),
conform celor 3 reprezentari posibile.
#include <stdio.h>
#include <stdlib.h>
int main()
{
int n,m,i,j,k;
int **B; // Pointerul B este pentru matricea de incidenta.
int **A; // Pointerul A este pentru matricea de adiacenta.
printf("Introduceti Nr. de noduri pentru graful G : n = ");
scanf("%d", &n);
printf("Graful G are n = %d noduri.\n", n);
printf("Introduceti Nr. de arce ale grafului G : m = ");
scanf("%d", &m);
printf("Graful G are m = %d arce.\n", m);