Fundamentos de programación

Fundamentos de Programación
Objetivo didáctico especifico.
En esta parte se pretende: Diferenciar entre organigrama y ordinograma. Asociar cada símbolo con su significado. Aplicar las reglas de confección de diagramas de flujo y/o pseudocódigo. Resolver problemas construyendo ordinogramas y/o escribiendo pseudocódigo usando estructuras básicas.

Estudio y confección de ordinogramas y pseudocódigo.
Introducción. Diagramas de flujo. Diagramas de flujo del sistema: Organigramas. Diagramas de flujo del programa: Ordinogramas y pseudocódigo. Representación de estructuras básicas. Ejemplos prácticos. Comentarios. Elementos auxiliares de un programa. Ejemplos prácticos. Ejercicios.

1 de 25

Fundamentos de programación

Procesamiento de información.
Los datos son hechos, conceptos o entidadades reales. Los datos pueden tomar diferentes formas; por ejemplo, palabras escritas, números enteros o reales, dibujos, etc. pero sólo pueden considerarse como información en un sentido muy limitado. La información consta de datos organizados en una forma que es útil para las personas que la reciben. La información consiste en conocimientos procesados y organizados, producidos como resultado de las operaciones de procesamiento de datos. El proceso convierte los datos en información. Toda la información consta de datos, pero no todos los datos producen información específica o inteligible. La interpretación de estos datos requiere un criterio humano. Un ordenador es una máquina capaz de aceptar unos datos de entrada, efectuar con ellos operaciones lógicas y aritméticas, y proporcionar la información resultante a través de un medio de salida; todo ello sin intervención de un operador humano y bajo el control de un programa compuesto de instrucciones previamente almacenado en el propio ordenador.

La figura muestra los componentes de un sistema de proceso de la información: entrada, salida y procesador. El procesador, que puede ser bastante complicado, se representa por una simple caja y puede aceptar datos llamados entrada y esta entrada se transforma entonces para producir una información denominada salida o resultados.

El conjunto de instrucciones que especifican la secuencia de operaciones a realizar, en orden, para resolver un sistema específico o clase de problemas, se denomina algoritmo. Cuando el procesador es un ordenador, el algoritmo se expresará en forma de programa escrito en un lenguaje de programación determinado.

Programa
Según la enciclopedia libre Wikipedia, podríamos definir programa de la siguiente forma: Un programa, o también llamado programa informático, programa de computación o

2 de 25

cuáles son las interfaces del sistema y qué critérios de validación se utilizarán. Se intenta caracterizar el sistema que se ha de construir. Cuando se pide que el programa sea ejecutado. hasta que el programa termina. Fase de definición. si no sabemos con claridad qué es lo que tenemos que resolver. Aquí se declara cuál es la situación de partida y el entorno de datos de entrada. Esta información no se almacena ni se representa al azar. La resolución de cualquier problema conlleva encontrar un método de resolución expresado con la suficiente precisión para poder ser descompuesto en acciones realizables por el ordenador. El código fuente es escrito en un lenguaje de programación que sigue uno de los siguientes dos paradigmas: imperativo o declarativo. sino que debe organizarse y estructurarse de forma adecuada para obtener un rendimiento razonable en todo su tratamiento. los resultados deseados. Si no se sabe lo que se busca. Definición ¿Qué hay que desarrollar?. El estudio y definición del problema dan lugar al planteamiento del problema que se escribirá en la documentación del programa. 3 de 25 . 3. Generalmente el código fuente de los programas es escrito por profesionales conocidos como programadores. El código fuente puede ser convertido en una imagen ejecutable por un compilador. Es decir que. no se lo reconoce si se lo encuentra. Ciclo de vida de una aplicación informática.Fundamentos de programación programa de ordenador. Los ordenadores son máquinas para el tratamiento automático de la información. Desarrollo. 2. dónde deben registrarse y cuál será la situación final a la que debe conducir el problema después de ser implementado. qué condiciones existen. no podremos encontrar una solución. Se debe determinar la información que ha de usar el sistema. el procesador ejecuta el programa instrucción por instrucción. Un programa se puede referir tanto a un programa ejecutable como a su código fuente. La creación de cualquier software implica la realización de tres pasos genéricos: 1. y un programa no hace nada a menos que sus instrucciones sean ejecutadas por el procesador. el cual es transformado en un ejecutable cuando es compilado. qué funciones debe realizar. La ingeniería del software se ocupa del estudio de los problemas relacionados con el desarrollo del software y sus soluciones. es simplemente un conjunto de instrucciones para un ordenador. Los ordenadortes necesitan de los programas para funcionar. Mantenimiento.

