Ir ao conteúdo
  • Cadastre-se

Problema ao retornar resultados


hagtha_lana

Posts recomendados

Pessoal,bom dia!
O professor passou o seguinte exercicio:

Crie uma biblioteca matemática que contenha as funções para encontrar o
fatorial de um número, identificar se o número é primo e identificar se o
número é perfeito. Em seguida crie um programa que utilize essas funções.
Para isso, apresente um menu para o usuário escolher a função que deseja executar,
com as seguintes funcionalidades:
(1) Fatorial
(2) Primo
(3) Perfeito
(4) Fim

Então criei as seguintes UNITS:

Unit Fatorial;InterfaceFunction Fat(Num:Integer):Integer;ImplementationVarN,I:Integer;Function Fat(Num:Integer):Integer;BeginI:=N;While(I>1)doBeginN:=N*(I-1);I:=I-1;End;End.
Unit NumPrimos;InterfaceFunction NPrimos(X:Integer):Integer;ImplementationVari,cont:Integer;Function NPrimos (X:Integer):Integer;Begincont:=0;For i:=0 to X doBeginIf X mod i=0 docont:=cont+1;End;If contContinuação.......
Unit NumPrimos;InterfaceFunction NPrimos(X:Integer):Integer;ImplementationVari,cont:Integer;Function NPrimos (X:Integer):Integer;Begincont:=0;For i:=0 to X doBeginIf X mod i=0 docont:=cont+1;End;If cont<=2 thenBeginwriteln('O numero ' , X , ' e primo');ENd;End.
Unit NumPerfeito;InterfaceFunction NPerfeito (Num:Integer):Integer;ImplementationVarcontador, somadiv:Integer;Function NPerfeito(Num:Integer):Integer;Beginsomadiv:=0;for contador:=1 to (Num div 2) doBeginIf (Num Mod contador) = 0 thensomadiv:=somadiv+contador;End;if (Num = somadiv) thenwriteln('o numero : ' , Num , ' é perfeito');End;End.
Unit FinalPrograma;IntefaceProcedure Fim(Numero:Integer);ImplementationProcedure Fim(Numero:Integer);BeginWriteln('Encerrando o programa');End;End.

Programa Principal

Program Questao_01;Uses Fatorial,NumPerfeito,NumPrimos,FinalPrograma,CRT;VarNum,resposta:Integer;BeginRepeatclrscr;Writeln('Digite um numero');Readln(Num);Writeln('Escolha uma opcao');Writeln(' 01 - Fatorial');Writeln(' 02 - Numeros Primos');Writeln(' 03 - Numero Perfeito');Writeln(' 04 - Encerrar Programa');Readln(resposta);Case resposta of1 : Fat(Num);2 : NPrimos(Num);3 : NPerfeito(Num);4 : Fim(Num);End;Until(resposta=4);End.

Ao compilar o programa principal executa normal
porém ao informar um número e escolher uma opção do menu (fatorial,
Numero Primo ou Numero perfeito) o resultado não é apresentado.
O que estou fazendo de errado? me ajuda ae gente!

Link para o comentário
Compartilhar em outros sites

  • 2 semanas depois...
  • Membro VIP

Olá.
 

 

1) DETALHES TÉCNICOS

Você teoricametne está carregando as units corretamente, mas não está "usando de acordo com as expecificações" dela.

Ex.:

Como o Fatorial funciona:

- Você envia um valor pelo parãmentro e RECEBE A RESPOSTA PELO PRÓPRIO PROCEDIMENTO (não é uma function?), ou seja, no programa você está simplesmente chamando a função, mas está esquecendo de pegar a resposta e exibir o resultado...

 

Obs.: DETALHE PRINCIPAL --> É preciso dar um "pause" após cada comando, pois senão o programa vai perdir um novo número e você não vai ver a resposta. Ex.:

...  end; //fim caseReadKey; //aguarda uma tecla ser pressionada (pode ser "readln;" tb, este aguarda um ENTER)Until(resposta=4);

2) QUANTIDADE DE BIBLIOTECAS

Crie uma biblioteca matemática que contenha as funções para encontrar

 
Creio que seja somente "uma" com todas, e não uma biblioteca para cada procedimento...

 

***

 

No aguardo.

Link para o comentário
Compartilhar em outros sites

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...