Search buenodc

Lista de Exercícios - Semana 1

Antes de começar

  • Os exercícios desta semana são de algoritmo: você ainda não vai escrever código.
  • Use a notação do pseudocódigo vista no material (ALGORITMO/FIM_ALGORITMO, DECLARE, LEIA, ESCREVA, atribuição com ←, SE/ENTÃO/SENÃO). Palavras-chave em MAIÚSCULAS.
  • Os fluxogramas devem ser feitos usando a ferramenta draw.io.
  • Entrega: reúna tudo em um único arquivo (PDF) e envie pelo Moodle.

Lembrete: ← significa “recebe” (atribuição), diferente do = da matemática.

1. Escolha uma tarefa do seu dia a dia (preparar um miojo, ir da sua casa até a faculdade, jogar uma partida de algo) e escreva o algoritmo dela em descrição narrativa, com pelo menos 6 passos numerados. Ao final, indique: existe algum passo que seja uma entrada (dado que chega) ou uma saída (resultado que sai)?

2. Escreva, em descrição narrativa, o algoritmo de um caixa eletrônico para um cliente sacar dinheiro. O algoritmo deve verificar se há saldo suficiente antes de liberar o valor.

Em qual passo da questão 2 existe uma decisão (um “se… então… senão”)? Aponte.

3. Leia o fluxograma abaixo e responda:

w:1150

  • a) Quais são os dados de entrada?
  • b) O que o algoritmo calcula?
  • c) O que aparece na tela se A = 7 e B = 8?
  • d) E se A = 3 e B = 4?

4. Desenhe o fluxograma de um algoritmo que leia dois números e mostre a soma deles. (Apenas sequência, sem decisão.)

5. Desenhe o fluxograma de um algoritmo que leia a idade de uma pessoa e escreva "MAIOR DE IDADE" se a idade for maior ou igual a 18; caso contrário, escreva "MENOR DE IDADE".

6. Desenhe o fluxograma de um algoritmo que leia um número e informe se ele é positivo ou negativo.

7. Escreva o pseudocódigo do algoritmo da questão 4 (ler dois números e mostrar a soma).

8. Escreva o pseudocódigo de um algoritmo que leia o raio de um círculo e calcule sua área. Use AREA ← 3.14 * RAIO * RAIO.

9. Escreva o pseudocódigo de um algoritmo que leia o preço de um produto e a quantidade comprada, calcule o valor total e, se o total for maior que 100, aplique 10% de desconto. Mostre o valor final a pagar.

10. (Teste de mesa) Dado o pseudocódigo abaixo, simule sua execução (teste de mesa) e diga a saída para cada caso:

ALGORITMO
DECLARE N1, N2, M NUMÉRICO
LEIA N1, N2
M ← (N1 + N2) / 2
ESCREVA "Média = ", M
SE M ≥ 7
   ENTÃO ESCREVA "Aprovado"
   SENÃO ESCREVA "Reprovado"
FIM_ALGORITMO

a) N1 = 6 e N2 = 9 → qual a saída completa? b) N1 = 5 e N2 = 6 → qual a saída completa?

11. (Encontre os erros) O pseudocódigo abaixo deveria ler duas notas, mostrar a média e informar se o aluno foi aprovado (média ≥ 7) ou reprovado. Mas ele tem 3 erros. Encontre e corrija cada um, explicando em uma frase o que estava errado.

ALGORITMO
DECLARE N1, N2, M NUMÉRICO
ESCREVA "Digite as duas notas"
LEIA N1
M ← N1 + N2 / 2
SE M ≥ 7
   ENTÃO ESCREVA "Aprovado"
   SENÃO ESCREVA "Reprovado"
FIM_ALGORITMO

12. (Desafio, opcional) Faça um algoritmo que leia três números diferentes e informe qual é o maior deles. Você pode representá-lo em fluxograma ou em pseudocódigo (ou nos dois).

Dica: você vai precisar de mais de uma decisão. Pense com calma em como comparar os números dois a dois.

Gabarito

Resolução de referência para consulta e correção. As questões de descrição livre (1, 2, 12) admitem outras soluções corretas; o que importa é a lógica.

1.

Resposta livre. Exemplo de solução:

Algoritmo: Preparar miojo
Passo 1: Colocar água numa panela.
Passo 2: Levar a panela ao fogo até ferver.
Passo 3: Colocar o macarrão na água fervendo.
Passo 4: Esperar 3 minutos.
Passo 5: Desligar o fogo e escorrer a água.
Passo 6: Adicionar o tempero e misturar.

Entrada: os ingredientes (água, macarrão, tempero). Saída: o miojo pronto (passo 6, o resultado final).

2.

