You are on page 1of 110

VALLINIELLO

DEPARTAMENTO DE INFORMTICA Y COMUNICACIONES Desarrollo de Aplicaciones Informticas Mdulo de Programacin en Lenguajes Estructurados Unidad 1: Introduccin a la programacin Pilar Beltrn Prez

ndice de Contenidos

1.1.- Concepto de ordenador y sistema operativo. 1.2.- Sistemas de procesamiento de la informacin. 1.2.1.- La informacin y su representacin. 1.2.2.- Sistemas de numeracin. _ Sistema decimal: _ Sistema binario: _ Sistema octal: _ Sistema hexadecimal: 1.3.- Concepto de algoritmo. 1.4.- Aplicacin informtica. 1.4.1.- Ciclo de vida de una aplicacin informtica. _ Fase de diseo o anlisis: _ Fase de implementacin o puesta a punto: 1.5.- Caractersticas de los programas. 1.6.- Lenguajes de programacin. 1.6.1.- Lenguajes mquina. 1.6.2.- Lenguajes de bajo nivel. 1.6.3.- Los lenguajes de alto nivel. 1.7.- Traductores del lenguaje. 1.7.1.- Compiladores. 1.7.2.- Intrpretes. 1.8.- La compilacin y sus fases.
Objetivos de la Unidad Didctica Enlaces de inters Glosario de trminos

Unidad 1 1

VALLINIELLO

DEPARTAMENTO DE INFORMTICA Y COMUNICACIONES Desarrollo de Aplicaciones Informticas Mdulo de Programacin en Lenguajes Estructurados Unidad 1: Introduccin a la programacin Pilar Beltrn Prez

1.1.- Concepto de ordenador y sistema operativo. Un ordenador es una mquina creada por el hombre y por tanto no podr realizar una tarea que no haya sido previamente determinada por l. El ordenador no tiene inteligencia, todo lo que puede realizar son las siguientes operaciones bsicas: Sumar y restar. Comparar dos valores (numricos o alfanumricos). Almacenar y recuperar informacin. La combinacin adecuada de estas tres operaciones permiten al ordenador realizar tareas muy complejas que aportan la solucin a un determinado problema. La potencia de clculo de un ordenador se deriva de las caractersticas fsicas que posee: Rapidez. Precisin. Memoria. Estas caractersticas provienen de los componentes electrnicos: Velocidad de conmutacin de los circuitos electrnicos. Rapidez de la transmisin de seales elctricas. Fiabilidad de los circuitos. Gran capacidad de almacenamiento en el mnimo espacio posible. El objeto del programador es, para un problema dado, disear una solucin que pueda ser realizada por un ordenador. Para ello necesitamos un lenguaje de programacin que es una notacin intermedia entre el lenguaje natural y el lenguaje del ordenador. Pero hay que tener en cuenta que todos los programas que diseamos para resolver un problema determinado necesitan de otro programa que lo controle todo y se encargue de decirle al ordenador lo que tiene que hacer en cada momento. Estos programas se llaman Sistemas Operativos. Por tanto podemos decir que el sistema operativo es el soporte base que hace que el ordenador pueda trabajar, es decir, leer datos, escribir datos, ejecutar instrucciones, manejar una impresora, etc... Todos los dems programas se apoyan en los sistemas operativos para trabajar.

Unidad 1 2

VALLINIELLO

DEPARTAMENTO DE INFORMTICA Y COMUNICACIONES Desarrollo de Aplicaciones Informticas Mdulo de Programacin en Lenguajes Estructurados Unidad 1: Introduccin a la programacin Pilar Beltrn Prez

1.2.- Sistemas de procesamiento de la informacin. En el uso diario, datos e informacin son esencialmente sinnimos. Sin embargo los informticos suelen hacer una diferencia: _ _ Datos se refieren a la representacin de algn hecho, concepto o entidad real. Informacin implica datos procesados y organizados.

Un sistema en general se define como un conjunto de componentes conectados e interactivos, que tienen un propsito y una unidad total. Sistema de procesamiento de informacin es un sistema que transforma datos brutos en informacin organizada y til. Los tres componentes bsicos de un sistema de procesamiento de la informacin son: entrada, procesador, salida. Datos = entrada salida = informacin

Procesador

Es decir el procesador puede aceptar datos llamados entrada, procesarlos y producir una informacin denominada salida. 1.2.1.- La informacin y su representacin. La informacin es un concepto gracias al cual las personas representan acontecimientos y hechos. Con el paso del tiempo, el volumen de informacin ha crecido de forma desmesurada constituyendo procesos excesivamente repetitivos. Al principio, el trabajo consista en realizar manualmente las operaciones. En algunos sectores estas operaciones eran mnimas, pero en la mayora de los casos las operaciones realizadas al da sobrepasan los lmites. Por todo esto podemos empezar a observar la utilidad de la informtica como ciencia que se ocupa del tratamiento de los datos. 1.2.2.- Sistemas de numeracin. Un sistema de numeracin es el conjunto de smbolos utilizados para representar cantidades as como las reglas que rigen dicha representacin. Un nmero se puede representar por un conjunto ordenado de smbolos diferentes para cada uno de los sistemas existentes. Los sistemas de numeracin actuales se definen como posicinales, es decir que el valor que representa cada smbolo depende de su valor absoluto y de la posicin que ocupa dicha cifra con respecto a la coma decimal.
Unidad 1 3

VALLINIELLO

DEPARTAMENTO DE INFORMTICA Y COMUNICACIONES Desarrollo de Aplicaciones Informticas Mdulo de Programacin en Lenguajes Estructurados Unidad 1: Introduccin a la programacin Pilar Beltrn Prez

La base nos permite diferenciar el sistema de numeracin con el que estamos trabajando. Dicha base es el nmero de smbolos utilizados para representar las cantidades, sin tener en cuenta el punto decimal. Existe un teorema que nos da la pauta para comprender el sistema de numeracin, es el Teorema Fundamental de la Numeracin, ..... + X4* B + X
4 3 2 1

que dice: El valor decimal de una cantidad


0 -1

expresada en otro sistema de numeracin viene dado por la frmula:


3

* B + X2 * B + X 1 * B + X 0 * B + X-1 * B

+ X-2 * B

-2

+ X -3 * B +

-3

Siendo Xi cada una de las cifras que componen el nmero, y B la base. Los sistemas de numeracin ms utilizados son: _ Sistema decimal: Utiliza 10 smbolos (0, 1, 2, . . . . . , 9) para representar todos los posibles valores. El nombre usado para cada uno de estos smbolos es dgito. Cuando combinamos varios dgitos, tenemos un nmero. Su valor depende no solo del valor de cada uno de ellos sino de la posicin que tiene dentro del conjunto.

Sistema binario: Es el sistema de numeracin que utiliza internamente el hardware del ordenador. Es un sistema que utiliza 2 smbolos (0, 1 ), es decir su base es 2. Cada uno de estos smbolos se denomina BIT. (Es la unidad mnima de informacin). La asociacin de un nmero determinado de bits de uso muy comn en el mundo informtico es el siguiente: 1 BIT 1 BYTE 1 KILOBYTE (KB) 1 MEGABYTE (MB) 1 GIGABYTE (GB) un dgito 0 , 1 8 BITS 1.024 BYTES = 2
10

BYTES
10

1.024 KILOBYTES = 2

KILOBYTES MEGABYTE

1.024 MEGABYTES = 2

10

Sistema octal: Es un sistema de numeracin que utiliza 8 dgitos (0, 1, ...,7) es decir que su base de numeracin es 8. La conversin a binario es la siguiente:

Unidad 1 4

VALLINIELLO

DEPARTAMENTO DE INFORMTICA Y COMUNICACIONES Desarrollo de Aplicaciones Informticas Mdulo de Programacin en Lenguajes Estructurados Unidad 1: Introduccin a la programacin Pilar Beltrn Prez

Binario Octal 000 0 001 1 010 2 011 3 100 4 101 5 110 6 111 7 _ Sistema hexadecimal: Es un sistema de numeracin que utiliza 16 dgitos (0, 1, ... 9, A, B, C, D, E, F) es decir su base de numeracin es 16. Un inconveniente que representa el sistema binario es la utilizacin de gran cantidad de bits. Para solucionar este inconveniente se utiliza el sistema Hexadecimal, que permite trabajar dgitos. Hexadecimal 0 1 2 3 4 5 6 7 8 9 A B C D E F
Unidad 1 5

cmodamente con el sistema binario, puesto que cada cifra equivale a 4

Binario Decimal 0000 0 0001 1 0010 2 0011 3 0100 4 0101 5 0110 6 0111 7 1000 8 1001 9 1111 15 1010 10 1011 11 1100 12 1101 13 1110 14

VALLINIELLO

DEPARTAMENTO DE INFORMTICA Y COMUNICACIONES Desarrollo de Aplicaciones Informticas Mdulo de Programacin en Lenguajes Estructurados Unidad 1: Introduccin a la programacin Pilar Beltrn Prez

1.3.- Concepto de algoritmo. El conjunto de instrucciones que especifican la secuencia de operaciones a realizar, en orden, para resolver un sistema especifico o clase de problema se denomina algoritmo. Algoritmo es la formula para la resolucin de un problema. Para realizar un proceso se debe suministrar al procesador un algoritmo adecuado.(Al

cocinero una receta, al msico una partitura, ..etc.). Cuando el procesador es una computadora, el algoritmo ha de expresarse de una forma determinada que recibe el nombre de programa. Un programa se escribe en un lenguaje de programacin y a la actividad de expresar un algoritmo en forma de programa se le denomina programacin. Cada paso en el algoritmo est expresado por medio de una instruccin en el programa. Por consiguiente, un programa consta de una secuencia de instrucciones, cada una de las cuales especifican las operaciones que debe realizar al computadora. Diseo del Algoritmo Programa de computadora

Problema

Los algoritmos son independientes tanto del lenguaje de programacin en que se expresan como de la computadora que los ejecuta. En la ciencia de la computacin y en la programacin los algoritmos son ms importantes que los lenguajes de programacin o las computadoras. Un lenguaje de programacin es tan solo un medio para expresar un algoritmo y una computadora es solo un procesador para ejecutarlo. Tanto el lenguaje de programacin como la computadora son los medios para obtener un fin: Conseguir que el algoritmo se ejecute y se efecte el proceso correspondiente. Una vez que hemos diseado el algoritmo, llegamos a la Codificacin. Esto consiste en pasar de la descripcin del algoritmo a un lenguaje de programacin concreto, tal como Java. Una vez que hayamos elegido el lenguaje de programacin concreto, slo tendremos que ir siguiendo el algoritmo, y escribiendo con la sintaxis de ese lenguaje las sentencias o instrucciones que hacen lo que se indica en el algoritmo.

Unidad 1 6

VALLINIELLO

DEPARTAMENTO DE INFORMTICA Y COMUNICACIONES Desarrollo de Aplicaciones Informticas Mdulo de Programacin en Lenguajes Estructurados Unidad 1: Introduccin a la programacin Pilar Beltrn Prez

Por ejemplo, si el algoritmo indica:

nombre Juan Si (nombre = Pepe) Escribir ( El nombre del empleado es , nombre) Caso Contrario Escribir (No lo conozco, pero se llama , nombre) Fin-Si

En Java deberemos escribir algo como lo que sigue:

String nombre = Juan ; if (nombre.equals(Pepe)) { System.out.println(El nombre del empleado es + nombre) ; }else { System.out.println(No lo conozco, pero se llama + nombre) ; }

An sin conocer todava la sintaxis de Java ni la forma de describir el algoritmo en lenguaje algortmico, vemos que existe bastante similitud entre la descripcin ms o menos formal, pero cercana a nuestra forma de hablar del algoritmo y el cdigo escrito en lenguaje Java. La diferencia es que en el segundo tenemos que tener en cuenta una serie de detalles de sintaxis del lenguaje, tales como que las sentencias terminan con punto y coma, o las llaves para delimitar bloques de sentencias, o las palabras concretas que usamos para comprobar si se cumple o no una condicin, o la forma de asignar un valor a una variable En Java la sintaxis es esa y hay que escribirlo as, porque de otro modo, entendera. Por el contrario, en el algoritmo la sintaxis no es nada rgida. Podamos haberlo expresado de otra forma, ya que el nico requisito a cumplir es que quede claro para cualquier persona lo que hay que hacer en cada paso y el orden en el que se deben dar, sin ambigedades. no funcionara, el ordenador no lo

Unidad 1 7

VALLINIELLO

DEPARTAMENTO DE INFORMTICA Y COMUNICACIONES Desarrollo de Aplicaciones Informticas Mdulo de Programacin en Lenguajes Estructurados Unidad 1: Introduccin a la programacin Pilar Beltrn Prez

Dada la importancia del algoritmo en la ciencia de la computacin, un aspecto muy importante ser su diseo. Las caractersticas fundamentales que debe cumplir todo algoritmo son:

_ _ _

Un algoritmo debe ser preciso e indicar el orden de realizacin de cada paso. Un algoritmo debe estar definido. Si se sigue un algoritmo dos veces, se debe obtener el mismo resultado cada vez. Un algoritmo debe ser finito. Si se sigue un algoritmo, se debe terminar en algn momento, o sea debe tener un nmero finito de pasos.

1.4.- Aplicacin informtica. Hoy en da la mayora de los programas que utilizamos o elaboramos estn formando parte de un conjunto de programas interrelacionados formando lo que se llama una aplicacin informtica. Normalmente se trabaja con la aplicacin completa aunque tambin se puede hacer independientemente con cada uno de los programas que la forman. 1.4.1.- Ciclo de vida de una aplicacin informtica. El proceso que se sigue desde el planteamiento de un problema hasta que se tiene una solucin instalada en el ordenador se denomina ciclo de vida de un sistema informtico o desarrollo de una aplicacin informtica. Este proceso consta de dos fases o etapas: _ Fase de diseo o anlisis: En esta fase se comienza por identificar las necesidades y hacer un anlisis de los requerimientos. Como resultado de este anlisis obtenemos lo que se llama las especificaciones del problema. A partir de las especificaciones del problema se pasa a la fase de programacin y se busca una solucin al problema en forma de algoritmo. Seguidamente se transcribe el algoritmo a un lenguaje de programacin en lo que se llama fase de codificacin.
8

Unidad 1

VALLINIELLO

DEPARTAMENTO DE INFORMTICA Y COMUNICACIONES Desarrollo de Aplicaciones Informticas Mdulo de Programacin en Lenguajes Estructurados Unidad 1: Introduccin a la programacin Pilar Beltrn Prez

Problema Anlisis Especificaciones Programacin Algoritmo

Codificacin

Programa

Fase de implementacin o puesta a punto: En esta fase se realiza la implementacin de los programas (aplicacin) en el entorno o sistema fsico donde van a funcionar habitualmente y su puesta en marcha para obtener un funcionamiento normal de todo el sistema. Para completar el ciclo de vida hay que realizar las correcciones necesarias para subsanar errores y deficiencias del producto desarrollado.

1.5.- Caractersticas de los programas. Un determinado problema puede tener uno o mas algoritmos que nos permitan llegar a una determinada solucin. La eleccin del algoritmo mas adecuado se debe basar en una serie de requisitos de calidad que adquieren gran importancia a la hora de evaluar el coste de su diseo y mantenimiento. Las caractersticas generales que debe reunir un programa son las siguientes: _ _ _ Legibilidad: tendr que estar escrito de forma que sea fcil su lectura y comprensin. Portabilidad: su diseo debe permitir la codificacin en distintos lenguajes de programacin. Modularidad: para poder adaptarlos a una nueva situacin.
Unidad 1 9

VALLINIELLO

DEPARTAMENTO DE INFORMTICA Y COMUNICACIONES Desarrollo de Aplicaciones Informticas Mdulo de Programacin en Lenguajes Estructurados Unidad 1: Introduccin a la programacin Pilar Beltrn Prez

_ _

Eficiencia: aprovechando al mximo los recursos del ordenador. Estructuracin: debe cumplir las reglas de la programacin estructurada para facilitar la verificacin y depuracin del programa.

1.6.- Lenguajes de programacin. Un lenguaje de programacin es una notacin para escribir programas, a travs de los cuales podemos comunicarnos con el hardware del ordenador y dar as las ordenes adecuadas para la realizacin de un determinado proceso. Los distintos niveles de programacin existentes nos permiten acceder al hardware de tal forma que, segn utilicemos un nivel u otro, as tendremos que utilizar aplicaciones es: _ _ _ Lenguaje mquina. Lenguaje de bajo nivel (ensamblador). Lenguajes de alto nivel. un determinado lenguaje. Una clasificacin de los lenguajes desde el punto de vista de la programacin de

1.6.1.- Lenguajes mquina. Son aquellos que estn escritos en lenguajes directamente inteligibles por la mquina (ordenador), ya que sus instrucciones son cadenas binarias ( 0, 1) que especifican una operacin y las posiciones (direcciones) de memoria implicadas en la operacin se denominan instrucciones mquina o cdigo mquina. El cdigo mquina es el conocido cdigo mquina. Las instrucciones del lenguaje mquina dependen del hardware de la computadora y, por tanto, se diferenciara de un ordenador a otro. _ Ventajas: Posibilidad de cargar (transferir un programa a la memoria) sin necesidad de traduccin posterior, lo que supone una velocidad de ejecucin superior a cualquier otro lenguaje de programacin. _ Inconvenientes: _ _ _ _ Dificultad y lentitud en la codificacin. Poca fiabilidad. Dificultad grande a la hora de verificar y poner a punto los programas. Los programas solo son ejecutables en el mismo procesador.

Los inconvenientes superan ampliamente a las ventajas, lo que hace prcticamente no recomendables a los lenguajes mquina.
Unidad 1 10

VALLINIELLO

DEPARTAMENTO DE INFORMTICA Y COMUNICACIONES Desarrollo de Aplicaciones Informticas Mdulo de Programacin en Lenguajes Estructurados Unidad 1: Introduccin a la programacin Pilar Beltrn Prez

1.6.2.- Lenguajes de bajo nivel. Estos lenguajes son ms fciles de utilizar que los lenguajes mquina, pero al igual que ellos dependen del ordenador, por lo que no hay un nico lenguaje ensamblador. El lenguaje de bajo nivel por excelencia es el lenguaje ensamblador, (assembler language). Las instrucciones en lenguaje ensamblador son instrucciones conocidas como nemotcnicos (mnemonics). Por ejemplo, nemotcnicos tpicos de operaciones aritmticas son: En Ingles En Espaol ADD, SUB, DIV SUM, RES, DIV

