(1 ponto) Faça um programa que recebe valores inteiros digitados pelo usuário e imprima seus quadrados (um por linha) até que
, sem aspas, seja digitado.
EXEMPLO
Entrada
Saída
-1
1
0
0
1
1
s
EXEMPLO
| Entrada | Saída |
| -1 | 1 |
| 0 | 0 |
| 1 | 1 |
| s |
Passo 1
O que o enunciado pede e o que ele dá:
- Pede um programa que leia valores digitados pelo usuário, um por linha.
- Para cada valor inteiro lido, o programa deve imprimir o seu quadrado (um resultado por linha).
- O programa deve parar de ler e terminar quando for digitado exatamente o caractere
(sem aspas). - Exemplo dado (linhas de entrada e saída):
- Entrada:
→ Saída: - Entrada:
→ Saída: - Entrada:
→ Saída: - Entrada:
→ programa encerra (não imprime nada para essa linha)
- Entrada:
Passo 2
Escolha do método:
- A maneira mais direta é ler linha a linha em um laço infinito, verificar se a linha é
e, se não for, converter a linha para inteiro e imprimir o quadrado. - Vou usar Python porque é simples para manipular strings, conversão para inteiro e impressão, e é comumente aceita em exercícios assim.
Passo 3
Como ler entrada e detectar o fim:
- Usar a função built-in \verb|input()| para ler uma linha do usuário; ela retorna uma string.
- Aplicar \verb|.strip()| para remover espaços extras do início/fim da linha: assim, se o usuário digitar
sainda será interpretado como. - Comparar a string com
: se igual, terminar o laço (usar \verb|break|). - Se diferente de
, tentar converter a string para inteiro com \verb|int(s)|.
Passo 4
Cálculo do quadrado e impressão:
- Seja
o inteiro lido. O quadrado de é . Em código Python isso pode ser feito com \verb|n*n| ou \verb|n**2|. - Em Python, \verb|print(valor)| escreve \verb|valor| seguido de nova linha, exatamente o que precisamos (um resultado por linha).
- Observação sobre erros: \verb|int(s)| lança um erro se \verb|s| não for representação válida de inteiro. Pelo enunciado, as entradas serão inteiros ou
, então não precisamos tratar outros casos. Se quiser, dá para envolver em \verb|try/except|, mas não é necessário aqui.
Passo 5
Passo a passo do algoritmo em pseudo-etapas que você pode aplicar na prova:
- Iniciar um laço infinito: \verb|while True:|
- Ler a linha: \verb|s = input().strip()|
- Se \verb|s == ‘s’| então \verb|break| (termina o programa).
- Senão, converter: \verb|n = int(s)| (agora
é o inteiro). - Calcular o quadrado: \verb|q = n * n| (isto é
). - Imprimir: \verb|print(q)|.
- Voltar ao passo 2.
Passo 6
Exemplo manual com o laço (para fixar):
- Entrada:
. \verb|s.strip()| resulta em que não é . \verb|n = int("-1")| dá . Quadrado . Imprime . - Entrada:
. Converte para . Imprime . - Entrada:
. Converte para . Imprime . - Entrada:
. Detecta e o programa para (não imprime).
Passo 7
Dicas rápidas para a prova:
- Lembre-se de usar \verb|.strip()| para evitar problemas com espaços.
- Teste mentalmente com números negativos e zero; a fórmula
sempre retorna um número não-negativo. - O programa deve aceitar várias linhas até a linha com
.
Resposta
while True:
s = input().strip()
if s == 's':
break
n = int(s)
print(n * n)