Crie um programa(código) na linguagem scilab para resolver a questão a seguir: Seja a função sucessor definida como s(n)=n+1. Escreva um programa que leia vários números dados pelo usuário, até o usuário inserir dois números consecutivos tais que o segundo seja o sucessor do primeiro. Exceto para o número que satisfaça o critério de parada, o programa deve exibir o quadrado de cada valor lido que seja positivo e par. Para esclarecer ainda mais, quem deve ser positivo e par é o valor lido, e não o quadrado dele.

Passo 1

Beleza, vamos entender o que a questão está pedindo. Temos que criar um programa em Scilab que vai ler vários números digitados pelo usuário. A parada do programa acontece quando o usuário inserir dois números seguidos onde o segundo é o sucessor do primeiro, ou seja, o segundo número é igual ao primeiro mais um ( s(n) = n + 1). Enquanto isso não acontece, o programa deve verificar cada número lido: se o número for positivo e par, ele deve exibir o quadrado desse número.
Vamos precisar conhecer conceitos básicos de entrada e saída de dados, estruturas de repetição (como loops), condicionais (como if), e operadores aritméticos em Scilab para resolver esse exercício.

Passo 2

Primeiro, vamos iniciar o programa definindo duas variáveis que vão armazenar os números digitados pelo usuário. Vamos precisar de uma variável para o número anterior e outra para o número atual. No começo, vamos pedir ao usuário para digitar o primeiro número.
prev = input("Digite um número: ");
Aqui, usamos a função input para ler o número que o usuário digita e armazenamos na variável prev.

Passo 3

Agora, precisamos entrar em um loop que continuará pedindo números até que a condição de parada seja atendida (ou seja, quando o segundo número for o sucessor do primeiro). Para isso, usamos um loop while que continua indefinidamente até encontrarmos dois números consecutivos onde o segundo é o sucessor do primeiro.
while %t
    curr = input("Digite um número: ");
O while %t cria um loop infinito que só será interrompido com um comando de parada (break).

Passo 4

Dentro do loop, vamos verificar se o número atual (curr) é o sucessor do número anterior (prev). Para isso, comparamos se curr é igual a prev + 1.
    if curr == prev + 1 then
        break;
Se a condição curr == prev + 1 for verdadeira, utilizamos o comando break para sair do loop, encerrando o programa.

Passo 5

Se a condição de parada não for atendida, o programa deve verificar se o número atual é positivo e par. Para isso, usamos outra estrutura if dentro do loop.
    if curr > 0 & mod(curr, 2) == 0 then
        quadrado = curr^2;
        disp(quadrado);
    end
Aqui, curr > 0 verifica se o número é positivo, mod(curr, 2) == 0 verifica se é par (o resto da divisão por 2 é zero), e curr^2 calcula o quadrado do número. Se ambas as condições forem verdadeiras, exibimos o quadrado usando disp.

Passo 6

Por fim, após verificar e possivelmente exibir o quadrado, precisamos atualizar a variável prev para que, na próxima iteração, possamos comparar o novo número com o atual.
    prev = curr;
end
Isso garante que sempre estaremos comparando o número anterior com o próximo número digitado pelo usuário.

Resposta

Abaixo está o código completo em Scilab que realiza o que a questão pediu:
// Inicializa lendo o primeiro número
prev = input("Digite um número: ");

// Inicia o loop
while %t
    // Lê o número atual
    curr = input("Digite um número: ");
    
    // Verifica se o atual é o sucessor do anterior
    if curr == prev + 1 then
        break;
    end
    
    // Verifica se o número é positivo e par
    if curr > 0 & mod(curr, 2) == 0 then
        quadrado = curr^2;
        disp(quadrado);
    end
    
    // Atualiza o número anterior
    prev = curr;
end

disp("Programa encerrado porque o segundo número é o sucessor do primeiro.");
Esse programa continuará pedindo números até que você digite dois números seguidos onde o segundo é exatamente o primeiro mais um. Enquanto isso não acontecer, sempre que um número for positivo e par, ele exibirá o quadrado desse número.

Exercícios relacionados