You are on page 1of 33

Instituto Politcnico Nacional Escuela Superior De Ingeniera Mecnica Elctrica Unidad Culhuacn Ingeniera en computacin

Programacin Orientada a Objetos Practica 1 Programacin Estructurada VS Orientada a Objetos

Integrantes: Paz Govea Carlos Camarena Len Eilleen Rubio Esquivel Marco Antonio

PRCTICA No. 1
PROGRAMACIN ESTRUCTURADA VS ORIENTADA A OBJETOS

I.- OBJETIVO: Al trmino de la prctica el alumno podr: - Conocer la diferencia entre la programacin estructurada y la programacin orientada a objetos.

II.- INTRODUCCIN TERICA. LA POO FRENTE A LA PROGRAMACIN TRADICIONAL En la historia de la programacin ha habido varias evoluciones sucesivas. Una de las principales fue la programacin estructurada, cuyo principio fundamental era dividir un programa en subprogramas ms pequeos y fciles de resolver, hasta llegar a niveles de complejidad elementales, siempre apoyndonos en la idea de

Qu debe hacer el programa? Subprogramas

Este mtodo de diseo, a pesar de haber dado resultados satisfactorios, tiene limitaciones. Algunas de ellas son: No favorece la reutilizacin del cdigo. Si en la figura anterior fnl yfri2 fueran idnticas, este hecho seguramente pasara desapercibido y no se compartira una nica funcionan. Si dos subprogramas comparten una misma funcin fn reutilizando as el digo que define la misma, y ms adelante queremos modificar fn porque hflun cambio en uno de los subprogramas que la utilizan, la modificacin afectar tambin al otro subprograma, razn por la que ahora tendremos que realizar dos funciones.

De lo expuesto se deduce que la programacin tradicional se desarrolla a partir de procedimientos y datos, sin delimitar qu procedimientos actan sobre qu datos. Los datos se estructuran con el fin de que puedan ser procesados por conjunto de procedimientos diferentes, por lo que ambos, estructuras de datos y procedimientos, estn sujetos a cambios.

Procedimiento 1

Procedimiento 2

D A T O S

Procedimiento 3

Si la programacin estructurada se interesa primero por los procedimientos y despus por los datos, el diseo orientado a objetos se interesa en primer lugar por los datos, a los que se asocian posteriormente procedimientos. Esto es, ahora la idea principal es de qu trata el programa? Entonces se organizan los desarrollos alrededor de los datos manipulados, y no alrededor de las funcionalidades.

Esta forma de construir el programa resulta mucho ms eficaz puesto que en la vida de un programa los elementos ms estables son los datos. Por lo tanto, en la programacin orientada a objetos, un programa es una coleccin de una sola entidad bsica, el objeto, el cual combina los

datos con los procedimientos que actan sobre ellos. Durante la ejecucin, los objetos reciben y envan mensajes a otros objetos para ejecutar las acciones requeridas.

Objeto

Datos

Procedimiento

Datos Procedimiento

Datos Procedimiento

La programacin orientada a objetos puede llevarse a cabo con lenguajes convencionales, pero esto exige al programador la construccin de los mecanismos de que disponen los lenguajes orientados a objetos. Por ello, lo ms apropiado es utilizar directamente un lenguaje orientado a objetos, ya que stos soportan los mecanismos y las caractersticas que anteriormente se han expuesto, tales como objetos, clases, mtodos, mensajes, herencia, etc. La herencia constituye uno de los mecanismos ms potentes de la programacin orientada a objetos.

IV. DESARROLLO EL ALUMNO SEGUIR LA SECUENCIA INDICADA, DESCRIBIENDO EN CADA INCISO LOS PASOS QUE SIGA:

4.1. Realice un programa en C: que por medio de una funcion pida 2 enteros y los sume y regrese el resultado a la llamada de la funcion

#include<stdio.h> #include<conio.h> void suma(void); void main() { clrscr(); printf("\n PROGRAMA DE FUNCIONES POR EL USUARIO SUMA 2 DE ENTEROS\n\n"); suma(); getch(); } void suma(void) { int a,b; printf("Dame el valor de a: "); scanf("%d",&a); printf("Dame el valor de b: ");

