29
ALGORITMOS Y LENGUAJES DE PROGRAMACION CAPITULO II D I S E Ñ O D E A L G O R I T M O S PROCESOS REPETITIVAS

c++clase2-ABRIL-2015-I-Segunda parte - copia

Embed Size (px)

DESCRIPTION

algoritmos

Citation preview

Page 1: c++clase2-ABRIL-2015-I-Segunda parte - copia

ALGORITMOS Y LENGUAJES DE

PROGRAMACION CAPITULO II

D I S E Ñ O D E A L G O R I T M O S

PROCESOS REPETITIVAS

Page 2: c++clase2-ABRIL-2015-I-Segunda parte - copia

La ciencia e ingeniería requieren resolver problemas donde la capacidad de repetición de un mismo cálculo o secuencia de Instrucciones/sentencias, una y otra vez, se hacen necesarios.

PSEUDOCÓDIGO

Page 3: c++clase2-ABRIL-2015-I-Segunda parte - copia

Los Procesos Repetitivos incluyen la verificación continua de las entradas de datos al algoritmo hasta que se ingrese, una contraseña válida; contar y acumular totales; y la aceptación constante de datos de entrada y el recálculo de valores de salida que sólo se detiene al ingresar un valor centinela.

PSEUDOCÓDIGO

Page 4: c++clase2-ABRIL-2015-I-Segunda parte - copia

La secuencia de sentencias que se repiten en la solución de un problema se conoce como ciclo repetitivo.

Los procesos repetitivos requieren dos tipos especiales de variables: contadores y acumuladores.

PSEUDOCÓDIGO

Page 5: c++clase2-ABRIL-2015-I-Segunda parte - copia

ContadoresSon variables que se inicializan en un valor constante y se incrementan o disminuyen su valor en una cantidad constante durante el proceso.

PSEUDOCÓDIGO

contador 1; contador contador +1;

Page 6: c++clase2-ABRIL-2015-I-Segunda parte - copia

AcumuladoresSon variables que se usan para incrementar o disminuir su valor en una cantidad variable, su valor debe ser inicializado.

PSEUDOCÓDIGO

suma 0 ;suma suma + n ;

Page 7: c++clase2-ABRIL-2015-I-Segunda parte - copia

• Mientras (expresión lógica) Hacer • Repetir Hasta Que(expresión lógica)

• Para Vc <- 1 hasta 5 Hacer

PSEUDOCÓDIGO

Hay tres formas de representar las sentencias de los procesos repetitivos:

Page 8: c++clase2-ABRIL-2015-I-Segunda parte - copia

Mientras (expresión lógica) Hacer Sentencia (s)

finmientras

( expresión lógica)

PROCESO REPETITIVOsecuencia de sentencias

FIN

Verdad

Falso

PSEUDOCODIGO

CICLOS CONTROLADOS EN LA ENTRADA

a) SENTENCIA REPETIR : MIENTRAS - HACER

CICLO

REPETITIVO

Page 9: c++clase2-ABRIL-2015-I-Segunda parte - copia

PSEUDOCODIGO

Una sentencia mientras contiene una condición que controla

la ejecución de un proceso formado por una o más sentencias,

dicho proceso se ejecutará

repetidamente si la condición ( i > 0) es verdad.

La condición contenida dentro del paréntesis es la condición evaluada para determinar si se ejecutará el proceso repetitivo (sentencias que siguen a la condición evaluada).

a) SENTENCIA REPETIR : MIENTRAS HACER

Page 10: c++clase2-ABRIL-2015-I-Segunda parte - copia

PSEUDOCODIGO

i). La repetición condicional de cero ciclos

Si la primera evaluación de la condición es falsa, entonces la repetición no se

ejecutará nunca.

ii) Repetición indefinida de la secuencia de sentencias.

La repetición indefinida que nunca se termina se denomina ciclo indefinido o sin fin,

para evitar dichos ciclos indefinidos se debe estipular una SENTENCIA que permita alterar el valor de la expresión lógica probada en el proceso repetitivo.

iii) Finalización de bucles con datos de entrada. El método más correcto para terminar un bucle que lee una lista de valores es un

centinela. Un valor centinela es un valor especial usado para indicar el final de una lista de datos.

a) SENTENCIA REPETIR : MIENTRAS HACER

Page 11: c++clase2-ABRIL-2015-I-Segunda parte - copia

CONSTRUCCION DE ALGORITMOS

PROBLEMA N°8

Escribir un algoritmo que lea un número enteros

positivos “n” y luego imprima su factorial.

Page 12: c++clase2-ABRIL-2015-I-Segunda parte - copia

CONSTRUCCION DE ALGORITMOS

Proceso Problema8Leer n;

fact <- 1;

MIENTRAS n > 0 Hacer fact <- fact * n;

n <- n - 1;FinMientras Escribir "El factorial de n es: " , fact;

FinProceso

Page 13: c++clase2-ABRIL-2015-I-Segunda parte - copia

REPETIR Secuencia de sentencias HASTAQUE (condición) sea

verdad

INICIO

Expresión lógica

PROCESO REPETITIVO:

secuencia

de

sentencias

Verdad

Falso

FIN

PSEUDOCODIGO

CICLO CONTROLADO A LA SALIDA

b) SENTENCIA REPETIR : REPETIR HASTA-QUE

La sentencia HASTA QUEEjecuta una secuencia de instrucciones hasta que la condición sea verdad.

CICLO

Page 14: c++clase2-ABRIL-2015-I-Segunda parte - copia

PSEUDOCODIGO

La condición es una expresión lógica, el valor que representa sólo puede ser verdadero o falso.

Se repite una secuencia de sentencias HASTA QUE la condición tome un valor de verdad.

