(1 ponto) Faça um programa que recebe valores inteiros digitados pelo usuário e imprima seus quadrados (um por linha) até que \mathbf{s}, sem aspas, seja digitado.
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 \text{s} (sem aspas).
  • Exemplo dado (linhas de entrada e saída):
    • Entrada: -1 → Saída: 1
    • Entrada: 0 → Saída: 0
    • Entrada: 1 → Saída: 1
    • Entrada: \text{s} → programa encerra (não imprime nada para essa linha)

Passo 2

Escolha do método:
  • A maneira mais direta é ler linha a linha em um laço infinito, verificar se a linha é \text{s} 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 s ainda será interpretado como \text{s}.
  • Comparar a string com \text{s}: se igual, terminar o laço (usar \verb|break|).
  • Se diferente de \text{s}, tentar converter a string para inteiro com \verb|int(s)|.

Passo 4

Cálculo do quadrado e impressão:
  • Seja n o inteiro lido. O quadrado de n é n^2. 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 \text{s}, 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:
  1. Iniciar um laço infinito: \verb|while True:|
  2. Ler a linha: \verb|s = input().strip()|
  3. Se \verb|s == ‘s’| então \verb|break| (termina o programa).
  4. Senão, converter: \verb|n = int(s)| (agora n é o inteiro).
  5. Calcular o quadrado: \verb|q = n * n| (isto é n^2).
  6. Imprimir: \verb|print(q)|.
  7. Voltar ao passo 2.

Passo 6

Exemplo manual com o laço (para fixar):
  • Entrada: "-1". \verb|s.strip()| resulta em "-1" que não é \text{s}. \verb|n = int("-1")| dá n=-1. Quadrado n^2 = (-1)^2 = 1. Imprime 1.
  • Entrada: "0". Converte para n=0. Imprime 0.
  • Entrada: "1". Converte para n=1. Imprime 1.
  • Entrada: "s". Detecta \text{s} 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 n^2 sempre retorna um número não-negativo.
  • O programa deve aceitar várias linhas até a linha com \text{s}.

Resposta

while True:
    s = input().strip()
    if s == 's':
        break
    n = int(s)
    print(n * n)