Baixe o app para aproveitar ainda mais
Prévia do material em texto
Governo do Estado do Rio Grande do Norte Secretaria de Estado da Educação, da Cultura e dos Desportos – SECD Universidade do Estado do Rio Grande do Norte – UERN Faculdade de Ciências Exatas e Naturais – FANAT Departamento de Informática – DI Construção de Algoritmos – 1ª Avaliação Aluno (a): ____ Data: 09/12/2013 OBS: O gabarito é apenas um modelo de resposta certa. Isso não significa que não possam haver outras respostas diferentes das que estão aqui que também estejam corretas. 1) Um sistema necessita armazenar informações de uma pessoa que vai prestar vestibular para UERN. Atribua um tipo de dado a cada informação que precisa ser guardada a um tipo Inteiro, Caractere, Real, Lógico ou composto por mais de um tipo (igual ou diferente). Exemplifique (Valor: 2,0): a) Nome – Caractere (string) - “João” b) Renda mensal – Real – 1000,00 c) Estado civil – caractere – 'C' (casado) , 'S' (solteiro) d) Idade – Inteiro – 33 e) Sexo – caractere – 'M' (masculino) f) Altura – Real – 1,74 g) Número de filhos – Inteiro – 2 h) Local de nascimento – Caractere (composto por cidade e estado) - Mossoró-RN i) Endereço – Composto (Logradouro, bairro, cidade, estado=caractere, número, cep=inteiro) – Av. Alberto Maranhão, 352, Centro, Mossoró-RN, CEP: 59.600-000 J) É cotista – Lógico - sim 2) Faça um algoritmo que leia os coeficientes e termos independentes de um sistema de equações com duas equações e duas incógnitas e diz se ele é impossível, possível e indeterminado, ou possível e determinado. Nesse último caso, mostre a solução.(Valor:2,5) R: A resposta era a simples aplicação da regra de Cramer para sistemas de equações lineares. Detalhes podem ser vistos em http://www.somatematica.com.br/emedio/sistemas/sistemas3.php Dado que temos duas equações e duas incógnitas, ou seja um sistema do tipo: {ax+by=cdx+ey= f } Podemos calcular os determinantes D, Dx e Dy como D=∣a bd e∣, D x=∣c bf e∣e D y=∣a cd f ∣ O sistema é impossível D é zero e ou Dx ou Dy for zero. O sistema é possível e indeterminado se D = Dx = Dy = 0. O sistema é possível e determinado se D não for zero, sendo x = Dx / D e y = Dy / D. Desta forma temos: Algoritmo “equações lineares” Var a, b, c, d, e, f, D, Dx, Dy, x, y: Real Início Escreva (“Digite os coeficientes da 1ª e 2ª equação em sequência incluindo os termos independentes”) Leia (a, b, c, d, e, f) D := a * e – b * d Dx := c * e – b * f Dy := a * f – c * d Governo do Estado do Rio Grande do Norte Secretaria de Estado da Educação, da Cultura e dos Desportos – SECD Universidade do Estado do Rio Grande do Norte – UERN Faculdade de Ciências Exatas e Naturais – FANAT Departamento de Informática – DI Se D < > 0 Então x := Dx / D y := Dy / D Escreva(“O sistema é possível e determinado, sendo x = “, x, “ e y = “, y) Senão Se Dx = 0 e Dy = 0 Então Escreva (“O sistema é possível e indeterminado”) Senão Escreva (“O sistema é impossível”) Fimse Fimse Fimalgoritmo 3) Uma loja vende eletrodomésticos dando três opções para o cliente: a) compra a vista com 10% de desconto b) no cartão em até 4 vezes sem juros c) no cartão em até 12 vezes com juros de 4% ao mês. Em compras parceladas, o valor da parcela não pode ser inferior a R$ 10,00. Faça um algoritmo, utilizando o operador “escolha/caso”, que simula essas vendas. (Valor: 2,5) R: Este algoritmo não tem muito o que explicar. Deve-se apenas ter um cuidado quando for pegar o valor da parcela, e o número de parcelas. Algoritmo “Venda eletrodomésticos” Var opção, numero_de_parcelas: inteiro preco, valor_da_parcela: real Inicio Escreva(“Digite o preço do produto”) Leia (preco) Escreva (“Digite 1 – Compra a vista 2 – Em até 4 vezes sem juros no cartão 3 – Em até 12 vezes com juros no cartão”) Leia(opcao) Escolha(opcao) Caso 1: Escreva (“O valor a vista será de R$ “, preco * 0,9) Caso 2: Escreva (“Digite o número de parcelas”) Leia (numero_de_parcelas) valor_da_parcela := preco / numero_de_parcelas Se numero_de_parcelas < 1 ou numero_de_parcelas > 4 ou valor_da_parcela < 10 Então Escreva (“Não é possível fazer o parcelamento”) Senão Escreva (“ O valor da parcela sem juros é de: R$ “, valor_da_parcela Fimse Caso 3: Escreva (“Digite o número de parcelas”) Leia (numero_de_parcelas) valor_da_parcela := (preco + 0,04 * numero_de_parcelas * preco ) / numero_de_parcelas Se numero_de_parcelas < 5 ou numero_de_parcelas > 12 ou valor_da_parcela < 10 Então Escreva (“Não é possível fazer o parcelamento”) Senão Escreva (“ O valor da parcela sem juros é de: R$ “, valor_da_parcela Fimse Governo do Estado do Rio Grande do Norte Secretaria de Estado da Educação, da Cultura e dos Desportos – SECD Universidade do Estado do Rio Grande do Norte – UERN Faculdade de Ciências Exatas e Naturais – FANAT Departamento de Informática – DI Casocontrario: Escreva(“Opção inválida”) Fimescolha Fimalgoritmo 4) Simular uma eleição entre quatro candidatos. O programa deve receber os votos de cada candidato, brancos e nulos. O algoritmo deve-se dizer se o total de votos inválidos (brancos e nulos) supera a soma dos candidatos, e dizer que a eleição foi anulada. Caso contrário dizer o vencedor, sendo que ele pode sair no 1o turno, quando um candidato obtiver mais de 50% dos votos válidos. Caso haja 2o turno, deve- se solicitar os votos entre os dois melhores colocados da mesma forma como foi no 1o turno . (Valor 3,0). R: O primeiro passo é ler os votos e saber se a eleição foi validada ou anulada. Se foi validada, é preciso saber se houve ganhador em primeiro turno ou se vai para o segundo turno. É interessante que haja uma variável caractere para guardar os nomes dos que vão par ao segundo turno. O primeiro colocado é aquele que tiver número de votos superior aos demais. O segundo colocado é aquele que tiver votos superior aos demais, a não ser os do primeiro colocado. Algoritmo “Eleição” Var cand_1, cand_2, cand_3, cand_4, primeiro, segundo: caractere votos_1, votos_2, votos_3, votos_4, votos_primeiro, votos_segundo, brancos, brancos_2, validos: Inteiro Inicio Escreva(“Digite os nomes dos quatro candidatos, os votos obtidos por cada e os votos brancos/nulos”) Leia (cand_1, votos_1, cand_2, votos_2, cand_3, votos_3, cand_4, votos_4, brancos) validos := votos_1+votos_2+votos_3+votos_4 Se brancos > validos Então Escreva (“Eleição foi anulada – brancos e nulos maior que votos válidos”) Senão Se votos_1 > votos_2 e votos_1 > votos_3 e votos_1 > votos_4 Então primeiro := cand_1 votos_primeiro := votos_1 Senão Se votos_2 > votos_3 e votos_2>votos_4 Então primeiro := cand_2 votos_primeiro := votos_2 Senão Se votos_3 > votos_4 Então primeiro := cand_3 votos_primeiro := votos_3 Senão primeiro := cand_4 votos_primeiro := votos_4 Fimse Fimse Fimse Se votos_primeiro > validos / 2 Então Escreva(“Eleição vencida no primeiro turno por “, primeiro, “ com “, votos_primeiro, “votos”) Senão Se primeiro< > cand_1 e ( votos_1 > votos_2 ou primeiro = cand_2) e (votos_1 > votos_3 ou primeiro = cand_3) e (votos_1 > votos_4 ou primeiro = cand_4) Então segundo := cand_1 votos_segundo:=votos_1 Senão Governo do Estado do Rio Grande do Norte Secretaria de Estado da Educação, da Cultura e dos Desportos – SECD Universidade do Estado do Rio Grande do Norte – UERN Faculdade de Ciências Exatas e Naturais – FANAT Departamento de Informática – DI Se primeiro < > cand_2 e (votos_2 > votos_3 ou primeiro = cand_3) e (votos_2 > votos_4 ou primeiro = cand4) Então segundo := cand_2 votos_segundo:=votos_2 Senão Se primeiro < > cand_3 Então segundo := cand_3 votos_segundo:=votos_3 Senão segundo := cand_4 votos_segundo := votos_4 Fimse Fimse Fimse Escreva(“Teremos segundo turno entre “, primeiro, “ e “, segundo, “ que conseguiram respectivamente “, votos_primeiro, “ e “, votos_segundo, “votos cada. Digite os votos do segundo turno de cada um e os novos brancos/nulos”) Leia(votos_primeiro, votos_segundo, brancos_2) Se brancos_2 > votos_primeiro + votos_segundo Então Escreva (“Eleição foi anulada – brancos e nulos maior que votos válidos”) Senão Se votos_primeiro > votos_segundo Então Escreva(“O candidato “, primeiro, “ ganhou no segundo turno com “, votos_primeiro, “votos”) Senão Escreva(“O candidato “, segundo, “ ganhou no segundo turno com “, votos_segundo, “votos”) Fimse Fimse Fimse Fimse Fimalgoritmo
Compartilhar