Vous êtes sur la page 1sur 32

UNIVERSIDAD MILITAR NUEVA GRANADA

UNIDAD 4:
PROBLEMAS

CENTRO DE SISTEMAS

ALGORITMOS

SOLUCION

DE

En la presente unidad se encuentran estrategias para resolver problemas a travs de


algoritmos. Adems permitir comprender cmo se elabora en trminos generales un
programa sencillo en C++, esto es, programas con una serie de instrucciones paso a
paso, que pueden generar unidades independientes, ejecutando cada enunciado en el
orden literal de sus COMANDOS.

4.1 SOLUCIN DE PROBLEMAS


La principal razn para que las personas aprendan a programar en general y los lenguajes
de programacin en particular, es utilizar el computador como una herramienta para la
solucin de problemas. La solucin de un problema se debe realizar en los siguientes
pasos:

Leer e identificar el tipo de problema: A travs de la lectura comprensiva se


identifica qu clase de problemas se va a resolver, qu valores (variables de
procesos) y clculos (operaciones aritmticas y lgicas) se requieren para conseguir
dichos resultados.

Anlisis del problema: Consiste en identificar qu valores o datos proporciona el


problema (variables de entradas), qu valores (variables de procesos) y clculo
(operaciones aritmticas y lgicas) se requieren para conseguir dichos resultados
(Variables de salida).

Generacin de una solucin: Mediante la utilizacin de expresiones (seudo-cdigo)


o smbolos grficos convencionales (diagrama de flujo) que muestren la secuencia
lgica para obtener resultados propuestos.

Comprobacin de resultados: Permite controlar si la solucin dada al problema es


la adecuada o no, y garantizar que al codificarse funcione correctamente, mediante
una prueba de escritorio.

Codificacin, prueba y ejecucin: se codifica el programa en el lenguaje de


computador seleccionado y si es necesario se almacena o no en un dispositivo de
almacenamiento secundario para su posterior utilizacin.

Uso y mantenimiento: Comprobada suficientemente la solucin, se comienza a


procesar los datos necesarios para obtener los resultados esperados; el programa
debe estar actualizndose permanentemente si se presentan nuevos requerimientos
por parte del usuario.

4.2 ALGORITMOS
Debido a que el computador no tiene la capacidad de solucionar problemas, se le deben
proporcionar los pasos sucesivos a realizar.
Un algoritmo es un conjunto de instrucciones que especifican la secuencia de operaciones
a realizar, en orden, para resolver un sistema especfico o un tipo de problema.
Las caractersticas de un algoritmo son:

MANUAL DE PROGRAMACIN EN C++

Debe ser preciso: Debe indicar el orden de realizacin de cada paso.


Debe estar definido: Si se sigue un algoritmo dos veces, se debe obtener el mismo
resultado.
Debe ser finito: Tiene un fin, un nmero determinado de pasos.

Para la realizacin de cualquier actividad, se utilizan los algoritmos con el propsito de


llegar a los resultados esperados. La diferencia entre un algoritmo para resolver una tarea
corriente y un algoritmo para resolver un problema por computador, es que el ltimo
debe ser expresado con la lgica del computador.
La informacin proporcionada al algoritmo constituye su entrada y la informacin
producida por el algoritmo constituye su salida.
Los problemas complejos se pueden resolver ms eficientemente en el computador,
cuando se rompen en subproblemas que sean ms fciles de solucionar que el original y
si es necesario dividir estos subproblemas en otros ms simples. Este tipo de metodologa
se le denomina diseo descendente (top-down design).

4.3 METODOLOGIA DE DESARROLLO DE ALGORITMOS:


DIAGRAMA DE FLUJO Y PSEUDOCDIGO
Normalmente se disea el algoritmo en un primer esbozo utilizando pocos pasos, luego se
describe cada uno para ampliar detalladamente estos pasos, generando un nivel de
refinamiento necesario para que el algoritmo sea claro, preciso y completo.
Existen dos formas principales de representar un algoritmo: a travs de pseudocdigo
que utiliza texto en espaol, y diagramas de flujo que es una representacin grfica y
trabaja con smbolos especiales.