si el diseño del algoritmo se ha realizado en detalle con acciones simples y con buena legibilidad. después. se convierte el algoritmo en programa. la forma en que se organizarán estas tareas cuando se codifique el programa. Las reglas de sintaxis que regulan la codificación variarán de un lenguaje a otro y el programador deberá conocer en profundidad dichas reglas para poder diseñar buenos programas. Se determinan todas las tareas que cada programa realiza. Para aumentar la productividad. como ser: Estructuras aceptables (programación estructurada) Convenciones de nominación: maneras uniformes de designación de archivos y variables. Java. obteniéndose un código intermedio o módulo objeto (programa objeto). y se prueba el software. En esta fase se diseñan estructuras de datos y de los programas. etc. La descomposición del problema original en subproblemas más simples y a continuación dividir estos subproblemas en otros más simples que pueden ser implementados para su solución en el ordenador se denomina diseño descendente (top-down design). La codificación del programa suele ser una tarea pesada que requiere un conocimiento completo de las características del lenguaje elegido para conseguir un programa eficaz. escrito en un lenguaje de programación de alto nivel como C.Fundamentos de programación Fase de desarrollo. Los problemas cuando son complejos. ya que los programas escritos en un lenguaje de alto nivel no son directamente ejecutables por el ordenador. y así sucesivamente con las restantes. Las ventajas más importantes del diseño descendente son: El problema se comprende más fácilmente al dividirse en partes más simples denominadas módulos. En esta etapa del ciclo de vida de desarrollo de programas. etc. se fusiona éste con rutinas o librerías necesarias para su ejecución en un proceso llamado 4 de 25 . Son lenguajes interpretados aquellos en los que el sistema traduce una instrucción y la ejecuta. En esta etapa además. primero se traduce el programa fuente completo. que son diagramas y tablas que facilitan la delineación de las tareas o pasos que seguirá el programa. se escriben y documentan éstos. En esta fase. es necesaria su traducción al código máquina. Según el tipo de traductor que se utilice. Las modificaciones en los módulos son más fáciles. Una vez obtenido el programa fuente. La comprobación del problema se puede verificar fácilmente. Convenciones de comentarios. seudocódigo. los analistas trabajan con los requerimientos del software desarrollados en la etapa de análisis. el proceso de codificación puede reducirse a una simple tarea mecánica. Son lenguajes compilados aquellos en los que. los lenguajes de alto nivel se clasifican en lenguajes interpretados y lenguajes compilados. Sin embargo. por ejemplo: diagramas de flujo. se utilizan auxiliares de diseño. como así también. se pueden resolver más eficientemente con el ordenador cuando se descomponen en subproblemas que sean más fáciles de solucionar que el original. es necesario adoptar una serie de normas. Fase de mantenimiento.