Algoritmo: Sacar dinheiro
Passo 1: Inserir o cartão.
Passo 2: Digitar a senha.
Passo 3: Escolher a opção "Saque" e informar o valor.
Passo 4: Verificar se o saldo é suficiente.
Passo 5: Se o saldo for suficiente, liberar o valor; caso contrário, exibir "Saldo insuficiente".
Passo 6: Devolver o cartão.

A decisão está no passo 5.

3.

a) Entrada: A e B. b) Calcula S = A + B e verifica se S é maior que 10, mostrando "GRANDE" ou "PEQUENO". c) A = 7, B = 8: S = 15, 15 > 10 é verdadeiro, mostra "GRANDE". d) A = 3, B = 4: S = 7, 7 > 10 é falso, mostra "PEQUENO".

4.

   ( INÍCIO )
       │
  [ LEIA A, B ]
       │
 [ S ← A + B ]
       │
  [ ESCREVA S ]
       │
    ( FIM )

5.

        ( INÍCIO )
            │
       [ LEIA IDADE ]
            │
      < IDADE ≥ 18 ? > ──SIM──► [ ESCREVA "MAIOR DE IDADE" ]
            │                             │
           NÃO                            │
            │                             │
 [ ESCREVA "MENOR DE IDADE" ]             │
            │                             │
            └───────────► ( FIM ) ◄───────┘

6.

      ( INÍCIO )
          │
     [ LEIA N ]
          │
    < N > 0 ? > ──SIM──► [ ESCREVA "POSITIVO" ]
          │                        │
         NÃO                       │
          │                        │
 [ ESCREVA "NEGATIVO" ]             │
          │                        │
          └────────────► ( FIM ) ◄─┘

O enunciado não cobra o caso N = 0; se algum aluno tratar esse caso à parte (nem positivo nem negativo), considere correto também. Bom ponto para comentar na síncrona.

7.

ALGORITMO
DECLARE A, B, S NUMÉRICO
ESCREVA "Digite dois números"
LEIA A, B
S ← A + B
ESCREVA "Soma = ", S
FIM_ALGORITMO

8.

ALGORITMO
DECLARE RAIO, AREA NUMÉRICO
ESCREVA "Digite o raio"
LEIA RAIO
AREA ← 3.14 * RAIO * RAIO
ESCREVA "Área = ", AREA
FIM_ALGORITMO

9.

ALGORITMO
DECLARE PRECO, QUANTIDADE, TOTAL NUMÉRICO
ESCREVA "Digite o preço do produto"
LEIA PRECO
ESCREVA "Digite a quantidade"
LEIA QUANTIDADE
TOTAL ← PRECO * QUANTIDADE
SE TOTAL > 100
   ENTÃO TOTAL ← TOTAL - (TOTAL * 0.10)
ESCREVA "Valor a pagar = ", TOTAL
FIM_ALGORITMO

10.

a) N1 = 6, N2 = 9: M = (6 + 9) / 2 = 7.5. Saída: Média = 7.5 seguido de Aprovado (7.5 ≥ 7). b) N1 = 5, N2 = 6: M = (5 + 6) / 2 = 5.5. Saída: Média = 5.5 seguido de Reprovado (5.5 < 7).

11.

Os três erros:

  1. LEIA N1 só lê a primeira nota; falta ler N2. Correção: LEIA N1, N2.
  2. M ← N1 + N2 / 2 calcula errado por causa da precedência: a divisão acontece antes da soma, então o algoritmo faz N1 + (N2 / 2) em vez de (N1 + N2) / 2. Correção: M ← (N1 + N2) / 2.
  3. A média nunca é mostrada; falta um ESCREVA com o valor de M antes do SE.

Versão corrigida:

ALGORITMO
DECLARE N1, N2, M NUMÉRICO
ESCREVA "Digite as duas notas"
LEIA N1, N2
M ← (N1 + N2) / 2
ESCREVA "Média = ", M
SE M ≥ 7
   ENTÃO ESCREVA "Aprovado"
   SENÃO ESCREVA "Reprovado"
FIM_ALGORITMO

12. (Desafio)

Uma solução por acumulador (guarda o maior encontrado até agora), mais simples que comparar par a par:

ALGORITMO
DECLARE A, B, C, MAIOR NUMÉRICO
ESCREVA "Digite três números"
LEIA A, B, C
MAIOR ← A
SE B > MAIOR
   ENTÃO MAIOR ← B
SE C > MAIOR
   ENTÃO MAIOR ← C
ESCREVA "O maior número é ", MAIOR
FIM_ALGORITMO

A dica do enunciado sugere comparar dois a dois com decisões aninhadas; ambas as abordagens são válidas, e vale mostrar as duas na correção coletiva para contrastar decisões sequenciais com decisões aninhadas.


Lista da Semana 1 - Base: Ascencio & Campos, Cap. 1 (1.1–1.4). Traga suas dúvidas para o encontro síncrono.