Buscar

Processo de Criação de Programas e Conceitos de Programação

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

Outros materiais

Materiais relacionados

Perguntas relacionadas

Materiais recentes

Perguntas Recentes