scanf("%d",&b); printf("\nla suma es: getch(); } Captura de programa.exe %d\n",a+b);

4.2. Realice un programa en C++: que por medio de una funcion pida 2 enteros y los sume e imprima el resultado.

#include <iostream.h> #include <conio.h> void suma(void); void main() { clrscr();

cout <<"\n PROGRAMA DE FUNCIONES POR EL USUARIO SUMA 2 DE ENTEROS\n\n"; suma(); getch(); } void suma(void) { int a,b; cout << "Dame el valor de a: "; cin >> a; cout << "Dame el valor de b: "; cin >> b; cout << "\nla suma es: getch(); } " << (a+b);

Captura de programa.exe

4.3. Realice un programa con Programacin orientada a objetos en C++: que por medio de una funcion pida 2 enteros y los sume y regrese el resultado a la llamada de la funcion.

#include <iostream.h> #include <conio.h> #include <stdlib.h> class Operacin { private: int a; int b; public: void suma (void){ cout << "dame el valor de a: "; cin >> a;

cout << "dame el valor de b; ";

cin >> b;

cout << "La suma es: " << a+b << endl; } }; void main(){ Operacion s1; clrscr(); s1.suma(); system("pause"); }

Captura de programa.exe

4.4. Programa en c++ que pida 10 nmeros para un arreglo y despus los imprima en el orden que los dio el usuario. #include <stdio.h>

#include <stdlib.h> #include <string.h> #include <iostream.h> #include <conio.h> #include <windows.h> #include <dos.h> void inicio(int n) { textcolor(14);gotoxy(23,11);cprintf("C E R R A N D O for(int h=1;h<4;h++){ for(int i=5;i<67;i++) {textcolor(11);gotoxy(i,24);cprintf(" ");Sleep(n);} for(int j=66;j>4;j--) {textcolor(13); gotoxy(j,24);cprintf(" ");Sleep(n);} } Sleep(1000); } void main(){ int i; int num[10]; cout<<"\t\t\tBienvenido"; cout<<"\n\nEste programa muestra un arreglo de 10 numeros\n"; for(i=0;i<10;i++) { cout<<"\nTeclee el elemento "<<i+1<<": "; S I S T E M A");

10

cin>>num[i]; } cout<<"\n\nTu lista de numeros queda de la siguiente manera:\n"; for(i=0;i<=9;i++) { cout<<"\n"<<num[i]; cout<<"\n\n\n"; system("pause"); inicio(10); }

Captura de programa.exe

11

4.5 Programa en c++ que pida al usuario 3 nmeros y los multiplique para que imprima el producto #include <stdio.h>

12

#include <stdlib.h> #include <string.h> #include <iostream.h> #include <conio.h> #include <windows.h> #include <dos.h> void inicio(int n) { textcolor(14);gotoxy(23,11);cprintf("C E R R A N D O for(int h=1;h<4;h++){ for(int i=5;i<67;i++) {textcolor(11);gotoxy(i,24);cprintf(" ");Sleep(n);} for(int j=66;j>4;j--) {textcolor(13); gotoxy(j,24);cprintf(" ");Sleep(n);} } Sleep(1000); } void main(){ float a,b,c,res; cout<<"\t\t\tBienvenido"; cout<<"\n\nEste programa te dara el producto de la multiplicacion de tres numeros"; cout<<"\n\nIngrese los numeros que desea multiplicar"; cout<<"\n\nPrimer numero: "; cin>>a; cout<<"\nSegundo numero: "; cin>>b; cout<<"\nTercer numero: "; cin>>c; S I S T E M A");

13

res=(a)*(b)*(c); cout<<"\n\nEl resultado de tu operacion es: "<<res; cout<<"\n\n\n"; system("pause"); inicio(10); }

Captura de programa.exe

14

4.6 Programa en c++ que pida al usuario 2 numeros y los reste respectivamente, al igual que imprima el promedio de ellos.

