Exercícios: Programação textual
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?
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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$.
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.
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.
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.
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)).
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.
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)
- 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.
- 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.
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)
- 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.
- 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.
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")
- 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? - 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.
- 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»).
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)
- 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 valorNoneviaja pelas variáveis do programa. - 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. - c) Corrija o código e adicione uma função
es_valido(precio)que retorne um valor booleano (TrueouFalse) para verificar que o valor base não seja negativo antes de processá-lo.
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.
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")
- 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_finalarmazena. - 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.
- c) Detecte um segundo erro lógico na condição do
ifem relação ao critério habitual de aprovação (aprovar com $5{,}0$) e escreva a versão definitiva do programa corrigido.