Buscar

viernes, 10 de febrero de 2012

lunes, 30 de enero de 2012

Técnicas de Programación



INTRODUCCIÓN
Las diferentes etapas del programa suelen tener discontinuidad y son difícilmente identificables. En consecuencia existe una difícil fase de desarrollo y mantenimiento. En este documento se muestran las diferentes técnicas de programación las cuales permiten el desarrollo eficiente y eficaz de un programa.



 DEFINICIÓN

Una técnica de programación es una metodología que debe de seguirse y tomarse en cuenta al momento de programar. Deberá entenderse que para la programación deberán asumirse ciertas normas que permitan la estandarización de la programación, implicando una disminución de costos, independencia del programador y seguridad. Debe de tomarse en cuenta los paradigmas de la programación.



IMPORTANCIA

El diseño de un programa que se realiza sin seguir una metodología puede funcionar, pero se debe tener en cuenta que con el tiempo se convertirá en un conjunto de instrucciones. Es decir que las consecuencias de no utilizar un método determinado llevará a cometer errores que pueden costar el buen funcionamiento del mismo. Por eso seguir una metodología de programación es importante para obtener un buen resultado en el ámbito de la programación.

PROGRAMACIÓN ESTRUCTURADA

Cuando hablamos de Programación Estructurada, nos referimos a un conjunto de técnicas que con el transcurrir del tiempo han evolucionado. Gracias a éstas, la productividad de un programa se ve incrementada de forma considerable y se reduce el tiempo de escritura, de depuración y mantenimiento de los programas. Aquí se hace un número limitado de estructuras de control, se reduce la complejidad de los problemas y se minimiza los errores.
Gracias a la programación estructurada, es más fácil la escritura de los programas, también lo es su verificación, su lectura y mantenimiento. Esta programación es un conjunto de técnicas que incorpora:



RECURSOS ABSTRACTOS:

Los recursos abstractos son utilizados como un apoyo en la programación estructurada, en vez de los recursos concretos de los que se dispone (lenguaje de programación determinado).
Para disgregar un programa en términos de recursos abstractos debemos descomponer acciones complejas en acciones más simples, las que son capaces de ejecutar o constituyen instrucciones de computadora disponible.


DISEÑO DESCENDENTE:

Este es un proceso en el cual el problema se descompone en una serie de niveles o pasos sucesivos. Esta metodología consiste en crear una relación entre las etapas de estructuración, las que son sucesivas, de tal forma que se interrelacionen mediante entradas y salidas de información.

ESTRUCTURAS BÁSICAS:

Un programa propio puede ser escrito utilizando sólo tres tipos de estructuras de control:

* ESTRUCTURA SECUENCIAL: 

Es la estructura en donde una acción (instrucción) sigue a otra de manera secuencial. Las tareas se dan de tal forma que la salida de una es la entrada de la que sigue y así en lo sucesivo hasta cumplir con todo el proceso.

*ESTRUCTURAS SELECTIVAS:

Este tipo de estructuras son utilizadas para tomar decisiones lógicas, llamándose por esta razón estructuras de decisión o alternativas. En esta estructura es evaluada una condición y de acuerdo al resultado el algoritmo opta por una de las alternativas. Las condiciones son especificadas utilizando expresiones lógicas. 

*ESTRUCTURAS REPETITIVAS:

Las estructuras que repiten una secuencia de instrucciones un número determinado de veces se denominan bucles y, al hecho de repetir la ejecución de una secuencia de acciones se denomina iteración.



PROGRAMACIÓN MODULAR:


Este es uno de los métodos para el diseño más flexible y de mayor performance para la productividad de un programa. En este tipo de programación el programa es dividido en módulos, cada uno de las cuales realiza una tarea específica, codificándose independientemente de otros módulos. Cada uno de éstos es analizado, codificados y puestos a punto por separado.



*MEDIDA DE LOS MÓDULOS:
La determinación del tamaño de los módulos significa un obstáculo para la programación modular. No existe un estándar qué determine qué tamaño debe tener un módulo, pero existen alternativas que deben tomarse en cuenta, como una aproximación del tamaño físico de una página, es por eso que los programadores tienen la tarea difícil de poder hacer que los módulos tengan aproximadamente esta medida.



*IMPLEMENTACIÓN DE MÓDULOS:
Este tipo de programación puede implementarse utilizando módulos que toman diferentes nombres, según el lenguaje de programación en el cual estén expresados: Subrutinas en BASIC, procedimientos en Pascal, subrutinas en FORTRAN, secciones en COBOL y funciones como módulos en todos los lenguajes.


