Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Praha

exercicio python

Recommended Posts

Ola amigos.

 

Peço ajuda a alguma alma bondosa que queira me auxiliar na resolucao de 2 problemas em python. Estou fazendo o curso de computacao 2 na faculdade so que o sistema de programacao foi mudado de pascal para python e eu estou perdido, saco muito pouco de python e as duras penas estou fazendo. Entao peço a ajuda encarecida de alguem que esteja disponivel a me guiar na resolucao.

 

Os programas são:

 

Programa 1: Um instituto de pesquisa possui uma base de dados contendo

nome, idade, sexo, estado civil, número de filhos e salário de habitantes de uma

determinada região. Faça um programa que leia estes valores do teclado e

liste:

· adicionar uma nova pessoa;

· o número total de mulheres;

· o número total de homens;

· a média salarial das pessoas;

· nome e salário das pessoas em ordem crescente de salário;

· a média de idade das pessoas e o nome e a idade das pessoas

que possuem idade acima da média;

· o nome e o número de filhos das mulheres casadas e com mais

de 3 filhos;

· o nome dos homens solteiros;

· o nome das mulheres com até 3 filhos e que recebem até R$

500.00 de salário;

· todas as pessoas cadastradas no sistema.

Cada operação descrita acima representa uma opção de um menu de

opções a ser mostrado pelo programa conforme descrito abaixo:

Menu de opções:

Digite 1 para adicionar uma nova pessoa

Digite 2 para mostrar o número total de mulheres

Digite 3 para mostrar o número total de homens

Digite 4 para mostrar a média salarial das pessoas

Digite 5 para mostrar o nome e salário das pessoas em ordem

crescente de salário

Digite 6 para mostrar a média de idade das pessoas e o nome e a

idade das pessoas que possuem idade acima da média

Digite 7 para mostrar o nome e o número de filhos das mulheres

casadas e com mais de 3 filhos

Digite 8 para mostrar o nome dos homens solteiros

Digite 9 para mostrar o nome das mulheres com até 3 filhos e que

recebem até R$ 500.00 de salário

Digite 10 para listar todos os dados de todas as pessoas

Digite 11 para sair do programa

Para tal, crie uma classe Pessoas contendo os seguintes atributos e

métodos:

 

Atributos:

· dicionário contendo os valores recebidos por parâmetro,

com o nome como chave e os demais valores como

conteúdo, em forma de tupla.

Métodos:

· __init__(self,nome,idade,sexo,estado_civil,num_filhos,sa

 

 

l): cria um dicionário contendo os valores recebidos por

parâmetro, com o nome como chave e os demais

valores como conteúdo, em forma de tupla;

· totalPessoas(self): retorna o total de mulheres ou

homens;

· mediaSalarial(self): retorna a média salarial das

pessoas;

· listaNomesSalarios(self): retorna uma lista contendo o

nome e os salários das pessoas, em ordem crescente de

salário;

· mediaIdade(self): retorna a média de idade;

· totalIdade(self): retorna o nome e a idade das pessoas

que possuem idade acima da média;

· mulheresCasadasNumFilhos3(self): retorna o nome e o

número de filhos das mulheres que são casadas e têm

mais de 3 filhos;

· homensSolteiros(self): retorna o nome dos homens

solteiros;

· mulheresNumFilhos3Sal500(self): retorna o nome das

mulheres com até 3 filhos e que recebem até R$ 500.00

de salário;

· listaPessoas(): retorna todos os dados de todas as

pessoas cadastradas.

Observações:

 

1. Os valores de nome, idade, sexo, estado civil, número de

filhos e salário deverão ser lidos do teclado e passados como

parâmetro para o método __init__. Utilize dicionários para

armazenar os valores lidos;

2. O seu programa deverá aceitar somente os valores de 1 a 11

para a opção do menu, imprimindo na tela a mensagem

“Opcao invalida” quando for digitada uma opção fora do

intervalo especificado;

3. O seu programa deverá aceitar, como estado civil, os valores

's' para solteiro, 'c' para casado, 'v' para viúvo e 'd' para

divorciado. Qualquer valor diferente dos listados deverá ser

considerado como inválido e a mensagem “Estado civil

invalido” deverá ser impressa na tela. Além disso, o número de

filhos deverá ser pedido somente se a pessoa for casada.

1.

4. O seu programa deverá aceitar os valores 'f' ou 'm' para o

sexo.Qualquer valor diferente destes deverá ser considerado

como inválido e a mensagem “Sexo invalido.” deverá ser

impressa na tela.

5. Caso não haja pessoas cadastradas, o programa deverá

imprimir a mensagem “Nao ha pessoas cadastradas ainda.”;

6. Faça o tratamento de exceções utilizando “try/except/raise” de

forma a:

◦ aceitar somente números de 1 a 11 para a opção do

menu;

◦ aceitar somente números para os campos idade,

número de filhos e salário (neste caso, números

reais), imprimindo na tela a mensagem “So aceito

numeros” em caso de erro;

◦ aceitar idades entre 1 e 90 anos, imprimindo na tela a