Una instruccin tpica de suma seria: ADD M, N, P Esta instruccin podra significar: Sumar el nmero contenido en la posicin de memoria M al nmero almacenado en la posicin de memoria N y situar el resultado en la posicin de memoria P. Evidentemente es mucho mas sencillo recordar la instruccin anterior que su equivalente con cdigo mquina: 0110 1001 1010 1011 Un programa escrito en lenguaje ensamblador no puede ser ejecutado directamente por la computadora, sino que requiere una fase de traduccin al lenguaje mquina. El programa original escrito en lenguaje ensamblador, se denomina programa fuente y el programa traducido en lenguaje mquina se conoce como programa objeto, y es directamente entendible por el ordenador. Programa fuente

Programa ensamblador ENSAMBLADOR

Programa objeto

Unidad 1 11

VALLINIELLO

DEPARTAMENTO DE INFORMTICA Y COMUNICACIONES Desarrollo de Aplicaciones Informticas Mdulo de Programacin en Lenguajes Estructurados Unidad 1: Introduccin a la programacin Pilar Beltrn Prez

Ventajas: Las ventajas de estos lenguajes frente a los lenguajes mquina son: _ _ Mayor facilidad de codificacin Mayor velocidad de clculo. Dependencia total de la mquina, lo que impide la transportabilidad de los programas (posibilidad de ejecutar un programa en diferentes mquinas). _ La formacin de los programadores es ms compleja ya que exige no solo tcnicas de programacin, sino tambin el conocimiento del interior de la mquina.

Inconvenientes: _

1.6.3.- Los lenguajes de alto nivel. Los lenguajes de alto nivel son los ms utilizados por los programadores. Estn diseados para que las personas escriban y entiendan los programas lenguajes mquina y ensambladores. Otra razn es que un programa escrito en un lenguaje de alto nivel es independiente de la mquina, es decir que las instrucciones del programa de la computadora no dependen del diseo del hardware o de una computadora en particular. En consecuencia, los programas escritos en lenguajes de alto nivel son transportables, lo que significa que tienen la posibilidad de poder ser ejecutados con poca o ninguna modificacin en diferentes tipos de computadoras. _ Ventajas: _ _ _ _ _ _ El tiempo de formacin de comparado con otros lenguajes. La escritura de programas se basa en reglas sintcticas similares a los lenguajes humanos. Las modificaciones y puestas a punto de los programas son ms fciles. Reduccin del coste de los programas. Transportabilidad. los programadores es relativamente corto de un modo mucho ms fcil que los

Inconvenientes: _ _ _ _ Incremento del tiempo de puesta a punto al necesitarse diferentes traducciones del programa fuente para conseguir el programa definitivo. No se aprovechan los recursos internos de la mquina que se explotan mucho mejor en lenguajes mquina y ensambladores. Aumento de la ocupacin de memoria. El tiempo de ejecucin de los programas es mucho mayor.
Unidad 1 12

VALLINIELLO

DEPARTAMENTO DE INFORMTICA Y COMUNICACIONES Desarrollo de Aplicaciones Informticas Mdulo de Programacin en Lenguajes Estructurados Unidad 1: Introduccin a la programacin Pilar Beltrn Prez

Al igual que sucede con los lenguajes ensambladores, los programas fuente tienen que ser traducidos por programas traductores, llamados en este caso compiladores e interpretes. Los lenguajes de programacin de alto nivel existentes en la actualidad son muy numerosos, entre ellos estn BASIC, COBOL, C, C++, PASCAL, etc. 1.7.- Traductores del lenguaje. Los traductores de lenguaje son programas que traducen a su vez los programas fuente escritos en lenguajes de alto nivel a cdigo mquina. Los traductores se dividen en: _ _ Compiladores. Intrpretes.

1.7.1.- Compiladores. Un compilador es un programa que traduce los programas fuente escritos en lenguajes de alto nivel a lenguaje mquina. El programa escrito en lenguajes de alto nivel se llaman programa fuente y el programa traducido programa objeto o cdigo objeto. El compilador traduce sentencia a sentencia el programa fuente. Programa fuente

Compilador

Programa objeto

Unidad 1 13

VALLINIELLO

DEPARTAMENTO DE INFORMTICA Y COMUNICACIONES Desarrollo de Aplicaciones Informticas Mdulo de Programacin en Lenguajes Estructurados Unidad 1: Introduccin a la programacin Pilar Beltrn Prez

1.7.2.- Intrpretes. Un intrprete es un traductor que toma un programa fuente, lo traduce y a continuacin lo ejecuta. Un lenguaje que soporte un traductor de tipo intrprete se denomina lenguaje interpretado. BASIC es el modelo por excelencia de lenguaje interpretado. Programa fuente

Intrprete

Traduccin y ejecucin lnea a lnea 1.8.- La compilacin y sus fases. La compilacin es el proceso de traduccin de programas fuente a programas objeto. El programa objeto obtenido de la compilacin no ha sido traducido normalmente a cdigo mquina sino a ensamblador. Para conseguir el programa mquina real se debe utilizar un programa llamado montador o enlazador (linker). El proceso de montaje conduce a un programa en lenguaje mquina directamente ejecutable. El proceso de ejecucin de un programa en un lenguaje de alto nivel sigue por tanto las siguientes fases: _ Edicin: Consiste en la escritura del programa (empleando un lenguaje de programacin previamente seleccionado) y su posterior grabacin sobre un soporte de almacenamiento permanente. La edicin del programa debe realizarse mediante la utilizacin de un editor, que puede formar parte o no del compilador utilizado. En esta fase se obtiene el denominado programa fuente.

Unidad 1 14

VALLINIELLO

DEPARTAMENTO DE INFORMTICA Y COMUNICACIONES Desarrollo de Aplicaciones Informticas Mdulo de Programacin en Lenguajes Estructurados Unidad 1: Introduccin a la programacin Pilar Beltrn Prez

Compilacin: En esta fase se traduce el programa fuente a su equivalente cdigo mquina, obteniendo en caso de que no se produzca ningn error el denominado programa objeto. En caso de producirse errores, el compilador los mostrar utilizando los mensajes correspondientes, que nos permitirn corregir el programa fuente y proceder de nuevo a su compilacin.

Linkado: Esta fase tambin recibe el nombre de montaje y consiste en unir o enlazar el programa objeto obtenido en la fase de compilacin con determinadas rutinas internas del lenguaje y, si el mtodo de programacin es modular, se enlazan los distintos mdulos para obtener as el programa ejecutable.

Ejecucin: Esta fase consiste en la llamada del programa ejecutable a travs del sistema operativo. Inicialmente se debe comprobar el buen funcionamiento del programa mediante el uso de unos juegos de pruebas que especifican los resultados que se desean obtener en funcin de unos determinados datos de entrada.

Unidad 1 15

VALLINIELLO

DEPARTAMENTO DE INFORMTICA Y COMUNICACIONES Desarrollo de Aplicaciones Informticas Mdulo de Programacin en Lenguajes Estructurados Unidad 1: Introduccin a la programacin Pilar Beltrn Prez

Esquema del proceso de ejecucin de un programa en un lenguaje de alto nivel

ERRORES

Edicin

Compilacin

Programa Fuente

Linkado

Ejecucin

Programa Objeto Programa Ejecutable Los principales errores en la ejecucin de un programa son: _ _ _ Datos de entrada incorrectos que producen una parada del sistema (por ejemplo, introducir un dividendo con valor cero en una operacin de divisin). Bucles mal definidos que producen un funcionamiento continuo del programa (por ejemplo, un bucle sin fin o bucle infinito). Datos de salida incorrectos, producidos por un mal desarrollo del programa o ambigedad en las especificaciones del usuario.

Unidad 1 16

VALLINIELLO

DEPARTAMENTO DE INFORMTICA Y COMUNICACIONES Desarrollo de Aplicaciones Informticas Mdulo de Programacin en Lenguajes Estructurados Unidad 1: Introduccin a la programacin Pilar Beltrn Prez

Objetivos
Introduccin a la programacin, tiene como objetivo presentar al alumno los

conceptos bsicos de la programacin con el fin de que se familiarice con los trminos, materiales y finalidades del mdulo completo. Es una unidad con un matiz claramente conceptual que pretende ofrecer una visin global del contenido que ser desarrollado durante todo el mdulo. El alumno alcanzar los siguienes objetivos: _ _ _ _ _ _ Entender la necesidad de abordar la solucin a los problemas de una forma sistemtica. Conocer de forma genrica las fases a seguir para solucionar un problema usando ordenadores (solucin informtica) Conocer y comprender cada una de las tareas fundamentales en que se subdivide cada una de las fases de la solucin de un problema. Introducirle en la terminologa bsica usada en la solucin informtica de los problemas. Distinguir entre los principales tipos de programacin. Distinguir entre los principales tipos de traductores existentes, enumerando sus principales ventajas e inconvenientes. lenguajes que se usan en

Unidad 1 17

VALLINIELLO

DEPARTAMENTO DE INFORMTICA Y COMUNICACIONES Desarrollo de Aplicaciones Informticas Mdulo de Programacin en Lenguajes Estructurados Unidad 1: Introduccin a la programacin Pilar Beltrn Prez

Enlaces de inters

En el siguiente enlace, aparece un artculo en el que se ejemplifica de forma ms o menos general, los pasos que deben darse para solucionar un problema en general. La mayora de ellos son los mismos que aplicamos cuando intentamos solucionar un problema informtico. Pasos para solucionar un problema http://www.desarrolloweb.com/articulos/1597.php?manual=5

En los siguientes enlaces encontrars informacin algo ms detallada acerca de las caractersticas de los compiladores y de los lenguajes compilados.

Caractersticas de los Compiladores http://www.linux10.com.ar/Glosario/terminos/compilador.htm Lenguajes Compilados http://es.wikipedia.org/wiki/Lenguajes_compilados

En este enlace aparece compiladores.

informacin exhaustiva

sobre el

funcionamiento de los

Funcionamiento de los compiladores http://www.monografias.com/trabajos11/compil/compil.shtml

El siguiente enlace ofrece informacin adicional sobre las caractersticas de los intrpretes y los lenguajes interpretados. Lenguajes interpretados http://es.wikipedia.org/wiki/Lenguajes_interpretados

Unidad 1 18

VALLINIELLO

DEPARTAMENTO DE INFORMTICA Y COMUNICACIONES Desarrollo de Aplicaciones Informticas Mdulo de Programacin en Lenguajes Estructurados Unidad 1: Introduccin a la programacin Pilar Beltrn Prez

Glosario de trminos
Algoritmo
Es una frmula para resolver un problema. Un conjunto finito de acciones o secuencia de operaciones que ejecutadas en un determinado orden resuelven el problema. Tambin puede definirse como un mtodo para resolver un problema mediante una serie finita de pasos precisos y bien definidos. Ejemplos usuales de algoritmos son una receta de cocina, o el protocolo de actuacin de un mdico para atender y curar a un paciente que padece una determinada enfermedad. En el contexto de la informtica, el algoritmo representa la secuencia de acciones o instrucciones que debe ejecutar el ordenador para solucionar un problema.

Cdigo fuente
Se llama as al programa escrito en un lenguaje de alto nivel, normalmente contenido en un fichero de texto.

Cdigo mquina
Lenguaje totalmente dependiente de las caractersticas fsicas de un procesador concreto. Las instrucciones se representan en binario, con ceros y unos. Es el nico lenguaje directamente ejecutable por el ordenador, por lo que cualquier programa escrito en cualquier otro lenguaje de programacin debe ser traducido a cdigo mquina para poder ser ejecutado.

Cdigo objeto
Es el programa una vez compilado, traducido a cdigo mquina y contenido en un fichero, que es el resultado de la compilacin. Este cdigo se puede ejecutar cada vez que se quiera sin tener que volver a traducir el programa.

Compiladores
Programas traductores capaces de traducir un programa escrito en un lenguaje de programacin de alto nivel a cdigo mquina. Se traduce todo el cdigo fuente del programa, obtenindose como resultado un fichero con el programa traducido a cdigo mquina, que es ejecutable tantas veces como se quiera sin tener que volver a traducir.
Unidad 1 19

VALLINIELLO

DEPARTAMENTO DE INFORMTICA Y COMUNICACIONES Desarrollo de Aplicaciones Informticas Mdulo de Programacin en Lenguajes Estructurados Unidad 1: Introduccin a la programacin Pilar Beltrn Prez

Compilar
Traducir un programa escrito en lenguaje de alto nivel a cdigo mquina usando un compilador.

Datos
En la vida comn se usa como sinnimo de informacin, pero en informtica el trmino dato es ms restrictivo que el de informacin. Se define como un conjunto de smbolos que representan valores, hechos, objetos o ideas de forma adecuada para ser objeto de tratamiento.

Informacin
Yuxtaposicin de smbolos con los que se representan valores, hechos, objetos o ideas. Normalmente en la vida comn se usa como sinnimo de la palabra dato, si bien en informtica se entiende como algo ms amplio que los datos. Normalmente la informacin que maneja un programa incluye datos e instrucciones. Estas ltimas indican tareas a realizar, mientras que los datos son el objeto de tratamiento.

Intrpretes
Programas traductores capaces de traducir un programa escrito en un lenguaje de programacin de alto nivel a cdigo mquina. Se analiza una a una cada una de las instrucciones del programa escrito en lenguaje de alto nivel, se traduce a cdigo mquina y ejecutndola inmediatamente. La traduccin no se guarda en ningn sitio, por lo que cada vez que queramos volver a ejecutar el programa tenemos que volver a traducirlo.

Java
Un lenguaje de programacin de alto nivel, entre cuyas caractersticas fundamentales se encuentra su alta portabilidad. Los programas escritos en java siguen siendo portables incluso despus de haber sido compilados. Otra caracterstica importante es que el Kit de desarrollo bsico en java (JDK o Java Development Kit) puede obtenerse gratuitamente en Internet, junto con toda una librera de clases, que resuelven problemas concretos, y sin coste adicional. que son directamente utilizables por los programadores java

Unidad 1 20

VALLINIELLO

DEPARTAMENTO DE INFORMTICA Y COMUNICACIONES Desarrollo de Aplicaciones Informticas Mdulo de Programacin en Lenguajes Estructurados Unidad 1: Introduccin a la programacin Pilar Beltrn Prez

Lenguaje de programacin
Conjunto de smbolos y reglas sintcticas y gramaticales que permiten escribir instrucciones o sentencias vlidas, comprensibles para un ordenador y aptas para ser ejecutadas en un ordenador.

Lenguaje mquina
Significa lo mismo que cdigo mquina. Lenguaje totalmente dependiente de las caractersticas fsicas de un procesador concreto. Las instrucciones se representan en binario, con ceros y unos. Es el nico lenguaje directamente ejecutable por el ordenador, por lo que cualquier programa escrito en cualquier otro lenguaje de programacin debe ser traducido a cdigo mquina para poder ser ejecutado.

Lenguajes de alto nivel


Son lenguajes muy cercanos al lenguaje humano (lenguaje natural), pero evitando las ambigedades del mismo. Son ms estructurados, y con una sintaxis algo ms rgida que el lenguaje natural, pero mucho ms fciles de entender que el cdigo mquina. Son totalmente portables, es decir, cuando escribo un programa en un lenguaje de alto nivel, ese programa o cdigo es el mismo para cualquier ordenador en el que quiera ejecutarlo. No obstante, necesitar un traductor (compilador o intrprete) distinto para traducir al cdigo mquina concreto de ordenadores con distintos procesadores.

Lenguajes de bajo nivel


Lenguajes totalmente dependientes de las caractersticas fsicas de un

microprocesador concreto. Por tanto, no son portables. Son lenguajes de bajo nivel el cdigo mquina y el ensamblador. Ambos permiten programar usando directamente el repertorio de instrucciones del microprocesador, por lo que su uso requiere un profundo conocimiento tcnico de los detalles de funcionamiento interno del mismo. Sin embargo permiten aprovechar de forma ptima los recursos del microprocesador, por lo que se usan para programas que requieren gran rapidez y eficiencia.

Portabilidad
Caracterstica de un programa asociada a la posibilidad de ejecutarlo en distintas plataformas, es decir, en ordenadores con distintos procesadores, de distintas caractersticas y fabricantes. Puede definirse como independencia del programa con respecto a las caractersticas fsicas del ordenador en el que se vaya a ejecutar.
Unidad 1 21

VALLINIELLO

DEPARTAMENTO DE INFORMTICA Y COMUNICACIONES Desarrollo de Aplicaciones Informticas Mdulo de Programacin en Lenguajes Estructurados Unidad 1: Introduccin a la programacin Pilar Beltrn Prez

Programador
Persona que confecciona programas de ordenador, indicndole al ordenador las tareas y sentencias que tiene que realizar y en qu orden para solucionar un problema.

Unidad 1 22

VALLINIELLO

DEPARTAMENTO DE INFORMTICA Y COMUNICACIONES Desarrollo de Aplicaciones Informticas Mdulo de Programacin en Lenguajes Estructurados Unidad 2: Elementos bsicos generales de un programa Pilar Beltrn Prez

ndice de Contenidos

2.1.- Estructuras Bsicas de datos. 2.2.- Identificadores. 2.3.- Datos bsicos. 2.3.1.- Numricos. 2.3.2.- No numricos. 2.3.3.- Datos estructurados. 2.3.4.- Constantes. 2.3.5.- Variables. 2.3.6.- Expresiones. 2.3.7.- Funciones. 2.3.8.- Operadores. 2.3.8.1.- Orden de prioridad de los operadores. 2.3.9.- Constantes simblicas.
Prcticas propuestas Objetivos de la Unidad Didctica Enlaces de inters Glosario de trminos Soluciones a las prcticas propuestas

Unidad 2 1

VALLINIELLO

DEPARTAMENTO DE INFORMTICA Y COMUNICACIONES Desarrollo de Aplicaciones Informticas Mdulo de Programacin en Lenguajes Estructurados Unidad 2: Elementos bsicos generales de un programa Pilar Beltrn Prez

En esta unidad veremos una serie de conceptos bsicos para la programacin, tales como datos, tipos y estructuras de datos. Estos conceptos deben ser dominados por el programador a fin de incorporarse con ciertas garantas a un equipo de programacin. Hay que especificar que los programas y aplicaciones informticas trabajan con datos, que pueden ser almacenados para posteriormente ser utilizados en la obtencin de informacin til, empleada para adoptar las decisiones ms adecuadas en cada situacin.

2.1.- Estructuras Bsicas de datos. Son objetos de un programa todos los datos y resultados manipulados por las instrucciones de un programa. Todo objeto tiene tres atributos: _ _ _ Nombre: con el que se identifica al objeto. Tipo: conjunto de valores que puede tomar. Valor: elemento del tipo asigna. Ejemplo: Nombre: sueldo Tipo: entero Valor: 70000 2.2.- Identificadores. Son palabras creadas por el programador para dar nombre a los objetos y dems elementos que necesita declarar en un programa. Existen unas normas generales para su empleo: _ _ _ _ Pueden estar constituidos por letras, dgitos y el carcter subrayado (_), aunque algunas herramientas permiten otros caracteres especiales. Deben comenzar por una letra y en algunos compiladores tambin por (_). No deben tener espacios en blanco. El nmero mximo de caracteres que se pueden emplear depende del compilador utilizado.
Unidad 2 2

