Voltar ao inícioComputação · 9º ano · Mudar de matéria
Começar grátis
Apontamentos

Exercícios: As estruturas de um programa

Pratica★☆☆
Explique o que é uma variável em um programa e dê um exemplo: que nome e que conteúdo teria uma variável em um videogame que guarda os pontos do jogador. Que operação…

Explique o que é uma variável em um programa e dê um exemplo: que nome e que conteúdo teria uma variável em um videogame que guarda os pontos do jogador. Que operação mudaria seu valor ao passar de nível?

Resolver
Pratica★☆☆
Explique o que é uma estrutura condicional (se... então... senão...) e escreva dois exemplos de decisões cotidianas expressas com essa estrutura, indicando a condição e…

Explique o que é uma estrutura condicional (se... então... senão...) e escreva dois exemplos de decisões cotidianas expressas com essa estrutura, indicando a condição e as duas ações possíveis.

Resolver
Pratica★☆☆
Explique o que é um laço e que problema ele resolve em comparação com repetir as mesmas instruções muitas vezes. Escreva em pseudocódigo um laço que escreva os números…

Explique o que é um laço e que problema ele resolve em comparação com repetir as mesmas instruções muitas vezes. Escreva em pseudocódigo um laço que escreva os números de 1 a 5.

Resolver
Pratica★☆☆
Explique a diferença entre uma variável e uma constante em um programa, com um exemplo de cada uma em um programa de faturamento (o preço do produto em contraste com a…

Explique a diferença entre uma variável e uma constante em um programa, com um exemplo de cada uma em um programa de faturamento (o preço do produto em contraste com a porcentagem de imposto).

Resolver
Pratica★☆☆
Os dados de um programa têm tipo: inteiro, decimal, texto ou booleano. Indique o tipo mais adequado para cada dado e justifique: a idade de uma pessoa, sua altura em…

Os dados de um programa têm tipo: inteiro, decimal, texto ou booleano. Indique o tipo mais adequado para cada dado e justifique: a idade de uma pessoa, sua altura em metros, seu nome e se foi aprovada ou não.

Resolver
Pratica★☆☆
Explique o que é uma função em um programa e duas vantagens de dividir o código em funções com nome (reutilizar sem copiar, entender e testar cada parte separadamente).

Explique o que é uma função em um programa e duas vantagens de dividir o código em funções com nome (reutilizar sem copiar, entender e testar cada parte separadamente).

Resolver
Pratica★☆☆
O que é um comentário no código-fonte? Explique a quem se dirigem os comentários (não ao computador, mas a quem lerá o código depois) e o que um bom comentário deve…

O que é um comentário no código-fonte? Explique a quem se dirigem os comentários (não ao computador, mas a quem lerá o código depois) e o que um bom comentário deve explicar (o porquê das decisões, não o que já se vê).

Resolver
Pratica★☆☆
Leia este trecho e faça o teste de mesa: Indique que valor é exibido na tela e explique por que a segunda instrução não é uma equação matemática, mas uma atribuição.

Leia este trecho e faça o teste de mesa:

inicio

    x ← 4

    x ← x + 2

    escrever x

fim

Indique que valor é exibido na tela e explique por que a segunda instrução não é uma equação matemática, mas uma atribuição.

Resolver
Pratica★★☆
Leia este programa em pseudocódigo: Faça o teste de mesa passo a passo (valor de soma e de n ao final de cada volta) e indique quantas vezes o laço se repete e que valor…

Leia este programa em pseudocódigo:

inicio

    soma ← 0

    n ← 1

    enquanto n ≤ 5 faça

        soma ← soma + n

        n ← n + 1

    fim enquanto

    escreva soma

fim

Faça o teste de mesa passo a passo (valor de soma e de n ao final de cada volta) e indique quantas vezes o laço se repete e que valor é escrito no final.

Resolver
Pratica★★☆
Escreva em pseudocódigo um programa que leia a nota de uma prova (um número de 0 a 10) e escreva «aprovado» se a nota for 5 ou maior, e «reprovado» caso contrário. Use…

Escreva em pseudocódigo um programa que leia a nota de uma prova (um número de 0 a 10) e escreva «aprovado» se a nota for 5 ou maior, e «reprovado» caso contrário. Use uma variável, uma leitura de dado e uma estrutura condicional.

Resolver
Pratica★★☆
O fluxograma da figura representa um programa com um laço: lê um número n e, enquanto n for maior que 0, escreve seu valor e subtrai 1 dele, como mostra a figura. Se o…

O fluxograma da figura representa um programa com um laço: lê um número n e, enquanto n for maior que 0, escreve seu valor e subtrai 1 dele, como mostra a figura.

início ler n n > 0 ? sim escrever n n ← n − 1 não fim

Se o usuário digitar n = 3: (a) faça o teste de mesa indicando que valores n assume e o que é escrito em cada volta; (b) indique quantas vezes o corpo do laço é executado; (c) explique o que ocorreria se o usuário digitasse n = 0.

Resolver
Pratica★★☆
Este programa classifica uma pessoa segundo sua idade: Faça o teste de mesa para uma entrada de 17 e para uma de 21, indicando em cada caso que condição é avaliada e o…

Este programa classifica uma pessoa segundo sua idade:

inicio

    ler idade

    se idade ≥ 18 então

        escrever "maior de idade"

    senão

        escrever "menor de idade"

    fim se

fim

Faça o teste de mesa para uma entrada de 17 e para uma de 21, indicando em cada caso que condição é avaliada e o que é escrito na tela.

Resolver
Pratica★★☆
Escreva em pseudocódigo um programa que escreva a contagem regressiva de 10 a 1 e, ao terminar o laço, escreva «decolagem!». Use uma variável e um laço enquanto.

Escreva em pseudocódigo um programa que escreva a contagem regressiva de 10 a 1 e, ao terminar o laço, escreva «decolagem!». Use uma variável e um laço enquanto.

Resolver
Pratica★★☆
Este programa soma os números digitados pelo usuário até que ele digite um zero: Faça o teste de mesa para a sequência de entradas 4, 3, 0: indique o valor de n e de…

Este programa soma os números digitados pelo usuário até que ele digite um zero:

início

    soma ← 0

    ler n

    enquanto n ≠ 0 fazer

        soma ← soma + n

        ler n

    fim enquanto

    escrever soma

fim

Faça o teste de mesa para a sequência de entradas 4, 3, 0: indique o valor de n e de soma após cada leitura e o que é escrito no final. Explique também por que o primeiro ler n está fora do laço.

Resolver
Pratica★★☆
O fluxograma da figura representa o controle de acesso de um dispositivo: há no máximo três tentativas para digitar a senha correta, como mostra a figura. (a) Explique o…

O fluxograma da figura representa o controle de acesso de um dispositivo: há no máximo três tentativas para digitar a senha correta, como mostra a figura.

início tentativas ← 0 restam tentativas? não Acesso bloqueado sim ler senha senha correta? sim Acesso permitido não tentativas ← tentativas + 1

(a) Explique o percurso completo do programa quando o usuário erra a senha duas vezes e acerta na terceira. (b) Indique o número máximo de vezes que o programa pede a senha. (c) Justifique por que a variável tentativas é incrementada apenas em um dos ramos do segundo losango.

Resolver
Pratica★★☆
Este programa deveria escrever os números de 1 a 5, mas tem uma falha: a) Identifique o erro: o que falta no corpo do laço? b) Explique o que ocorre ao executar o…

