Buscar

Projeto e Desenvolvimento de Algoritmos_APX1_2022.1

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 12 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 12 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 12 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Curso de Tecnologia em Sistemas de Computação 
Disciplina: Projeto e Desenvolvimento de Algoritmos 
APX1 1° semestre de 2022 
 
 
Nome – 
 
Assinatura – 
 
Observações: 
A) Prova sem consulta e sem uso de máquina de calcular. 
B) Use caneta para preencher o seu nome e assinar nas folhas de questões e nas folhas de respostas. 
C) Você pode usar lápis para responder as questões. 
D) Ao final da prova devolva as folhas de questões e as de respostas. 
E) Essa prova não contém "pegadinhas", mas os professores que a elaboraram algumas vezes, por 
distração, cometem pequenos erros no enunciado ou nas alternativas de respostas. Não fique 
procurando por espaços em branco ou quebras de linha sobrando ou faltando e não acredite 
que, por exemplo, um 15 como resposta quando você esperava um 15.0 é motivo para marcar 
"Nenhuma das respostas anteriores" como resposta da questão. 
F) Todas as respostas devem ser transcritas no local apropriado, no cartão de respostas a seguir. 
G) Boa Prova! 
 
 
Questão 
1 A B █ D E 
2 A B █ D E 
3 A B █ D E 
4 █ B C D E 
5 A █ C D E 
6 A B C █ E 
7 A B C █ E 
8 █ B C D E 
9 █ B C D E 
10 A B █ D E 
 
 
 
1a questão (valor 1.0) 
Uma usuária, Maria, usa o celular para se comunicar com seus amigos. Um algoritmo deve ser escrito para determinar 
o tempo decorrido desde o recebimento de uma mensagem até o envio da resposta a essa mesma mensagem. 
Veja o seguinte exemplo de um conjunto de entradas para o algoritmo: 
R 1 
T 10 
E 1 
 A primeira linha, iniciada por R (recebida), informa que Maria recebeu uma mensagem do usuário 1. 
 A segunda linha, iniciada por T (tempo), informa o tempo decorrido desde o recebimento da mensagem até a 
resposta, no caso, 10 segundos. 
 A terceira linha, iniciada por E (enviada), informa que Maria enviou uma resposta para o usuário 1. Você pode 
assumir que o usuário no envio da mensagem é sempre o mesmo da mensagem recebida e que Maria responde 
todas as suas mensagens. 
Para esse conjunto de entradas o algoritmo deve imprimir o número 10, correspondente aos 10 segundos decorridos 
entre as mensagens. 
Saída: 
10 
 
Veja agora outro conjunto de entradas possível: 
R 1 
E 1 
Quando o tempo entre mensagens não é especificado, o algoritmo assume o tempo padrão de 1 segundo, de modo que 
esta deve ser a saída do algoritmo. 
Saída: 
1 
Um programador apresentou duas alternativas para o algoritmo solução: 
Algoritmo i 
início 
 leia ch, n 
 leia ch, n 
 se ch = 'T' então 
 tempo ← n 
 senão 
 tempo ← 1 
 fim se 
 imprima tempo 
fim 
 
Algoritmo ii 
início 
 leia ch, n 
 leia ch, n 
 se ch = 'E' então 
 tempo ← 1 
 senão 
 tempo ← n 
 leia ch, n 
 fim se 
 imprima tempo 
fim 
 
O algoritmo solução para essa questão é: 
 
 
A) somente o algoritmo i 
B) somente o algoritmo ii 
C) os dois algoritmos resolvem o problema 
D) nenhum dos algoritmos resolve o problema 
E) Nenhuma das outras respostas 
2a questão (valor 1.0) 
Um algoritmo lê um conjunto de linhas, correspondentes a quatro resultados de um jogador em jogos de tênis. Cada 
linha contém um único caractere: V se o jogador venceu o jogo, ou P se ele perdeu. Não há empates nos jogos. 
O algoritmo deve determinar o grupo a que pertence o jogador: 
 Se o jogador venceu 3 ou 4 jogos, ele deve ser colocado no Grupo 1 
 Se o jogador venceu 1 ou 2 jogos, ele deve ser colocado no Grupo 2 
 Se o jogador não venceu nenhum jogo, ele deve ser colocado no Grupo 3 
Saída: 
O algoritmo deve produzir uma única linha na saída contendo um número inteiro indicando o grupo em que o jogador 
deve ser colocado. 
Exemplos: 
Entrada 
V 
V 
P 
P 
Saída 
2 
 