que se

le

VALLINIELLO

DEPARTAMENTO DE INFORMTICA Y COMUNICACIONES Desarrollo de Aplicaciones Informticas Mdulo de Programacin en Lenguajes Estructurados Unidad 2: Elementos bsicos generales de un programa Pilar Beltrn Prez

El nombre asignado conviene que tenga relacin con la informacin que contiene, pudindose emplear abreviaturas que sean significativas.

2.3.- Datos bsicos. Dato es toda informacin que se aporta a un programa. O tambin toda informacin caracterstica propia de cualquier entidad. Los programas procesan datos a fin de obtener resultados. Como ya vimos en la unidad 1, podemos definir dato como un conjunto de smbolos que representan valores, hechos, objetos o ideas de forma adecuada para ser tratados. Incluso, en el mbito de la informtica, podemos definir dato de forma similar, como cualquier objeto manipulable por la computadora. Un dato puede ser un carcter ledo desde teclado, un nmero, la informacin almacenada en un CD, una foto almacenada en un fichero, una cancin, el nombre de un alumno almacenado en la memoria del ordenador, etc. Los ordenadores son mquinas creadas para procesar automticamente la informacin, y para ello esa informacin no se almacena ni representa al azar, sino que ha de organizarse y estructurarse de forma ocuparemos en esta unidad. En esta unidad analizaremos: Los tipos bsicos de datos que incluyen la mayora de los lenguajes de programacin, (aunque con diferencias significativas entre unos y otros) . Por ejemplo, la edad de un trabajador la podremos representar con un tipo bsico, concretamente un tipo entero, ya que la edad es un valor numrico positivo y sin decimales (que es justo lo que define el tipo entero, como se ver ms adelante).
Unidad 2 3

adecuada para

que pueda almacenarse, procesarse y

recuperarse de la forma ms eficiente posible. ste ser el principal problema del que nos

VALLINIELLO

DEPARTAMENTO DE INFORMTICA Y COMUNICACIONES Desarrollo de Aplicaciones Informticas Mdulo de Programacin en Lenguajes Estructurados Unidad 2: Elementos bsicos generales de un programa Pilar Beltrn Prez

La siguiente clasificacin contempla las diversas formas de representacin de la informacin para su almacenamiento y tratamiento.

2.3.1.- Numricos. Se utilizan para contener clasifican en enteros y reales: _ Enteros: se emplean para representar nmeros enteros cuyo rango o tamao dependen del lenguaje y del ordenador utilizados. Los datos de este tipo se expresan mediante una serie de dgitos (de 0 a 9), pudiendo estar precedidos del signo (+ o -). Ejemplo: _ -82, +345 magnitudes y se

Reales: se emplea para representar los nmeros con parte decimal o los nmeros muy grandes o muy pequeos que no pueden ser contenidos en un entero. Se pueden representar de dos formas: _ _ Punto decimal: emplea los dgitos del 0 al 9 con su signo correspondiente y un punto para separar la parte entera de la decimal. Ejemplo: -82.75, Mantisa es un nmero real. E representa la base decimal. Caracterstica es el exponente correspondiente a un nmero entero con su signo. Ejemplos: 2.5E3, -0.75E-2 +345.87 Cientfica o exponencial: Utiliza el formato mantisaEcaracterstica, donde:

2.3.2.- No numricos. _ Carcter: Se emplea para representar un smbolo dentro de un cdigo definido por el fabricante del ordenador, de tal forma que cada uno de ellos se corresponde con un nmero entero sin signo segn un determinado cdigo.

Unidad 2 4

VALLINIELLO

DEPARTAMENTO DE INFORMTICA Y COMUNICACIONES Desarrollo de Aplicaciones Informticas Mdulo de Programacin en Lenguajes Estructurados Unidad 2: Elementos bsicos generales de un programa Pilar Beltrn Prez

La representacin interna depende del cdigo utilizado. Los cdigos mas empleados son los que utilizan 8 bits. Ejemplo: A en ASCII es 65 y en binario es 01000001. En algunos lenguajes (como en COBOL) se incluye como tipo de datos bsico el tipo alfanumrico, que es una cadena de caracteres formada por un nmero determinado de caracteres y en otros lenguajes (como en C) se considera este tipo de dato como un vector de caracteres. _ Lgico: se emplea para representar dos valores opuestos, Verdadero o Falso, True o False, V o F, 1 o 0 . Internamente se considera 1 como verdadero y 0 como falso.

2.3.3.- Datos estructurados. Se pueden considerar, de forma general, las siguientes caractersticas: _ Internos: son los que residen en la memoria principal del ordenador. _ _ Estticos: son aquellos cuyo tamao queda definido en la compilacin del programa y no se puede modificar durante la ejecucin del mismo. Dinmicos: son aquellos cuyo tamao puede ser modificado durante la ejecucin del programa. Lineales: son los que pueden estar enlazados con un solo elemento anterior y un solo elemento posterior. No lineales: son los que pueden enlazarse con ms de un elemento anterior y ms de un elemento posterior. _ _ Externos: son los que residen en un soporte externo a la memoria principal, es decir memoria auxiliar. Compuestos: son los formados por el programador en base a los tipos de datos bsicos y derivados, pudiendo ser internos o externos.

2.3.4.- Constantes. Son datos cuyo valor no cambia durante la ejecucin del programa. Las constantes pueden ser: _ _ _ _ Enteras Reales Alfanumricas (es un carcter vlido encerrado entre apstrofos ). Cadena de caracteres:

Unidad 2 5

VALLINIELLO

DEPARTAMENTO DE INFORMTICA Y COMUNICACIONES Desarrollo de Aplicaciones Informticas Mdulo de Programacin en Lenguajes Estructurados Unidad 2: Elementos bsicos generales de un programa Pilar Beltrn Prez

Se pueden expresar de dos formas: _ _ De forma explcita mediante su valor. Por ejemplo: 87.5 A Utilizando un identificador para definir la constante en memoria, asignndole un valor. El compilador asignar la memoria con el tamao correspondiente al tipo de dato expresado por su valor. Por ejemplo: Pi = 3.1416, descuento = 10. 2.3.5.- Variables. Son datos cuya informacin puede ser variable durante la ejecucin del programa. Estos datos deben ser definidos con un identificador y un tipo de dato. El identificador es elegido por el programador y permite referenciar la variable para su uso en el programa pudindose modificar su valor. El tipo de dato permite determinar el tamao de la variable en memoria. Segn el tipo de dato que almacenan las variables pueden ser:

Unidad 2 6

VALLINIELLO

DEPARTAMENTO DE INFORMTICA Y COMUNICACIONES Desarrollo de Aplicaciones Informticas Mdulo de Programacin en Lenguajes Estructurados Unidad 2: Elementos bsicos generales de un programa Pilar Beltrn Prez

Numricas: nombre-variable = valor Ejemplo: suma = 80

_ _

Alfanumricas: nombre-variable = comentario Ejemplo: apellido = Prez Lgicas: nombre-variable = valor lgico Ejemplo: A = verdadero

Antes de utilizar una variable en el programa, esta debe contener un valor que puede ser asignado inicialmente o bien durante la ejecucin del programa.

2.3.6.- Expresiones. Las expresiones son combinaciones de constantes, variables, smbolos de operacin, parntesis y nombres de funciones especiales. Cada expresin toma un valor que se determina tomando los valores de las variables y constantes implicadas y la ejecucin de las operaciones existentes. Por tanto una expresin es un conjunto de datos (operndoos) y operadores, con unas reglas especificas de construccin. Segn sea el resultado que producen y los operadores que utilizan se clasifican en: _ Numricas: son las que producen resultados de tipo numrico. Se construyen mediante operadores aritmticos. Ejemplo: suma + 5 _ mediante operadores alfanumricos. Ejemplo: Juan + Lpez _ Lgicas: son las que producen resultados verdadero o falso. Se construyen mediante los operadores lgicos y/o relacinales. Ejemplo: A > 0 AND B < 5 2*Pi*R Alfanumricos: son las que producen resultados alfanumricos. Se construyen

Unidad 2 7

VALLINIELLO 2.3.7.- Funciones.

DEPARTAMENTO DE INFORMTICA Y COMUNICACIONES Desarrollo de Aplicaciones Informticas Mdulo de Programacin en Lenguajes Estructurados Unidad 2: Elementos bsicos generales de un programa Pilar Beltrn Prez

Las operaciones que se requieren en los programas exigen en numerosas ocasiones, adems de las operaciones aritmticas bsicas, un nmero determinado de operadores espaciales que se denominan funciones internas, incorporadas o estndar. Cada lenguaje de programacin tiene sus propias funciones, entre las comunes y ms utilizadas estn las siguientes:

_ _ _ _ _ _

Sqrt(x) abs(x) cos(x) sin(x) seno

raz cuadrada de un nmero positivo valor absoluto coseno

ln(x)logaritmo neperiano log10(x) logaritmo decimal

2.3.8.- Operadores. Los operadores son smbolos que sirven para conectar los datos haciendo diversas clases de operaciones. En funcin de las operaciones a realizar los operadores se clasifican segn la siguiente tabla: OPERADOR Parntesis SMBOLO SIGNIFICADO () Parntesis **, ^ Potencia * Producto / Divisin div, \ Divisin entera mod Mdulo (reto de divisin entera) + Suma Resta + Concatenacin Concatenacin eliminando espacios ==, = Igual a <> Distinto a < Menor que <= Menor o igual que > Mayor que >= Mayor o igual que Disyuncin NOT, no Negacin AND, y Conjuncin OR, o

Aritmticos

Alfanumricos Relacinales

Lgicos

Nota: Sirva esta tabla de operadores como referencia general. En particular, cada lenguaje de programacin utiliza su propia simbologa para estos operadores. Por ejemplo en Java el operador lgico AND se representa mediante mediante %. &&, el operador lgico mediante ||, el operador MOD se representa

En las operaciones lgicas se determina su resultado por medio de las tablas de la verdad:
Unidad 2 8

VALLINIELLO

DEPARTAMENTO DE INFORMTICA Y COMUNICACIONES Desarrollo de Aplicaciones Informticas Mdulo de Programacin en Lenguajes Estructurados Unidad 2: Elementos bsicos generales de un programa Pilar Beltrn Prez

Negacin: A F V NOT A V F

Conjuncin: A F F V V B F V F V A AND B F F F V

Disyuncin: A F F V V B F V F V A OR B F V V V

2.3.8.1.- Orden de prioridad de los operadores. Dentro de las expresiones hay que tener un orden de prioridad de los operadores que depende del lenguaje de programacin utilizado, pero que de forma general se puede establecer 1. 2. 3. P 4. 5. 6. de mayor a menor prioridad de la siguiente forma: Parntesis (Comenzando por los mas internos). Signo. otencia. Producto, divisin, mdulo. Suma, resta. Concatenacin.
Unidad 2 9

VALLINIELLO 7. 8. 9. Relacinales. Negacin. Conjuncin.

DEPARTAMENTO DE INFORMTICA Y COMUNICACIONES Desarrollo de Aplicaciones Informticas Mdulo de Programacin en Lenguajes Estructurados Unidad 2: Elementos bsicos generales de un programa Pilar Beltrn Prez

10. Disyuncin. La evaluacin de los operadores de igual orden se realiza siempre de izquierda a derecha. 2.3.9.- Constantes simblicas. Una constante simblica es un nombre que sustituye una secuencia de caracteres. Los caracteres pueden representar una constante numrica, una constante de caracteres o una constante de cadena. Cuando se compila un programa, cada aparicin de una constante simblica, es reemplazada por su correspondiente secuencia de caracteres. Las constantes simblicas se suelen definir al comienzo del programa.

Unidad 2 10

VALLINIELLO

DEPARTAMENTO DE INFORMTICA Y COMUNICACIONES Desarrollo de Aplicaciones Informticas Mdulo de Programacin en Lenguajes Estructurados Unidad 2: Elementos bsicos generales de un programa Pilar Beltrn Prez

Prctica propuesta a resolver por el alumno. Prctica 2-1. Decir cul de los siguientes identificadores son vlidos. Si no lo son explicar porqu: a) Renta d) Dos pulgadas g) 123nombre j) impuesto$ b) Registro1 e) nombreapellidos h) C3P7 k) bienvenido#5 c) 1registro f) nombre_apellidos i) Nombre y Apellidos

Prctica propuesta a resolver por el alumno. Prctica 2-2. Determinar cules de los siguientes valores numricos son constantes vlidas. Si es vlida especificar de que tipo es. a) 0.5 d) B g) nombre b) 9.3E-121registro e) 27,82 h) apellidos c) 0.8E+0.8 f) 1234

Prctica propuesta a resolver por el alumno. Prctica 2-3. Supongamos que a, b, c son variables enteras que tienen asignadas los valores siguientes expresiones: a) a + b + c b) a mod b c) a * b/c d) a * (c mod b) e) 2 * b + 3 * ( a c ) f) a * ( b/c) g) (a * c) mod b
11 Unidad 2

a = 8, b = 3, c =-5. Determinar el valor de cada una de las siguientes

VALLINIELLO

DEPARTAMENTO DE INFORMTICA Y COMUNICACIONES Desarrollo de Aplicaciones Informticas Mdulo de Programacin en Lenguajes Estructurados Unidad 2: Elementos bsicos generales de un programa Pilar Beltrn Prez

Objetivos
Elementos bsicos generales de un programa siguientes objetivos: Comprender la importancia de los datos en la programacin de ordenadores, ya que todos los programas utilizan datos y operaciones sobre datos. Entender la necesidad de contar con diferentes tipos de datos para representar la informacin. Conocer y comprender cada uno de los tipos de datos bsicos que existen. Asignar de forma correcta el tipo ms adecuado para cada dato. Conocer las particularidades de cada tipo de dato. persigue que el alumno alcance los

Unidad 2 12

VALLINIELLO

DEPARTAMENTO DE INFORMTICA Y COMUNICACIONES Desarrollo de Aplicaciones Informticas Mdulo de Programacin en Lenguajes Estructurados Unidad 2: Elementos bsicos generales de un programa Pilar Beltrn Prez

Enlaces de inters

Existen diferentes maneras de representar internamente los distintos tipos de datos, si quieres profundizar un poco ms en este tema, visita el siguiente enlace, en la pgina 7 puedes encontrar la notacin complemento a 2 para representar los nmeros enteros:

Elementos de Programacin. http://www.conectados.org/doc/Apuntes/1_Elementos_de_Programacion/temai.pdf

Al igual que con los nmeros enteros, los nmeros reales tienen diferentes representaciones internas, entre ellas est la representacin interna en coma flotante, en la notacin IEEE 754, de la que podrs obtener ms informacin en el siguiente enlace:

Representacin interna de los nmeros reales. Coma flotante. http://www.unalmed.edu.co/~daristiz/guias/fisica_computacional/semana_4/aritmetica.pdf

Reciben el nombre de booleanos

en honor del matemtico ingls George Boole,

que ide una herramienta matemtica denominada lgebra de Boole binaria, y que es la base matemtica para la construccin de circuitos lgicos, y que permite aplicar la lgica matemtica a la construccin de ordenadores. Para conocer algo ms sobre Boole, sigue el siguiente enlace. BOOLE http://www-etsi2.ugr.es/alumnos/mlii/Boole.htm

Para una lectura ms detallada de los cdigos de E/S puedes visitar la siguiente pgina:

Elementos_de_Programacin. http://www.conectados.org/doc/Apuntes/1_Elementos_de_Programacion/temai.pdf

De entre los distintos cdigos de E/S, hemos destacado dos por su uso mayoritario, ASCII y Unicode, puedes saber algo ms de ellos en los siguientes enlaces: Cdigo ASCII http://es.wikipedia.org/wiki/ASCII UNICODE http://www.unicode.org/

Unidad 2 13

VALLINIELLO

DEPARTAMENTO DE INFORMTICA Y COMUNICACIONES Desarrollo de Aplicaciones Informticas Mdulo de Programacin en Lenguajes Estructurados Unidad 2: Elementos bsicos generales de un programa Pilar Beltrn Prez

Glosario de trminos

ASCII American Standard Code for Information Interchange (Cdigo Estadounidense Estndar para el Intercambio de Informacin) es un cdigo de caracteres basado en el alfabeto latino tal como se usa en ingls moderno y otras lenguas occidentales. Define 128 cdigos posibles, dividido en 4 grupos de 32 caracteres, (7 bits de informacin por cdigo), aunque utiliza menos de la mitad, para caracteres de control, alfabticos (no incluye minsculas), numricos y signos de puntuacin. Su principal ventaja, aparte de constituir un estndar, consiste en la ordenacin alfabtica de los cdigos. Clase Una clase es un tipo definido por el usuario que determina las estructuras de datos y las operaciones asociadas con ese tipo. Una clase es una coleccin de objetos similares y un objeto es una instancia de una definicin de una clase. Cdigo de E/S Los cdigos de E/S o cdigos externos asocian a cada carcter (alfabtico, numrico o especial) una determinada combinacin de bits. Constante Una constante es una zona de memoria del ordenador donde se almacena un dato cuyo valor no se puede modificar. Una vez que una constante se declara no se puede modificar dentro del programa. Dato En la vida comn se usa como sinnimo de informacin, pero en informtica el trmino dato es ms restrictivo que el de informacin. Se define como un conjunto de smbolos que representan valores, hechos, objetos o ideas de forma adecuada para ser objeto de tratamiento. Instancias de clase Cada vez que se construye un objeto de una clase, se crea una instancia de esa clase. En general, los trminos objetos e instancias de una clase se pueden utilizar indistintamente.

Unidad 2 14

VALLINIELLO

DEPARTAMENTO DE INFORMTICA Y COMUNICACIONES Desarrollo de Aplicaciones Informticas Mdulo de Programacin en Lenguajes Estructurados Unidad 2: Elementos bsicos generales de un programa Pilar Beltrn Prez

