• Nenhum resultado encontrado

Computação 1 - Python Aula 12 - Teórica. João Carlos, Carla Delgado, Ana Luisa Duboc 1/ 22

N/A
N/A
Protected

Academic year: 2021

Share "Computação 1 - Python Aula 12 - Teórica. João Carlos, Carla Delgado, Ana Luisa Duboc 1/ 22"

Copied!
33
0
0

Texto

(1)

Aula 12 - Te´

orica

Modulariza¸c˜

ao

(2)

Fa¸ca um programa que dado o sal´ario bruto calcula o sal´ario l´ıquido. O sal´ario l´ıquido ´

e calculado a partir do sal´ario bruto, primeiro descontando 11% referente ao INSS, e do resultado, descontando-se 15% de imposto de renda (IR).

Exemplo

Sal´ario Bruto = R$ 5000,00

Desconto do INSS = R$ 550,00 (11% de R$ 5000,00) Desconto do IR = R$ 667,50 (15% de R$ 4450,00) Sal´ario L´ıquido = 5000 - (550 + 667,50) = 3782,50

(3)

Fa¸ca um programa que dado o sal´ario bruto calcula o sal´ario l´ıquido. O sal´ario l´ıquido ´

e calculado a partir do sal´ario bruto, primeiro descontando 11% referente ao INSS, e do resultado, descontando-se 15% de imposto de renda (IR).

Exemplo

Sal´ario Bruto = R$ 5000,00

Desconto do INSS = R$ 550,00 (11% de R$ 5000,00) Desconto do IR = R$ 667,50 (15% de R$ 4450,00) Sal´ario L´ıquido = 5000 - (550 + 667,50) = 3782,50

# Dado o sal´ario bruto # calcula o sal´ario l´ıquido # float → float

defsalarioLiquido(salarioBruto): descontoINSS = (salarioBruto)*0.11

descontoIR = (salarioBruto - descontoINSS)*0.15 salarioLiq = (salarioBruto - descontoINSS - descontoIR) returnsalarioLiq

(4)

Fa¸ca um programa que dado o sal´ario bruto calcula o sal´ario l´ıquido. O sal´ario l´ıquido ´

e calculado a partir do sal´ario bruto, primeiro descontando 11% referente ao INSS, e do resultado, descontando-se 15% de imposto de renda (IR).

# Dado o sal´ario bruto # calcula o sal´ario l´ıquido # float → float

defsalarioLiquido(salarioBruto): descontoINSS = (salarioBruto)*0.11

descontoIR = (salarioBruto - descontoINSS)*0.15 salarioLiq = (salarioBruto - descontoINSS - descontoIR) returnsalarioLiq

(5)

Fa¸ca um programa que dado o sal´ario bruto calcula o sal´ario l´ıquido. O sal´ario l´ıquido ´

e calculado a partir do sal´ario bruto, primeiro descontando 11% referente ao INSS, e do resultado, descontando-se 15% de imposto de renda (IR).

# Dado o sal´ario bruto # calcula o sal´ario l´ıquido # float → float

defsalarioLiquido(salarioBruto): descontoINSS = (salarioBruto)*0.11

descontoIR = (salarioBruto - descontoINSS)*0.15 salarioLiq = (salarioBruto - descontoINSS - descontoIR) returnsalarioLiq

Note que o c´alculo do desconto ´e sempre feito de uma mesma maneira. Podemos ent˜ao generalizar seu c´alculo.

(6)

Fa¸ca um programa que dado o sal´ario bruto calcula o sal´ario l´ıquido. O sal´ario l´ıquido ´

e calculado a partir do sal´ario bruto, primeiro descontando 11% referente ao INSS, e do resultado, descontando-se 15% de imposto de renda (IR).

# Dado o sal´ario bruto # calcula o sal´ario l´ıquido # float → float

defsalarioLiquido(salarioBruto): descontoINSS = (salarioBruto)*0.11

descontoIR = (salarioBruto - descontoINSS)*0.15 salarioLiq = (salarioBruto - descontoINSS - descontoIR) returnsalarioLiq