El ciclo se ejecuta por lo menos una vez porque la condición se evalúa después de la ejecución de cada iteración ó proceso repetitivo.

b) SENTENCIA REPETIR: REPETIR HASTA -QUE

Page 15: c++clase2-ABRIL-2015-I-Segunda parte - copia

CONSTRUCCION DE ALGORITMOS

PROBLEMA N°9 Diseñar un algoritmo que permita calcular

la suma acumulada de la serie : 1+2+3+4+….+n

El usuario ingresa el numero de términos a sumar.

Page 16: c++clase2-ABRIL-2015-I-Segunda parte - copia

CONSTRUCCION DE ALGORITMOS

Proceso Problema9

Leer n;contador <- 1;suma <- 0; // acumulador

Repetir suma <- suma + contador; contador <- contador + 1;

Hasta Que ( n < contador)Escribir " La suma es:" , suma ;

FinProceso

Page 17: c++clase2-ABRIL-2015-I-Segunda parte - copia

CONSTRUCCION DE ALGORITMOS

PROBLEMA N°10

Escribir un algoritmo para calcular la suma y el número de términos que hay en la

siguiente progresión aritmética: 5,8,11,14,17,20,23,….n

El usuario ingresa el numero de términos a sumar.

Page 18: c++clase2-ABRIL-2015-I-Segunda parte - copia

INICIO

PROCESO REPETITIVO

Falso

Verdad

FIN

Vc Vi hasta Vf Inc

PSEUDOCODIGO

c) SENTENCIA REPETITIVA: PARA

ciclo

La sentencia PARA se utiliza para implementar un ciclo que se repite un número definido de veces.

Donde:Vc: variable de control Vi: valor inicialVf: valor finalInc: incremento

Page 19: c++clase2-ABRIL-2015-I-Segunda parte - copia

Para Vc Vi hasta Vf (con Inc) Hacer sentencia1 sentencia2 sentencia3FinPara

PSEUDOCODIGO

c) SENTENCIA REPETITIVA : PARA

cIclo

Page 20: c++clase2-ABRIL-2015-I-Segunda parte - copia

PSEUDOCODIGO

c) SENTENCIA REPETIR: PARALa sentencia Para tiene los siguientes elementos:

Vc: es la variable de control de la estructura repetitiva y actúa como un contador.

Vi: es el valor inicial que inicializa la variable de control (número de repeticiones) de la estructura repetitiva.

Inc: es el elemento de incremento que aumenta o disminuye la variable de control (contador) cada vez que se ejecuta el ciclo.

Page 21: c++clase2-ABRIL-2015-I-Segunda parte - copia

CONSTRUCCION DE ALGORITMOS

PROBLEMA N° 11

Escribir un algoritmo que lea un número enteros positivos “n” y luego

imprima su factorial.

Page 22: c++clase2-ABRIL-2015-I-Segunda parte - copia

CONSTRUCCION DE ALGORITMOS

Proceso Problema11Leer n;factorial <- 1;

Para i <- 1 hasta n Hacer factorial<- factorial * i;

FinPara Escribir " El Factorial de N es = ", factorial ;

FinProceso

Page 23: c++clase2-ABRIL-2015-I-Segunda parte - copia

CONSTRUCCION DE ALGORITMOS

** Ejecución Iniciada. *** 5

El Factorial de N es = 120** Ejecución Finalizada. ***

Page 24: c++clase2-ABRIL-2015-I-Segunda parte - copia

CONSTRUCCION DE ALGORITMOS

PROBLEMA N° 12

Escribir un algoritmo para leer el sueldo de 10 trabajadores, calcule el promedio de los sueldos, además imprimir el sueldo

más alto.

Page 25: c++clase2-ABRIL-2015-I-Segunda parte - copia

PSEUDOCODIGO

c) SENTENCIA REPETIR: PARA

Los CICLOS ANIDADOS son utilizados cuando un ciclo Para interior esta contenido dentro de otro ciclo exterior.

Para i 1 hasta 5 // inicio del ciclo exteriorEscribir “i toma el valor de”, i; Para j 1 hasta 4 // inicio del ciclo interior* j

Escribir “ j = “, j ; FinParaFinpara // fin del ciclo exterior *i

Page 26: c++clase2-ABRIL-2015-I-Segunda parte - copia

F

PSEUDOCODIGO

c) SENTENCIA REPETIR : PARA

La salida del algoritmo sería la siguiente:

i toma el valor de 1 // ciclo exterior

j = 1, j = 2, j = 3, j = 4 // ciclo interior j

i toma el valor de 2

j = 1, j = 2, j = 3, j = 4 // ciclo interior j

Page 27: c++clase2-ABRIL-2015-I-Segunda parte - copia

Estructuras Repetitivas AnidadasEs posible insertar un bucle dentro de otro. La estructura Interna debe estar incluida totalmente dentro de la externay no puede existir solapamiento.

BUCLE ANIDADO CORRECTAMENTE

BUCLE ANIDADO INCORRECTAMENTE

PSEUDOCÓDIGO

Page 28: c++clase2-ABRIL-2015-I-Segunda parte - copia

CONSTRUCCION DE ALGORITMOS

PROBLEMA N° 13

Diseñar un programa que permita determinar el promedio de cinco

prácticas luego de eliminar la menor nota.

Page 29: c++clase2-ABRIL-2015-I-Segunda parte - copia

CONSTRUCCION DE ALGORITMOS

PROBLEMA N°14Escribir un algoritmo que lea un número

compuesto por más un dígito y luego muestre:

total de dígitos, total de dígitos pares e impares,

número invertido, total de suma de dígitos pares e impares

respectivamente.