PROGRAMACIÓN ORIENTADA A OBJETOS:

En los últimos años la frase “orientada a objetos”, se ha vuelto muy popular, escuchándose a cada momento frases como sistemas “operativos orientados a objetos”, “lenguajes orientados a objetos”, “programación orientada a objetos” (POO), etc. Sin embargo, el concepto ya tiene un tiempo de aproximadamente 25 años. En esta parte se dará a conocer los principales conceptos más íntimamente relacionados con la POO, así como la forma de implementarlos en C++.
Se hará mención de los conceptos generales más utilizados en el modelo orientado a objetos, los cuales son: abstracción, encapsulación y modularidad. Y con respecto a programación, son: objeto, clase, método, envío y recepción de mensajes, herencia y polimorfismo.

*ABSTRACCIÓN:

Es una descripción o especificación simplificada de un sistema que hace énfasis en algunos detalles significativos y suprime los irrelevantes.
La abstracción debe enfocarse más en qué es un objeto y qué hace antes, de pensar en la implementación. Por ejemplo, un automóvil puede abstraerse como un objeto que sirve para desplazarse a mayor velocidad, sin importar cómo lo haga.

*ENCAPSULAMIENTO:

Típicamente, la información acerca de un objeto está encapsulada por su comportamiento. Esto significa que un objeto mantiene datos acerca de cosas del mundo real a las que representa en su sentido verdadero.
Típicamente a un objeto se le debe “pedir” o “decir” que cambie sus propios datos con un mensaje, en vez de esperar que tales datos de procesos extremos cambien la naturaleza de un objeto.



*MODULARIDAD:

La modularidad consiste en dividir un programa en partes llamadas módulos, los cuales pueden trabajarse por separado. En términos de programación, los módulos pueden compilarse por separado y la división no depende de cierto número de líneas sino es una división en términos de integrar en un módulo un conjunto de procedimientos relacionados entre sí, junto con los datos que son manipulados por tales procedimientos. El objetivo de la modularidad es reducir el costo de elaboración de programas al poder dividir el trabajo entre varios programadores.

*CLASES Y OBJETOS:

El estado de un objeto abarca todas las propiedades o características distintivas del mismo y los valores de cada una de estas propiedades. En términos de programación, puede decirse que las propiedades son las variables que sirven para describir tal objeto.
El comportamiento es la forma como actúa o reacciona un objeto en términos de cambio de estado, envío y recepción de mensajes. Está formado por la definición de las operaciones (funciones y procedimientos) que puede realizar este objeto. Los tipos más comunes de operaciones, o en POO métodos, son: modificar, seleccionar, iterar, construir y destruir. El conjunto de operaciones que un objeto puede realizar sobre otro, se conoce como protocolo.

*HERENCIA:

La herencia es la contribución más importante de la POO, pues mediante este mecanismo es posible lograr la principal meta de la POO que es la reutilización de código.
La herencia permite proporcionar una jerarquía de clases. En tal jerarquía, algunas clases son subordinadas a otras llamadas subclases, o como en C++, clases derivadas. Una subclase define el comportamiento de un conjunto de objetos que heredan algunas de las características de la clase padre, pero adquieren características especiales no compartidas por el padre, en este sentido se dice que la subclase es una especialización de la clase padre.


*POLIMORFISMO:


Otro de los mecanismos aportados por la POO es el de polimorfismo, el cual es la capacidad de tener métodos con el mismo nombre pero que su implementación sea diferente. En la vida diaria se presenta el siguiente ejemplo de polimorfismo: al tratar de frenar un vehículo siempre se debe oprimir el pedal del lado izquierdo y el vehículo se detendrá sin importar si los frenos son de tambor o de disco.





PROGRAMACIÓN BASADA EN MODELOS MATEMÁTICOS:


El significado de modelo matemático en matemática fundamental, sin embargo, es algo diferente. En concreto en matemáticas se trabajan con modelos formales. En el aspecto de la programación los modelos permiten adelantarse a los resultados concretos por medio de planteamientos, los cuales permitirían a la ayuda de un programa.



CONCLUSIÓN:

Como conclusión podemos apreciar que la programación es muy importante en la actualidad y lo seguirá siendo por un buen tiempo, pero así como recalcamos su importancia decimos que lo más importante no es el lenguaje de programación sino el planteamiento de la solución al problema, ya que podría caerse en un error al pensar que sin las técnicas o métodos que se emplean para la programación vamos a llegar fácilmente a la elaboración correcta de un programa, lo cual no es imposible cuando se trata de programas sencillos y pequeños, pero cuando se tienen que elaborar programas muy grandes y con un alto grado de complejidad hay problemas para su diseño, porque para esto se debe seguir un orden y utilizar técnicas que deben ser tomadas muy en consideración para el diseño y la estructura general de los programas.

BIBLIOGRAFIA:

Fundamentos de Programación (Luis Joyanes Aguilar).

McGRAW – HILL/INTERAMERICANA DE ESPAÑA S.A.

http://es.wikiversity.org/wiki/T%C3%A9cnicas_de_programaci%C3%B3n

http://perso.wanadoo.es/pictob/tecprg.htm









domingo, 22 de enero de 2012

Algoritmo para saber si un numero es par o impar

Numero par o impar:

N=numero ;

La lógica de este problema es leer un numero N luego dividirlo entre 2 y comparar si el residuo es igual a cero eso se realiza con el operador % que nos indica el residuo de una división; luego comparamos si N es divisible entre  2 es un numero par sino es un numero impar; Fin.

                             CLICK PARA VISUALIZAR MEJOR LA IMAGEN

sábado, 21 de enero de 2012

Algoritmos para saber si un numero es perfecto

Numero perfecto:
Un numero es perfecto, cuando la suma de sus divisores excepto el mismo dan el mismo numero;
N=numero, del cual queremos saber si es perfecto.
C=contador que empieza desde el numero 1 hasta un numero menor que el mismo numero
S=suma acumulada de los divisores;

La lógica de este algoritmos es dividir al numero N entre todos los valores que toma C que empieza desde el numero 1 y va sumando hasta ser igual que N-1; no tomamos al numero N ya que los números perfectos son la suma de todos los divisores excepto el mismo numero en este caso N. Luego de hacer el proceso mencionado pasamos a comparar si S, en este caso la acumulación de la suma de los divisores es igual al numero N; si es igual el numero es perfecto.


CLICK EN LA IMAGEN PARA VISUALIZARLA MEJOR

Algoritmo para saber si un numero es primo

Numero primo:

N=numero a comprobar si es primo ;
C=numero que aumenta e ira dividiendo a N;
D=cantidad de divisores del numero; 

El símbolo "%" que se muestra en la imagen en algoritmos significa "mod" que se encarga de sacar el resto de una división. 

La lógica de este algoritmo es leer un numero N validar que sea mayor que cero ya que no existe numero primo menor que 1; luego ir dividiendo el numero N entre el contador C que ira aumentando de uno en uno según lo indica el ejercicio de la imagen; luego si el; N% C=0; el contador de divisores D aumentara de uno en uno; para finalizar se comparara si la variable D es igual a 2, si es igual a 2 es primo ya que los números primos solo tienen 2 divisores.

CLICK PARA VISUALIZAR MEJOR LA IMAGEN

Algoritmo para saber la suma de los N primeros números Naturales

Suma de los primeros N números naturales:

N=cantidad de números;
C=contador de números;
S=suma que se acumula según el contador;

La lógica de este ejercicios es leer la cantidad de números N; validar si la cantidad de números es mayor que cero ya que una cantidad de números no puede ser cero ni menor; luego ir acumulado en la variable S la suma desde el C=1 hasta el C=N; luego mostrar S y Fin del algoritmo.


Algoritmo Para saber el Factorial de un numero

Factorial de un numero:

nro= Numero a sacar factorial;
C=Variable que aumentara según la condición del algoritmo;
FAC= Variable que albergara el producto de la variable C;


La lógica de este algoritmos es validar el numero nro ya que no existe el factorial de números menores que cero; luego ir aumentando la variable C hasta que sea igual a la variable nro; y según aumenta C ira multiplicando a la variable FAC; luego mostrar FAC y Fin;

CLICK PARA VISUALIZAR MEJOR LA IMAGEN

viernes, 20 de enero de 2012

Suma, Resta, Multiplicación y división de 2 Números

Operaciones básicas

a;b : números ingresados;


la lógica de este ejercicio es simple solo tenemos que leer 2 numero y hacer la cuatro operaciones con ella y guardar el resultado en la variables que indica la imagen y Fin.



CLICK PARA VISUALIZAR MEJOR LA IMAGEN

Síguenos en Facebook