Note que o c´alculo do desconto ´e sempre feito de uma mesma maneira. Podemos ent˜ao generalizar seu c´alculo.

# Dado um valor bruto e um percentual de desconto # calcula o valor l´ıquido obtido

# float,float → float

defcalculadesconto(valorBruto,percentual): desconto = valorBruto*percentual/100.0 valorLiquido = valorBruto-desconto returnvalorLiquido

(7)

Fa¸ca um programa que dado o sal´ario bruto calcula o sal´ario l´ıquido. O sal´ario l´ıquido ´

e calculado a partir do sal´ario bruto, primeiro descontando 11% referente ao INSS, e do resultado, descontando-se 15% de imposto de renda (IR).

# Dado um valor bruto e um percentual de desconto # calcula o valor l´ıquido obtido

# float,float → float

defcalculadesconto(valorBruto,percentual): desconto = valorBruto*percentual/100.0 valorLiquido = valorBruto-desconto returnvalorLiquido

(8)

Fa¸ca um programa que dado o sal´ario bruto calcula o sal´ario l´ıquido. O sal´ario l´ıquido ´

e calculado a partir do sal´ario bruto, primeiro descontando 11% referente ao INSS, e do resultado, descontando-se 15% de imposto de renda (IR).

# Dado um valor bruto e um percentual de desconto # calcula o valor l´ıquido obtido

# float,float → float

defcalculadesconto(valorBruto,percentual): desconto = valorBruto*percentual/100.0 valorLiquido = valorBruto-desconto returnvalorLiquido

Usando a fun¸c˜ao acima: # Dado o sal´ario bruto

# calcula o sal´ario l´ıquido # float → float

defsalarioLiquido(salarioBruto):

salariosemINSS = calculadesconto(salarioBruto,11.0) salariosemIRsemINSS = calculadesconto(salariosemINSS,15.0) returnsalariosemIRsemINSS

(9)

Torna o c´

odigo mais leg´ıvel.

Permite que algumas funcionalidades sejam reaproveitadas.

Permite que partes do c´

odigo sejam testadas isoladamente.

# Dado um valor bruto e um percentual de desconto # calcula o valor l´ıquido obtido

# float,float → float

defcalculadesconto(valorBruto,percentual): desconto = valorBruto*percentual/100.0 valorLiquido = valorBruto-desconto returnvalorLiquido >>> calculadesconto(5000.00,11.0) 4450.0 >>> calculadesconto(4450.00,15.0) 3782.5

(10)

Fa¸ca um programa que permita o lan¸camento de notas de uma disciplina e a consulta a tais notas. O programa deve:

possuir um menu principal com o seguinte layout:

Escolha uma op¸c~ao :

1 - lan¸camento de notas de uma disciplina 2 - listar notas de uma disciplina 0 - terminar

Op¸c~ao :

possuir uma tela para lan¸camento das notas de uma disciplina com o seguinte layout:

Nome da Disciplina :computacao1

Ano-Periodo (XX-X) :15-2

matr´ıcula (0 para terminar) :106041177

Nota :8.5

matr´ıcula (0 para terminar) :114123723

Nota :9.2

matr´ıcula (0 para terminar) :123041173

Nota :3.3

(11)

Fa¸ca um programa que permita o lan¸camento de notas de uma disciplina e a consulta a tais notas. O programa deve:

possuir um menu para escolher qual disciplina ter´a suas notas apresentadas com o seguinte layout:

Escolha uma disciplina: 1- computacao1-15-2 2- calculo1-15-2 0- terminar Op¸c~ao :

possuir uma sa´ıda das notas de uma disciplina com o seguinte layout:

Disciplina - computacao1-15-2 Matr´ıcula Nota 106041177 8.5 114123723 9.2 123041173 3.3

(12)

Fa¸ca um programa que permita o lan¸camento de notas de uma disciplina e a consulta a tais notas. O programa deve:

possuir um dicion´ario cuja chave ´e uma string que representa o nome da disciplina e o per´ıodo em que ela foi lecionada, e o seu conte´udo ser´a tamb´em um dicion´ario cuja chave ´e uma string que representa o matr´ıcula do aluno e seu conte´udo ´e a sua nota.

