Crie um programa(código) na linguagem scilab para resolver a questão a seguir: Escreva uma função que, dado um número inteiro não-negativo, retorne o fatorial desse número.
Passo 1
Beleza, vamos resolver esse exercício juntos! A gente precisa criar uma função na linguagem Scilab que, dado um número inteiro não-negativo, retorne o fatorial desse número. Para isso, vamos usar conceitos de programação básica e entender bem o que é o fatorial.
Passo 2
Primeiro, vamos entender o que é o fatorial. O fatorial de um número inteiro não-negativo $ n $ é o produto de todos os números inteiros positivos menores ou iguais a $ n $. É representado por $ n! $. Por exemplo:
Sabemos também que $ 0! = 1 $.
Passo 3
Agora, vamos pensar em como implementar isso no Scilab. Precisamos criar uma função que receba um número inteiro não-negativo e calcule seu fatorial. Para isso, podemos usar uma estrutura de repetição que multiplica os números de 1 até $ n $.
Passo 4
Vamos definir a função no Scilab. A estrutura básica de uma função no Scilab é:
function [saída] = nome_da_função(entrada)
// corpo da função
endfunction
No nosso caso, vamos chamar a função de
fatorial
e ela receberá um número n
.Passo 5
Dentro da função, primeiramente, vamos verificar se o número é não-negativo. Se for negativo, podemos retornar uma mensagem de erro. Se for zero, retornamos 1. Caso contrário, calculamos o fatorial.
Passo 6
Para calcular o fatorial, usamos um laço
for
que multiplica os números de 1 até n
. Vamos armazenar o resultado em uma variável que vai acumulando o produto.Passo 7
Agora, juntando tudo, fica assim o código da função:
function [result] = fatorial(n)
// Verifica se o número é não-negativo
if n < 0 then
disp("Erro: O número deve ser não-negativo.");
result = -1;
elseif n == 0 then
result = 1;
else
result = 1;
for i = 1:n
result = result * i;
end
end
endfunction
Resposta
Pronto! A função
fatorial
está criada e pode ser usada para calcular o fatorial de qualquer número inteiro não-negativo que você passar como argumento. Por exemplo, fatorial(5)
retornará 120
.