P. 1
Ejemplo de While Con Diagrama de Flujo

Ejemplo de While Con Diagrama de Flujo

|Views: 11.951|Likes:
Publicado poreliannyprimera

More info:

Published by: eliannyprimera on Jan 24, 2012
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as ODT, PDF, TXT or read online from Scribd
See more
See less

08/16/2013

pdf

text

original

Estructura de Datos :Repetitivas y Secuencial • Estructuras Repetitivas Las estructuras repetitivas o iterativas son aquellas en las que las

acciones se ejecutan un número determinado de veces y dependen de un valor predefinido o el cumplimiento de una determinada acción. Características • Las estructuras repetitivas permiten representar aquellas acciones que pueden descomponerse en otras sub-acciones primitivas. • Es una estructura con una entrada y una salida en la cual se repite una acción un número determinado o indeterminado de veces • En una Estructura Repetitiva Mientras (While) se repite una acción mientras se cumpla la condición que controla el bucle. La característica principal de esta estructura es lque la condición es evaluada siempre antes de cada repetición. • La estructura repetitiva Desde(FOR) permite que las instrucciones las cuales contiene en su ámbito, se ejecuten un número de veces determinado. Entre las estructuras repetitivas se encuentran: Mientras (while) Repetir (repeat) Estructura Mientras (while) La estructura repetitiva while, es aquélla en que el cuerpo del bucle se repite mientras se cumple una determinada condición, su representación gráfica es:

Pseudocódigo en español Mientras condición hacer Acción S1 Acción S2 : acción Sn

Pseudocódigo en inglés while condición do <Acciones> : End_while

Ejemplo: Contar los números enteros positivos introducidos por teclado. contador) Fin Diagrama de Flujo – 1er. Ejemplo contador+1 . Se consideran dos variables enteras NUMERO y CONTADOR (contará el número de enteros positivos). Pseudocódigo Inicio contador 0 Leer (numero) Mientras numero > 0 hacer contador Leer (numero) Fin_Mientras Escribir('El número de enteros positivos es : '. Se supone que se leen números positivos y se detiene el bucle cuando se lee un número negativo o cero.Fin_mientras Diagrama N-S 1er.

Ejemplo Se presenta algoritmo para el cálculo de la sumatoria de los n primeros términos de la siguiente serie: 1*2*3 + 2*3*4 + 3*4*5 + 4*5*6 //WHILE_ #include <iostream. cout << "Digite el valor de N: ". float termino.h> #include <conio. clrscr(). cout << "\n".h> main(){ int i=0. while( i<n ){ i = i + 1. n.2do. suma=0. . cin >> n.

} cout << "\nSumatoria = " << suma. Pseudocódigo en Español Pseudocódigo en Inglés Repetir Repeat <acciones> : Hasta que <condición> Until <condición> Diagrama de Flujo de Repetir <acciones> : 1 er . Declaración de variables Cadena : nom entero : x. indicando el número de repetición. El bucle repetir-Hasta_que se repite mientras el valor de la expresión booleana de la condición sea falsa.Ejemplo : Preguntar un nombre y repetirse en pantalla tantas veces como se desee. justo la opuesta de la sentencia mientras.termino = i * (i+1) * (i+2). n Inicio escribir(‘Nombre : ‘) leer(nom) . Se ejecuta al menos una vez. suma = suma + termino. (preguntar cantidad de repeticiones). } Estructura Repetir (repeat) Esta estructura se ejecuta hasta que se cumpla una condición determinada que se comprueba hasta el final del bucle. cout << i << " * " << i+1 << " * " << i+2 << " = " << termino << endl.