#include <stdio.h> #include <stdlib.h> #include <string.h> #include <iostream.h> #include <conio.h> #include <windows.h> #include <dos.h> void inicio(int n) { textcolor(14);gotoxy(23,11);cprintf("C E R R A N D O for(int h=1;h<4;h++){ for(int i=5;i<67;i++) {textcolor(11);gotoxy(i,24);cprintf(" ");Sleep(n);} for(int j=66;j>4;j--) {textcolor(13); gotoxy(j,24);cprintf(" ");Sleep(n);} } Sleep(1000); } void main(){ float a,b,res,res1; cout<<"\t\t\tBienvenido"; cout<<"\n\nEste programa te dara el producto de la resta y el promedio de 2 numeros"; S I S T E M A");

15

cout<<"\n\nIngrese los numeros que desee"; cout<<"\n\nPrimer numero: "; cin>>a; cout<<"\nSegundo numero: "; cin>>b; res=a-b; res1=(a+b)/2; cout<<"\n\nEl resultado de tu Resta es: "<<res; cout<<"\n\nEl promedio es: "<<res1; cout<<"\n\n\n"; system("pause"); inicio(10); }

Captura de programa.exe

16

4.7 Programa en c que Te dice la utilidad de un trabajador en su salario. #include<stdio.h> #include<conio.h> void main() { int opc; float salario,salcuti,uti; printf(" BIENVENIDOO ");

printf("\nSeleccione cuanto lleva trabajando en la empresa: "); printf("\n1.Menos de un ao"); printf("\n2.1 ao o mas y menos de 2 aos"); printf("\n3.2 aos o mas y menos de 5 aos"); printf("\n4.5 aos o mas y menos de 10 aos"); printf("\n5.10 aos o mas"); printf("\nEscoga su opcion: "); scanf("%d",&opc); switch(opc) { case 1: printf("\nSus utilidades seran del 5 porciento"); printf("\nPorfavor introdusca su salario $"); scanf("%f",&salario); uti=salario*.05; printf("\nSus utilidades seran de $%.2f",uti); salcuti=salario+uti;

17

printf("\nSu salario con utilidades es de $%.2f",salcuti); break; case 2: printf("\nSus utilidades seran del 7 porciento"); printf("\nPorfavor introdusca su salario $"); scanf("%f",&salario); uti=salario*.07; printf("\nSus utilidades seran de $%.2f",uti); salcuti=salario+uti; printf("\nSu salario con utilidades es de $%.2f",salcuti); break; case 3: printf("\nSus utilidades seran del 10 porciento"); printf("\nPorfavor introdusca su salario $"); scanf("%f",&salario); uti=salario*.10; printf("\nSus utilidades seran de $%.2f",uti); salcuti=salario+uti; printf("\nSu salario con utilidades es de $%.2f",salcuti); break; case 4: printf("\nSus utilidades seran del 15 porciento"); printf("\nPorfavor introdusca su salario $"); scanf("%f",&salario); uti=salario*.15;

18

printf("\nSus utilidades seran de $%.2f",uti); salcuti=salario+uti; printf("\nSu salario con utilidades es de $%.2f",salcuti); break; case 5: printf("\nSus utilidades seran del 20 porciento"); printf("\nPorfavor introdusca su salario $"); scanf("%f",&salario); uti=salario*.20; printf("\nSus utilidades seran de $%.2f",uti); salcuti=salario+uti; printf("\nSu salario con utilidades es de $%.2f",salcuti); break; default: printf("\nEsa opcion no esta"); } getch(); }

19

Captura de programa.exe

4.8. Programa en c que simula una tmbola de un supermercado

#include<stdio.h> #include<conio.h> void main() { int opc,bolita; printf(" Bienvenido al supermercado *SUPERMART* ");

printf("\nEliga una de las opciones de abajo:"); printf("\n1.Compra menor de 500.00 pesos"); printf("\n2.Compra mayor de 500.00 pesos"); printf("\nCual eligue: "); scanf("%d",&opc); switch(opc)

20

