Unidad I. Algoritmos y Programas

Download Report

Transcript Unidad I. Algoritmos y Programas

Slide 1

Unidad I. Algoritmos y Programas
Estructuras de Control de Repetición
Las estructuras de control repetitivas permiten que un
grupo de acciones se repitan varias veces dentro del
algoritmo.

 Mientras
 Repetir
 Para

(Joyanes, 1998:149)


Slide 2

Unidad I. Algoritmos y Programas
Variables Auxiliares

CONTADOR: es una variable cuyo valor se incrementa o decrementa
en una cantidad constante en cada iteración.
Contador  Contador + Constante

ACUMULADOR: es una variable que almacena cantidades resultantes
de sumas sucesivas en cada iteración.
Acumulador  Acumulador + Variable

(Joyanes y Otros, 1999:296)


Slide 3

Unidad I. Algoritmos y Programas
Estructura Repetitiva Mientras

Formato
Mientras Expresión Lógica Hacer
Acción o Acciones
Fin Mientras

Funcionamiento
Mientras el resultado de la expresión lógica sea
Verdadero, se realizarán iteraciones donde se ejecutarán
las acciones encerradas en el cuerpo del bucle.
(Joyanes,1998:148)


Slide 4

Unidad I. Algoritmos y Programas
Estructura Repetitiva Mientras

SINTAXIS
while (Expresión Lógica )
{

sentencia o sentencias a ejecutar
}

Funcionamiento
Mientras el resultado de la expresión lógica sea
Verdadero, se realizarán iteraciones donde se ejecutarán
las acciones encerradas en el cuerpo del bucle.
(Joyanes,1998:148)


Slide 5

Unidad I. Algoritmos y Programas
Uso de Contadores y Acumuladores en Ciclos

Suma  0
Articulo  0

Estructura repetitiva para sumar
los precios de 3 artículos.

Mientras (Articulo < 3) Hacer
Articulo  Articulo + 1
Escribir “Introduzca Precio del Artículo # ”, Articulo
Leer Precio
Suma  Suma + Precio

Fin Mientras
Escribir “El resultado de la suma es = “, Suma


Slide 6

Unidad I. Algoritmos y Programas
Uso de Contadores y Acumuladores en Ciclos
Estructura repetitiva para sumar

include
los precios de 3 artículos,
using namespace std;
main()
codificado en c++
{
float Precio, Suma;
int Articulo;
Suma = 0;
//inicialización del acumulador, es obligatorio
Articulo = 0;
//inicialización del contador, es obligatorio
//la expresion logica del while, evalua que si van menos de 3 articulos procesados
while (Articulo < 3)
{
Articulo= Articulo + 1;
//incremento el contador de articulos
cout<< "Introduzca Precio del Artículo # "<cin>>Precio;
//se lee el precio del articulo en proceso
Suma = Suma + Precio; //se va guardando la suma de todos los precios
} //fin del while
cout<< "El resultado de la suma es = "<//endl hace igual funcion que \n
system("pause");
}


Slide 7

Unidad I. Algoritmos y Programas
Uso de Contadores y Acumuladores en Ciclos
CÓMO VALIDAR LA ENTRADA: SIMPLEMENTE UTILIZANDO UN CICLO QUE
ENCIERRE LA ENTRADA DE DATOS Y LA REPITA MIENTRAS QUE SE HAYA
COMETIDO UN ERROR, QUE EN ESTE CASO SERÍA, INTRODUCIR UN NUMERO
NEGATIVO. ENTONCES EL PSEUDOCÓDIGO QUEDARÍA ASÍ:
Escribir "Introduzca Precio del Artículo # “, Articulo
Leer Precio
Mientras (Precio< 0) Hacer
Escribir "Introduzca Nuevamente el Precio, dado que introdujo un valor negativo”
Leer Precio
Fin Mientras

LA CODIFICACIÓN EN C++ SERÍA:
cout << "Introduzca Precio del Artículo # “<< Articulo;
cin>> Precio;
while (Precio< 0) {
cout << "Introduzca Nuevamente el Precio, dado que introdujo un valor negativo”;
cin>> Precio;
}


Slide 8