Se inicializan los parámetros. Ejemplo Construir un programa que sume todos los números que introduce el usuario hasta que introduzca el número cero. fin mientras. representa una condición que debe ser satisfecha para que se continúe la ejecución del bucle. modifica el valor del parámetro inicialmente asignado por la expresión La ejecución de la sentencia for sucede de la siguiente forma: 1. La forma general de esta sentencia es: for (expresión 1. se debe usar la estructura desde o para. inicializa algún parámetro (llamado índice) que controla la repetición del bucle. otra expresión que determina cuando se continúa o no el bucle y una tercera expresión que permite que el índice se modifique al final de cada pasada. 2. expresión 3) sentencia en donde expresión 1 (expresión de asignación). mostrar ("La suma acumulada es: ". la ejecución de la sentencia for se da por finalizada y se continúa en la siguiente sentencia del programa. 2. Estructura Desde/Para (for) Esta sentencia incluye una expresión que especifica el valor inicial de un índice. En muchas ocasiones se conoce de antemano el número de veces que se desean ejecutar las acciones de un bucle. Se evalúa la expresión lógica. Si el resultado de 2. La estructura Desde ejecuta las acciones del cuerpo del bucle un número específico de veces y de modo . mientras numero > 0 repetir comienzo suma_acumulada := suma_acumulada + numero. es cero (falso). expresión 3 (expresión monaria o expresión de asignación). En estos casos en el que el número de iteraciones es fija. 2.. /* declaraciones */ float numero. Si el resultado es distinto de cero (verdadero). leer (numero). nom) Fin 2do. /*instrucciones*/ comienzo /* inicialización */ suma_acumulada := 0. leer (numero). se evalúa la expresión que da lugar a la progresión de la condición y se vuelve al punto 2. suma_acumulada. se ejecuta la sentencia. expresión 2.1.escribir(‘Cuántas veces quieres repetirlo ? : ‘) leer(n) para x 1 hasta n hacer escribir(x’.2. expresión 2 (expresión lógica). fin.‘. suma_acumulada).

automático controla el número de iteraciones o pasos a través del cuerpo del bucle. vf: Valores inicial y final de la variable Diagrama de Flujo de la estructura Desde/Para <acciones> . Pseudocódigo en Español Pseudocódigo en Inglés Desde variable(v)= vi Hasta vf hacer For variable (v)= vi To vf Do <acciones> : Fin_desde Donde: v: Variable índice vi.

) { cout << setw(5) << i. i = 0. con variantes de la instrucción FOR. i<=50. i++) cout << setw(5) << i. . ) { i++.1er.h> main(){ int i=1. //FOR_ #include <iostream. cout << "\n\n".h> #include <conio. } cout << "\n\n". for( . cout << setw(5) << i. cout << "\n\n".h> #include <iomanip. . i++) cout << setw(5) << i. i++. for( . i<50. } cout << "\n\n". i<=50. ) { i ++. i<=50. i = 0. for(i=1 . for( .Ejemplo Cuenta del 1 al 50 varias veces. clrscr(). for(i=1.

} getch(). Ejemplo Expansión binomial: n n-i i (a+b)_ = S ( n! / (i!×(n-i)!))×a × b i=0 El siguiente algoritmo muestra en pantalla los coeficientes de la expansión binomial para un N dado por teclado: //FOR_5. i++) f = f * i. return f.h> float factorial(int numero){ int i. float f=1.if (i > 50) break.} 2do. cin >> n. b. a. .CPP #include <iostream. } main(){ int n. cout <<"\n". coeficiente. i. cout<<"Digite exponente(n) para calcular coeficientes del binomial (a+b)_: ". i<=numero. else cout << setw(5) << i. clrscr(). for(i=1.h> #include <conio.

Características • La estructura secuencial tiene una entrada y una salida. • Un programa puede contener simplemente una secuencia de instrucciones. i++) { coeficiente = factorial(n) / (factorial(i)*factorial(n-i)).for(i=0. Ejemplo : Calcular el salario neto de un trabajador en función del número de horas trabajadas. Pseudocódigo De Una Estructura Secuencial Inicio : : acciones : fin 1er. • Es aquella que ejecuta las acciones sucesivamente unas a continuación de otras sin posibilidad de omitir ninguna y naturalmente. } • Estructura Secuencial • Es aquélla en la que una acción (instrucción) sigue a otra en secuencia.. sin bifurcaciones. Las tareas se suceden de tal modo que la salida de una es la entrada de la siguiente y así sucesivamente hasta el fin del proceso. precio de la . cout << coeficiente << " ". i<=n. return 0.. } getch(). • Su representación gráfica es la siguiente: Estructura Secuencial ..

