









Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Prepara tus exámenes
Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Prepara tus exámenes con los documentos que comparten otros estudiantes como tú en Docsity
Encuentra los documentos específicos para los exámenes de tu universidad
Estudia con lecciones y exámenes resueltos basados en los programas académicos de las mejores universidades
Responde a preguntas de exámenes reales y pon a prueba tu preparación
Consigue puntos base para descargar
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Comunidad
Pide ayuda a la comunidad y resuelve tus dudas de estudio
Ebooks gratuitos
Descarga nuestras guías gratuitas sobre técnicas de estudio, métodos para controlar la ansiedad y consejos para la tesis preparadas por los tutores de Docsity
proyecto de componentes visuales de Delphi Embarcadero que define como objeto a un número natural donde su único atributo es el valor
Tipo: Guías, Proyectos, Investigaciones
1 / 17
Esta página no es visible en la vista previa
¡No te pierdas las partes importantes!










a) Constructores constructor TPersona.Create(Nombre: string; Edad: Integer); begin FNombre := Nombre; FEdad := Edad; end; b) Destructor destructor TPersona.Destroy; begin // Código para liberar recursos inherited Destroy; end; c) Modificadores procedure TPersona.SetNombre(Nombre: string); begin FNombre := Nombre; end; d) Selectores function TPersona.GetNombre: string; begin Result := FNombre; end;
El encapsulamiento es el mecanismo de agrupar los datos(atributos) y los métodos que operan sobre esos datos en una única unidad(clase) y ocultar los detalles de implementación del mundo exterior
x:=valor; c:=0; result:=0; while x>0 do begin d:= x mod base; //result:= result10+d; //sin invertir result:= trunc(dpower(10,c))+result; c:=c+1; x := x div base; end; end; function NNatural.ContarDigitos: byte; var x:word; begin x:=valor; if x<=0 then begin result:=1; end else begin result := trunc(log10(x)+1); end; end; constructor NNatural.creaclase; begin valor:=0; end; function NNatural.delDigito(p: byte): word; begin end;
function NNatural.DigitoMayor: word; var x:word; d:byte; begin x:= valor; result:=0; while x>0 do begin d:= x mod 10; if result< d then begin result:=d; end; x:= x div 10; end; end; function NNatural.digitosPares: word; var x:word; d,c:byte; begin x:=valor; c:=0; result:=0; while x>0 do begin d:= x mod 10; if d mod 2=0 then begin result:= trunc(d* power(10,c))+result; c:=c+1; end; x:=x div 10; end; end; function NNatural.digitosimPares: word; var x:word; d,c:byte; begin x:=valor; c:=0; result:=0;
begin d:= x mod 10; if d in [2,3,5,7] then begin result:= result+ trunc(d*power(10,c)); c:=c+1; end; x:=x div 10; end; end; function NNatural.SumarDigitos: word; var d:byte; x:word; begin x:=valor; result :=0; while x>0 do begin d:= x mod 10; result := result + d; x:=x div 10; end; end; function NNatural.getvalue: word; begin result:= valor; end; function NNatural.invertir: word; var d:byte; x:word; begin x:=valor; result:=0; while x>0 do begin d:=x mod 10;
result:=result10+d; x:=x div 10; end; end; function NNatural.multiplode(m: byte): word; var x:word; d,c: byte; begin x:=valor; result:=0; c:=0; while x>0 do begin d:= x mod 10; if d mod m=0 then begin result:= trunc(dpower(10,c))+result; c:=c+1; end; x:=x div 10; end; end; function NNatural.obtenerDigPos(p: byte): byte; var x:word; d,c:byte; begin x:=valor; c:=0; result:=0; while x>0 do begin d:= x mod 10; c:=c+1; if c=p then begin result:=d; end; x:= x div 10; end; end;
if (d <> dmayor) or (c <> p) then begin x := x + d * Trunc(Power(10, c)); //se vuelve a crear x menos el digito para el siguiente ciclo c := c + 1; end else begin p := 255; // Invalidar posición p para solo eliminar una instancia del dígito mayor end; xaux := xaux div 10; end; end; end; procedure NNatural.setvalue(v: word); begin valor:=v; end; end.
unit Unit3; interface uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, UNC, Vcl.StdCtrls, Vcl.Menus, Vcl.Buttons; type TForm3 = class(TForm) Label1: TLabel; Label2: TLabel; Edit1: TEdit; Edit2: TEdit; Button1: TButton; MainMenu1: TMainMenu; PromedioPrimo1: TMenuItem; PromedioPrimo2: TMenuItem; Ejercicio21: TMenuItem; BitBtn1: TBitBtn; ejercicio31: TMenuItem; ejercicio41: TMenuItem; Ejercicio51: TMenuItem; ejercicio61: TMenuItem; Ejercicio71: TMenuItem; Ejercicio81: TMenuItem; Ejercicio91: TMenuItem; Ejercicio101: TMenuItem; Ejercicio111: TMenuItem; Ejercicio121: TMenuItem; procedure Label1Click(Sender: TObject); procedure Button1Click(Sender: TObject); procedure Label2Click(Sender: TObject); procedure PromedioPrimo2Click(Sender: TObject); procedure Ejercicio21Click(Sender: TObject); procedure ejercicio31Click(Sender: TObject); procedure ejercicio41Click(Sender: TObject); procedure Ejercicio51Click(Sender: TObject); procedure ejercicio61Click(Sender: TObject);
edit2.Text:=inttostr(clsNN.invertir); end; procedure TForm3.Ejercicio21Click(Sender: TObject); begin edit2.Text:= inttostr(clsNN.digitosPares ); end; procedure TForm3.ejercicio31Click(Sender: TObject); begin clsNN.setvalue(clsNN.digitosPares); edit2.Text:= inttostr(clsNN.DigitoMayor); end; procedure TForm3.ejercicio41Click(Sender: TObject); var base:integer; begin base:= strtoint(inputbox('cambio de base','escoger base','')); edit2.Text:=inttostr( clsNN.cambiardebase(base)); end; procedure TForm3.Ejercicio51Click(Sender: TObject); begin edit2.Text:=inttostr( clsNN.cambiardebase(8)); end; procedure TForm3.ejercicio61Click(Sender: TObject); begin clsNN.setvalue(clsNN.digitosimPares ); edit2.Text:= floattostr(clsNN.SumarDigitos/ clsNN.ContarDigitos ); end; procedure TForm3.Ejercicio71Click(Sender: TObject); begin if clsNN.getvalue =clsNN.invertir then begin edit2.text:= 'es capicua'; end else begin edit2.text:= 'no es capicua';
end; end; procedure TForm3.Ejercicio81Click(Sender: TObject); begin clsNN.setvalue(clsNN.digitosPares); edit2.Text:=inttostr(clsNN.DigitoMayor); end; procedure TForm3.Ejercicio91Click(Sender: TObject); begin edit2.Text:= inttostr(clsNN.multiplode(3)); end; procedure TForm3.Label1Click(Sender: TObject); begin clsNN:= NNatural.creaclase; showmessage('clase creada'); end; procedure TForm3.Label2Click(Sender: TObject); begin edit2.Text:= inttostr((clsNN.getvalue)); end; procedure TForm3.PromedioPrimo2Click(Sender: TObject); var n,d,a:word; promedio:real; begin clsNN.setvalue(clsNN.DigitosPrimos); promedio:= clsNN.SumarDigitos/clsNN.ContarDigitos; edit2.Text:= floattostr(promedio); end; end.