You are on page 1of 25

Fundamentos de programacin

Fundamentos de Programacin
Objetivo didctico especifico.
En esta parte se pretende: Diferenciar entre organigrama y ordinograma. Asociar cada smbolo con su significado. Aplicar las reglas de confeccin de diagramas de flujo y/o pseudocdigo. Resolver problemas construyendo ordinogramas y/o escribiendo pseudocdigo usando estructuras bsicas.

Estudio y confeccin de ordinogramas y pseudocdigo.


Introduccin. Diagramas de flujo. Diagramas de flujo del sistema: Organigramas. Diagramas de flujo del programa: Ordinogramas y pseudocdigo. Representacin de estructuras bsicas. Ejemplos prcticos. Comentarios. Elementos auxiliares de un programa. Ejemplos prcticos. Ejercicios.

1 de 25

Fundamentos de programacin

Procesamiento de informacin.
Los datos son hechos, conceptos o entidadades reales. Los datos pueden tomar diferentes formas; por ejemplo, palabras escritas, nmeros enteros o reales, dibujos, etc. pero slo pueden considerarse como informacin en un sentido muy limitado. La informacin consta de datos organizados en una forma que es til para las personas que la reciben. La informacin consiste en conocimientos procesados y organizados, producidos como resultado de las operaciones de procesamiento de datos. El proceso convierte los datos en informacin. Toda la informacin consta de datos, pero no todos los datos producen informacin especfica o inteligible. La interpretacin de estos datos requiere un criterio humano. Un ordenador es una mquina capaz de aceptar unos datos de entrada, efectuar con ellos operaciones lgicas y aritmticas, y proporcionar la informacin resultante a travs de un medio de salida; todo ello sin intervencin 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 informacin: 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 informacin denominada salida o resultados.

El conjunto de instrucciones que especifican la secuencia de operaciones a realizar, en orden, para resolver un sistema especfico 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 programacin determinado.

Programa
Segn la enciclopedia libre Wikipedia, podramos definir programa de la siguiente forma: Un programa, o tambin llamado programa informtico, programa de computacin o

2 de 25

Fundamentos de programacin
programa de ordenador, es simplemente un conjunto de instrucciones para un ordenador. Los ordenadortes necesitan de los programas para funcionar, y un programa no hace nada a menos que sus instrucciones sean ejecutadas por el procesador. Un programa se puede referir tanto a un programa ejecutable como a su cdigo fuente, el cual es transformado en un ejecutable cuando es compilado. Generalmente el cdigo fuente de los programas es escrito por profesionales conocidos como programadores. El cdigo fuente es escrito en un lenguaje de programacin que sigue uno de los siguientes dos paradigmas: imperativo o declarativo. El cdigo fuente puede ser convertido en una imagen ejecutable por un compilador. Cuando se pide que el programa sea ejecutado, el procesador ejecuta el programa instruccin por instruccin, hasta que el programa termina.

Ciclo de vida de una aplicacin informtica.


Los ordenadores son mquinas para el tratamiento automtico de la informacin. Esta informacin no se almacena ni se representa al azar, sino que debe organizarse y estructurarse de forma adecuada para obtener un rendimiento razonable en todo su tratamiento. La resolucin de cualquier problema conlleva encontrar un mtodo de resolucin expresado con la suficiente precisin para poder ser descompuesto en acciones realizables por el ordenador. La ingeniera del software se ocupa del estudio de los problemas relacionados con el desarrollo del software y sus soluciones. La creacin de cualquier software implica la realizacin de tres pasos genricos: 1. Definicin Qu hay que desarrollar?. 2. Desarrollo. 3. Mantenimiento.

