semana4_PA_2015_II__20403__

20
Principios de Algoritmo Semana 5 Docente: Carlos Jara Alva

description

semana4_PA_2015_II__20403__

Transcript of semana4_PA_2015_II__20403__

Page 1: semana4_PA_2015_II__20403__

Principios de Algoritmo

Semana 5

Docente: Carlos Jara Alva

Page 2: semana4_PA_2015_II__20403__

Estructuras repetitivas

• Las computadoras están especialmente diseñadas para todas aquellas aplicaciones en las cuales una operación o conjunto de ellas deben repetirse muchas veces. Un tipo muy importante de estructura es el algoritmo necesario para repetir una o varias acciones un numero determinado de veces.

Page 3: semana4_PA_2015_II__20403__

Estructuras repetitivas

• Las estructuras que repiten una secuencia de instrucciones un numero determinado de veces de denominan bucles y se denomina iteración al hecho de repetir la ejecución de una secuencia de acciones.

Page 4: semana4_PA_2015_II__20403__

Sintaxis

Inicio

//inicializacion de variables

Repetir

acciones s1, s2,…

salir según condición

acciones sn, sn+1

Fin_repetir

Page 5: semana4_PA_2015_II__20403__

Estructura mientras (while)

• La estructura repetitiva mientras, es aquella en que el cuerpo del bucle se repite mientras se cumple una determinada condición. Cuando se ejecuta la instrucción mientras, la primera cosa que sucede es que se evalúa la condición. Si se evalúa que es falsa, no se toma ninguna acción y el programa prosigue. Si es verdadera, entonces se ejecuta el cuerpo del bucle.

Page 6: semana4_PA_2015_II__20403__

Sintaxis mientras

Page 7: semana4_PA_2015_II__20403__

Ejemplo 1

• Contar los números enteros positivos introducidos por teclado. Se consideran dos variables enteras numero y contador (contara el numero de enteros positivos). Se supone que se leen numero positivos y se detiene el bucle cuando se lee un numero negativo o cero.

Page 8: semana4_PA_2015_II__20403__

Algoritmo cuenta_enteros

Entero: numero, Contador

Inicio

Contador 0

Leer (numero)

Mientras numero > 0 hacer

Leer (numero)

Contador Contador + 1

Fin_mientras

Escribir ‘El numero de enteros positivos es:’, Contador

fin

Page 9: semana4_PA_2015_II__20403__

Explicación del ejercicioContador 0 : inicializar contador a 0

Leer numero : leer primer numero

Mientras numero > 0 hacer: comprobar si numero > 0. si es así, continuar con el paso 4, sino continuar con el paso 7.

Sumar 1 al contador: incrementar contador

Leer numero: leer el siguiente numero

Regresar al paso 3

Escribir contador

Page 10: semana4_PA_2015_II__20403__

Ejecución de un bucle cero veces

Inicio

n 5

s 0

Mientras n<4 hacer

leer x

s s + x

Fin_mientras

fin

En este ejemplo se aprecia que nunca se cumplirá la condición, por lo cual se ejecutara la acción fin, y no se ejecutara ninguna acción del bucle.

Page 11: semana4_PA_2015_II__20403__

Ejemplo 2:

 algoritmo Numeros_del_1_al_10 entero contador

 inicio    contador ← 1   /* Inicialización del contador */    hacer       escribir( contador )         /* Salida */       contador ← contador + 1     /* Incremento */    mientras ( contador <= 10 )     /* Condición */ fin

Page 12: semana4_PA_2015_II__20403__

Explicación del ejercicio:• En primer lugar, se le asigna el valor 1 a contador (acción

1).• A continuación, se ejecuta el bloque de instrucciones del

bucle hacer... mientras, mostrándose por pantalla el valor de contador (acción 2) y, después, se incrementa en 1 el valor de la variable contador (acción 3).

• Una vez ejecutado el bloque de instrucciones, se evalúa la condición de salida del bucle ( contador <= 10 ) (acción 4) y, puesto que, es verdadera, se ejecuta, de nuevo, el bloque de instrucciones.

• Y así sucesivamente, mientras que, la condición sea verdadera, o dicho de otro modo, hasta que, la condición sea falsa.