Este programa deveria escrever os números de 1 a 5, mas tem uma falha:

início

    n ← 1

    enquanto n ≤ 5 fazer

        escrever n

    fim enquanto

fim
  1. a) Identifique o erro: o que falta no corpo do laço?
  1. b) Explique o que ocorre ao executar o programa como está escrito.
  1. c) Escreva o pseudocódigo corrigido.
Resolver
Pratica★★★
Projete em pseudocódigo o algoritmo de controle de um semáforo de travessia de pedestres acionado por botão que gerencie de forma segura o tráfego de uma avenida com os…

Projete em pseudocódigo o algoritmo de controle de um semáforo de travessia de pedestres acionado por botão que gerencie de forma segura o tráfego de uma avenida com os seguintes requisitos:

  1. Em repouso, o semáforo de veículos permanece verde.

  2. Para evitar congestionamentos provocados por chamadas contínuas, deve-se garantir um tempo mínimo de verde para veículos de $30$ segundos entre duas fases de pedestres consecutivas.

  3. Decorrido esse tempo mínimo e detectado o acionamento de um pedestre, a sequência obrigatória é: amarelo para veículos durante $3$ segundos, vermelho para veículos e verde para pedestres durante $15$ segundos, e por fim verde piscante para pedestres durante $4$ segundos antes de restabelecer o verde para veículos.