Prueba del programa. los plazos para completar cada fase y los recursos necesarios en cada momento. La mayor parte de los proyectos exigen la realización de una planificación previa. Depuración de errores. La documentación externa es la que corresponde a todos los documentos relativos al diseño de la aplicación. en caso de necesitar posteriores ejecuciones del mismo programas ejecutable almacenado. La documentación interna corresponde a la que se incluye dentro del código fuente de los programas. La documentación asociada al software puede clasificarse en interna y externa. Nos aclaran aspectos de las propias instrucciones del programa. la elaboración de los distintos programas. son su rápida ejecución y. Documentación. frente a los interpretados. En el módulo que nos ocupa tendremos que documentar el código fuente que desarrollemos. Todo esto se debe plasmar en una documentación completa y detallada de toda la aplicación.Fundamentos de programación linkado y que obtiene como resultado un módulo ejecutable (programa ejecutable). Esta planificación debe determinar el modelo de ciclo de vida a seguir. a los manuales de usuario y los manuales de mantenimiento. En cada una de estas fases se pueden detectar problemas que nos hacen replantearnos conceptos de la fase anterior y rehacer el software creado con las oportunas correcciones. La ventaja de los lenguajes compilados. La puesta a punto consta de las siguientes etapas: Detección de errores. a la descripción de la misma y sus módulos correspondientes. 5 de 25 .

después de la cabecera del programa.h> . Por ejemplo. Consta de tres partes bien diferenciadas: Cabecera: aquí. Instrucciones: se ejecutarán las correspondientes instrucciones para obtener el resultado buscado. un programa fuente C comenzará por MAIN: #include <stdio.. int numero2. Este conjunto de instrucciones debe ir al principio.... Cabecera: son ciertas palabras reservadas que indican al compilador el comienzo del programa y a nosotros. Así. En Pseudocódigo: Programa prueba Entorno: Numero1 es entera 6 de 25 .Fundamentos de programación Estructura de un programa Un programa es un conjunto de instrucciones que realizan una función concreta. el tipo de lenguaje de programación usado. si se van a usar dos variables enteras cuyos nombres son número1 y número2 se hará de la siguiente manera: En C sería: #include <stdio. Declaración de datos: en esta parte se pondrán todas las variables que se usen en el programa.. se indicará el comienzo del programa. Un algoritmo en pseudocódigo por: Programa NombreDePrograma Declaración de datos: se han de declarar todos los objetos que se van a usar en un programa. usando palabras reservadas. .. main () { .h> main () { //Declaració de variables: int numero1. indicando el tipo y el nombre asociado.

.....Fundamentos de programación Numero2 es entera Instrucciones: en esta parte. Con los datos introducidos se harán los tratamientos correspondientes hasta obtener los resultados buscados. pantalla. se harán las operaciones oportunas para obtener los resultados. . Ya sea por pantalla o asignando por programa. impresora. Este paso consta de tres partes bien diferenciadas: ENTRADA Teclado.. lógicas. Se mostrarán los resultados obtenidos por cualquier dispositivo de salida. SALIDA pantalla.. OPERACIONES aritméticas. 7 de 25 ..

de tal forma que se utiliza su nombre cada vez que se necesita referenciarlo. una variable para calcular una factura. Son objetos cuyo valor puede ser modificado a lo largo de la ejecución de un programa.718281 También son utilizadas las contantes para facilitar la modificalidad de los programas.16. Constantes. podremos modificar dicho valor con mucha más facilidad. es decir para hacer más independientes ciertos datos del programa. Valor: elemento del tipo que se le asigna.1592 e = 2. mientras que si le damos nombre y le asignamos un valor. etc. Por ejemplo supongamos un programa en el que cada vez que se calcula un importe al que se debe sumar el IVA utilizáramos siempre el valor 0. Por ejemplo: una variable para calcular el área de una circunstancia determinada. Una constante es la denominación de un valor concreto. 8 de 25 . Por ejemplo: pi = 3.Fundamentos de programación Objetos de un programa: Constantes y Variables. Sus atributos son: Nombre: es un identificador del mismo. Variables. Son objetos cuyo valor permanece invariable a lo largo de la ejecución de un programa.14. En estos objetos podemos almacenar los datos y los resultados. en caso de variar este índice tendríamos que ir buscando a lo largo del programa y modificando dicho valor. Definición Serán objetos de un programa todo aquello que pueda ser manipulado por las instrucciones. Tipo: conjunto de valores que puede tomar.

