Simulado de Algoritmos - Respostas

Transcrição

Simulado de Algoritmos - Respostas
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:
a:
b:
c:
inteiro
real
real
real
inicio
escreva("Informe
leia(i)
escreva("Informe
leia(a)
escreva("Informe
leia(b)
escreva("Informe
leia(c)
a forma de classificacao: ")
a: ")
b: ")
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

Documentos relacionados

Lógica de Programação

Lógica de Programação Usada quando duas alternativas dependem de uma mesma condição, uma de a condição ser verdadeira e outra de a condição ser falsa. Ou seja , se o resultado da condição for verdadeiro deve ser executa...

Leia mais

det 100 – informática

det 100 – informática pelos algarismos 0 e 1. Essa decisão de projeto deve-se à maior facilidade de representação interna no computador, que é obtida através de dois diferentes níveis de tensão. Havendo apenas dois alga...

Leia mais