Вы находитесь на странице: 1из 23

Repblica Bolivariana de Venezuela Ministerio del poder popular para la Educacin Universitaria UPTOS Clodosbaldo Russian Cuman, estado

Sucre

PROGRAMACIN

Realizado por: Gregory Gutirrez C.I: 14125216 Seccin de Prosecucin de Instrumentacin y Control

Cuman, febrero de 2013

Introduccin Hoy en da la tecnologa orientada a objetos ya no se aplica solamente a los lenguajes de programacin, adems se viene aplicando en el anlisis y diseo con mucho xito, al igual que en las bases de datos. Es que para hacer una buena programacin orientada a objetos hay que desarrollar todo el sistema aplicando esta tecnologa, de ah la importancia del anlisis y el diseo orientado a objetos. La programacin orientada a objetos es una de las formas ms populares de programar y viene teniendo gran acogida en el desarrollo de proyectos de software desde los ltimos aos. Esta acogida se debe a sus grandes capacidades y ventajas frente a las antiguas formas de programar. La orientacin a objetos promete mejoras de amplio alcance en la forma de diseo, desarrollo y mantenimiento del software ofreciendo una solucin a largo plazo a los problemas y preocupaciones que han existido desde el comienzo en el desarrollo de software: la falta de portabilidad del cdigo y reusabilidad, cdigo que es difcil de modificar, ciclos de desarrollo largos y tcnicas de codificacin no intuitivas. Un lenguaje orientado a objetos ataca estos problemas. Tiene tres caractersticas bsicas: debe estar basado en objetos, basado en clases y capaz de tener herencia de clases. Muchos lenguajes cumplen uno o dos de estos puntos; muchos menos cumplen los tres. La barrera ms difcil de sortear es usualmente la herencia. El concepto de programacin orientada a objetos (OOP) no es nuevo, lenguajes clsicos como SmallTalk se basan en ella. Dado que la OOP. se basa en la idea natural de la existencia de un mundo lleno de objetos y que la resolucin del problema se realiza en trminos de objetos, un lenguaje se dice que est basado en objetos si soporta objetos como una caracterstica fundamental del mismo.

LA PROGRAMACIN ORIENTADA A OBJETOS:

La programacin Orientada a Objetos es una metodologa que basa la estructura de los programas en torno a los objetos. Los lenguajes de POO

ofrecen medios y herramientas para describir los objetos manipulados por un programa. Ms que describir cada objeto individualmente, estos lenguajes

proveen una construccin (Clase) que describe a un conjunto de objetos que poseen las mismas propiedades. OBJETO: Un objeto es un ente que posee sus caractersticas propias (propiedades) y un conjunto de acciones que es capaz de realizar (mtodos). Se caracteriza por sus atributos propios y cuyo comportamiento est determinado por las acciones o funciones que pueden modificarlo, as como tambin las acciones que requiere de otros objetos. Un objeto tiene identidad e inteligencia y constituye una unidad que oculta tanto datos como la descripcin de su manipulacin.

Caractersticas del Objeto: Un objeto se identifica por un nombre o un identificador nico que lo diferencia de los dems. Ejemplo: el objeto Cuenta de Ahorros nmero 12345 es diferente al objeto Cuenta de Ahorros nmero 25789. En este caso el identificador que los hace nicos es el nmero de la cuenta. Un objeto posee estados. El estado de un objeto est determinado por los valores que poseen sus atributos en un momento dado. Un objeto tiene un conjunto de mtodos. El comportamiento general de los objetos dentro de un sistema se describe o representa mediante sus operaciones o mtodos. Los mtodos se utilizarn para obtener o cambiar el estado de los objetos, as como para proporcionar un medio de comunicacin entre objetos.