mensagem “Idade invalida” em caso de erro – utilizar

o “raise” e criar uma classe de exceção;

◦ aceitar nomes de até 30 caracteres e não aceitar

nomes em branco, imprimindo na tela a mensagem

“Nome invalido” em caso de erro – utilizar o “raise” e

criar uma classe de exceção;

Exemplo do funcionamento do programa:

Digite 1 para adicionar uma nova pessoa

Digite 2 para mostrar o número total de mulheres

Digite 3 para mostrar o número total de homens

Digite 4 para mostrar a média salarial das pessoas

Digite 5 para mostrar o nome e salário das pessoas em ordem

crescente de salário

Digite 6 para mostrar a média de idade das pessoas e o nome e a

idade das pessoas que possuem idade acima da média

Digite 7 para mostrar o nome e o número de filhos das mulheres

casadas e com mais de 3 filhos

Digite 8 para mostrar o nome dos homens solteiros

Digite 9 para mostrar o nome das mulheres com até 3 filhos e que

recebem até R$ 500.00 de salário

Digite 10 para listar todos os dados de todas as pessoas

Digite 11 para sair do programa

Digite a sua opcao: 1

Digite o nome: maria

Digite a idade: 24

Digite o sexo (f ou m): f

Digite o estado civil (s ou c ou v ou d): c

Digite o numero de filhos: 1

Digite o salario: 1000.00

Pessoa cadastrada com sucesso.

Digite a sua opcao: 1

Digite o nome: joao

Digite a idade: 19

Digite o sexo (f ou m): m

Digite o estado civil (s ou c ou v ou d): s

Digite o salario: 1500.00

Pessoa cadastrada com sucesso.

Digite a sua opcao: 2

Total de mulheres = 1

Digite a sua opcao: 5

maria, 1000.00

joao, 1500.00

Digite a sua opcao: 10

maria, 24, f, c, 1, 1000.00

joao, 19, m, s, 0, 1500.00

Digite a sua opcao: llalala

Opcao invalida.

Digite a sua opcao: 11

Fim do programa.

 

 

 

 

Programa 2: Escreva um programa para calcular a matriz inversa de uma

matriz “A” 3 x 3 lida do teclado. O seu programa deverá ler os elementos

(números reais) da matriz um a um (até que FIM seja digitado para sair do

programa), verificar se a matriz é quadrada e imprimir a matriz inversa da matriz

digitada a partir da fórmula abaixo:

A-1 = (1 / det(A)) * (cof(A))T

onde cof(A) representa a matriz dos cofatores de A, ou seja, a matriz

contendo os elementos cofij = (-1)i+j * Dij onde Dij representa o determinante

obtido da eliminação da linha I e da coluna j da matriz.

Ex:

A = 3 4 5

1 -1 2

0 2 1

cof(A) = cof11 cof12 cof13

cof21 cof22 cof23

cof31 cof32 cof33

onde:

cof11 = (-1)1+1 * det(D11) onde D11 = -1 2

2 1

cof11 = 1*(- 5) = -5

cof22 = (-1)2+2 * det(D22) onde D22 = 3 5

0 1

cof22 = 1*3 = 3

Para a matriz A acima, A-1 = 0.556 -0.667 -1.444

0.111 -0.333 0.111

-0.222 0.667 0.778

Para implementar este programa, crie a classe MatrizInversa

contendo os seguintes atributos e métodos:

Atributos:

• lista contendo os elementos da matriz

Métodos:

• calculaInversa(self): retorna, em forma de lista, os

elementos da matriz inversa.

Observações:

1. O seu programa deverá ler os elementos da matriz (podendo

ser números inteiros ou reais) até que a palavra “FIM” seja

digitada para sair do programa;

2. O seu programa deverá ler os elementos da matriz do teclado,

um a um, colocá-los numa lista e passá-los como parâmetro

para o método __init__ da classe;

3. Faça o tratamento correto de exceções (utilizando “try/except”)

de forma a só aceitar números e o “.” nos elementos da matriz,

imprimindo na tela a mensagem “Elemento invalido” caso esta

condição não seja satisfeita;

4. Uma matriz com determinante igual a zero não possui inversa.

Exemplo de funcionamento do programa:

Digite o elemento a11 da matriz ou FIM para sair: 3

Digite o elemento a12 da matriz ou FIM para sair: 4

Digite o elemento a13 da matriz ou FIM para sair: 5

Digite o elemento a21 da matriz ou FIM para sair: 1

Digite o elemento a22 da matriz ou FIM para sair: -1

Digite o elemento a23 da matriz ou FIM para sair: 2

Digite o elemento a31 da matriz ou FIM para sair: 0

Digite o elemento a32 da matriz ou FIM para sair: 2

Digite o elemento a33 da matriz ou FIM para sair: 1

Matriz Inversa:

0.556 -0.667 -1.444

0.111 -0.333 0.111

-0.222 0.667 0.778

Digite o elemento a11 da matriz ou FIM para sair: lalala

Elemento invalido.

Digite o elemento a11 da matriz ou FIM para sair: FIM

Fim do programa.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.