Interface Interfaz. Conexin e interaccin entre hardware, software y el usuario. El diseo y construccin de interfaces constituye una parte principal del trabajo de los ingenieros, programadores y consultores. Los usuarios "conversan" con el software. El software "conversa" con el hardware y otro software. El hardware "conversa" con otro hardware. Todo este "dilogo" no es ms que el uso de interfaces. Mantisa Cifras decimales significativas en la representacin en coma flotante de los nmeros reales. N = mantisa * Base Memoria RAM RAM es el acrnimo ingls de Random-Access Memory (memoria de acceso aleatorio). Memoria en la que se puede tanto leer como escribir. Se trata de una memoria voltil, es decir, pierde su contenido al desconectar la energa elctrica. Se utiliza normalmente como memoria temporal para almacenar resultados intermedios y datos similares no permanentes. Nmero Binario Nmero representado en el sistema de numeracin binario, sistema de numeracin en el que todas las cantidades se representan utilizando como base el nmero dos, con lo que disponemos nicamente de las cifras: cero y uno ('0' y '1'). Operador Los operadores son elementos que relacionan de diversas formas, los valores contenidos en una o ms variables o constantes. Como resultado de esta relacin se obtiene un valor, que puede ser lgico o numrico. A los elementos que se relacionan (variables o constantes) se les conoce como OPERANDOS y los elementos relacionadores se les llama OPERADORES. Overflow Es una situacin de overflow aqulla en la que hemos sobre pasado las capacidades de que disponemos cuando, por ejemplo, el ordenador nos indica que no dispone de memoria suficiente para responder a un requerimiento concreto que le hemos pedido. Un ejemplo ms grfico es el de una elemental calculadora de 8 dgitos que no puede mostrar en su pantalla el resultado de una operacin en cientos de millones.
exponente

Ejemplo: 5000 = .5 *10

Unidad 2 15

VALLINIELLO

DEPARTAMENTO DE INFORMTICA Y COMUNICACIONES Desarrollo de Aplicaciones Informticas Mdulo de Programacin en Lenguajes Estructurados Unidad 2: Elementos bsicos generales de un programa Pilar Beltrn Prez

Sistema Operativo Un sistema operativo (SO) es un conjunto de programas o software para permitir comunicarse el usuario con un ordenador y gestionar sus recursos de manera cmoda y eficiente. Comienza a trabajar cuando se enciende el ordenador, y gestiona el hardware de la mquina desde los niveles ms bsicos. Tabla Verdad (o tabla de verdad)

Dada una expresin lgica, compuesta por variables y operadores lgicos, la tabla verdad de esa expresin indica cual es el resultado de evaluar la expresin para cada una de las posibles combinaciones de valores que pueden darse para las variables que forman parte de la expresin. Es una tabla que para cada posible combinacin de valores (verdadero o falso) de las variables que forman la expresin, asigna el resultado de evaluar esa expresin sustituyendo las variables por los valores de esa combinacin. Evidentemente, el resultado de evaluar la expresin ser a su vez Verdadero o Falso. Tipo de Dato Podemos definir un tipo de dato a partir de los valores permitidos y las operaciones que se puedan llevar a cabo sobre estos valores. Underflow Es un estado de underflow aquel que resulta de la pretensin de operar con cantidades demasiado pequeas. Unicode Unicode es una norma de codificacin de caracteres. Su objetivo es asignar a cada posible carcter de cada posible lenguaje un nmero y nombre nico, a diferencia de la mayor parte de las normas de codificacin, que slo definen los caracteres necesarios para un idioma o zona geogrfica. Variable Una variable corresponde a un rea reservada en la memoria principal del ordenador, longitud fija o variable, en donde el programa puede almacenar valores

Unidad 2 16

VALLINIELLO

DEPARTAMENTO DE INFORMTICA Y COMUNICACIONES Desarrollo de Aplicaciones Informticas Mdulo de Programacin en Lenguajes Estructurados Unidad 3: La resolucin de problemas con el ordenador. Herramientas de programacin. El pseudocdigo Pilar Beltrn Prez

ndice de Contenidos

1.- Herramientas de programacin. 2.- Diagrama de flujo.

2.1.- Organigramas o diagramas de flujo del sistema. Prcticas resueltas


Prcticas propuestas

2.2.- Ordinogramas o diagramas de flujo de detalle. Prcticas resueltas


Prcticas propuestas

3.- Diagrama de Nassi-Schneiderman. 4.-Tablas de decisin. 4.1.- Estructura de una tabla de decisin. 5.- Pseudocdigo. Prcticas resueltas
Prcticas propuestas Objetivos de la Unidad Didctica Enlaces de inters Glosario de trminos Soluciones a las prcticas propuestas

Unidad 3 1

Tablas de decisin.
DEPARTAMENTO DE INFORMTICA Y COMUNICACIONES Desarrollo de Aplicaciones Informticas Mdulo de Programacin en Lenguajes Estructurados Unidad 3: La resolucin de problemas con el ordenador. Herramientas de programacin. El pseudocdigo Pilar Beltrn Prez

VALLINIELLO

1.- Herramientas de programacin.


Durante el diseo de un programa y en sus fases de anlisis y programacin surge la necesidad de utilizar una herramienta de diseo grfico para la representacin de los flujos de datos manipulados por el mismo, as como la secuencia lgica de las operaciones que constituyen el algoritmo de resolucin del problema para el que ha sido creado. Toda representacin grfica, debe cumplir las siguientes cualidades: _ _ _ _ Sencillez: han de ser fciles y sencillos. Claridad: deben reconocerse todos los elementos empleados por cualquier persona distinta a la que lo diseo. Normalizacin: tanto los diseadores como los usuarios de los programas deben utilizar las mismas normas de construccin. Flexibilidad: todo mtodo de representacin debe permitir sin grandes dificultades, posteriores modificaciones de algunas de las partes del algoritmo y la insercin de alguna nueva. Para la representacin de un algoritmo se debe utilizar algn mtodo que permita independizar dicho algoritmo del lenguaje de programacin elegido. Esto permitir que un algoritmo pueda ser codificado indistintamente en cualquier lenguaje. Los mtodos ms usuales para la representacin de algoritmos son: _ _ _ _ Diagrama de flujo. Diagrama de N-S (Nassi-Schneiderman). Pseudocdigo.

Unidad 3 2

VALLINIELLO

DEPARTAMENTO DE INFORMTICA Y COMUNICACIONES Desarrollo de Aplicaciones Informticas Mdulo de Programacin en Lenguajes Estructurados Unidad 3: La resolucin de problemas con el ordenador. Herramientas de programacin. El pseudocdigo Pilar Beltrn Prez

2.- Diagrama de flujo.


Los diagramas de flujo engloban tanto la representacin grfica de la circulacin de los datos e informacin dentro de un programa (organigrama o diagrama de flujo de sistema), como a la representacin grfica de la secuencia de operaciones que se han de realizar dentro del mismo (ordinograma o diagrama de flujo de detalle). Estas representaciones se corresponden con las distintas fases de un programa: Organigrama Ordinograma anlisis programacin

2.1.- Organigramas o diagramas de flujo del sistema. Son representaciones grficas del flujo de datos e informaciones que maneja un programa. En general una aplicacin se compone de ms de un programa y es necesario realizar un organigrama por cada uno de ellos, siendo recomendable en estos casos la existencia de uno general que represente todo el movimiento de datos de la aplicacin. El conjunto del organigrama permitir con facilidad la identificacin de los siguientes elementos: _ _ _ _ Soportes en que se encuentran los datos. El programa y su identificacin. Soportes donde se encuentran los resultados. El flujo de datos.

Para la representacin de un organigrama se deben seguir las siguientes reglas: _ _ _ _ En el centro figurar el smbolo del proceso. Que representa el programa. En la parte superior aparecern los soportes que suministrarn los datos de entrada. En la parte inferior aparecern los soportes que suministrarn los datos de salida. En las zonas de la derecha y de la izquierda aparecern los soportes de los datos de entrada y salida.

Unidad 3 3

VALLINIELLO

DEPARTAMENTO DE INFORMTICA Y COMUNICACIONES Desarrollo de Aplicaciones Informticas Mdulo de Programacin en Lenguajes Estructurados Unidad 3: La resolucin de problemas con el ordenador. Herramientas de programacin. El pseudocdigo Pilar Beltrn Prez

Soportes de entrada

Soportes de entrada-salida

PROCESO

Soportes de entrada-salida

Soportes de salida

Los smbolos que se utilizan en la confeccin de organigramas se agrupan en tres bloques: _ Smbolos de soporte: Representan los soportes fsicos donde se encuentran los datos de entrada y donde van a ser registrados los resultados.

Tarjeta perforada (E/S)

Cinta de papel (E/S)

Impresora (S)

Teclado (E)
Unidad 3 4

VALLINIELLO

DEPARTAMENTO DE INFORMTICA Y COMUNICACIONES Desarrollo de Aplicaciones Informticas Mdulo de Programacin en Lenguajes Estructurados Unidad 3: La resolucin de problemas con el ordenador. Herramientas de programacin. El pseudocdigo Pilar Beltrn Prez

Pantalla (S)

Tambor magntico (E/S)

Disco magntico (E/S)

Soporte magntico (E/S)

Cinta magntica (E/S)

Disco Flexible (E/S)

Cinta encapsulada (E/S) O O

Soporte genrico (E)

Unidad 3 5

VALLINIELLO

DEPARTAMENTO DE INFORMTICA Y COMUNICACIONES Desarrollo de Aplicaciones Informticas Mdulo de Programacin en Lenguajes Estructurados Unidad 3: La resolucin de problemas con el ordenador. Herramientas de programacin. El pseudocdigo Pilar Beltrn Prez

Smbolos de proceso: Representan el programa o conjunto de operaciones que realizan un determinado trabajo completo.

Proceso

Operacin auxiliar

Clasificacin de ficheros

Fusin de ficheros

Particin de ficheros

Lneas de flujo: Indican el sentido del movimiento de los datos e informaciones y si se realiza dicho movimiento a corta o larga distancia.

Direccin del flujo

Lneas de teleproceso

Unidad 3 6

VALLINIELLO

DEPARTAMENTO DE INFORMTICA Y COMUNICACIONES Desarrollo de Aplicaciones Informticas Mdulo de Programacin en Lenguajes Estructurados Unidad 3: La resolucin de problemas con el ordenador. Herramientas de programacin. El pseudocdigo Pilar Beltrn Prez

Veamos varios ejemplos de representacin de algunos procesos generales mediante organigramas:

El organigrama de un programa que toma datos de una ficha perforada, realiza unas operaciones y muestra los resultados por impresora sera el siguiente:

Proceso

Para representar el diagrama de flujo de un programa que lee datos de un fichero en cinta, graba cierta informacin en el disco duro y produce una salida en la impresora, el organigrama sera:

Unidad 3 7

VALLINIELLO

DEPARTAMENTO DE INFORMTICA Y COMUNICACIONES Desarrollo de Aplicaciones Informticas Mdulo de Programacin en Lenguajes Estructurados Unidad 3: La resolucin de problemas con el ordenador. Herramientas de programacin. El pseudocdigo Pilar Beltrn Prez

Programa que hace la actualizacin de un fichero con un disquete y la entrada de datos por teclado. Tambin hace una consulta de datos por pantalla y se produce una salida por impresora con los datos modificados.

Prctica propuesta Prctica 3-1. Realizar el organigrama de un programa que lee datos de un fichero en cinta magntica, graba cierta informacin en un disco y produce un resultado impreso. El fichero en disco creado en el proceso anterior es ledo en otro programa actualizando si procede otro fichero en disco y produciendo un listado de errores.

Unidad 3 8

VALLINIELLO

DEPARTAMENTO DE INFORMTICA Y COMUNICACIONES Desarrollo de Aplicaciones Informticas Mdulo de Programacin en Lenguajes Estructurados Unidad 3: La resolucin de problemas con el ordenador. Herramientas de programacin. El pseudocdigo Pilar Beltrn Prez

2.2.- Ordinogramas o diagramas de flujo de detalle. Son representaciones grficas de la secuencia lgica de las operaciones que se han de realizar para la resolucin de un problema por medio del ordenador. En la fase de programacin, el programador crea para cada programa un ordinograma, a partir del cual realiza la codificacin en el correspondiente lenguaje de programacin. Un ordinograma que representa un programa debe reflejar con claridad algunos de los elementos esenciales del mismo: _ _ _ _ _ _ _ _ _ _ Comienzo del programa. Operaciones. Secuencia en que se realizan. Final del programa. El comienzo del programa figurar en la parte superior. El flujo de las operaciones ir siempre que sea posible, de arriba abajo y de izquierda a derecha (en cuyo caso se pueden omitir las puntas de flecha). El final del programa figurar en la parte inferior. Se debe guardar simetra y equilibrio en la composicin del conjunto del ordinograma. Aunque se permiten, se evitarn siempre en la medida de lo posible los cruces de las lneas de flujo utilizando conectores. A un reagrupamiento de lneas de flujo pueden llegar varias de ellas pero solo puede salir una. Los smbolos utilizados en la confeccin de Ordinogramas son los siguientes: _ Smbolos de operacin: Inicio o Fin

En esta tcnica de representacin es aconsejable seguir las siguientes recomendaciones:

Operacin general

Operacin de E/S general

Unidad 3 9

VALLINIELLO

DEPARTAMENTO DE INFORMTICA Y COMUNICACIONES Desarrollo de Aplicaciones Informticas Mdulo de Programacin en Lenguajes Estructurados Unidad 3: La resolucin de problemas con el ordenador. Herramientas de programacin. El pseudocdigo Pilar Beltrn Prez

Subprograma

Modificacin de instruccin o inicializaciones

Operacin manual

Smbolos de decisin: Se utilizan para el establecimiento de bifurcaciones o la construccin de estructuras en las que se evala una expresin lgica o mltiple, derivndose la secuencia lgica de ejecucin de las operaciones entre varios caminos posibles.

Decisin

Decisin mltiple

Lneas de flujo: Indican la secuencia lgica de ejecucin de las operaciones desde el Inicio al Fin. Direccin del flujo

Smbolos de conexin: Se utilizan para la unin de lneas de flujo en los casos de reagrupamiento Reagrupamientoy de conexin o continuacin entre otra parte por cualquier motivo, (cambio de hoja, cruce de lneas).

Unidad 3 10

VALLINIELLO

DEPARTAMENTO DE INFORMTICA Y COMUNICACIONES Desarrollo de Aplicaciones Informticas Mdulo de Programacin en Lenguajes Estructurados Unidad 3: La resolucin de problemas con el ordenador. Herramientas de programacin. El pseudocdigo Pilar Beltrn Prez

Conector

Conector a distinta pgina

Smbolo de comentario: Se utiliza para aclarar o documentar el diseo del algoritmo con algn comentario que se considere necesario. Comentario

Resulta necesario indicar dentro de los smbolos la operacin especfica concebida por el programa.

Unidad 3 11

VALLINIELLO

DEPARTAMENTO DE INFORMTICA Y COMUNICACIONES Desarrollo de Aplicaciones Informticas Mdulo de Programacin en Lenguajes Estructurados Unidad 3: La resolucin de problemas con el ordenador. Herramientas de programacin. El pseudocdigo Pilar Beltrn Prez

A modo de resumen, se presenta la siguiente gua rpida de smbolos de soporte, proceso, decisin y conexin:

Unidad 3 12

VALLINIELLO

DEPARTAMENTO DE INFORMTICA Y COMUNICACIONES Desarrollo de Aplicaciones Informticas Mdulo de Programacin en Lenguajes Estructurados Unidad 3: La resolucin de problemas con el ordenador. Herramientas de programacin. El pseudocdigo Pilar Beltrn Prez

13

Unidad 3

VALLINIELLO

DEPARTAMENTO DE INFORMTICA Y COMUNICACIONES Desarrollo de Aplicaciones Informticas Mdulo de Programacin en Lenguajes Estructurados Unidad 3: La resolucin de problemas con el ordenador. Herramientas de programacin. El pseudocdigo Pilar Beltrn Prez

Prctica resuelta Representar mediante un ordinograma la secuencia de pasos necesaria para que un programa lea una temperatura en grados Centgrados y calcule y escriba en el dispositivo estndar de salida su valor en grados Kelvin. Anlisis del problema Utilizamos el smbolo de Operacin de E/S en general para Leer la temperatura en

grados Centgrados. El siguiente paso a realizar es el del clculo de la transformacin de esa temperatura a Grados Kelvin. Esto lo representaremos mediante el smbolo de proceso u operacin general . A continuacin se visualiza el resultado del clculo realizado en el paso anterior y, para ello utilizamos, de nuevo, el smbolo de Operacin de E/S en general . La solucin propuesta ser la siguiente Inicio

Leer Temperatura en grados Centgrados K = C + 273

Visualizar Temperatura En K

Fin
Unidad 3 14

VALLINIELLO

DEPARTAMENTO DE INFORMTICA Y COMUNICACIONES Desarrollo de Aplicaciones Informticas Mdulo de Programacin en Lenguajes Estructurados Unidad 3: La resolucin de problemas con el ordenador. Herramientas de programacin. El pseudocdigo Pilar Beltrn Prez

Prctica resuelta Representar mediante un ordinograma el algoritmo que lea dos nmeros por teclado y nos diga por pantalla si son iguales Anlisis del problema Comienza el programa con el smbolo de Inicio . Lo primero que necesitamos es .

suministrarle al ordenador los dos nmeros con los que queremos trabajar. stos sern los datos de entrada y representaremos esta operacin mediante el smbolo Identificaremos a las variables con los nombres Num1 y Num2. El siguiente paso consiste en comparar el contenidos de las variables, y esto se realiza mediante el smbolo de decisin Si la repuesta es que nos permite preguntar si Num1 es igual a Num2.

SI se debe visualizar que los nmeros son iguales. En el caso de que la . Inicio

espuesta sea NO se mostrar el mensaje contrario. El smbolo que utilizaremos para dar a Salida al mensaje ser

La solucin propuesta ser la siguiente

Leer Num1, Num2

SI
Num1= Num2

NO

Son iguales

No son iguales

Fin

Unidad 3 15

VALLINIELLO

DEPARTAMENTO DE INFORMTICA Y COMUNICACIONES Desarrollo de Aplicaciones Informticas Mdulo de Programacin en Lenguajes Estructurados Unidad 3: La resolucin de problemas con el ordenador. Herramientas de programacin. El pseudocdigo Pilar Beltrn Prez

Prcticas propuestas Prctica 3-2. Representar mediante un ordinograma el algoritmo de un programa que lea dos nmeros por teclado y, nos d como resultado la suma y la resta en pantalla. Prctica 3-3. Representar mediante un ordinograma el algoritmo que lea dos nmeros por teclado y nos diga por pantalla si son iguales y si no lo son que nos diga cual es el mayor. Prctica 3-4. Hacer el ordinograma de un programa que lee un nmero del nulo. por teclado y comprueba e imprime en los dispositivos estndar de salida si dicho nmero es

3.- Diagrama de Nassi-Schneiderman.