Fase de definicin. Se intenta caracterizar el sistema que se ha de construir. Se debe determinar la informacin que ha de usar el sistema, qu funciones debe realizar, qu condiciones existen, cules son las interfaces del sistema y qu critrios de validacin se utilizarn. El estudio y definicin del problema dan lugar al planteamiento del problema que se escribir en la documentacin del programa. Si no se sabe lo que se busca, no se lo reconoce si se lo encuentra. Es decir que, si no sabemos con claridad qu es lo que tenemos que resolver, no podremos encontrar una solucin. Aqu se declara cul es la situacin de partida y el entorno de datos de entrada, los resultados deseados, dnde deben registrarse y cul ser la situacin final a la que debe conducir el problema despus de ser implementado.

3 de 25

Fundamentos de programacin

Fase de desarrollo. En esta fase se disean estructuras de datos y de los programas, se escriben y documentan stos, y se prueba el software. En esta etapa del ciclo de vida de desarrollo de programas, los analistas trabajan con los requerimientos del software desarrollados en la etapa de anlisis. Se determinan todas las tareas que cada programa realiza, como as tambin, la forma en que se organizarn estas tareas cuando se codifique el programa. Los problemas cuando son complejos, se pueden resolver ms eficientemente con el ordenador cuando se descomponen en subproblemas que sean ms fciles de solucionar que el original. La descomposicin del problema original en subproblemas ms simples y a continuacin dividir estos subproblemas en otros ms simples que pueden ser implementados para su solucin en el ordenador se denomina diseo descendente (top-down design). Las ventajas ms importantes del diseo descendente son: El problema se comprende ms fcilmente al dividirse en partes ms simples denominadas mdulos. Las modificaciones en los mdulos son ms fciles. La comprobacin del problema se puede verificar fcilmente. En esta etapa adems, se utilizan auxiliares de diseo, que son diagramas y tablas que facilitan la delineacin de las tareas o pasos que seguir el programa, por ejemplo: diagramas de flujo, seudocdigo, etc. En esta fase, se convierte el algoritmo en programa, escrito en un lenguaje de programacin de alto nivel como C, Java, etc. La codificacin del programa suele ser una tarea pesada que requiere un conocimiento completo de las caractersticas del lenguaje elegido para conseguir un programa eficaz. Sin embargo, si el diseo del algoritmo se ha realizado en detalle con acciones simples y con buena legibilidad, el proceso de codificacin puede reducirse a una simple tarea mecnica. Las reglas de sintaxis que regulan la codificacin variarn de un lenguaje a otro y el programador deber conocer en profundidad dichas reglas para poder disear buenos programas. Para aumentar la productividad, es necesario adoptar una serie de normas, como ser: Estructuras aceptables (programacin estructurada) Convenciones de nominacin: maneras uniformes de designacin de archivos y variables. Convenciones de comentarios.

Fase de mantenimiento. Una vez obtenido el programa fuente, es necesaria su traduccin al cdigo mquina, ya que los programas escritos en un lenguaje de alto nivel no son directamente ejecutables por el ordenador. Segn el tipo de traductor que se utilice, los lenguajes de alto nivel se clasifican en lenguajes interpretados y lenguajes compilados. Son lenguajes interpretados aquellos en los que el sistema traduce una instruccin y la ejecuta, y as sucesivamente con las restantes. Son lenguajes compilados aquellos en los que, primero se traduce el programa fuente completo, obtenindose un cdigo intermedio o mdulo objeto (programa objeto); despus, se fusiona ste con rutinas o libreras necesarias para su ejecucin en un proceso llamado

4 de 25

Fundamentos de programacin
linkado y que obtiene como resultado un mdulo ejecutable (programa ejecutable). La ventaja de los lenguajes compilados, frente a los interpretados, son su rpida ejecucin y, en caso de necesitar posteriores ejecuciones del mismo programas ejecutable almacenado. La puesta a punto consta de las siguientes etapas: Deteccin de errores. Depuracin de errores. Prueba del programa.

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.