Por ejemplo: (a < 0) ó (a > 1) and (b < 5) Operadores. x.. cos(x). 2. 3. funciones y operadores cumpliendo unas determinadas reglas de construcción es una expresión. nombre. Se contruyen mediante los operadores relacionales y lógicos. Por ejemplo: cos(pi * x) + 1.. Relacionales Se usan para formar expresiones que al ser evaluadas devuelven un valor booleano: verdadero o falso. Por ejemplo: "Don " + "José" ó subcadena(nombre. 4. variables. Un valor es una expresión.. Una constante o variable es una expresión: Por ejemplo: pi. .5) Booleanas o lógicas: Son las qie producen resultados de tipo Cierto o Falso. Operador < > = >= <= Definición Menor que Mayor que Igual que Mayor o igual que Menor o igual que 9 de 25 .23. 1. constantes.. Una combinación de valores. Son símbolos que hacen de enlace entre los argumentos de una expresión..Fundamentos de programación Expresiones Definición de expresión Una expresión se define de la siguiente forma: 1. Por ejemplo: pi * sqr(x) (2*x)/3 Alfanuméricas: Son las que producen resultados de tipo alfanumérico. Por ejemplo: Juan.. Se construyen mediante operadores alfanuméricos. Las expresiones según el resultado que produzcan se clasifican en: Numéricas: Son las que producen resultados de tipo numérico. Por ejemplo: sen(x).25 ó nombre = "juan" Tipos de expresiones. Una función es una expresión. 1. Se construyen mediante los operadores aritméticos...

en ella se muestra el resultado que produce la aplicación de un determinado operador a uno o dos valores lógicos. Las operaciones lógicas más 10 de 25 . verdadero falso Aritméticos Se utilizan para realizar operaciones aritméticas. Operador + * ^ / DIV MOD Ejemplos: Expresión 3+5-2 24 MOD 3 8*3+5-7 DIV 2 Resultado 6 0 26 Definición Suma Resta Multiplicación Potencia División real División entera Resto división Lógicos o booléanos (ver tablas de verdad).Fundamentos de programación <> Ejemplos: Distinto que Expresión 'A' < 'B' 1<6 10 < 2 Resultado verdadero. La combinación de expresiones con estos operadores producen el resultado verdadero o falso. puesto que en código ascci se encuentra antes la A. Operador No Y O Definición Negación Conjunción Disyunció El comportamiento de un operador lógico se define mediante su correspondiente tabla de verdad.

Si todos los operandos son F devuelve F. si hay alguno que sea V devuelve V. si hay alguno que sea F devuelve F.Fundamentos de programación usuales son: NO lógico (NOT) o negación: Operador unario (aplicado a un único operando). A V F NOT A F V O lógica (OR) o disyunción: Operador n-ario (aplicado a 2 o más operandos). A V V F F B V F V F A AND B V F F F Ejemplos: Expresión 9 = (3*3) 3 <> 2 verdadero verdadero Resultado 9 = (3*3) Y 3<>2 verdadero 3>2 y b<a 3>2 o b<a verdadero y falso = falso verdadero o falso = verdadero 11 de 25 . Cambia el valor de verdad de verdadero (V) a falso (F) y viceversa. A V V F F B V F V F A OR B V V V F Y lógica (AND) o conjunción: Operador n-ario . Si todos los operandos son V devuelve V.

