Aplicatii+Grafuri

Problema 23
Fişierul text „graf_in.txt” conţine pe prima linie un număr natural n reprezentând numărul de vârfuri ale unui graf neorientat, iar pe fiecare din următoarele n rânduri câte n valori de 0 şi 1 separate prin spaţii, reprezentând elementele unei linii a matricei de adiacenţă corespunzătoare grafului. a) Să se scrie o funcție **grad** ce primeşte ca parametru un număr natural x şi returnează gradul vârfului x.  b) Să se scrie programul C++ care citeşte datele din fişier şi care afişează în fişirul text „graf_out.txt”, pe primul rând, separate prin câte un spaţiu vârfurile terminale ale grafului, sau mesajul „Nu există”, dacă în graf nu sunt vârfuri terminale, folosind apeluri utile ale subprogramului grad.

 5  0 0 1 0 1  0 0 0 1 1  1 0 0 0 0  0 1 0 0 0  1 1 0 0 0 atunci fişierul „graf_out.txt” va conţine numerele 3 şi 4.
 * Exemplu: ** Dacă fişierul ”graf_in.txt” are forma:

Problema 24
Fişierul text „muchii.txt” conţine pe prima linie un număr natural n reprezentând numărul de vârfuri ale unui graf neorientat, pe al doilea rând un număr natural m reprezentând numărul de munchii ale unui graf neorientat, iar pe fiecare din următoarele m rânduri câte două numere naturale, separate pritr-un spaţiu, reprezantând extremităţile unei muchii a grafului. a) Să se scrie o funcție **grad**ce primeşte ca parametru un număr natural x şi returnează gradul vârfului x.  <span style="font-family: Calibri,sans-serif;">b) Să se scrie programul C++ care citeşte datele din fişier, construieşte matricea de adiacenţă asociată grafului, şi care afişează în fişirul text „grade.txt”, separate prin câte un spaţiu vârfurile de grad maxim ale grafului, folosind apeluri utile ale subprogramului **grad**.

<span style="font-family: Calibri,sans-serif;"> 5 <span style="font-family: Calibri,sans-serif;"> 6 <span style="font-family: Calibri,sans-serif;"> 1 2 <span style="font-family: Calibri,sans-serif;"> 2 3 <span style="font-family: Calibri,sans-serif;"> 2 4 <span style="font-family: Calibri,sans-serif;"> 3 4 <span style="font-family: Calibri,sans-serif;"> 3 5 <span style="font-family: Calibri,sans-serif;"> 4 5 <span style="font-family: Calibri,sans-serif;">atunci fişierul „grade.txt” va conţine numerele 2, 3 şi 4.
 * <span style="font-family: Calibri,sans-serif;">Exemplu: **<span style="font-family: Calibri,sans-serif;"> Dacă fişierul ”muchii.txt” are forma:

<span style="font-family: Calibri,sans-serif; font-size: 14pt;">Problema 25
<span style="font-family: Calibri,sans-serif;">Fişierul text „adiacenta.in” conţine pe prima linie un număr natural n reprezentând numărul de noduri ale unui graf orientat, iar pe fiecare din următoarele n rânduri câte n valori de 0 şi 1 separate prin spaţii, reprezentând elementele unei linii a matricei de adiacenţă corespunzătoare grafului. <span style="font-family: Calibri,sans-serif;">a) Să se scrie o funcție **grad_intern**ce primeşte ca parametru un număr natural x şi returnează gradul intern al nodului x.  <span style="font-family: Calibri,sans-serif;">Funcţia **grad_extern** primeşte ca parametru un număr natural x şi returnează gradul extern al nodului x.   <span style="font-family: Calibri,sans-serif;">b) Să se scrie programul C++ care citeşte datele din fişier, şi care afişează în fişirul text „noduri.out”, separate prin câte un spaţiu nodurile grafului care au gradul intern egal cu gradul extern, folosind apeluri utile ale subprogramelor **grad_intern** şi **grad_extern**.

<span style="font-family: Calibri,sans-serif;"> 5 <span style="font-family: Calibri,sans-serif;"> 0 1 1 1 0 <span style="font-family: Calibri,sans-serif;"> 0 0 0 0 1 <span style="font-family: Calibri,sans-serif;"> 0 1 0 0 0 <span style="font-family: Calibri,sans-serif;"> 0 0 0 0 0 <span style="font-family: Calibri,sans-serif;"> 1 0 0 0 0 <span style="font-family: Calibri,sans-serif;">atunci fişierul „noduri.out” va conţine numerele 3 şi 5.
 * <span style="font-family: Calibri,sans-serif;">Exemplu: **<span style="font-family: Calibri,sans-serif;"> Dacă fişierul ”adiacenta.in” are forma:

<span style="font-family: Calibri,sans-serif; font-size: 14pt;">Problema 26
<span style="font-family: Calibri,sans-serif;">Fişierul text „arce.txt” conţine pe prima linie un număr natural n reprezentând numărul de noduri ale unui graf orientat, pe al doilea rând un număr natural m reprezentând numărul de arce ale unui graf orientat, iar pe fiecare din următoarele m rânduri câte două numere naturale separate prin spaţii, reprezentând arcele corespunzătoare unui graf orientat.

<span style="font-family: Calibri,sans-serif;">a) Să se scrie o funcție//grad_intern//ce primeşte ca parametru un număr natural x şi returnează gradul intern al nodului x.

<span style="font-family: Calibri,sans-serif;">Funcţia //grad_extern// primeşte ca parametru un număr natural x şi returnează gradul extern al nodului x.

<span style="font-family: Calibri,sans-serif;">b) Să se scrie programul C++ care citeşte datele din fişier, construieşte matricea de adiacenţă asociată grafului, şi care afişează în fişirul text „izolate.txt”, separate prin câte un spaţiu nodurile izolate ale grafului, sau mesajul „Nu există”, dacă în graf nu sunt noduri izolate, folosind apeluri utile ale subprogramelor grad_intern şi grad_extern.


 * <span style="font-family: Calibri,sans-serif;">Exemplu: **<span style="font-family: Calibri,sans-serif;"> Dacă fişierul ”arce.txt” are forma:

<span style="font-family: Calibri,sans-serif;"> 5

<span style="font-family: Calibri,sans-serif;"> 3

<span style="font-family: Calibri,sans-serif;"> 1 2

<span style="font-family: Calibri,sans-serif;"> 2 1

<span style="font-family: Calibri,sans-serif;"> 2 4

<span style="font-family: Calibri,sans-serif;">atunci fişierul „izolate.txt” va conţine numerele 3 şi 5.

Rezolvari