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

Exercícios: Programação textual

Pratica★☆☆
Explique o que é uma variável recorrendo à comparação com uma caixa com etiqueta e descreva o que faz cada linha: puntos = 0, puntos = puntos + 1, print(puntos). Que…

Explique o que é uma variável recorrendo à comparação com uma caixa com etiqueta e descreva o que faz cada linha: puntos = 0, puntos = puntos + 1, print(puntos). Que valor aparece na tela e por que razão não é um erro somar algo a uma variável que «já tinha» um valor?

Resolver
Pratica★☆☆
Classifique estes valores de acordo com o tipo de dados (inteiro, decimal, texto ou booleano) e dê um exemplo de uso para cada tipo em um programa de uma loja: 13, 3,75,…

Classifique estes valores de acordo com o tipo de dados (inteiro, decimal, texto ou booleano) e dê um exemplo de uso para cada tipo em um programa de uma loja: 13, 3,75, "Ana", True.

Resolver
Pratica★☆☆
Explique o que fazem as instruções input() e print() em Python, qual é a diferença entre elas e escreva um programa de duas linhas que peça o seu nome e o cumprimente…

Explique o que fazem as instruções input() e print() em Python, qual é a diferença entre elas e escreva um programa de duas linhas que peça o seu nome e o cumprimente usando-o.