Pseudocdigo
Es la forma de escribir un algoritmo utilizando texto en espaol.
Tipo de Instruccin

Pseudocdigo espaol

Comienzo de proceso

Inicio

Fin de proceso

Fin

Entrada (lectura)

Leer

Salida (escritura)

Escribir

Asignacin

B 7

Selectiva

si-entonces

Repetitivas

Para, fin_para, mientras, fin_mientras

Ejemplo 1.
Disee un algoritmo para ver una pelcula

UNIVERSIDAD MILITAR NUEVA GRANADA

PSEUDOCODIGO

CENTRO DE SISTEMAS

PSEUDOCODIGO CON REFINAMIENTO

Inicio

Inicio

Invitar a cine

Invitar a cine

Consultar la cartelera de cine

Consultar la cartelera de cine


Si no proyectan Madagascar II entonces
decidir otra pelcula
Si proyectan Madagascar II entonces
trasladarse a la sala de cine

Trasladarse al teatro
Hacer fila

Si hay cola, entonces ponerse en ella

Comprar entradas

Hacer avanzar la cola


Si existen boletas disponibles, entonces
comprar entradas

Entrar a la sala

Entrar a la sala y buscar asiento

Ver la pelcula

Mientras proyectan la pelcula, ver

Abandonar la sala de cine

Abandonar la sala de cine

Volver a casa

Volver a casa.

Fin

Fin

Ejemplo 2.
Disee un algoritmo para hacer la solicitud de un crdito en un banco.
PSEUDOCODIGO
Inicio
Leer la solicitud
Examinar tarjeta del cliente y capacidad de endeudamiento
Si el cliente es solvente y cumplido
entonces
aprueba el crdito
Si no
rechaza el crdito
Fin
Ejemplo 3.
Disee un algoritmo para leer un nmero y escribir su cuadrado:
PSEUDOCODIGO
Inicio
Leer A
BA*A
Escribir B
Fin

(en A se almacenar el nmero)


(en B se almacenar el resultado de la operacin)

Aspectos a considerar en los ejemplos anteriores:

MANUAL DE PROGRAMACIN EN C++

Utilice palabras reservadas como: si, inicio, mientras, sino, entonces, leer, escribir.
Elija un mtodo para escribir los algoritmos:
o El empleo de la indentacin (sangra o justificacin).
o El uso de comentarios para documentar el algoritmo.

Diagramas de flujo
Es una tcnica de representacin de algoritmos ms antigua y a la vez ms utilizada,
aunque su empleo ha disminuido considerablemente, sobre todo desde la aparicin de
lenguaje de programacin orientado a objetos.
Un diagrama de flujo utiliza los smbolos (caja) unidos por flechas, denominados lnea de
flujo, que indican la secuencia en que se deben ejecutar.
Existen diversos tipos de diagramas de flujos, bsicamente se encuentran tres tipos: de
sistema, de bloque y detalle.
Los diagramas de flujos de sistema u organigramas de sistema, representan la relacin
existente entre los diferentes soportes fsicos que contienen la informacin necesaria para
la ejecucin de un proceso.
Los diagramas de bloques o macro procesos, muestran la estructura de los mdulos que
conforman la solucin del problema y el flujo existente entre ellos.
Los diagramas de flujo de detalle, son los que muestran la secuencia paso a paso para la
solucin de un problema que va a ser ejecutado en un procesador.
Un software diseado para construir y analizar algoritmos, es el DFD. Usted
puede crear diagramas de flujo de datos para la representacin de algoritmos
de programacin estructurada a partir de las herramientas de edicin que para
ste propsito suministra el programa. Despus de haber ingresado el
algoritmo representado por el diagrama, podr ejecutarlo, analizarlo y depurarlo en un
entorno interactivo diseado para ste fin. La interfaz grfica de DFD, facilita en gran
medida el trabajo con diagramas ya que simula la representacin estndar de diagramas
de flujo en hojas de papel.
DFD posee una ventana principal que proporciona el ambiente de trabajo en donde se
pueden construir y analizar algoritmos. Los componentes bsicos de la ventana principal
son: La barra de men, barras de herramientas, barras de desplazamiento y el rea de
trabajo.