Un objeto tiene un conjunto de atributos. Los atributos de un objeto contienen valores que determinan el estado del objeto durante su tiempo de vida. Se implementan con variables, constantes y estructuras de datos (similares a los campos de un registro). Los objetos soportan encapsulamiento. La estructura interna de un objeto normalmente est oculta a los usuarios del mismo. Los datos del objeto estn disponibles solo para ser manipulados por los propios mtodos del objeto. El nico mecanismo que lo conecta con el mundo exterior es el paso de mensajes. Un objeto tiene un tiempo de vida dentro del programa o sistema que lo crea y utiliza. Para ser utilizado en un algoritmo el objeto debe ser creado con una instruccin particular (New Nuevo) y al finalizar su utilizacin es destruido con el uso de otra instruccin o de manera automtica. Estructura de un objeto: Un objeto puede considerarse como una especie de cpsula dividida en tres partes: 1 - RELACIONES 2 - PROPIEDADES 3 - METODOS Cada uno de estos componentes desempea un papel totalmente independiente: Las relaciones permiten que el objeto se inserte en la organizacin y estn formadas esencialmente por punteros a otros objetos. Las propiedades distinguen un objeto determinado de los restantes que forman parte de la misma organizacin y tiene valores que dependen de la propiedad de que se trate. Las propiedades de un objeto pueden ser heredadas a sus descendientes en la organizacin. Los mtodos son las operaciones que pueden realizarse sobre el objeto, que normalmente estarn incorporados en forma de programas (cdigo) que el objeto es capaz de ejecutar y que tambin pone a disposicin de sus descendientes a travs de la herencia.

Ejemplo: un automvil tratado en un esquema de Programacin Orientada a Objeto, es un objeto principal que tiene una serie de caractersticas, como podran ser el color, el modelo o la marca. Adems tiene una serie de funcionalidades asociadas, como pueden ser ponerse en marcha, parar o estacionarse. En un esquema POO el automvil sera el objeto, las propiedades seran las caractersticas.

CLASES: La clase puede definirse como la agrupacin o coleccin de objetos que comparten una estructura comn y un comportamiento comn. Es una plantilla que contiene la descripcin general de una coleccin de objetos. Consta de atributos y mtodos que resumen comunes de un conjunto de objetos. Todo objeto pertenece a alguna clase. Mientras un objeto es una entidad concreta que existe en el tiempo y en el espacio, una clase representa solo una abstraccin. Todos aquellos objetos que pertenecen a la misma clase son descritos o comparten el mismo conjunto de atributos y mtodos. Todos los objetos de una clase tienen el mismo formato y comportamiento, son diferentes nicamente en los valores que contienen sus atributos. Todos ellos responden a los mismos mensajes. las caractersticas y el comportamiento

Caractersticas de las Clases: Una clase es un nivel de abstraccin alto. La clase permite describir un conjunto de caractersticas comunes para los objetos que representa. Un objeto es una instancia de una clase. Cada objeto concreto dentro de un sistema es miembro de una clase especfica y tiene el conjunto de atributos y mtodos especificados en la misma

Las clases se relacionan entre s mediante una jerarqua. Entre las clases se establecen diferentes tipos de relaciones de herencia, en las cuales la clase hija (subclase) hereda los atributos y mtodos de la clase padre (superclase), adems de incorporar sus propios atributos y mtodos.

En el mundo real existen objetos del mismo tipo, por ejemplo una bicicleta es solo una mas de todas las bicicletas del mundo. Entonces diramos que la bicicleta es una instancia de la clase "Bicicleta". Todas las bicicletas tienen los atributos: color, cantidad de cambios, dueo y mtodos: acelerar, frenar, pasar cambio, volver cambio. Las fabricas de bicicletas utilizan moldes para producir sus productos en serie, de la misma forma en POO utilizaremos la clase bicicleta (molde) para producir sus instancias (objetos).

Relacin de Herencia: Es un tipo de jerarqua de clases, en la que cada subclase contiene los atributos y mtodos de una (herencia simple) o ms superclases (herencia mltiple). Mediante la herencia las instancias de una clase hija (o subclase) pueden acceder tanto a los atributos como a los mtodos pblicos y protegidos de la clase padre (o superclase). Cada subclase o clase hija en la jerarqua es siempre una extensin (esto es, conjunto estrictamente ms grande) de la(s) superclase(s) o clase(s) padre(s) y adems incorporar atributos y mtodos propios, que a su vez sern heredados por sus hijas.

