Crie um programa(código) na linguagem scilab para resolver a questão a seguir: Escreva um programa que leia vários números inteiros dados pelo usuário, até o usuário inserir 5 números positivos, e exiba, no final, o maior e o menor dos números negativos.
Passo 1
Beleza, vamos começar entendendo o que a gente precisa fazer aqui. A questão pede para criar um programa em Scilab que lê vários números inteiros fornecidos pelo usuário. O programa deve continuar lendo números até que o usuário tenha inserido 5 números positivos. No final, o programa deve mostrar qual foi o maior e o menor entre os números negativos que foram digitados. Para resolver isso, vamos precisar entender como ler entradas do usuário, usar estruturas de repetição e comparar valores em Scilab.
Passo 2
Primeiro, precisamos inicializar algumas variáveis. Vamos precisar contar quantos números positivos foram inseridos, então vamos criar uma variável chamada
contPositivos
que começa em 0. Além disso, vamos precisar armazenar os números negativos para depois encontrar o maior e o menor deles. Para isso, vamos usar duas variáveis: maiorNegativo
e menorNegativo
, que inicialmente podem ser definidas como valores nulos ou com um valor que facilite a comparação.Passo 3
Agora, vamos configurar um laço de repetição que continua executando até que
contPositivos
chegue a 5. Em Scilab, podemos usar um while
para isso. Dentro desse laço, vamos ler um número inteiro fornecido pelo usuário.Passo 4
Após ler o número, precisamos verificar se ele é positivo ou negativo. Se for positivo, simplesmente incrementamos
contPositivos
em 1. Se for negativo, vamos comparar esse número com o maiorNegativo
e o menorNegativo
para atualizar esses valores conforme necessário.Passo 5
Para comparar e atualizar os valores negativos, vamos usar condições
if
. Se o número negativo atual for maior que o maiorNegativo
armazenado, atualizamos maiorNegativo
. Da mesma forma, se for menor que o menorNegativo
, atualizamos menorNegativo
.Passo 6
Depois que o laço de repetição termina (ou seja, quando já tivemos 5 números positivos), vamos exibir na tela qual foi o maior e o menor número negativo registrado. Para isso, usamos a função
disp
do Scilab, que exibe mensagens para o usuário.Passo 7
Finalmente, vamos testar o programa para garantir que tudo está funcionando conforme o esperado. Inserindo diferentes números positivos e negativos, verificamos se o programa corretamente conta até 5 positivos e identifica o maior e o menor entre os negativos.
Resposta
Aqui está o código completo em Scilab que resolve o problema:
// Inicialização das variáveis
contPositivos = 0;
maiorNegativo = -%inf;
menorNegativo = %inf;
// Laço de repetição
while contPositivos < 5
// Leitura do número pelo usuário
numero = input("Digite um número inteiro: ");
// Verificação se o número é positivo
if numero > 0 then
contPositivos = contPositivos + 1;
// Se for negativo
elseif numero < 0 then
// Atualiza o maior negativo
if numero > maiorNegativo then
maiorNegativo = numero;
end
// Atualiza o menor negativo
if numero < menorNegativo then
menorNegativo = numero;
end
end
end
// Exibição dos resultados
if maiorNegativo == -%inf & menorNegativo == %inf then
disp("Nenhum número negativo foi digitado.");
else
disp("Maior número negativo: " + string(maiorNegativo));
disp("Menor número negativo: " + string(menorNegativo));
end
Explicação rápida do código:
-
Inicialização: Começamos definindo
contPositivos
como 0 emaiorNegativo
como menos infinito emenorNegativo
como mais infinito para garantir que qualquer número negativo digitado será maior ou menor que esses valores iniciais. -
Laço
while
: Continua pedindo números enquantocontPositivos
for menor que 5. -
Entrada do usuário: Usamos
input
para ler o número digitado. -
Condições:
- Se o número for positivo, incrementamos
contPositivos
. - Se for negativo, verificamos se ele é maior que
maiorNegativo
ou menor quemenorNegativo
e atualizamos conforme necessário.
- Se o número for positivo, incrementamos
-
Exibição: Após sair do laço, verificamos se algum número negativo foi digitado e mostramos o maior e o menor negativo encontrados.
Esse programa garante que o usuário possa inserir números indefinidamente até que 5 positivos sejam digitados, e ao final, fornece as informações solicitadas sobre os números negativos.