Documentacin.
La mayor parte de los proyectos exigen la realizacin de una planificacin previa. Esta planificacin debe determinar el modelo de ciclo de vida a seguir, los plazos para completar cada fase y los recursos necesarios en cada momento. Todo esto se debe plasmar en una documentacin completa y detallada de toda la aplicacin. La documentacin asociada al software puede clasificarse en interna y externa. La documentacin interna corresponde a la que se incluye dentro del cdigo fuente de los programas. Nos aclaran aspectos de las propias instrucciones del programa. La documentacin externa es la que corresponde a todos los documentos relativos al diseo de la aplicacin, a la descripcin de la misma y sus mdulos correspondientes, a los manuales de usuario y los manuales de mantenimiento. En el mdulo que nos ocupa tendremos que documentar el cdigo fuente que desarrollemos, la elaboracin de los distintos programas.

5 de 25

Fundamentos de programacin

Estructura de un programa
Un programa es un conjunto de instrucciones que realizan una funcin concreta. Consta de tres partes bien diferenciadas: Cabecera: aqu, usando palabras reservadas, se indicar el comienzo del programa. Declaracin de datos: en esta parte se pondrn todas las variables que se usen en el programa, indicando el tipo y el nombre asociado. Instrucciones: se ejecutarn las correspondientes instrucciones para obtener el resultado buscado.

Cabecera: son ciertas palabras reservadas que indican al compilador el comienzo del programa y a nosotros, el tipo de lenguaje de programacin usado. As, un programa fuente C comenzar por MAIN: #include <stdio.h> ... main () { ... Un algoritmo en pseudocdigo por: Programa NombreDePrograma

Declaracin de datos: se han de declarar todos los objetos que se van a usar en un programa. Este conjunto de instrucciones debe ir al principio, despus de la cabecera del programa. Por ejemplo, si se van a usar dos variables enteras cuyos nombres son nmero1 y nmero2 se har de la siguiente manera: En C sera: #include <stdio.h> main () { //Declaraci de variables: int numero1; int numero2; ... En Pseudocdigo: Programa prueba Entorno: Numero1 es entera

6 de 25

Fundamentos de programacin
Numero2 es entera

Instrucciones: en esta parte, se harn las operaciones oportunas para obtener los resultados. Este paso consta de tres partes bien diferenciadas: ENTRADA Teclado, pantalla, ... Ya sea por pantalla o asignando por programa. OPERACIONES aritmticas, lgicas,... Con los datos introducidos se harn los tratamientos correspondientes hasta obtener los resultados buscados. SALIDA pantalla, impresora,... Se mostrarn los resultados obtenidos por cualquier dispositivo de salida.

7 de 25

Fundamentos de programacin

Objetos de un programa: Constantes y Variables.


Definicin
Sern objetos de un programa todo aquello que pueda ser manipulado por las instrucciones. En estos objetos podemos almacenar los datos y los resultados. Sus atributos son: Nombre: es un identificador del mismo. Tipo: conjunto de valores que puede tomar. Valor: elemento del tipo que se le asigna.

Constantes.
Son objetos cuyo valor permanece invariable a lo largo de la ejecucin de un programa. Una constante es la denominacin de un valor concreto, de tal forma que se utiliza su nombre cada vez que se necesita referenciarlo. Por ejemplo: pi = 3.14.1592 e = 2.718281 Tambin son utilizadas las contantes para facilitar la modificalidad de los programas, es decir para hacer ms independientes ciertos datos del programa. Por ejemplo supongamos un programa en el que cada vez que se calcula un importe al que se debe sumar el IVA utilizramos siempre el valor 0.16, en caso de variar este ndice tendramos que ir buscando a lo largo del programa y modificando dicho valor, mientras que si le damos nombre y le asignamos un valor, podremos modificar dicho valor con mucha ms facilidad.

Variables.
Son objetos cuyo valor puede ser modificado a lo largo de la ejecucin de un programa. Por ejemplo: una variable para calcular el rea de una circunstancia determinada, una variable para calcular una factura, etc.