Los diagramas Nassi-Schneiderman, denominados as por sus inventores, o tambin N-S, o de Chapin, son una herramienta de programacin que favorece la programacin estructurada y rene caractersticas grficas propias de diagramas de flujo y lingsticas propias de los pseudocdigos. Constan de una serie de cajas contiguas que se leern siempre de arribaabajo y se documentarn de la forma adecuada. En los diagramas N-S las tres estructuras bsicas de la programacin estructurada, secuenciales, selectivas y repetitivas, encuentran su representacin propia. Sentencia1 Sentencia3 Sentencia2

Secuencial

Repetitiva de 0 a n veces

Unidad 3 16

VALLINIELLO

DEPARTAMENTO DE INFORMTICA Y COMUNICACIONES Desarrollo de Aplicaciones Informticas Mdulo de Programacin en Lenguajes Estructurados Unidad 3: La resolucin de problemas con el ordenador. Herramientas de programacin. El pseudocdigo Pilar Beltrn Prez

Repetitiva de 1 a n veces

Repetitiva n veces

Selectiva

Pr ejemplo, el algoritmo que lee una temperatura en grados Centgrados y calcula y escribe su valor en grados Kelvin se puede representar mediante el siguiente diagrama N-S. inicio leer (Centgrados) Kelvin _ Centgrados + 273.15 escribir (kelvin) fin

4.-Tablas de decisin.
Un instrumento que facilita deteccin de errores u omisiones. Se denomina tabla de decisin a la una representacin tabular de la lgica de un problema, en el que se presentan varias situaciones alternativas para cada una de ellas. Aparecieron a finales de los aos cincuenta y su utilizacin fue muy extensa en la dcada de los sesenta.. Una tabla de decisin, es por tanto: _ _ _ _
Unidad 3 17

Una herramienta para el anlisis de problemas. Un elemento de comunicacin dentro de la jerarqua informtica. Una representacin de problemas que facilita la codificacin de los mismos.

VALLINIELLO

DEPARTAMENTO DE INFORMTICA Y COMUNICACIONES Desarrollo de Aplicaciones Informticas Mdulo de Programacin en Lenguajes Estructurados Unidad 3: La resolucin de problemas con el ordenador. Herramientas de programacin. El pseudocdigo Pilar Beltrn Prez

Actualmente su uso ha quedado bastante reducido, por lo que solamente mostraremos la estrucutura de una tabla de decisin, por considerar su estudio interesante. 4.1.- Estructura de una tabla de decisin.

Una tabla de decisin es una representacin en la que se distinguen cuatro zonas: Condiciones. Consta de un vector columna donde figuran las condiciones que intervienen en el problema. Acciones. Consta de un vector columna en el que aparecen las acciones a realizar. Si en algn caso, para un estado determinado de las condiciones, se realizan varias acciones y stas se tienen que ejecutar en un orden preestablecido, figurarn en ese orden, de arriba abajo. Entrada de condiciones. Es una matriz de tantas filas como condiciones y columnas como situaciones distintas se pueden presentar. Salida de acciones. Matriz en la que figuran tantas filas como acciones y columnas como situaciones distintas se pueden presentar.

CONDICIONES

ENTRADA DE CONDICIONES

ACCIONES

SALIDA DE ACCIONES

Por ejemplo, supongamos que tenemos tres condiciones que se evalan con se cumple (S) o no se cumple (N) y tres acciones que se ejecutarn segn la siguiente representacin:

CONDICIN 1 CONDICIN 2 CONDICIN 3 ACCIN 1 ACCIN 2 ACCIN 3

S S S X

S S N X

S N S

S N N X X

N S S X

N S N X

N N S X

N N N X X

Unidad 3 18

VALLINIELLO

DEPARTAMENTO DE INFORMTICA Y COMUNICACIONES Desarrollo de Aplicaciones Informticas Mdulo de Programacin en Lenguajes Estructurados Unidad 3: La resolucin de problemas con el ordenador. Herramientas de programacin. El pseudocdigo Pilar Beltrn Prez

Cada columna de la matriz que representa la entrada de condiciones, correspondiente a un determinado estado de las mismas, se denomina situacin. Cada columna de la matriz que representa la salida de acciones se denomina tratamiento. Definimos como regla de decisin el conjunto formado por una situacin y su tratamiento correspondiente. Situacin

CONDICIN 1 CONDICIN 2 CONDICIN 3 ACCIN 1 ACCIN 2 ACCIN 3

S S S X

S S N X

S N S

S N N X X

N S S X

N S N X

N N S X

N N N X X

Tratamiento

Regla de decisin

5.- Pseudocdigo.
Es una tcnica utilizada para la descripcin de un algoritmo utilizando un lenguaje intermedio entre el lenguaje natural y el lenguaje de programacin. Esta notacin se encuentra sujeta a unas determinadas reglas que nos permiten y facilitan el diseo de algoritmos. Es la tcnica que utilizaremos a partir de ahora en todos nuestros algoritmos.

Lenguaje natural

Pseudocdigo Lenguaje de programacin

Representacin algoritmos

entendimiento y comprensin del diseo realizado. La escritura o diseo de un algoritmo mediante el uso de esta herramienta, exige la identacin o sangria del texto en el margen izquierdo de las diferentes lneas, lo que facilita el

Unidad 3 19

VALLINIELLO

DEPARTAMENTO DE INFORMTICA Y COMUNICACIONES Desarrollo de Aplicaciones Informticas Mdulo de Programacin en Lenguajes Estructurados Unidad 3: La resolucin de problemas con el ordenador. Herramientas de programacin. El pseudocdigo Pilar Beltrn Prez

El pseudocdigo se concibi para superar las dos principales desventajas del diagrama de flujo: lento de crear y difcil de modificar sin un nuevo redibujo. Es una herramienta muy buena para el seguimiento de la lgica de un algoritmo y para transformar con facilidad los algoritmos a programas escritos en un lenguaje de programacin especfico. Todo algoritmo representado en pseudocdigo deber reflejar las siguientes partes: _ _ Cabecera: Es el rea o bloque informativo donde quedar reflejado el nombre del programa y el nombre del algoritmo al que pertenece dicho diseo. Cuerpo: Es el resto del diseo, el cual queda dividido en dos bloques, el bloque de datos, donde debern quedar descritos todos los elementos de trabajo necesarios para la ejecucin del programa, y el bloque de acciones que es la zona en la que se deben describir con mxima claridad y detalle todas aquellas acciones que el ordenador deber realizar durante la ejecucin del programa.

Programa: Nombre del programa

Cabecera

Mdulo: Nombre del mdulo

Entorno: Descripcin de los datos

Cuerpo

Algoritmo: Inicio Descripcin de las acciones Fin-programa

Unidad 3 20

VALLINIELLO

DEPARTAMENTO DE INFORMTICA Y COMUNICACIONES Desarrollo de Aplicaciones Informticas Mdulo de Programacin en Lenguajes Estructurados Unidad 3: La resolucin de problemas con el ordenador. Herramientas de programacin. El pseudocdigo Pilar Beltrn Prez

En la escritura de algoritmos se har necesario el uso de alguna de las herramientas de programacin. La ms adecuada es el pseudocdigo, y debe quedar todo lo ms claro posible, de modo que se facilite al mximo su posterior codificacin en un lenguaje de programacin.

Aunque en Unidad 4 explicaremos con ms detalle la estructura general de todo programa, haremos ahora una primera aproximacin a la resolucin de algoritmos mediante pseudocdigos. El primer paso para encontrar la solucin de un problema es el anlisis del mismo. Se debe examinar cuidadosamente, a fin de obtener una idea clara sobre lo que se solicita y determinar los datos necesarios para conseguirlo. El algoritmo deber ser una secuencia ordenada de pasos, sin ambigedades, que nos conduzcan a la solucin del problema planteado y expresado en tres partes: lenguaje natural mediante el pseudocdigo. En el algoritmo se deben considerar

Entrada: Informacin dada al algoritmo Proceso: Operaciones o clculos necesarios para encontrar la solucin del problema. Salida: Respuestas dadas por el algoritmo o resultados finales de los clculos.
A modo de modo ejemplo, veamos la siguiente Prctica resuelta y comentada:

Unidad 3 21

VALLINIELLO

DEPARTAMENTO DE INFORMTICA Y COMUNICACIONES Desarrollo de Aplicaciones Informticas Mdulo de Programacin en Lenguajes Estructurados Unidad 3: La resolucin de problemas con el ordenador. Herramientas de programacin. El pseudocdigo Pilar Beltrn Prez

Prctica resuelta Realizar el pseudocdigo de un programa que permita calcular el rea de un rectngulo, introduciremos por teclado el valor de la base y de la altura. Etiquetar tanto la entrada de datos como la salida de resultados. Anlisis del problema Lo primero que se de be hacer es plantearse y contestar a las siguientes preguntas: Especificaciones de entrada Qu datos son de entrada? Cuntos datos se introducirn? Cuntos son datos de entrada vlidos?

Especificaciones de salida Cules son los datos de salida? Cuntos datos de salida se producirn? Qu precisin tendrn los resultados? Se debe imprimir una cabecera o etiquetar los datos? El algoritmo en el primer diseo se podr representar con los siguientes pasos: Paso 1.- Entrada desde perifrico de entrada, por ejemplo teclado, (as nos lo indica el enunciado) de base y altura. Paso 2. Clculo de la superficie, multiplicando base por la altura. Paso 3. Salida por pantalla de area.

El pseudocdigo propuesto del algoritmo que nos da solucin al algoritmo del problema planteado es el que sigue:

Unidad 3 22

VALLINIELLO

DEPARTAMENTO DE INFORMTICA Y COMUNICACIONES Desarrollo de Aplicaciones Informticas Mdulo de Programacin en Lenguajes Estructurados Unidad 3: La resolucin de problemas con el ordenador. Herramientas de programacin. El pseudocdigo Pilar Beltrn Prez

Programa Clculo del rea de un rectngulo

Entorno

En el Entorno definimos tres variables a las que asignamos los nombres base, altura y rea. Las dos primeras son dos datos de entrada que suministramos a travs del teclado. La variable area es un dato de salida cuyo valor ser el resultado del clculo del rea.

base, altura, area: numricos reales Entre comillas escribimos el texto aclaratorio que queremos que se muestre en pantalla. ste indica que estamos pidiendo que introduzca la base del rectngulo. El mensaje va acompaado de la instruccin Visualizar que luego traduciremos al comando que corresponda segn el lenguaje de programacin que utilicemos.

Algoritmo Inicio Visualizar Introduce la base Leer base Los nombres de las variables en las que recogemos los datos que pedimos como entrada, se escriben tal y como las definimos anteriormente en el Entorno. En esta sentencia va acompaada de la instruccin Leer que luego traduciremos al comando que corresponda segn el lenguaje de programacin que utilicemos. Visualizar Introduce la altura Leer altura area _ base * altura

Visualizar El rea es, area Finprograma

Se ejecuta la operacin aritmtica base *altura y el resultado se guarda en la variable area

Unidad 3 23

VALLINIELLO

DEPARTAMENTO DE INFORMTICA Y COMUNICACIONES Desarrollo de Aplicaciones Informticas Mdulo de Programacin en Lenguajes Estructurados Unidad 3: La resolucin de problemas con el ordenador. Herramientas de programacin. El pseudocdigo Pilar Beltrn Prez

Prcticas propuestas Prctica 3-5. Realizar el pseudocdigo de un algoritmo que resuelva un programa que lea dos nmeros por teclado y, nos d como resultado la suma y la resta en pantalla. Visualizar en pantalla mensajes aclaratorios de los datos que se estn pidiendo o mostrando. Prctica 3-6. Realizar el pseudocdigo del algoritmo de un programa que permita calcular el cuadrado de un nmero que se introduce por teclado. Visualizar en pantalla mensajes aclaratorios de los datos que se estn pidiendo o mostrando.

24

Unidad 3

VALLINIELLO

DEPARTAMENTO DE INFORMTICA Y COMUNICACIONES Desarrollo de Aplicaciones Informticas Mdulo de Programacin en Lenguajes Estructurados Unidad 3: La resolucin de problemas con el ordenador. Herramientas de programacin. El pseudocdigo Pilar Beltrn Prez

Objetivos
La resolucin de problemas con el ordenador. Herramientas de programacin. El pseudocdigo, tiene como finalidad que el alumno aprenda los conceptos, tcnicas y habilidades que le posibiliten desarrollar buenos programas. Los objetivos que se persiguen son lo siguientes:

Entender, analizar y resolver una amplia variedad de problemas computacionales Aprender una metodologa de la programacin. Dominar los mtodos y tcnicas que permitan desarrollar buenos programas como resultado de la aplicacin de un proceso metdico. Conocer el concepto de Algoritmo y su importancia en el mundo de las aplicaciones para ordenadores. Utilizar las herramientas de diseos de algoritmos. Conseguir la destreza suficiente para la interpretacin de problemas y el diseo de algoritmos que los resuelvan.

Unidad 3 25

VALLINIELLO

DEPARTAMENTO DE INFORMTICA Y COMUNICACIONES Desarrollo de Aplicaciones Informticas Mdulo de Programacin en Lenguajes Estructurados Unidad 3: La resolucin de problemas con el ordenador. Herramientas de programacin. El pseudocdigo Pilar Beltrn Prez

Enlaces de inters

En el siguiente enlace podrs profundizar en la importancia de saber resolver problemas y aprender a razonar. Aprender a resolver problemas razonando. http://educacion.idoneos.com/index.php/345898

Si quieres ver otro motor de bsqueda, en este caso de recuperacin de la informacin para uso experimental y educativo, visita el siguiente enlace: Recuperacin de la informacin en la educacin. http://www.ub.es/biblio/bid/04figue2.htm

Enlace en el que podamos descargar alguna aplicacin gratuita para hacer diagramas de flujo. Puedes encontrar varias opciones para Windows. Programas de para elaborar Diagramas de Flujo. http://descargas.terra.es/index.phtml?modo=2&n_id=1659

Para entornos Linux tienes otras opciones, entre las que destacamos el enlace a DIA, un generador de diagramas de flujo muy til. En esta pgina puedes encontrar una breve descripcin y algunos enlaces interesantes: Diagramas de Flujo en Linux. http://bulma.net/body.phtml?nIdNoticia=1349

Algunos algoritmos resueltos que pueden ayudarte a entender la resolucin de problemas y el diseo de algoritmos. En el siguiente enlace vas a encontrar un resumen del tema de algoritmos, con ejemplos de elaboracin y al final unos cuantos ejemplos resueltos. Teora de Algoritmos. http://www.geocities.com/inf135/tutc/Tema02.htm

Unidad 3 26

VALLINIELLO

DEPARTAMENTO DE INFORMTICA Y COMUNICACIONES Desarrollo de Aplicaciones Informticas Mdulo de Programacin en Lenguajes Estructurados Unidad 3: La resolucin de problemas con el ordenador. Herramientas de programacin. El pseudocdigo Pilar Beltrn Prez

Glosario de trminos

Anlisis lxico En la fase de anlisis lxico se leen los caracteres del programa fuente y se agrupan en cadenas que representan los componentes lxicos. Cada componente lxico es una secuencia lgicamente coherente de caracteres relativa a un identificador, una palabra reservada, un operador o un carcter de puntuacin. A la secuencia de caracteres que representa un componente lxico se le llama lexema (o con su nombre en ingls token). Argumentos Se distingue entre argumentos formales y argumentos actuales. Los argumentos formales son los que aparecen en la definicin de la funcin, mientras que los actuales son los que aparecen en la llamada a la funcin. Se podra tambin decir que los argumentos formales son los argumentos vistos desde dentro de la funcin, y los argumentos actuales son los argumentos vistos desde el programa que llama a la funcin, esto es desde fuera de la funcin. Los argumentos formales son siempre variables de la funcin que recogen los valores que se les pasan desde el exterior. Los argumentos actuales pueden ser variables o expresiones cuyos valores se pasan a los argumentos formales. Bit Un bit es la unidad mnima de informacin empleada en informtica. Representa un uno o un cero (abierto o cerrado, verdadero o falso, cualquier sistema de codificacin sirve). A travs de secuencias de bits, se puede codificar cualquier valor discreto como, por ejemplo, nmeros, palabras e imgenes. Casting Es el proceso de convertir o promover un objeto de un tipo a otro. Esta operacin es necesaria y frecuente en programacin; incluso es realizada infinidad de veces por el compilador de forma automtica.

Unidad 3 27

VALLINIELLO

DEPARTAMENTO DE INFORMTICA Y COMUNICACIONES Desarrollo de Aplicaciones Informticas Mdulo de Programacin en Lenguajes Estructurados Unidad 3: La resolucin de problemas con el ordenador. Herramientas de programacin. El pseudocdigo Pilar Beltrn Prez

Comentario Informacin adicional aadida al programa, usada para una introduccin del cdigo y proporcionar informacin adicional que no est disponible en el propio cdigo. Los comentarios slo deben tener informacin que sea relevante para leer y entender el programa. Evaluar una expresin Sustituir las variables, constantes y dems identificadores por sus valores, y realizar las operaciones indicadas en la expresin para obtener un valor resultado Expresiones Son uniones de literales, junto con identificadores y los operadores que los unen, formando unidades de mayor significado. Las expresiones pueden evaluarse, dando como resultado un valor determinado. La expresin tendr asociado un tipo. Fuertemente tipado Un lenguaje de programacin es fuertemente tipado cuando te obliga a indicar siempre el tipo de las variables que se usan en un programa antes de usarlas y adems no se puede operar para una variable con datos de distinto tipo al que figura en su declaracin. Si la variable es de tipo entero, por ejemplo, no podr asignarle un valor real. Funcin Es una rutina de software independiente que realiza una tarea para el programa en que est escrita o para algn otro programa. La funcin ejecuta la operacin y devuelve el control a la instruccin siguiente a la que la llam o al programa que la llam. Los lenguajes de programacin proveen un conjunto de funciones estndares y permiten a los programadores definir otras. Identificadores Nombre que se le asigna a cada elemento que se define en un programa (variables, constantes, clases, mtodos o procedimientos, etc.) y mediante el cual podemos identificar y referirnos a l de forma inequvoca.

Unidad 3 28

VALLINIELLO

DEPARTAMENTO DE INFORMTICA Y COMUNICACIONES Desarrollo de Aplicaciones Informticas Mdulo de Programacin en Lenguajes Estructurados Unidad 3: La resolucin de problemas con el ordenador. Herramientas de programacin. El pseudocdigo Pilar Beltrn Prez

