Estructuras de repetición infinita
* Estructura while
* Estructura do - while
Lenguaje C++
Gaxiola Pacheco, C. G. y Flores Gutiérrez, D. L. (2008).
Metodología de la programación con pseudocódigo enfocado al lenguaje C. México D.F, Mexico: Plaza y Valdés, S.A. de C.V.
Recuperado de : [Link]
Joyanes Aguilar, L. (2006). Programación en C++: un enfoque práctico. McGraw-Hill España.
[Link]
1
Objetivos:
Estudiar las estructuras de repetición infinita.
– Mientras (while)
– Mientras (do while)
Diferenciar los bucles de repetición while y/o do while
Aprender a diseñar algoritmos y diagramas de flujo.
La importancia de realizar algoritmos como paso previo a la
resolución de problemas utilizando Dev C++
Utilizar técnicas de programación básicas para hacerlo más
legible
Primero ejecuta las instrucciones luego evalúa una expresión lógica
(una condición), se realiza la repetición del bucle ó terminar.
2
Estructuras de Control:
Simple
Selectivas Doble
Múltiple
Estructura
de
Control Mientras que
while() do..while()
Repetitivas
Para for(…)
3
Conceptos de repetición infinita (do-while)
Contador:
Es una variable cuyo valor se incrementa o decrementa en una cantidad
constante cada vez que se produce un determinado suceso o acción internas del
ciclo. Con el contador se puede realizar una operación de inicialización y
posteriomente el incremento o decremento sucesivo.
Sumadores ó Acumuladores:
Son variables cuyo valor se incrementa o decrementa que controla la secuencia
de repetición.
Ciclo:
La sentencia o grupo de sentencias que se repite en un bloque se denomina
cuerpo del ciclo y cada repetición del cuerpo del ciclo se llama iteración del
ciclo.
4
Repetición infinita (while)
Son proceso que se basan en la repetición de un grupo de instrucciones que
facilitan la implementación de procesos que existen en las estructuras de
repetición o ciclos.
Un ciclo es cualquier instrucción de programa que repite una sentencia ó
secuencia de sentencias un número de veces.
Comando (do while)
Un ciclo do while tiene una condición del ciclo, es una expresión lógica que
controla la secuencia de repetición que se encuentra después de ejecutar la
instrucción ó instrucciones. Significa que un ciclo do-while se ejecuta si la
condición es verdadera.
4
Algoritmo y Diagrama de Flujo
2 Algoritmo
1) Inicio
2) Declaración
3 3) Asignación
4) Proceso
Hacer
4.0 Ejecuta <Instrucción 4,0>
4.1 Mientras (Condición)
4,0 5) Resultado
6) Fin
Si
4.1
No
5
Sintáxis (while)
do
{
Bloque_instrucciones; Instrucciones
} while (condición)
• do (Hacer)
• Primero ejecuta el bloque de instrucciones si ¿Condición?
completo.
• while: (0-n veces)
– Evaluar la condición no
• Si el resultado es verdadero, ejecutar el
bloque de instrucciones completo y
volver a empezar.
• Si el resultado es falso, acaba el bucle
(seguir con la instrucción siguiente al
while)
6
Codificando en C++
Instrucción1;
do
Instrucciones
Instrucción2;
while(condicion);
Instrucción3;
Palabra
reservada Instrucción1;
do
{
Instrucción2; Si la condición es
Bloque Instrucción3; Verdadera repite de
modo infinito.
Instrucción4;
}
while(condicion);
Instrucción5;
7
Problema:
Ingrese valor de k
Dada la expresión:
si
k<=0
k ( x m) 2
f ( x)
1 k ( x m) 2 no
Ingrese valor de m
k 0
1 m 1
si m<=-1 o m>=1
Calcular el f(x)
no
Calcular f(x)
9
Codificando en C++
#include <iostream>
using namespace std; Si la variable (x) cambia
void main() de 10<=x<=15 con
incremento de x=0.1.
{
¿Cómo lo haríamos?
double fx=0,x=0,aux=0;
int k=0,m=-2;
cout<<“Ingrese valor de k: \n” //..viene
do
cin>>k; cout<<"Ingrese valor de x: “; cin>>x;
while(k<=0); aux=k*(x-m)*(x-m);
cout<<"Ingrese valor de m: “; fx= aux/(1+aux);
do cout<<“La función f(x)= “<<fx<<“ para x= “<<x;
{
cin>>m; } //Fin del programa
cout<<"Valor de m= <<m<<“ inválido");
}
while((m<=-1)||(m>=1));
//….sigue 9
Ejemplo: Tabla de multiplicar
Escribir la tabla de multiplicar del 12.
int i = 1;
do
{
cout<<“ 12 x “<< i <<“ = “<< i * 12<<endl;
i++;
} while (i<= 12);
10
Sigue el ejemplo:
Escribir la tabla de multiplicar hasta el 12.
int i = 1, j=1;
do
{
do
{
cout<<i<<“ x “<<j<<“ = “<< i * j<<endl;
i++;
} while (j<= 12);
} while (i<= 12);
11
Ejercicio:
#include <iostream.h>
using namespace std;
int main()
{
/* Este programa permite la conversión de metros a pies y a
centimetros tantas veces como el usuario lo desee.
Ejemplifica la aplicacion de la sentencia while */
// Declaración de variables
double distancia_en_metros, distancia_en_cm, distancia_en_ft;
char repetir=s;
/* Proceso ó cálculo*/
do
{
cout<< "Dame una cantidad en metros \n";
cin>> distancia_en_metros;
distancia_en_cm = distancia_en_metros * 100;
distancia_en_ft = distancia_en_metros * 3.048;
cout<<"\n";
//.. Sigue… 12
Ejercicio:
//… viene…
cout<<"Su equivalente en centimetros es: “ <<distancia_en_cm<<" \n";
cout<<"Su equivalente en pies es “ <<distancia_en_ft<<" \n";
cout<<"\n \n";
cout<<"Deseas realizar otro calculo similar? \n";
cout<<"Escribe la letra <s> si lo deseas, si no, \n";
cout<<"escribe cualquier otra letra \n"; cin>>repetir;
cout<<"\n";
} while ( (repetir == 's') || (repetir=='S') );
system(“pause");
return 0;
}
14
Aplicación: De coordenadas rectangulares a polares
Tomemos un número complejo z=x+yi y pensémoslo como un punto del plano complejo, es decir,
como el punto (x,y) . Diremos que (x,y) son las coordenadas rectangulares de z. Es recomendable
recordar la siguiente figura, y regresar a ella frecuentemente.
El complejo z tiene norma.
Además, si , tenemos
que z define un ángulo con el eje
real positivo, al cual le llamaremos
el argumento de z y lo denotaremos
por arg(z). Todos los ángulos que
manejaremos están en radianes.
13
Aplicación: De coordenadas polares a rectangulares
Por el teorema de Pitágoras, define una circunferencia de radio r con centro en el origen.
Si además elegimos un ángulo en [0,2 ) que el complejo haga con el eje real, el complejo
queda determinado de manera única. Supongamos que este complejo es z = x + yi
Por trigonometría, tenemos que:
x = r cos ()
y = r sen ()
14
Bibliografía:
Gaxiola Pacheco, C. G. y Flores Gutiérrez, D. L. (2008).
Metodología de la programación con pseudocódigo enfocado al lenguaje C. México D.F, Mexico: Plaza y Valdés, S.A. de C.V.
Recuperado de : [Link]
Joyanes Aguilar, L. (2006). Programación en C++: un enfoque práctico. Madrid etc, Spain: McGraw-Hill España.
Recuperado de [Link]
15