• En este algoritmo, el bloque de instrucciones del bucle se ejecuta diez veces (iteraciones).

Page 13: semana4_PA_2015_II__20403__

Ejemplo 3:

Se quiere diseñar el algoritmo de un programa que:

• Pida por teclado un número (dato entero).

• Pregunte al usuario si desea introducir otro o no.

• Repita los pasos 1º y 2º, mientras que, el usuario no responda 'n' de (no).

• Muestre por pantalla la suma de los números introducidos por el usuario.

Page 14: semana4_PA_2015_II__20403__

 algoritmo Suma_de_numeros_introducidos_por_el_usuario caracter seguir entero acumulador, numero

 inicio    /* En acumulador se va a guardar la suma de los números introducidos por el usuario. */    acumulador ← 0hacer    escribir( "Introduzca un número entero: " )    leer( numero )    acumulador ← acumulador + numero    escribir( "¿Desea introducir otro número (s/n)?: " )    leer( seguir )mientras ( seguir <> 'n' )    /* Mientras que el usuario desee introducir más números, el bucle iterará. */escribir( "La suma de los números introducidos es: ",acumulador )fin

Page 15: semana4_PA_2015_II__20403__

Diferencias entre un bucle mientras y un

bucle hacer...mientras

Page 16: semana4_PA_2015_II__20403__

Ejemplo 4.

Hacer un algoritmo que lea 5 números y determine la suma entre ellos.

INICIO

ENTERO: N, i, SUMA

i=1

SUMA=0

MIENTRAS(i <=5) HAGA

MOSTRAR( 'DIGITE UN NUMERO')

LEER (N)

SUMA= SUMA+N

i= i+1

FIN MIENTRAS

MOSTRAR ('LA SUMA ES:', SUMA)

FIN

Page 17: semana4_PA_2015_II__20403__

Ejemplo 6:Modificar el anterior algoritmo para que obtenga el promedio de los 5 números.

INICIO

ENTERO: N,i, SUMA

REAL: PROMEDIO

i=1

SUMA=0

MIENTRAS (i <=5) HAGA

MOSTRAR ('DIGITE UN NUMERO')

LEER (N)

SUMA=SUMA+N

i=i+1

PROMEDIO=SUMA/5

FIN MIENTRAS.

MOSTRAR ('EL PROMEDIO ES:', PROMEDIO)

FIN

Page 18: semana4_PA_2015_II__20403__

Ejemplo 7:Se quiere diseñar el algoritmo de un programa que:• Pida por teclado la nota (dato real) de una asignatura.• En el caso de que la nota sea incorrecta, muestre por

pantalla el mensaje: "ERROR: Nota incorrecta, debe ser >= 0 y <= 20".

• Repita los pasos 1º y 2º, mientras que, la nota introducida sea incorrecta.

• Muestre por pantalla: "APROBADO", en el caso de que la nota sea mayor o igual que 12. “DESAPROBADO", en el caso de que la nota sea menor que 12.

Page 19: semana4_PA_2015_II__20403__

 algoritmo Calificacion_segun_nota    real notainicio    escribir( "Introduzca nota (real): " )    leer( nota )    /* Si la primera nota introducida por el usuario es correcta, el bucle no itera ninguna vez. */    mientras ( nota < 0 o nota > 20 )       escribir( "ERROR: Nota incorrecta, debe ser >= 0 y <= 20" )       escribir( "Introduzca nota (real): " )       leer( nota )    fin_mientras   /* Mientras que el usuario introduzca una nota incorrecta, el bucle iterará. Y cuando introduzca una nota correcta, el bucle finalizará. */   si ( nota >= 12 )       escribir( "APROBADO" )    sino       escribir( "SUSPENDIDO" )    fin_si fin

Page 20: semana4_PA_2015_II__20403__

Ejemplo 8:Realizar un algoritmo para sumar consecutivamente y cuando la suma sea superior a 100 deje de pedir números y muestre el total.

INICIO

ENTERO: N SUMA

SUMA=0

MIENTRAS(SUMA<=100)

MOSTRAR ('DIGITE UN NUMERO')

LEER(N)

SUMA=SUMA+N

FIN MIENTRAS

MOSTRAR ('LA SUMA ES:', SUMA)

FIN