Literales Son valores concretos para un tipo de datos bsico del lenguaje. Operadores Son tokens especiales porque actan de separadores, mantenindose a s mismos como tokens, con su significado propio. Expresan acciones a realizar con los datos o expresiones que les acompaan. Palabras reservadas Son aquellos tokens que tienen asignada una funcin especfica en el lenguaje y que los programadores no pueden utilizar ms que para lo que el lenguaje establece. Recurrente o recursiva Hace referencia a un proceso que se llama a s mismo, ejecutndose varias copias simultneamente (concurrentemente) o bien una tras otra. Registros del microprocesador Es una pequea unidad de almacenamiento destinada a contener cierto tipo de datos. Puede estar en la propia memoria central o en unidades de memoria de acceso rpido. La misin de estos registros es almacenar las posiciones de memoria que van a experimentar repetidas manipulaciones, ya que los accesos a memoria son mucho ms lentos que los accesos a los registros. Adems, hay ciertas operaciones que slo se pueden realizar sobre los registros. No todos los registros sirven para almacenar datos, algunos estn especializados en apuntar a las direcciones de memoria. La mecnica bsica de funcionamiento de un programa consiste en cargar los registros con datos de la memoria o de un puerto de E/S, procesar los datos y devolver el resultado a la memoria o a otro puerto de E/S. Obviamente, si un dato slo va a experimentar un cambio, es preferible realizar la operacin directamente sobre la memoria, si ello es posible. Un registro del procesador es algo as como una zona de memoria dentro del procesador donde se puede almacenar informacin, de forma que el acceso a esta informacin es instantneo, ya que no hay que utilizar el bus de datos que conecta el procesador con la memoria para obtener dichos datos.

Unidad 3 29

VALLINIELLO

DEPARTAMENTO DE INFORMTICA Y COMUNICACIONES Desarrollo de Aplicaciones Informticas Mdulo de Programacin en Lenguajes Estructurados Unidad 3: La resolucin de problemas con el ordenador. Herramientas de programacin. El pseudocdigo Pilar Beltrn Prez

Sentencia Es una unin de una serie de expresiones que representa una accin completa a realizar por el programa. Separador Carcter, smbolo o palabra escrita en el texto de un programa, que indica al compilador dnde termina una palabra y dnde empieza la siguiente. Token Cada una de las palabras (lexemas) que reconoce el compilador. Valor de verdad Es un valor que indica en qu medida una declaracin es verdad. En informtica, los nicos valores de verdad posibles son verdadero y falso.

Unidad 3 30

VALLINIELLO

DEPARTAMENTO DE INFORMTICA Y COMUNICACIONES Desarrollo de Aplicaciones Informticas Mdulo de Programacin en Lenguajes Estructurados Unidad 3: La resolucin de problemas con el ordenador. Herramientas de programacin. El pseudocdigo Pilar Beltrn Prez

Soluciones a las prcticas propuestas

Solucion Prctica 3-1

Solucin Prctica 3-2.

Unidad 3 31

VALLINIELLO

DEPARTAMENTO DE INFORMTICA Y COMUNICACIONES Desarrollo de Aplicaciones Informticas Mdulo de Programacin en Lenguajes Estructurados Unidad 3: La resolucin de problemas con el ordenador. Herramientas de programacin. El pseudocdigo Pilar Beltrn Prez

Solucin Prctica 3-3

Unidad 3 32

VALLINIELLO

DEPARTAMENTO DE INFORMTICA Y COMUNICACIONES Desarrollo de Aplicaciones Informticas Mdulo de Programacin en Lenguajes Estructurados Unidad 3: La resolucin de problemas con el ordenador. Herramientas de programacin. El pseudocdigo Pilar Beltrn Prez

Solucin Prctica 3-4

Unidad 3 33

VALLINIELLO

DEPARTAMENTO DE INFORMTICA Y COMUNICACIONES Desarrollo de Aplicaciones Informticas Mdulo de Programacin en Lenguajes Estructurados Unidad 3: La resolucin de problemas con el ordenador. Herramientas de programacin. El pseudocdigo Pilar Beltrn Prez

Solucin prctica 3_5 Programa Clculo del la Suma y de la Resta de dos nmeros Entorno num1, num2, suma, resta: numricos enteros Algoritmo Inicio Visualizar Introduce el primer nmero Leer num1 Visualizar Introduce el segundo numero Leer num2 suma _ num1 + num2

resta _ num1 num2 Visualizar La suma es, suma Visualizar La resta es , resta Finprograma Solucin prctica 3_6 Programa Clculo del cuadrado de un nmero Entorno num1, cuadrado: numricos enteros Algoritmo Inicio Visualizar Introduce el nmero Leer num1 cuadrado _ num1 * num1

Visualizar El cuadrado de , num1, es, cuadrado Finprograma

Unidad 3 34

VALLINIELLO

DEPARTAMENTO DE INFORMTICA Y COMUNICACIONES Desarrollo de Aplicaciones Informticas Mdulo de Programacin en Lenguajes Estructurados Unidad 4: Estructura general de un programa Pilar Beltrn Prez

ndice de Contenidos

4.1.- Partes principales de un programa. 4.1.1.- Entrada de datos. 4.1.2.- Algoritmo de resolucin. 4.1.3.- Salida de resultados. 4.2.- Clasificacin de las instrucciones. 4.3.- Sentencias de definicin de datos. 4.4.- Sentencias primitivas. 4.4.1 Sentencias de entrada. 4.4.2.- Sentencias de salida. 4.4.3.- Sentencias de asignacin. Prcticas resueltas
Prcticas propuestas

4.5.- Sentencias compuestas. 4.6.- Contadores, acumuladores, interruptores. 4.7.- Sentencias de control. 4.7.1.- Sentencias secuenciales. Prctica resuelta 4.7.2.- Sentencias alternativas. Prcticas resueltas
Prcticas propuestas

Unidad 4 1

VALLINIELLO

DEPARTAMENTO DE INFORMTICA Y COMUNICACIONES Desarrollo de Aplicaciones Informticas Mdulo de Programacin en Lenguajes Estructurados Unidad 4: Estructura general de un programa Pilar Beltrn Prez

4.7.3.- Sentencias de iteracin o repetitivas. _ Estructura Mientras

Prcticas resueltas
Prcticas propuestas

Estructura Repetir

Prcticas resueltas
Prcticas propuestas

Estructura Para

Prcticas resueltas
Prcticas propuestas

4.7.4.- Sentencias de salto.


Objetivos de la Unidad Didctica Enlaces de inters Glosario de trminos

Unidad 4 2

VALLINIELLO

DEPARTAMENTO DE INFORMTICA Y COMUNICACIONES Desarrollo de Aplicaciones Informticas Mdulo de Programacin en Lenguajes Estructurados Unidad 4: Estructura general de un programa Pilar Beltrn Prez

4.1.- Partes principales de un programa.


Como ya hemos comentado en el tema anterior, un programa es un conjunto de instrucciones que producirn la ejecucin de una determinada tarea. Todo programa, en general contiene dos bloques bien diferenciados: _ _ Bloque de declaraciones. Bloque de instrucciones.

Dentro del bloque de instrucciones de un programa podemos diferenciar 3 partes fundamentales: entrada de datos, algoritmo de resolucin y salida de resultados. Algoritmo de resolucin

Entrada de datos

Salida de resultados

En algunos casos estas tres partes estn perfectamente delimitadas, pero a veces las instrucciones quedan entremezcladas a lo largo del programa. 4.1.1.- Entrada de datos. Lo constituyen todas aquellas instrucciones que toman datos de un dispositivo externo almacenndolos en memoria central para que puedan ser procesados. Tambin se consideran dentro de esta parte las instrucciones de depuracin de los datos de entrada, es decir aquellos que se encargan de comprobar la correccin de los mismos.

4.1.2.- Algoritmo de resolucin. Est formado por las instrucciones que modifican los objetos a partir de un estado inicial hasta el estado final, dejando estos disponibles en la memoria central. Es decir es el proceso que transforma los datos de entrada en datos de salida.

Unidad 4 3

VALLINIELLO

DEPARTAMENTO DE INFORMTICA Y COMUNICACIONES Desarrollo de Aplicaciones Informticas Mdulo de Programacin en Lenguajes Estructurados Unidad 4: Estructura general de un programa Pilar Beltrn Prez

4.1.3.- Salida de resultados. Son el conjunto de instrucciones que toman los datos finales de la memoria central y la envan a los dispositivos externos.

4.2.- Clasificacin de las instrucciones.


Las instrucciones disponibles en un lenguaje de programacin dependen del tipo de lenguaje. Hay una serie de instrucciones llamadas instrucciones bsicas que se utilizan de modo general en un algoritmo y que esencialmente soportan todos los lenguajes. Estas instrucciones bsicas se clasifican en: _ _ _ _ Instrucciones de definicin de datos. Instrucciones primitivas. Instrucciones compuestas. Instrucciones de control.

Aunque slo vamos a utilizar el pseudocdigo para la representacin de los algoritmos, vamos a mostrar tambin la representacin de cada tipo de instruccin mediante el ordinograma.

4.3.- Sentencias de definicin de datos.


Son aquellas instrucciones utilizadas para informar al procesador del espacio que debe reservar en memoria con la finalidad de almacenar un dato mediante el uso de variables simples o estructuras mas complejas. La definicin consiste en indicar un nombre a travs del cual haremos referencia a un dato y un tipo a travs del cual informaremos al procesador de las caractersticas y espacio que deber reservar la memoria.

4.4.- Sentencias primitivas.


Son aquellas que ejecuta el ordenador de modo inmediato, ya que no dependen de otra cosa que de su propia aparicin en el programa. Pueden ser : de entrada, de asignacin y de salida. 4.4.1 Sentencias de entrada. Son aquellas instrucciones encargadas de recoger datos de uno o varios dispositivos de entrada y almacenarlos en la memoria central en las variables que aparecen en la propia

Unidad 4 4

VALLINIELLO

DEPARTAMENTO DE INFORMTICA Y COMUNICACIONES Desarrollo de Aplicaciones Informticas Mdulo de Programacin en Lenguajes Estructurados Unidad 4: Estructura general de un programa Pilar Beltrn Prez

instruccin y que previamente han sido definidas. La representacin mediante ordiograma y pseudocdigo es la siguiente:

Ordinograma Leer variable

Pseudocdigo Leer variable

. Ordinograma Pseudocdigo

Leer Lista de variables

Leer var1, var2, var3,..

4.4.2.- Sentencias de salida. Son aquellas instrucciones encargadas de recoger los datos procedentes de variables (previamente definidas) a los resultados obtenidos de una expresin evaluada y depositarlos en un perifrico o dispositivo de salida. Ordinograma ....... Pseudocdigo

Escribir variable

Escribir variable

........

........
Unidad 4 5

VALLINIELLO

DEPARTAMENTO DE INFORMTICA Y COMUNICACIONES Desarrollo de Aplicaciones Informticas Mdulo de Programacin en Lenguajes Estructurados Unidad 4: Estructura general de un programa Pilar Beltrn Prez

Ordinograma

Pseudocdigo

Escribir expresin

Escribir expresin

4.4.3.- Sentencias de asignacin. Son instrucciones que se utilizan para asignar valores a variables, o cambiar el valor almacenado en una variable obtenido de la evaluacin de una expresin.

Ordinograma

Pseudocdigo

Nombre_variable = expresin

Nombre_variable

expresin

La operacin de asignacin es destructiva ya que al almacenarse un nuevo valor en la variable se borra el que tenia antes.

Unidad 4 6

VALLINIELLO

DEPARTAMENTO DE INFORMTICA Y COMUNICACIONES Desarrollo de Aplicaciones Informticas Mdulo de Programacin en Lenguajes Estructurados Unidad 4: Estructura general de un programa Pilar Beltrn Prez

Analicemos, por ejemplo, los contenidos de las variables despus de realizar las siguientes instrucciones:

Ordinograma . X=1

Pseudocdigo .. X 1

Almacenamos en la variable X el valor 1

A=4 A 4

X=A+2 Almacenamos en la variable A el valor 4

A+2

..

Almacenamos en la variable X el resultado de sumar el contenido de la variable A ms 2; por tanto despus de realizar la operacin el nuevo contenido de X ser 6.

Unidad 4 7

VALLINIELLO

DEPARTAMENTO DE INFORMTICA Y COMUNICACIONES Desarrollo de Aplicaciones Informticas Mdulo de Programacin en Lenguajes Estructurados Unidad 4: Estructura general de un programa Pilar Beltrn Prez

Es posible utilizar el mismo nombre de variable en ambos lados del operador de asignacin. Obsrvese, por ejemplo, este caso en el ejemplo siguiente:

Almacenamos en la variable X el valor 1

Ordinograma

Pseudocdigo

X=1 Almacenamos en la variable A el valor 4

A=4

X=X+A

X+A

---------------------

Despus de realizar esta instruccin el nuevo contenido de X es igual al anterior contenido de X ms el contenido de A. El valor final de la variable X ser 5

Las sentencias de asignacin se clasifican segn el tipo de expresin en: _ _ _ Asignacin aritmtica: Asignacin lgica: Asignacin alfanumrica: nota dia _ _ suma + 3 3>5 hoy es martes numero _

En las operaciones de asignacin hay que tener cuidado ya que no se puede asignar valores a una variable de diferente tipo. Veamos algunos algoritmos de aplicacin de estos tipos de instrucciones.
Unidad 4 8

VALLINIELLO

DEPARTAMENTO DE INFORMTICA Y COMUNICACIONES Desarrollo de Aplicaciones Informticas Mdulo de Programacin en Lenguajes Estructurados Unidad 4: Estructura general de un programa Pilar Beltrn Prez

Prctica resuelta Realizar el pseudocdigo de un programa que permita introducir por teclado el nombre y los apellidos de una persona y los muestre por pantalla. Etiquetar (poner mensajes aclaratorios que indiquen los datos que se estn pidiendo o mostrando) tanto la entrada como la salida de resultados. Analisis del problema El algoritmo necesita que se le proporcionen al ordenador tres variables de entrada una para cada uno de los datos que pediremos por teclado. Esto lo realizamos mediante la instruccin Leer . Llamaremos a las variables Nombre (recoger el nombre de la persona), apellido1 (para recoger el primer apellido) y apellido2 (para guardar el segundo apellido de la persona). Estos sern por tanto, los tres datos de entrada. El algoritmo tiene que Visualizar como datos de salida el contenido de la variable Nombre, el contenido de la variable apellido1 y el contenido de la variable apellido2. Tambin hemos etiquetado la salida de los resultados La solucin propuesta ser la siguiente: Programa resuelto datos Entorno Nombre, apellido1, apellido2: cadena de caracteres Algoritmo Inicio Visualizar Introduce el nombre Leer Nombre Visualizar Introduce el primer apellido Leer apellido1 Visualizar Introduce el segundo apellido Leer apellido2 Visualizar El nombre es, Nombre Visualizar El primer apellido es, apellido1 Visualizar El segundo apellido es, apellido2 Finprograma
Unidad 4 9

Sentencias de definicin de datos, en las que asignamos un nombre a cada una de las variables (Nombre, apellido1, apellido2) a travs del cual haremos referencia a un dato y un tipo (cadena de caracteres) e informaremos al procesador de las caractersticas y espacio que deber reservar en la memoria. Entre comillas escribimos el texto aclaratorio que queremos que se muestre en pantalla. ste indica que estamos pidiendo el nombre de la persona. Es lo que antes hemos definido como etiquetar.

Los nombres de las variables en las que recogemos los datos que pedimos como entrada, se esciben tal y como los definimos anteriormente en el Entorno

Visualizamos el contenido de las variables. Escribimos entre comillas el texto que queremos que aparezca en pantalla y fuera de las comillas el nombre de la variable que guarda el dato, as nos mostrar su contenido.

VALLINIELLO

DEPARTAMENTO DE INFORMTICA Y COMUNICACIONES Desarrollo de Aplicaciones Informticas Mdulo de Programacin en Lenguajes Estructurados Unidad 4: Estructura general de un programa Pilar Beltrn Prez

Prcticas propuestas Prctica 4-1. Realizar el pseudocdigo de un programa que permita calcular la suma de los cuadrados de dos nmeros enteros que introduciremos por teclado. Etiquetar tanto la entrada de datos como la salida de resultados. Prctica 4-2. Realizar el pseudocdigo de un programa que permita calcular el 10% de una determinada cantidad entera que introduciremos por teclado. Etiquetar tanto la entrada de datos como la salida de resultados. Prctica 4-3. Realizar el pseudocdigo de un programa que permita emitir facturas a partir del precio (numrcico real) de un articulo (sin IVA) teniendo en cuenta que se hace un descuento del 15% sobre todos los artculos. El IVA se carga sobre el precio inicial. Precio.........................: xxxx IVA ............................: xxxx Descuento(15%) .....: xxxx Precio final ..............: xxxx Prctia 4-4. Realizar el pseudocdigo de un programa que permita leer el nombre de un alumno y las notas (numricas enteras) de las tres evaluaciones mostrando al final la nota media del curso. Etiquetar tanto la entrada de datos como la salida de resultados.

Unidad 4 10

VALLINIELLO

DEPARTAMENTO DE INFORMTICA Y COMUNICACIONES Desarrollo de Aplicaciones Informticas Mdulo de Programacin en Lenguajes Estructurados Unidad 4: Estructura general de un programa Pilar Beltrn Prez

4.5.- Sentencias compuestas.


Son aquellas instrucciones que no pueden ser ejecutadas directamente por el procesador, y estn constituidas por un bloque de acciones agrupadas en subrutinas, subprogramas, funciones o mdulos. Ordinograma pseudocdigo Programa nombre_programa Nombre Subprograma ---nombre_subprograma ------fin-programa nombre_subprograma instrucciones fin-subprograma

4.6.- Contadores, acumuladores, interruptores.


Los contadores, acumuladores e interruptores son elementos auxiliares de un programa. 4.6.1.- Contadores. Un contador es una variable que se utiliza para contar, es decir que su valor se incrementa o decrementa en una cantidad fija cada vez que se ejecuta la instruccin que lo contiene. Identificador Identificador + constante

Se utilizan en las estructuras repetitivas para contar el n de veces que queremos se ejecute un conjunto de instrucciones o para contar un suceso particular solicitado por el enunciado del problema. Contador Los contadores siempre hay contador + 1 que inicializarlos Contador es decir darles un valor inicial Vi

(generalmente 0) antes de ser utilizado.

Unidad 4 11

VALLINIELLO

DEPARTAMENTO DE INFORMTICA Y COMUNICACIONES Desarrollo de Aplicaciones Informticas Mdulo de Programacin en Lenguajes Estructurados Unidad 4: Estructura general de un programa Pilar Beltrn Prez

6.4.2.- Acumuladores. Son variables que se utilizan para almacenar cantidades variables resultantes de operaciones sucesivas. Identificador1 Identificador1 identificador1 + identificador2 identificador1 * identificador2