UNIVERSIDAD MILITAR NUEVA GRANADA

CENTRO DE SISTEMAS

Para la elaboracin de un diagrama de flujo se deben tener en cuenta los siguientes


aspectos:
1. Comrpender claramente el problema a resolver.
2. Iniciar desde arriba hacia abajo y de izquierda a derecha.
3. Identificar con claridad cada uno de los pasos secuenciales, ya sea una instruccin o
toma de decisiones.
4. Una vez terminado, hacer seguimiento paso a paso para verificar su funcionalidad.

SIMBOLOGIA BSICA

Para la solucin de algoritmos empleando la tcnica del Diagrama de Flujo de detalles, se


utiliza una serie de smbolos para representar las diferentes acciones, los smbolos que
utiliza el programa DFD, son:
FUNCION

SIMBOLOS PRINCIPALES

Inicio o fin de un programa

Entrada o lectura de datos o informacin

Salida o escritura de datos o informacin

Asignacin, operacin o proceso de datos

Decisin, permite seleccin de alternativa

Indicador de direccin o lnea de flujo.


Representa estructuras repetitivas, ciclo
para, ciclo mientras.

MANUAL DE PROGRAMACIN EN C++

Otros programas de elaboracin de diagramas de flujo, permiten tener smbolos ms


explcitos, que indican el dispositivo de entrada o de salida:

Smbolos de Salida

Impresora

Pantalla

Smbolos de Entrada

Teclado

Disco

Ejemplo:
Calcular y escribir el rea de un tringulo.
Variables: BASE, ALTURA, AREA

PSEUDOCODIGO

DIAGRAMA DE FLUJO

Inicio
Leer BASE, ALTURA
AREA BASE * ALTURA /2
Escribir AREA
Fin

Cinta

UNIVERSIDAD MILITAR NUEVA GRANADA

CENTRO DE SISTEMAS

4.4 PRUEBA DE ESCRITORIO


La forma para comprobar que las operaciones y los resultados que arrojan los algoritmos
sean los esperados es realizar una prueba de escritorio.
La prueba de escritorio se realiza lnea por lnea y consiste en asignar datos especficos a
las variables de entrada o de lectura, y seguir la secuencia de las instrucciones realizando
el seguimiento a cada una de las variables que se emplean dentro del algoritmo, hasta los
resultados o datos de salida. Al analizar estos resultados se puede determinar si el
algoritmo esta correcto o si es necesario realizar algn ajuste o cambio.
Se denomina prueba de escritorio a la comprobacin que se hace de un algoritmo para
saber si est bien hecho. Esta prueba consiste en tomar datos especficos como entrada y
seguir la secuencia indicada en el algoritmo hasta obtener un resultado, el anlisis de
estos resultados indicar si el algoritmo est correcto o si por el contrario hay necesidad
de corregirlo o hacerle ajustes.
Ejemplo:
Leer un nmero, calcular y escribir el cuadrado y el cubo del nmero.
PSEUDOCODIGO
1. Inicio
2.
Leer NUMERO
3.
CUADRADO NUMERO * NUMERO
4.
CUBO NUMERO*NUMERO*NUMERO
5.
Escribir CUADRADO, CUBO
6. Fin

PRUEBA DE ESCRITORIO

Lnea 2
Lnea 3
Lnea 4

NUMERO
5

CUADRADO
25

CUBO
125

Los resultados son el cuadrado 25 y el


cubo 125

4.5 ESTRUCTURA SECUENCIAL


