Jump to content


Willian Faria

Member Since 26/04/2011
Offline Last Active 06/05/2011, 14:45
-----

Posts I've Made

In Topic: Fatorial

26/04/2011, 10:39



Alguém pode me explicar como faço esse exercicios, ou tenha exemplos para me mandar?
Dado um número N, calcular seu fatorial:
N!= N x (N-1) x (N - 2) x .....1
0! = 1 (regra)
1! = 1
2! = 2 x (2 - 1) = 2 x 1 = 2
3! = 3 x (3 - 1) x (3 - 2) = 3 x 2 x 1 = 6
4! = 4 x (4 - 1) x (4 - 2) = 4 x 3 x 2 x 1 = 24



Para fazeres o Factorial de um Numero, tens de fazer uma Função que se chama a si propria.
Para te podermos ajudar melhor, posta aqui o Codigo que ja tens


Vê se serve:
program factorial;

uses crt;

var n: integer;
    c: char;

function calcularfatorial: integer;
var i: integer;
begin
  calcularfatorial:= 1;
  if n=0 then calcularfatorial:= 1
  else
  begin
    for i:=n+1 downto 2 do calcularfatorial:= calcularfatorial*(i-1);
  end;
end;


begin
  repeat
  clrscr;
  writeln('Programa para calcular factorial');
  write('Digite um numero inteiro: ');
  readln(n);
  writeln('O factorial de ', n,' e ', calcularfatorial);
  writeln('Deseja sair do programa ? (s/n)');
  readln(c);
  until c='s';
end.


Ta ai a função para o fatoreal:

function Fat(N{e}: integer): integer;
begin
if N = 0 then
Fat := 1
else
Fat := N * Fat(N-1)
end;


ou pode usar assim:

Program Exemplo ;
var fatorial: integer ;
i: integer ;
N: Integer;
Begin
// Solicita o valor de N
write('Informe o Valor de N: ');
readln(N);

// Calcula o fatorial
fatorial:= 1;
for i:= 1 to N do
begin
fatorial:= fatorial * i;
end;

// Mostra resultado
write('O Valor de ', N, ' Fatorial é: ', fatorial);
End.

ou assim:

Program Exemplo ;
Var n: integer;

// Função recursiva que, dado n, retorna n!
Function Fatorial(n:integer): integer ;
Begin
if n > 1 then
Fatorial := n * Fatorial(n-1)
else
Fatorial:= 1;
End;

// Corpo do programa principal
Begin
write('Entre com o valor de n: ');
readln(n);
writeln('Valor de fat(n) => ', Fatorial(n));
readkey;
End.

In Topic: Algoritmo Recursivo

26/04/2011, 10:35

Olá estou com uma dúvida em um algoritmo com procedimento recursivo, o algoritmo é esse:


Faça uma função Pascal recursiva que eleve um número N a uma determinada potência E inteira e positiva. Considere a seguinte definição recursiva da função.

eleva(N, E) = 1, se E=0;
eleva(N, E)= N*eleva(N, E-1), se E>0.


em seguida tenho que transformar essa função recursiva em um procedimento Pascal recursivo utilizando passagem de parâmetro por referência.



Alguém poderia me ajudar, me dar uma luz como se faz, sou novo com Linguagens de programação, ainda não tenho muita habilidade com algoritmos, estou praticando muito, com apostilas do apostilando.com, sobre estruturas de decisões e estrutura de repetições,iterações, porém na Recursividade eu fico perdido.


Ficaria Muito grato

e Boa tarde a Todos.


program resposta;
const
Terminar = 0;
function eleva(X{e}:Real; Y{e}: Integer): Real;
begin
if Y=0 then eleva:=1
else eleva:= X*eleva(X, Y-1);
end;
var
Num: Real;
Expoente: Integer;
begin
write('Diga um número e seu expoente: ');
readln(Num, Expoente);
while Num<>Terminar do
begin
writeln(Num:4:2, ' ^ ', Expoente, ' = ', eleva(Num, Expoente):6:2);
write('Diga um número e seu expoente: ');
readln(Num, Expoente);
end;
end.

In Topic: Raiz Quadrada Potenciação,Expoente.

26/04/2011, 10:32

Ta ai, acredido que é isso que esta procurando.

program raz;
var n1,soma,resultado, resultado2:real;
begin
writeln('digite o numero');
readln(n1);
soma:=n1+n1;
resultado:= sqr(soma);
resultado2:= sqrt(soma);
writeln('O Numeros é:',n1:2:2');
writeln('A soma dos Numeros é:',soma:2:2');
writeln('A Raiz da soma dos Numeros é:',resultado2:2:2');
writeln('O Quadrado da soma dos Numeros é:',resultado:2:2');
readln;
end.

In Topic: Verificar Se É Palindrome

26/04/2011, 10:05

{Programa para verificar se uma cadeia de caracteres é palindromo}
program palindromo;
var
St : string;
i, Comp : integer;
begin
writeln('Digite a palavra');
readln(St);
Comp := Length(St);
i := 1;
while (St[i] = St[Comp - i + 1]) and (i <= Comp div 2) do
i := i + 1;
if i > Comp div 2 then
writeln(St,' eh palindromo')
else
writeln(St,' nao eh palindromo');
end.

In Topic: Ajuda... Pascal Zim!

26/04/2011, 09:22

A função abaixo inverte uma string caractere a caractere, utilizando a indexação das componentes.
Para que a string retornada possa ser acessada globalmente, é necessário que se atribua a sua componente 0
(zero) uma referência ao seu comprimento que, evidentemente, é igual ao da string argumento.

function InverteString(var s : string) : string;
var
i, c : integer;
Aux : string;
begin
c := Length(s);
for i := 1 to c do
Aux[i] := s[c – i + 1];
Aux[0] := Chr( c );
InverteString := Aux;
end;

IPB Skin By Virteq