Entrada 
P 
P 
P 
P 
Saída 
3 
Um programador apresentou duas propostas de algoritmos para a solução deste problema e estas são listadas a seguir: 
Algoritmo i 
início 
 V ← 0 
 leia r 
 se r = 'V' então 
 V ← V + 1 
 fim se 
 leia r 
 se r = 'V' então 
 V ← V + 1 
 fim se 
 leia r 
 se r = 'V' então 
 V ← V + 1 
 fim se 
 leia r 
 se r = 'V' então 
 V ← V + 1 
 fim se 
 se V >= 3 então 
 imprima 1 
 senão 
 
 
 se V >= 1 então 
 imprima 2 
 senão 
 imprima 3 
 fim se 
 fim se 
fim 
 
Algoritmo ii 
início 
 V ← 0 
 leia r 
 se r <> 'P' então 
 V ← V + 1 
 fim se 
 leia r 
 se r = 'V' então 
 V ← V + 1 
 fim se 
 leia r 
 se r <> 'P' então 
 V ← V + 1 
 fim se 
 leia r 
 se r = 'V' então 
 V ← V + 1 
 fim se 
 se V = 3 OU V = 4 então 
 imprima 1 
 fim se 
 se V = 1 OU V = 2 então 
 imprima 2 
 fim se 
 se V = 0 então 
 imprima 3 
 fim se 
fim 
 
O algoritmo solução para essa questão é: 
A) somente o algoritmo i 
B) somente o algoritmo ii 
C) os dois algoritmos resolvem o problema 
D) nenhum dos algoritmos resolve o problema 
E) Nenhuma das outras respostas 
3a questão (valor 1.0) 
Um algoritmo deve ler uma sequência de cinco números inteiros e calcular a sua soma, porém sujeito à seguinte 
restrição: quando o número 0 (zero) for lido, o número anterior deve ser ignorado. Você pode assumir que o primeiro 
número digitado nunca é um zero. 
Exemplos: 
Entrada 
1 
3 
5 
4 
7 
Saída 
20 
 
 
 
Entrada 
1 
3 
5 
4 
0 
Saída 
9 
Entrada 
1 
0 
5 
0 
7 
Saída 
7 
Um programador apresentou duas propostas de algoritmos para a solução deste problema e estas são listadas a seguir: 
Algoritmo i 
início 
 leia atual 
 soma ← atual 
 anterior ← atual 
 
 leia atual 
 se atual = 0 então 
 soma ← soma - anterior 
 senão 
 soma ← soma + atual 
 fim se 
 anterior ← atual 
 
 leia atual 
 se atual = 0 então 
 soma ← soma - anterior 
 senão 
 soma ← soma + atual 
 fim se 
 anterior ← atual 
 
 leia atual 
 se atual = 0 então 
 soma ← soma - anterior 
 senão 
 soma ← soma + atual 
 fim se 
 anterior ← atual 
 
 leia atual 
 se atual = 0 então 
 soma ← soma - anterior 
 senão 
 soma ← soma + atual 
 fim se 
 imprima soma 
fim 
 
Algoritmo ii 
início 
 leia a 
 leia b 
 leia c 
 
 
 leia d 
 leia e 
 soma ← a + b + c + d + e 
 se b = 0 então 
 soma ← soma – a 
 fim se 
 se c = 0 então 
 soma ← soma - b 
 fim se 
 se d = 0 então 
 soma ← soma - c 
 fim se 
 se e = 0 então 
 soma ← soma - d 
 fim se 
 imprima soma 
fim 
 
O algoritmo solução para essa questão é: 
A) somente o algoritmo i 
B) somente o algoritmo ii 
C) os dois algoritmos resolvem o problema 
D) nenhum dos algoritmos resolve o problema 
E) Nenhuma das outras respostas 
 
4a questão (valor 1.0) 
Um algoritmo deve ler da entrada um número inteiro de três dígitos e determinar a soma de seus dígitos. 
Exemplos: 
Entrada 
123 
Saída 
6 
 
Entrada 
980 
Saída 
17 
Um programador apresentou duas propostas de algoritmos para a solução deste problema e estas são listadas a seguir: 
Algoritmo i 
início 
 leia num 
 U ← num MOD 10 
 D ← num/10 MOD 10 
 C ← num/100 MOD 10 
 imprima (C+D+U) 
fim 
 
Algoritmo ii 
início 
 leia num 
 imprima (num/100 + num/10 + num) 