{ case 1: printf("\nUsted entra a la tombola por la cantidad de su compra FELICIDADES"); printf("\nPor favor escoga que numero de bolita le salio en al tombola: "); printf("\n1.UNO"); printf("\n2.DOS"); printf("\n3.TRES"); printf("\n4.CUATRO"); printf("\n5.CINCO"); printf("\nUsted le toco la bolita numero: "); scanf("%d",&bolita); switch(bolita) { case 1: printf("\nTu premio es.....1 SHAMPOO CAPRICE"); break; case 2: printf("\nTu premio es.....1 paquete(3) de jabones ROSA VENUS"); break; case 3: printf("\nTu premio es.....1 PASTA DE DIENTES COLGATE"); break; case 4: printf("\nTu premio es.....1 BOLSA DE DETERGENTE MAS COLOR"); break; case 5: printf("\nTu premio es.....1 CAJA DE CEREAL ZUCARITAS");

21

break; default: printf("\nESA PELOTA NO EXISTE"); break; } break; case 2: printf("\nUsted no puede entrar en la rifa por que gasto menos de 500.00"); printf("\nSUERTE PARA LA PROXIMA"); break; default: printf("\nEsa opcion NO EXISTE"); break; } getch(); } Captura de programa.exe

22

V. CUESTIONARIO (TRABAJO COMPLEMENTARIO).

1.-Menciona que ventajas tiene la Programacin Orientada a Objetos vs la Programacin Estructurada: La programacin estructura pretende resolver un problema de principio a fin en una sola estructura de cdigo. La programacin orientada a objetos, resuelve el problema identificando los actores que tienen participacin en el problema e identificando tambin sus acciones. Con esta informacin se crean los objetos (que son una interpretacin de algunos de estos actores), estos objetos estn compuestos por clases donde se detalla las acciones que realizan y las propiedades de estos. Al tener creados los objetos solo es ponerlos a interactuar entre ellos 2.-Enumera las caractersticas de la Programacin Estructurada: 1. La estructura secuencial: Est definida por el flujo de control automtico de un programa. De manera natural, a menos que otra cosa se indique, la computadora ejecuta las lneas de cdigo en el orden en que fueron escritas. El control del programa fluye de la lnea anterior a la lnea siguiente.

23

2. Las estructuras de seleccin: Se basan en una declaracin condicional. Si es verdadera, ciertas lneas de cdigo son ejecutadas. Si tal declaracin es falsa, esas lneas no sern ejecutadas. Las dos estructuras de seleccin ms comunes son: Si-Entonces (If-Then) y Si-Entonces-de lo contrario (If-Then-Else).

3. Las estructuras de repeticin (o de ciclos): Su construccin tambin hace uso de declaraciones condicionales. Si la condicin evaluada es verdadera, un bloque de una o ms instrucciones se repetir, hasta que la condicin sea falsa. Entonces, finalizada la primera repeticin, comprueba de nuevo la condicin y si es verdadera se repite el bloque nuevamente, y as sucesivamente hasta que la condicin sea falsa. Ya que este funcionamiento es cclico, cada una de estas repeticiones es llamada tambin ciclo. Tres estructuras de este tipo son: Repita para (For-Next), Repita Mientras (While) y Repita Hasta (Do-While).

24

3.-Enuncia las caractersticas de la Programacin Orientada a Objetos Ignorancia Selectiva **La abstraccin nos ayuda a trabajar con cosas complejas **Se enfoca en lo importante **Ignora lo que no es importante (simplifica) Una clase es una abstraccin en la que: **Se enfatizan las caractersticas relevantes **Se suprimen otras caractersticas Una clase debe capturar una y solo una abstraccin clave El proceso de abstraccin permite seleccionar las caractersticas relevantes dentro de un conjunto e identificar comportamientos comunes para definir nuevos tipos de entidades en el mundo real, para armar un conjunto de clases que permitan modelar la realidad o el problema que se quiere realizar. HERENCIA Es una relacin entre clases en la cual una clase comparte la estructura y comportamiento definido en otra clase ENCAPSULAMIENTO Principio que establece que los atributos propios de un objeto no deben ser visibles desde otros objetos

POLIMORFISMO Es la propiedad que tienen los objetos de permitir invocar genricamente un comportamiento (mtodo) cuya implementacin ser delegada al objeto correspondiente recin en tiempo de ejecucin

25