Exemplo

Notas de Computa¸c˜ao 1 de 2015-2 formam o dicion´ario{’106041177’: 8.5, ’114123723’:9.2, ’123041173’:3.3}

Notas de C´alculo 1 de 2015-2 formam o dicion´ario{’123041173’: 1.4, ’142123343’:4.3, ’187233954’:6.7}

Teremos ent˜ao um dicion´ario com todas as disciplinas e suas notas

{’computacao1-15-2’ : {’106041177’: 8.5, ’114123723’:9.2, ’123041173’:3.3} , ’calculo1-15-2’ : {’123041173’: 1.4, ’142123343’:4.3, ’187233954’:6.7}}

computacao1-15-2 calculo 1-15-2

matr´ıcula Nota matr´ıcula Nota

106041177 8.5 123041173 1.4

114123723 9.2 142123343 4.3

(13)

Vamos resolver este problema passo a passo. Esbo¸co: A fun¸c˜ao main()

# Fun¸c˜ao main

defmain():

# Definir dicion´ario das notas disciplinas # Exibir o menu principal

whileopcao != 0: ifopcao == 1:

# Lan¸car notas de uma disciplina

# acrescentar no dicion´ario as notas de uma disciplina

elifopcao == 2:

# Escolha de qual disciplina se quer saber as notas # Mostrar as notas da disciplina escolhida # Exibir o menu principal

if name ==” main ”:

(14)

Vamos resolver este problema passo a passo. Esbo¸co: A fun¸c˜ao main()

# Fun¸c˜ao main

defmain():

dicionarioDisciplinas = {}# Definir dicion´ario das notas disciplinas # Exibir o menu principal

whileopcao != 0: ifopcao == 1:

# Lan¸car notas de uma disciplina

# acrescentar no dicion´ario as notas de uma disciplina

elifopcao == 2:

# Escolha de qual disciplina se quer saber as notas # Mostrar as notas da disciplina escolhida # Exibir o menu principal

if name ==” main ”:

(15)

Vamos resolver este problema passo a passo. Passo 1: Fazendo o menu principal:

Escolha uma op¸c~ao:

1 - lan¸camento de notas de uma disciplina 2 - listar notas de uma disciplina 0 - terminar

(16)

Vamos resolver este problema passo a passo. Passo 1: Fazendo o menu principal:

Escolha uma op¸c~ao:

1 - lan¸camento de notas de uma disciplina 2 - listar notas de uma disciplina 0 - terminar

Op¸c~ao :

# Menu Principal # none → string

defmenuPrincipal():

print”Escolha uma das op¸c˜oes: ”

print”1- lan¸camento de notas de uma disciplina” print”2- listar notas de uma disciplina”

print”0- terminar”

opcao =input(”Op¸c˜ao : ”) returnopcao

(17)

Vamos resolver este problema passo a passo. Esbo¸co: A fun¸c˜ao main()

# Fun¸c˜ao main

defmain():

dicionarioDisciplinas = {}# Definir dicion´ario das notas disciplinas

opcao = menuPrincipal()# Exibir o menu principal

whileopcao != 0: ifopcao == 1:

# Lan¸car notas de uma disciplina

# acrescentar no dicion´ario as notas de uma disciplina

elifopcao == 2:

# Escolha de qual disciplina se quer saber as notas # Mostrar as notas da disciplina escolhida

opcao = menuPrincipal()# Exibir o menu principal

if name ==” main ”:

(18)

Vamos resolver este problema passo a passo.

Passo 2: Fazendo a tela para lan¸camento das notas de uma disciplina.

Nome da Disciplina :computacao1

Ano-Periodo (XX-X) :15-2

matr´ıcula (0 para terminar) :106041177

Nota :8.5

matr´ıcula (0 para terminar) :114123723

Nota :9.2

matr´ıcula (0 para terminar) :123041173

Nota :3.3

(19)

Vamos resolver este problema passo a passo.