fim 
 
O algoritmo solução para essa questão é: 
 
 
A) somente o algoritmo i 
B) somente o algoritmo ii 
C) os dois algoritmos resolvem o problema 
D) nenhum dos algoritmos resolve o problema 
E) Nenhuma das outras respostas 
 
5a questão (valor 1.0) 
O algoritmo solução dessa questão lê quatro números inteiros em ordem crescente e agrupa-os em dois grupos de dois 
números tais que seja mínima a diferença entre as somas dos números nos grupos. A saída do algoritmo é a diferença 
positiva entre as somas dos números nos grupos. 
Exemplos: 
Entrada 
4 
7 
10 
20 
Saída 
7 
 
Entrada 
1 
2 
3 
4 
Saída 
0 
Um programador apresentou duas propostas de algoritmos para a solução deste problema e estas são listadas a seguir: 
Algoritmo i 
inícioleia a 
 leia b 
 leia c 
 leia d 
 imprima (a + d) – (b + c) 
fim 
 
Algoritmo ii 
início 
 leia a 
 leia b 
 leia c 
 leia d 
 se (a + d) > (b + c) então 
 imprima (a + d – b – c) 
 senão 
 imprima (b + c – a – d) 
 fim se 
fim 
 
O algoritmo solução para essa questão é: 
A) somente o algoritmo i 
B) somente o algoritmo ii 
C) os dois algoritmos resolvem o problema 
D) nenhum dos algoritmos resolve o problema 
E) Nenhuma das outras respostas 
 
 
6a questão (valor 1.0) 
Um programador recebeu a tarefa de escrever um algoritmo que leia dois números inteiros positivos N e 
imprima quantos desses dois são ímpares. O programador escreveu os dois algoritmos mostrados abaixo 
para resolver este problema. Sabe-se que o valor lido N é sempre maior que zero. 
Exemplos: 
Entrada 
4 
5 
Saída 
1 
 
Entrada 
2 
4 
Saída 
0 
 
As duas propostas de algoritmos estão listadas a seguir. 
Algoritmo alg I 
início 
 i ← 0 
 leia n 
 se n mod 2 = 1 então 
 i ← i + 1 
 fim 
 leia n 
 se n mod 2 = 1 então 
 i ← i + 1 
 fim 
 imprima i 
fim 
 
Algoritmo alg II 
início 
 i ← 0 
 leia n 
 i ← i + n mod 2 
 leia n 
 i ← i + n mod 2 
 imprima i 
fim 
 
Marque a opção correta. 
 
A) Somente o algoritmo alg I resolve o pedido. 
B) Somente o algoritmo alg II resolve o pedido. 
C) Nenhum dos dois algoritmos resolve o pedido. 
D) Os dois algoritmos resolvem o pedido. 
E) Nenhuma das outras respostas 
 
 
7a questão (valor 1.0) 
Um programador foi contratado para escrever um algoritmo que ajude nos cálculos do transporte de 
encomendas de uma empresa. A empresa de transportes permite que cada empresa contratante utilize uma 
quota de até X quilos por mês. Se a empresa contratante não usa toda a sua quota no mês, os quilos que ela 
não usou são adicionados à quota de X quilos do mês seguinte. Pelo contrato, a contratante nunca pode usar 
mais quilos do que a sua quota corrente. Por exemplo, se X=200 quilos e a empresa usou 150 quilos no 
primeiro mês e 220 quilos no segundo mês, então no terceiro mês a empresa tem uma quota de 230 quilos 
para usar. Isto porque 50 quilos são transferidos do primeiro para o segundo mês e 30 quilos sobraram no 
segundo mês e são transferidos para o terceiro mês. Nesta tarefa são dados o valor da quota mensal X e 
quantos quilos a empresa usou em cada um dos primeiros dois meses do plano. Você deve determinar 
quantos quilos a empresa tem para usar no terceiro mês. Uma restrição do contrato é que a companhia 
contratante não pode usar mais quilos do que ela tem disponível no mês. 
 
Entrada: A primeira linha da entrada contém um número inteiro X, o valor da quota mensal quilos. 
Cada uma das linhas seguintes contém um número inteiro indicando a quantidade de quilos que a 
empresa usou em cada mês. 
 
Saída: Seu programa deve produzir uma única linha, contendo um único número inteiro, a 
quantidade de quilos que a companhia tem para usar no terceiro mês. 
 
Exemplo de entrada e saída: 
Entrada: 
10 
4 
6 
 
Saída 
20 
 