4.-Cmo puedes definir a la Programacin Orientada a Objetos? Es un paradigma de programacin que define los programas en trminos de clases de objetos, objetos que son entidades que combinan estado (propiedades o datos), comportamiento (procedimientos o mtodos) e identidad (propiedad del objeto que lo diferencia del resto). Expresa un programa como un conjunto de estos objetos, que colaboran entre ellos para realizar tareas. Esto permite hacer los programas y mdulos ms fciles de escribir, mantener y reutilizar. Un objeto contiene toda la informacin que permite definirlo e identificarlo frente a otros objetos pertenecientes a otras clases (e incluso entre objetos de una misma clase, al poder tener valores bien diferenciados en sus atributos). A su vez, dispone de mecanismos de interaccin (los llamados mtodos) que favorecen la comunicacin entre objetos (de una misma clase o de distintas), y en consecuencia, el cambio de estado en los propios objetos. Esta caracterstica lleva a tratarlos como unidades indivisibles, en las que no se separan (ni deben separarse) informacin (datos) y procesamiento (mtodos). Las clases son declaraciones o abstracciones de objetos, lo que significa, que una clase es la definicin de un objeto. Cuando se programa un objeto y se definen sus caractersticas y funcionalidades, realmente se programa una clase. 5.-Cmo puedes definir Programacin Estructurada: Es un estilo con el cual el se busca que el programador elabore programas sencillos y fciles de entender. Para ello, la programacin estructurada hace uso de tres estructuras bsicas de control. stas son: Estructura Secuencial Estructura Selectiva Estructura Repetitiva ( Iterativa) La programacin estructurada se basa un teorema fundamental, el cual afirma que cualquier programa, no importa el tipo de trabajo que ejecute, puede ser elaborado utilizando nicamente las tres estructuras bsicas (secuencia, seleccin, iteracin).

26

6.-Cul es el concepto que incluye y es el umbral entre Programacin Orientada a Objetos y la Programacin Estructurada? Programacin Orientada a Objetos Es un paradigma de programacin que usa los objetos en sus interacciones, para disear aplicaciones y programas informticos. Est basado en varias tcnicas, incluyendo herencia, cohesin, abstraccin, polimorfismo, acoplamiento y encapsulamiento. Se puede definir POO como una tcnica o estilo de programacin que utiliza objetos como bloque esencial de construccin. Los objetos son en realidad como los tipos abstractos de datos. Un TAD es un tipo definido por el programador junto con un conjunto de operaciones que se pueden realizar sobre ellos. Se denominan abstractos para diferenciarlos de los tipos de datos fundamentales o bsicos. Programacin Estructurada Es un paradigma de programacin orientado a mejorar la claridad, calidad y tiempo de desarrollo de un programa de computadora, utilizando nicamente subrutinas, y tres estructuras: secuencia, seleccin (if y switch), e iteracin (bucles for y while). Es una forma de escribir programas de ordenador (programacin de computadora) de manera clara, para ello utiliza nicamente tres estructuras: secuencia, seleccin e iteracin; siendo innecesario el uso de la instruccin o instrucciones de transferencia incondicional (GOTO, EXIT, FUNCTION, RETURN, etc)

7.- Cules son los elementos de la Programacin Orientada a Objetos y la Programacin Estructurada? Elementos de la programacin orientada a objetos OBJETOS. Se divide en componentes que contienen procedimientos y datos. Cada componente se considera un objeto. En otras palabras un objeto es una unidad que contiene datos y las funciones que operan sobre esos datos. Los objetos simples pueden constar de tipos primitivos, tales como enteros, caracteres, boolean, etc. Los objetos complejos pueden constar de pilas, conjuntos, listas, arrays, etc, o incluso de estructuras recursivas de alguno o todos de sus elementos. Los objetos son entidades que combinan estado, comportamiento e identidad: El estado est compuesto de datos, ser uno o varios atributos a los que se habrn asignado unos valores concretos (datos). El comportamiento est definido por los procedimientos o mtodos con que puede operar dicho objeto, es decir, qu operaciones se pueden realizar con l.

27

La identidad es una propiedad de un objeto que lo diferencia del resto, dicho con otras palabras, es su identificador (concepto anlogo al de identificador de una variable o una constante).