Los acumuladores tambin hay que inicializarlos y ser con el valor neutro de la operacin que se va a realizar: 0 en el caso de la suma, 1 en el caso del producto. 4.6.3.- Interruptores. Los interruptores, tambin llamados conmutadores, switches o indicadores son variables que solo pueden tomar dos valores considerados como lgicos y opuestos entre s a lo largo de la ejecucin del programa. Sw = 0 , 1 ; Sw = F , V ; Sw = N , S Realizan la funcin de transmitir informacin de un punto a otro del programa. Hay que darles un valor inicial e irn cambiando de valor en los puntos adecuados del programa, de forma que examinando su valor podemos realizar la transmisin de informacin que queramos. Tambin se utilizan para realizar procesos de forma alternativa.

4.7.- Sentencias de control.


Son instrucciones que controlan el flujo de ejecucin de otras instrucciones. Tambin se llaman instrucciones estructuradas por que utilizan una serie de estructuras que son las siguientes:

4.7.1.- Sentencias secuenciales. Es un conjunto de instrucciones que se ejecutan unas a continuacin de otras, en el orden en que estn escritas en el programa. Ordinigrama accin 1 Pseudocdigo accin 1

accin 2 .

accin 2

accin 3

accin n
Unidad 4 12

VALLINIELLO

DEPARTAMENTO DE INFORMTICA Y COMUNICACIONES Desarrollo de Aplicaciones Informticas Mdulo de Programacin en Lenguajes Estructurados Unidad 4: Estructura general de un programa Pilar Beltrn Prez

Prctica resuelta Realizar el pseudocdigo de un programa que permita realizar la suma de dos nmeros que introduciremos por teclado. Etiquetar tanto la entrada de datos como la salida de resultados. Analisis del problema Para solucionar el algoritmo se necesita proporcionar al ordenador dos variables de entrada a las que llamaremos num1 para guardar el dato del primer nmero y num2 para guardar el segundo nmero (ambos los introduciremos por teclado) Como dato de salida definimos la variable suma, que ser donde guardemos el resultado de la operacin a realizar. El programa deber realizar la suma aritmtica de ambos nmeros. La operacin la realizamos mediante la instruccin suma _ num1+ num2; sta la interpretaremos del siguiente modo: acumulamos el dato que est en la variable num1, al contenido de la variable num2, y el resultado lo guardamos en la variable suma. Por ltimo visualizamos el contenido de la variable suma, que es la que guarda el resultado. El conjunto de instrucciones se ejecutarn secuencialmente, es decir una tras otra. La solucin propuesta ser la siguiente: Etiquetamos la entrada de datos y para ello escribimos entre comillas el texto que queremos que se muestre en pantalla. ste indica que estamos pidiendo el primer nmero.

Programa resuelto calculos Entorno num1, num2, suma : numricos enteros Algoritmo Inicio Visualizar Introduce el primer nmero Leer num1

Visualizar Introduce el segundo nmero Visualizamos el contenido de la Leer num2 variable suma. Escribimos entre comillas el texto que queremos que suma _ num1 + num2 aparezca en pantalla y fuera de las comillas el nombre de la variable Visualizar La suma es, suma que guarda el resultado, as nos Finprograma mostrar su contenido.

Unidad 4 13

VALLINIELLO

DEPARTAMENTO DE INFORMTICA Y COMUNICACIONES Desarrollo de Aplicaciones Informticas Mdulo de Programacin en Lenguajes Estructurados Unidad 4: Estructura general de un programa Pilar Beltrn Prez

4.7.2.- Sentencias alternativas. Controlan la ejecucin o la no ejecucin de uno o varios bloques de instrucciones dependiendo del cumplimiento o no de una condicin o del valor de una expresin. Pueden ser: _ Simples: controlan la ejecucin de un conjunto de instrucciones y si no se cumple no se ejecuta nada. Ordinograma no si <condicin> entonces <acciones> fin-s acciones Pseudocdigo de instrucciones por el cumplimiento o no de una condicin. Si la condicin se cumple se ejecuta el grupo

Condicin si Finsi

Ejemplo
Ordinograma Pseudocdigo

Si A>B Suma = A+B

no

si A > B entonces Suma A+B

Escribir Suma

escribir La suma es: , Suma finsi

Unidad 4 14

VALLINIELLO

DEPARTAMENTO DE INFORMTICA Y COMUNICACIONES Desarrollo de Aplicaciones Informticas Mdulo de Programacin en Lenguajes Estructurados Unidad 4: Estructura general de un programa Pilar Beltrn Prez

Dobles: controla la ejecucin de dos conjuntos de instrucciones dependiendo del cumplimiento o no de una condicin. Si se cumple se ejecutan unas instrucciones y si no se cumplen se ejecutan otras. Ordinograma si no Pseudocdigo si <condicion> entonces <accion 1> sino Accin 1 Accin 2 finsi <accion 2>

condicion

Ejemplo

Ordinograma

Pseudocdigo

si

A>B

no

si A > B entonces Resta _ A - B

Resta = A - B

Suma = A + B

sino Suma _ A + B finsi

Unidad 4 15

VALLINIELLO

DEPARTAMENTO DE INFORMTICA Y COMUNICACIONES Desarrollo de Aplicaciones Informticas Mdulo de Programacin en Lenguajes Estructurados Unidad 4: Estructura general de un programa Pilar Beltrn Prez

Mltiples: controla la ejecucin de varios conjuntos de instrucciones, por el valor de una expresin, de forma que cada conjunto de instrucciones est ligado a un posible valor de dicha expresin. Se ejecutar el conjunto de instrucciones que se encuentra relacionado con el valor que resulte de evaluar la expresin. Las distintas opciones tienen que ser disjuntas, es decir, solo pueden ejecutarse un conjunto de instrucciones a la vez. Ordinograma

expresin valor1 valor 2 valor n otros valores

Instruccion1

Instruccion2

Instruccin n

Otra instruccin

Pseudocdigo Segun_valor expresin valor 1: instruccin 1 valor 2: instruccin 2 ................................. valor n: instruccin n sino: otra instruccin fin segun_valor

Unidad 4 16

VALLINIELLO

DEPARTAMENTO DE INFORMTICA Y COMUNICACIONES Desarrollo de Aplicaciones Informticas Mdulo de Programacin en Lenguajes Estructurados Unidad 4: Estructura general de un programa Pilar Beltrn Prez

Prctica resuelta Hacer el pseudocdigo de un programa que lee un nmero por teclado y comprueba e imprime en los dispositivos estndar de salida si dicho nmero es nulo. Anlisis del problema Se debe leer un nmero que guardaremos en la variable Num. ste ser el dato de entrada y que tendremos que definir en el Entorno. Como dato de salida se visualizar un mensaje que nos indicar si el nmero es nulo o no. Se trata de comparar el contenido de la variable Num con cero y mostrar el correspondiente mensaje dependiendo de si la respuesta ha sido SI o NO. Sentencia de definicin de datos, en la que asignamos un nombre a la variable que va a guardar el nmero que introduciremos por teclado. En este caso le hemos asignado el nombre Num y con l hacemos referencia a un dato y un tipo (numrico entero) e informaremos al procesador de las caractersticas y espacio que deber reservar en la memoria.

La solucin propuesta sera la siguiente Pseudocdigo

Programa Numeros nulos Entorno Num: numrico entero El nombre de la variable en la que recogemos el datos que pedimos como entrada, se escribe tal y como lo definimos anteriormente en el Entorno Algoritmo Inicio Visualizar Introduce un nmero Leer Num Si Sino Num = 0 entonces

Entre comillas escribimos el texto aclaratorio que queremos que se muestre en pantalla. ste indica que estamos pidiendo un nmero. Recurdese que esto lo hemos definido como etiquetar los datos.

Visualizar El nmero , Num, es nulo Visualizar El nmero , Num, no es nulo Finsi Finprograma Visualizamos el contenido de la variable. Escribimos entre comillas el texto que queremos que aparezca en pantalla y fuera de las comillas el nombre de la variable que guarda el dato, as nos mostrar su contenido. En este caso el mensaje nos avisa de si el contenido de la variable Num Unidad 4 es nulo o no. 17

Evaluamos el contenido de la variable Num. Si el contenido de Num es 0 entonces visualizamos el mensaje que nos lo advierte. Sino visualizamos el otro mensaje. Ntese que la estructura finaliza con finsi

VALLINIELLO

DEPARTAMENTO DE INFORMTICA Y COMUNICACIONES Desarrollo de Aplicaciones Informticas Mdulo de Programacin en Lenguajes Estructurados Unidad 4: Estructura general de un programa Pilar Beltrn Prez

Prctica resuelta Realizar el pseudocdigo de un programa que tenga como pantalla de entrada: Quieres continuar (s/n)........: _ Y como pantalla de salida: La respuesta es correcta y es: _ O La respuesta es incorrecta no es ni un s ni una n. Teniendo en cuenta las maysculas y las minsculas. Anlisis del problema El algoritmo debe comenzar visualizando un mensaje por pantalla que nos pregunte Quieres continuar (s/n)?. Como dato de entrada declaramos una variable de tipo carcter ser la que guarde la respuesta que se leer por teclado. Llamaremos a esta variable respuesta Despus el algoritmo debe comprobar que la entrada es correcta. Slo se considerarn correctas la s, la S, la n y la N, ya que se tendrn en cuenta las maysculas y las minsculas. Como se trata de caracteres alfabticos la variable respuesta tenemos que definirla de tipo carcter. La solucin propuesta ser la siguiente Programa ejercicio Continuar Entorno Evaluamos el contenido de la variable respuesta. Si el contenido de respuesta es s o S o n o N entonces visualizamos el mensaje que nos informa de que hemos respondido correctamente. Sino visualizamos el mensaje contrario. respuesta: carcter Algoritmo Inicio Visualizar Quieres continuar (s/n) Leer respuesta Si (respuesta = s ) o (respuesta = S ) o (respuesta = n ) o (respuesta = N ) entonces Visualizar La respuesta es correcta y es: , respuesta sino Visualizar La respuesta es incorrecta, no es ni s/S ni n/N finsi Finprograma
Unidad 4 18

porque

Sentencia de definicin de datos, en la que asignamos un nombre a la variable que va a guardar la respuesta por teclado. En este caso le hemos asignado el nombre respuesta y el tipo carcter.

El operador lgico O, nos permite incluir en la sentencia varias condiciones y en este algoritmo significa que con que se cumpla una de las condiciones la respuesta ser vlida

VALLINIELLO

DEPARTAMENTO DE INFORMTICA Y COMUNICACIONES Desarrollo de Aplicaciones Informticas Mdulo de Programacin en Lenguajes Estructurados Unidad 4: Estructura general de un programa Pilar Beltrn Prez

Prctica resuelta Realizar el pseudocdigo de un programa que a partir del nmero de da de la semana, nos visualice en pantalla el correspondiente da de la semana alfabticamente. Utilizar la Sentencia de Alternativa Mltiple Segn valor.

Anlisis del problema Como dato de entrada slo tendremos un nmero comprendido entre 1 y 7. Como dato de salida, la conversin de ese nmero a un da de la semana. Para resolver el problema supondremos que el nmero introducido siempre estar entre el rango de valores. As, definimos una variable numrica entera que almacenar el nmero que introducimos por teclado. Llamaremos a esta variable dia. A continuacin evaluaremos el valor de la variable dia, y segn sea su valor escribiremos en pantalla Lunes, Martes, Mircoles, La solucin propuesta ser la siguiente Sentencia de definicin de datos, en la que asignamos un nombre a la variable que va a almacenar el valor (comprendido entre 1 y 7) que introduciremos por teclado. En este caso le hemos asignado el nombre dia y el tipo numrico entero.

Programa Dia de la Semana Entorno dia: numerico entero Algoritmo Inicio Visualizar Introduce un numero de dia Leer dia Segn_valor dia hacer 1: Visualizar Lunes 2: Visualizar Martes 3: Visualizar Mircoles 4: Visualizar Jueves 5: Visualizar Viernes 6: Visualizar Sabado 7: Visualizar Domingo Fin segn_valor Finprograma

Se ejecutar el conjunto de instrucciones que se encuentra relacionado con el valor que resulte de evaluar la expresin. Segn sea el valor de la variable dia visualizar un mensaje u otro. Si el valor de la variable dia es 1, Visualizar Lunes; Si el valor de la variable dia es 2 visualizar Martes. y as hasta cumplimentar la semana.

Unidad 4 19

VALLINIELLO

DEPARTAMENTO DE INFORMTICA Y COMUNICACIONES Desarrollo de Aplicaciones Informticas Mdulo de Programacin en Lenguajes Estructurados Unidad 4: Estructura general de un programa Pilar Beltrn Prez

Prctica resuelta Realizar un programa que determine el precio de un billete de ida y vuelta en ferrocarril, conociendo la distancia a recorrer y sabiendo que si el nmero de das entre la ida y la vuelta es superior a 7 y la distancia es superior a 800 Km., el billete tiene una reduccin del 30%. El precio del Km. es de 0.15 cntimos de . Los datos se introducirn por teclado y los resultados se mostrarn en pantalla. Anlisis del problema Los datos de Entrada del problema son la distancia a recorrer y el nmero de das de estancia. Asignaremos a las variables los nombres de distancia y dias, respectivamente. Como dato de Salida definimos el precio del billete. Se lee la distancia y el nmero de das. Ambos valores se guardan en las variables que hemos definido para tal fin: distancia y dias Se halla el precio del billete de ida y vuelta precio aplica una reduccin del 30%. _ distancia * 2 * 0.15. Despus se comprueba si la distancia es superior a 80 Km. y los das de estancia a 7 y si es cierto se

Programa Clculo del precio Entorno precio, distancia: numricos reales dias: numerico entero Algoritmo Inicio Visualizar Introduce la distancia en Kms Leer distancia Visualizar Introduce numero de dias Leer dias precio _ distancia * 2 * 0.15 precio * 0.3 si (dias > 7) y (distancia > 800) entonces precio _ finsi Visualizar El precio del viaje es de , precio uros Finprograma Mediante esta sentencia alternativa se comprueba el contenido de las variables dias y distancia. Ntese que se ha utilizado el operador lgico y entre ambas condiciones , porque es necesario que se cumpla una condicin y la otra para realizar el descuento del 30%.

Unidad 4 20

VALLINIELLO

DEPARTAMENTO DE INFORMTICA Y COMUNICACIONES Desarrollo de Aplicaciones Informticas Mdulo de Programacin en Lenguajes Estructurados Unidad 4: Estructura general de un programa Pilar Beltrn Prez

Prcticas propuestas a resolver por el alumno. Prctica 4-5 Hacer el pseudocdigo de un programa que pide un nmero por teclado comprueba si es nulo, positivo o negativo, visualizando el resultado en pantalla, con los mensajes oportunos. Prctica 4-6 Realizar un programa que lea tres nmeros distintos por teclado y nos diga cual de ellos es el mayor. Prctica 4-7 Realizar un programa que recibe como dato de entrada una hora expresada en horas, minutos y segundos y calcule y escriba la hora, minutos y segundos que sern transcurrido 1 segundo. Prctica 4-8 Realizar un programa que lea un nmero por teclado y compruebe si est entre 10 y 100 ambos inclusive. Visualizar en pantalla los mensajes oportunos. Prctica 4-9 Hacer el pseudocdigo de un programa que lee por teclado la nota entera de un alumno comprendida entre 0 y 10 y la transforma en su equivalente alfabtica. Mostrar el resultado por pantalla. (0, 1, 2, y 4 correspondientes. Visualizar en pantalla los mensajes correspondientes. _ Insuficiente; 5 _ Suficiente; 6 _ Bien; 7,8 _ Notable; 9, 10 _ Sobresaliente). Visualizar en pantalla los mensajes y

Unidad 4 21

VALLINIELLO

DEPARTAMENTO DE INFORMTICA Y COMUNICACIONES Desarrollo de Aplicaciones Informticas Mdulo de Programacin en Lenguajes Estructurados Unidad 4: Estructura general de un programa Pilar Beltrn Prez

Prcticas propuestas a resolver por el alumno. Prctica 4-10 Realizar un programa que permita introducir un nmero entero por teclado y nos muestre en pantalla si es par o impar.
Nota: La mayora de los lenguajes de programacin disponen de una funcin MOD, que nos permite quedarnos con el resto de la divisin de dos nmeros enteros. De este modo si hacemos C= A MOD B, en la variable C tendramos el resto de hacer la divisin entera de A entre B

Prctica 4-11 Realizar un programa que permita introducir un nmero entero entre 1 y 10 y nos visualice en pantalla si dicho numero es par o impar. En el caso de que el n no est dentro del rango, se visualizar un mensaje de error y se terminar el programa.

22 Unidad 4

VALLINIELLO

DEPARTAMENTO DE INFORMTICA Y COMUNICACIONES Desarrollo de Aplicaciones Informticas Mdulo de Programacin en Lenguajes Estructurados Unidad 4: Estructura general de un programa Pilar Beltrn Prez

4.7.3.- Sentencias de iteracin o repetitivas. Controlan la ejecucin repetitiva de un conjunto de instrucciones mediante una condicin que determina el nmero de veces que se ha de repetir esta ejecucin. El valor de la condicin tiene que estar afectado por la ejecucin de las instrucciones para asegurar la terminacin de esta repeticin. Existen varios tipos de estructuras repetitivas: _ Estructura mientras: controla la ejecucin de un conjunto de instrucciones de tal forma que estas se ejecutan mientras se cumpla la condicin, que ser evaluada siempre antes de cada repeticin. Puede que las instrucciones no se ejecuten nunca.

Ordinograma

Pseudocdigo

Mientras condicin Condicin si no Instruccin 1 Instruccin 2 .. Instruccin n finmientras Instrucciones

Unidad 4 23

VALLINIELLO

DEPARTAMENTO DE INFORMTICA Y COMUNICACIONES Desarrollo de Aplicaciones Informticas Mdulo de Programacin en Lenguajes Estructurados Unidad 4: Estructura general de un programa Pilar Beltrn Prez

Estructura repetir : controla la ejecucin de un conjunto de instrucciones, de tal forma que estas se ejecutan mientras que se cumpla la condicin que ser evaluada siempre despus de cada repeticin. Las instrucciones se ejecutan al menos una vez.

Ordinograma

Pseudocdigo

repetir Instrucciones instruccin 1 instruccin 2 ..................... instruccin n si Condicin no mientras condicin

Estructura para: controla la ejecucin de un conjunto de instrucciones, de tal forma que estas se ejecutan un nmero determinado de veces que se conoce de antemano. Esta estructura lleva asociada una variable que acta como contador. El contador parte de un valor inicial y se ir incrementando en cada repeticin hasta llegar al valor final que es cuando se detiene la ejecucin. A este contador se le llama variable de control.