8 de 25

Fundamentos de programacin

Expresiones
Definicin de expresin
Una expresin se define de la siguiente forma: 1. 2. 3. 4. Un valor es una expresin. Por ejemplo: Juan, 1.23, ... Una constante o variable es una expresin: Por ejemplo: pi, x, nombre,... Una funcin es una expresin. Por ejemplo: sen(x), cos(x),... Una combinacin de valores, constantes, variables, funciones y operadores cumpliendo unas determinadas reglas de construccin es una expresin. Por ejemplo: cos(pi * x) + 1.25 nombre = "juan"

Tipos de expresiones.
Las expresiones segn el resultado que produzcan se clasifican en: Numricas: Son las que producen resultados de tipo numrico. Se construyen mediante los operadores aritmticos. Por ejemplo: pi * sqr(x) (2*x)/3 Alfanumricas: Son las que producen resultados de tipo alfanumrico. Se construyen mediante operadores alfanumricos. Por ejemplo: "Don " + "Jos" subcadena(nombre, 1,5) Booleanas o lgicas: Son las qie producen resultados de tipo Cierto o Falso. Se contruyen mediante los operadores relacionales y lgicos. Por ejemplo: (a < 0) (a > 1) and (b < 5)

Operadores.
Son smbolos que hacen de enlace entre los argumentos de una expresin. Relacionales Se usan para formar expresiones que al ser evaluadas devuelven un valor booleano: verdadero o falso. Operador < > = >= <= Definicin Menor que Mayor que Igual que Mayor o igual que Menor o igual que

9 de 25

Fundamentos de programacin

<> Ejemplos:

Distinto que

Expresin 'A' < 'B' 1<6 10 < 2

Resultado verdadero, puesto que en cdigo ascci se encuentra antes la A. verdadero falso

Aritmticos
Se utilizan para realizar operaciones aritmticas. Operador + * ^ / DIV MOD Ejemplos: Expresin 3+5-2 24 MOD 3 8*3+5-7 DIV 2 Resultado 6 0 26 Definicin Suma Resta Multiplicacin Potencia Divisin real Divisin entera Resto divisin

Lgicos o boolanos (ver tablas de verdad). La combinacin de expresiones con estos operadores producen el resultado verdadero o falso. Operador No Y O Definicin Negacin Conjuncin Disyunci

El comportamiento de un operador lgico se define mediante su correspondiente tabla de verdad, en ella se muestra el resultado que produce la aplicacin de un determinado operador a uno o dos valores lgicos. Las operaciones lgicas ms

10 de 25

Fundamentos de programacin
usuales son: NO lgico (NOT) o negacin: Operador unario (aplicado a un nico operando). Cambia el valor de verdad de verdadero (V) a falso (F) y viceversa. A V F NOT A F V

O lgica (OR) o disyuncin: Operador n-ario (aplicado a 2 o ms operandos). Si todos los operandos son F devuelve F; si hay alguno que sea V devuelve V. A V V F F B V F V F A OR B V V V F

Y lgica (AND) o conjuncin: Operador n-ario . Si todos los operandos son V devuelve V; si hay alguno que sea F devuelve F. A V V F F B V F V F A AND B V F F F

Ejemplos: Expresin 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

Fundamentos de programacin

no a<b 5>1 y no b<a

no verdadero=falso verdadero y no falso=verdadero

Parntesis () Anidan expresiones. Ejemplos: Operacin (3*2)+ (6/2) Resultado 9

Operador Alfanumrico (+) Unen datos de tipo alfanumrico. Ejemplos: Expresin "Ana "+ "Lopez" "saca" + "puntas" Resultado Ana Lopez sacapuntas

Orden de evaluacin de los operadores:

A la hora de resolver una expresin, el orden a seguir es el siguiente: 1. 2. 3. 4. 5. 6. 7. 8. 9. Parntesis. Potencia. Multiplicacin y divisin. Sumas y restas. Concatenacin. Relacionales. Negacin. Conjuncin. Disyuncin.

