Subido por Andres Olvera

Práctica 1 - Ian Tonatiuh Aguilar Monroy

Anuncio
PRÁCTICA 1: POO VS PROGRAMACIÓN
ESTRUCTURADA
ESIME CULHUACAN
INGENIERÍA EN COMPUTACIÓN
FECHA DE ENTREGA: 12 de septiembre del 2022
PROGRAMACIÓN ORIENTADA A OBJETOS
Dr. Sabás Flores Ascencio
NOMBRE DEL ALUMNO: Ian Tonatiuh Aguilar
Monroy
CALIFICACIÓN:
Objetivos generales
Conocer los fundamentos de la programación
estructurada y los fundamentos de la programación
orientada a objetos. Comparar ambos paradigmas y
obtener conclusiones.
Equipo y materiales
Equipo de cómputo equipado con compilador C++
Conceptos:
En la programación estructurada, los programas son más fáciles de entender,
debido a que pueden ser leídos de forma secuencial. La estructura del
programa es clara, puesto que las instrucciones están más ligadas o relacionadas
entre sí. Reducción del esfuerzo en las pruebas, por lo que los errores se pueden
detectar y corregir más fácil. Reducción de los costos de Mantenimiento de los
programas. Programas más sencillos y rápidos (debido a que es más fácil su
Optimización).
En el caso de la programación orientada a objetos, el paradigma cambia.
Abstracción: Denota las características esenciales de un objeto, donde se capturan
sus comportamientos. Que el usuario interactúe solo con los atributos y métodos
seleccionados de un objeto.
Encapsulamiento: Sígnica reunirá todos los elementos que pueden considerarse
pertenecientes a una misa entidad, al mismo nivel de abstracción. Toda la
información importante de un objeto dentro del mismo.
Principio de ocultación: Cada objeto está aislado del exterior, es un módulo natural,
y cada tipo de objeto expone una interfaz a otros objetos que especifica cómo
pueden interactuar con los objetos de la clase.
Polimorfismo: comportamientos diferentes, asociados a objetos distintos, pueden
compartir el mismo nombre, al llamarlos por ese nombre se utilizará el
comportamiento correspondiente al objeto que se está usando. Diseñar objetos
para compartir comportamientos
Herencia: Los objetos heredan las propiedades y el comportamiento de todas las
clases a las que pertenecen. Relaciones jerárquicas entre clases
Recolección de basura: la Recolección de basura o Garbage Collector es la técnica
por la cual el ambiente de Objetos se encarga de destruir automáticamente, y por
tanto desasignar de la memoria los Objetos que hayan quedado sin ninguna
referencia a ello.
Se utilizan principalmente clases, una clase es una plantilla. Define de manera
genérica cómo van a ser los objetos de un determinado tipo.
Código de trabajo 1:
#include<iostream.h>
#include<conio.h>
void main();
void main(void)
{
clrscr();
cout<<”SUMA DE 2 ENTEROS MEDIANTE FUNCIÓN”<<endl;
suma();
getch();
}
Void suma(void)
{
int a,b;
cout<<”Dame el valor de a: ”<<endl;
getch();
}
Código de trabajo 2:
#include<iostream.h>
#include<conio.h>
#include<stdlib.h>
class Operación
{
Private:
Int a;
Int b;
Public:
Void suma (void)
{
Cout<<”dame el valor de a: ”;
Cin>>a;
Cout<<”dame el valor de b: ”;
Con>>b;
Cout<<”La suma es: ”<<a+b<<endl;
}
};
Void main(void)
{
Operación s1;
Clrscr();
S1.suma();
System(“pause”);
}
Desarrollo
1. Introduzca y compile los programas de trabajo. Para ambos casos verifique que no existen
alertas y/o errores de compilación. En caso de haberlos corrija
2. Para cada línea de código, proporcione una explicación de lo que significa.
Código 1:
#include<iostream.h>  Instrucción de preprocesador que ordena llamar a la librería iostream
(líneas de código ya creadas y las incluye en el programa)
#include<conio.h>  Instrucción de preprocesador que ordena llamar a la librería conio.h (líneas de
código ya creadas y las incluye en el programa)
void suma(void);  Crea el punto de entrada llamado suma
void main(void)  Inicia el punto de entrada principal llamado main
{
clrscr();  Esta función despeja la ventana de texto actual y coloca el cursor en la esquina superior
izquierda.
cout<<"SUMA DE 2 ENTEROS MEDIANTE FUNCION"<<endl;  Imrpime en la ventana el texto
“SUMA DE 2 ENTEROS MEDIANTE FUNCION”
suma(); 
}
void suma(void)  Inicia el punto de entrada llamada suma
{
int a,b;  Define las variables a y b como enteros (Busca un espacio en la memoria y le asigna el
nombre de a y b, pero lo deja vacío)
cout<<"Dame el valor de a: ";  Imprime el texto “Dame el valor de a”
cin>> a;  Lee el valor de a dado por el usuario y lo almacena en la memoria con ese nombre
cout<<"Dame el valor de b: ";  Imprime el texto “Dame el valor de b”
cin>> b;  Lee el valor de b dado por le usuario y lo almacena en la memoria con ese nombre.
cout<<"La suma es: "<<(a+b)<<endl;  Imprime el texto “La suma es” y después imprime el
resultado de la suma de los valores guardados en a y bgetch();  Espera a recibir una tecla para cerrar el programa.
}  Termina de ejecutar los operadores dentro de void suma()
Código 2:
#include<iostream.h>  Instrucción de preprocesador que ordena llamar a la librería iostream
(líneas de código ya creadas y las incluye en el programa)
#include<conio.h>  Instrucción de preprocesador que ordena llamar a la librería conio (líneas de
código ya creadas y las incluye en el programa)
#include<stdlib.h>  Instrucción de preprocesador que ordena llamar a la librería stlib (líneas de
código ya creadas y las incluye en el programa)
class Operación  Crea un objeto llamado operación y características
{
private:  Hace que todo lo que este después de esta palabra sea inaccesible, solo para la clase
int a;  Crea una variable entero llamada a, y busca un espacio en la memoria para guardarla.
int b;  Crea una variable entero llamada b, y busca un espacio en la memoria para guardarla.
public:  Hace que todo lo que este después de esta palabra sea accesible, para todos incluyendo
la clase.
void suma (void)  Inicia el punto de entrada llamada suma.
{
cout<<"dame el valor de a: ";  Imprime la frase “dame el valor de a” en la pantalla del usuario.
cin>> a;  Recibe el valor dado por el usuario y lo almacena en el espacio de la memoria llamado a
cout<<"dame el valor de b: ";  Imprime la frase “dame el valor de b” en la pantalla del usuario.
cin>> b;  Recibe el valor dado por el usuario y lo almacena en el espacio de la memoria llamado b
cout<<"La suma es: "<<(a+b)<<endl;  Imprime la frase “La suma es” y después imprime el valor
de la suma de los valores de las variables a y b.
}
};  Cierra el objeto
void main(void)  Inicia la el punto de entrada llamada main.
{
Operacion s1;  Crea un objeto tipo operación llamado S1
clrscr();  Esta función despeja la ventana de texto actual y coloca el cursor en la esquina superior
izquierda.
s1.suma();  Utiliza el objeto s1 y ejecuta la orden suma
system("pause");  Pone en pausa la ejecución de main.
}  Termina main
3. Para el código de trabajo 2, note que la función “suma”, esta declarada dentro del cuerpo de la
clase. Modifique el código para que el cuerpo de la clase solo tenga el prototipo de la función
“suma”, y declare la función de fuera de la clase.
4. Repita el código de estudio 2, modificando para que trabaje con una estructura en lugar de una
clase. Haga sus comentarios y registre la salida proporcionada del programa.
Los cambios en cuanto a esperar errores y correr el programa no son notorios ya que class y struct
son en base lo mismo, solo que cuando se cambia a struct la memoria que se le aloja pasa a ser la
del más grande.
Cuestionario:
1.- Que es un paradigma de programación?
Son las maneras o estilos de programación, ya que existen diferentes formas de diseñar un lenguaje
de programación y varios modos de trabajar para obtener los resultados que necesitan los
programadores.
2.- Investigue el origen y características de la programación estructurada.
Tiene origen a finales de los años 1970, surgió una nueva forma de programar que no solamente
permitía programas fiables y eficientes, sino que además estos estaban escritos de manera que se
facilitaba su comprensión en fases de mejora posteriores.
El teorema del programa estructurado, propuesto por Böhm-Jacopini, demuestra que todo programa
puede escribirse utilizando únicamente las tres instrucciones de control siguientes:
Secuencia
Instrucción condicional.
Iteración (bucle de instrucciones) con condición al principio.
3.- Investigar el origen y las características de la programación orientada a objetos.
Surge en Noruega en 1967 con un lenguaje llamado Simula 67, desarrollado por Krinsten Nygaard y
Ole-Johan Dahl. Simula 67 introdujo por primera vez los conceptos de clases, corrutinas y subclases
(conceptos muy similares a los lenguajes Orientados a Objetos
El nacimiento de la Programación Orientación a Objetos en Europa pasó inadvertido para gran parte
de los programadores. Hoy tenemos la Orientación a Objetos como un niño de 33 años al que todos
quieren bautizar.
4.- Haga un cuadro comparativo entre las características de la programación estructurada y la
programación orientada a objetos.
Programación estructurada
Es secuencial, permite escribir programas
fáciles de leer y modificar.
Sus tres estructuras de control son,
secuencia, selección e iteración.
Pretende resolver un problema de principio a
fin en una sola estructura.
Separa los datos de las funciones.
Programación orientada a objetos
Es un conjunto de datos y programas que
poseen estructuras y forman parte de una
organización
Esta basado en varias técnicas, incluyendo
herencia, cohesión, abstracción, polimorfismo,
acoplamiento y encapsulamiento.
Debes atar basado en objetos, basado en
clases y capaz de tener herencia de clases.
Es una forma especial de programar, más
cercana a cómo expresarías las cosas den la
vida real que otros tipos de programación.
Conclusiones: Haga sus conclusiones y expréselas en al menos media cuartilla.
La programación estructurada aunque muy poco usada en estos últimos
tiempos, fue la base para poder generar otro tipo de programaciones más
avanzadas que permitieran a los programadores utilizar herramientas
más complicadas, y de esta misma se crea la programación orientada a
objetos, que en pequeño, sigue la misma lógica que la estructurada, pero
con diferencias que la hacen mejor y más avanzada, como lo es
principalmente que en este tipo de programación el usuario tiene
permitido crear sus propias clases y ponerle las características que
desee, para después poder utilizarlas para mejorar su programa, además
de las características ya vistas en el documento como lo son, la
abstracción el encapsulamiento, principio e ocultación, polimorfismo,
herencia y recolección de basura, que son también las principales
características que crean a la programación orientada a objetos.
Durante esta práctica se nos fueron entregados dos códigos los cuales
tenían errores, tanto de escritura como de sintaxis, ya que al intentar
correrlos en un lenguaje de programación este arrojaba errores comunes
y los cuales debemos comenzar a familiarizarnos para poder identificar en
un futuro más rápidamente donde estamos erróneos y poder corregirlo sin
retrasar o arruinar nuestro código.
Descargar