horas. Cada uno de los estudiantes cursó dos asignaturas. Ejemplo Suponga que un curso estaba compuesto de tres estudiantes.hora de trabajo y considerando unos descuentos fijos al sueldo bruto en concepto de impuestos (20 por 100). Ejemplo 2do. salario_neto Fin Diagrama de flujo – 1er. Se deben leer inicialmente los nombres de los tres estudiantes. precio_hora salario_bruto horas * precio impuestos 0. salario_bruto.20 * salario_bruto salario_neto salario_bruto_impuestos escribir nombre. Pseudocódigo Inicio {cálculo salario neto} leer nombre. los nombres de las dos asignaturas y luego: las calificaciones definitivas de cada una de las dos asignaturas para cada uno de . salario_neto_bruto.

INICIO CARACTER Asignatura1[10]. Estudiante1[15]. Asignatura2. la nota promedio de cada uno de los tres estudiantes. Asignatura1. Asignatura1. 2. ": ") Leer(Est2Asig2) . Asignatura2. Est3Asig1. Escribir("Digite Nombre asignatura 1: ") Leer(Asignatura1) Escribir("Digite Nombre asignatura 2: ") Leer(Asignatura2) Escribir("Digite Nombre estudiante 1: ") Leer(Estudiante1) Escribir("Digite Nombre estudiante 2: ") Leer(Estudiante2) Escribir("Digite Nombre estudiante 3: ") Leer(Estudiante3) //A continuación se pedirá digitar las 3 * 2 = 6 calificaciones Escribir("Digite Calificaciones de ". la nota promedio de cada una de las asignaturas. PromedioAsignatura2. Est2Asig2. Estudiante3[15]. ": ") Leer(Est2Asig1) Escribir("En la asignatura de ". REAL Est1Asig1. Est1Asig2. 2. Estudiante2 ": ") Escribir("En la asignatura de ". Estudiante1. Est2Asig1.los tres estudiantes. Est3Asig2. ": ") Leer(Est1Asig2) Escribir("Digite Calificaciones de ". ": ") Leer(Est1Asig1) Escribir("En la asignatura de ". PromedioAsignatura1. Calcular: 1. Estudiante2[15]. ":") Escribir("En la asignatura de ". Asignatura2[10].PromedioEstudiante2. PromedioEstudiante3. PromedioEstudiante1.

" = ".Escribir("Digite Calificaciones de ". Estudiante2. Ejemplo En unas elecciones se presentan tres candidatos. PromedioEstudiante2) Escribir("Promedio ". 3er. PromedioAsignatura1) Escribir("Promedio estudiantes en ". . Estudiante3. Asignatura1. " = ". VotosCandidato2. Estudiante1. ": ") Leer(Est3Asig1) Escribir("En la asignatura de ". "=". Estudiante3. Asignatura2. "=". Se tienen en cuenta los votos en blanco y la población electoral total. " = ". VotosEnBlanco. ": ") Escribir("En la asignatura de ". a continuación se presenta algoritmo para calcular estadísticas elementales de la elección. Candidato2[15]. ": ") Leer(Est3Asig2) //A continuación los cálculos necesarios PromedioEstudiante1 = (Est1Asig1 + Est1Asig2) / 2 PromedioEstudiante2 = (Est2Asig1 + Est2Asig2) / 2 PromedioEstudiante3 = (Est3Asig1 + Est3Asig2) / 2 PromedioAsignatura1 = (Est1Asig1 + Est2Asig1 + Est3Asig1) / 3 PromedioAsignatura2 = (Est1Asig2 + Est2Asig2 + Est3Asig2) / 3 Escribir("Promedio estudiantes en ". VotosCandidato3. PromedioEstudiante3) FIN. Asignatura2. Candidato3[15] REAL VotosCandidato1. PromedioAsignatura2) Escribir("Promedio ". A INICIO Constante REAL TotalCensoElectoral = 50000 CARACTER Candidato1[15]. Asignatura1. PromedioEstudiante1) Escribir("Promedio ".