Resolver
Pratica★☆☆
A figura mostra um fluxograma e, ao lado, o programa que faz o mesmo, mas com a condição escondida. Escreva a condição que falta na linha do if (deve comparar a variável…

A figura mostra um fluxograma e, ao lado, o programa que faz o mesmo, mas com a condição escondida.

início pedir a idade idade ≥ 12? sim você pode participar não falta pouco edad = int(input("Edad: ")) if ?: print("Puedes") else: print("Aún no")

Escreva a condição que falta na linha do if (deve comparar a variável edad com $12$), explique o que faz int(input("Edad: ")) e por que as linhas dentro do if e do else têm recuo (indentação) para a direita.

Resolver
Pratica★☆☆
Explique o que é uma estrutura condicional com um exemplo do seu dia a dia (se chover, levo o guarda-chuva; se não, os óculos de sol) e escreva-a em três linhas de…

Explique o que é uma estrutura condicional com um exemplo do seu dia a dia (se chover, levo o guarda-chuva; se não, os óculos de sol) e escreva-a em três linhas de pseudocódigo: condição, o que acontece se for verdadeira e o que acontece se for falsa.

Resolver
Pratica★☆☆
Explique a diferença entre um laço for (repetir um número conhecido de vezes) e um laço while (repetir enquanto uma condição for verdadeira), e dê um exemplo cotidiano…

Explique a diferença entre um laço for (repetir um número conhecido de vezes) e um laço while (repetir enquanto uma condição for verdadeira), e dê um exemplo cotidiano de cada um: dar dez voltas no pátio da escola versus continuar remando até chegar à margem.

Resolver
Pratica★☆☆
Explique o que é uma função em um programa e que vantagem há em escrever uma vez def saudar(): e poder chamá-la várias vezes, em vez de copiar as mesmas linhas…

Explique o que é uma função em um programa e que vantagem há em escrever uma vez def saudar(): e poder chamá-la várias vezes, em vez de copiar as mesmas linhas repetidamente.

Resolver
Pratica★☆☆
Este programa tem três erros típicos: nome = input("O teu nome: ), if nome = "Fátima", print("Olá"). Encontre cada erro (umas aspas por fechar, um = que deveria ser == e…

Este programa tem três erros típicos: nome = input("O teu nome: ), if nome = "Fátima", print("Olá"). Encontre cada erro (umas aspas por fechar, um = que deveria ser == e explique a diferença), reescreva o programa corrigido e indique qual mensagem de erro o computador daria em cada caso.

Resolver
Pratica★★☆
Preveja a saída deste programa sem executá-lo, acompanhando o valor das variáveis linha a linha: a = 4, b = 3, a = a + b, b = a - b, print(a), print(b). Escreva o…

Preveja a saída deste programa sem executá-lo, acompanhando o valor das variáveis linha a linha: a = 4, b = 3, a = a + b, b = a - b, print(a), print(b). Escreva o rastreio completo (quanto vale cada variável após cada linha) e não apenas o resultado.

Resolver
Pratica★★☆
Escreva um programa de três linhas que peça o nome e a idade de uma pessoa e escreva uma frase completa usando-os (por exemplo, «A Mei tem 14 anos»). Explique que tipo…

Escreva um programa de três linhas que peça o nome e a idade de uma pessoa e escreva uma frase completa usando-os (por exemplo, «A Mei tem 14 anos»). Explique que tipo de dado o input() sempre devolve e para que serve o int() ao pedir a idade.

Resolver
Pratica★★☆
Escreva um programa que peça um número e diga se ele é positivo, negativo ou zero. Indique qual estrutura você usa (uma condicional com dois ramos ou três), quais…

Escreva um programa que peça um número e diga se ele é positivo, negativo ou zero. Indique qual estrutura você usa (uma condicional com dois ramos ou três), quais comparações você faz e teste-o mentalmente com os valores $7$, $-3$ e $0$.

Resolver
Pratica★★☆
Um programa converte a nota numérica em classificação: menos de $5$ é «insuficiente», de $5$ a $6{,}9$ é «suficiente» e de $7$ em diante é «bom». Escreva o programa com…

Um programa converte a nota numérica em classificação: menos de $5$ é «insuficiente», de $5$ a $6{,}9$ é «suficiente» e de $7$ em diante é «bom». Escreva o programa com if, elif e else, explique por que a ordem das condições importa e o que aconteceria se a primeira condição fosse nota > 5.

Resolver
Pratica★★☆
Escreva um laço for que mostre a tabuada do $3$ (do $3 \cdot 1$ ao $3 \cdot 10$), indique quantas vezes se repete o corpo do laço e explique o que você mudaria para…

Escreva um laço for que mostre a tabuada do $3$ (do $3 \cdot 1$ ao $3 \cdot 10$), indique quantas vezes se repete o corpo do laço e explique o que você mudaria para mostrar a tabuada do $7$ sem reescrever todo o programa.

Resolver
Pratica★★☆
Leia este programa e explique o que ele faz: n = 5, while n > 0:, print(n), n = n - 1, e no final print("Já está!"). Escreva a saída completa na tela e justifique o que…

Leia este programa e explique o que ele faz: n = 5, while n > 0:, print(n), n = n - 1, e no final print("Já está!"). Escreva a saída completa na tela e justifique o que aconteceria se esquecêssemos a linha n = n - 1.

Resolver
Pratica★★☆
Analise esta função: def area_quadrado(lado): e, no interior, return lado * lado. Explique o que é o parâmetro, o que é o valor devolvido e o que seria escrito na tela…

Analise esta função: def area_quadrado(lado): e, no interior, return lado * lado. Explique o que é o parâmetro, o que é o valor devolvido e o que seria escrito na tela em cada chamada: print(area_quadrado(5)), print(area_quadrado(2{,}5)).

Resolver
Pratica★★☆
Um colega escreve um programa que pede senhas até acertar: chave = "", while chave != "sol":, e dentro dele apenas print("incorreta"). Explique por que o programa nunca…

Um colega escreve um programa que pede senhas até acertar: chave = "", while chave != "sol":, e dentro dele apenas print("incorreta"). Explique por que o programa nunca termina, que linha falta dentro do laço (pedir a chave novamente) e a regra geral sobre os laços while: algo precisa poder alterar a condição.

Resolver
Pratica★★★
Para selecionar os classificados de um torneio de robótica, são lidas cinco pontuações (de $0$ a $10$). Um colega propôs este código para contar quantas são iguais ou…

Para selecionar os classificados de um torneio de robótica, são lidas cinco pontuações (de $0$ a $10$). Um colega propôs este código para contar quantas são iguais ou superiores a $5{,}0$:

aprobados = 0

for i in range(5):

    nota = float(input("Introduce nota: "))

    if nota >= 5:

        aprobados = aprobados + 1

    else:

        aprobados = 0

print("Total de aprobados:", aprobados)
  1. a) Preveja o que será mostrado na tela se o usuário digitar sucessivamente as notas: $6{,}0$, $8{,}0$, $4{,}0$, $9{,}0$ e $7{,}0$. Justifique por que o resultado final não é o esperado, localizando o erro de lógica na estrutura condicional.
  2. b) Corrija o código e modifique-o para que descarte da contagem as notas inválidas (menores que $0$ ou maiores que $10$), mostrando uma mensagem de aviso específica sem somar nem reiniciar o contador.
Resolver
Pratica★★★
Uma loja aplica a seguinte política: compras inferiores a $\text{R\$}\ 30$ pagam $4{,}\text{R\$}\ 50$ de frete; compras entre $\text{R\$}\ 30$ e $\text{R\$}\ 50$ têm…

Uma loja aplica a seguinte política: compras inferiores a $\text{R\$}\ 30$ pagam $4{,}\text{R\$}\ 50$ de frete; compras entre $\text{R\$}\ 30$ e $\text{R\$}\ 50$ têm frete grátis; compras superiores a $\text{R\$}\ 50$ têm frete grátis e um desconto de $10\ \%$ sobre o preço da compra.

Um aluno programou este código:

precio = float(input("Total compra: "))

if precio > 50:

    total = precio * 0.90

if precio >= 30:

    total = precio

else:

    total = precio + 4.50

print("Total a pagar:", total)
  1. a) Faça o teste de mesa com uma compra de $60{,}\text{R\$}\ 00$. Que preço final o programa imprime? Justifique por que ocorre esse erro de lógica ao encadear as condicionais.
  2. b) Reescreva o programa de forma correta utilizando uma estrutura condicional aninhada ou com elif, e inclua uma validação que avise se for digitado um preço negativo ou zero.