Atributos: Describen el estado del objeto. Un atributo consta de dos partes, un nombre de atributo y un valor de atributo. Mtodos Los mtodos (operaciones o servicios) describen el comportamiento asociado a un objeto. La ejecucin de un mtodo puede conducir a cambiar el estado del objeto o dato local del objeto CLASES Es una estructura que contiene datos y procedimientos (o funciones) que son capaces de operar sobre esos datos. Dentro de un programa, las clases tienen dos propsitos principales: definir abstracciones y favorecer la modularidad. A partir de una clase se puede definir un nmero de objetos. Cada uno de estos objetos tendr, generalmente, una serie de caractersticas propias, aunque compartirn operaciones comunes. El encapsulamiento o encapsulacin es la propiedad que permite asegurar que el contenido de la informacin de un objeto esta oculta del mundo exterior: el objeto A no conoce lo que hace el objeto B, y viceversa. De esta manera combinamos los datos y los mtodos que manejan dichos datos en un nico objeto. Modularidad Es la propiedad que permite dividir una aplicacin en partes ms pequeas (llamadas mdulos ), cada una de las cuales debe ser tan independiente como sea posible de la aplicacin en si y de las restantes partes. Jerarqua Es una propiedad que permite una ordenacin de las abstracciones. Las dos jerarquas ms importantes de un sistema complejo son: HERENCIA Esta propiedad permite a los objetos ser construidos a partir de otros objetos. El objetivo final es la reutilizabilidad o reutilizacin, es decir, reutilizar cdigo anteriormente ya desarrollado. La herencia supone una clase base y una jerarqua de clases que contiene las clases derivadas de la clase base. ELEMENTOS DE LA PROGRAMACION ESTRUCTURADA

28

Secuencia: el bloque secuencial de instrucciones, instrucciones ejecutadas sucesivamente, una detrs de otra. Seleccin: la instruccin condicional con doble alternativa, de la forma "if condicin then instruccin-1 else instruccin-2". Iteracin: el bucle condicional "while condicin do instruccin", que ejecuta la instruccin repetidamente mientras la condicin se cumpla. 8.-Qu es una funcin? Es un grupo de instrucciones con un objetivo en particular y que se ejecuta al ser llamada desde otra funcin o procedimiento. Una funcin puede llamarse mltiples veces e incluso llamarse a s misma (funcin recurrente). Las funciones pueden recibir datos desde afuera al ser llamadas a travs de los parmetros y deben entregar un resultado. Se diferencian de los procedimientos porque estos no devuelven un resultado. En general las funciones deben tener un nombre nico en el mbito para poder ser llamadas, un tipo de dato de resultado, una lista de parmetros de entrada y su cdigo. 9.-Qu es un paradigma de Programacin? Paradigma de Programacin: Coleccin de patrones conceptuales que juntos modelan el proceso de diseo, y finalmente determinan la estructura del programa. Son la forma que determinan los mtodos y las herramientas que un programador usara en la construccin de un software Tipos: Operacionales: Especifican la programacin como un conjunto de secuencias computacionales que se ejecutan paso a paso. Declarativos: No existe una descripcin paso a paso de cmo llegar a la solucin, sino que el programa se construye estableciendo hechos, reglas, restricciones, ecuaciones, etc. Que debe cumplir el conjunto de valores que constituyen la solucin. Demostrativos Se provee al sistema de soluciones a problemas similares y se deja que generalice una solucin a partir de estos ejemplos.

29

VI.- CONCLUSIONES Y OBSERVACIONES Para las conclusiones y observaciones de las diferencias que hay entre lo que es la programacin estructurada y la programacin orientada a objetos es que, cada una lleva un cierto grado de dificultad a la hora de codificarlo aunque es mnima la diferencia es as; porque en este caso la POO tiene mtodos, encapsulacin de datos, Polimorfismo, Herencias, Plantillas, etc; a diferencia de lo que es la PE que solo est compuesta por funciones y abstraccin, pero lo bueno es que no tiene restricciones a la hora de codificarse. Por otra parte es ms sencillo hacer los programas en c++ ya que sus palabras a la hora de imprimir por ejemplo son ms cortas que en la programacin en c.

VII.- Anexos (Mapas conceptuales)

30

31

32

33

You might also like