Escribir("Digite Nombre candidato 1: ") Leer(Candidato1) Escribir("Digite Nombre candidato 2: ") Leer(Candidato2) Escribir("Digite Nombre candidato 3: ") Leer(Candidato3) Escribir("Digite votación de ". PorcentajeCandidato1. PorcentajeVotosEnBlanco. PorcentajeCiudadanosInconcientes. PorcentajeCiudadanosResponsables.TotalVotosEleccion. PorcentajeCandidato3. Candidato3. ": ") Leer(VotosCandidato2) Escribir("Digite votación de ". ": ") Leer(VotosCandidato3) Escribir("Digite votación en blanco ") Leer(VotosEnBlanco) //A continuación los cálculos necesarios TotalVotosEleccion = VotosCandidato1 + VotosCandidato2 + VotosCandidato3 + VotosEnBlanco PorcentajeCandidato1 = ( VotosCandidato1 / TotalVotosEleccion ) * 100 PorcentajeCandidato2 = ( VotosCandidato2 / TotalVotosEleccion ) * 100 PorcentajeCandidato3 = ( VotosCandidato3 / TotalVotosEleccion ) * 100 PorcentajeVotosEnBlanco = ( VotosEnBlanco / TotalVotosEleccion ) * 100 PorcentajeCiudadanosResponsables=(TotalVotosEleccion/TotalCensoElectoral)*100 PorcentajeCiudadanosInconcientes = 100 .PorcentajeCandidato2.PorcentajeCiudadanosResponsables . ": ") Leer(VotosCandidato1) Escribir("Digite votación de ". Candidato2. Candidato1.

