Baixe o app para aproveitar ainda mais
Prévia do material em texto
Simulado de Algoritmos - Respostas 1. Descreva o processo de criação de programas, desde o entendimento do problema até a obtenção do resultado esperado, por meio de sua execução, citando os passos a serem seguidos. Passo 1: Entender o problema a ser resolvido. Passo 2: Elaborar uma solução, usando diagramas de atividades. Passo 3: Escrever o código-fonte correspondente a solução elaborada. Passo 4: Compilar o código-fonte, gerando o programa executável. Passo 5: Corrigir eventuais erros de compilação e compilar novamente até que não haja mais erros. Passo 6: Testar o programa para verificar se existem erros de lógica (de execução). Passo 7: Corrigir eventuais erros de lógica até que o programa esteja produzindo o resultado esperado. 2. Defina sucintamente os seguintes conceitos: a. Algoritmo: seqüência de instruções finita e ordenada de forma lógica para a resolução de uma determinada tarefa ou problema. b. Português Estruturado: pseudo-linguagem de programação usada para o aprendizado de programação de computadores. c. Código-fonte: texto escrito em português estruturado ou em outra linguagem de programação, que deverá ser compilado para gerar o programa executável. d. Programa Executável: resultado da compilação do código-fonte; pode ser executado em um computador. e. Linguagem de Programação: usada para criar código-fonte; C, Pascal, Java, etc. f. Diagrama de Atividades: diagrama para elaboração de fluxos de atividades; é útil para o desenvolvimento de soluções baseadas em algoritmos. g. Instrução Computacional: comando a ser executado pelo computador, existente em uma linguagem de programação. h. Operadores: usados para compor as expressões computacionais; podem ser aritméticos, lógicos ou relacionais. i. Precedência de Operadores: ordem em que os operadores são avaliados pelo computador durante a execução de um programa. j. Variável: posição de memória que se destina a armazenar valores e conteúdos durante a execução de um programa; deve ter um tipo e um nome que dependem da linguagem em que se está trabalhando. k. VisuAlg: ferramenta de software usada para interpretar um código-fonte escrito em português estruturado; tem finalidade didático-pedagógica. 3. Explique as razões para se escrever um código-fonte claro e organizado, respeitando a identação e usando comentários. Um programa de computador deve ser alterado para refletir as mudanças na forma como as pessoas e as empresas executam suas tarefas. A organização, o uso de comentários e a identação facilitam sobremaneira o processo de atualização dos programas, reduzindo os custos dessa atividade. 4. Explique a diferença entre os erros de compilação e os de lógica ocorridos na execução do programa. Erro de compilação: acontece em virtude do uso inadequado da linguagem de programação e é informado pelo compilador. Erro de execução (ou de lógica): acontece em virtude da implementação de um algoritmo inadequado para a solução do problema proposto. 5. Escreva as expressões abaixo usando a sintaxe do Português Estruturado. a. (2 * X ^ 2 – 3 * X ^ (x + 1)) / 2 + ((X + 1) ^ (1 / 2)) / X b. (– 6 ^ X + 2 * Y) ^ (1 / 2) / 3 ^ 9 6. Resolva as expressões lógicas, determinando se a expressão é verdadeira ou falsa. a. 2 > 3 FALSO b. (6 < 8) ou (3 > 7) VERDADEIRO c. não (2 < 3) FALSO d. (5 >= 6 ou 6 < 7 ou não (a + 5 – 6 = 8) {onde a = 5} VERDADEIRO e. (34 > 9 e 5 + u = 34) ou (5 = 15 / 3 e 8 > 12) = ((u = 29) e 8 > 12) {onde u = 29} FALSO f. 2 > 3 e qv {onde qv representa qualquer valor} FALSO g. 2 < 3 ou qv {onde qv representa qualquer valor} VERDADEIRO 7. Faça um algoritmo que leia o nome de um piloto, uma distância percorrida em km e o tempo que o piloto levou para percorrê-la (em horas). O programa deve calcular a velocidade média (Velocidade = Distância / Tempo) em km/h, e exibir a seguinte frase: A velocidade média do <nome do piloto> foi <velocidade media calculada> km/h. algoritmo "respostas" var nomePiloto: caracter distancia: real tempo: real inicio escreva("Informe o nome do piloto: ") leia(nomePiloto) escreva("Informe a distância percorrida (em Km): ") leia(distancia) escreva("Informe o tempo (em horas): ") leia(tempo) escreva("A velocidade média do ", nomePiloto) escreva(" foi ", distancia / tempo, " km/h") fimalgoritmo 8. Em uma pizzaria, cada tulipa de chope custa R$ 2,80 e uma pizza mista grande custa R$10,00, mais R$1,50 por tipo de cobertura pedida (queijo, presunto, banana, etc.). Uma turma vai à pizzaria e pede uma determinada quantidade de chopes e uma pizza grande com uma determinada quantidade de coberturas. Faça um algoritmo que calcule a conta e, sabendo quantas pessoas estão à mesa, quanto cada um deve pagar. Inclua uma gorjeta de 10% sobre o valor, como parte da conta. algoritmo "respostas" var qtdPessoas: inteiro qtdChopes: inteiro qtdCoberturas: inteiro conta: real inicio escreva("Informe a quantidade de pessoas: ") leia(qtdPessoas) escreva("Informe a quantidade de chopes: ") leia(qtdChopes) escreva("Informe a quantidade de coberturas: ") leia(qtdCoberturas) conta <- (10 + 2.80 * qtdChopes + 1.5 * qtdCoberturas) * 1.1 escreval("A conta total foi: R$", conta:6:2) escreva("O valor por pessoa foi: R$", (conta / qtdPessoas):6:2) fimalgoritmo 9. Escreva um algoritmo que calcule o número de notas que deve ser dado de troco para um pagamento efetuado. O algoritmo deve ler o valor a ser pago e o valor efetivamente pago. Supor que o troco seja dado em notas de 50, 20, 10, 5, 2 e 1 real, dando sempre preferência as notas de maior valor. algoritmo "respostas" var preco: inteiro valorPago: inteiro troco: inteiro inicio escreva("Informe o preço: ") leia(preco) escreva("Informe o valor pago: ") leia(valorPago) troco <- valorPago - preco escreval("A quantidade de notas de R$50,00: ", troco \ 50) troco <- troco - (troco \ 50) * 50 escreval("A quantidade de notas de R$20,00: ", troco \ 20) troco <- troco - (troco \ 20) * 20 escreval("A quantidade de notas de R$10,00: ", troco \ 10) troco <- troco - (troco \ 10) * 10 escreval("A quantidade de notas de R$5,00: ", troco \ 5) troco <- troco - (troco \ 5) * 5 escreval("A quantidade de notas de R$2,00: ", troco \ 2) troco <- troco - (troco \ 2) * 2 escreval("A quantidade de notas de R$1,00: ", troco) fimalgoritmo 10. Fazer um algoritmo que escreva o conceito de um aluno, dada a sua nota. Supor notas inteiras somente. O critério para conceitos é o seguinte: notas inferiores a 3, conceito E; notas de 3 a 5, conceito D; notas 6 e 7, conceito C; notas 8 e 9, conceito B; nota 10, conceito A. algoritmo "respostas" var nota: inteiro inicio escreva("Informe a nota: ") leia(nota) se (nota < 3) entao escreva("Conceito E") senao se (nota >= 3) e (nota <= 5) entao escreva("Conceito D") senao se (nota = 6) ou (nota = 7) entao escreva("Conceito C") senao se (nota = 8) ou (nota = 9) entao escreva("Conceito B") senao se (nota = 10) entao escreva("Conceito A") senao escreva("Nota Invalida!!!") fimse fimse fimse fimse fimse fimalgoritmo 11. A empresa XYZ decidiu conceder um aumento de salários a seus funcionários de acordo com a o seguinte critério: 0 a 400, 15%; 401 a 700, 12%; 701 a 1000, 10%; 1001 a 1800, 7%; 1801 a 2500, 4%; acima de 2500,sem aumento. Escrever um algoritmo que lê, para cada funcionário, o seu nome e o seu salário atual. Após receber estes dados, o algoritmo calcula o novo salário e escreve na tela as seguintes informações: <nome do funcionário> <% de aumento> <salário atual> <novo salário> algoritmo "reapostas" var salario: inteiro percAumento: real nome: caracter inicio escreva("Informe o nome: ") leia(nome) escreva("Informe o salario: ") leia(salario) se (salario > 0) e (salario <= 400) entao percAumento <- 0.15 senao se (salario >= 401) e (salario <= 700) entao percAumento <- 0.12 senao se (salario >= 701) e (salario <= 1000) entao percAumento <- 0.10 senao se (salario >= 1001) e (salario <= 1800) entao percAumento <- 0.07 senao se (salario >= 1801) e (salario <= 2500) entao percAumento <- 0.04 senao se (salario > 2500) entao percAumento <- 0 senao escreva("Salario Invalido!!!") fimse fimse fimse fimse fimse fimse escreva(nome, " - ", percAumento * 100, "% - R$", salario:10:2) escreva(" - R$", (salario * (1 + percAumento)):10:2) fimalgoritmo 12. Faça um programa que lê 4 valores I, A, B e C onde I é um número inteiro e positivo e A, B, e C são quaisquer valores reais. O programa deve escrever os valores lidos e: se I = 1, escrever os três valores A, B e C em ordem crescente; se I = 2, escrever os três valores A, B e C em ordem decrescente; se I = 3, escrever os três valores A, B, e C de forma que o maior valor fique entre os outros dois; se I não for um dos três valores acima, dar uma mensagem indicando isto. algoritmo "reapostas" var i: inteiro a: real b: real c: real inicio escreva("Informe a forma de classificacao: ") leia(i) escreva("Informe a: ") leia(a) escreva("Informe b: ") leia(b) escreva("Informe c: ") leia(c) se (i = 1) entao se (a < b) e (a < c) entao escreva(a, " ") se (b < c) entao escreva(b, " ", c) senao escreva(c, " ", b) fimse senao se (b < a) e (b < c) entao escreva(b, " ") se (a < c) entao escreva(a, " ", c) senao escreva(c, " ", a) fimse senao escreva(c, " ") se (b < a) entao escreva(b, " ", a) senao escreva(a, " ", b) fimse fimse fimse fimse {continua na próxima página...} se (i = 2) entao se (a > b) e (a > c) entao escreva(a, " ") se (b > c) entao escreva(b, " ", c) senao escreva(c, " ", b) fimse senao se (b > a) e (b > c) entao escreva(b, " ") se (a > c) entao escreva(a, " ", c) senao escreva(c, " ", a) fimse senao escreva(c, " ") se (b > a) entao escreva(b, " ", a) senao escreva(a, " ", b) fimse fimse fimse fimse se (i = 3) entao se (a > b) e (a > c) entao escreva(b, " ", a, " ", c) senao se (b > c) e (b > a) entao escreva(a, " ", b, " ", c) senao escreva(a, " ", c, " ", b) fimse fimse fimse se (i < 1) ou (i > 3) entao escreva("Classificacao Invalida!!!") fimse fimalgoritmo
Compartilhar