Skip to content

Commit fa8db1e

Browse files
inicia
0 parents  commit fa8db1e

File tree

1 file changed

+93
-0
lines changed

1 file changed

+93
-0
lines changed

trabalho3.py

Lines changed: 93 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,93 @@
1+
#!/usr/bin/python
2+
3+
# DANIEL GOBBI BERGHOLZ 16/0004551
4+
# TRABALHO 3 FUNDAMENTOS DE REDES 1
5+
6+
from igraph import *
7+
import os
8+
9+
# variavel global para ir armazenando decisoes do usuario
10+
n = 0
11+
12+
# criar grafo
13+
g = Graph()
14+
15+
'''
16+
g.add_vertices(4)
17+
g.add_edges([(0,1), (1,2), (0,2), (2,3)])
18+
g.vs["name"] = ["v0", "v1", "v2", "v3"]
19+
g.es["weight"] = [1,2,3,4]
20+
21+
# plotar grafo
22+
g.vs["label"] = g.vs["name"]
23+
g.es["label"] = g.es["weight"]
24+
25+
layout = g.layout("kk")
26+
27+
print (g)
28+
plot(g, layout = layout)
29+
'''
30+
31+
def menu(primeira_vez=True):
32+
if (primeira_vez == True):
33+
os.system('clear')
34+
print 'Seja bem vindo ao meu programa que simula grafos\n'
35+
print 'A seguir os algoritmos disponiveis:\n'
36+
print '1) Dijkstra\n2) Bellman-Ford\n3) RPF\n4) Spanning Tree\n5) SAIR'
37+
global n
38+
n = input('Por favor, selecione um algoritmo que vc gostaria de executar:\n')
39+
while (n < 1 or n > 5):
40+
n = input('Escolha um numero valido (entre 1 e 5):\n')
41+
42+
def criar_grafo():
43+
print 'Agora iremos criar seu grafo de testes\n'
44+
y = raw_input('Voce gostaria de carregar um grafo a partir de um arquivo .DOT? (s/n)\n')
45+
if (y == 's'):
46+
print 'kk eae men'
47+
# fazer algo aqui depois
48+
else:
49+
x = input('Quantos vertices tem seu grafo?\n')
50+
g.add_vertices(x)
51+
lista = [] # lista auxiliar
52+
for i in range(g.vcount()):
53+
lista.append("v" + str(i))
54+
g.vs["name"] = lista
55+
lista = []
56+
print 'Agora iremos construir as arestas deste grafo\nPara parar de criar arestas basta nao digitar valor e apertar enter\n'
57+
while True:
58+
try:
59+
y, z = input('Escreva um vertice de origem e um de destino (dois valores separados por virgula)\n')
60+
except SyntaxError:
61+
y = z = None
62+
if ((y != None) and (z != None)):
63+
if((y > (g.vcount() - 1)) or ((z > (g.vcount() - 1)))):
64+
print 'Voce digitou um numero invalido de vertice. Seu grafo tem ' + str(g.vcount()) + ' vertices.\n'
65+
else:
66+
g.add_edges([(y, z)])
67+
w = input('Qual o peso desta aresta?\n')
68+
lista.append(w)
69+
else:
70+
g.es["weight"] = lista
71+
break
72+
g.vs["label"] = g.vs["name"]
73+
g.es["label"] = g.es["weight"]
74+
layout = g.layout("kk")
75+
print 'Grafo criado com sucesso!'
76+
plot(g, layout=layout)
77+
78+
# ----------------------------------------------------------------------ALGORITMOS-----------------------------------------------------
79+
def dijkstra(grafo, no_inicial):
80+
81+
82+
83+
84+
# ----------------------------------------------------------------------MAIN-----------------------------------------------------------
85+
def main():
86+
global n
87+
menu()
88+
while (n != 5):
89+
criar_grafo()
90+
menu(False)
91+
92+
if __name__ == "__main__":
93+
main()

0 commit comments

Comments
 (0)