Resolver
Pratica★★★
Observe o seguinte programa, cujo objetivo é pedir a idade ao usuário e determinar se tem idade legal para votar (a partir dos $18$ anos completos): a) Se você tentar…

Observe o seguinte programa, cujo objetivo é pedir a idade ao usuário e determinar se tem idade legal para votar (a partir dos $18$ anos completos):

if edad >= "18":

print("Puedes votar")

edad = input("Dime tu edad: ")

else:

    print("No puedes votar")
  1. a) Se você tentar executar o programa como está, em que linha o interpretador de Python vai parar e por que motivo não chegará a executar a linha do input?
  2. b) Identifique e classifique todos os erros presentes, distinguindo entre erros de sintaxe (que impedem a compilação/interpretação) e erros de tipo ou de lógica durante a execução.
  3. c) Reescreva o código corrigido e introduza uma verificação para evitar que o programa falhe se o usuário digitar a idade com texto (por exemplo, escrevendo «dezoito»).
Resolver
Pratica★★★
Uma equipe desenvolve o software de um caixa registradora usando funções: a) Ao executar este código, o Python produz o erro: TypeError: unsupported operand type(s) for…

Uma equipe desenvolve o software de um caixa registradora usando funções:

def calcular_iva(precio):

    total = precio * 1.21

    pass  # O programador esqueceu-se de adicionar a última linha desta função

def aplicar_descuento(total, rebaja):

    resultado = total - rebaja

    return resultado

precio_base = 100.0

precio_con_iva = calcular_iva(precio_base)

precio_final = aplicar_descuento(precio_con_iva, 10.0)

print("Preço final:", precio_final)
  1. a) Ao executar este código, o Python produz o erro: TypeError: unsupported operand type(s) for -: 'NoneType' and 'float'. Interprete a mensagem e explique exatamente como o valor None viaja pelas variáveis do programa.
  2. b) Um colega afirma: «Para resolver basta mudar a linha da primeira função para print(precio * 1.21)». Refute a afirmação dele explicando a diferença funcional entre mostrar um valor na tela e retornar um valor para a chamada principal.
  3. c) Corrija o código e adicione uma função es_valido(precio) que retorne um valor booleano (True ou False) para verificar que o valor base não seja negativo antes de processá-lo.
Resolver
Pratica★★★
Desenhe o algoritmo para um terminal de recarga e cobrança do refeitório escolar cumprindo os seguintes requisitos técnicos: O cartão parte de um saldo inicial de…

Desenhe o algoritmo para um terminal de recarga e cobrança do refeitório escolar cumprindo os seguintes requisitos técnicos:

  • O cartão parte de um saldo inicial de $20{,}\text{R\$}\ 00$ e cada refeição custa $4{,}\text{R\$}\ 50$.

  • Em um laço de repetição, o programa pergunta quantas refeições se pretende consumir no dia.

  • Se o saldo disponível não for suficiente para pagar a quantidade solicitada, a operação é cancelada, informa-se o valor que falta e o saldo não é modificado.

  • Se houver saldo suficiente, desconta-se o valor e verifica-se se o saldo restante é inferior a $5{,}\text{R\$}\ 00$, mostrando nesse caso o aviso «Saldo baixo: recarregue em breve».

  • O programa deve terminar automaticamente quando o saldo restante for menor que o preço de uma refeição individual ($4{,}\text{R\$}\ 50$).

  • Justifique que tipo de laço de repetição você utilizou e explique como evitar que um usuário digite um número negativo de refeições para aumentar artificialmente o seu saldo.

Resolver
Pratica★★★
Um sistema de classificação calcula a nota final aplicando os seguintes pesos: Trabalho de aula ($20\ \%$), Prática de laboratório ($30\ \%$) e Prova teórica ($50\ \%$).…

Um sistema de classificação calcula a nota final aplicando os seguintes pesos: Trabalho de aula ($20\ \%$), Prática de laboratório ($30\ \%$) e Prova teórica ($50\ \%$). O professor programou a fórmula assim:

trabajo = float(input("Nota trabalho: "))

taller = float(input("Nota laboratório: "))

examen = float(input("Nota prova: "))

nota_final = trabajo * 0.20 + taller * 0.30 + examen * 0.50 / 3

if nota_final > 5:

    print("Aprovado")

else:

    print("Reprovado")
  1. a) Preveja o resultado que o programa vai mostrar se o aluno obtiver $10{,}0$ nas três componentes. Interprete a prioridade de operadores para justificar o valor numérico errado que nota_final armazena.
  2. b) Justifique por que este erro é de lógica e não de sintaxe, e argumente por que os erros lógicos representam um risco muito maior em programas de engenharia ou controle do que os de sintaxe.
  3. c) Detecte um segundo erro lógico na condição do if em relação ao critério habitual de aprovação (aprovar com $5{,}0$) e escreva a versão definitiva do programa corrigido.
Resolver