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á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 (
). 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.