You are on page 1of 38
0/2 3°13 | COLEGIO GRANADEROS DIPREGEP 4787 Informatica Profesora: Beatriz Villabrille UA| Programacion estructurada BACHILLERATO A DISTANCIA Orientacién: Gestién y Administraci6n Indice PAGINA ww a 16 21 23 2s 27 31 35 39 ‘CONTEND Introduccion Esquema de contenidos de la UA4 Noci6n de Algoritmo Diagrama de flujo Programaci6n Estructurada Los datos Cierre de esta Unidad Actividad integradora Autoevaluacion Claves de autocorreccion Anexo 1 ‘Anexo 2 Anexo 3 Direccién General de Cultura y Educacién de la Pcia. de Buenos Aires Res, 89/99 Introduccién Estimado alumno: A\lo largo de los afios se ha considerado a la programacion como una practica intelectual que desarrolla y organiza el pensamiento logico de quien programa. Es decir que el programador en su tarea pone habilidades y estrategias intelectuales y utiliza no s6lo procesos, logicos sino también creativos, intuitivos y analiticos. Para que un programador realice un trabajo con éxito, primero debe identificar claramente el problema 0 proceso que debe resolver y posibles formas de abordar a la soluci6n, es decir, diagramar los distintos pasos de !a resolucién. Es precisamente este tema el que ‘trataremos en forma sencilla en esta unidad, La accion de programar consiste basicamente en el uso de un lenguaje de programacién para comunicar a la maquina el modo de resolver el problema. Previamente requiere la confecci6n de un buen diagrama de flujo. Informatica + U A BACHILLERATO A DISTANCIA, En esta UA usted lograra: > Interpretar el alcance de la programaci6n estructurada, > Expresar las secuencias ldgicas de la resolucion de un problema mediante un diagrama. P identifica las distintos simbolos utilizados para la diagramacién. > Expresar en el lenguaje adecuado las ordenes necesarias para que el programa pueda resolver un problema. > Reconocer la importancia de la precision del lenguaje y la funcién de las diferentes estructuras para poder obtener un buen programa EI siguiente esquema le posibilitaré mayor orientaci6n en los temas centrales, Informatica * UA 4 Esquema de contenidos de la UA4 Programacion estructurada [——> * Nocién de Algoritmo L. Resolucion de problemas. }-—+ * Diagrama de flujo Simbolos que se utilizan. Reglas. Clasificaci6n de estructuras. ——> * Programaciénestructurada L——» © Los datos Constantes. Variables. Operaciones con cadenas. Funciones. Informatica * UA a Nocion de Algoritmo Resolucién de problemas Para resolver un problema vamos a considerar cuatro etapas: 1-Formulaci6n 0 enunciado del problema: Un problema debe ser enunciado en forma correcta y sin ambigiedades. 2-Eleccién de un método o procedimiento para hallar la solucién al problema. 3- La codificacion: consiste en expresar el método o procedimiento elegido de forma tal que pueda ser interpretado por el procesador que va a utilizarse. 4 La ejecucién del procedimiento elegido para obtener la solucion del problema D> Eiemplo: Preparar una tortilla de papas de tres huevos. El enunciado de este problema basta para que, por ejemplo, siel procesador €5 un cocinero experto, éste pueda resolverlo sin ninguna informacion adicional Puede ser asi: 1- Mezclar papas, huevos y una pizca de sal en un recipiente 2- Freir Pero si asino fuera, debemos describir todos los pasos necesarios para realizar lapreparaci6n. Si el procesador fuera un inexperto en cocina tendriamos que descomponer los pasos anteriores en BACHILLERATO A DISTANCIA es 1.1. Pelar las papas 1.2. Cortar las papas en rodajas finas 1.3. Calentar el aceite en la sartén 1.4 Dorar las papas 1.5. Batir los huevos en un recipiente 1.6 Verter las papas en el recipiente y agregar una pizca de sal 2.1 Calentar el aceite en la sartén 2.2 Verter el contenido del recipiente en la sartén 2.3. Dorarla tortilla de ambos lados Sil procesador fuera un nifio la tarea 1.5 “batir los huevos en un recipiente” puede no resultar suficientemente explicita y tendriamos que descomponerla ast: 1.5.1. Poner los tres huevos sobre la mesada 1.5.2 Tomar un huevo de la mesada 1.5.3 Cascar el huevo y verter su contenido en el recipiente 1.5.4. Tirar la céscara en el recipiente de residuo Repetir hasta que no haya més huevos sobre la mesada Esto se repite hasta que la condici6n sea verdadera. \Veamos ahora el concepto de algoritmo Algoritmo: Es el procedimiento que permite a partir de los datos de un problema obtener la solucién del mismo. Informatica # U Aa. Los pasos del procedimiento pueden presentarse de tres formas: a- Mediante una descripcion lineal b- Mediante una descripcion detallada & Mediante organigramas (diagramas de flujo) Por lo tanto, estos procedimientos varian segdn sea el problema a resolver. No se pueden prever algoritmos fijos pero se pueden dar algunas pautas utiles para su elaboracion. Estas pueden sintetizarse en las siguientes D> Dede contar con un nimero finito de etapas perfectamente definidas. J Responder al problema general, es decir, ser capaz de resolver todos los problemas con la misma estructura, teniendo en cuenta las posibles variantes que pueden presentar aquellos > Tener en cuenta su aplicacion practica, evitando a sofisticacion innecesaria. Por lo dicho se puede inferir que su confeccién es algo personal y requiere, en general, criterios propios, por lo que pueden diferir de otros algoritmos que logren la misma solucion. COLEGIOGRANADEROS BACHILLERATO A DISTANCIA, ws Diagrama de flujo Es la sintesis gréfica de los pasos que se deben dar para desarrollar un algoritmo. Un diagrama de flujo ilustra las etapas y el orden a seguir La confeccion de diagramas tiene por objeto lograr una comprensi6n general del problema y del proceso para lograr una solucién. Es un documento visible y sintético del algoritmo; permite detectar fallas logicas en su confeccién (si las tiene) y simplifica su presentacion para su ejecucion. EI diagrama de flujo es una estructura de simbolos llamados bloques conectados entre si que indican paso a paso las operaciones 0 decisiones l6gicas que deben ser realizadas EI "flujo de trafico” es unidireccional, por lo cual se utilizan flechas que indican la direccion que normalmente es de arriba hacia abajo y de izquierda a derecha del diagrama. El conocimiento de bloques de decision, bifurcaciones y ciclos es bésico para la organizacion de un programa Los diagramas de flujo son particularmente Utiles durante la etapa de planificacién 0 conceptualizacion de la programacion, especialmente en las partes dificiles. Los programadores experimentados tienden a usarlos menos que los principiantes. Sin embargo, tanto si el diagrama de flujo existe escrito en un papel como en la mente del programador, la idea de diagramar el flujo de informacién y de control es esencial para el usuario de un ordenador como herramienta para resolver los problemas. Se pueden hacer diagramas de flujos de tareas sencillas como cruzar la calle, leer un libro o también para resolver complicados algoritmos mateméticos Informatica * UA 4 Simbolos que se utilizan Los simbolos de los diagramas de flujo sirven para mostrar de una manera gréfica y facilmente reconocible, los pasos que se siguen en la resolucién de un problema. En realidad cada usuario podria tener sus propios simbolos para representar sus procesos en forma de diagramas de flujo. Esto supondria que s6lo €l, que conoce este problema, estaria en condiciones de interpretarlos. Para solucionar este inconveniente y hacer comprensibles los diagramas 2 todas las personas, se estandarizaron y normalizaron los simbolos Los simbolos mas utlizados para procesos simples (que son los que estu- diaremos) son: Eras eee Terminal: Indica el camino y fin de un programa Entrada de datos: Dentro de él se indican los datos que requiere el problema. Instrucciones (proceso): Petmite indicar las operaciones que deben realizarse. Decisién: Se utiliza cuando se debe optar entre alternativas. jreccién de flujo: Conecta los distintos bloques ¢ indica el sentido que deben recorter. BACHILLERATO A DISTANCIA Salida de informacién: Se indica dentro de él nombre de la informacion requerida, Ciclo: Parte del proceso que se ejecuta en forma sucesiva, un cierto numero de veces. Esto se indica con una flecha que une los bloques inicialesy finales del segmento de programa que se va a reiterar, colocando un dirculo con el namero de veces que se debe repetir Conectores: Se usan para relacionar partes del diagrama Reglas para armar un diagrama de flujo a Dos direcciones de flujo diferentes nunca deben cortarse. b-Con la excepcion del bloque terminal, a cada bloque entra una sola direccion de flujo. De cada bloque debe salir una sola direcci6n de flujo con las siguientes excepciones: 1. Del bloque terminal cuando indica el final del diagrama 2. Del bloque de decisién, del que pueden partir dos o tres direcciones de flujo. d- Se pueden utilizar todos los conectores que sean necesarios Informatica © UA 4 e- En.caso de que el diagrama no entre en una pagina, el conector vincula el bloque que deja con el bloque que ingresa en la pagina nueva. El conector nexo llevaré el mismo numero. El conector de un bloque se conecta con la direccién del flujo que ingresa en el bloque. g- Cada direcci6n de flujo tiene una flecha que indica el sentido de dicha direccion. D> Ejemplo: Diagrama de flujo de las etapas que deben cumplirse al integrar una fila de espera hasta ser atendido. Comenzar )° | Esperar en fila ke {Ulego a la ventanilla? si u" COLEGIO GRANADEROS BACHILLERATO A DISTANCIA N week weebuveberbubddbodsooede . Actividad N°1 Realice el diagrama de flujo de los pasos que se deben seguir para pintar una pared contando con las latas de pintura necesarias, el pincel y suponiendo que se puede efectuar el trabajo sin contratiempos y sin descanso. Se considera terminado el trabajo cuando esté la pared totalmente pintada con una mano de pintura. Veamos otro ejemplo: Para ingresar a un instituto se debe: llenar una solicitud con todos los datos, ser aprobado por las autoridades, rendir 0 no examen de ingreso seguin las normas establecidas en el reglamento, y en el caso de rendirlo, obtener mas. de7 puntos. ‘Completar la soicitud Si Si , No si Ingresa No ingress Informatica * UA 4 Clasificacién de estructuras La estructura de un programa puede representarse mediante la utilizacion de tres estructuras basicas que permiten descomponer un problema general en una serie de problemas de menor generalidad. Este método de anilisis se denomina TOP DOWN. Las estructuras basicas para la resolucion de un problema se pueden clasificar en: a- Estructura de secuencias: indica el orden en que deben realizarse los procedimientos. b- Estructuras de decisién: indica la eleccion que debe realizarse para elegir uno entre varios procedimientos alternativos. Estructura de iteraci6n: indica cuando una operacion debe efectuarse un numero finito de veces. Programacion Estructurada En la actualidad existen varios lenguajes de programaci6n que fueron surgiendo y perfeccionandose dia tras dia segin los avances del hardware. En la década del 90 comenz6 a hablarse de la programacién visual que de algun modo aport6 un conocimiento artistico a la programacion tradicional, fuertemente enmarcada por una tendencia al cientificismo. La programacién tradicional construy6 sus bases sobre un método llamado TOP DOWN, lo que significa de arriba hacia abajo, que consistia en lo siguiente: una vez determinado el problema a resolver, 0 sea, el objetivo del programa, se pasaba a descomponerlo en varias partes divisibles a su vez en subpartes mas simples y asi sucesivamente, hasta lograr una correcta BACHILLERATO A DISTANCIA, “4 integraci6n de las subpartes y partes del programa. Aeste modo de programar se lo llamé programacion estructurada. Se ha comprobado que un programa que no pueda ser modificado facilmente esta condenado a la muerte informatica. Debe procurarse, por lo tanto, que los programas sean flexibles y transportables: flexibles para que se adapten con facilidad a cualquier cambio; transportables de forma que cualquier nuevo proceso pueda utilizar sus subrutinas sin introducir grandes cambios. Para ello conviene emplear técnicas de programacién que permitan el desarrollo de software facilmente modificable. Todas estas consideraciones se acercan a la programacién estructurada: cada problema debe descomponerse en una serie de problemas mas pequefios hasta llegar a un nivel en que cada uno de ellos no pueda descomponerse més. Es en este momento cuando realmente se puede resolver el problema planteado al principio. Cada uno de estos problemas minimos realiza una sola funcion: de esta forma un problema de orden superior puede usar problemas minimos para su resolucién, comunes a varios niveles. Los problemas minimosno son mas que los médulos de los que consta el programa EI software obtenido es modular, mientras que las técnicas empleadas para desarrollarlo son estructuradas. Para conseguir que los programas sean transportables es necesario programar sobre la base de médulos de pequefio tamafio, cada uno de los cuales debe faclitar toda le documentacién posible acerca desu funcionamiento. Es preciso que con un simple vistazo al listado de cada médulo, cualquier programador comprenda su funcionamiento. Los algoritmos de un programa estructurado deben ser muy sencillos. Es preferible utilizar varias instrucciones separadas que una sola con muchos niveles de paréntesis, operaciones complicadas, etc. Otro factor muy importante que determina la legibilidad de un médulo es la linealidad de la secuencia de sus instrucciones. Cualquier programa estructurado puede construirse por medio de tres tipos Informatica * UA 4 bésicos de estructuras que son, como ya lo mencionamos: D> secuencia lineal D> bifurcacion > repeticion Las secuencias lineales representan una operacion acci6n ejecutada dentro de! programa: Secuencia 1 | Secuencia 2 J Secuencia 3 Cuando un programa llega a una bifurcacién decide en funcién del valor que tome una determinada condicién, el procedimiento que debe ejecutarse a continuacion. Estructura de bifurcacion Si No Si No Bloque de Bloque de ff [Bloque de proceso : proceso proceso COLEGIOGRANADEROS BACHILLERATO A DISTANCIA Estructura de repeticion Bloque de programa Bloque de programa Los datos Constantes Las constantes son valores que durante la ejecucion de un algoritmo mantienen su valor, 0 sea, no se modifican. Existen constantes de dos tipos: numérica y alfanumeéricas. Las constantes alfanuméricas son cadenas de caracteres que tienen entre Oy 255 caracteres alfanuméricos encerrados entre comillas. D> Porejemplo: “hola” “PEPE” “200 pesos” 16 Informatica # UA. Las constantes numéricas son numeros positivos 0 negativos. Para expresar decimales se utiliza el punto o la coma, seguin la configuracién del usuario. Variables Una variable es un valor que se almacena en una zona de memoria a la que el programador le asigna un nombre. Pueden almacenarse valores de constantes 0 de otras variables. EI nombre de la variable no puede coincidir con ninguna palabra reservada del lenguaje. Un nombre valido est constituido por una letra seguida de una sucesiOn de letras y/o nimeros. Las variables alfanuméricas deben tener como Ultimo carécter el simbolo $. Las variables pueden ser de tipo alfanumérica 0 numéricas. Para asignarle datos a una variable se utiliza el signo * = “ J Elemplos de asignaciones de datos a variables: AS = “PEPE” B$ = "1396" A= 150 C= 34 D= ES Sele asigna a D el contenido de la variable ES D> Ejemplos de diagramas de flujo usando variables: 1- Dados 2 nimeros, imprimir su suma y su producto. Primero establecemos las variables que van a representar a los datos: at COUGIOGRANADEROS. BACHILLERATO A DISTANCIA S= AWB 2-Impri los nombres y apellidos de los alumnos del curso. N$ es la variable para los apellidos y necesitamos de una variable auxiliar que vaya contando para poder detener el proceso cuando la variable llegue a 10, ala que llamaremos C. Esta variable C recibe el nombre de contador y es muy utilizada en programaci6n. [a Fin Informatica # UA 4 3- Ingresar 10 nameros, imprimir los positivos. ‘Comienzo CHT Operaciones con cadenas La Gnica operacién elemental que se puede utilizar con cadenas (secuencia de caracteres alfanuméricos) es la concatenacion, que se representa mediante el operador + (suma). Concatenar significa unir dos cadenas de caracteres. Por ejemplo: B$= “Hola” A$=" Susana” C$= AS + BS El resultado de C$ seré "Hola Susana”. Observe que el espacio que hay entre “Hola” y “Susana” es porque en la cadena A$ hay un espacio antes de Susana, ya que el espacio es un cardcter més para la computadora. COLEGIO GRANADEROS BACHILLERATO A DISTANCIA, 20 Funciones Los lenguajes de programacién suelen tener una serie de funciones elementales que se pueden clasificar en dos categorias: funciones intrinsecas y funciones en el propio lenguaje. Las funciones estan constituidas por una palabra clave seguida de un argumento, que es una constante, variable o expresion encerrada entra paréntesis. Algunas de las funciones més utilizadas son: ‘ABS(X) da el valor absoluto de un numero INT(X) dala parte entera de un numero SQR(X) dala raiz cuadrada de un numero COS(X) da el coseno trigonométrico de un angulo generalmente expresado enradianes. Informatica © UA 4 Cierre de esta Unidad Hemos concluido con el andlisis de los diagramas de flujo, tema que corresponde a la cuarta UA. Incorporamos ejemplos para facilitarle la tarea y lectura de textos para que usted pueda llevar los conceptos a la practica Creemos que ha podido comprender fa estructura con la que se diagraman los distintos programas y apreciar os beneficios de una buena diagramacion para obtener un buen programa. Le acercamos una actividad final y lo esperamos en la proxima UA. Hasta pronto. BACHILLERATO A DISTANCIA! a4 Informatica ® UA A Actividad integradora Para realizar esta actividad es necesario que lea antes ls Anexos 1,23. 1. Nombre tas etapas para resolver un algoritmo. 2. {Qué es un diagrama de flujo? 3: Indique qué podemos representar con los siguientes simbolos: 4, :Qué es el método TOP DOWN? 5. {Qué es una constante y qué es una variable? : 6. Confeccione un diagrama de flujo para hallar ¥ mostrar fa resta de dos nameros. if I ingrese el tado de un rectogulo'y muestre su perimetro y su rea. 8. Introduzca dos némeros y diagrame_ el procedimiento para multiplicarlos (sumas sucesivas). 9. Sabemos los nombres y la edad de 15 alumnos, Imprima el nombre y la edad de | Kea ave tienen més de 18 anos. Se o cmv a acvided a sututr 10. oe 50 némeros naturales, calcule el porcentaje de numeros mMayores qué 25 sobre el total de _niimeros ingresados. 14. Qué es un programa ejecutable? 12. ;Qué beneficio se obtiene de usar omo metodologia de progra- “main la programacion estru- cturada? 13. {Qué elementos tienen en comin: todos los lenguajes de programa- cién orientada a objetos? 44, Qué es un algoritmo? 415. Cues son as formasde represen- tar un algoritmo? am 16, Nombre los dos tipos de progra- maciOn que se explican en-el anexo 2. 47. (Cuales son las estructuras basicas de la programaci6n estructurada? 18. Explique los distintos tipos de instrucciones simples y compuestas de un lenguaje de programacion. 1. x Informatica ® UA a. toevaluacion BNI Enuncie los pasos a seguir para realizar las siguientes acciones: a) Ir al Colegio 4 b) Haliar el 4rea y perimetro de un rectangulo Resuelvailo siguiente: a) Hallar y mostrar la suma de tres nameros. bb) Ingresar dos nimeros, informar su promedio. ‘)Ingresar el valor de compra de un producto, informar et importe abortado por el mismo después de obtener un descuento del 20%. 4d) informar el importe a abonar por la compra de 10 compac-disc, conociendo el precio unitario y sabiendo que todos son del mismo precio. ) Ingresar el lado de un cuadrado y mostrar su perimetro y su area. ) ingresar 10 ndmeros, imprimir los menores que 8. 19) Conociendo el nombre y el precio de 20 productos, imprimir los nombres de los productos que cuestan més de $100. h) Sabemos los nombres y la edad de 18 alumnos. Imprimir los nombres de fos que tienen menos ¢ de 12 anos. 3) Ingresar 100 numeros naturales, indicar cuantosson paresy ae immpares p Ingresar ‘80.nameros naturales, calcular el ae de ntimerosimpates sobre -el total de numeros ingresados. ‘k) Hallar los cuadrados de los nomeros naturales comprendidos entre 10 y 45, imprimir cada nmero y su.cuadrado. Informatica # UA 4 yO) Claves de autocorrecc 2a) b) Comerco ‘8. | S=AsBeC PH(ABY2 4 oS s Fin D="20/100. Pa cS a A 27 ‘COLEGIO GRANADEROS BACHILLERATO A DISTANCIA. 28 Informatica © UA 4 29 cousiocanancros, BACHILLERATO A DISTANCIA 30 Informatica * UA 4 Anexo 1 PARA PRINCIPIANTES Primeras nociones sobre programacién FABIO GOTHELF informatica2@inf.clarin.com.ar La forma en que puede comunicarse un programador con una computadora es a través de un lenguaje que ambos puedan entender. Las computadoras "comprenden” lenguajes muy complejos y técnicos, basados en la combinacién de digitos binarios (ceros y unos), a es0s codigos se los llama lenguajes de programacion En los comienzos de la programacién, existian lenguajes denominados de bajo nivel, como por ejemplo el Assembler. Estos lenguajes estaban muy alejados del lenguaje de las personas y muy cercanos a un lenguaje "de maquina”. Con el avance de la tecnologia, aparecieron los lenguajes de alto nivel (Basic, Cobol, Clipper, etc.) que consisten en signos y reglas que permiten que el programador pueda escribir las instrucciones de un programa mas facilmente. Para que las computadoras comprendan las instrucciones de los lenguejes, existen los programas traductores y los compiladores, que permiten traducir el programa escrito en un determinado lenguaje de programacién a un programa en lenguaje de maquina, que puede ser comprendido por la computadora 31 BACHILLERATO A DISTANCIA 32 Los duefios de los programas EI conjunto de instrucciones que escribe un programador en un lenguaje constituyen el programa fuente. Luego, mediante el uso de los compiladores, se genera el programa ejecutable, que es la traduccin de ese programa fuente a codigo de maquina. El programa ejecutable es aquel que sera utilizado por el usuario. Sin el programa fuente, se hace imposible realizarle modificaciones a un programa Han ocurrido muchos casos de programadores que se fueron de las empresas para las que trabajaban dejando alll el programa ejecutable y no el programa fuente. En esos casos, si esas empresas quisieran modificar esos programas se verian imposibilitadas de hacerlo (tendrian que hacer el programa de nuevo). Estas situaciones han llevado a un largo debate sobre quién es el propietario. de un programa: el programador o la empresa que solicit6 la realizacion del programa Formas de programar La programaci6n estructurada es una metodologia de programacion que intenta uniformar los programas mediante el uso de una sistemdtica y cuidadosa aplicacion de normas formuladas en forma correcta. Esta metodologia permite producir programas autodocumentables, de facil revision y mantenimiento. La programaci6n estructurada no disminuye las dotes de inventiva y creatividad de un programador, que seguira tomando decisiones en su estilo personal, pero estaré obligado a usar un lenguaje generalizado y comprensible para todos. Por su parte, la programacin orientada a objetos toma las mejores ideas de la programacion estructurada y las combina con poderosas conceptos que traen una vision diferente a la tarea de la programacién. La programacion orientada a objetos permite descomponer facilmente un problema en subgrupos de partes relacionadas. Asi puede traducir estos subgrupos en Informatica * UA unidades autocontenidas llamadas objetos. Todos los lenguajes de programaci6n orientados a objetos tienen tres cosas en comtn: objetos, polimorfismo y herencia. La programaci6n visual se caracteriza, principalmente, porque el programador desarrolla su aplicacion a partir del disefio de una interfase. Crea una ventana, introduce en ella diferentes objetos que simbolizan datos o acciones que hay que llevar a cabo, establece propiedades de esos objetos y afiade codigo donde es necesario. El tiempo de desarrollo se ve notablemente reducido, ya que estos lenguajes permiten que el programador centre su atencion en el funcionamiento légico de su aplicacion. Existen muchos lenguajes de programaci6n y diferentes formas de programar, cada programador deberd elegir entre las diferentes opciones, teniendo en cuenta sus necesidades, sus gustos y la realidad del mercado laboral. 33 Informatica * UAA Anexo 2 Qué es la Programaci6én? Programar es automatizar y definir una serie de procesos para resolver un problema y obtener un resultado final. Un programa es el conjunto de instrucciones que se le dan al ordenador para resolver un problema o tarea determinada Algoritmos El ordenador por si solo no es capaz de resolver un problema. Algoritmo es especificar los sucesivos pasos a realizar. Un algoritmo es un procedimiento paso a paso para resolver un problema. Los algoritmos han de ser independientes tanto del lenguaje de programacion como del ordenador en que serdn ejecutados, han de ser precisos y finitos (han de finalizar). Un algoritmo recibe unos datos de entrada y devuelve unos datos de salida. Los problemas complejos se han de dividir en otros mas simples yi sucesivamente (de lo global a lo concreto), es lo que se denomina disefio descendente (Top- Down design). Une vez realizado un primer acercamiento al problema, este se ha de ampliar, lo que denominamos como refinamiento del algoritmo (Stepwise Refinement). Podemos representar un algoritmo de las siguientes formas: * Diagrama de flujo(Flowchart) + Diagrama de Nassi-Schneiderman(N_S) + Pseudocédigo 35 BACHILLERATO A DISTANCIA 36 Normalmente, y més en los lenguajes estructurados, su uso no es necesario salvo en algoritmos muy complicados. Diagrama de flujo (Flowchart): E| diagrama de flujo o Flowchart es una de las técnicas de representacién de algoritmos mas antigua y consiste en representar mediante simbolos las operaciones a realizar. Por ejemplo: el inicio y el fin del algoritmo se representan con un simbolo eliptico, las entradas y salidas con un paralelograme, las decisiones con un rombo, los procesos con un rectangulo, etc. Tipos de Programacién * Programacién modular: Los programas complejos se descomponen en médulos (partes independientes). Estos a su vez se analizan, codifican y se verifican por separado. Su codificacién se realiza mediante programacién estructurada u orientada al objeto. + Programacion estructurada: La programacion estructurada es una forma de organizacion del programa basada en bloques independientes que, a su vez, pueden contener otros bloques que se comunicarén con un bloque principal mediante pardmetros, variables, etc. La programacion estructurada consiste en descomponer un determinado problema en una serie de niveles pasos (disefio descendente 0 Top-Down) y se compone de una serie de estructuras bésicas > Estructuras secuenciales > Estructuras selectivas > Estructuras repetitivas Informatica # UA 4 Ejemplos de Lenguajes Estructurados y no Estructurados: ‘No Estructurados Estructurados, * Cobol * Ada Fortran * Modula-2 * Basic * Pascal ec Forth * Concepto de Variable: Una variable es una asignacién de espacio en memoria RAM para almacenar datos temporalmente. El acceso a estas posiciones de memoria se realiza dando nombres simbdlicos. El compilador 0 intérprete se encarga de asignar a estos nombres las posiciones adecuadas en funcion de la memoria RAM disponible en ese momento. A partir de ese momento se puede acceder a dicha variable para consultar o cambiar su valor utilizando el nombre que le hemos asignado. * Programacion Orientada a Objetos: La programacidn orientada a objetos no es un concepto nuevo, sus inicios y técnicas de programacion se iniciaron a principios de los 70. Se puede definir programaci6n orientada a objetos (OOPS) como una técnica de programaci6n que utiliza objetos como bloque esencial de construcci6n. La OOPS, es un tipo de programacién més cercana al razonamiento humano. La OOPS surge como una soluci6n a la programacion de grandes programas y para solventar el mantenimiento de dichas aplicaciones, ya que en la programacion estructurada el mas minimo cambio supone la modificacin de muchas funciones relacionadas; en cambio, con la OOPS s6lo es cuestién de afiadir 0 modificar métodos de una clase 0 mejor, crear una nueva clase a partir de otra (Herencia). Dos lenguajes destacan sobre el resto para programar de esta forma, Smalltalk y C++. * Concepto de Objeto: Desde un punto de vista general un Objeto es una estructura de datos de mayor o menor complejidad con las funciones que 37 COLEGIOGRANADEROS BACHILLERATO A DISTANCIA, 38 procesan estos datos. Dicho de otra forma, seria Datos mas un Cédigo que procesa estos datos. A los datos se les denomina miembros dato y a las funciones miembro o miembro funciones. Los datos estén ocultos y sélo se puede acceder a ellos mediante las funciones miembro. 1. Clases: Las Clases son como plantillas o modelos que describen como se construyen ciertos tipos de Objeto. Cada vez que se construye un Objeto de una Clase, se crea una instancia de esa Clase("instance”). Una Clase es una coleccién de Objetos similares y un Objeto es una instancia de una Clase. Se puede definir una Clase como un modelo que se utiliza para describir uno 0 mas Objetos del mismo tipo. 2. Herencia: Una caracteristica muy importante de los Objetos y las Clases es la Herencia, una propiedad que permite construir nuevos Objetos (Clases) a partir de unos ya existentes. Esto permite crear “SubClases” denominadas Clases Derivadas que comparten las propiedades de la Clase de la cual derivan (Clase base). Las Clases derivadas heredan codigo y datos de la clase base, asimismo incorporan su propio cddigo y datos especiales. Se puede decir que la herencia permite definir nuevas Clases a partir de las Clases ya existentes. 3. Polimorfismo: En un sentido literal, Polimorfismo significa la cualidad de tener mas de una forma. En el contexto de POO, el Polimorfismo se refiere al hecho de que una simple operacién puede tener diferente comportamiento en diferentes objetos. En otras palabras, diferentes objetos reaccionan al mismo mensaje de modo diferente. Los primeros lenguajes de POO fueron interpretados, de forma que el Polimorfismose contemplaba en tiempo de ejecucion. Por ejemplo, en C++, al ser un lenguaje compilado, el Polimorfismo se admite tanto en tiempo de ejecucion como en tiempo de compilacién Informatica © U Aa. Anexo 3 Estructura de un lenguaje Todo lenguaje, para permitir la programaci6n, ha de contener diversos tipos de instrucciones: Instrucciones simples: + De entrada: para buscar y recoger datos en la memoria central o auxiliar, o bien, obtenerla por interaccién con el usuario (por ejemplo, mensaje en el monitor de video que debe ser contestado en el teclado). * De salida: datos expuestos en el monitor de video 0 impresos o transmitidos en.una red. * De asignacion: asignar un valor a una variable, sea directamente (p.ej Variable? = 15) sea por célculo (p.ej. Var3 = Vari + Var2). Instrucciones compuestas: * De secuendia: por principio el orden dado a las instrucciones determina el orden en que se ejecuten, salvo instrucciones especiales de “salto” como las previstas en instrucciones de alternaci6n o iteraci6n. ‘Toda instruccién compuesta debe tener una ENTRADA y una SALIDA. Puede siempre reemplazarse una instruccion simple por una compuesta manteniéndose el principio de secuencialidad de las instrucciones. * De alternacion: escoger entre dos alternativas en funcién del cumplimiento de una condicién (p.¢j. if X > 15 then ... else ...: si X es mayor que 15 haga 39 BACHILLERATO A DISTANCIA 40 esto, sino este otro). *De iteracién: ejecutar repetidamente un grupo de instrucciones mientras se cumpla una condicion (p.ej. para contar de 1 hasta 10: N=1, while N< 10 repeat {N = N+1, print N}. O sea, mientras N sea inferior a 10, agregue 1 al valor anterior de N). En este ejemplo, se introduce un concepto muy importante en el desarrollo y uso de lenguajes de programacién: la recursividad, factible por el hecho de que lo que se manipula es siempre un valor colocado en alguna celda de memoria. Asi, si bien la matematica no puede aceptar una ecuacién como N=N#1, aqui estamos ante una instruccién (no una ecuacién) que significa “tomar el valor que est en una celda llamada N, sumarle 1 y volver a colocar el nuevo valor en la celda llamada N. Esta es una “instruccién de asignaci6n” ‘Algunos lenguajes (el Algol y sus descendientes como Pascal y "C, y también Lisp y Prolog en que este procedimiento constituye la esencia del lenguaje) van atin mas lejos y permiten una recursividad consistente en la posibilidad de que una instruccion compuesta ordene la ejecucién de sf misma. El siguiente podria ser un breve ejemplo: Para imprimir una lista con una instruccién recursiva, basta tener en cuenta que una lista se compone de una cabeza (primer elemento) y una cola (el resto). Obviamente la cola es también una lista, por lo cual se le puede aplicar el procedimiento consistente en separar su cabeza de su cola, y asi sucesivamente, hasta encontrar una cola vacia. Por lo tanto, se puede ordenar algo asi: imprimir lista = lista = cola [borra de la lista la cabeza ya impresa] imprimir cabeza si lista no es vacia, imprimir lista [orden de recursion] sino: fin. Informatica ® UA 4 Programacion estructurada Como quedé explicado a propésito de las “Instrucciones”, todo programa se compone de una secuencia de instrucciones que pueden ser simples 0 compuestas. La presencia de instrucciones que deban repetirse muchas veces 1no s6lo se expresa en las iteraciones, donde dicha repeticién es inmediata Existen muchos casos en que la repeticién no es un flujo continuo sino dependiente de otras operaciones o condiciones que son muy variables. Es el caso, por ejemplo, de las instrucciones para leer o grabar datos en un disco. La programaci6n estructurada, que es una forma de redaccion de programas (obligatoria u optativa, segun el lenguaje escogido), se hace cargo de este requisito facilitando la constitucion de " paquetes” de instrucciones (llamados “sub-rutinas” © "procedimientos”), los que pueden escribirse una sola vez y ser “llamados” (utilizados) las veces que se requiera. ‘Ademés, pone énfasis en la conveniencia de facilitar la lectura de los programas haciendo més visible la dependencia jerarquica de las instrucciones compuestas mediante “indentacion”, es decir, modificando el ancho del margen izquierdo para cada grupo de instrucciones a

You might also like