La evaluacin de operadores de igual orden se realiza de iazquierda a derecha. Este orden de evaluacin tiene algunas modificaciones en determinados lenguajes de programacin.

12 de 25

Fundamentos de programacin

Ejercicios
Actividad
Realizar las siguientes operaciones de la tabla, teniendo en cuenta que A,B y C inicialmemte toman los valores 4, 2 y 3 respectivamente. Las expresiones se ejecutan una detras de otras a, b, c,.... y en cada fila los valores de la variables tomarn los valores de la fila anterior. El operador = es una asignacin.

Actividad
Evalua las siguientes expresiones:

1. ((3+2)^2-15)/2*5 2. 5-2 > 4 and no 0.5 = 1 / 2 3. Dadas las siguientes variables y constantes: x=1 y=4 z=10 pi=3.14 e=2.71 1. 2 * x + 0.5 + y - 1 / 5 * z 2. pi * x ^ 2 > y or 2 * pi * x <= z 3. e ^ (x - 1) / (x *z) / (x / z) 4. "Don " + "Juan" = "Don Juan" OR "A" = "a"

13 de 25

Fundamentos de programacin

Diagramas de Flujo (Ordinogramas)


Durante el diseo de un programa y en sus fases de anlisis y programacin, surge la necesidad de representar de una manera grfica los flujos que van seguir los datos manipulados por el mismo, as como la secuencia lgica de las operaciones para la resolucin del problema. Esta representacin grfica debe tener las siguientes cualidades: 1.- Sencillez en su construccin. 2.- Claridad en su compresin. 3.- Normalizacin en su diseo. 4.- Flexibilidad en sus modificaciones. En la prctica se suelen utilizar indistintamente los trminos diagrama de flujo, organigrama y ordinograma para referenciar cualquier representacin grfica de los flujos de datos o de las operaciones de un programa. Es importante diferenciarlos porque no corresponden a las mismas fases de diseo de los programas. Aunque utilicen algunos smbolos comunes, el significado de stos no es el mismo.

La secuencia de aparicin de los diagramas de flujo se pueden representar de la siguiente forma:

Programacin estructurada.
La programacin

14 de 25

Fundamentos de programacin
estructurada fue desarrollada en sus principios por Dijkstra, al que siguieron una gran lista de nombres que realizaron lenguajes de programacin adaptados a la aplicacin directa de estas tcnicas. La programacin estructurada es una forma de programar con la cual la estructura de un programa (relaciones entre sus partes) resulta muy clara. Existen diversas definiciones de la programacin estructurada que giran sobre el denominado Teorema de la estructura.

"Todo programa propio, realice el trabajo que realice, tiene siempre al menos un programa propio equivalente que solo utiliza estructuras bsicas de la programacin, que son: 1) la secuencia, 2)la seleccin y 3) la repeticin".

Un programa propio es aquel que cumple las siguientes condiciones: 1. posee un solo inicio y un solo fin. 2. todo elemento del programa es accesible, es decir existe al menos un camino desde el inicio al fin que pasa a travs de l. 3. no posee bucles infinitos.

15 de 25

Fundamentos de programacin

Qu representan?

Representan grficamente la secuencia lgica de las operaciones en la resolucin de un problema. Una vez diseado el ordinograma y sabiendo el lenguaje de programacin en que se va a codificar, la tcnica de paso del ordinograma al lenguaje, en la mayora de los casos es bastante sencilla. Un ordinograma debe reflejar: 1. 2. 3. 4. El comienzo del programa. Las operaciones. La secuencia en que se realizarn. El final del programa.

Reglas de reprersentacin.
En la representacin de ordinogramas es conveniente seguir las siguientes reglas: El comienzo del programa figurar en la parte superior del ordinograma. El smbolo de comienzo deber aparecer una sola vez en el ordinograma. El flujo de las operaciones ser, siempre que sea posible de arriba a abajo y de izquierda a derecha. Se evitarn siempre los cruces de lneas itilizando conectores.