Los algoritmos donde la ejecucin comienza en la primera instruccin y prosigue hasta la
ltima de ellas presentan una estructura secuencial o lineal.
La estructura secuencial se representa de la siguiente manera:
Inicio
Instruccin 1
Instruccin 2
.
.
Instruccin N
Fin

MANUAL DE PROGRAMACIN EN C++

Ejemplo 1.
Dada una cantidad en pesos calcular y escribir su equivalencia en Dlares y Euros.
Sabiendo que el valor del dlar es $2230 y el Euro $3030.
Variables: P: Cantidad en Pesos, Dlar: equivalencia en dlares, Euro: equivalencia en
Euros
DIAGRAMA DE FLUJO

PSEUDOCODIGO
1. Inicio
2. Leer P
3.
DOLAR P /2230
4.
EURO P /3030
5. Escribir DOLAR, EURO
6. Fin

UNIVERSIDAD MILITAR NUEVA GRANADA

CENTRO DE SISTEMAS

La prueba de escritorio ser:


P
Lnea 1

DOLAR

EURO

100000

Lnea 2

44.44

Lnea 3

34.12

Ejemplo 2.
Calcular el rea de un triangulo en funcin de las longitudes de sus lados.
AREA=

P ( P A)( P B)( P C )

, donde P=(A+B+C)/2.

Variables: A:lado , B: lado, C: lado, P: semiperimetro, AREA: rea.

PSEUDOCODIGO

DIAGRAMA DE FLUJO

Inicio
Leer A,B,C
P (A+B+C) /2
AREA RaizCuadrada(P*(P-A)*(P-B)*(P-C))
Escribir AREA
Fin

Ejemplo 3.
Calcular y escribir el salario neto de un trabajador dado el nmero de horas y el valor de
la hora y sabiendo que el tasa de impuesto que se le debe deducir es del 2%.
Variables: N: nmero de horas, V: valor hora, Sb: salario bsico (antes de impuesto),
I: impuesto, S: salario neto

MANUAL DE PROGRAMACIN EN C++

PSEUDOCODIGO

DIAGRAMA DE FLUJO

Inicio
Leer N,V
Sb N * V
I Sb * 0.02
S Sb - I
Escribir S
Fin

4.6 ESTRUCTURA SELECTIVA


Los algoritmos hasta aqu escritos presentan una estructura secuencial. Sin embargo en
ocasiones se necesita tener la posibilidad de controlar cuales son las instrucciones que se
deben ejecutar y en qu momento, para esto los compiladores traen instrucciones que le
permiten al programador elegir entre una u otras alternativas.
Las condicionales son expresiones booleanas, que se emplean para controlar la secuencia
en que deben ejecutarse los pasos de un algoritmo. Generan un valor verdadero (1) o
falso (0), esto es pueden tomar dos valores: verdadero (true) y falso (FALSE).
Las instrucciones condicionales controlan si una instruccin o lista de instrucciones se
ejecutan en funcin del cumplimiento o no, de una condicin
Esta instruccin la denominaremos si y tiene la siguiente forma:
si (condicin)
entonces instrucciones
sino instrucciones
fin_si
La condicin es una expresin booleana, si el valor generado es verdadero entonces se
ejecutan las instrucciones que siguen a la palabra entonces. Si el valor generado por la
condicin es falso, se ejecutan las instrucciones que siguen a la palabra sino, en caso de

10

UNIVERSIDAD MILITAR NUEVA GRANADA

CENTRO DE SISTEMAS

