sábado, 13 de junio de 2015

Crear una Clase en Delphi Números Naturales

Para crear una clase, Primero debemos dar un nombre a nuestra unidad,
Después debemos asignar un nombre a nuestra clase donde  Nuestras funciones 
y procedimientos.
Ej.       Unit Natural;
           Interface
           Type
           ClaseNatural=Class

           End;
           Implementation

           End.

Y esta clase va ser de tipo ClaseNatural.
Luego debemos construir nuestra clase
   Ej.   Unit Natural;
           Interface
           Type
           ClaseNatural=Class
           Constructor crear;
           End;
           Implementation

           End.
Luego ver que funciones o procedimientos van ser de tipo publico o privado.
   Ej.  Unit Natural;
          Interface
          Type
            ClaseNatural=Class
               Private

                Public
                   Constructor crear;
          End;
          Implementation

          End.

Nuestro constructor debe ser de tipo public.
Luego si es necesario usar librerías para realizar algún procedimiento o función
 colocamos .
  
 Ej.   Unit Natural;
            Interface
          // aquí van las librerías que uno debe usar  
        Uses  SysUtils;
        Type
        ClaseNatural=Class
            Private

            Public
                Constructor crear;
        End;
        Implementation

        End.

IMPLEMENTAREMOS FUNCIONES Y PROCEDIMIENTOS A NUESTRA           ClaseNatural





lunes, 19 de enero de 2015

Crear una Clase en Delphi :

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.





lunes, 12 de enero de 2015

Ejercicios Basicos 10 : Cant. Dig. Primos II METODO

function cnatural.cant_dig_primos2(n: integer): integer;
var
c,dig:integer;
begin
c:=0;
while n>0 do
 begin
   dig:= n mod 10;
   if (primo(dig)=true) then
     c:=c+1;
     n:=n div 10;
 end;
 Result:=c;
end;

Llamar :

begin
edit3.Text:=inttostr(clase.cant_dig_primos2(strtoint(edit2.Text)));
end;

Ejercicios Basicos 9 : Cantidad de Digitos Primos


function cant_dig_primos(numeros: integer): integer;
var
r,aux,cont:integer;
begin
 cont:=0;
 while (numeros>0) do
  begin
  r:=numeros mod 10;
  if  r in [ 2,3,5,7 ] then
     begin
     inc(cont);
      end else begin
     end;
   numeros:=numeros div 10;
  end;
  Result:=cont;

end;

Forma de llamar :
begin
edit3.Text:=inttostr(Form1.cant_dig_primos(strtoint(edit2.Text)));
end;

Ejercicios Basicos 8 : Suma Digitos Primos

function suma_dig_primos(numero: integer): integer;
var
suma,r:integer;
begin
suma:=0;
while ( numero > 0 ) do
  begin
 r:= numero mod 10;
 if ( r in [ 2,3,5,7 ] ) then
   begin
   suma:= suma + r ;
    end else begin
   end;
   numero:=numero div 10;
  end;
  Result:=suma;
end;


Forma de llamar :
begin 
edit3.Text:=inttostr(form1.suma_dig_primos(strtoint(edit2.Text)));
end;

Ejercicios Basicos 7 : Suma Digitos Pares


function suma_dig_pares(numero: integer): integer;
var
suma,r:integer;
begin
suma:=0;
   while (numero>0) do
     begin
     r:= numero mod 10;
     if (r mod 2)=0 then
     begin
     suma:=suma+r;
       end else begin
     end;
     numero:=numero div 10;
     end;
     Result:=suma;
end;

Forma de llamar :
begin
edit3.Text:=inttostr(form1.suma_dig_pares(strtoint(edit2.Text)));
end;

Ejercicios Basicos 6 : Digitos Pares

function digitos_pares(numero: integer): integer;
var
residuo,dig,cont:byte;
begin
while (numero>0) do
   begin
  residuo:=numero mod 10;
  if (residuo mod 2)=0 then
    begin
    Inc(cont);
    end;
    numero:=numero div 10;
   end;
   Result:=cont;