MENSAJE: Es la peticin de un objeto a otro para solicitar la ejecucin de alguno de sus mtodos o para obtener el valor de un atributo pblico.

Estructuralmente, un mensaje consta de 3 partes: Identidad del receptor: Nombre del objeto que contiene el mtodo a ejecutar. Nombre del mtodo a ejecutar: Solo los mtodos declarados pblicos. Lista de Parmetros que recibe el mtodo (cero o ms parmetros) Cuando el objeto receptor recibe el mensaje, comienza la ejecucin del algoritmo contenido dentro del mtodo invocado, recibiendo y/o devolviendo los valores de los parmetros correspondientes.

Ejemplo: el objeto "bicicleta" no tiene mucho sentido si no interacta con un objeto "persona" que pedalee. La interaccin entre objetos se produce mediante mensajes. Los mensajes son llamados a mtodos de un objeto en particular. Podemos decir que el objeto persona enva el mensaje "girar a la izquierda" al objeto bicicleta. Los mensajes pueden contener parmetros. Por ejemplo teniendo un mtodo en la clase bicicleta llamado "Girar" que recibe como parmetro la direccin (derecha o izquierda).

ENCAPSULAMIENTO (Ocultamiento de Informacin): Es la propiedad de la programacin orientada a objeto que permite ocultar al mundo exterior la representacin interna del objeto. Esto quiere decir que el objeto puede ser utilizado, pero los datos esenciales del mismo no son conocidos fuera de l. La idea central del encapsulamiento es esconder los detalles y mostrar lo relevante. Permite el ocultamiento de la informacin separando el aspecto correspondiente a la especificacin de la implementacin; de esta forma, distingue el "qu hacer" del "cmo hacer". La especificacin es visible al

usuario, mientras que la implementacin se le oculta.

