Descripción: Pensum asignatura Matemática Discreta, del Grado de Matemáticas por la UNED
Solucionario de EjerciciosDescripción completa
programa de la materia matematica discretaDescripción completa
Descripción completa
Descrição: conteúdo sobre matemática relacionada á informática
Descripción: Variable Aleatoria Discreta - PERU UTP
Descripción: apuntes
estadisticaDescripción completa
Resumo de Matemática Discreta Relações de Equivalência Relações de Ordem Parcial Forma Normal Prenex Forma Normal Skolem Unificação Arranjos Combinações Permutações Equações de Recorrência T…Descrição completa
Descripción completa
Mstemática Discreta Tema IDescripción completa
Descrição completa
Matematica Discreta y LogicaFull description
PROBLEMAS DE MATEMÁTICA DISCRETA
Descripción: perra
Descripción: Asombra la vida de Matt Talbott, un humilde obrero irlandés. Un santo del siglo XX que conoció la pobreza y la adicción al alcohol.
matematicística discreta para fins de atualização e concursos com benefícios comprovados a longitudinalidade e prosperidade nos negócios e aplicações em neologismo neoplatonismo sinergia com…Full description
urbanismFull description
ThesisFull description
UTM Catedra Tehnologii Informationale
Referat Lucrarea de laborator Nr 4,5
Algoritmul de căutare a grafului de acoperire şi Tema: Tema: Algoritmul a drumului minim într-un graf
A efectuat:
studentul Cacean Alexandru
A verificat:
lectorul Ceban G.
Chişinău !!4 Scopul lucrării:
- Studierea algoritmilor de determinare a grafului de acoperire şi elaborarea programei ce va realiza acest algoritm. -studierea algoritmilor de determinare a drumurilor minime într-un graf. - Elaborarea programei de determinare a drumului minim într-un graf ponderat.
Enunţul problemei: 1. Să se elaboreze procedura introducerii unui graf ponderat; . Să se elaboreze procedura determinării drumului minim. !. Să se elaboreze programul procedurii de determinare a grafului de acoperire cu posibilită"i de pornire a procedurii din oricare vîrf al grafului
Textul programului : Algoritmul de Căutare a grafului de acoperire: #include$stdio.%& #include$conio.%& #define 'A()A*+,* / #define 'A()0A*,* / struct Elem 2 int 3; struct Elem 4 5; 6; t7pedef Elem4 Elem5tr; t7pedef int 'Adiacenta8'A()0A*,*9 8'A()0A*,*9; t7pedef int 'ncidenta8'A()A*+,*9 8'A()0A*,*9; int cd8'A()0A*,*9; int i; int all; variabila va contine numarul de noduri din graf Elem5tr 5t; pointer va fi folosit pentru a accesa elementele listei de adiacenta 'Adiacenta 'A; 'ncidenta '; Elem5tr <8'A()0A*,*9; declararea listei de adiacenta initializarea listei de adiacenta void nit=istAdiacenta>void? functia data este folosita pentru initializarea listei 2 int i; for >i@/; i$'A()0A*,*; i? B%ile ><8i9-&3 C@/? 2 5t@<8i9; <8i9@5t-&5; delete 5t; 6 6
ntroducerea =istei de adiacenta void n=A>void? 2 int i top; printf>Dntroducerea listei de adiacenta :nD?; printf>D3umarul de varfuri :D?; scanf>DFdDGall?; all @ numarul de varfuri for >i@/; i$all; i? 2 <8i9 @ neB Elem; alocarea in memoriei pentru un nou element al listei 5t@<8i9; 5t-&3 @/; setarea valorii nodului ca / printf>Dvarful Fd :Di1?; B%ile >1? ciclu infinit pana la un breaH 2 scanf>DFdDGtop?; citirea cate un element pana la intalnirea /; if >top C@ /? 2 5t-&3 @ top; adaugarea elementului la lista 5t-&5 @ neB Elem; alocarea memoriei pentru un nou element 5t @ 5t-&5; avansarea in lista 5t-&3 @/; setarea valorii ca / 6 else breaH; in caz cand intalnim / introducerea valorilor pentru varful curent i ia sfarsit 6 printf>DnD?; 6 printf>DnD?; 6 ntroducerea 'atricei de adiacenta void n'A>void? 2 int i i1; printf>D ntroducerea 'atricei de Adiacenta nD?; printf>D 3umarul de varfuri : D?; scanf>DFdDGall?; numarul de varfuri for>i@/; i$all; i? for>i1@/; i1$all; i1? 2 'A8i98i19@/; curatarea matricei if >i C@ i1? nu certam pentru bucle 2 printf>Dn Iin varful Fd in Fd :Di1i11?; scanf>DFdDG'A8i98i19?; citirea valorii a>iJ? 6 6 nit=istAdiacenta>?; curatarea listei
for >i@/;i$all;i? 2 5t@<8i9; pregatirea pentru a misca prin lista for >i1@/;i1$all;i1? 2 if >'A8i98i19C@/? 2 5t-&3@i11; settarea valorii nodului current 5t-&5 @ neB Elem; alocarea memorie pentru un nou element al listei 5t@5t-&5; avansarea 5t-&3@/; settarea sfarsitului 6 6 6 6 introducerea matricei de incidenta void n'>void? 2 int All=inH; int ii1; variabile contor int SrDntroducerea matricei de incidenta nD?; printf>D3umarul de arcuri : D?; scanf>DFdDGAll=inH?; citirea numarului de arcuri printf>Dn3umarul de varfuri : D?; scanf>DFdDGall?; citirea numarului de varfuri for >i@/;i$all;i? for >i1@/;i1$All=inH;i1? 2 printf>Dn0arful Fd si arcul Fd Di1i11?; scanf>DFdDG'8i98i19?; citirea elementului dat 6 nit=istAdiacenta>?; curatarea listei de adiacenta for >i@/;i$All=inH;i? 2 Sr@/; i1@/;i1$all;i1? 2 if >'8i198i9@@1? '8i198i9@@-1? Sr@i1; nodul - i1 este sursa arcului 6 if >Sr C@ /? 2 5t@<8Sr9; adaugam nodul pentru elementul sursa B%ile >5t-&3 C@ /? 2 if >5t-&3@@
6 5t-&3@void? 2 for >int i@/;i$'A()0A*,*;i? t8i9@/; 6 'Adiacenta a; void create'A>? 2 int ii1; for >i@/;i$'A()0A*,*;i? curatarea matricei for >i1@/;i1$'A()0A*,*;i1? a8i98i19@/; for >i@/;i$all;i? pentru toate varfurile 2 5t@<8i9; setam pointerul de parcurgere B%ile >5t-&3 C@ /? pana nu s-a aJuns la sfarsit 2 if >a8i985t-&3-19@@/? a8i985t-&3-19@1; crearea matricei 5t@5t-&5; avansarea in lista 6 6 6 'Adiacenta b; void parcinadinc>int H? parcurgerea in adancime 2 int i; t8H9@1; for >i@/;i$all;i? if >>a8H98i9@@1? GG >t8i9@@/?? 2 b8H98i9@1; parcinadinc>i?; 6 6 void grafacoperire>? 2 int iJ; for >i@/;i$all;i? for >J@/;J$all;J? b8i98J9@/; create'A>?; init<>?; parcinadinc>/?;
printf>Dn Kraful de acoperire nD?; for >i@/;i$all;i? 2 for >J@/;J$all;J? printf>DF!dDb8i98J9?; printf>DnD?; 6 6 void main>void? programul principal 2 unsigned int c%; variabile pentru meniu clrscr>?; for >int i@/;i$'A()0A*,*;i? 2 <8i9@neB Elem; <8i9-&3@/; 6 do 2 printf>D ---ntroduceti graful sub urmatoarele forme:1!--- nD?; printf>D1. =ista de AdiacentanD?; printf>D. 'atricea de AdiacentanD?; printf>D!. 'atricea de ncidentanD?; printf>DL. esirenD?; printf>D. Kraf de acoperire nD?; c%@getc%>?; sBitc% >c%? 2 case M1M :n=A>?;breaH; introducerea listei de adiacenta case MM :n'A>?;breaH; introducerea matricei de adiacenta case M!M :n'>?;breaH; introducerea matricei de incidenta case MM :grafacoperire>?;breaH; graf de acoperire 6 6 B%ile >c% C@ MLM?; repeta pana s-a ales esire 6
Algoritmul De Găsire A Drumului Minim: #include$stdio.%& #include$conio.%& #include$process.%& #include$values.%& #define d 1////; void Nel)Oal>int?; void ord>int?; main>? 2int n; c%ar dm;clrscr>?; tePtcolor>1/?; printf>Dntroduceti numarul de virfuri care le contine graful:nrD?;scanf>DFdDGn?; printf>DAlegeti metoda pri care doriti sa lucratiQnD?; printf>Da? Algoritmul Nelman-OalabanD?;
printf>Db? Algoritmul ordnD?; A1: scanf>DFcDGdm?; sBitc%>dm? 2case MaM:Nel)Oal>n?;breaH; case MbM:ord>n?;breaH; default:printf>DD?;goto A1; 6 getc%e>?;return /; 6 void Nel)Oal>int n? 2int mat8989ad8/98/9iJdm; int 081981/9tl@/H@/s@/minI8!981/9; clrscr>?; printf>Dntrodu matricea de adiacenta de ordinul FdnDn?; for>i@/;i$n;i? for>J@/;J$n;J? scanf>DFdDGad8i98J9?; printf>DIin ce virf pina in punctul final doriti sa aflati drumul minQnD?; scanf>DFdDGdm?; for>i@/;i$n;i? for>J@/;J$n;J? 2if>iC@J?mat8i98J9@d else mat8i98J9@/;6 for>i@/;i$n;i? for>J@/;J$n;J? 2if>ad8i98J9C@/? if>iC@J?mat8i98J9@ad8i98J9;6 for>i@/;i$n;i? 08/98i9@mat8i98n-19; b1:for>i@/;i$n-1;i? 2min@d; for>J@/;J$n;J? if>JC@i? 2 t@mat8i98J908H98J9; if>t$min?min@t; 6 08H198i9@min; 608H198n-19@/; for>l@/;l$n;l? 2if>08H98l9@@08H198l9? s;6 if>sC@n?2H;s@/;goto b1;6 printf>D0@D?; for>J@/;J$n;J?printf>D Fd D08H198J9?; printf>DnD?;I8/98/9@dm;t@1;l@dm-1;s@/; printf>DIrumul minim din virful Fd la virful Fd este:FdnDdmn08H198dm-19?; A!:for>J@/;J$n;J? if>JC@l? 2if>08H198l9-ad8l98J9@@08H198J9? 2I8/98t9@J1;t;l@J;if>l$n?goto A!;6
6 printf>DSuccesiunea de virfuri este:nD?; for>i@/;i$t;i? 2printf>D(8Fd9DI8/98i9?;if>i$t-1?printf>D R& D?;6 printf>DnD?; getc%e>?;ePit>n?; 6 void ord>int n? 2int 8/9iJad8/98/9; int dr81/9l;clrscr>?; printf>Dntrodu matricea de adiacenta:nD?; for>i@/;i$n;i? for>J@/;J$n;J?scanf>DFdDGad8i98J9?; printf>D5ina in ce virf doriti sa aflati drumul minimQnD?; scanf>DFdDGl?; 8/9@/; for>i@1;i$n;i? 8i9@d; for>i@/;i$n-1;i? for>J@1;J$n;J? if>>JC@i?GG>ad8i98J9C@/?? 2if>8J9-8i9&ad8i98J9?8J9@8i9ad8i98J9;6 for>i@/;i$n;i?printf>D Fd D8i9?;dr8/9@l;i@1; printf>DnIrumul minim din virful 1 pina in virful Fd este:FdnDl8l-19?; printf>DSuccesiunea de drumuri este:nD?; A1:for>J@n-1;J&@/;J--? if>>JC@l-1?GG>ad8J98l-19C@/?? 2if>8l-19-8J9@@ad8J98l-19? 2dr8i9@J1;i;l@J1;if>l&/?goto A1;else goto A;6 6 A: for>J@i-1;J&@/;J--? 2printf>D(8Fd9Ddr8J9?;if>J&/?printf>DR&D?;6 getc%e>?;ePit>n?; 6
Reultatele !bţinute:
Drumul Minim:
Concluii: Efectuînd lucrarea dată ne-am făcut cunoscuţi cu
metodele de prelucrare a grafurilor şi anume cu metoda de găsire a grafului de acoperire şi a drumului minim. Pentru prelucrarea grafurilor am folosit liste ceea ce este mai eficient decît prelucrarea grafurilor cu a!utorul matricelor.