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ário 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 ou positivo e par ou negativo e ímpar. Para esclarecer ainda mais, quem deve ser ou positivo e par ou negativo e ímpar é o valor lido, e não o quadrado dele.

Passo 1

Beleza, vamos lá! O exercício pede para criar um programa em Scilab que lê vários números do usuário até que dois números consecutivos sejam inseridos, onde o segundo numero é o sucessor do primeiro, ou seja, $ s(n) = n + 1 $. Além disso, o programa deve exibir o quadrado de cada número lido que seja positivo e par ou negativo e ímpar, exceto o número que faz a parada. Para resolver isso, vamos precisar entender como fazer laços de repetição, condições e operações básicas em Scilab.

Passo 2

Primeiro, precisamos ler números do usuário continuamente até que a condição de parada seja atingida. Em Scilab, podemos usar um loop while para isso. O loop continuará executando enquanto a condição especificada for verdadeira.

Passo 3

Dentro do loop, vamos armazenar o número anterior para comparar com o número atual e verificar se o segundo é o sucessor do primeiro. Inicialmente, o número anterior pode ser definido como vazio ou um valor que não interfere na primeira comparação.

Passo 4

Para verificar se um número é positivo e par ou negativo e ímpar, vamos usar condições if. Um número é par se o resto da divisão por 2 for zero, ou seja, $ n % 2 == 0 n % 2 == 0 Éíéé n > 0 n > 0 n < 0 $).

Passo 5

Quando encontramos um número que atende aos critérios (positivo e par ou negativo e ímpar), vamos calcular o quadrado desse número, ou seja, $ n^2 $, e exibir o resultado usando a função disp() em Scilab.

Passo 6

A condição de parada ocorre quando dois números consecutivos são inseridos, onde o segundo é o sucessor do primeiro ($ s(n) = n + 1 $). Assim, dentro do loop, após ler um novo número, vamos comparar com o número anterior para verificar essa condição. Se for verdadeiro, o loop é encerrado.

Passo 7

Por fim, vamos encapsular tudo isso em um programa que realiza esses passos de forma sequencial e contínua, garantindo que o programa funcione conforme o solicitado.

Resposta

// Inicializa a variável para armazenar o número anterior
prev = [];

while %t do
    // Solicita ao usuário que insira um número
    numero = input("Insira um número: ");
    
    // Verifica se prev não está vazio para comparar
    if ~isempty(prev) then
        // Verifica se o número atual é o sucessor do anterior
        if numero == prev + 1 then
            disp("Dois números consecutivos encontrados. Programa encerrado.");
            break; // Encerra o loop
        end
    end
    
    // Verifica se o número é positivo e par
    if (numero > 0) & (mod(numero, 2) == 0) then
        quadrado = numero^2;
        disp("Quadrado do número positivo e par: " + string(quadrado));
    // Verifica se o número é negativo e ímpar
    elseif (numero < 0) & (mod(numero, 2) ~= 0) then
        quadrado = numero^2;
        disp("Quadrado do número negativo e ímpar: " + string(quadrado));
    end
    
    // Atualiza o número anterior
    prev = numero;
end

Exercícios relacionados