El encapsulamiento en un sistema orientado a objeto se representa en cada clase u objeto, definiendo sus atributos y mtodos con los siguientes modos de acceso: Pblico (+) Atributos o Mtodos que son accesibles fuera de la clase. Pueden ser llamados por cualquier clase, aun si no est relacionada con ella. Privado (-) Atributos o Mtodos que solo son accesibles dentro de la implementacin de la clase. Protegido (#): Atributos o Mtodos que son accesibles para la propia clase y sus clases hijas (subclases).

POLIMORFISMO:

Una de las caractersticas fundamentales de la programacin orientada a objeto es el polimorfismo, que no es otra cosa que la posibilidad de construir varios mtodos con el mismo nombre, pero con relacin a la clase a la que pertenece cada uno, con comportamientos diferentes. Esto conlleva la habilidad de enviar un mismo mensaje a objetos de clases diferentes. Estos objetos recibiran el mismo mensaje global pero responderan a l de formas diferentes

LENGUAJE C:
Es un lenguaje de nivel medio, ya que combina elementos de lenguaje de alto nivel con la funcionalidad del lenguaje ensamblador. Es un lenguaje estructurado, ya que permite crear procedimientos en bloques dentro de otros procedimientos. El lenguaje c es un lenguaje de programacin creado en 1972 por Dennis M.

Ritchie en losLaboratorios Bell como evolucin del anterior lenguaje B, a su vez basado en BCPL. Al igual que B, es un lenguaje orientado a la implementacin de Sistemas Operativos, concretamente Unix. C es apreciado por la eficiencia

del cdigo que produce y es el lenguaje de programacin ms popular para crear software de sistemas, aunque tambin se utiliza para crear aplicaciones. Se trata de un lenguaje fuertemente tipificado de medio nivel pero con muchas caractersticas de bajo nivel. Dispone de las estructuras tpicas de los lenguajes de alto nivel pero, a su vez, dispone de construcciones del lenguaje que permiten un control a muy bajo nivel. Los compiladores suelen ofrecer extensiones al lenguaje que posibilitan mezclar cdigo

en ensamblador con cdigo C o acceder directamente a memoria o

Estructura bsica de un programa en C: El programa ms sencillo que se puede escribir en C es el siguiente: main( ) { }

Como nos podemos imaginar, este programa no hace nada, pero contiene la parte ms importante de cualquier programa C y adems, es el ms pequeo que se puede escribir y que se compile correctamente. En el se define la funcin main, que es la que ejecuta el sistema operativo al llamar a un programa C. El nombre de una funcin C siempre va seguida de parntesis, tanto si tiene argumentos como si no. La definicin de la funcin est formada por un bloque de sentencias, que esta encerrado entre llaves {}.

Hay un grupo de smbolos, que son tratados como caracteres individuales, que especifican algunos caracteres especiales del cdigo ASCII. Los ms importantes son:

\a Alerta \b \f \n \r \t \v \\ \' \" \OOO \xHHH Espacio atrs Salto de pgina Salto de lnea Retorno de carro Tabulacin horizontal Tabulacin vertical Barra invertida Comilla simple Comillas dobles Visualiza un carcter cuyo cdigo ASCII es OOO en octal Visualiza un carcter cuyo cdigo ASCII es HHH en hexadecimal

Un programa C puede estar formado por diferentes mdulos o fuentes. Es conveniente mantener las fuentes de un tamao no muy grande, para que la compilacin sea rpida. Tambin, al dividirse un programa en partes, puede facilitar la legibilidad del programa y su estructuracin. Las diferentes fuentes son compiladas de forma separada, nicamente las fuentes que han sido modificados desde la ltima compilacin, y despus combinados con las libreras necesarias para formar el programa en su versin ejecutable.

Tipos de Datos bsicos y Variables:

Los tipos de datos bsicos definidos por C son caracteres, nmeros enteros y nmeros en coma flotante. Los caracteres son representados por char, los enteros por short, int, long y los nmeros en coma flotante por float y double. Los tipos bsicos disponibles y su tamao son:

Char Short

Carcter Entero signo corto

(normalmente 8 bits) con (normalmente 16 bits)

Int

Entero con signo

(depende implementacin)

de

la

Unsigne Entero sin signo d Long Entero signo Float Double Flotante simple Flotante doble largo

(depende implementacin)

de

la

con (normalmente 32 bits)

(normalmente 32 bits) (normalmente 64 bits)

La palabra unsigned en realidad es un modificador aplicable a tipos enteros, aunque si no se especifica un tipo se supone int. Un modificador es una palabra clave de C que indica que una variable, o funcin, no se comporta de la forma normal. Hay tambin un modificador signed, pero como los tipos son por defecto con signo, casi no se utiliza.

Las variables son definidas utilizando un identificador de tipo seguido del nombre de la variable. Veamos el siguiente programa:

#include <stdio.h> main() { float cels, farh; farh = 35.0; cels = 5.0 * ( farh - 32.0 ) / 9.0; printf("-> %f F son %f C\n", farh, cels ); }

En el programa anterior se definen dos variables float, se asigna un valor a la primera y se calcula la segunda mediante una expresin aritmtica. Las asignaciones en C tambin son una expresin, por lo que se pueden utilizar como parte de otra expresin, pero segn que prcticas de este tipo no son muy recomendables ya que reducen la legibilidad del programa. En la

instruccin printf, el smbolo %f indica que se imprime un nmero en coma flotante. Hay un tipo muy importante que se representa por void que puede significar dos cosas distintas, segn su utilizacin. Puede significar nada, o sea que si una funcin devuelve un valor de tipo void no devuelve ningn resultado, o puede significar cualquier cosa, como puede ser un puntero a void es un puntero genrico a cualquier tipo de dato. Ms adelante veremos su utilizacin.

Funciones:

Un programa C est formado por un conjunto de funciones que al menos contiene la funcin main. Una funcin se declara con el nombre de la funcin

precedido del tipo de valor que retorna y una lista de argumentos encerrados entre parntesis. El cuerpo de la funcin est formado por un conjunto de declaraciones y de sentencias comprendidas entre llaves. Veamos un ejemplo de utilizacin de funciones: #include <stdio.h> #define VALOR 5 #define FACT 120 int fact_i ( int v ) { int r = 1, i = 0; while ( i <= v ) { r = r * i; i = i + 1; } return r; } int fact_r ( int v ) { if ( v == 0 ) return 1; else return v * fact_r(v-1); } main() { int r, valor = VALOR;

if ( (r = fact_i(valor)) != fact_r(valor) ) printf("Codificacin errnea!!.\n"); else if ( r == FACT ) printf("Codificacin correcta.\n"); else printf("Algo falla!!.\n"); }

