Uma metal urgica produz dois tipos de ligas metálicas. Cada liga e composta de propor ções diferentes de Cobre, Zinco e Chumbo, os quais estão disponíveis em quantidades limitadas em estoque. Deseja-se determinar quanto produzir de cada liga met álica, de modo a maximizar a receita bruta, satisfazendo-se as seguintes composiçõees das ligas e a disponibilidade de mat éria-prima em estoque:
Mat éria-prima Liga 1 Liga 2 Estoque
Cobre 50% 30% 3 ton
Zinco 10% 20% 1 ton
Chumbo 40% 50% 3 ton
Pre ço venda 3 mil 2 mil (R$ por ton)
Solução:
VARIÁVEIS:
x1: quantidade a ser produzida da liga 1
x2: quantidade a ser produzida da liga 2
RESTRIÇÕES:
A produ ção das ligas consome as mat érias-primas Cobre, Zinco e Chumbo, as quais estão
disponí veis em quantidades limitadas em estoque. Assim, são recursos escassos que limitam
nossa decisão e, portanto, devemos express a-las por meio de restri ções. Em rela ção ao Cobre,
sabemos que ele e usado em 50% de cada tonelada da Liga 1 e 30% de cada tonelada da
Liga 2. Assim, usando as vari áveis de decisão defi nidas acima, a quantidade total a ser usada
de Cobre nas duas ligas, em toneladas, e dada por 0,5x1 + 0,3x2. Como a disponibilidade
de Cobre e de 3 toneladas, devemos ter a restri ção 0,5x1 + 0,3x2<= 3. O mesmo raciocí nio
se aplica para obtermos as restri ções para Zinco e Chumbo, dadas por 0,1x1 + 0,2x2 <= 1 e
0,4x1 + 0,5x2 <= 3, respectivamente. Não podemos nos esquecer de de finir as condi ções de
não-negatividade, dadas por x1 >= 0 e x2>= 0.
Por fim, o objetivo deve ser maximizar a receita total com a venda das ligas. A receita
obtida com a produ ção de x1 toneladas da liga 1 e igual a 3x1 mil reais. De modo similar,
tem-se uma receita de 2x2 mil reais com a venda de x2 toneladas da liga 2. Logo, devemos
maximizar 3x1 + 2x2. O modelo de Programa ção Linear resultante e dado por:
max 3x1 + 2x2
s.a 0,5x1 + 0,3x<=2 3
0,1x1 + 0,2x2 <= 1
0,4x1 + 0,5x2 <= 3
x1 >= 0; x2 >= 0
Exercício Modelagem 1
Um agricultor acabou de comprar uma fazenda para o plantio de
trigo e arroz. A área total disponível para plantio e de 7 hectares, e o agricultor
deseja plantar, no mínimo, 1 hectare de trigo e 2 hectares de arroz. Estima-se
que o lucro do trigo seja de R$ 5.000,00 e do arroz de R$ 3.000,00, por hectare
plantado. O agricultor deseja determinar quanto plantar de cada cultura, de modo
a maximizar seu lucro.
Solução:
A área total dispon ível e de 7 hectares;
A área m inima de trigo deve ser de 1 hectare;
A área m i nima de arroz deve ser de 2 hectares;
O lucro do trigo e 5 mil reais/hectare;
O lucro do arroz e 3 mil reais/hectare;
VARIÁVEIS DE DECISÃO:
x1: área a ser plantada de trigo (em hectares);
x2: área a ser plantada de arroz (em hectares).
RESTRIÇÕES:
x1 + x2 <= 7
x1>= 1
x2>= 2
x1 >= 0; x2 >= 0
FUNÇÃO OBJETIVO
maximizar 5x1 + 3x2
sujeito a x1 + x2 <= 7
x1>= 1
x2>= 2
x1 >= 0; x2 >= 0
trigo e arroz. A área total disponível para plantio e de 7 hectares, e o agricultor
deseja plantar, no mínimo, 1 hectare de trigo e 2 hectares de arroz. Estima-se
que o lucro do trigo seja de R$ 5.000,00 e do arroz de R$ 3.000,00, por hectare
plantado. O agricultor deseja determinar quanto plantar de cada cultura, de modo
a maximizar seu lucro.
Solução:
A área total dispon ível e de 7 hectares;
A área m inima de trigo deve ser de 1 hectare;
A área m i nima de arroz deve ser de 2 hectares;
O lucro do trigo e 5 mil reais/hectare;
O lucro do arroz e 3 mil reais/hectare;
VARIÁVEIS DE DECISÃO:
x1: área a ser plantada de trigo (em hectares);
x2: área a ser plantada de arroz (em hectares).
RESTRIÇÕES:
x1 + x2 <= 7
x1>= 1
x2>= 2
x1 >= 0; x2 >= 0
FUNÇÃO OBJETIVO
maximizar 5x1 + 3x2
sujeito a x1 + x2 <= 7
x1>= 1
x2>= 2
x1 >= 0; x2 >= 0
O que é um modelo?
O que é um modelo?
Ao longo da última década, milhões de executivos descobriram que uma das maneiras mais eficazes de analisar e avaliar alternativas de decisão envolve a modelagem dos problemas de decisão enfrentados.
Um modelo é um conjunto de interações e suposições lógicas que representa algum problema ou fenômeno de decisão do mundo real.
Com o uso de um modelo, um executivo pode analisar alternativas de decisão antes de ter que escolher um plano especifico para implementação.
O Crescimento da Modelagem
Ninguém tem certeza sobre a data em que o primeiro modelo foi desenvolvido, mas o princípio sobre o uso de representações simbólicas para melhor entender as interações de várias partes de um sistema é provavelmente tão velho quanto o método cientifico.
O modelo põe os componentes do sistema de uma forma tal que, somos capazes de compreender a realidade baseados em fenômenos conhecidos e nos permite realizar experimentos que nos ajudam a prever o comportamento do sistema real.
**Hoje, quase todo estudo de mérito sério usa algum tipo de modelo para ajudar a facilitar o entendimento
**O número de modelos projetados para explicar negócios e princípios de engenharia cresce diariamente
Modelos quantitativos relativamente pequenos.
Tamanhos limitados pela habilidade em manusear um volume de cálculo que se expandiam geometricamente à medida em que o número de elementos do modelo era incrementado.
Perceberam-se grandes vantagens da modelagem.
As novas máquinas tinham a capacidade de executar cálculos em frações de segundos bem como gerenciar um grande volume de interações;
Resultando em modelos mais precisos com custos de execução reduzidos.
Classificação dos Modelos
O modelo é uma representação física ou matemática de um sistema, que visa à avaliação das alterações de comportamento em função de diversas variáveis e parâmetros envolvidos, ou mesmo a avaliação de modificações introduzidas no sistema em estudo. Assim um modelo é:
-uma representação com uma finalidade;
-uma representação parcial de um problema;
-um pensamento estruturado sobre parte de um problema;
-uma especificação de variáveis e suas relações.
Existem 3 categorias básicas de modelos:
1. Simbólicos, Icônicos ou Diagramáticos
2. De Simulação
3. Matemáticos ou Analíticos
1. Simbólicos, Icônicos ou Diagramáticos
Composto por símbolos gráficos que representam um sistema de maneira estática (Foto de um processo sem considerar o tempo). Fluxograma. Limitações:
• Representação estática;
• Falta de elementos quantitativos (medidas de desempenho);
• Dificuldade de representar muitos detalhes de um mesmo sistema.
Ao longo da última década, milhões de executivos descobriram que uma das maneiras mais eficazes de analisar e avaliar alternativas de decisão envolve a modelagem dos problemas de decisão enfrentados.
Um modelo é um conjunto de interações e suposições lógicas que representa algum problema ou fenômeno de decisão do mundo real.
Com o uso de um modelo, um executivo pode analisar alternativas de decisão antes de ter que escolher um plano especifico para implementação.
O Crescimento da Modelagem
Ninguém tem certeza sobre a data em que o primeiro modelo foi desenvolvido, mas o princípio sobre o uso de representações simbólicas para melhor entender as interações de várias partes de um sistema é provavelmente tão velho quanto o método cientifico.
O modelo põe os componentes do sistema de uma forma tal que, somos capazes de compreender a realidade baseados em fenômenos conhecidos e nos permite realizar experimentos que nos ajudam a prever o comportamento do sistema real.
**Hoje, quase todo estudo de mérito sério usa algum tipo de modelo para ajudar a facilitar o entendimento
**O número de modelos projetados para explicar negócios e princípios de engenharia cresce diariamente
Modelos quantitativos relativamente pequenos.
Tamanhos limitados pela habilidade em manusear um volume de cálculo que se expandiam geometricamente à medida em que o número de elementos do modelo era incrementado.
Perceberam-se grandes vantagens da modelagem.
As novas máquinas tinham a capacidade de executar cálculos em frações de segundos bem como gerenciar um grande volume de interações;
Resultando em modelos mais precisos com custos de execução reduzidos.
Classificação dos Modelos
O modelo é uma representação física ou matemática de um sistema, que visa à avaliação das alterações de comportamento em função de diversas variáveis e parâmetros envolvidos, ou mesmo a avaliação de modificações introduzidas no sistema em estudo. Assim um modelo é:
-uma representação com uma finalidade;
-uma representação parcial de um problema;
-um pensamento estruturado sobre parte de um problema;
-uma especificação de variáveis e suas relações.
Existem 3 categorias básicas de modelos:
1. Simbólicos, Icônicos ou Diagramáticos
2. De Simulação
3. Matemáticos ou Analíticos
1. Simbólicos, Icônicos ou Diagramáticos
Composto por símbolos gráficos que representam um sistema de maneira estática (Foto de um processo sem considerar o tempo). Fluxograma. Limitações:
• Representação estática;
• Falta de elementos quantitativos (medidas de desempenho);
• Dificuldade de representar muitos detalhes de um mesmo sistema.
O que é Pesquisa Operacional?
O que é Pesquisa Operacional?
- É o estudo e a aplicação de métodos científicos no apoio a tomada de decisão;
-O intuito é abordar problemas complexos, que requerem alocações eficientes de recursos escassos;
-Iniciou-se durante a Segunda Guerra Mundial e seu uso tem crescido desde então. Hoje, é essencial na análise e resolução de problemas em indústrias e outras organizações.
-Permite modelar, analisar e solucionar um grande número de problemas complexos encontrados atualmente.
- É o estudo e a aplicação de métodos científicos no apoio a tomada de decisão;
-O intuito é abordar problemas complexos, que requerem alocações eficientes de recursos escassos;
-Iniciou-se durante a Segunda Guerra Mundial e seu uso tem crescido desde então. Hoje, é essencial na análise e resolução de problemas em indústrias e outras organizações.
-Permite modelar, analisar e solucionar um grande número de problemas complexos encontrados atualmente.
Resumo Capitulo 19 - TEMPERATURA – Halliday e Resnick
Temperatura; Termômetros
Temperatura é uma quantidade macroscópica relacionada à nossa sensação de quente e frio. É medida por um termômetro, aparelho que contém uma substância com alguma propriedade mensurável, tal como comprimento ou pressão, que varia de maneira regular quando a substância fica mais fria ou mais quente.
Zero absoluto:
Tomamos como sendo o zero da escala Kelvin ( 0k ).
“O Zero absoluto tem um comportamento similar à velocidade da luz, no sentido em que ambos são valores limites dos quais os corpos materiais podem se aproximar indefinidamente, mas nunca atingir.”
A lei zero da Termodinâmica:
Quando um termômetro e algum outro objeto são colocados em contato acabam por ficar em equilíbrio térmico. A leitura do termômetro é então considerada a temperatura do objeto. A Temperatura assim medida constitui um conceito coerente e útil, de acordo com a lei zero da termodinâmica: se dois corpos, A e B, estão em equilíbrio com um terceiro corpo C (o termômetro), então A e B estão em equilíbrio térmico entre si.
Em uma linguagem menos formal, a mensagem da lei zero é: “Todo corpo tem uma propriedade chamada temperatura. Quando dois corpos estão em equilíbrio térmico, suas temperaturas são iguais.”
O ponto Triplo da Água
Para construir uma escala de temperatura precisamos selecionar um ponto fixo padrão. Para tal utilizamos o ponto triplo da água.
Água no estado líquido, gelo e vapor d’água podem coexistir para somente um conjunto de valores da pressão e da temperatura. Um acordo internacional (em 1967) estabeleceu a temperatura do ponto triplo da água como sendo 273,16 K este valor foi tomado como ponto fixo padrão para a calibração de termômetros. Assim T3= 273,16K, onde o subscrito 3 é para lembrar que a temperatura se refere ai ponto triplo.
O Termômetro de Gás a Volume Constante
Para construir um termômetro padrão, usado para calibrar todos os outros termômetros, utiliza-se a pressão exercida por um gás confinado num volume constante.
A temperatura é medida no sistema SI, utilizando a escala Kelvin, construída definindo-se primeiro o valor da temperatura em que as três fases da água podem coexistir em equilíbrio (o ponto triplo). Atribuímos a esta temperatura o valor 273,16 K. As outras são definidas por um termômetro de gás a volume constante,em que a temperatura é proporcional à pressão de uma certa quantidade de gás a volume a constante. Como gases diferentes fornecem resultados concordantes, somente para densidades muito baixas a temperatura de gás ideal, medida com um termômetro de gás, é definida como
T= (273,16 K) (lim m→0 (p/p3))
Aqui, T é a temperatura em graus Kelvin, e p3 e p são as pressões do gás na temperatura de ponto triplo e na que queremos medir, respectivamente. A massa de gás no termômetro é m.
Escala Internacional de Temperatura
Vários “pontos fixos” da escala Kelvin têm sido usados para definir a Escala Internacional de Temperatura;
Escalas Celsius e Fahrenheit
Além da escala Kelvin, são de uso comum duas outras escalas de temperatura: a escala Celsius, definida por
Tc= T – 273,15º,
E a escala Fahrenheit, definida por
Tf= 1,8 Tc + 32º
Expansão Térmica
Todos os corpos alteram suas dimensões quando a temperatura varia. A mudança ΔL, em qualquer dimensão linear do corpo é dada por
ΔL= LαΔT,
Onde α é o coeficiente de dilatação linear. A variação de volume ΔV para um sólido ou um líquido é
ΔV=VβΔT
Aqui β = 3α é o coeficiente de dilatação volumétrica do material.
Fonte: Livro Halliday e Resnick 4ª Edição
Exemplo de uso de listas em Python
# -*- coding: utf-8 -*-
# O comentário na linha acima permite que o interpretador Python ajuste a codificação para aceitar acentos e outros caracteres especiais
# Criando uma lista
lista = list(range(20)) # o uso da função list() é necessário a partir da versão 3 do Python
print(lista)
# Embaralhando a lista criada
import random
random.shuffle(lista)
print(lista)
random.shuffle(lista)
print(lista)
random.shuffle(lista)
print(lista)
random.shuffle(lista)
print(lista)
# Obtendo uma amostra aleatória (de 10 elementos) de uma lista
s = random.sample(lista,10)
print(s)
# Obtendo um elemento aleatório de uma lista
r = random.choice(lista)
print(r)
r = random.choice(lista)
print(r)
r = random.choice(lista)
print(r)
# Juntando duas listas, formando pares ordenados de elementos com a função zip()
lista2 = list(zip(list(range(0, 5)), list(range(5, 10))))
print (lista2)
# Juntando três listas, formando triplas ordenadas de elementos com a função zip()
lista3 = list(zip(list(range(0, 5)), list(range(5, 10)),list(range(10, 15))))
print (lista3)
# Ordenando listas com a função sort()
lista.sort()
print(lista)
lista.sort(reverse=True) # ordem reversa
print(lista)
alunos = [ ["Joao", 7], ["Maria", 6], ["Jose", 3] ]
print(alunos)
# Usando a função sort() com uma função anônima (lambda)
alunos.sort(key=lambda x: x[1])
for aluno in alunos:
print(aluno)
# Outro exemplo
alunos.sort(key=lambda x: x[0])
for aluno in alunos:
print(aluno)
# Eliminando valores
valor = alunos.pop(2)
print ("Item removido:", valor)
print(alunos)
# Inserindo valores (com a função insert())
pos = 2
valor = "Pedro"
alunos.insert(pos,valor)
print(alunos)
# Outro exemplo
pos = 1
valor = 5
alunos.insert(pos,valor)
print(alunos)
# Podemos também usar a função append() para inserir valores no final de uma lista
# Filtrando resultados (função filter())
valores = [10, 4, -1, 3, 5, -9, -11]
resultado = list(filter(lambda x: x > 0, valores))
print(resultado)
# Outro exemplo
def criterio(x):
return x >= 0
y = list(filter(criterio, list(range(-5, 5))))
print(y)
# A função map(): serve para aplicarmos uma função a cada elemento de uma lista
import math
lista1 = [1, 4, 9, 16, 25]
lista2 = list(map(math.sqrt, lista1))
print(lista2)
# Outro exemplo
lista = list(range(1, 11))
y = list(map(lambda x: x*-1, lista))
print(y)
# Outras funções uteis
soma = sum(lista2)
print(soma)
maximo = max(lista1)
print(maximo)
minimo = min(lista2)
print(minimo)
# O comentário na linha acima permite que o interpretador Python ajuste a codificação para aceitar acentos e outros caracteres especiais
# Criando uma lista
lista = list(range(20)) # o uso da função list() é necessário a partir da versão 3 do Python
print(lista)
# Embaralhando a lista criada
import random
random.shuffle(lista)
print(lista)
random.shuffle(lista)
print(lista)
random.shuffle(lista)
print(lista)
random.shuffle(lista)
print(lista)
# Obtendo uma amostra aleatória (de 10 elementos) de uma lista
s = random.sample(lista,10)
print(s)
# Obtendo um elemento aleatório de uma lista
r = random.choice(lista)
print(r)
r = random.choice(lista)
print(r)
r = random.choice(lista)
print(r)
# Juntando duas listas, formando pares ordenados de elementos com a função zip()
lista2 = list(zip(list(range(0, 5)), list(range(5, 10))))
print (lista2)
# Juntando três listas, formando triplas ordenadas de elementos com a função zip()
lista3 = list(zip(list(range(0, 5)), list(range(5, 10)),list(range(10, 15))))
print (lista3)
# Ordenando listas com a função sort()
lista.sort()
print(lista)
lista.sort(reverse=True) # ordem reversa
print(lista)
alunos = [ ["Joao", 7], ["Maria", 6], ["Jose", 3] ]
print(alunos)
# Usando a função sort() com uma função anônima (lambda)
alunos.sort(key=lambda x: x[1])
for aluno in alunos:
print(aluno)
# Outro exemplo
alunos.sort(key=lambda x: x[0])
for aluno in alunos:
print(aluno)
# Eliminando valores
valor = alunos.pop(2)
print ("Item removido:", valor)
print(alunos)
# Inserindo valores (com a função insert())
pos = 2
valor = "Pedro"
alunos.insert(pos,valor)
print(alunos)
# Outro exemplo
pos = 1
valor = 5
alunos.insert(pos,valor)
print(alunos)
# Podemos também usar a função append() para inserir valores no final de uma lista
# Filtrando resultados (função filter())
valores = [10, 4, -1, 3, 5, -9, -11]
resultado = list(filter(lambda x: x > 0, valores))
print(resultado)
# Outro exemplo
def criterio(x):
return x >= 0
y = list(filter(criterio, list(range(-5, 5))))
print(y)
# A função map(): serve para aplicarmos uma função a cada elemento de uma lista
import math
lista1 = [1, 4, 9, 16, 25]
lista2 = list(map(math.sqrt, lista1))
print(lista2)
# Outro exemplo
lista = list(range(1, 11))
y = list(map(lambda x: x*-1, lista))
print(y)
# Outras funções uteis
soma = sum(lista2)
print(soma)
maximo = max(lista1)
print(maximo)
minimo = min(lista2)
print(minimo)
Programa Exemplo para abrir e escrever arquivos em disco
# -*- coding: utf-8 -*-
# Criando um pequeno banco de dados para testes
# Nome, Idade, Peso[Kg], Altura[m]
banco = [
["Siloé", 37, 55.5, 1.62],
["Ingridt", 35, 56.3, 1.60],
["Karina", 34, 46.5, 1.64],
["Carlota", 39, 79.3, 1.54],
["Wanda", 30, 59.0, 1.68],
["Paloma", 38, 47.0, 1.57],
["Yvone", 37, 67.0, 1.58],
["Betânia", 32, 60.4, 1.62],
["Edilene", 36, 64.5, 1.75],
["Agnes", 32, 49.5, 1.56],
["Taciana", 38, 66.0, 1.72],
["Naura", 35, 62.9, 1.76],
["Olga", 33, 83.2, 1.62],
["Dânia", 40, 62.0, 1.66],
["Giovana", 38, 53.7, 1.77]
]
import pickle # módulo necessário para salvar como "streams" dados como listas, tuplas ou dicionários
# Escrevendo os dados em um arquivo em disco
arquivo = open("Banco_de_Dados.dat","w") # abre um arquivo em disco para escrita de informações (w = write)
pickle.dump(banco,arquivo) # Grava uma "stream" do objeto "banco" para o arquivo
arquivo.close() # termina a operação e assegura que os dados foram escritos no arquivo em disco
# Recuperando os dados
arquivo = open("Banco_de_Dados.dat","r") # abre um arquivo em disco para leitura de informações (r = read)
dados = pickle.load(arquivo) # lê a "stream" a partir do arquivo e reconstroi o objeto (lista) original
arquivo.close()
# Testando...
print("Nome, Idade, Peso[Kg], Altura[m]")
# Imprimindo a variável "dados"
for a in range(0,len(dados)):
print('{0} {1} {2} {3}').format(dados[a][0],dados[a][1],dados[a][2],dados[a][3])
# Criando um pequeno banco de dados para testes
# Nome, Idade, Peso[Kg], Altura[m]
banco = [
["Siloé", 37, 55.5, 1.62],
["Ingridt", 35, 56.3, 1.60],
["Karina", 34, 46.5, 1.64],
["Carlota", 39, 79.3, 1.54],
["Wanda", 30, 59.0, 1.68],
["Paloma", 38, 47.0, 1.57],
["Yvone", 37, 67.0, 1.58],
["Betânia", 32, 60.4, 1.62],
["Edilene", 36, 64.5, 1.75],
["Agnes", 32, 49.5, 1.56],
["Taciana", 38, 66.0, 1.72],
["Naura", 35, 62.9, 1.76],
["Olga", 33, 83.2, 1.62],
["Dânia", 40, 62.0, 1.66],
["Giovana", 38, 53.7, 1.77]
]
import pickle # módulo necessário para salvar como "streams" dados como listas, tuplas ou dicionários
# Escrevendo os dados em um arquivo em disco
arquivo = open("Banco_de_Dados.dat","w") # abre um arquivo em disco para escrita de informações (w = write)
pickle.dump(banco,arquivo) # Grava uma "stream" do objeto "banco" para o arquivo
arquivo.close() # termina a operação e assegura que os dados foram escritos no arquivo em disco
# Recuperando os dados
arquivo = open("Banco_de_Dados.dat","r") # abre um arquivo em disco para leitura de informações (r = read)
dados = pickle.load(arquivo) # lê a "stream" a partir do arquivo e reconstroi o objeto (lista) original
arquivo.close()
# Testando...
print("Nome, Idade, Peso[Kg], Altura[m]")
# Imprimindo a variável "dados"
for a in range(0,len(dados)):
print('{0} {1} {2} {3}').format(dados[a][0],dados[a][1],dados[a][2],dados[a][3])
Exercício em Python
Considere o seguinte trecho de código em Python:
a = "Essa prova parece muito difícil!"
b = "Queria uma prova mais fácil..."
c = "é"
d = a[0:11] + c + " muito" + b[21:27] + a[31] + a[31] print(d)
O que é apresentado ao usuário após a chamada à função print() acima? Explique a soma do lado direito do operador de atribuição na quarta linha de código acima.
Finalmente, escreva uma função que, dada uma string arbitrária, retorne os seis últimos caracteres. Caso algum caractere seja uma vogal, este deve ser substituído pelo símbolo “0” (“zero”). Ainda, se a string de entrada possuir menos de 6 caracteres, a função deverá “preencher” a string de saída com zeros para que esta nunca tenha um tamanho menor que 6.
Resolução:
a = "Essa prova parece muito dificil!" # os acentos foram retirados para evitar erros
b = "Queria uma prova mais facil..."
c = "e"
d = a[0:11] + c + " muito" + b[21:27] + a[31] + a[31]
print(d)
teste1 = "12345678"
teste2 = 'a'
teste3 = 'b'
teste4 = 'ufa!'
teste5 = 'Murillo Rodrigo'
# parte que deveria ser apresentada na prova (apenas a funcao)
def lastsix(s):
c = len(s)
if (c<7):
for n in range(c,6):
s = s + '0'
c = len(s)
ss=''
for n in range(c-6,c):
if (s[n]=='a' or s[n]=='e' or s[n]=='i' or s[n]=='o' or s[n]=='u' or s[n]=='A' or s[n]=='E' or s[n]=='I' or s[n]=='O' or s[n]=='U'):
ss = ss + '0'
else:
ss = ss + s[n]
return ss
##############################################################
f1 = lastsix(teste1)
print(f1)
f2 = lastsix(teste2)
print(f2)
f3 = lastsix(teste3)
print(f3)
f4 = lastsix(teste4)
print(f4)
f5 = lastsix(teste5)
print(f5)
a = "Essa prova parece muito difícil!"
b = "Queria uma prova mais fácil..."
c = "é"
d = a[0:11] + c + " muito" + b[21:27] + a[31] + a[31] print(d)
O que é apresentado ao usuário após a chamada à função print() acima? Explique a soma do lado direito do operador de atribuição na quarta linha de código acima.
Finalmente, escreva uma função que, dada uma string arbitrária, retorne os seis últimos caracteres. Caso algum caractere seja uma vogal, este deve ser substituído pelo símbolo “0” (“zero”). Ainda, se a string de entrada possuir menos de 6 caracteres, a função deverá “preencher” a string de saída com zeros para que esta nunca tenha um tamanho menor que 6.
Resolução:
a = "Essa prova parece muito dificil!" # os acentos foram retirados para evitar erros
b = "Queria uma prova mais facil..."
c = "e"
d = a[0:11] + c + " muito" + b[21:27] + a[31] + a[31]
print(d)
teste1 = "12345678"
teste2 = 'a'
teste3 = 'b'
teste4 = 'ufa!'
teste5 = 'Murillo Rodrigo'
# parte que deveria ser apresentada na prova (apenas a funcao)
def lastsix(s):
c = len(s)
if (c<7):
for n in range(c,6):
s = s + '0'
c = len(s)
ss=''
for n in range(c-6,c):
if (s[n]=='a' or s[n]=='e' or s[n]=='i' or s[n]=='o' or s[n]=='u' or s[n]=='A' or s[n]=='E' or s[n]=='I' or s[n]=='O' or s[n]=='U'):
ss = ss + '0'
else:
ss = ss + s[n]
return ss
##############################################################
f1 = lastsix(teste1)
print(f1)
f2 = lastsix(teste2)
print(f2)
f3 = lastsix(teste3)
print(f3)
f4 = lastsix(teste4)
print(f4)
f5 = lastsix(teste5)
print(f5)
Exemplo de uso da estrutura for
#Caio Pegoraro
#exemplos de uso da estrutura for
lista = [8,5,4,3]
print(lista)
#i vai receber cada valor da lista
for i in lista:
print(i)
print('\n')
#o exemplo anterior serve para percorrer os valores de uma lista, mas ha outra forma de fazer isso tb:
quantidade = len(lista)
for i in range(quantidade): #o range sempre retorna uma lista, nesse caso uma lista começando em zero até o quantidade-1, o -1 é por justamente iniciar em zero, se voce tem quantidade = 3, a lista para três valores será: [0,1,2]
print (lista[i])
#os dois anteriores sao equivalentes em funcionalidade (fazem a mesma coisa, de maneira diferente)
print('\n')
#i vai receber o valor de cada posição da lista (igual o anterior, mas aqui eu passei uma lista manualmente)
for i in [0,10,2,4]:
print(i)
print('\n')
#nesse caso o range retorna uma lista começando em zero e terminando em 9, novamente o i vai receber cada valor totalizando 10 repetições (0 a 9)
for i in range(0,10):
print (i)
print('\n')
#igual ao anterior mas ao inves de retornar uma lista de zero a 9, essa pula de 2 em 2
for i in (range(0,10))[::2]:
print(i)
#exemplos de uso da estrutura for
lista = [8,5,4,3]
print(lista)
#i vai receber cada valor da lista
for i in lista:
print(i)
print('\n')
#o exemplo anterior serve para percorrer os valores de uma lista, mas ha outra forma de fazer isso tb:
quantidade = len(lista)
for i in range(quantidade): #o range sempre retorna uma lista, nesse caso uma lista começando em zero até o quantidade-1, o -1 é por justamente iniciar em zero, se voce tem quantidade = 3, a lista para três valores será: [0,1,2]
print (lista[i])
#os dois anteriores sao equivalentes em funcionalidade (fazem a mesma coisa, de maneira diferente)
print('\n')
#i vai receber o valor de cada posição da lista (igual o anterior, mas aqui eu passei uma lista manualmente)
for i in [0,10,2,4]:
print(i)
print('\n')
#nesse caso o range retorna uma lista começando em zero e terminando em 9, novamente o i vai receber cada valor totalizando 10 repetições (0 a 9)
for i in range(0,10):
print (i)
print('\n')
#igual ao anterior mas ao inves de retornar uma lista de zero a 9, essa pula de 2 em 2
for i in (range(0,10))[::2]:
print(i)
Exemplo de código para ejetar CD DVD
import os, sys
print(sys.platform)
if 'win' in sys.platform:
import win32file
from win32con import *
drive = 'E:' # Colocar a letra da unidade de CD/DVD do seu sistema
h = win32file.CreateFile(r'\\.\\' + drive, GENERIC_READ,FILE_SHARE_READ,None, OPEN_EXISTING, 0, 0)
win32file.DeviceIoControl(h, 0x002d4808, "", 0, None) # Envia um codigo de controle para um dispositivo
win32file.CloseHandle(h)
else:
import fcntl
cd_device = '/dev/cdrom'
if os.path.islink(cd_device):
base_path = os.path.dirname(cd_device)
cd_device = os.readlink(cd_device)
if not cd_device[0] == '/':
cd_device = os.path.join(base_path, cd_device)
cdrom = os.open(cd_device, os.O_RDONLY | os.O_NONBLOCK)
fcntl.ioctl(cdrom, 0x5309, 0)
os.close(cdrom)
print(sys.platform)
if 'win' in sys.platform:
import win32file
from win32con import *
drive = 'E:' # Colocar a letra da unidade de CD/DVD do seu sistema
h = win32file.CreateFile(r'\\.\\' + drive, GENERIC_READ,FILE_SHARE_READ,None, OPEN_EXISTING, 0, 0)
win32file.DeviceIoControl(h, 0x002d4808, "", 0, None) # Envia um codigo de controle para um dispositivo
win32file.CloseHandle(h)
else:
import fcntl
cd_device = '/dev/cdrom'
if os.path.islink(cd_device):
base_path = os.path.dirname(cd_device)
cd_device = os.readlink(cd_device)
if not cd_device[0] == '/':
cd_device = os.path.join(base_path, cd_device)
cdrom = os.open(cd_device, os.O_RDONLY | os.O_NONBLOCK)
fcntl.ioctl(cdrom, 0x5309, 0)
os.close(cdrom)
Exemplo de recursão para inverter uma string
def inversao(a):
a=str(a) # necessario apenas se a entrada nao for uma string
n=len(a)
if (n==1):
return a
else:
s = a[n-1] + inversao(a[0:n-1])
return s
teste = "12345678"
print(teste)
teste_invertida = inversao(teste)
print(teste_invertida)
a=str(a) # necessario apenas se a entrada nao for uma string
n=len(a)
if (n==1):
return a
else:
s = a[n-1] + inversao(a[0:n-1])
return s
teste = "12345678"
print(teste)
teste_invertida = inversao(teste)
print(teste_invertida)
Atividade em Python
a) incorpore ao banco de dados mais 15 nomes, incluindo as informações sobre altura, peso e idade para cada pessoa;
b) salve o banco de dados no disco;
c) leia o banco de dados a partir do disco e salve em outra variável do tipo lista;
d) para cada nome armazenado no banco de dados, crie um novo campo, associado a esse nome, que contenha o Índice de Massa Corporal (IMC) da pessoa;
e) ordene a lista considerando o campo Idade (em ordem decrescente);
f) gere um outro banco de dados, a partir do primeiro, ordenado pela idade do indivíduo, que contenha apenas aquelas pessoas com um IMC entre 18,5 e 24,99, inclusive, isto é, os que possuem um IMC considerado normal;
g) ordene essa nova lista a partir do IMC, em ordem crescente;
h) apague do primeiro banco de dados as pessoas que estão nas duas últimas posições do segundo banco de dados, após a ordenação;
i) imprima na tela apenas o nome e idade dos cinco primeiro indivíduos (se houver) armazenados no segundo banco de dados;
j) salve em disco os dois bancos de dados.
Resolução:
import pickle
arquivo = open("Banco_de_Dados.dat","r")
dados = pickle.load(arquivo)
arquivo.close()
#a)
x=input("Quantos nomes voce quer adicionar a lista?: ")
x=int(x)
for a in range (0, x):
lista = input("Digite os dados do usuario: ").split()
dados.append(lista)
#b)
arquivo = open("Banco_de_Dados.dat","w")
pickle.dump(dados,arquivo)
arquivo.close()
#c)
arquivo = open("Banco_de_Dados.dat","r")
dados2 = pickle.load(arquivo)
arquivo.close()
#d)
for a in range (0,len(dados2)):
dados2[a][1]=int(dados[a][1])
dados2[a][2]=float(dados[a][2])
dados2[a][3]=float(dados[a][3])
dados2[a][4:4]=[dados2[a][2]/dados2[a][3]**2]
#e)
dados2.sort(reverse=True, key=lambda x:x[1])
#f)
normal=list(filter(lambda x: 18.5<=x[4]<=24.99, dados2))
arquivo2 = open("Banco_de_Dados2.dat","w")
pickle.dump(normal, arquivo2)
arquivo2.close()
#g)
normal.sort(key=lambda x:x[4])
arquivo2 = open("Banco_de_Dados2.dat","w")
pickle.dump(normal, arquivo2)
arquivo2.close()
#h)
quantidade2 = len(normal)
pessoa1 = normal[quantidade2-1][0]
pessoa2 = normal[quantidade2-2][0]
achei=0
posicao=0
while(achei==0):
if(dados2[posicao][0] == pessoa1):
achei=1
dados2.pop(posicao)
else:
posicao = posicao + 1
achei=0
posicao=0
while(achei==0):
if(dados2[posicao][0] == pessoa2):
achei=1
dados2.pop(posicao)
else:
posicao = posicao + 1
#i)
print('Nome, idade')
quantidade = len(normal)
if(quantidade >= 5):
for i in range(0,5):
print (normal[i][0],', ',normal[i][1],' anos')
else:
for i in range(0,quantidade):
print (normal[i][0],', ',normal[i][1],' anos')
#j)
arquivo = open("Banco_de_Dados.dat","w")
pickle.dump(dados2,arquivo)
arquivo.close()
arquivo2 = open("Banco_de_Dados2.dat","w")
pickle.dump(normal, arquivo2)
arquivo2.close()
b) salve o banco de dados no disco;
c) leia o banco de dados a partir do disco e salve em outra variável do tipo lista;
d) para cada nome armazenado no banco de dados, crie um novo campo, associado a esse nome, que contenha o Índice de Massa Corporal (IMC) da pessoa;
e) ordene a lista considerando o campo Idade (em ordem decrescente);
f) gere um outro banco de dados, a partir do primeiro, ordenado pela idade do indivíduo, que contenha apenas aquelas pessoas com um IMC entre 18,5 e 24,99, inclusive, isto é, os que possuem um IMC considerado normal;
g) ordene essa nova lista a partir do IMC, em ordem crescente;
h) apague do primeiro banco de dados as pessoas que estão nas duas últimas posições do segundo banco de dados, após a ordenação;
i) imprima na tela apenas o nome e idade dos cinco primeiro indivíduos (se houver) armazenados no segundo banco de dados;
j) salve em disco os dois bancos de dados.
Resolução:
import pickle
arquivo = open("Banco_de_Dados.dat","r")
dados = pickle.load(arquivo)
arquivo.close()
#a)
x=input("Quantos nomes voce quer adicionar a lista?: ")
x=int(x)
for a in range (0, x):
lista = input("Digite os dados do usuario: ").split()
dados.append(lista)
#b)
arquivo = open("Banco_de_Dados.dat","w")
pickle.dump(dados,arquivo)
arquivo.close()
#c)
arquivo = open("Banco_de_Dados.dat","r")
dados2 = pickle.load(arquivo)
arquivo.close()
#d)
for a in range (0,len(dados2)):
dados2[a][1]=int(dados[a][1])
dados2[a][2]=float(dados[a][2])
dados2[a][3]=float(dados[a][3])
dados2[a][4:4]=[dados2[a][2]/dados2[a][3]**2]
#e)
dados2.sort(reverse=True, key=lambda x:x[1])
#f)
normal=list(filter(lambda x: 18.5<=x[4]<=24.99, dados2))
arquivo2 = open("Banco_de_Dados2.dat","w")
pickle.dump(normal, arquivo2)
arquivo2.close()
#g)
normal.sort(key=lambda x:x[4])
arquivo2 = open("Banco_de_Dados2.dat","w")
pickle.dump(normal, arquivo2)
arquivo2.close()
#h)
quantidade2 = len(normal)
pessoa1 = normal[quantidade2-1][0]
pessoa2 = normal[quantidade2-2][0]
achei=0
posicao=0
while(achei==0):
if(dados2[posicao][0] == pessoa1):
achei=1
dados2.pop(posicao)
else:
posicao = posicao + 1
achei=0
posicao=0
while(achei==0):
if(dados2[posicao][0] == pessoa2):
achei=1
dados2.pop(posicao)
else:
posicao = posicao + 1
#i)
print('Nome, idade')
quantidade = len(normal)
if(quantidade >= 5):
for i in range(0,5):
print (normal[i][0],', ',normal[i][1],' anos')
else:
for i in range(0,quantidade):
print (normal[i][0],', ',normal[i][1],' anos')
#j)
arquivo = open("Banco_de_Dados.dat","w")
pickle.dump(dados2,arquivo)
arquivo.close()
arquivo2 = open("Banco_de_Dados2.dat","w")
pickle.dump(normal, arquivo2)
arquivo2.close()
Programa em Python 40
Faça uma função recursiva que permita calcular a média um vetor de tamanho N.
Resolução:
def media (n):
a=1
w=0
while (a<=n):
w = float(a+w)
a = a+1
return (w/n)
if __name__ == '__main__':
n = input("Entre com um numero: ")
fat =float(media (n))
print (fat)
#entrada = raw_input("Digite um string qualquer: ");
#Nenhum numero real vai ser divisivel por um numero maior do que sua metade
#reverse_string(entrada);
Resolução:
def media (n):
a=1
w=0
while (a<=n):
w = float(a+w)
a = a+1
return (w/n)
if __name__ == '__main__':
n = input("Entre com um numero: ")
fat =float(media (n))
print (fat)
#entrada = raw_input("Digite um string qualquer: ");
#Nenhum numero real vai ser divisivel por um numero maior do que sua metade
#reverse_string(entrada);
Programa em Python 39
Escreva uma função recursiva que calcule a soma dos primeiros n cubos: S(n) = 1^3 + 2^3 + … + n^3 .
Resolução:
def cubo (n):
a=0
w=a
while (a<=n):
w = (a**3)+w
a = a+1
return w
if __name__ == '__main__':
n = input("Entre com um numero: ")
fat = cubo (n)
print (fat)
#entrada = raw_input("Digite um string qualquer: ");
#Nenhum numero real vai ser divisivel por um numero maior do que sua metade
#reverse_string(entrada);
Resolução:
def cubo (n):
a=0
w=a
while (a<=n):
w = (a**3)+w
a = a+1
return w
if __name__ == '__main__':
n = input("Entre com um numero: ")
fat = cubo (n)
print (fat)
#entrada = raw_input("Digite um string qualquer: ");
#Nenhum numero real vai ser divisivel por um numero maior do que sua metade
#reverse_string(entrada);
Assinar:
Comentários (Atom)
O que é Taxa Selic
Tendo como fonte o Banco Central: Taxa Selic A Selic é a taxa básica de juros da economia. É o principal instrumento de política monetária ...
-
Este anexo estabelece referências de distâncias de segurança e requisitos para máquinas e equipamentos em geral, devendo ser observadas, qua...
-
(Inserido pela Portaria SIT n.º 293, de 08 de dezembro de 2011) CESTA AÉREA: Equipamento veicular destinado à elevação de pessoas para exec...
-
1. Este Anexo aplica-se às fases de projeto, fabricação, importação, comercialização, exposição e cessão a qualquer título de máquinas estac...