Docsity
Docsity

Prepara tus exámenes
Prepara tus exámenes

Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity


Consigue puntos base para descargar
Consigue puntos base para descargar

Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium


Orientación Universidad
Orientación Universidad


programacion orientada a objeto, Guías, Proyectos, Investigaciones de Introducción a la Informática

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

2023/2024

Subido el 04/07/2024

alejandro-peinado-bazan
alejandro-peinado-bazan 🇧🇴

2 documentos

1 / 17

Toggle sidebar

Esta página no es visible en la vista previa

¡No te pierdas las partes importantes!

bg1
Universidad autónoma Gabriel Rene
Moreno
FICCT
Prectico#11
Materia : Introducción a la Informatica
Docente : Ing. Angelica Garzon
Alumno : Alejandro Peinado Bazan
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff

Vista previa parcial del texto

¡Descarga programacion orientada a objeto y más Guías, Proyectos, Investigaciones en PDF de Introducción a la Informática solo en Docsity!

Universidad autónoma Gabriel Rene

Moreno

FICCT

Prectico# 11

Materia : Introducción a la Informatica

Docente : Ing. Angelica Garzon

Alumno : Alejandro Peinado Bazan

  1. Define los siguientes conceptos a) concepto clase: una clase es un modelo o plantilla que define las características y comportamientos (atributos y métodos) de los objetos que se crean a partir de ella. Es una estructura que se permite crear instancia de objeto de la programación orientada a objetos b) miembro dato: es una variable que pertenece a una clase. Los miembros dato representa las propiedades o atributos de la clase y pueden tener diferentes niveles de accesos (público, privado, protegido) c) concepto de objeto: un objeto es una instancia de una clase. Es una entidad concreta que se crea a partir de una clase y que tiene sus propias copias de los atributos definidos en la clase. d) Constructor: un constructor es un método especial de una clase que se llama automáticamente cuando se crea una nueva instancia de la clase. Su función es inicializar los atributos del objeto. e) Sección de declaración: la sección de declaración es la parte de una clase donde se declaran los miembros dato y los prototipos métodos f) Instancia de una clase: una instancia de una clase es un objeto creado a partir de la clase. Cada instancia tiene sus propios valoras para los atributos definido en la clase. g) Sección de implementación: la sección de implementación es la parte del código donde se definen los cuerpos de los métodos declarados en la clase h) Métodos o servicios: los métodos, también conocidos por servicio, son funciones definidas dentro de una clase que describen los comportamientos que los objetos de esa clase pueden realizar i) Variable de instancia: una variable de instancia es un miembro dato de una clase. Cada instancia de una clase tiene su propia copia de las variables de instancia j) Sobrecarga: la sobra carga es la capacidad de definir múltiples métodos con el mismo nombre en una clase, pero con diferentes parámetros (tipo o número de argumento) k) Función miembro: una función miembro es un método definido dentro de una clase que opera sobre la instancia de esa clase l) Interfaz: una interfaz es una colección de métodos abstracto que una clase puede interpretar. Define un conjunto de métodos que una clase debe implementar sin proporcionar la implementación de estos

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;

  1. Definir abstracción y hacer ejemplos La abstracción es el proceso de simplificar la complejidad del mundo real mediante la modelización de clase en termino de sus propiedades esenciales sin incluir los detalles de implementación type TVehiculo = class private FMarca: string; FModelo: string; public procedure Arrancar; virtual; abstract; procedure Detener; virtual; abstract; end; 4. Definición y característica de encapsulamiento

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

  1. Definir instancia Una instancia es un objeto concreto creado a partir de clase. Cada instancia tiene sus propios valores para los atributos y la clase
  2. Definir herencia, herencia simple y herencia múltiple. Elaborar ejemplos Herencia: la herencia es el mecanismo mediante el cual una clase (clase hija9 puede heredar las propiedades y métodos de otra clase(clase padre) Herencia simple : cuando la clase hereda una sola clase padre Herencia multiple: cuando hereda la clase de múltiples padres
  3. Definir polimorfismo El polimorfismo es la capacidad de los objetos de diferentes clases de ser tratados como objetos de una clase común. Permite que un solo método se comporte de diferentes maneras según el objeto que lo llame.

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.