metodología de la programación.pdf

26
Ngj/2011 6.1 Metodología de la programación 95 Introducción a la Computación Tc1001 Programación en Lenguaje C++ Programación en lenguaje C++ Objetivos Unidad Tema Subtema Objetivos VI Programación en lenguaje C++ 6.1 Metodología de la programación Metodologías Diseños de algoritmos Creación de algoritmos Entender y aplicar los pasos a seguir en el planteamiento y la solución de un problema de ingeniería. Conocer y aplicar las diferentes metodologías para diseñar la solución de un problema. Conocer los tipos de variables que se utilizan en un lenguaje de programación. Conocer las diferentes instrucciones en un lenguaje de programación para la solución de problemas. Diseñar, programar en lenguaje diferentes problemas de aplicación matemática. 6.2 Lenguaje C++ Lenguajes de programación Entornos de programación. Compiladores Fundamentos del C++ Conocer, entender y aplicar la estructura del lenguaje C++ 6.3 Programación básica en C++ Variables Entradas y salidas por consola Operadores Expresiones Control de flujo de programas Conocer, entender y aprender la sintaxis del lenguaje C++ para diseñar programas para la resolución de problemas

Upload: ricardo-comonfort

Post on 20-Nov-2015

96 views

Category:

Documents


6 download