que no se requieran especificar instrucciones por falso, simplemente se omite esta parte y
las instrucciones por verdadero no se ejecutaran:
si (condicin)
entonces instrucciones
fin_si
Ejemplo 1.
Inicio
Leer x, y
si (x<y)
entonces x x+1
fin_si
Escribir x,y
Fin
En el ejemplo anterior la expresin booleana es (x<y), si el valor generado es verdadero
(Por ejemplo si x=2 y y=3) entonces se ejecuta la instruccin a x asgnele x+1; en caso
de que la expresin booleana sea falsa (por ejemplo x=3 y y=2) entonces la secuencia de
instruccin a ejecutar sera la siguiente a fin_si, esto es escribir x,y.
Ejemplo 2.
Inicio
Leer x, y
si (x<y)
entonces x x+1
sino y y+1
fin_si
Escribir x,y
Fin
Este ejemplo se diferencia del anterior en que cuando la condicin es falsa se debe
realizar a y asgnele y+1 y luego sin importar que la condicin fuera verdadera o falsa se
escribe x,y.

Clases de condiciones
Existen dos
compuestas.

clases

de

condiciones,

las

condicionales

simples

las

condiciones

CONDICIONES SIMPLES

Son condiciones sencillas que establecen una relacin entre dos constantes, dos
variables, o una variable con una constante, utilizando los operadores de relacin. Por
ejemplo:
A >= B
X != 0

CONDICIONES COMPUESTAS
11

MANUAL DE PROGRAMACIN EN C++

Permiten enlazar condiciones simples para formar otras ms complejas; las condiciones
son enlazadas entre s por medio de los operadores lgicos. Por ejemplo:
a>bya>c
x != y x = z
no (a > b) y no (x = y)
Ejemplo:
Inicio
Leer a
si (a<10 o a>20)
entonces x 3
sino x 0
fin_si
Escribir x
Fin
En el ejemplo anterior si la condicin es verdadera (por ejemplo si a=3) se le asigna 3 a
x; en caso de que sea falso (por ejemplo x=15) se le asigna 0 a x.

Representacin de los condicionales en diagramas de flujo


Para representar un condicional se utiliza un rombo:
SI

NO
CONDICION

En caso que no se quieran especificar instrucciones por falso:

Cuando se quieran especificar instrucciones por falso y verdadero:

12

UNIVERSIDAD MILITAR NUEVA GRANADA

CENTRO DE SISTEMAS

A continuacin presentamos unos ejemplos grficos de enunciados de decisin:

COMPOSICION

EJEMPLO

NO
Variable: Constante

SI
SUELDO > 500000

NO

Variable: Variable

SI
PAS=NUEVO

NO

Variable: Expresin

SI
INTE = A+B

NO

Expresin: Expresin

SI
A*B != C/E

Ejemplo 1.
Leer un nmero y escribir si es mayor o menor o igual que 100
PSEUDOCODIGO

DIAGRAMA DE FLUJO

Inicio
Leer numero
si (numero > 100)
entonces escribir mayor
sino escribir menor o igual
fin_si
Fin

13

MANUAL DE PROGRAMACIN EN C++

Ejemplo 2.
Leer dos nmeros, y determinar cual es el mayor.
Variables: N1: Numero
N2: Numero
PSEUDOCODIGO

DIAGRAMA DE FLUJO

Inicio
Leer N1, N2
si (N1 > N2)
entonces escribir N1
sino escribir N2
fin_si
Fin

4.7 ESTRUCTURAS REPETITIVAS


En la elaboracin de programas es importante que existan instrucciones que permiten que
el computador ejecute un grupo de instrucciones varias veces sin tener que volverlas a
escribir, estas son: la instruccin mientras que y la instruccin para.

4.7.1 BUCLES E ITERACIONES


Un bucle o ciclo es un pedazo de algoritmo, cuyas instrucciones se repiten un nmero
determinado de veces mientras se cumple una determinada condicin.
Un bucle consta de tres partes fundamentales: DECISION (simple o compuesta), CUERPO

14

UNIVERSIDAD MILITAR NUEVA GRANADA

CENTRO DE SISTEMAS

DEL BUCLE y la SALIDA DEL BUCLE.


Una iteracin es la ejecucin de todas las instrucciones del ciclo.
Los bucles pueden ser sencillos o anidados (ciclos dentro de otros ciclos).

