sábado, 24 de enero de 2015
jueves, 22 de enero de 2015
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;
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;
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;
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;
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;
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;
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;
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;
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;
Suscribirse a:
Entradas (Atom)