Passo 2: Fazendo a tela para lan¸camento das notas de uma disciplina.

Nome da Disciplina :computacao1

Ano-Periodo (XX-X) :15-2

matr´ıcula (0 para terminar) :106041177

Nota :8.5

matr´ıcula (0 para terminar) :114123723

Nota :9.2

matr´ıcula (0 para terminar) :123041173

Nota :3.3

matr´ıcula (0 para terminar) : 0

Lembre que:

Devemos perguntar o nome da disciplina e o ano-per´ıodo que ela foi oferecida. Usaremos estas informa¸c˜oes para construir a chave do dicion´ario.

As notas devem ser armazenadas em um dicion´ario onde a chave deve ser o matr´ıcula do aluno e o conte´udo deve ser a nota obtida na mat´eria. E se a disciplina-ano-periodo j´a estiver no dicion´ario?

(20)

Vamos resolver este problema passo a passo.

Passo 2: Fazendo a tela para lan¸camento das notas de uma disciplina.

Nome da Disciplina :computacao1

Ano-Periodo (XX-X) :15-2

matr´ıcula (0 para terminar) :106041177

Nota :8.5

matr´ıcula (0 para terminar) :114123723

Nota :9.2

matr´ıcula (0 para terminar) :123041173

Nota :3.3

(21)

Vamos resolver este problema passo a passo.

Passo 2: Fazendo a tela para lan¸camento das notas de uma disciplina.

Nome da Disciplina :computacao1

Ano-Periodo (XX-X) :15-2

matr´ıcula (0 para terminar) :106041177

Nota :8.5

matr´ıcula (0 para terminar) :114123723

Nota :9.2

matr´ıcula (0 para terminar) :123041173

Nota :3.3

matr´ıcula (0 para terminar) : 0

# Fun¸c˜ao para lan¸car as notas de uma disciplina # none → tupla

deflancarNotas(): dicionarioNotas = {}

disciplina =raw input(”Nome da Disciplina : ”) periodo =raw input(”Ano-Periodo (XX-X): ”) nomeDisciplina = disciplina+’-’+periodo

matricula =raw input(’Matr´ıcula (0 para terminar) : ’) whilematricula !=’0’:

nota =input(’Nota : ’) dicionarioNotas[matricula] = nota

matricula =raw input(’Matr´ıcula (0 para terminar) : ’) return(nomeDisciplina,dicionarioNotas)

(22)

Vamos resolver este problema passo a passo.

Passo 2: Fazendo a tela para lan¸camento das notas de uma disciplina. # Fun¸c˜ao para lan¸car as notas de uma disciplina

# none → tupla deflancarNotas():

dicionarioNotas = {}

disciplina =raw input(”Nome da Disciplina : ”) periodo =raw input(”Ano-Periodo (XX-X): ”) nomeDisciplina = disciplina+’-’+periodo

matricula =raw input(’Matr´ıcula (0 para terminar) : ’) whilematricula !=’0’:

nota =input(’Nota : ’) dicionarioNotas[matricula] = nota

matricula =raw input(’Matr´ıcula (0 para terminar) : ’) return(nomeDisciplina,dicionarioNotas)

Teste esta fun¸c˜ao para os valores da seguinte tabela:

computacao1-15-2 calculo 1-15-2

matr´ıcula Nota matr´ıcula Nota

106041177 8.5 123041173 1.4

114123723 9.2 142123343 4.3

(23)

Vamos resolver este problema passo a passo.

Passo 2: Fazendo a tela para lan¸camento das notas de uma disciplina. # Fun¸c˜ao para lan¸car as notas de uma disciplina

# none → tupla deflancarNotas():

dicionarioNotas = {}

disciplina =raw input(”Nome da Disciplina : ”) periodo =raw input(”Ano-Periodo (XX-X): ”) nomeDisciplina = disciplina+’-’+periodo

matricula =raw input(’Matr´ıcula (0 para terminar) : ’) whilematricula !=’0’:

nota =input(’Nota : ’) dicionarioNotas[matricula] = nota

matricula =raw input(’Matr´ıcula (0 para terminar) : ’) return(nomeDisciplina,dicionarioNotas)