Contador
Los procesos repetitivos son la base del uso del computador. En estos procesos se
necesita normalmente contar los sucesos o acciones internas del bucle. Una forma de
controlar un bucle es mediante un contador.
Un contador es una variable cuyo valor se incrementa o decrementa en una cantidad
constante por cada iteracin.
El formato general es:

CONTADOR CONTADOR + CANTIDAD CONSTANTE

Ejemplo:
Z Z + 2, donde Z se incrementa en 2 en cada iteracin.

Acumulador
Es una variable cuya misin es almacenar por cada iteracin, cantidades variables
resultantes de sumas o productos sucesivos.
El formato general es:

ACUMULADOR ACUMULADOR + CANTIDAD VARIABLE


ACUMULADOR ACUMULADOR * CANTIDAD VARIABLE

Ejemplo:

15

MANUAL DE PROGRAMACIN EN C++

S S+N, donde N es una variable y no una constante.

INSTRUCCIN MIENTRAS QUE


La instruccin mientras, nos permite ejecutar una instruccin o un grupo de
instrucciones un nmero determinado de veces, mientras se cumple una condicin. Esta
instruccin es utilizada, cuando no se sabe el nmero de veces que va a ocurrir el ciclo.
La representamos en pseudocdigo de la siguiente forma:
mientras (condicin) hacer
instrucciones
fin_mientras
En los diagramas de flujo la representamos con un rectngulo terminado en puntas:

Ejemplo 1.
Sumar una serie de nmeros, el programa solicita los nmeros por teclado hasta que se
digite el numero -1
Variables: SU: Acumulador (suma de los nmeros), NU: Numero

16

UNIVERSIDAD MILITAR NUEVA GRANADA

CENTRO DE SISTEMAS

PSEUDOCODIGO

DIAGRAMA DE FLUJO

Inicio
SU 0
Leer NU
mientras (NU != -1) hacer
SU SU + NU
leer NU
fin_mientras
Escribir SU
Fin

17

MANUAL DE PROGRAMACIN EN C++

Ejemplo 2.
Calcular el promedio de las notas de un grupo de alumnos. El programa finaliza el ingreso
de notas cuando se digite el cdigo 999.
Variables:

N: Nota, SN: Suma de notas, C: Cdigo, CN: Cantidad de notas,


PN: Promedio de notas
PSEUDOCODIGO

DIAGRAMA DE FLUJO

Inicio
SN 0
CN 0
Leer C
mientras ( C != 999) hacer
leer N
SN SN + N
CN CN + 1
leer C
fin_mientras
PN SN / CN
Escribir PN
Fin

18

UNIVERSIDAD MILITAR NUEVA GRANADA

CENTRO DE SISTEMAS

INSTRUCCIN PARA
La instruccin para permite repetir una instruccin o un grupo de instrucciones un
nmero determinado de veces. Esta instruccin solo es utilizada cuando se sabe el
nmero exacto de veces que va a ocurrir un ciclo.
La representamos en el pseudocdigo de la siguiente forma:
para Variable valor_inicial , valor_final , incremento haga
instrucciones
fin_para
En los diagramas de flujo la representamos con un rectngulo terminado en puntas:

19

MANUAL DE PROGRAMACIN EN C++

Ejemplo 1.
Sumar 10 nmeros introducidos por teclado:
Variables: SU: Acumulador (Suma de los nmeros), NU: Numero que es introducido por
teclado, i: Contador que controla el ciclo para

PSEUDOCODIGO

DIAGRAMA DE FLUJO

Inicio
SU 0
para i 1, 10, 1 haga
Leer NU
SU SU + NU
fin_para
Escribir SU
Fin

20

UNIVERSIDAD MILITAR NUEVA GRANADA

CENTRO DE SISTEMAS

Ejemplo 2.
Calcular y escribir el factorial de un nmero dado por el usuario.
Variables:

NUM: Numero, F: Factorial


PSEUDOCODIGO

DIAGRAMA DE FLUJO