(a) Escreva o pseudocódigo do sistema estruturado dentro de um laço contínuo de supervisão.

(b) Analise que falha de bloqueio o cruzamento sofreria se o sensor quebrasse em estado ativo contínuo (botão travado) e justifique como seu projeto evita que a avenida fique congestionada indefinidamente.

(c) Justifique tecnicamente por que, em sistemas de controle concorrentes em tempo real, é preferível consultar uma marca temporal do relógio (tempo_atual()) em vez de suspender a CPU por meio de esperas bloqueantes passivas (esperar()).

Resolver
Pratica★★★
Um analista de cibersegurança revisa o seguinte pseudocódigo, projetado para controlar o acesso com cartão e PIN em um terminal bancário: (a) Identifique e justifique…

Um analista de cibersegurança revisa o seguinte pseudocódigo, projetado para controlar o acesso com cartão e PIN em um terminal bancário:

inicio

    pin_secreto ← 3852

    tentativas ← 0

    bloqueada ← falso

    enquanto tentativas < 3 e não bloqueada fazer

        ler pin_digitado

        se pin_digitado = pin_secreto então

            escrever "Bem-vindo ao sistema"

        senão

            tentativas ← tentativas + 1

            escrever "PIN incorreto"

        fim se

    fim enquanto

    se tentativas = 3 então

        bloqueada ← verdadeiro

        escrever "Cartão bloqueado por segurança"

    fim se

fim

(a) Identifique e justifique uma falha grave de controle de fluxo que ocorre quando o usuário digita o PIN correto na primeira tentativa.

(b) Preveja o comportamento do programa e o valor final das variáveis tentativas e bloqueada se o usuário digitar a sequência de entradas: 1111, 3852, 9999.

(c) Reescreva o algoritmo em pseudocódigo corrigindo o fluxo de execução para garantir saída limpa imediata após o acerto e bloqueio estrito após três erros consecutivos, assegurando que em nenhuma circunstância a mensagem de boas-vindas seja exibida se o cartão ficar bloqueado.

Resolver
Pratica★★★
A comissão de garantia de qualidade de uma instituição avalia o seguinte algoritmo, destinado a determinar a nota final de um módulo técnico a partir de três notas…

A comissão de garantia de qualidade de uma instituição avalia o seguinte algoritmo, destinado a determinar a nota final de um módulo técnico a partir de três notas parciais ($N_1, N_2, N_3 \in [0{,}0; 10{,}0]$). A norma oficial estabelece: «O aluno é 'Apto' se a média ponderada ($30\,\%$ para $N_1$, $30\,\%$ para $N_2$ e $40\,\%$ para $N_3$) for igual ou superior a $5{,}0$, desde que nenhuma das notas individuais seja inferior a $4{,}0$; caso contrário, será 'Não apto'».

inicio

    ler N1, N2, N3

    media ← N1 · 0,3 + N2 · 0,3 + N3 · 0,4

    se media ≥ 5,0 ou (N1 ≥ 4,0 e N2 ≥ 4,0 e N3 ≥ 4,0) então

        escrever "Apto"

    senão

        escrever "Não apto"

    fim se

fim

(a) Explique detalhadamente por que o programa não gera nenhum erro de sintaxe e é executado normalmente, apesar de conter um erro lógico crítico na estrutura condicional.

(b) Projete dois ternos de notas de teste $(N_1, N_2, N_3)$ que evidenciem a falha do algoritmo: um que cause um falso positivo (o programa declara 'Apto' quando deveria ser 'Não apto') e outro que cause um falso negativo (ou justifique se este último é possível com a expressão atual).

(c) Reescreva o algoritmo em pseudocódigo corrigindo a condição lógica e acrescentando uma verificação prévia de que as três notas digitadas estão dentro do intervalo válido $[0{,}0; 10{,}0]$.

Resolver