|
|||||||||||||||||
|
Bien, par empezar les diré que el lenguaje de programación que se verá en esta pagina será el C++. Para los que conocen un poco del tema les resultará un tanto vulgar utilizar este tipo de lenguaje ya que si bien es un lenguaje de alto nivel no es el más conveniente, una razón por la cual lo digo es porque a la hora de programar, si por ejemplo cometemos un error de sintaxis o de lo que fuere, cuando lo compilemos el programa mostrara errores de sintaxis en este caso, pero solo te dirá eso y no en que lugar exactamente fueron cometidos esos errores (en la mayoría de los casos) y uno se volverá loco tratando de buscar ese error que por más mínimo que fuera (por ejemplo si metimos un ; de mas) hace que el programa ande mal.
Antes de meternos en lo que es la programación en si, se debe tener en cuenta de que hay pasos anteriores a programar. Uno siempre tiene que tener una base sobre la cual guiarse y a partir de esta empezar a resolver el "problema".
INTRODUCCIÓN A LA PROGRAMACIÓN DE COMPUTADORAS
El objetivo de la programación es la "resolución de problemas" utilizando un computador. Un computador es un sistema electrónico dedicado al procesamiento de datos (información), formado por varias unidades, cuyo funcionamiento viene dictado por el programa que se halla almacenado en su memoria principal. Un programa es una serie de instrucciones ordenadas correctamente que permiten realizar una tarea o trabajo especifico. Es un mecanismo que solo opera sobre datos, sin importar las unidades, resolviendo las operaciones (sumas y comparaciones) a una elevadísima velocidad y con gran precisión. Debido a que nuestra tarea es la resolución de problemas utilizando el computador, debemos expresar a los problemas en términos sencillos y adecuando, que este pueda interpretar a través de las instrucciones que poseen los diversos lenguajes de programación con que se dispone en la actualidad. Un lenguaje de programación es un conjunto de normas lingüísticas que permiten escribir un programa y que este sea entendido por el ordenador y pueda ser trasladado a ordenadores similares para su funcionamiento en otros sistemas. En general un lenguaje de programación será un medio de comunicación entre el programador, un ser humano, que emplea un "lenguaje natural" y el computador que opera internamente con lenguajes basados en códigos binarios. Los primeros lenguajes se diseñaron cercanos al computador, lo cual implicaba una gran complejidad en la programación; a través del tiempo se qué cambiando la orientación para acercalos mas a un lenguaje natural. Esta evolución se produjo tanto en los lenguajes como en los paradigmas de programación. De una programación Libre (el objetivo era solucionar el problema, no importaba el como), se paso a una Estructurada (los problemas se resuelven utilizando un diseño modular en forma descendente) a otra Orientada a Objeto (los problemas se resuelven utilizando conceptos qué el hombre maneja desde su mas temprana edad: herencia, clases, pertenencia, etc.) En los lenguajes se paso del Assembler, lenguaje de "bajo nivel", a un lenguaje de "alto nivel", como ser Cobol, RPG, Fortran, Basic, Clipper, Pascal, C, Java, etc., orientados estos últimos a una programación Tipo Visual, o sea dotados, entre otra cosas, de una interfase que nos facilitará enormemente la programación actual, que se realiza a través de ventanas, tipo Windows.
Metodología
Para la obtención del programa a partir de la definición del problema se ha definido una metodología de trabajo la cual se compone de las siguientes etapas:
1. Comprensión del problema. Resulta evidente que no podamos intentar la resolución de un problema sin siquiera haberlo comprendido totalmente, sin saber que hacer en una forma clara y concisa. Nuestra tarea deberá comenzar analizando profundamente los requerimientos del problema, familiarizándonos con el enunciado leyéndolo cuidadosamente, resaltando las partes mas importantes y dificultosas de interpretar. Si el problema lo permite conviene apoyarse en soluciones graficas, confección de tablas o cualquier otro elemento que nos facilite la comprensión. Podemos considerar que hemos comprendido el problema cuando podamos satisfacer las siguientes preguntas:
a) Cuales son los datos a contemplar en el problema? - ( Cantidad-Tipo ) b) Cuales son los resultados que debo proporcionar? - ( Cantidad-Secuencia ) c) Que tipo de relación, método o proceso debo establecer con los datos suministrados para obtener los resultados pedidos? - ( Calculo y/o Selección )
Ejemplo: Se suministran dos valores de los catetos de un triangulo rectángulo y nos piden calcular e informar el valor de la hipotenusa. Conviene graficar el triangulo.
Es un clásico problema cuya solución surge de la aplicación de una formula.
. l \ l \ l \ h= V¯a2+b2¯' l b \ h l \ l_______\ a
a) Datos: los valores de los catetos "a" y "b" (tipo de datos-enteros-reales). b) Resultados: un valor, el de la hipotenusa. c) Proceso: de cálculo, uso de una fórmula.
2. Diseño de una estrategia. Consiste en la elaboración de un plan general sobre el cual nos basaremos para resolver el problema, donde definimos el como, o sea en que forma resolveremos el problema. Esta etapa es la mas creativa y también la mas dificultosa en la resolución de los problemas. Es donde se aprecia la experiencia e intuición de quien resuelve el problema. En general la estrategia a aplicar consistirá en "dividir el problema original" en una sucesión de problemas mas simples o conocidos, hasta llegar a un tamaño de los problemas que sean perfectamente comprensibles y que luego los podríamos ir resolviendo en forma individual. Un proyecto de programación, en general, estará compuesto por un esqueleto o programa principal, que utilizara un gran conjunto de subprogramas (pequeños programas, hechos o a realizar) en la secuencia que se considere necesaria.
Ejemplo: Confeccionar un programa para determinar la edad promedio de los alumnos del curso.
[ Comprensión del problema ]
a) Datos: Edad de cada alumno y cantidad de alumnos. b) Resultados: edad promedio. c) Proceso: calculo promedio.
[ Estrategia ]
a) Obtengo la cantidad de alumnos y la edad de cada uno. b) Calculo del promedio (sumatoria y cociente). c) Informo la edad promedio.
3. Desarrollo del algoritmo. Un ALGORITMO es un conjunto finito de instrucciones u operaciones que ejecutadas en un orden determinado permiten resolver el problema planteado. El concepto de "algoritmo" es similar al de "estrategia", con la diferencia que entramos a un grado mayor de refinamiento de los pasos iniciales del problema, pasamos a hablar de "instrucciones", lo cual involucra un mayor grado de minuciosidad y precisión en los pasos a definir. En general el algoritmo debe reflejar una solución similar a la que realizaríamos manualmente. Esta secuencia de instrucciones que conforma la solución, se puede desarrollar en forma analítica o grafica, adoptamos esta ultima y confeccionamos el "diagrama de lógica", el cual será un conjunto de "símbolos gráficos" lógicamente ordenados y vinculados entre sí. Tanto el desarrollo del programa principal como los subprogramas que comprenden el proyecto se realizaran en base a las normas de la "programación estructurada". La técnica de la programación estructurada: se basa en un diseño modular, donde cada modulo es diseñado en "forma descendente" (top-down), a través de una serie de niveles o pasos sucesivos de refinamiento a los cuales se les vuelve a aplicar esta técnica hasta llegar a que todos los módulos tengan un nivel de resolución inmediato, basados en la combinación de tres estructuras básicas y la estructuración de datos. Este método tiene como soporte teórico al teorema fundamental de la programación estructurada, (Bohn y Jacopini) que afirma: "todo algoritmo puede ser construido en forma correcta utilizando "únicamente" tres estructuras básicas." Estas son:
. SUCUENCIAL . SELECCIÓN . ITERACIÓN
Luego de completar la explicación de la metodología volvamos sobre la explicación de esta técnica.
Ejemplo: Construir un algoritmo que reciba dos números enteros y determine e informe si el primero es múltiplo del segundo. Utilizaremos algunos de los símbolos gráficos.
________ \ A,B / ------------------------------------------------------------- 1. Ingreso de datos. ¯¯¯¯¯¯ _____l_______ l R <- A mod B l -------------------------------------------------------- 2. Calculo del resto. ¯¯¯¯¯l¯¯¯¯¯¯¯ / \ / \ / R=0 \ ----------------------------------------------------------- 3. Investigo el resto. /___________\ l __ l __ l l/ SI \ l /NO \ l --------------------------------------------------------- 4. Informo el resultado. l¯¯¯¯¯ l¯¯¯¯¯ l l_____ l______l l \¯¯/ ------------------------------------------------------------------ 5. Fin del programa. '
Existen otras técnicas para explicitar la lógica del problema, prefiero el diagrama, el cual nos proporciona, entre otras, las siguientes ventajas:
1) Permite una sencilla y rápida visualización total del problema. 2) Es un verdadero medio de comunicación entre quien explica y quien aprende. 3) Es un medio claro de documentación de los problemas.
4. Prueba del algoritmo. Consiste en la elaboración de un "juego de prueba", el cual deberá constar de una variedad de situaciones de posibles datos a ingresar al problema. Luego con estos datos efectuamos el seguimiento paso a paso del diagrama y ayudados con la confección de una lista con las variables utilizadas, donde registramos los valores que van tomando, podemos determinar los resultados a obtener y compararlos con los esperados. Entendemos por variable: estructura que contiene datos y recibe un nombre único dado por el programador, que mantiene los datos asignados hasta que un nuevo valor se le asigne o hasta que el programa termine. Lo opuesto de variable es constante y en este casi se trata de un valor o conjunto de caracteres que permanecen invariables durante la ejecución del programa.
Ejemplo: Continuamos con el ejemplo anterior, que era la determinación de los múltiplos.
A l B l R l Resultado ¯¯¯ ¯¯¯ ¯¯¯ ¯¯¯¯¯¯¯¯¯ 15 3 0 SI - Múltiplo (A es múltiplo de B) 11 4 3 NO - No es múltiplo
Si los resultados son incorrectos efectuamos las correcciones necesarias y cuando comprobemos que los resultados son correctos, podemos pasar a la etapa siguiente, que es la codificación.
5. Codificación del algoritmo. Al codificar el algoritmo en el lenguaje deseado obtenemos "el programa", que luego podemos, "ingresar" en el computador a través del teclado usando algún software de edición disponible que en general funcionan de manera similar a los editores de texto. (Las siguientes sentencias están formuladas usando el lenguaje Pascal)
PROGRAM múltiplos; USES crt; { carga la Unidad con las funciones para uso de pantalla } VAR A, B, R: integer; { definición de variables y tipo } BEGIN CLRSCR; { borra la pantalla } WRITE ('Ingrese el numero a investigar: '); READLN (A); WRITE ('Ingrese el divisor: '); READLN (B); R:=A MOD B; { calculo el resto A/B } IF R=0 THEN WRITELN (A:3, 'es múltiplo de' B:3) ELSE WRITELN ('no es múltiplo'); END.
6. Ejecución del programa. Una vez ingresado o cargado el programa, efectuamos la COMPILACIÓN del mismo, que es la traducción de las sentencias escritas usando el lenguaje de programación por nosotros elegido al lenguaje interno del computador. Durante la compilación se analizan entre otros aspectos, la sintaxis y la semántica de las instrucciones, indicando los errores, que deberemos ir corrigiendo. Entendemos por sintaxis la utilización correcta de cada una de las sentencias de cierto lenguaje de programación utilizando tenga un significado correcto. Terminada la corrección de los errores pasamos a realizar la EJECUCIÓN del programa por el computador, con la orden RUN, donde este ejecutara las instrucciones en forma similar a las que vimos con el juego de prueba.
7. Evaluación de resultados. Efectuaremos el análisis de los resultados obtenidos comparándolos con el juego de prueba. Evaluando adecuadamente las conclusiones podemos decidir mejorar el programa o guardarlo en nuestra biblioteca listo para su utilización.
Y WENO A PARTIR DE ACA LA SECCION ESTA EN CONSTRUCCION.
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Hack Enterprise [ http://hacke.webcindario.com ] | Todos los derechos reservados ® | CopyRight 2002-2XXX © | Prohibida la copia parcial y/o total de la web | Prohibido linkear links linkeados, linkear links tambien... sin la previa y/o anticipada autorizacion de/los webmaster(s) | Queda reservado por copyright todo el diseño de la web, imagenes, logos, etc... | Webmasters -> webmaster@hackenterprise.zzn.com | Page -> hacke@hackenterprise.zzn.com | Webmaster limp -> Mario E. Geréz de La República Argentina, Bs. As., La Matanza, Isidro Casanova | Gracias a las webs amigas por el material brindado ! |