unit Uclase_natural;
interface
uses sysutils,math;
type
CEMnumeronatural=class(Exception);
cnatural=class
valor :integer;
public
constructor crear;
procedure asignarvalor(numero:integer);
function obtenervalor:integer;
function numero_digitos:integer;
end;
implementation
{ cnatural }
constructor cnatural.crear;
begin
valor:=0;
end;
procedure cnatural.asignarvalor(numero: integer);
begin
valor:=numero;
end;
function cnatural.obtenervalor: integer;
begin
//obtenervalor:=valor;
result:=valor;
end;
function cnatural.numero_digitos:integer;
var cont,r,n:integer
begin
// result:=trunc(ln(valor)/ln(10)+1);
{ o tambien resulta este pero antes tienes que llamar a la libreria math para usar este codigo }
// result:=trunc(log10(valor)+1);
// de la forma mecanica
n:=valor;
cont:=1;
while ( n>0 ) do
begin
r:= n mod 10;
c:=c+1; // Inc(c);
n:= n div 10;
end;
result:=cont;
end;
end.
No hay comentarios:
Publicar un comentario