O programador apresentou duas propostas de algoritmos listadas a seguir. 
Algoritmo alg I 
Início 
 leia x 
 t ← x 
 leia m 
 s ← t - m 
 t ← x + s 
 leia m 
 s ← t - m 
 t ← x + s 
 imprima t 
fim 
 
Algoritmo alg II 
Início 
 leia x 
 g ←0 
 leia m 
 g ← g + m 
 leia m 
 
 
 g ← g + m 
 s ← 2 * x – g 
 imprima x + s 
fim 
 
Marque a opção correta. 
 
A) Somente o algoritmo alg I resolve o problema. 
B) Somente o algoritmo alg II resolve o problema. 
C) Nenhum dos dois algoritmos resolve o problema. 
D) Os dois algoritmos resolvem o problema. 
E) Nenhuma das outras respostas 
8a questão (valor 1.0) 
Joaquim encontrou um caixa com muitas bolinhas de gude. Para a divisão das bolinhas com seus amigos 
eles concordaram com o seguinte sistema. Cada criança, exceto Joaquim, deve receber exatamente o mesmo 
número de bolinhas. Os amigos decidiram que Joaquim deve receber o dobro de bolinhas que os outros 
recebem já que ele encontrou a caixa. 
Dados o número de bolinhas na caixa e o número de amigos, escreva um algoritmo para determinar quantas 
bolinhas Joaquim deve receber. 
Entrada: A primeira linha da entrada contém um número inteiro A, indicando o número de bolinhas na 
caixa. A segunda linha contém um inteiro N, o número de amigos (não contando Joaquim). O valor de A é 
sempre maior do que (N+1). Joaquim fica com todas as bolinhas que não forem possíveis distribuir segundo 
o critério acordado pelos amigos. 
Saída: Seu programa deve produzir na saída uma única linha, contendo um único inteiro, o número de 
bolinhas que Joaquim deve receber. 
Exemplos de entrada e saída: 
Entrada: 
221 
11 
Saída 
34 
 
Entrada: 
15 
10 
Saída 
5 
 
 
Um programador apresentou duas propostas de algoritmos listadas a seguir. 
Algoritmo alg I 
início 
 leia a 
 leia n 
 r ← a/(n+2) 
 imprima 2*r + a mod (n+2) 
fim 
 
 
 
Algoritmo alg II 
início 
 leia a 
 leia n 
 r ← a / n 
 imprima r 
fim 
 
Marque a opção correta. 
 
A) Somente o algoritmo alg I resolve o problema. 
B) Somente o algoritmo alg II resolve o problema. 
C) Nenhum dos dois algoritmos resolve o problema. 
D) Os dois algoritmos resolvem o problema. 
E) Nenhuma das outras respostas 
 
9a questão (valor 1.0) 
Em um determinado curso um aluno é considerado aprovado quando sua nota final (NF) fica no intervalo 
(6.0 <= NF <= 10.0). Esta expressão é inválida em PETEQS e na maioria das linguagens de programação. 
Um programador tem de escrever uma expressão booleana em PETEQS que tenha como resultado 
verdadeiro sempre que a nota estiver no intervalo definido acima e falso no caso contrário. Ele 
escreveu as duas expressões mostradas a seguir: 
 
exp 1: (NF >= 6.0) E (NF <= 10.0) 
exp 2: (NF >= 6.0) OU (NF <= 10.0) 
 
Marque a opção correta. 
 
A) Somente a expressão exp I resolve o problema. 
B) Somente a expressão exp II resolve o problema. 
C) Nenhuma das duas expressões resolve o problema. 
D) As duas expressões resolvem o problema. 
E) Nenhuma das outras respostas 
 
10a questão (valor 1.0) 
O que será impresso pelo algoritmo a seguir considerando que as entradas fornecidas pelo usuário foram 
10.0 e 12.0, nesta ordem? Considere que o comando imprima não muda de linha ao final da impressão 
Início 
 leia a 
 leia b 
 x1 ← a 
 x2 ← b 
 t ← x1 
 x1 ← x2 
 x2 ← t 
 imprima x1, ‘ ‘, x2, ‘ ‘ 
 
 x1 ← a 
 
 
 x2 ← b 
 x1 ← x2 
 x2 ← x1 
 imprima x1, ‘ ‘, x2 
fim 
 
A) 10 12 10 12 
B) 10 10 12 12 
C) 12 10 12 12 
D) 12 10 12 10 
E) Nenhuma das outras respostas

Outros materiais