"%") Escribir("NO votaron = ". La simbología utilizada para la elaboración de diagramas de flujo es variable y debe ajustarse a un patrón definido previamente. " = ".h> #include <stdlib. PorcentajeVotosEnBlanco) Escribir("Si votaron = ". Candidato3. PorcentajeCiudadanosInconcientes. factorial contador. mientras contador<numero. PorcentajeCandidato2) Escribir("Porcentaje ". 5. PorcentajeCiudadanosResponsables. A continuación se mostrara las simbologías mas utilizadas : Simbologia utilizada en los diagramas de flujo Símbolo función Ejemplo: Cálculo del Factorial de un Número Entero Anteriormente se analizó el diagrama de flujo para determinar el factorial de un número entero. en un principio cada usuario podría tener sus propios símbolos para representar sus procesos en forma de Diagrama de Flujo.Escribir("Porcentaje ". Candidato2.h> int main() { /* Este programa permite el calculo del factorial de un numero entero */ int numero. o lo que es en realidad se hicieron símbolos casi universales. " = ". Se les llama diagramas de flujo porque los símbolos utilizados se conectan por medio de flechas para indicar la secuencia de operación. Observe que un conjunto de instrucciones del diagrama de flujo se realizan en forma repetitiva mientras se satisface una condición. Dicho diagrama de flujo se muestra en la página siguiente. . los Símbolos se sometieron a una normalización . "%") FIN. los podía interpretar. PorcentajeCandidato3) Escribir("Porcentaje de votos en blanco = ". PorcentajeCandidato1) Escribir("Porcentaje ". contador = contador + 1. Para hacer comprensible los Diagramas a todas las personas .Se basan en la utilización de diversos símbolos para representar operaciones específicas. se ejecutarán las asignaciones: factorial = factorial * contador. Esto trajo como consecuencia que solo el que conocía sus símbolos. En este caso la condición es contador<numero. " = ". El programa en C++ correspondiente a este diagrama de flujo es: #include <iostream. Candidato1. Es decir. ya que . Flujograma: Definición Es un esquema para representar gráficamente un algoritmo .

cin>>numero. } cout<<”El factorial de ”<< numero<< “ es ”<<factorial << "\n".cout<< "Dame un numero entero \n". contador = 1. } Inicio numero factorial = 1 contador = 1 Falso contador < numero Verdadero factorial=factorial * contador contador=contador + 1 factorial Fin Nota Importante acerca de while y do-while . system("PAUSE"). factorial = 1. return 0. while (contador <= numero) { factorial = factorial * contador. contador = contador + 1 .

Mientras que el operador –. En ese caso se dice que se tiene un ciclo infinito. • Una de ellas es escribir comentarios. si al principio la expresión boleana es verdadera. las sentencias del ciclo se ejecutan por lo menos una vez. Por otro lado. de forma que. se pudo haber expresado como: contador++.(operador decremental). Por ejemplo a+b. en el programa del cálculo del factorial. En otras palabras. El operador ++ incrementa el valor de una variable en uno. lo primero que se evalúa es la expresión boleana y sólo si ésta es verdadera las sentencias del ciclo se ejecutarán. las sentencias while y do-while son equivalentes sólo si el ciclo se ejecuta al menos una vez. m--. . *. Estos operadores se aplican sobre una sola variable y se aplican sobre variables enteras. Es decir. dependiendo de la expresión boleana. la segunda sentencia del ciclo: contador = contador +1. La segunda sentencia hace que el valor de m disminuya en uno.disminuye el valor de una variable en uno. Por ejemplo: n++. Se introducen aquí los operadores conocidos como operadores unarios. Es decir. llegará un momento en que su valor cambia a falso. la primera vez se ejecutan las sentencias del cuerpo de la sentencia y es hasta entonces que se evalúa la expresión boleana. Operadores de Incremento y Decremento Hasta ahora. Este tipo de operadores se utilizan muy comúnmente en ciclos. Ciclos Infinitos Las sentencias while o do-while no terminan su ejecución hasta que la expresión boleana que se evalúa (entre paréntesis después de la palabra while) es falsa. a dichos operadores se le conocen como operadores binarios.Es importante mencionar que con la sentencia do-while. /) involucran dos operandos. etc. Por ello. El ciclo se repetirá sólo si la expresión boleana sigue teniendo el valor de verdadero. Por ejemplo. Los más comunes se representan como ++ (operador incremental) y –. mientras que en la sentencia while las sentencias del ciclo pudieran no ser ejecutadas ni una sola vez. x*y. Habrá que tener cuidado para evitar dicha situación. Por ello es que el ciclo contiene normalmente alguna asignación que permite cambiar el valor de verdad de la expresión boleana. las sentencias anteriores son equivalentes a: n = n + 1. La primera sentencia hace que el valor de n aumente en uno.1. aún la primera vez. los operadores aritméticos que se han estudiado (+. cuando se ejecuta una sentencia dowhile. -. Indentación Existen algunas recomendaciones básicas para lograr un buen estilo de programación. m= m . en la sentencia while. Son sentencias ejecutables de C++. Si la expresión boleana siempre es verdadera el ciclo continuará ejecutándose indefinidamente.

• • Otra es escribir en grupo a aquellos elementos que son considerados naturalmente como un grupo. . La tercera es que las sentencias encerradas entre las llaves de las sentencias compuestas if-else. while y do-while debería ser indentadas. Una forma de hacer esto es utilizar una nueva línea para separar aquellas sentencias que pueden considerarse como separadas. Esto contribuye en mucho a la claridad del programa.

Algoritmo : Representación Grafica : Inicio Leer A Leer B C=A+B Mostrar C Fin .Ejemplo de un Algoritmo sencillo con su respectivo Flujograma Considere un Algoritmo para leer dos números A y B luego sumarlos y por último imprimir o mostrar el resultado de la suma.

You're Reading a Free Preview

Descarga
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->