Concatenación. 3. 9. 12 de 25 . 7. Ejemplos: Operación (3*2)+ (6/2) Resultado 9 Operador Alfanumérico (+) Unen datos de tipo alfanumérico. el orden a seguir es el siguiente: 1. Conjunción. La evaluación de operadores de igual orden se realiza de iazquierda a derecha. Ejemplos: Expresión "Ana "+ "Lopez" "saca" + "puntas" Resultado Ana Lopez sacapuntas Orden de evaluación de los operadores: A la hora de resolver una expresión. Negación. Disyunción. Multiplicación y división. 8. 5.Fundamentos de programación no a<b 5>1 y no b<a no verdadero=falso verdadero y no falso=verdadero Paréntesis () Anidan expresiones. Este orden de evaluación tiene algunas modificaciones en determinados lenguajes de programación. 6. Sumas y restas. Paréntesis. Relacionales. 2. 4. Potencia.

Fundamentos de programación Ejercicios Actividad Realizar las siguientes operaciones de la tabla. El operador = es una asignación... pi * x ^ 2 > y or 2 * pi * x <= z 3. b..1 / 5 * z 2.. 2 y 3 respectivamente. Actividad Evalua las siguientes expresiones: 1. 5-2 > 4 and no 0. e ^ (x .71 1. y en cada fila los valores de la variables tomarán los valores de la fila anterior.5 = 1 / 2 3. "Don " + "Juan" = "Don Juan" OR "A" = "a" 13 de 25 . Dadas las siguientes variables y constantes: x=1 y=4 z=10 pi=3.B y C inicialmemte toman los valores 4.1) / (x *z) / (x / z) 4. 2 * x + 0.14 e=2. ((3+2)^2-15)/2*5 2.5 + y . Las expresiones se ejecutan una detras de otras a. teniendo en cuenta que A. c.

surge la necesidad de representar de una manera gráfica los flujos que van seguir los datos manipulados por el mismo. 2. organigrama y ordinograma para referenciar cualquier representación gráfica de los flujos de datos o de las operaciones de un programa.Flexibilidad en sus modificaciones. así como la secuencia lógica de las operaciones para la resolución del problema.Claridad en su compresión.Fundamentos de programación Diagramas de Flujo (Ordinogramas) Durante el diseño de un programa y en sus fases de análisis y programación. Aunque utilicen algunos símbolos comunes.Normalización en su diseño.Sencillez en su construcción. 3.. 4.. Esta representación gráfica debe tener las siguientes cualidades: 1. el significado de éstos no es el mismo.. En la práctica se suelen utilizar indistintamente los términos diagrama de flujo. Es importante diferenciarlos porque no corresponden a las mismas fases de diseño de los programas.. La programación 14 de 25 . La secuencia de aparición de los diagramas de flujo se pueden representar de la siguiente forma: Programación estructurada.

Un programa propio es aquel que cumple las siguientes condiciones: 1. tiene siempre al menos un programa propio equivalente que solo utiliza estructuras básicas de la programación. 2)la selección y 3) la repetición". 3. todo elemento del programa es accesible. 15 de 25 . Existen diversas definiciones de la programación estructurada que giran sobre el denominado Teorema de la estructura. realice el trabajo que realice. que son: 1) la secuencia. 2. no posee bucles infinitos. al que siguieron una gran lista de nombres que realizaron lenguajes de programación adaptados a la aplicación directa de estas técnicas. "Todo programa propio. La programación estructurada es una forma de programar con la cual la estructura de un programa (relaciones entre sus partes) resulta muy clara. es decir existe al menos un camino desde el inicio al fin que pasa a través de él. posee un solo inicio y un solo fin.Fundamentos de programación estructurada fue desarrollada en sus principios por Dijkstra.

Un ordinograma debe reflejar: 1. Las operaciones. La secuencia en que se realizarán. 2. El final del programa. 16 de 25 . 4. siempre que sea posible de arriba a abajo y de izquierda a derecha. El flujo de las operaciones será. Se evitarán siempre los cruces de líneas itilizando conectores. en la mayoría de los casos es bastante sencilla. la técnica de paso del ordinograma al lenguaje. En la representación de ordinogramas es conveniente seguir las siguientes reglas: El comienzo del programa figurará en la parte superior del ordinograma.Fundamentos de programación ¿Qué representan? Representan gráficamente la secuencia lógica de las operaciones en la resolución de un problema. El comienzo del programa. Una vez diseñado el ordinograma y sabiendo el lenguaje de programación en que se va a codificar. 3. El símbolo de comienzo deberá aparecer una sola vez en el ordinograma. Reglas de reprersentación.

