LABORATORIO N.
6
SIS 1110 “B”
UNIVERSITARIO: RAMOS CRUZ CARLOS DANIEL
CI: 7322834
MATERIA: SIS 1110 “B”
DOCENTE DE LABORATORIO: ING. FRANKLIN VILLANUEVA
FECHA DE ENETREGA: 8 DE MAYO
ORURO – BOLIVIA
Pá gina 1
U.T.O. – F.N.I. ING. DE SISTEMAS – ING. INFORMÁTICA
SIS – 1100 METODOLOGÍA DE LA PROGRAMACIÓN I
GUÍA DE LABORATORIO # 6
TEMA: LA ESTRUCTURA REPETITIVA DO-WHILE
OBJETIVOS.
Aplicar la estructura repetitiva DO_WHILE, en ciclos anidados
Aplicar la estructura repetitiva DO_WHILE en el entorno C++
FUNDAMENTO TEORICO.
ESTRUCTURA DO-WHILE: Ejecuta una instrucción o un bloque de instrucciones, una o más veces,
dependiendo del valor de la condición.
Se ejecuta la instrucción o bloque de instrucciones y a continuación se evalúa la condición. Si la
condición es cierta, se vuelve a ejecutar la instrucción o bloque de instrucciones, y si es falsa, pasa a
ejecutarse la siguiente instrucción después del do-while.
Cuando se utiliza una instrucción do-while el bloque de instrucciones se ejecuta al menos una vez, ya
que la condición se evalúa al final. En cambio, con una instrucción while, puede suceder que el bloque
de instrucciones no llegue a ejecutarse nunca si la condición inicialmente es falsa.
Su formato general es:
En diagrama de flujo o algoritmo gráfico es En pseudocódigo o algoritmo escrito se
representado por los símbolos: representa de la siguiente manera:
do
{
instrucción 1;
..............
instrucción N;
} while (condición);
Pá gina 2
ACTIVIDAD DE CLASE:
Ejercicio 1: Algoritmo para generar la siguiente sucesión: ingresar un número
entero positivo, si el Nro. es 1 Fin, si es par dividir entre 2, si es impar multiplicar
por 3 y sumar 1.
Practica en clase:
1. Programa para obtener la s u m a : : N - > N - > N , suponiendo que la
máquina sól o p u e d e s u m a r d e u n o e n u n o . ( o b v i a m e n t e , s u m a m n
= m+n, no es la solución a este problema).
2. Programa para obtener el p r o d u c t o : : N - > N - > N , s u p o n i e n d o
q u e l a máquina sólo sabe sumar. (Ej. 4*5=4+4+4+4+4=20)
#include <iostream>
using namespace std;
int main() {
int num1, num2, num3, i, j, k, producto;
cout << "Ingrese el primer numero: ";
cin >> num1;
cout << "Ingrese el segundo numero: ";
cin >> num2;
cout << "Ingrese el tercer numero: ";
cin >> num3;
i = 1;
j = 1;
k = 1;
producto = 0;
do {
j = 1;
do {
k = 1;
do {
producto++;
k++;
} while (k <= num3);
j++;
} while (j <= num2);
i++;
} while (i <= num1);
cout<<"el producto es: "<<producto<< endl;
return 0;
}
Pá gina 3
3. Programa para obtener la potencia : : N - > N - > N , s u p o n i e n d o
q u e l a máquina sólo sabe multiplicar. (Ej. 3^4=3*3*3=27)
#include <iostream>
using namespace std;
int main() {
int base, exponente, rsp = 1;
cout << "Ingrese la base: ";
cin >> base;
cout << "Ingrese el exponente: ";
cin >> exponente;
int i = 1;
do {
rsp *= base;
i++;
} while (i <= exponente);
cout<< rsp << endl;
return 0;
}
4. Programa para imprimir la serie de fibonacci para N términos
F=0,1,1,2,3,5,8,13,21,34,55,…..
#include <iostream>
using namespace std;
int main() {
int n, i = 0, j = 1, k, contador = 2;
cout << "Ingrese el valor de N: ";
cin >> n;
cout << i << " " << j << " ";
do {
k = i + j;
cout << k << " ";
i = j;
j = k;
contador++;
} while (contador < n);
return 0;
}
Pá gina 4
5. Programa para calcular el M.C.D. y m.c.m. de dos números enteros
#include <iostream>
using namespace std;
int main() {
int num1, num2, mcd, mcm, temp1, temp2;
cout << "Ingrese el primer numero: ";
cin >> num1;
cout << "Ingrese el segundo numero: ";
cin >> num2;
temp1 = num1;
temp2 = num2;
do {
int resto = temp1 % temp2;
temp1 = temp2;
temp2 = resto;
} while (temp2 != 0);
mcd = temp1;
mcm = (num1 * num2) / mcd;
cout << "El MCD de " << num1 << " y " << num2 << " es: " << mcd << endl;
cout << "El MCM de " << num1 << " y " << num2 << " es: " << mcm << endl;
return 0;
}
Pá gina 5
6. Programa para transformar un Número Decimal a otro Número en Base=[2,3,
…,8,9]
#include <iostream>
using namespace std;
int main() {
int num, base, rem, i = 0;
int result[100];
cout << "Ingrese un numero decimal: ";
cin >> num;
cout << "Ingrese la base: ";
cin >> base;
do {
rem = num % base;
result[i] = rem;
i++;
num = num / base;
} while (num > 0);
cout << "El resultado en base " << base << " es: ";
for (int j = i - 1; j >= 0; j--) {
cout << result[j];
}
cout << endl;
return 0;
}
Pá gina 6
7. Programa para transformar un Número en Base=[2,3,…,8,9] a otro Número
Decimal.
#include <iostream>
#include <cmath>
using namespace std;
int main() {
int base, num, rem, i = 0, dec = 0;
cout << "Ingrese el numero en base: ";
cin >> base;
cout << "Ingrese el numero en la base " << base << ": ";
cin >> num;
do {
rem = num % 10;
dec += rem * pow(base, i);
num /= 10;
i++;
} while(num != 0);
cout << "El numero en base 10 es: " << dec << endl;
return 0;
}
8. Programa para visualizar los números primos
#include <iostream>
using namespace std;
int main() {
int n, i, j, es_primo;
cout << "Ingrese el valor de n: ";
cin >> n;
cout << "Los primeros " << n << " numeros primos son:" << endl;
i = 2;
while (n > 0) {
es_primo = 1;
j = 2;
while (j <= i / 2) {
if (i % j == 0) {
es_primo = 0;
break;
}
j++;
}
if (es_primo) {
cout << i << endl;
n--;
}
i++;
}
return 0;
Pá gina 7
}
CUESTIONARIO.
1. ¿Qué diferencia a una estructura repetitiva DO_WHILE de una estructura repetitiva WHILE?
R. La principal diferencia entre una estructura repetitiva DO_WHILE y WHILE es que DO_WHILE se ejecuta al
menos una vez antes de verificar la condición de repetición, mientras que WHILE verifica la condición antes de
ejecutarse.
2. ¿Cómo debe ser el incremento cuando quiero contar en forma descendente?
R. Para contar en forma descendente, el incremento debe ser una operación de resta en lugar de una
operación de suma. Por ejemplo, en lugar de incrementar una variable en 1, la variable debe ser decrementada
en 1. Por lo tanto, el incremento sería algo como: i = i - 1.
3. ¿Se pueden anidar las estructuras repetitivas? Busque un ejemplo.
R. Sí, se pueden anidar las estructuras repetitivas. Un ejemplo común es utilizar un bucle for o while dentro de otro bucle
for o while para realizar operaciones más complejas o recorrer estructuras de datos en varias dimensiones, como matrices
o arreglos bidimensionales. Por ejemplo, podemos utilizar un bucle for externo para recorrer las filas de una matriz y un
bucle for interno para recorrer las columnas de cada fila.
Pá gina 8