Unidad I. Algoritmos y Programas
Uso de Contadores y Acumuladores en Ciclos
FÍJESE QUE EN EL EJERCICIO ANTERIOR, EL PRECIO QUE INTRODUCE EL
USUARIO, PUEDE SER NEGATIVO, SI QUEREMOS EVITAR ESTA
INCONSISTENCIA, PODEMOS VALIDAR EL DATO POR SU RANGO DE
VALORES.

CÓMO: SIMPLEMENTE UTILIZANDO UN CICLO QUE ENCIERRE LA ENTRADA DE
DATOS Y LA REPITA MIENTRAS QUE SE HAYA COMETIDO UN ERROR, QUE EN
ESTE CASO SERÍA, INTRODUCIR UN NÑUMERO NEGATIVO. ENTONCES EN EL
LENGUAJE, LA ENTRADA DE DATOS QUEDARÍA ASÍ:
cout << "Introduzca Precio del Artículo # “<< Articulo;
cin>> Precio;
while (Precio< 0) {
cout << "Introduzca Nuevamente el Precio, dado que introdujo un valor negativo”;
cin>> Precio;
}


Slide 9

Unidad I. Algoritmos y Programas
Estructura Repetitiva Repetir

Formato
Repetir
Acción o Acciones

Hasta Expresión Lógica

Funcionamiento
Repetir (realizar iteraciones) hasta que la
expresión lógica resulte Verdadero.


Slide 10

Unidad I. Algoritmos y Programas
Estructura Repetitiva Repetir

SINTAXIS

C NO DISPONE DE LA ACCION
REPETIR, PERO LA PODEMOS
SIMULAR CON LA SENTENCIA DOWHILE, NEGANDO LA EXPRESION
LOGICA USADA EN EL REPETIR

do {
Acción o Acciones
}while (! (Expresión Lógica) );

Funcionamiento
Repetir (realizar iteraciones) mientras que la
expresión lógica resulte Verdadero.


Slide 11

Unidad I. Algoritmos y Programas
Ejemplo con Estructura Repetir
Validación de un dato de entrada:
Repetir
Escribir “Introduzca la nota a procesar [0..10]:”
Leer nota
Hasta ((nota >=0) Y (nota <= 10))
Repetir
Escribir “Introduzca la nota a procesar [0..10]:”
Leer nota
Si ((nota < 0) O (nota > 10)) Entonces
Escribir “Error, la nota está fuera del rango.”
Fin Si
Hasta ((nota >=0) Y (nota <= 10))


Slide 12

Unidad I. Algoritmos y Programas
Ejemplo con Estructura Repetir
Validación de un dato de entrada en c++
#include
using namespace std;
main()
{
float nota;
do {
cout << "Introduzca la nota a procesar [0..10]:"<cin >> nota;
if ((nota < 0) || (nota > 10))
cout << "Error, la nota esta fuera del rango"<} while (!((nota >=0) & (nota <= 10)));
cout << "La nota es correcta = "<system("pause");
}


Slide 13

Unidad I. Algoritmos y Programas
Estructura Repetitiva Para

Formato
Para Variable = Vi Hasta Vf Inc o Dec [Valor]
Acción o Acciones

Fin Para

Funcionamiento
Realiza una iteración por cada valor que tome
Variable.


Slide 14

Unidad I. Algoritmos y Programas
Ejemplo con Estructura Repetitiva Para

Estructura repetitiva para sumar
los precios de 3 artículos.

Suma  0
Para Articulo = 1 Hasta 3
Escribir “Introduzca Precio del Artículo # ”, Articulo
Leer Precio
Suma  Suma + Precio
Fin Para
Escribir “El resultado de la suma es “, Suma


Slide 15

Unidad I. Algoritmos y Programas
Ejemplo con Estructura Repetitiva Para
Estructura repetitiva para sumar los precios de 3 artículos, en c++
#include
using namespace std;
main()
{
float Precio, Suma;
int Articulo;
Suma = 0;
//inicialización del acumulador, es obligatorio
Articulo = 0; //inicialización del contador, es obligatorio
cout<< "PROGRAMA QUE PROCESA PRECIO DE 3 ARTICULOS Y LOS SUMA"<< endl;
for (Articulo = 1; Articulo <= 3; Articulo ++)
{
cout<< "Introduzca Precio del Articulo # "<cin>>Precio; //se lee el precio del articulo en proceso
Suma = Suma + Precio; //se va guardando la suma de todos los precios
} //fin del for
cout<< "El resultado de la suma es = "<system("pause");
}