17 de 25 . Símbolos de operación. Símbolos de decisión.Fundamentos de programación Símbolos utilizados.

Fundamentos de programación 18 de 25 .

Fundamentos de programación Símbolos de conexión. en caso de no serlo indica cuál de ellos es el mayor. Algoritmo que lee dos números “X” e “Y”. Su representación gráfica mediante ordinograma podemos verla en el gráfico: 19 de 25 . determina si son iguales y. Ejemplo.

Fundamentos de programación 20 de 25 .

BUSCAR LA CAFETERA. Enuncia algún otro ejemplo de algoritmo Enuncia los pasos generales necesarios que llevaría a cabo con el ejemplo de algoritmo que acabas de mencionar. RETIRARLA DEL FUEGO. 21 de 25 . BUSCAR EL CAFÉ. 8. El alumno/a debe colocar los siguientes pasos en orden lógico: 1. PONER CAFÉ. COLOCAR LAS TUERCAS. EL AGUA Y EL CAFÉ. ENCEDER EL FUEGO. LLENAR LA CAFETERA DE AGUA. 7.Fundamentos de programación Ejercicios Dibujar los siguientes Ordinogramas. 3. Preparar café Algoritmo para preparar café. El alumno/a debe colocar siguientes pasos en orden lógico. Cambiar una rueda Algoritmo de cambio de una rueda. BAJAR EL GATO. QUITAR TUERCAS. 1. 6. 2. Inventa un algoritmo. PONERLA A CALENTAR. 5. 5. 6. 4. 2. LEVANTAR EL COCHE CON EL GATO. COLOCAR LA RUEDA DE REPUESTO. 3. SACAR LA RUEDA. VIGILAR EL AGUA. 4.

también imponga algunas limitaciones. un programa puede describirse mediante un lenguaje intermedio entre el lenguaje natural y el lenguaje de programación. no estando sometidas a las reglas tan rígidas que impone un lenguaje de programación. e) Permitir un gran flexibilidad en el diseño del algoritmo que soluciona el problema. Cuando se escribe un algoritmo mediante la utilización de pseudocódigo. La notación en pseudocódigo se caracteriza por: a) Facilitar la obtención de la solución mediante la utilización del diseño descendente o Top-down. con la finalidad de que se comprenda más fácilmente el diseño que se está realizando.Fundamentos de programación Pseudocódigo. c) Posibilitar el diseño y desarrollar los algoritmos de una manera independiente del lenguaje de programación que se vaya a utilizar cuando se implemente el programa. de tal manera que permita flexibilidad para expresar las acciones que se van a realizar y. f) Posibilitar futuras correcciones y actualizaciones en el diseño del algoritmo por la utilización una serie de normas. 22 de 25 . d) Facilitar la traducción del algoritmo a un lenguaje de programación específico. se debe "sangrar" el texto con respecto al margen izquierdo. Además de las representaciones gráficas. ya que se pueden representar las acciones de una manera mas abstracta. b) Ser una forma de codificar los programas o algoritmos fácil de aprender y utilizar. que acotan el trabajo del desarrollador. que tienen importancia cuando se quiere codificar el programa a un lenguaje de programación determinado.

Fundamentos de programación Todo algoritmo representado en notación de pseudocódigo tendrá dos parte diferenciadas: Cabecera. 23 de 25 . Cuerpo.

Fundamentos de programación Ejemplo Diferenciamos las partes del algoritmo en la imagen: 24 de 25 .

5 License 25 de 25 .Fundamentos de programación Este artículo está licenciado bajo Creative Commons Attribution-NonCommercial-ShareAlike 2.