Inicio
F0
Leer NUM
para X 1, NUM, 1 haga
FF*X
fin_para
escribir F
Fin

21

MANUAL DE PROGRAMACIN EN C++

Ejemplo 3
Leer 10 nmeros, calcular y escribir la cantidad de nmeros positivos y la cantidad de
nmeros negativos.
Variables:
NUM: Numero, CP: Cantidad de nmeros positivos, CN: Cantidad de
nmeros negativos.
PSEUDOCODIGO

DIAGRAMA DE FLUJO

Inicio
CP 0
CN 0
para X 1, 10, 1 haga
Leer NUM
si (NUM>=0)
Entonces CP CP +
1
sino CN CN + 1
fin_si
fin_para
Escribir CP, CN
Fin

22

UNIVERSIDAD MILITAR NUEVA GRANADA

CENTRO DE SISTEMAS

4.7.2 ANIDACIN DE ESTRUCTURAS


Cuando tenemos que evaluar ms de dos condiciones es necesario emplear estructuras
selectivas anidadas o mltiples, es decir tener un si dentro de otro si y seguir anidando
segn sea el tipo de problema.
En algunos casos es necesario emplear ms de un ciclo, en estos algoritmos se deben
crear estructuras repetitivas anidadas. Cada vez que se ejecuta una iteracin del ciclo
externo se ejecuta todo el ciclo interno. Podemos encontrar los siguientes esquemas de
ciclos anidados:

Las estructuras que se pueden anidar son las selectivas o condicionales y las repetitivas.

CONDICIONALES ANIDADOS
En ocasiones es necesita tener la posibilidad de controlar las instrucciones que se deben
ejecutar entre ms de una alternativa, en cumplimiento de dos o ms condiciones. La
instruccin si, puede incluir otras instrucciones si. En este caso se dice que las
instrucciones si estn anidadas.
Esta instruccin si anidada, tiene la siguiente forma:
si (condicin1)
entonces instrucciones
sino
si (condicin2)
entonces instrucciones
sino instrucciones
fin_si
fin_si

23

MANUAL DE PROGRAMACIN EN C++

En la forma anterior, se tienen dos condiciones para tres posibilidades de instrucciones.


Ntese que en la negacin de la primera condicin, resulta el segundo si, que nos permite
evaluar las dos posibilidades de la segunda condicin.
Otra forma sera que el segundo si, estuviera por la afirmacin de la primera condicin,
con lo cual tendra la siguiente apariencia:
si (condicin1)
entonces si (condicin2)
entonces instrucciones
sino instrucciones
fin_si
sino instrucciones
fin_si
Se acepta un nmero indeterminado de si anidados, que depende de la habilidad del
programador para controlar todas las posibilidades. A continuacin se presenta un
ejemplo de cuatro condicionales:
si (condicin1)
entonces si (condicin2)
entonces si (condicin3)
entonces si (condicin4)
entonces instrucciones1
sino instrucciones2
fin_si
sino instrucciones3
fin_si
sino instrucciones4
fin_si
sino instrucciones5
fin_si
Ejemplo 1:
Leer un nmero y escribir si es menor que cero, igual a cero o mayor que cero.
Variable: NUMERO

24

UNIVERSIDAD MILITAR NUEVA GRANADA

CENTRO DE SISTEMAS

PSEUDOCODIGO
Inicio
leer NUMERO
si (NUMERO < 0)
entonces escribir menor que cero
sino si (NUMERO = 0)
entonces
escribir igual a cero
sino escribir mayor que cero
fin_si
fin_si
fin
DIAGRAMA DE FLUJO

25

MANUAL DE PROGRAMACIN EN C++

Ejemplo 2:
Leer un carcter, determinar si es una letra, un nmero, otro carcter.
Variables: C: Carcter
PSEUDOCODIGO
Inicio
leer C
si (C>=a y C<=z)
entonces escribir LETRA
sino si (C>=0 y C<=9)
entonces escribir NUMERO
sino escribir OTRO CARACTER
fin_si
fin_si
fin