Retorno da fun¸c˜ao para cada disciplina:

(’computacao1-15-2’, {’106041177’: 8.5, ’114123723’: 9.2, ’123041173’: 3.3}) (’calculo1-15-2’, {’123041173’: 1.4, ’142123343’: 4.3, ’187233954’: 6.7}) Vamos usar esta tupla para construir o dicion´ario com todas as disciplinas e suas respectivas notas.

(24)

Vamos resolver este problema passo a passo. Esbo¸co: A fun¸c˜ao main()

# Fun¸c˜ao main defmain():

dicionarioDisciplinas = {}# Definir dicion´ario das notas disciplinas opcao = menuPrincipal()# Exibir o menu principal

whileopcao != 0: ifopcao == 1:

nomeDisciplina,dicionarioNotas = lancarNotas()# Lan¸car notas de uma disciplina dicionarioDisciplinas[nomeDisciplina]=dicionarioNotas# acrescentar no dicion´ario as notas elifopcao == 2:

# Escolha de qual disciplina se quer saber as notas # Mostrar as notas da disciplina escolhida opcao = menuPrincipal()# Exibir o menu principal if name ==” main ”:

(25)

Vamos resolver este problema passo a passo.

Passo 3: Vamos fazer um menu para escolher qual disciplina ter´a suas notas apresentadas.

Escolha uma disciplina: 1- computacao1-15-2 2- calculo1-15-2 0- terminar Op¸c~ao :

Lembre que:

(26)

Vamos resolver este problema passo a passo.

Passo 3: Vamos fazer um menu para escolher qual disciplina ter´a suas notas apresentadas.

Escolha uma disciplina: 1- computacao1-15-2 2- calculo1-15-2 0- terminar Op¸c~ao :

Lembre que:

Os nomes das disciplinas ser˜ao as chaves do dicion´ario dicionarioDisciplinas. # Menu para escolher disciplina

# list → string

defmenuDisciplinas(Disciplinas):

print”Escolha uma disciplina:”

forindiceinrange(len(Disciplinas)):

printindice+1,”- ”,Disciplinas[indice]

print”0- terminar”

opcao =input(”Op¸c˜ao : ”) returnDisciplinas[opcao-1]

(27)

Vamos resolver este problema passo a passo.

Passo 3: Vamos fazer um menu para escolher qual disciplina ter´a suas notas apresentadas.

Escolha uma disciplina: 1- computacao1-15-2 2- calculo1-15-2 0- terminar Op¸c~ao :

Lembre que:

Os nomes das disciplinas ser˜ao as chaves do dicion´ario dicionarioDisciplinas. # Menu para escolher disciplina

# list → string

defmenuDisciplinas(Disciplinas):

print”Escolha uma disciplina:”

forindiceinrange(len(Disciplinas)):

printindice+1,”- ”,Disciplinas[indice]

print”0- terminar”

opcao =input(”Op¸c˜ao : ”) returnDisciplinas[opcao-1]

(28)

Vamos resolver este problema passo a passo. Esbo¸co: A fun¸c˜ao main()

# Fun¸c˜ao main defmain():

dicionarioDisciplinas = {}# Definir dicion´ario das notas disciplinas opcao = menuPrincipal()# Exibir o menu principal

whileopcao != 0: ifopcao == 1:

nomeDisciplina,dicionarioNotas = lancarNotas()# Lan¸car notas de uma disciplina dicionarioDisciplinas[nomeDisciplina]=dicionarioNotas# acrescentar no dicion´ario as notas elifopcao == 2:

Disciplinas = dict.keys(dicionarioDisciplinas)# Lista de disciplinas

DisciplinaSelecionada = menuDisciplinas(Disciplinas)# Escolha da disc. que se quer saber as notas # Mostrar as notas da disciplina escolhida

opcao = menuPrincipal()# Exibir o menu principal if name ==” main ”:

(29)

Vamos resolver este problema passo a passo.

Passo 4: Vamos fazer uma fun¸c˜ao para mostrar as notas de uma disciplina. Lembre que:

