Crie um programa(código) na linguagem scilab para resolver a questão a seguir: Seja a função sucessor definida como
. 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 n > 0
n < 0 $).
if
. Um número é par se o resto da divisão por 2 for zero, ou seja, $ n % 2 == 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