Programa que realiza la implementacion de un ejemplo con Programacion orientada a objetos (Muy básico)
program poo_animal; uses crt; {$R+} type generos = (macho,hembra); tipos =(herbiboro,carnivoro,carronero); Animal = object sexo : generos; nomb : string[20]; peso : real; tipo : tipos; edad : integer; constructor Nacer(in_sexo : generos; In_peso : real;in_edad : integer;in_nombre:string); procedure mensaje; virtual; procedure comer; virtual; procedure caminar;virtual; end; Mamifero = object(Animal) constructor Nacer(in_sexo : generos; In_peso : real;in_edad : integer;in_nombre:string;in_tipo:tipos); procedure mensaje; virtual; procedure correr;virtual; procedure cazar;virtual; procedure saltar;virtual; end; Ave = Object(Animal) constructor Nacer(in_sexo : generos; In_peso : real;in_edad : integer;in_nombre:string;in_tipo:tipos); procedure mensaje; virtual; procedure volar;virtual; end; { ********************* Implementacion ******************** } Function evaluaTipo(in_tipo:tipos):string; begin if in_tipo=herbiboro then evaluaTipo := 'herbÃÂboro'; if in_tipo=carnivoro then evaluaTipo:='carnivoro'; if in_tipo=carronero then evaluaTipo := 'carronero'; end; Function evaluaGenero(in_Genero:generos):string; begin if in_Genero=Macho then evaluaGenero := 'Macho' else evaluaGenero := 'Hembra'; end; constructor Animal.Nacer(in_sexo : generos; In_peso : real;in_edad : integer;in_nombre:string); begin sexo := in_sexo; nomb := in_nombre; peso := In_peso; edad := in_edad; writeln ('Animal creado; nombre: ', nomb); end; procedure Animal.mensaje; begin WriteLn(nomb, ' es un animal de ',edad,' años y pesa ',peso,' kg.'); end; procedure Animal.comer; begin WriteLn(nomb, ' esta comiendo'); end; procedure Animal.caminar; begin WriteLn(nomb, ' esta caminando'); end; constructor Mamifero.Nacer(in_sexo : generos; In_peso : real;in_edad : integer;in_nombre:string;in_tipo:tipos); begin sexo := in_sexo; nomb := in_nombre; peso := In_peso; edad := in_edad; tipo := in_tipo; writeln ('Mamifero creado; nombre: ', nomb); end; procedure Mamifero.mensaje; begin WriteLn(nomb, ' es un mamifero ',evaluaTipo(tipo),'; un ', evaluaGenero(sexo),' de ',edad,' años y pesa ',peso,' kg.'); end; procedure Mamifero.cazar; begin WriteLn(nomb, ' esta cazando'); end; procedure Mamifero.correr; begin WriteLn(nomb, ' esta corriendo'); end; procedure Mamifero.saltar; begin Write(nomb,' esta saltando'); end; constructor Ave.Nacer(in_sexo : generos; In_peso : real;in_edad : integer;in_nombre:string;in_tipo:tipos); begin sexo := in_sexo; nomb := in_nombre; peso := In_peso; edad := in_edad; tipo := in_tipo; write ('Ave creada; nombre: ', nomb); end; procedure Ave.mensaje; begin WriteLn(nomb, ' es una ave ',evaluaTipo(tipo),'; un ', evaluaGenero(sexo),' de ',edad,' años y pesa ',peso,' kg.'); end; procedure Ave.volar; begin WriteLn(nomb, ' esta volando'); end; procedure alerta(VAR especie : animal); begin especie.Mensaje; end; { ************************ principal ************************** } var Delfin : Animal; Tigre : Mamifero; Canario : Ave; begin clrscr; Delfin.Nacer(macho,50.2,3,'Delfin'); Tigre.Nacer(macho, 50.2,3,'Tigre',carnivoro); Canario.Nacer(hembra, 0.25,1,'Canario',herbiboro); WriteLn; WriteLn; alerta(Delfin); Delfin.comer; alerta(Tigre); Tigre.cazar; alerta(Canario); Canario.volar; readkey; end.
Antes de comentar: Gran parte de los ejercicios propuestos no tienen librerías debido a que Wordpress las eliminó al verlas como etiquetas HTML. Si sabes/tienes/conoces las librerías que hacen falta, déjalo en los comentarios. Y lo mas importante: Todos los ejemplos fueron realizados por personas con únicamente conocimiento básico del lenguaje, no de programación.
Otro punto importante: Si vas a sugerir un segmento de código en algún lenguaje debes hacerlo así:
- Si es lenguaje C [c]Código en C[/c]
- Si es lenguaje Pascal [pascal]Aquí dentro el código de Pascal[/pascal].
De esta manera el código coloreas el código.
Otro punto importante para muchos que sienten que se les ignora: Todos los comentarios los reviso y en su debido momento los apruebo, pero ojo con el con lo siguiente:Me reservo el derecho de alterar, publicar o no los comentarios as´ como cambiar mis condiciones en el momento que así lo requiera.
¿estas de acuerdo? entonces adelante que ya te he quitado bastante tiempo leyendo esta basura de advertencias :)