c++clase2-ABRIL-2015-I-Segunda parte - copia
description
Transcript of c++clase2-ABRIL-2015-I-Segunda parte - copia
![Page 1: c++clase2-ABRIL-2015-I-Segunda parte - copia](https://reader036.fdocuments.co/reader036/viewer/2022062222/5695d1171a28ab9b02951773/html5/thumbnails/1.jpg)
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](https://reader036.fdocuments.co/reader036/viewer/2022062222/5695d1171a28ab9b02951773/html5/thumbnails/2.jpg)
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](https://reader036.fdocuments.co/reader036/viewer/2022062222/5695d1171a28ab9b02951773/html5/thumbnails/3.jpg)
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](https://reader036.fdocuments.co/reader036/viewer/2022062222/5695d1171a28ab9b02951773/html5/thumbnails/4.jpg)
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](https://reader036.fdocuments.co/reader036/viewer/2022062222/5695d1171a28ab9b02951773/html5/thumbnails/5.jpg)
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](https://reader036.fdocuments.co/reader036/viewer/2022062222/5695d1171a28ab9b02951773/html5/thumbnails/6.jpg)
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](https://reader036.fdocuments.co/reader036/viewer/2022062222/5695d1171a28ab9b02951773/html5/thumbnails/7.jpg)
• 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](https://reader036.fdocuments.co/reader036/viewer/2022062222/5695d1171a28ab9b02951773/html5/thumbnails/8.jpg)
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](https://reader036.fdocuments.co/reader036/viewer/2022062222/5695d1171a28ab9b02951773/html5/thumbnails/9.jpg)
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](https://reader036.fdocuments.co/reader036/viewer/2022062222/5695d1171a28ab9b02951773/html5/thumbnails/10.jpg)
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](https://reader036.fdocuments.co/reader036/viewer/2022062222/5695d1171a28ab9b02951773/html5/thumbnails/11.jpg)
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](https://reader036.fdocuments.co/reader036/viewer/2022062222/5695d1171a28ab9b02951773/html5/thumbnails/12.jpg)
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](https://reader036.fdocuments.co/reader036/viewer/2022062222/5695d1171a28ab9b02951773/html5/thumbnails/13.jpg)
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](https://reader036.fdocuments.co/reader036/viewer/2022062222/5695d1171a28ab9b02951773/html5/thumbnails/14.jpg)
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](https://reader036.fdocuments.co/reader036/viewer/2022062222/5695d1171a28ab9b02951773/html5/thumbnails/15.jpg)
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](https://reader036.fdocuments.co/reader036/viewer/2022062222/5695d1171a28ab9b02951773/html5/thumbnails/16.jpg)
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](https://reader036.fdocuments.co/reader036/viewer/2022062222/5695d1171a28ab9b02951773/html5/thumbnails/17.jpg)
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](https://reader036.fdocuments.co/reader036/viewer/2022062222/5695d1171a28ab9b02951773/html5/thumbnails/18.jpg)
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](https://reader036.fdocuments.co/reader036/viewer/2022062222/5695d1171a28ab9b02951773/html5/thumbnails/19.jpg)
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](https://reader036.fdocuments.co/reader036/viewer/2022062222/5695d1171a28ab9b02951773/html5/thumbnails/20.jpg)
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](https://reader036.fdocuments.co/reader036/viewer/2022062222/5695d1171a28ab9b02951773/html5/thumbnails/21.jpg)
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](https://reader036.fdocuments.co/reader036/viewer/2022062222/5695d1171a28ab9b02951773/html5/thumbnails/22.jpg)
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](https://reader036.fdocuments.co/reader036/viewer/2022062222/5695d1171a28ab9b02951773/html5/thumbnails/23.jpg)
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](https://reader036.fdocuments.co/reader036/viewer/2022062222/5695d1171a28ab9b02951773/html5/thumbnails/24.jpg)
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](https://reader036.fdocuments.co/reader036/viewer/2022062222/5695d1171a28ab9b02951773/html5/thumbnails/25.jpg)
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](https://reader036.fdocuments.co/reader036/viewer/2022062222/5695d1171a28ab9b02951773/html5/thumbnails/26.jpg)
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](https://reader036.fdocuments.co/reader036/viewer/2022062222/5695d1171a28ab9b02951773/html5/thumbnails/27.jpg)
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](https://reader036.fdocuments.co/reader036/viewer/2022062222/5695d1171a28ab9b02951773/html5/thumbnails/28.jpg)
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](https://reader036.fdocuments.co/reader036/viewer/2022062222/5695d1171a28ab9b02951773/html5/thumbnails/29.jpg)
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.