DIAGRAMA DE FLUJO

26

UNIVERSIDAD MILITAR NUEVA GRANADA

CENTRO DE SISTEMAS

Ejemplo 3:
Leer tres nmeros, determinar cul es el mayor.
Variables: A: Numero 1, B: Numero 2, C: Numero 3
PSEUDOCODIGO
Inicio
leer A, B, C
si (A > B y A>C)
entonces escribir A
sino
si (B>A y B>C)
entonces escribir B
sino
escribir C
fin_si
fin_si
fin
DIAGRAMA DE FLUJO

27

MANUAL DE PROGRAMACIN EN C++

REPETITIVAS ANIDADAS
Es posible anidar ciclos o bucles. Los bucles anidados constan de un bucle externo con
uno o ms bucles internos. Cada vez que se repite el bucle externo, los bucles internos se
repiten.
Ejemplo 1:
Calcular y escribir las tablas de multiplicar del 1 al 5
Variables: i: Variable del ciclo externo (multiplicando), j: Variable del ciclo interno
(multiplicador), R: Resultado del producto

PSEUDOCODIGO

DIAGRAMA DE FLUJO

Inicio
para i 1, 5, 1 haga
para j 1, 10, 1 haga
Ri*j
escribir i, j, R
fin_para
fin_para
Fin

28

UNIVERSIDAD MILITAR NUEVA GRANADA

CENTRO DE SISTEMAS

EJEMPLO 2:
Calcular y escribir el factorial de 5 nmeros dados por el usuario.
Variables: NUM: Numero,
F: Factorial, X: Variable del ciclo externo (cantidad de
nmeros), Y: Variable del ciclo interno (clculo del factorial)

PSEUDOCODIGO

DIAGRAMA DE FLUJO

Inicio
para X 1, 5, 1 haga
F1
leer NUM
para Y 1, NUM, 1 haga
FF*X
fin_para
escribir F
fin_para
fin

29

MANUAL DE PROGRAMACIN EN C++

EJEMPLO 3:
Para un conjunto de nmeros, calcular y escribir la suma de 1 hasta cada nmero. El
programa termina cuando se digite el numero 111.
Variables: N: Numero, SUM: Suma, X: Variable del ciclo interno (de 1 hasta el numero).

PSEUDOCODIGO

DIAGRAMA DE FLUJO

Inicio
Leer N
Mientras (N!=111) hacer
SUM 0
para Y 1, NUM, 1 haga
FF*X
fin_para
escribir SUM
leer N
fin_mientras
fin

30

UNIVERSIDAD MILITAR NUEVA GRANADA

CENTRO DE SISTEMAS

EJEMPLO 4:
Calcular y escribir el resultado de las tablas de multiplicar del 1 hasta el 5 con
multiplicador hasta 10.
Variables: X: Multiplicando, Y: Multiplicador, R: Resultado de la multiplicacin.

PSEUDOCODIGO

DIAGRAMA DE FLUJO

Inicio
X1
mientras (X <= 5) hacer
Y1
mientras Y <=10 hacer
RX*Y
escribir R
YY+1
fin_mientras
XX+1
fin_mientras
fin

31

MANUAL DE PROGRAMACIN EN C++

EJEMPLO 5:
Se tiene un grupo de 20 alumnos, se necesita calcular y escribir el promedio de las notas
de cada uno, sabiendo que cada alumno tiene 5 notas.
Variables: A: Variable de ciclo externo (numero de alumnos), N: Variable del ciclo interno
(cantidad de notas), NO: Nota, SNO: Suma de notas, PROM: Promedio

PSEUDOCODIGO

DIAGRAMA DE FLUJO

Inicio
para A 1, 20, 1 haga
N1
SNO 0
mientras (N<=5) hacer
Leer NO
SNO SNO + NO
N N +1
fin_mientras
PROM SNO/5
escribir PROM
fin_para
fin

32

Vous aimerez peut-être aussi