Unidad 4 24

VALLINIELLO

DEPARTAMENTO DE INFORMTICA Y COMUNICACIONES Desarrollo de Aplicaciones Informticas Mdulo de Programacin en Lenguajes Estructurados Unidad 4: Estructura general de un programa Pilar Beltrn Prez

Ordinograma

Vcont = Vi, Vf, n

finpara Bloque de instrucciones

Pseudocdigo Vcont = variable de control Vi = valor inicial Vf = valor final Inc = incremento N de repeticiones = (Vf Vi) div Inc + 1 Para Vcont de Vi a Vf con Inc=n instruccin 1 instruccin 2 ................................. instruccin n finpara

Unidad 4 25

VALLINIELLO

DEPARTAMENTO DE INFORMTICA Y COMUNICACIONES Desarrollo de Aplicaciones Informticas Mdulo de Programacin en Lenguajes Estructurados Unidad 4: Estructura general de un programa Pilar Beltrn Prez

4.7.4.- Sentencias de salto. Son aquellas instrucciones que alteran o rompen la secuencia normal de ejecucin de un programa perdiendo toda posibilidad de retornar el control de ejecucin del programa al punto de llamada. El uso de este tipo de instrucciones debe quedar restringido en una programacin estructurada. Pseudocdigo: ir_a etiqueta. Las instrucciones de salto se pueden clasificar de la manera siguiente: _ Instrucciones de salto condicional: Son aquellas que alteran la secuencia de ejecucin de un programa slo y exclusivamente en el caso de que la condicin especificada sea cierta. _ Instrucciones de salto incondicional: Alteran la secuencia normal de ejecucin de un programa siempre, pues no van acompaadas de una condicin que limite en determinadas ocasiones la realizacin del salto a otra parte del programa.

Unidad 4 26

VALLINIELLO

DEPARTAMENTO DE INFORMTICA Y COMUNICACIONES Desarrollo de Aplicaciones Informticas Mdulo de Programacin en Lenguajes Estructurados Unidad 4: Estructura general de un programa Pilar Beltrn Prez

Prctica resuelta Disear un algoritmo para calcular la suma de los 10 nmeros naturales (del 1 al 10). Visualizar el resultado en pantalla. Anlisis del problema utilizando la estructura para Resolveremos el problema analizando cada uno de los tres mtodos posibles para observar las diferencias entre unas y otras. En este problema no hay una entrada de datos externa, porque los nmeros que vamos a sumar los genera la propia estructura para. Para realizar la suma de los 10 nmeros ser imprescindible realizar un bucle que se ejecute 10 veces (tantos como nmeros a sumar) y que incluya dentro de l un acumulador (en nuestro caso hemos llamado a la variable acumulador suma). Como conocemos de antemano el nmero de veces que se va a ejecutar el bucle (10), es muy adecuado utilizar un bucle de este tipo. La solucin propuesta utilizando la estructura para ser la siguiente: Inicializamos el acumulador a 0, para evitar el riesgo de que esa variable contenga informacin. Aunque en este caso no es necesario, es una prctica muy aconsejable la de inicializacin de las variables.

Programa Estructura Para Entorno I, suma : numericos enteros Algoritmo Inicio suma _ 0 Para I desde 1 hasta 10 con incremento 1 hacer suma _ suma + I Finpara Visualizar La suma es , suma Finprograma . Cuando el contador llegue a 11, ya no entrar en el bucle y ejecutar la siguiente instruccin para visualizar el total de la suma, que est alamacemado en la variable suma.

Esta estructura lleva asociada una variable de control a la que hemos llamado I, que es la que acta como contador. Este contador parte de un valor inicial, en este caso 1 y se ir incrementando de 1 en 1 en cada repeticin hasta llegar al valor final. La instruccin suma _ suma + I est dentro del bucle, y por tanto se ejecutar tantas veces como indique la condicin. En este caso 10 veces.

Unidad 4 27

VALLINIELLO

DEPARTAMENTO DE INFORMTICA Y COMUNICACIONES Desarrollo de Aplicaciones Informticas Mdulo de Programacin en Lenguajes Estructurados Unidad 4: Estructura general de un programa Pilar Beltrn Prez

Anlisis del problema utilizando la estructura mientras En este algoritmo no hay una entrada de datos externa, porque los nmeros que vamos a sumar los genera el contador identificado con el nombre I. Dentro del bucle Mientras utilizado ejecutaremos dos instrucciones: La 1 suma

_ suma + I lo que hace es acumular en la variable suma el

resultado de sumar 1+2+3++10. La 2 I _ en 1. La propia estructura mientras se encarga de evaluar la condicin que en este caso establecemos como I < = 10. La solucin propuesta utilizando la estructura mientras ser la siguiente:

I + 1 es la que hace que la variable I se vaya incrementando de 1

Programa Estructura Mientras Entorno I, suma : numericos enteros Algoritmo Inicio suma _ 0 I _ 1 Mientras I <= 10 hacer suma _ suma + I I _ Finmientras Visualizar El valor de la suma es: , suma Finprograma I+1

La variable I, actuar como contador del nmero de nmeros que se van a acumular en la variable suma. En esta instruccin se inicializa en 1.

En el bucle Mientras, I controla la ejecucin de las dos instrucciones de tal forma que estas se ejecutan mientras se cumpla la condicin, que ser evaluada siempre antes de cada repeticin. Mientras I sea menor o igual que 10, se seguirn ejecutando las instrucciones suma _ suma + I I _ I+1 Cuando I tome el valor 11, el programa se saldr del bucle para visualizar el contenido de la variable suma
Unidad 4 28

VALLINIELLO

DEPARTAMENTO DE INFORMTICA Y COMUNICACIONES Desarrollo de Aplicaciones Informticas Mdulo de Programacin en Lenguajes Estructurados Unidad 4: Estructura general de un programa Pilar Beltrn Prez

Anlisis del problema utilizando la estructura repetir En este caso, las instrucciones que estn dentro de la estructura repetitiva, se ejecutan al menos una vez, pues la condicin para salir del bucle se evala al final. Las instrucciones que estn dentro del bucle, son las mismas que en la estructura mientras.

La solucin propuesta utilizando la estructura repetir ser la siguiente: Programa Estructura Repetir Entorno I, suma : numricos enteros Algoritmo Inicio suma _ 0 I _ 1 Repetir suma _ I _ I+1 Mientras I < 11 Visualizar el valor de la suma es: , suma Finprograma suma + I Dentro de la estructura se encuentran las dos intrucciones que la componen. La que acumula la suma en la variable suma., y la que se encarga de ir incrementando de 1 en 1 el contador I, que ser el que regule el n de nmeros a sumar. Una vez realizadas estas dos instrucciones es cuando se evala la condicin para continuar dentro del bucle. Cuando I tome el valor 11, el algoritmo se sale de la estructura repetitiva para visualizar el contendio de la variable suma. La variable I, actuar como contador del nmero de nmeros que se van a acumular en la variable suma. En esta instruccin se inicializa en 1.

Unidad 4 29

VALLINIELLO

DEPARTAMENTO DE INFORMTICA Y COMUNICACIONES Desarrollo de Aplicaciones Informticas Mdulo de Programacin en Lenguajes Estructurados Unidad 4: Estructura general de un programa Pilar Beltrn Prez

Prcticas propuestas a resolver por el alumno. Prctica 4-12 Escribir el algoritmo de un programa que lea e imprima una serie de nmeros distintos de cero. El programa debe terminar con un valor cero que no se debe imprimir. Finalmente se desea obtener la cantidad de valores ledos distintos de cero. Utilizar la estructura mientras. Etiquetar los datos de entrada y de salida. Prctica 4-13 Escribir el algoritmo de un programa que imprima y sume la serie de nmeros 3, 6, 9, 12, ..., 99. Etiquetar los datos de entrada y de salida. Utilizar la sentencia repetitiva repetir. Prctica 4-14 Escribir el algoritmo de un programa para determinar si un nmero n es primo (un nmero primo slo es divisible por el mismo y por la unidad). Etiquetar los datos de entrada y de salida. Utilizar la sentencia repetitiva mientras. Prctica 4-15 Hacer el algoritmo de un programa que lea un nmero entero positivo N y calcule e imprima su factorial N! Teniendo en cuenta que el factorial se calcula as: 0! = 1 1! = 1 2! = 2 * 1 3! = 3 * 2 * 1 4! = 4 * 3 * 2 * 1 . N! = N * (N-1) * (N-2) * (N-3) * ... * 3 * 2 * 1

30

Unidad 4

VALLINIELLO

DEPARTAMENTO DE INFORMTICA Y COMUNICACIONES Desarrollo de Aplicaciones Informticas Mdulo de Programacin en Lenguajes Estructurados Unidad 4: Estructura general de un programa Pilar Beltrn Prez

Prcticas propuestas a resolver por el alumno. Prctica 4-16 Realizar el algoritmo de un programa que nos pida un n entero entre 1 y 9 y que escriba la tabla de multiplicar. Etiquetar la informacin de entrada y de salida. Prctica 4-17 Hacer el algoritmo de un programa que lea 10 nmeros enteros y escriba si hay algn 5. Etiquetar la informacin de entrada y de salida.

31

Unidad 4

VALLINIELLO

DEPARTAMENTO DE INFORMTICA Y COMUNICACIONES Desarrollo de Aplicaciones Informticas Mdulo de Programacin en Lenguajes Estructurados Unidad 4: Estructura general de un programa Pilar Beltrn Prez

Objetivos
Al finalizar esta unidad el alumno ser capaz de resolver problemas desde el punto de vista informtico con un algoritmo y ser capaz tambin de proponer soluciones en forma de algoritmos. El tema est diseado adems para que, mediante la prctica, consiga aprender a disear algoritmos por si mismo.

Entender,

analizar

resolver

una

amplia variedad de problemas

computacionales. Disear e implementar soluciones eficientes y de calidad a los problemas como resultado de la aplicacin de un proceso metdico. Conocer el concepto de Algoritmo y su importancia en el mundo de las aplicaciones para ordenadores. Manejar con soltura la lgica de programacin. Distinguir los diferentes tipos de algoritmos que existen y sus variantes. Conocer los conceptos sobre las tcnicas de diseo. Saber disear algoritmos eficientes mediante la programacin estructurada. Conocer y saber aplicar las reglas de programacin estructurada. Saber hacer un uso eficiente de las estructuras de control de flujo. Realizar tareas de investigacin y bsqueda de informacin adicional en Internet.

Unidad 4 32

VALLINIELLO

DEPARTAMENTO DE INFORMTICA Y COMUNICACIONES Desarrollo de Aplicaciones Informticas Mdulo de Programacin en Lenguajes Estructurados Unidad 4: Estructura general de un programa Pilar Beltrn Prez

Enlaces de inters

Sitio muy interesante sobre programacin estructurada. En esta pgina se hace un breve comentario sobre los tipos de estructuras de control de flujo que podemos encontrar.
Definicin de las Estructuras Bsicas de Control. http://www.itlp.edu.mx/publica/tutoriales/pascal/u1_1_4.html

Algunos algoritmos resueltos que pueden ayudarte a entender la resolucin de problemas y el diseo de algoritmos. En el siguiente enlace vas a encontrar un resumen del tema de algoritmos, con ejemplos de elaboracin y al final unos cuantos ejemplos resueltos.
Teora de Algoritmos. http://www.geocities.com/inf135/tutc/Tema02.htm

Si te interesa el tema puedes ampliar conocimientos en el siguiente enlace, en el que encontrars algunas sugerencias y reglas que te ayudarn como futuro programador.
Curiosidades sobre programacin http://es.wikipedia.org/wiki/Paradigma_de_programacin

Unidad 4 33

VALLINIELLO

DEPARTAMENTO DE INFORMTICA Y COMUNICACIONES Desarrollo de Aplicaciones Informticas Mdulo de Programacin en Lenguajes Estructurados Unidad 4: Estructura general de un programa Pilar Beltrn Prez

Glosario de trminos
Aplicacin En informtica, programa o conjunto de programas cuya funcin es automatizar una o varias tareas.

Caractersticas Fsicas de los Soportes. Cmo se representa realmente la informacin (datos) sobre la memoria de la mquina.

Datos Globales En programacin. Datos disponibles desde cualquier mdulo del programa, en nuestro caso, seran los disponibles desde cualquier parte del mdulo del programa.

Dependencias Funcionales Las dependencias funcionales son una restriccin al conjunto de relaciones legales. Relacin entre los resultados de los datos y los datos.

Encapsulacin. Programacin. Tambin llamada "ocultacin de la informacin", asegura que los objetos no pueden cambiar el estado interno de otros objetos de maneras inesperadas; solamente los propios mtodos internos del objeto pueden acceder a su estado. Cada tipo de objeto expone una interfaz a otros objetos que especifica cmo otros objetos pueden interactuar con l.

Estructura de Datos Forma de organizar y representar los datos para un problema. En programacin, est muy relacionada con la forma de representar internamente, en memoria, ordenador. los datos en el

Funcin. Igual que el procedimiento pero con la diferencia que devuelve un valor. Ver procedimiento

Unidad 4 34

VALLINIELLO

DEPARTAMENTO DE INFORMTICA Y COMUNICACIONES Desarrollo de Aplicaciones Informticas Mdulo de Programacin en Lenguajes Estructurados Unidad 4: Estructura general de un programa Pilar Beltrn Prez

Interfaz o Interface Informtica: Zona de comunicacin o accin de un sistema sobre otro En programacin orientada a objetos: Un interface es una coleccin de definiciones de mtodos (sin implementaciones) y de valores constantes.

Instancia Cada una de las preguntas relacionadas en las que se puede dividir un problema. En programacin orientada a objetos, caracterstica o parte de una clase.

Paquete. Informtica. Programacin. Un conjunto de estructuras de datos y subprogramas que tienen cierta relacin y coherencia entre s. Procedimiento. Subprograma o segmento de cdigo que ejecuta una determinada tarea y luego devuelven el procesamiento al rea de cdigo desde donde fue llamado.

Subrutina. Una subrutina o subprograma, como idea general, se presenta como un algoritmo separado del algoritmo principal, el cual permite resolver una tarea especfica.

Tipos de Datos Abstractos Modelos matemticos sobre los que se definen una serie de operaciones. El tipo abstracto de datos es una coleccin de valores y operaciones que se definen mediante una especificacin que es independiente de cualquier representacin. Cdigo reutilizable Cdigo que podemos utilizar en otros programas, funciones, etc... Contador Variable que acumula el nmero de ocurrencias de una determinada accin.

Unidad 4 35

VALLINIELLO

DEPARTAMENTO DE INFORMTICA Y COMUNICACIONES Desarrollo de Aplicaciones Informticas Mdulo de Programacin en Lenguajes Estructurados Unidad 4: Estructura general de un programa Pilar Beltrn Prez

Eficiencia de los algoritmos Se dice que un algoritmo es eficiente cuando consume pocos recursos durante su ejecucin, estos recursos son tiempo del procesador y espacio en memoria. Entorno voltil de un programa Est constituido por las partes del procesador que no pueden ser compartidas (el contador de programa, registros acumuladores, registro de estado, ...) Es la informacin que se guarda cuando un proceso pierde el control de la CPU para poder continuar con su ejecucin correctamente ms adelante. Excepcin Una excepcin es un evento que ocurre durante la ejecucin del programa que interrumpe el flujo normal de las sentencias. Funcin Una funcin es una REGLA o CRITERIO para obtener un cierto resultado a partir de unos valores determinados. Funcin EOF() La funcin eof (end of file), fin de archivo, devuelve el estado de un archivo. Es una funcin de tipo lgico que indica si el fin de archivo se ha encontrado; devuelve true si se encontr, false en caso contrario. Indentacin Tabulacin del cdigo de un programa para hacerlo ms legible. Lenguaje Basic Lenguaje de programacin de alto nivel. El nombre de BASIC, significa Beginner's All-purpose Symbolic Instruction Code (Cdigo de Instruccin Simblico de Propsito General para Principiantes) Mtodo Nombre dado a los subprogramas que permiten el manejo de los objetos bajo el paradigma de la Programacin Orientada a Objetos.

Unidad 4 36

VALLINIELLO

DEPARTAMENTO DE INFORMTICA Y COMUNICACIONES Desarrollo de Aplicaciones Informticas Mdulo de Programacin en Lenguajes Estructurados Unidad 4: Estructura general de un programa Pilar Beltrn Prez

Paradigmas de programacin Un paradigma est constituido por los supuestos tericos generales, las leyes y las tcnicas para su aplicacin que adoptan los miembros de una determinada comunidad cientfica, en nuestro caso concreto representan un enfoque particular o filosofa para la construccin del software. Procedimiento Un procedimiento es un subprograma que realiza una tarea especfica Se llama as a un subprograma que ejecuta unas ciertas acciones sin que valor alguno de retorno est asociado a su nombre. En otras palabras: NO devuelven valores (en cierto sentido). Programa autodocumentado Programa que utiliza la indentacin, los comentarios, tiene especial cuidado en la utilizacin con claridad de los comandos y la significacin de los nombres de las variables. Programacin modular Tcnica de programacin en la que un programa se divide en mdulos, que resultan de

segmentar el problema en funciones lgicas que son perfectamente diferenciables. Cada uno de los mdulos ejecuta una nica actividad o tarea, y se analiza, se codifica, y optimiza independientemente de otros mdulos. Programacin orientada a objetos: Programacin que utiliza lenguaje basado en objetos. Se define un objeto como un conjunto complejo de datos y programas que poseen estructura y forman parte de una organizacin determinada. Sentencias o estructuras de salto incondicional Una sentencia de salto incondicional (goto) contina la ejecucin de un programa en un punto especificado por una etiqueta diferente al camino natural del cdigo. Subrutina En computacin, una subrutina o subprograma, como idea general, se presenta como un algoritmo separado del algoritmo principal, el cual permite resolver una tarea especfica.

Unidad 4 37

VALLINIELLO

DEPARTAMENTO DE INFORMTICA Y COMUNICACIONES Desarrollo de Aplicaciones Informticas Mdulo de Programacin en Lenguajes Estructurados Unidad 4: Estructura general de un programa Pilar Beltrn Prez

Teorema de programacin estructurada Se ha demostrado que un programa propio puede ser escrito utilizando solamente tres tipos de estructuras de control -secuenciales, selectivas y repetitivas-. Un programa es propio si posee un slo punto de entrada y uno de salida, si existen caminos desde el inicio hasta el fin que se pueden seguir y que pasan por todas las partes del programa, y si todas las instrucciones son ejecutables sin que hayan bucles infinitos. Valor resultado de un subprograma Valor resultante de la ejecucin de un subprograma

Unidad 4 38

You might also like