16 de 25

Fundamentos de programacin

Smbolos utilizados.
Smbolos de operacin.

Smbolos de decisin.

17 de 25

Fundamentos de programacin

18 de 25

Fundamentos de programacin

Smbolos de conexin.

Ejemplo.
Algoritmo que lee dos nmeros X e Y, determina si son iguales y, en caso de no serlo indica cul de ellos es el mayor. Su representacin grfica mediante ordinograma podemos verla en el grfico:

19 de 25

Fundamentos de programacin

20 de 25

Fundamentos de programacin

Ejercicios
Dibujar los siguientes Ordinogramas.

Cambiar una rueda


Algoritmo de cambio de una rueda. El alumno/a debe colocar los siguientes pasos en orden lgico: 1. 2. 3. 4. 5. 6. SACAR LA RUEDA. BAJAR EL GATO. QUITAR TUERCAS. LEVANTAR EL COCHE CON EL GATO. COLOCAR LAS TUERCAS. COLOCAR LA RUEDA DE REPUESTO.

Preparar caf
Algoritmo para preparar caf. El alumno/a debe colocar siguientes pasos en orden lgico. 1. 2. 3. 4. 5. 6. 7. 8. LLENAR LA CAFETERA DE AGUA. PONERLA A CALENTAR. PONER CAF. BUSCAR EL CAF. RETIRARLA DEL FUEGO. VIGILAR EL AGUA. BUSCAR LA CAFETERA, EL AGUA Y EL CAF. ENCEDER EL FUEGO.

Inventa un algoritmo.
Enuncia algn otro ejemplo de algoritmo Enuncia los pasos generales necesarios que llevara a cabo con el ejemplo de algoritmo que acabas de mencionar.

21 de 25

Fundamentos de programacin

Pseudocdigo.
Adems de las representaciones grficas, un programa puede describirse mediante un lenguaje intermedio entre el lenguaje natural y el lenguaje de programacin, de tal manera que permita flexibilidad para expresar las acciones que se van a realizar y, tambin imponga algunas limitaciones, que tienen importancia cuando se quiere codificar el programa a un lenguaje de programacin determinado. La notacin en pseudocdigo se caracteriza por:

a) Facilitar la obtencin de la solucin mediante la utilizacin del diseo descendente o Top-down.

b) Ser una forma de codificar los programas o algoritmos fcil de aprender y utilizar.

c) Posibilitar el diseo y desarrollar los algoritmos de una manera independiente del lenguaje de programacin que se vaya a utilizar cuando se implemente el programa.

d) Facilitar la traduccin del algoritmo a un lenguaje de programacin especfico.

e) Permitir un gran flexibilidad en el diseo del algoritmo que soluciona el problema, ya que se pueden representar las acciones de una manera mas abstracta, no estando sometidas a las reglas tan rgidas que impone un lenguaje de programacin. f) Posibilitar futuras correcciones y actualizaciones en el diseo del algoritmo por la utilizacin una serie de normas, que acotan el trabajo del desarrollador.

Cuando se escribe un algoritmo mediante la utilizacin de pseudocdigo, se debe "sangrar" el texto con respecto al margen izquierdo, con la finalidad de que se comprenda ms fcilmente el diseo que se est realizando.

22 de 25

Fundamentos de programacin

Todo algoritmo representado en notacin de pseudocdigo tendr dos parte diferenciadas:

Cabecera. Cuerpo.

23 de 25

Fundamentos de programacin

Ejemplo

Diferenciamos las partes del algoritmo en la imagen:

24 de 25

Fundamentos de programacin
Este artculo est licenciado bajo Creative Commons Attribution-NonCommercial-ShareAlike 2.5 License

25 de 25

You might also like