(30)

Vamos resolver este problema passo a passo.

Passo 4: Vamos fazer uma fun¸c˜ao para mostrar as notas de uma disciplina. Lembre que:

A entrada desta fun¸c˜ao vai ser o dicion´ario com as notas de uma certa disciplina. # Fun¸c˜ao para lan¸car as notas de uma disciplina

# none → string

defimprimeNotas(DisciplinaSelecionada,notasDisciplina):

print”Disciplina - ”,DisciplinaSelecionada

print”Matricula NOTA”

foralunoinnotasDisciplina:

printaluno,” ”,notasDisciplina[aluno] return

(31)

Vamos resolver este problema passo a passo.

Passo 4: Vamos fazer uma fun¸c˜ao para mostrar as notas de uma disciplina. Lembre que:

A entrada desta fun¸c˜ao vai ser o dicion´ario com as notas de uma certa disciplina. # Fun¸c˜ao para lan¸car as notas de uma disciplina

# none → string

defimprimeNotas(DisciplinaSelecionada,notasDisciplina):

print”Disciplina - ”,DisciplinaSelecionada

print”Matricula NOTA”

foralunoinnotasDisciplina:

printaluno,” ”,notasDisciplina[aluno] return

Teste esta fun¸c˜ao para as seguintes chamadas:

imprimeNotas(”computacao1-15-2”,{’106041177’: 8.5, ’114123723’:9.2, ’123041173’:3.3})

imprimeNotas(”calculo1-15-2”,{’123041173’: 1.4, ’142123343’:4.3, ’187233954’:6.7})

(32)

Vamos resolver este problema passo a passo. A fun¸c˜ao main()

# Fun¸c˜ao main defmain():

dicionarioDisciplinas = {}# Definir dicion´ario das notas disciplinas opcao = menuPrincipal()# Exibir o menu principal

whileopcao != 0: ifopcao == 1:

nomeDisciplina,dicionarioNotas = lancarNotas()# Lan¸car notas de uma disciplina dicionarioDisciplinas[nomeDisciplina]=dicionarioNotas# acrescentar no dicion´ario as notas elifopcao == 2:

Disciplinas = dict.keys(dicionarioDisciplinas)# Lista de disciplinas

DisciplinaSelecionada = menuDisciplinas(Disciplinas)# Escolha da disc. que se quer saber as notas # Mostrar as notas da disciplina escolhida

imprimeNotas(DisciplinaSelecionada,dicionarioDisciplinas[DisciplinaSelecionada]) opcao = menuPrincipal()# Exibir o menu principal

if name ==” main ”: main()

(33)

Aula 12 - Te´

orica

Modulariza¸c˜

ao

Referências

Documentos relacionados

O Banco Alfa de Investimento S.A., instituição líder do Conglomerado Prudencial Alfa elaborou um conjunto de demonstrações contábeis para fins gerais referentes ao semes- tre findo

- Epistemological guidelines governing Communication research (PhD theses, research projects, scientific articles, etc.) or instruction of Research Methodologies

Entretanto, destaca-se que a dimensão Trabalho e Espaço Total de Vida não obteve correlação significativa em relação às demais dimensões, diferente do que ocorre nas

8 pontos para o candidato habilitado, que apresentar além do certificado da graduação para o cargo que se inscreveu, certificado ou certidão de conclusão de mestrado

TRANSPORTE DOS ANIMAIS ATÉ O ABATEDOURO. a) O transporte dos animais vivos provenientes do manejo realizado sob qualquer sistema com fins comerciais até o abatedouro

Estudos utilizando células de carga com diferentes objetivos tem sido publicados, como por exemplo: para medição da força de mordida dos músculos mastigatórios (Loss, 1996); para

Tal conclusão sustenta a crítica segundo a qual, salvo mudanças profundas nas estrutura, dimensões e inserção da economia brasileira na economia mundial, a meta inovacionista

Outro ponto crítico para o fechamento controlado de disjuntores de transformadores de potência sem carga é que o fluxo prospectivo criado pela tensão no instante do fechamento