all done
This commit is contained in:
67
main.py
67
main.py
@@ -1,67 +0,0 @@
|
||||
from os import system
|
||||
from prettytable import PrettyTable, DOUBLE_BORDER
|
||||
from colr import color
|
||||
|
||||
def color_matrix(matriz, num_linhas, num_colunas, cor, coords):
|
||||
matriz_temp = [linha.copy() for linha in matriz]
|
||||
for i in range(num_linhas):
|
||||
for j in range(num_colunas):
|
||||
if [i, j] in coords:
|
||||
matriz_temp[i][j] = color(matriz_temp[i][j], fore=cor, style='bright')
|
||||
show_table_clear(num_linhas, matriz_temp)
|
||||
|
||||
num_linhas = int(input("Digite a quantidade de linhas: "))
|
||||
num_colunas = int(input("Digite a quantidade de colunas: "))
|
||||
|
||||
matriz = []
|
||||
for i in range(num_linhas):
|
||||
nova_linha = ['-' for j in range(num_colunas)]
|
||||
matriz.append(nova_linha)
|
||||
|
||||
def make_table(num_linhas, matriz):
|
||||
#Montagem e apresentação da tabela usando PrettyTable
|
||||
x = PrettyTable()
|
||||
x.field_names = ["X" + str(i + 1) for i in range(len(matriz[0]))]
|
||||
|
||||
for i in range(num_linhas):
|
||||
x.add_row(matriz[i])
|
||||
|
||||
x.set_style(DOUBLE_BORDER)
|
||||
print(x)
|
||||
|
||||
def show_table_clear(num_linhas, matriz):
|
||||
system("cls || clear")
|
||||
make_table(num_linhas, matriz)
|
||||
|
||||
def insert_table_values(num_linhas, num_colunas, matriz):
|
||||
for i in range(num_linhas):
|
||||
for j in range(num_colunas):
|
||||
matriz[i][j] = color('*', fore='red', style='bright')
|
||||
show_table_clear(num_linhas, matriz)
|
||||
print(f"Insira o valor para ({i+1}, {j+1}): ")
|
||||
matriz[i][j] = int(input())
|
||||
show_table_clear(num_linhas, matriz)
|
||||
|
||||
insert_table_values(num_linhas, num_colunas, matriz)
|
||||
|
||||
def find_smallest_value(matriz):
|
||||
smallest_value = float('inf')
|
||||
smallest_coords = None
|
||||
|
||||
for i in range(len(matriz)):
|
||||
for j in range(len(matriz[0])):
|
||||
if matriz[i][j] < smallest_value:
|
||||
smallest_value = matriz[i][j]
|
||||
smallest_coords = [i, j]
|
||||
|
||||
if smallest_value >= 0:
|
||||
print("Não existe valores negativos na tabela")
|
||||
return False
|
||||
return smallest_value, smallest_coords
|
||||
|
||||
has_negative = find_smallest_value(matriz)
|
||||
|
||||
if has_negative:
|
||||
color_matrix(matriz, num_linhas, num_colunas, 'green', [has_negative[1]])
|
||||
print(f"Encontrado o valor {color(has_negative[0], fore='green')} na coordenada ({has_negative[1][0] + 1}, {has_negative[1][1] + 1})")
|
||||
input('Pressione ENTER para prosseguir')
|
||||
58
simplex.py
Normal file
58
simplex.py
Normal file
@@ -0,0 +1,58 @@
|
||||
# Theodoro Priosti de Almeida - 32229011
|
||||
import pulp
|
||||
from os import system
|
||||
|
||||
# Criar um problema de programação linear
|
||||
problema = pulp.LpProblem("Problema", pulp.LpMaximize)
|
||||
|
||||
# Criar as variáveis do problema
|
||||
n = int(input("Quantas restrições tem o problema? "))
|
||||
|
||||
x = pulp.LpVariable('x', lowBound=0)
|
||||
y = pulp.LpVariable('y', lowBound=0)
|
||||
|
||||
# Adicionar as restrições do problema
|
||||
for i in range(0, n):
|
||||
x_valor = int(input('Insira o valor do coeficiente de x: '))
|
||||
print(f'{x_valor}*x + y = 0')
|
||||
|
||||
y_valor = int(input('Insira o valor do coeficiente de y: '))
|
||||
print(f'{x_valor}*x + {y_valor}*y = 0')
|
||||
|
||||
p = int(input('Insira o valor da função objetivo: '))
|
||||
print(f'{x_valor}*x + {y_valor}*y = {p}')
|
||||
|
||||
simbolo = int(input('Insira o número correspondente à restrição:\n1= <=\n2= =\n3= >=\n'))
|
||||
if simbolo == 1:
|
||||
print(f'{x_valor}*x + {y_valor}*y <= {p}')
|
||||
problema += x_valor * x + y_valor * y <= p
|
||||
|
||||
if simbolo == 2:
|
||||
print(f'{x_valor}*x + {y_valor}*y = {p}')
|
||||
problema += x_valor * x + y_valor * y <= p
|
||||
problema += x_valor * x + y_valor * y >= p
|
||||
|
||||
if simbolo == 3:
|
||||
print(f'{x_valor}*x + {y_valor}*y >= {p}')
|
||||
problema += x_valor * x + y_valor * y >= p
|
||||
|
||||
system("cls || clear")
|
||||
|
||||
|
||||
# Definir a função objetivo do problema
|
||||
print("Função objetivo: ")
|
||||
x_valor1 = int(input('Insira o valor do coeficiente de x: '))
|
||||
print(f'{x_valor1}*x + y')
|
||||
|
||||
y_valor1 = int(input('Insira o valor do coeficiente de y: '))
|
||||
print(f'{x_valor1}*x + {y_valor1}*y')
|
||||
problema += x_valor1 * x + y_valor1 * y
|
||||
|
||||
# Resolver o problema usando o Método Simplex
|
||||
problema.solve()
|
||||
system("cls || clear")
|
||||
#
|
||||
# Imprimir a solução ótima
|
||||
print("Valor ótimo da função objetivo: ", pulp.value(problema.objective))
|
||||
print("Valor de x: ", pulp.value(x))
|
||||
print("Valor de y: ", pulp.value(y))
|
||||
Reference in New Issue
Block a user