Nothing Special   »   [go: up one dir, main page]

Metodología de La Programación PDF

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 26

Introduccin a la Computacin

Tc1001
Programacin en Lenguaje C++

Objetivos

Programacin en lenguaje C++

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

Ngj/2011 6.1 Metodologa de la programacin

95

Introduccin a la Computacin
Tc1001
Programacin en lenguaje C++

96

6.1 Metodologa de la programacin

Ngj/2011

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.

Ngj/2011 6.1 Metodologa de la programacin

97

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).

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.

98

6.1 Metodologa de la programacin

Ngj/2011

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.

Ngj/2011 6.1 Metodologa de la programacin

99

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.

100

6.1 Metodologa de la programacin

Ngj/2011

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.

Ngj/2011 6.1 Metodologa de la programacin

101

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.

102

6.1 Metodologa de la programacin

Ngj/2011

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.

Ngj/2011 6.1 Metodologa de la programacin

103

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

fin

104

instrucciones
//comentario
instrucciones

6.1 Metodologa de la programacin

Ngj/2011

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.

Ngj/2011 6.1 Metodologa de la programacin

105

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

106

es 9

6.1 Metodologa de la programacin

Ngj/2011

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
dos.

es el resultado de multiplicar el valor de y por tres y dividirlo entre

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 9 2 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)

Ngj/2011 6.1 Metodologa de la programacin

107

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.

108

6.1 Metodologa de la programacin

Ngj/2011

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.

Ngj/2011 6.1 Metodologa de la programacin

109

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)
programa mayorDe2
var
x, y: entero
inicio
leer(x, y)
escribir(x*y)
fin

En un diagrama de flujo:
110

6.1 Metodologa de la programacin

Ngj/2011

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
8 y
12
8 o

12

8 y

12
8

Resultado es verdadero si
Tanto la variable es mayor que 8 como la variable es menor
que 12. Se tiene que cumplir las dos comparaciones
Con una de las dos comparaciones que se cumplan, es
verdadero
El valor de es mayor que 8 y menor que 12
El valor de es diferente de 8

Ngj/2011 6.1 Metodologa de la programacin

111

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.
112

6.1 Metodologa de la programacin

Ngj/2011

Introduccin a la Computacin
Tc1001
Programacin en Lenguaje C++
Ejemplo:
si a5 entonces
escribe(apto)
si a5 y a<7 entonces
escribe(nota : aprobado)
fin_si
si a7 y a<9 entonces
escribe(notable)
si_no
escribe(sobresaliente)
fin_si
si_no
escribe(reprobado)
fin_si
Al anidar estas instrucciones hay que tener en cuenta que hay que cerrar las
instrucciones si interiores antes que las exteriores.
Eso es una regla bsica de la programacin estructurada:

Ngj/2011 6.1 Metodologa de la programacin

113

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:


114

6.1 Metodologa de la programacin

Ngj/2011

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
>4
>5 Y <8
7,9,11,12 7,9,11 y 12

De uno a tres (1,2 o 3)


Mayor que 4
Mayor que 5 y menor que 8
Slo esos valores (no el 10 o el 8 por ejemplo)

Sin embargo estas ltimas expresiones no son vlidas en todos los lenguajes
(por ejemplo el C no las admite).
En el caso de los diagramas de flujo, el formato es:

Ngj/2011 6.1 Metodologa de la programacin

115

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.

116

6.1 Metodologa de la programacin

Ngj/2011

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

Ngj/2011 6.1 Metodologa de la programacin

117

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

118

6.1 Metodologa de la programacin

Ngj/2011

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 variable valorInicial hasta valorfinal hacer
instrucciones
fin_para
Si se usa el incremento:
para variable vInicial 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:


Ngj/2011 6.1 Metodologa de la programacin

119

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.

120

6.1 Metodologa de la programacin

Ngj/2011

También podría gustarte