Se definen dos funciones, fact_i y fact_r, adems de la funcin main. Ambas toman como parmetro un valor entero y devuelven otro entero. La primera calcula el factorial de un nmero de forma iterativa, mientras que la segunda hace lo mismo de forma recursiva.

Todas las lneas que comienzan con el smbolo # indican una directiva del precompilador. Antes de realizar la compilacin en C se llama a un precompilador cuya misin es procesar el texto y realizar ciertas sustituciones textuales. Hemos visto que la directiva #include incluye el texto contenido en un fichero en el fuente que estamos compilando. De forma parecida, #define nombre texto sustituye todas las apariciones de nombre por texto. As, en el fuente, la palabra VALOR se sustituye por el nmero 5.

El valor que debe devolver una funcin se indica con la palabra return. La evaluacin de la expresin debe dar una valor del mismo tipo de dato que el que se ha definido como resultado. La declaracin de una variable puede incluir una inicializacin en la misma declaracin.

Se debe tener muy en cuenta que en C todos los argumentos son pasados 'por valor'. No existe el concepto de paso de parmetros 'por variable' o 'por referencia'. Veamos un ejemplo:

int incr ( int v ) { return v + 1; } main() { int a, b; b = 3; a = incr(b); /* a = 4 mientras que b = 3. No ha cambiado despus de la llamada. */ }

Expresiones y operadores:

Los distintos operadores permiten formar expresiones tanto aritmticas como lgicas. Los operadores aritmticos y lgicos son:

+, ++, -*, /, %

suma, resta incremento, decremento multiplicacin, divisin, mdulo

>>, << rotacin de bits a la derecha, izquierda. & | ^ ~ ! AND booleano OR booleano EXOR booleano complemento a 1 complemento a 2, NOT lgico

==, != &&, || <, <= >, >=

igualdad, desigualdad AND, OR lgico menor, menor o igual mayor, mayor o igual

Control de flujo:

Sentencia if: La sentencia de control bsica es if (<e>) then <s> else <t>. En ella se evala una expresin condicional y si se cumple, se ejecuta la sentencia s; si no, se ejecuta la sentencia t. La segunda parte de la condicin, else <t>, es opcional.

int cero ( double a ) { if ( a == 0.0 ) return (TRUE); else return (FALSE); }

En el caso que <e> no sea una expresin condicional y sea aritmtica, se considera falso si vale 0; y si no, verdadero. Hay casos en los que se deben evaluar mltiples condiciones y nicamente se debe evaluar una de ellas.

Setencia switch: Se puede programar con un grupo de sentencias if then else anidadas, aunque ello puede ser farragoso y de complicada lectura. Para evitarlo nos puede ayudar la sentencia switch.

Su utilizacin es:

switch (valor) { case valor1: <sentencias> case valor2: <sentencias> ... default: <sentencias> }

Cuando se encuentra una sentencia case que concuerda con el valor del switch se ejecutan las sentencias que le siguen y todas las dems a partir de ah, a no ser que se introduzca una sentencia break para salir de la sentencia switch. Por ejemplo: ver_opcion ( char c ) { switch(c){ case 'a': printf("Op A\n"); break; case 'b': printf("Op B\n"); break;

case 'c': case 'd': printf("Op C o D\n"); break; default: printf("Op ?\n"); } } Setencia while: Otras sentencias de control de flujo son las que nos permiten realizar iteraciones sobre un conjunto de sentencias. En C tenemos tres formas principales de realizar iteraciones. La sentencia while (<e>) <s> es seguramente la ms utilizada. La sentencia, o grupo de sentencias <s> se ejecuta mientras la evaluacin de la expresin <e> sea verdadera.