TRANSCRIPT

  • Ngj/2011 6.1 Metodologa de la programacin 95

    Introduccin a la Computacin Tc1001 Programacin en Lenguaje C++

    Programacin en lenguaje C++ Objetivos

    Unidad Tema Subtema Objetivos VI Programacin en lenguaje C++ 6.1 Metodologa de la programacin Metodologas

    Diseos de algoritmos Creacin de algoritmos

    Entender y aplicar los pasos a seguir en el planteamiento y la solucin de un problema de ingeniera.

    Conocer y aplicar las diferentes metodologas para disear la solucin de un problema.

    Conocer los tipos de variables que se utilizan en un lenguaje de programacin.

    Conocer las diferentes instrucciones en un lenguaje de programacin para la solucin de problemas.

    Disear, programar en lenguaje diferentes problemas de aplicacin matemtica.

    6.2 Lenguaje C++ Lenguajes de programacin

    Entornos de programacin. Compiladores Fundamentos del C++

    Conocer, entender y aplicar la estructura del lenguaje C++ 6.3 Programacin bsica en C++ Variables

    Entradas y salidas por consola Operadores Expresiones Control de flujo de programas

    Conocer, entender y aprender la sintaxis del lenguaje C++ para disear programas para la resolucin de problemas

  • 96 6.1 Metodologa de la programacin Ngj/2011

    Introduccin a la Computacin Tc1001

    Programacin en lenguaje C++

  • Ngj/2011 6.1 Metodologa de la programacin 97

    Introduccin a la Computacin Tc1001 Programacin en Lenguaje C++

    Introduccin Programar una computadora es especificarle una solucin detallada a un problema especfico. A estas especificaciones se les llama lneas de cdigo. Para crear programas se utilizan los lenguajes de programacin que son entornos semnticos y sintcticos parecidos a los idiomas. Estos lenguajes son imperativos ya que son para redactar comandos, mandatos e instrucciones para ser ejecutadas por la computadora. Existe un gran nmero de lenguajes de programacin los cuales pueden ser clasificados en dos grupos: lenguajes declarativos y lenguajes imperativos. Un lenguaje declarativo es un tipo de lenguaje de programacin basado en las matemticas y en la lgica, ms cercanos al razonamiento humano. Los lenguajes declarativos no dicen cmo hacer una cosa, sino, qu cosa hacer. A diferencia de los imperativos, no suele haber declaracin de variables ni tipos. Tienen como caracterstica ser fiables, elegantes y expresivos. Existen varios tipos de lenguajes declarativos: lenguajes lgicos, como Prolog; lenguajes algebraicos, como Maude y SQL y lenguajes funcionales, como Haskell . En un lenguaje imperativo las instrucciones se ejecutan unas tras otras, de manera secuencial, salvo cuando se encuentran estructuras de control condicionales o ciclos. Hay declaracin de variables, tipos y procedimientos, aunque esto vara notablemente en funcin del lenguaje utilizado, pues los hay que exigen las declaraciones mientras que otros permiten que esos elementos no sean declarados.

  • 98 6.1 Metodologa de la programacin Ngj/2011

    Introduccin a la Computacin Tc1001

    Programacin en lenguaje C++

    6.1 Metodologa de la programacin6

    Se entiende por metodologa el conjunto de reglas y pasos estrictos que se siguen para desarrollar una aplicacin informtica completa. Hay diversas metodologas, algunas incluso registradas (hay que pagar por utilizarlas).

    6 Este tema est editado del manual de Fundamentos de programacin en C++ de Jorge Snchez http://www.jorgesanchez.net/pagina.html. A quien agradezco me haya permitido utilizar su manual para mis apuntes del tema de programacin del curso de Mtodos numricos.

  • Ngj/2011 6.1 Metodologa de la programacin 99

    Introduccin a la Computacin Tc1001 Programacin en Lenguaje C++

    Independientemente de la metodologa utilizada suele haber una serie de pasos comunes a todas ellas (relacionados con el ciclo de vida de la aplicacin): 9 Anlisis 9 Diseo 9 Codificacin 9 Ejecucin 9 Prueba 9 Mantenimiento

    Anlisis Al programar aplicaciones siempre se debe realizar un anlisis. El anlisis estudia los requisitos que ha de cumplir la aplicacin. El resultado del anlisis es una hoja de especificaciones en la que aparecen los requerimientos de la aplicacin. Esta hoja es redactada por el o la analista, la persona responsable del proceso de creacin de la aplicacin. En la creacin de algoritmos sencillos, el anlisis consiste nicamente en: 9 Determinar las entradas. Es decir, los datos que posee el algoritmo cuando

    comienza su ejecucin. Esos datos permiten obtener el resultado. 9 Determinar las salidas. Es decir, los datos que obtiene el algoritmo como

    resultado. Lo que el algoritmo devuelve al usuario. 9 Determinar el proceso. Se estudia cul es el proceso que hay que realizar.

    Diseo

    En esta fase se crean esquemas que simbolizan a la aplicacin. Estos esquemas los elaboran analistas. Gracias a estos esquemas se simboliza la aplicacin. Estos esquemas en definitiva se convierten en la documentacin fundamental para plasmar en papel lo que el programador debe hacer.

  • 100 6.1 Metodologa de la programacin Ngj/2011

    Introduccin a la Computacin Tc1001

    Programacin en lenguaje C++

    En estos esquemas se pueden simbolizar: la organizacin de los datos de la aplicacin, el orden de los procesos que tiene que realizar la aplicacin, la estructura fsica (en cuanto a archivos y carpetas) que utilizar la aplicacin, etc. La creacin de estos esquemas se puede hacer en papel, o utilizar una herramienta CASE para hacerlo. En el caso de la creacin de algoritmos, conviene en esta fase usar el llamado diseo descendente. Mediante este diseo el problema se divide en mdulos, que, a su vez, se vuelven a dividir a fin de solucionar problemas ms concretos. Al diseo descendente se le llama tambin top-down. Gracias a esta tcnica un problema complicado se divide en pequeos problemas que son ms fcilmente solucionables. Siempre existe en el diseo la zona principal que es el programa principal que se ejecutar cuando el programa est codificado en un lenguaje de programacin. En la construccin de aplicaciones complejas en esta fase se utilizan gran cantidad de esquemas para describir la organizacin de los datos y los procedimientos que ha de seguir el programa. En pequeos algoritmos se utilizan esquemas ms sencillos.

    Codificacin Escritura de la aplicacin utilizando un lenguaje de programacin (C, Pascal, C++, Java,...). Normalmente la herramienta utilizada en el diseo debe ser compatible con el lenguaje que se utilizar para codificar. Es decir si se utiliza un lenguaje orientado a objetos, la herramienta de diseo debe ser una herramienta que permita utilizar objetos.

    Ejecucin Tras la escritura del cdigo, mediante un software especial se traduce a cdigo interpretable por el ordenador (cdigo mquina). En este proceso pueden detectarse errores en el cdigo que impiden su transformacin. En ese caso el software encargado de la traduccin (normalmente un compilador o un intrprete) avisa de esos errores para que el programador los pueda corregir.

    Prueba Se trata de probar la aplicacin para verificar que su funcionamiento es el correcto. Para ello se comprueban todas las entradas posibles, comprobando que las salidas son las correspondientes.

    Mantenimiento En esta fase se crea la documentacin del programa (paso fundamental en la creacin de aplicaciones). Gracias a esa documentacin se pueden corregir futuros errores o renovar el programa para incluir mejoras detectadas, operaciones que tambin se realizan en esta fase.

  • Ngj/2011 6.1 Metodologa de la programacin 101

    Introduccin a la Computacin Tc1001 Programacin en Lenguaje C++

    Algoritmos

    Un algoritmo es una secuencia de pasos para resolver un problema computacional. Es un conjunto de instrucciones ordenadas para alcanzar un determinado propsito. Antes de programar en un lenguaje computacional, se recomienda escribir un algoritmo en donde en forma grfica (diagramas de flujo) o por medio de lenguaje natural (pseudocdigo) se plantee los pasos a seguir.

    Diagramas de flujo Es el esquema ms antiguo de la informtica. Se trata de una notacin que pretende facilitar la escritura o la comprensin de algoritmos. Gracias a ella se esquematiza el flujo del algoritmo. Fue muy til al principio y todava se usa como apoyo para explicar ciertos algoritmos. Si los algoritmos son complejos, este tipo de esquemas no son adecuados. No obstante cuando el problema se complica, resulta muy complejo de realizar y de entender. De ah que actualmente, slo se use con fines educativos y no en la prctica. Pero sigue siendo interesante en el aprendizaje de la creacin de algoritmos. Los diagramas utilizan smbolos especiales que ya estn normalizados por organismos de estandarizacin como ANSI e ISO.

  • 102 6.1 Metodologa de la programacin Ngj/2011

    Introduccin a la Computacin Tc1001

    Programacin en lenguaje C++

    Smbolos principales La lista de smbolos que generalmente se utiliza en los diagramas de flujo es:

    Ejemplo: Diagrama de flujo para determinar el valor mayor entre dos nmeros.

    Desventajas de los diagramas de flujo Los diagramas de flujo son interesantes como primer acercamiento a la programacin ya que son fciles de entender. De hecho se utilizan fuera de la programacin como esquema para ilustrar el funcionamiento de algoritmos sencillos. Sin embargo cuando el algoritmo se complica, el diagrama de flujo se convierte en ininteligible. Adems los diagramas de flujo no facilitan el aprendizaje de la programacin estructurada, con lo que no se aconseja su uso a los programadores para disear algoritmos.

  • Ngj/2011 6.1 Metodologa de la programacin 103

    Introduccin a la Computacin Tc1001 Programacin en Lenguaje C++

    Pseudocdigo Las bases de la programacin estructurada fueron enunciadas por Niklaus Wirdth. Segn este cientfico cualquier problema algortmico poda resolverse con el uso de estos tres tipos de instrucciones: 9 Secuenciales. Instrucciones que se ejecutan en orden normal. El flujo del

    programa ejecuta la instruccin y pasa a ejecutar la siguiente. 9 Alternativas. Instrucciones en las que se evala una condicin y

    dependiendo si el resultado es verdadero o no, el flujo del programa se dirigir a una instruccin o a otra.

    9 Iterativas. Instrucciones que se repiten continuamente hasta que se cumple una determinada condicin.

    El tiempo le ha dado la razn y ha generado una programacin que insta a todo programador a utilizar slo instrucciones de esos tres tipos. Es lo que se conoce como programacin estructurada. El propio Wirdth dise el lenguaje Pascal como el primer lenguaje estructurado. Lo malo es que el Pascal al ser lenguaje completo incluye instrucciones excesivamente orientadas al ordenador. Por ello se aconseja para el diseo de algoritmos estructurados el uso de un lenguaje especial llamado pseudocdigo, que adems se puede traducir a cualquier idioma (Pascal est basado en el ingls). El pseudocdigo adems permite el diseo modular de programas y el diseo descendente gracias a esta posibilidad Hay que tener en cuenta que existen multitud de pseudocdigos, es decir no hay un pseudocdigo 100% estndar. Pero s hay gran cantidad de detalles aceptados por todos los que escriben pseudocdigos. El pseudocdigo son instrucciones escritas en un lenguaje orientado a ser entendido por un ordenador. Por ello en pseudocdigo slo se pueden utilizar ciertas instrucciones. La escritura de las instrucciones debe cumplir reglas muy estrictas. Las nicas permitidas son: 9 De Entrada /Salida. Para leer o escribir datos desde el programa hacia el

    usuario. 9 De proceso. Operaciones que realiza el algoritmo (suma, resta, cambio de

    valor,...) 9 De control de flujo. Instrucciones alternativas o iterativas (bucles y

    condiciones). 9 De declaracin. Mediante las que se crean variables y subprogramas. 9 Llamadas a subprogramas. 9 Comentarios. Notas que se escriben junto al pseudocdigo para explicar

    mejor su funcionamiento.

  • 104 6.1 Metodologa de la programacin Ngj/2011

    Introduccin a la Computacin Tc1001

    Programacin en lenguaje C++

    Escritura en pseudocdigo Las instrucciones que resuelven el algoritmo en pseudocdigo deben de estar encabezadas por la palabra inicio (en ingls BEGIN) y cerradas por la palabra fin (en ingls END). Entre medias de estas palabras se sitan el resto de instrucciones. Opcionalmente se puede poner delante del inicio la palabra programa seguida del nombre que queramos dar al algoritmo. En definitiva la estructura de un algoritmo en pseudocdigo es:

    programa nombreDelPrograma inicio instrucciones .... fin

    Hay que tener en cuenta estos detalles: 9 Aunque no importan las maysculas y minsculas en pseudocdigo, se

    aconsejan las minsculas porque su lectura es ms clara y adems porque hay muchos lenguajes en los que s importa el hecho de hecho escribir en maysculas o minsculas (C, Java, ...)

    9 Se aconseja que las instrucciones dejen un espacio (sangra) a la izquierda para que se vea ms claro que estn entre el inicio y el fin. Esta forma de escribir algoritmos permite leerlos mucho mejor.

    Comentarios En pseudocdigo los comentarios que se deseen poner (y esto es una prctica muy aconsejable) se ponen con los smbolos // al principio de la lnea de comentario (en algunas notaciones se escribe **). Cada lnea de comentario debe comenzar con esos smbolos:

    inicio instrucciones //comentario instrucciones fin

  • Ngj/2011 6.1 Metodologa de la programacin 105

    Introduccin a la Computacin Tc1001 Programacin en Lenguaje C++

    Instrucciones

    Independientemente de la notacin que utilicemos para escribir algoritmos, stos contienen instrucciones, acciones a realizar por el ordenador. Lgicamente la escritura de estas instrucciones sigue unas normas muy estrictas. Las instrucciones pueden ser de estos tipos:

    Primitivas. Son acciones sobre los datos del programa. Son: o Asignacin o Instrucciones de Entrada/Salida

    Declaraciones. Obligatorias en el pseudocdigo, opcionales en otros esquemas. Sirven para advertir y documentar el uso de variables y subprogramas en el algoritmo.

    Entrada y salida. Control. Sirven para alterar el orden de ejecucin del algoritmo. En general

    el algoritmo se ejecuta secuencialmente. Gracias a estas instrucciones el flujo del algoritmo depende de ciertas condiciones que nosotros mismos indicamos.

  • 106 6.1 Metodologa de la programacin Ngj/2011

    Introduccin a la Computacin Tc1001

    Programacin en lenguaje C++

    Instrucciones primitivas Son instrucciones que se ejecutan en cuanto son ledas por el ordenador. En ellas slo puede haber:

    o Asignaciones () o Operaciones (+, -, * /,...) o Identificadores (nombres de variables o constantes) o Valores (nmeros o texto encerrado entre comillas) o Llamadas a subprogramas

    En el pseudocdigo se escriben entre el inicio y el fin. En los diagramas de flujo y tablas de decisin se escriben dentro de un rectngulo. 9 Instruccin de asignacin

    Permite almacenar un valor en una variable. Para asignar el valor se escribe el smbolo, de modo que:

    Identificador valor El identificador toma el valor indicado. Ejemplo:

    8 Ahora x vale 8. Se puede utilizar otra variable en lugar de un valor. Ejemplo:

    9

    El valor de es el valor de , es decir es igual a 9. Los valores pueden ser:

    o Nmeros. Se escriben tal cual, el separador decimal suele ser el punto (aunque hay quien utiliza la coma).

    o Caracteres simples. Los caracteres simples (un solo carcter) se escriben entre comillas simples: a, c, etc.

    o Textos. Se escriben entre comillas doble Hola o Lgicos. Slo pueden valer verdadero o falso (se escriben tal cual) o Identificadores. En cuyo caso se almacena el valor de la variable con dicho

    identificador. Ejemplo:

    9

    El valor de es 9

  • Ngj/2011 6.1 Metodologa de la programacin 107

    Introduccin a la Computacin Tc1001 Programacin en Lenguaje C++

    En las instrucciones de asignacin se pueden utilizar expresiones ms complejas con ayuda de los operadores. Ejemplo:

    3/2 El valor de es el resultado de multiplicar el valor de y por tres y dividirlo entre dos. Los operadores permitidos son:

    + Suma - Resta o cambio de signo * Producto / Divisin mod Residuo. Por ejemplo 9 mod 2 da como resultado 1 div Divisin entera. 9 div 2 da como resultado 4 (y no 4,5) Exponente 92 es 9 elevado a la 2

    Hay que tener en cuenta la prioridad del operador. Por ejemplo la multiplicacin y la divisin tienen ms prioridad que la suma o la resta. S 9+6/3 da como resultado 5 y no 11. Para modificar la prioridad de la instruccin se utilizan parntesis. Por ejemplo 9+(6/3)

  • 108 6.1 Metodologa de la programacin Ngj/2011

    Introduccin a la Computacin Tc1001

    Programacin en lenguaje C++

    Instrucciones de declaracin Slo se utilizan en el pseudocdigo. Indican el nombre y las caractersticas de las variables que se utilizan en el algoritmo. Las variables son nombres a los que se les asigna un determinado valor y son la base de la programacin. Al nombre de las variables se le llama identificador.

    9 Identificadores Los algoritmos necesitan utilizar datos. Los datos se identifican con un determinado identificador (nombre que se le da al dato). Este nombre:

    o Slo puede contener letras, nmeros y el carcter o Debe comenzar por una letra o No puede estar repetido en el mismo algoritmo. No puede haber dos

    elementos del algoritmo (dos datos por ejemplo) con el mismo identificador.

    o Conviene que sea aclarativo, es decir que represente lo mejor posible los datos que contiene. x no es un nombre aclarativo, saldo_mensual s lo es.

    Los valores posibles de un identificador deben de ser siempre del mismo tipo (lo cual es lgico puesto que un identificador almacena un dato). Es decir no puede almacenar primero texto y luego nmeros.

    9 Declaracin de variables Es aconsejable al escribir pseudocdigo indicar las variables que se van a utilizar (e incluso con un comentario indicar para qu se van a usar). En el caso de los otros esquemas (diagramas de flujo y tablas de decisin) no se utilizan (lo que fomenta malos hbitos). Esto se hace mediante la seccin del pseudocdigo llamada var, en esta seccin se colocan las variables que se van a utilizar. Esta seccin se coloca antes del inicio del algoritmo. Y se utiliza de esta forma:

    programa nombreDePrograma var identificador1: tipoDeDatos identificador2: tipoDeDatos .... inicio instrucciones fin

    El tipo de datos de la variable puede ser especificado de muchas formas, pero tiene que ser un tipo compatible con los que utilizan los lenguajes informticos. Se suelen utilizar los siguientes tipos: 9 entero. Permite almacenar valores enteros (sin decimales). 9 real. Permite almacenar valores decimales. 9 carcter. Almacenan un carcter alfanumrico. 9 lgico (o booleano). Slo permiten almacenar los valores verdadero o falso.

  • Ngj/2011 6.1 Metodologa de la programacin 109

    Introduccin a la Computacin Tc1001 Programacin en Lenguaje C++

    9 texto. A veces indicando su tamao (texto(20) indicara un texto de hasta 20 caracteres) permite almacenar texto. Normalmente en cualquier lenguaje de programacin se considera un tipo compuesto.

    Ejemplo de declaracin:

    var numero_cliente: entero // cdigo nico de cada cliente valor_compra: real //lo que ha comprado el cliente descuento: real //valor de descuento aplicable al cliente

    Tambin se pueden declarar de esta forma:

    var numero_cliente: entero // cdigo nico de cada cliente valor_compra, //lo que ha comprado el cliente descuento :real //valor de descuento aplicable al cliente

    La coma despus de valor_compra permite declarar otra variable real. 9 Constantes

    Hay un tipo especial de variable llamada constante. Se utiliza para valores que no van a variar en ningn momento. Si el algoritmo utiliza valores constantes, stos se declaran mediante una seccin (que se coloca delante de la seccin var) llamada CONST (de constante). Ejemplo:

    programa ejemplo1 const PI=3.141592 NOMBRE=Jose var edad: entero sueldo: real inicio ....

    A las constantes se las asigna un valor mediante el smbolo =. Ese valor permanece constante (pi siempre vale 3.141592). Es conveniente (aunque en absoluto obligatorio) utilizar letras maysculas para declarar variables.

  • 110 6.1 Metodologa de la programacin Ngj/2011

    Introduccin a la Computacin Tc1001

    Programacin en lenguaje C++

    Instrucciones de entrada y salida 9 Lectura de datos. Es la instruccin que simula una lectura de datos desde el

    teclado. Se hace mediante la orden leer en la que entre parntesis se indica el identificador de la variable que almacenar lo que se lea.

    Ejemplo (pseudocdigo): leer(x)

    El mismo ejemplo en un diagrama de flujo:

    En ambos casos x contendr el valor ledo desde el teclado. Se pueden leer varias variables a la vez:

    leer(x,y,z)

    9 Escritura de datos. Funciona como la anterior pero usando la palabra

    escribir. Simula la salida de datos del algoritmo por pantalla. escribir(x,y,z)

    Ejemplo de algoritmo El algoritmo completo que escribe el resultado de multiplicar dos nmeros ledos por teclado (en pseudocdigo)

    En un diagrama de flujo:

    programa mayorDe2 var x, y: entero inicio leer(x, y) escribir(x*y) fin

  • Ngj/2011 6.1 Metodologa de la programacin 111

    Introduccin a la Computacin Tc1001 Programacin en Lenguaje C++

    Instrucciones de control Con lo visto anteriormente slo se pueden escribir algoritmos donde la ejecucin de las instrucciones sea secuencial. Pero la programacin estructurada permite el uso de decisiones y de iteraciones. Estas instrucciones permiten que haya instrucciones que se pueden ejecutar o no segn una condicin (instrucciones alternativas), e incluso que se ejecuten repetidamente hasta que se cumpla una condicin (instrucciones iterativas). En definitiva son instrucciones que permiten variar el flujo normal del programa. 9 Expresiones lgicas

    Todas las instrucciones de este apartado utilizan expresiones lgicas. Son expresiones que dan como resultado un valor lgico (verdadero o falso). Suelen ser siempre comparaciones entre datos. Por ejemplo x>8 da como resultado verdadero si x vale ms que 8. Los operadores de relacin (de comparacin) que se pueden utilizar son:

    > Mayor que < Menor que Mayor o igual Menor o igual Distinto

    = Igual

    Tambin se pueden unir expresiones utilizando los operadores Y (en ingls AND), el operador O (en ingls OR) o el operador NO (en ingls NOT). Estos operadores permiten unir expresiones lgicas. Por ejemplo:

    Expresin Resultado es verdadero si 8 y 12 Tanto la variable es mayor que 8 como la variable es menor

    que 12. Se tiene que cumplir las dos comparaciones 8 o 12 Con una de las dos comparaciones que se cumplan, es

    verdadero 8 y 12 El valor de es mayor que 8 y menor que 12

    8 El valor de es diferente de 8

  • 112 6.1 Metodologa de la programacin Ngj/2011

    Introduccin a la Computacin Tc1001

    Programacin en lenguaje C++

    9 Instruccin de alternativa simple La alternativa simple se crea con la instruccin si (en ingls IF). Esta instruccin evala una determinada expresin lgica y dependiendo de si esa expresin es verdadera o no se ejecutan las instrucciones siguientes. Funcionamiento:

    si expresin_lgica entonces instrucciones fin_si

    Esto es equivalente al siguiente diagrama de flujo:

    Las instrucciones slo se ejecutarn si la expresin evaluada es verdadera.

    9 Instruccin de alternativa doble

    Se trata de una variante de la alternativa en la que se ejecutan unas instrucciones si la expresin evaluada es verdadera y otras si es falsa. Funcionamiento:

    si expresin_lgica entonces instrucciones //se ejecutan si la expresin es verdadera si_no instrucciones //se ejecutan si la expresin es falsa fin_si

    Slo se ejecuta unas instrucciones dependiendo de si la expresin es verdadera. El diagrama de flujo equivalente es:

    Hay que tener en cuenta que se puede meter una instruccin si dentro de otro si. A eso se le llama alternativas anidadas.

  • Ngj/2011 6.1 Metodologa de la programacin 113

    Introduccin a la Computacin Tc1001 Programacin en Lenguaje C++

    Ejemplo:

    si a5 entonces escribe(apto) si a5 y a

  • 114 6.1 Metodologa de la programacin Ngj/2011

    Introduccin a la Computacin Tc1001

    Programacin en lenguaje C++

    9 Alternativa compuesta En muchas ocasiones se requieren condiciones que poseen ms de una alternativa. En ese caso existe una instruccin evala una expresin y segn los diferentes valores que tome se ejecutan unas u otras instrucciones. Ejemplo:

    segn_sea expresin hacer valor1: instrucciones del valor1 valor2: instrucciones del valor2 ... si-no instrucciones del si_no fin_segn

    Casi todos los lenguajes de programacin poseen esta instruccin que suele ser un CASE (aunque C, C++, Java y C# usan SWITCH). Se evala la expresin y si es igual que uno de los valores interiores se ejecutan las instrucciones de ese valor. Si no cumple ningn valor se ejecutan las instrucciones del si_no. Ejemplo:

    programa pruebaSelMultiple var x: entero inicio escribe(Escribe un nmero del 1 al 4 y te dir si es par o impar) lee(x) segn_sea x hacer 1: escribe(impar) 2: escribe(par) 3: escribe(impar) 4: escribe(par) si_no escribe(error eso no es un nmero de 1 a 4) fin_segn fin

    El segn sea se puede escribir tambin:

  • Ngj/2011 6.1 Metodologa de la programacin 115

    Introduccin a la Computacin Tc1001 Programacin en Lenguaje C++

    segn_sea x hacer 1,3: escribe(impar) 2,4: escribe(par) si_no escribe(error eso no es un nmero de 1 a 4) fin_segn

    Es decir el valor en realidad puede ser una lista de valores. Para indicar esa lista se pueden utilizar expresiones como: 1..3 De uno a tres (1,2 o 3) >4 Mayor que 4 >5 Y

  • 116 6.1 Metodologa de la programacin Ngj/2011

    Introduccin a la Computacin Tc1001

    Programacin en lenguaje C++

    9 Instrucciones iterativas de tipo mientras (WHILE) El pseudocdigo admite instrucciones iterativas. Las fundamentales se crean con una instruccin llamada mientras (en ingls WHILE). Su estructura es:

    mientras condicin hacer instrucciones fin_mientras

    Significa que las instrucciones del interior se ejecutan una y otra vez mientras la condicin sea verdadera. Si la condicin es falsa, las instrucciones se dejan de ejecutar. El diagrama de flujo equivalente es:

    Ejemplo (escribir nmeros del 1 al 10): 1 mientras 10 escribir(x)

    1 fin_mientras

    Las instrucciones interiores a la palabra mientras podran incluso no ejecutarse si la condicin es falsa inicialmente.

  • Ngj/2011 6.1 Metodologa de la programacin 117

    Introduccin a la Computacin Tc1001 Programacin en Lenguaje C++

    9 Instrucciones iterativas de tipo repetir (REPEAT) La diferencia con la anterior est en que se evala la condicin al final (en lugar de al principio). Consiste en una serie de instrucciones que repiten continuamente su ejecucin hasta que la condicin sea verdadera (funciona por tanto al revs que el WHILE ya que si la condicin es falsa, las instrucciones se siguen ejecutando. Estructura

    repetir instrucciones hasta que condicin

    El diagrama de flujo equivalente

    Ejemplo (escribir nmeros del 1 al 10): Ejemplo (escribir nmeros del 1 al 10):

    1 repetir

    escribir(x) 1

    Hasta que 10

  • 118 6.1 Metodologa de la programacin Ngj/2011

    Introduccin a la Computacin Tc1001

    Programacin en lenguaje C++

    9 Instrucciones iterativas de tipo hacer...mientras (DO-WHILE) Se trata de una iteracin que mezcla las dos anteriores. Ejecuta una serie de instrucciones mientras se cumpla una condicin. Esta condicin se evala tras la ejecucin de las instrucciones. Es decir es un bucle de tipo mientras donde las instrucciones al menos se ejecutan una vez (se puede decir que es lo mismo que un ciclo repetir salvo que la condicin se evala al revs). Estructura:

    hacer instrucciones mientras condicin

    Este formato est presente en el lenguaje C y derivados (C++, Java, C#), mientras que el formato de repetir est presente en el lenguaje Java. El diagrama de flujo equivalente es:

    Ejemplo (escribir nmeros del 1 al 10):

    1 hacer

    escribir(x) 1

    Mientas que 10

  • Ngj/2011 6.1 Metodologa de la programacin 119

    Introduccin a la Computacin Tc1001 Programacin en Lenguaje C++

    9 Instrucciones iterativas para (FOR) Existe otro tipo de estructura iterativa. En realidad no sera necesaria ya que lo que hace esta instruccin lo puede hacer una instruccin mientras, pero facilita el uso de ciclos con contador. Es decir son instrucciones que se repiten continuamente segn los valores de un contador al que se le pone un valor de inicio, un valor final y el incremento que realiza en cada iteracin (el incremento es opcional, si no se indica se entiende que es de uno). Estructura:

    para variablevalorInicial hasta valorfinal hacer instrucciones fin_para Si se usa el incremento: para variablevInicial hasta vFinal incremento valor hacer instrucciones fin_para

    El diagrama de flujo equivalente a una estructura FOR:

    Tambin se puede utilizar este formato de diagrama:

  • 120 6.1 Metodologa de la programacin Ngj/2011

    Introduccin a la Computacin Tc1001

    Programacin en lenguaje C++

    Otros formatos de pseudocdigo utilizan la palabra desde en lugar de la palabra PARA (que es la traduccin de FOR, nombre que se da en el original ingls a este tipo de instruccin). 9 Estructuras iterativas anidadas

    Al igual que ocurra con las instrucciones si, tambin se puede insertar una estructura iterativa dentro de otra; pero en las mismas condiciones que la instruccin IF. Cuando una estructura iterativa esta dentro de otra se debe cerrar la iteracin interior antes de cerrar la exterior.