end;


Forma de Llamar:
begin
edit1.Text:=inttostr(form1.digitos_pares(strtoint(edit2.Text)));
end;

Ejercicios Basicos 5 : Numero de Digitos

Function cantidad_digitos(numero:byte):byte;
var
acumulador,r:integer;
begin
 acumulador:=0;
 while numero>0 do
  begin
  r:=numero mod 10;
 Inc(acumulador);      //acumulador:=acumulador+1; 
  numero:=numero div 10;
  end;
  Result:=acumulador;
end;
forma de llamar a la función :
begin
edit1.Text:=inttostr(form1.numero_digitos(strtoint(edit1.Text)));
end;

Otra Forma mas Sencilla : 
function cantidad_digitos: integer;
begin
result:=trunc((ln(valor)/ln(10))+1);
end;

forma de llamar a la función :
begin
edit1.Text:=inttostr(form1.cantidad_digitos);
end;

viernes, 2 de enero de 2015

Ejercicios Basicos 4 : Verificar si un numero es primo

function primo: boolean;
var
sw:boolean;
t,n:cardinal;
begin
sw:=true;
t:=2;
n:=valor;
while (t<n) and (sw) do
   begin
     if (n mod t)=0 then
     sw:=false;
      t:=t+1;
   end;
   Result:=sw;
end;



// forma de llamar a la función   
var
r:boolean;
begin
r:=clase.primo;
if (r=true) then
   begin
   edit3.Text:='Es Primo';
     end else begin
      edit3.Text:='No es Primo';
   end;
end;

Ejercicios Basicos 3 : Nuevo Numero con los Digitos Pares , Impares

function  Nuevo_Numero_con_los_Digitos_Pares (numero: integer): integer;
var
dig,nu,inc:integer;
begin
inc:=1;
nu:=0;
while (numero>0) do
  begin
 dig:=numero mod 10;  
 // para digitos pares                          // para digitos impares   
 if (dig mod 2)=0 then                     //      if (dig mod 2)<>0 then  
  begin                                            //         begin
 nu:=nu+(dig*inc);                      //          nu:=nu+(dig*inc);
 inc:=inc*10;                                //         inc:=inc*10;
 end else begin                              //          end else begin                    
  end;                                             //            end;
  numero:=numero div 10;
  end;
  Result:=nu;
end;

 // Forma de llamar a la función

begin
edit3.Text:=inttostr(clase.Nuevo_Numero_con_los_Digitos_Pares(strtoint(edit2.Text)));
end;

begin
edit3.Text:=inttostr(clase.Nuevo_Numero_con_los_Digitos_impares(strtoint(edit2.Text)));
end;

Ejercicios Basicos 2: Verificar si es Capicua

function capicua(numero:integer): boolean;
var
aux:integer; aux2:integer;
begin

aux2:=invertir(valor);       // se llama a la función invertir 
aux:=valor;
if (aux2=aux) then
  begin
  result:=true;
  end else begin
  result:=false;
  end;
end;

 // Formar de llamar a la función  dentro del boton de un formulario

begin
if (clase.capicua(strtoint(edit1.Text))=true) then
  begin
  edit3.Text:='es capicua';
    end else begin
    edit3.Text:='no es capicua';
  end;
end; 

Ejercicios Basicos 1 : Invertir un Numero

Function Invertir(Numero:Integer ):Integer;
var 
Inv,Residuo:Integer;
begin
Inv:=0;
While (Numero>0) do
  begin
Residuo:= Numero mod 10;
Inv:=Inv*10+Residuo;
Numero:=Numero div 10;
 end;

Result:=Inv;

end;

Forma de llamar a la función :
//dentro de un botón en un formulario
begin
edit2.text:=inttostr(clase.Invertir(strtoint(edit1.text)));
end;