long raiz ( long valor ) { long r = 1; while ( r * r <= valor ) r++; return r; }

Setencia for: Otra sentencia iterativa, que permite inicializar los controles del bucle es la sentencia for ( <i>; <e>; <p> ) <s>. La sentencia for se puede escribir tambin como:

<i>; while ( <e> ) { <s>; <p>; }

Break y Continue: Otras sentencias interesantes, aunque menos utilizadas son break y continue. break provoca que se termine la ejecucin de una iteracin o para salir de la sentencia switch, como ya hemos visto. En cambio, continue provoca que se comience una nueva iteracin, evalundose la expresin de control

Funciones de entrada/salida. En este apartado y los siguientes vamos a ver algunas de las funciones ms importantes que nos proporcionan las libreras definidas por ANSI y su utilizacin. Como hemos visto hasta ahora, el lenguaje C no proporciona ningn mecanismo de comunicacin ni con el usuario ni con el sistema operativo. Ello es realizado a travs de las funciones de librera proporcionadas por el compilador. El fichero de declaraciones que normalmente ms se utiliza es el stdio.h. Vamos a ver algunas funciones definidas en l. Una funcin que ya hemos utilizado y que, ella y sus variantes, es la ms utilizadas para la salida de informacin es printf. Esta permite dar formato y enviar datos a la salida estndar del sistema operativo.

#include <stdio.h>

int printf ( const char *format [, argumentos, ...] );

Acepta un string de formato y cualquier nmero de argumentos. Estos argumentos se aplican a cada uno de los especificadores de formato contenidos en format. Un especificador de formato toma la forma

%[flags][width][.prec][h|l] type. El tipo puede ser:

d, i entero decimal con signo o u x entero octal sin signo entero decimal sin signo entero hexadecimal sin signo (en

minsculas) X entero hexadecimal sin signo (en

maysculas) f e coma flotante en la forma [-]dddd.dddd coma flotante en la forma [-]d.dddd e[+/]ddd g E G c s coma flotante segn el valor como e pero en maysculas como g pero en maysculas un carcter cadena de caracteres terminada en '\0'

% p

imprime el carcter % puntero

Los flags pueden ser los caracteres:

+ -

siempre se imprime el signo, tanto + como justifica a la izquierda el resultado, aadiendo espacios al final

blank si es positivo, imprime un espacio en lugar de un signo + # especifica la forma alternativa

En el campo width se especifica la anchura mnima de la forma:

se imprimen al menos n caracteres.

0n se imprimen al menos n caracteres y si la salida es menor, se anteponen ceros * la lista de parmetros proporciona el valor

Hay dos modificadores de tamao, para los tipos enteros:

imprime long

un

entero

imprime short

un

entero

Otra funcin similar a printf pero para la entrada de datos es scanf. Esta toma los datos de la entrada estndar del sistema operativo. En este caso, la lista de argumentos debe estar formada por punteros, que indican dnde depositar los valores.

Conclusin La programacin orientada a objetos es una metodologa que descansa en el concepto de objeto para imponer la estructura modular de los programas. Permite comprender el dominio del problema a resolver, al intentar construir un modelo del mundo real que envuelve nuestro sistema. Es decir, la representacin de este mundo mediante la identificacin de los objetos que constituyen el vocabulario del dominio del problema, su organizacin y la representacin de sus responsabilidades. Este tipo de programacin ha

proporcionado las bases para la generacin y desarrollo de software con diferentes perspectivas y as cumplir diferentes tareas. Finalmente se puede decir que la programacin orientada a objetos es el mtodo de implementacin en el que los programas se organizan como colecciones cooperativas de objetos, cada uno de los cuales representa un ejemplar de una clase y cuyas clases son miembros de una jerarqua de clases unidas mediante relaciones de herencia.

Вам также может понравиться