Estructuras Repetitivas En todos los algoritmos realizados hasta este punto, cada instrucción se ha ejecutado solo una
EJERCICIOS RESUELTOS
1.‐escribir un algoritmo para que muestre la tabla de multiplicar del 8. 8 * 1= 8 8 * 2=16 8 * 3= 24 8 * 4= 32 8 * 5= 40 8 * 6= 48 8 *7= 56 8 * 8= 64 8 * 9= 72 8 * 10= 80 8 * 11= 88 8 * 11= 96 1.1.Algoritmo
Inicio{hacer la tabla de multiplicar del 8} {Inicializamos nuestro contador en 0} c=0 hacer k=k+1 Escribir k*8 mientras(k<12) Fin 2.1. Codificación (C#)
static void Main(string[] args) { int c; c = 0; do { c++; Console.WriteLine("8 * {0} = {1}", c, c * 8); } while (c < 12); Console.Read(); }
2.‐Escribir un algoritmo que imprima el número,el cuadrado y el cubo de los n primeros numeros enteros positivos.
Numero Cuadrado Cubo
1 2 3 1 4 9 1 8 27 1.1.Algoritmo
Inicio{escribir la tabla de cuadrados y cubos de los N primeros enteros} {Leer número de elementos}
Leer N
{Escribir números, cuadrados y cubos} k=0
hacer k=k+1
cuadrado=numero*numero cubo=cuadrado*numero escribir cuadrado, cubo mientras(k<12)
Fin
2.2 Codificación C#
static void Main(string[] args) {
int c,numero,cuadrado,cubo; //inicialiazamos el contandor c = 0;
//ingresamos el numero
Console.Write("Ingresa Número:");
numero = int.Parse(Console.ReadLine()); do { c++; cuadrado = c*c; cubo = cuadrado * c; Console.WriteLine("Numero {0} ” ,c);
Console.WriteLine("el cuadrado es :{0}", cuadrado); Console.WriteLine("el cubo es :{0}", cubo); } while (c < numero);
Console.Read(); }
3.‐se tiene la relación de n alumnos. Para cada alumno se tiene 3 notas. Escribir un algoritmo que calcule el promedio de cada alumno.
Alumno Nota 1 Nota 2 Nota 3 Promedio
1 2 3 12 11 08 14 11 06 13 12 10 13.00 11.00 08.00
3.1 Algoritmo
Inicio{calcular el promedio de 3 notas para N alumnos} {Leer número de alumnos}
Leer N NroAlumno=0 hacer NroAlumno=NroAlumno+1 Leer nota1 Leer nota2 Leer nota3
{calcular promedio de notas del alumno} Promedio=(nota1+nota2+nota3)/3 escribir promedio
mientras(NroAlumno<N) Fin
3.2 Codificación C#
static void Main(string[] args) {
int NroAlumno, N,promedio; int nota1, nota2, nota3; //inicialiazamos el contandor NroAlumno = 0;
//ingresamos el numero
Console.Write("Ingresa Cantidad de Alumno:"); N = int.Parse(Console.ReadLine());
do {
//procesar notas dels siguiente alumno NroAlumno++;
//leer notas del alumno
Console.WriteLine("Calcular el Promedio para el Alumno {0}",NroAlumno); Console.WriteLine("Ingrese Nota 1:");
nota1 = int.Parse(Console.ReadLine()); Console.WriteLine("Ingrese Nota 2:"); nota2 = int.Parse(Console.ReadLine()); Console.WriteLine("Ingrese Nota 3:"); nota3 = int.Parse(Console.ReadLine()); //calcular promedio de notas del alumno promedio=(nota1+nota2+nota3)/3;
//mostrar el promedio
Console.WriteLine("El Promedio es :{0}",promedio); } while (NroAlumno < N);
Console.Read(); }
Datos N Resultados suma 1 2 3 4 1 3 6 10 4.1 Algoritmo
Inicio{Calcular la suma de los N primeros números enteros positivos} {Leer número de enteros a sumar}
Leer N
{calcular suma de los N primeros números enteros} Suma=0
k=0 hacer
k=k+1 {Procesar el siguiente número}
suma=suma+k {acumular el numero en suma} mientras(NroAlumno<N)
Fin
static void Main(string[] args) {
int N,suma,k;
//ingresamos los numeros enteros a suma Console.WriteLine("Ingrese N:");
N = int.Parse(Console.ReadLine());
//calcular suma de los N primeros numeros enteros suma = 0;
k = 0; do {
k++;//procesar el siguiente número
suma+= k; //acumular el número en suma
} while (k < N); //mostrar la suma
Console.WriteLine(suma); Console.Read();
}
5.‐Escribir un algoritmo que calcule la suma de la siguiente expresión:
1/100 + 2/99 + 3/98 + 4/97 +… + 99/2 + 100/1 5.1 Algoritmo
Inicio{Calcular la suma de la expresión} {Leer número de enteros a sumar} Suma=0
Numerador=0 {primer valor al actualizar =1 } Denominador=100 {primer valor al actualizar = 100}
{calcular suma de los N primeros números enteros} hacer
{actualizar numerador y denominador} Numerador=numerador+1 Denominador=denominador‐1 {acumular valores en suma }
Suma=suma+Numerador/Denominador mientras(numerador=100)
Fin
5.2 Codificación (C#)
static void Main(string[] args) {
int suma, numerador, denominador; //calcular la suma de la expresion suma = 0;
numerador = 0; //primer valor al actualizar =1
denominador = 101; //primer valor al actualizar = 100
do {
//actualizar numerador y denominador
numerador = numerador++;//el numerordor crecer
denominador = denominador--;//el denominador decrece
//acumular valores en la suma
suma = suma + numerador / denominador; } while (numerador == 100);
Console.WriteLine("La Suma de la Expresión es :{0}",suma); Console.Read();
}
6.‐Escribir un algoritmo que evalúe la siguiente expresión: 12‐ 22 + 32…+992‐1002
Se suma los elementos de la serie Suma = ‐5050 6.1 Algoritmo Inicio{Evaluar 12‐ 22 + 32…+992‐1002} {Evaluar Expresión} Suma=0 Numero=0 hacer
{El numero va a ser impar. sumar} Numero=numero+1
Suma=suma+numero*numero {El número va a ser par. Restar} Numero=numero+1
Suma=suma‐numero*numero mientras(numerador=100) Escribir suma
Fin
6.2 Codificación C#
static void Main(string[] args) {
int suma, numero; suma = 0;
numero = 0; do
{
//el numero va a ser impar.Sumar
numero = numero + 1;
suma = suma + numero * numero;
//el numero va a ser par. Restar
numero = numero + 1;
suma = suma - numero * numero; } while (numero != 100);
Console.WriteLine("La suma es:"+suma); Console.Read();
}
7.‐Escribir un algoritmo para calcular el promedio aritmético de N números.
Datos Var. De Proceso Resultado
Número Suma Promedio 10 06 12 04 08 40 8 7.1 Algoritmo
Inicio{calcular el promedio de N números} {leer numero de elementos, validando} hacer
Leer N
mientras(N<2)
{Leer números y calcular promedio} k=0 sumaElementos=0 hacer k=k+1 leer numero sumaElemtos=sumaElementos+numero mientras(k<N) promedio=SumaElemetnos/N {escribir promedio} Escribir promedio
Fin
7.2 Codificación C#
static void Main(string[] args) {
int sumaElementos=0, N, k=0, numero; int promedio;
//leer numero de elemtos, validando do
{
Console.WriteLine("Ingrese N:"); N = int.Parse(Console.ReadLine()); } while (N < 2);
//leer numeros y calcular el promedio do
{ k++;
Console.WriteLine("Ingresa Numero {0}",k); numero = int.Parse(Console.ReadLine()); sumaElementos += numero;
} while (k < N); //calcular el promedio
promedio = sumaElementos / N;
Console.WriteLine("el Promedio es:"+promedio); Console.Read();
}
8.‐Escribir un algoritmo que permita calcular el factorial de un nùmero entero positivo.
Datos Resultado 5 6 3 120 170 6 8.1 Algoritmo
Inicio{calcular factorial de un numero entero positivo } {leer numero entero positivo, validando}
hacer Leer N mientras(N<2) {Calcular el Factorial} k=0 factorial=1 mientras(k<N) k=k+1 factorial=factorial*k fin‐mientras {escribir factorial} Escribir factorial
Fin
8.2 Codificación C#
static void Main(string[] args) {
int N, factorial,k;
//ingresar numero entero positivo validado do
{
Console.WriteLine("Ingresa Número:"); N = int.Parse(Console.ReadLine()); } while (N < 0); //calcular factorial factorial = 1; k = 0; while (k < N) { k++; factorial *= k; } //mostrar factorial
Console.WriteLine("El Factorial es :"+factorial); Console.Read();
}
9.‐Calcular el maximo común divisor de 2 numeros enteros positivos.
Datos Resultado A B MCD 45 18 100 27 5 9 9.1 Algoritmo
Inicio{calcular máximo común divisor de 2 números } {Leer dos números enteros positivos y validarlos} hacer Leer A mientras(A<0) hacer Leer B mientras(B<0)
{Calcular máximo común divisor de 2 números} Resto= A mod B mientras(resto <> 0) hacer A=B B=resto Resto=A mod B fin‐mientras MCD=B
Escribir MCD Fin
9.2 Codificación C#
static void Main(string[] args) {
int A, B, MCD,resto; do
{
Console.Write("Ingresa Numero 1:"); A = int.Parse(Console.ReadLine()); } while (A < 0);
do {
Console.Write("Ingresa Numero 2:"); B = int.Parse(Console.ReadLine()); } while (B < 0);
//calcular maximo comun divisor de 2 números resto = A % B; while (resto != 0) { A = B; B = resto; resto = A % B; } MCD = B;
//escribir el maximo común divisor
Console.WriteLine("El Maximo Común Divisor es:"+MCD); Console.Read();
}
10.‐Escribir un algoritmo que permita determinar el número de dígitos de un número entero positivo. Dato Numero Resultado NroDigitos 5 345 2865 0 1 3 4 1 10.1 Algoritmo
Inicio{Determina el numero de digitos de un número} {Leer numero y validarlo}
hacer
Leer Numero mientras(Numero<0)
NroDigitos=0 {inicialización} si(numero==0) entonces {test de salida} Escribir “La cantidad de dígitos es 1” sino
mientras(numero<> 0) hacer
numero=numero div 10 {Actualización} NroDigitos=NroDigitos+1 {Instrucciones}
fin‐mientras fin‐si
Escribir NroDigitos Fin
static void Main(string[] args) {
int numero, NroDigitos = 0; do
{
Console.Clear();//limpia la pantalla
Console.WriteLine("Ingresa Número:"); numero = int.Parse(Console.ReadLine()); } while (numero < 0);
if (numero == 0) {
Console.WriteLine("La Cantidad de Digitos es :1"); } else { while (numero != 0) { numero /= 10; NroDigitos++; }
Console.WriteLine("La Cantidad de Digitos es :"+NroDigitos); }
Console.Read(); }
11.‐Escribir un algoritmo que permita calcular el Cociente y el Resto entero de la división de 2 números enteros mediante restas sucesivas.
Datos Resultado
Dividiendo Divisor Cociente Resto
20 25 4 8 5 3 0 1 10.1 Algoritmo
Inicio{Calcular el cociente y el resto de la división entera de 2 Números} {Leer dividendo y el divisor}
Leer Dividiendo, Divisor {calcular el cociente y el resto} Resto=Dividendo
mientras(Resto>=Divisor) hacer Resto=resto‐divisor
cociente=cociente+1 fin‐mientras
{escribir el cociente y el resto} Escribir cociente, Resto Fin
static void Main(string[] args) {
int resto, dividendo, divisor,cociente=0; Console.Write("Ingresa Dividendo:");
dividendo = int.Parse(Console.ReadLine());
Console.Write("Ingresa Divisor:");
divisor = int.Parse(Console.ReadLine());
//calcular el cociente y el resto resto = dividendo;
while (resto >= divisor) {
resto = resto - divisor; cociente++;
}
//mostar el cociente y el resto
Console.WriteLine("el cociente es :{0} y el resto es {1}",cociente,resto); Console.Read();
}
12.‐Escribir un algoritmo que permita calcular el producto de 2 números enteros positivos utilizando el algoritmo ruso de la multiplicacion.
Datos Resultado
Numero 1 Numero 2 Producto
25 24 24 25 600 600 12.1 Algoritmo
Inicio{calcular el producto de 2 Números mediante el algoritmo ruso} {Leer los factores}
Leer Factor1, Factor2
{calcular el producto de los 2 factores} Producto=0
mientras(Factor2 >0)hacer
si (Factor2 mod 2 =1) entonces {acumular factor 1} producto=producto+factor1
fin‐si
factor1=factor1*2 factor2=factor2 div 2 fin‐mientras
{escribir el cociente y el resto} Escribir producto
Fin
12.2 Codificación C#
static void Main(string[] args) {
int factor1, factor2,producto; //leer los factores
Console.WriteLine("Ingresa Factor 1:");
factor1 = int.Parse(Console.ReadLine());
Console.WriteLine("Ingresa Factor 2:");
factor2 = int.Parse(Console.ReadLine());
//calcular el producto de los 2 factores producto = 0;
while (factor2 > 0) {
if (factor2 % 2 == 1)
producto = producto + factor1; factor1 = factor1 * 2;
factor2 = factor2 / 2; }
//mostrar el producto
Console.WriteLine("El Producto es :{0}",producto); Console.Read();
}
13.‐Programa que calcula la suma de los 200 primeros numeros pares y los 200 primeros numeros impares simultaneamente.
Resultado
La suma de nuemros impares es 10000 La suma de numeros pars es 10100
13.1 Algoritmo
Inicio{calcular de la suma de los 200 pares e impares} {inicializar contador en cero}
j=0
mientras(j<200)hacer
suma_imp=suma_imp+(j=j + 1) suma_par=suma_par+(j=j + 1) fin‐mientras
{escribir el la suma de pares e impares} Escribir suma_imp,suma_par
Fin
13.2 Codificación C#
static void Main(string[] args) {
int j, suma_par = 0, suma_imp = 0; j = 0; while (j < 200) { suma_imp = suma_imp + ++j; suma_par = suma_par + ++j; }
Console.WriteLine("la suma de nùmero impares es : {0}", suma_imp); Console.WriteLine("la suma de nùmero pares es : {0}", suma_par); Console.ReadKey();
14.‐Algoritmo pa que muestre la siguiente figura: 109876543210 9876543210 876543210 76543210 6543210 543210 43210 3210 210 10 14.1 Algoritmo
Inicio{calcular cono de numero} {inicializar a en diez} a=10 mientras(a<>0)hacer {b tomara el valor de a} b=a mientras(b>=0)hacer escribir b b=b‐1 fin‐mientras
Escribir “\n” **cambio de línea {“a” decrementa} a=a‐1 fin‐mientras Fin 14.2 Codificación C#
static void Main(string[] args) {
int a, b;
//a tomara el valor de 10 a = 10;
while (a != 0) {
//b tomara ahora el valor de a
b = a; while (b >= 0) { Console.Write(b); b--; } Console.Write("\n"); a--;
}
Console.Read(); }
15.‐Programa que escribe la suma una seria de núemros recogidos del teclado.La entrada de datos finaliza al evaluar la respuesta dada a un jmensaje que diga “¿Continuar (S/N)?” mostrado una vez finalizadas las operaciones del bucle.
Entrada de datos 23 ¿Continuar (S/N) S 1 ¿Continuar (S/N) S 4 ¿Continuar (S/N) S 67 ¿Continuar (S/N) N Salida de Resultados La suma es : 95 15. ‐ Codificación C#
static void Main(string[] args) {
int suma=0, num;
string remp; do
{
Console.Write("Ingresa Numero: ");
num = int.Parse(Console.ReadLine());
suma += num;
Console.Write("¿Continuar (S/N)?"); Console.Write("\n");
remp = Console.ReadLine();
} while (remp == "S" || remp == "s"); Console.Write("la suma es:"+suma); Console.ReadLine();
}
16.‐Hacer un programa para calcular el valor maximo y cuantas veces se aparece dicho valor repetido de una serie de N numeros .
‐Introduce un número:1 ‐Introduce un número:4 ‐Introduce un número:7 ‐Introduce un número:99 ‐Introduce un número:40 ‐Introduce un número:345 ‐Introduce un número:23
‐Introduce un número:345 ‐Introduce un número:5
‐El Valor Maximo es 345 con 2 repeticiones 16.1 Algoritmo
Inicio{Determina el valor máximo de N números y cuantas veces se repite} {Leer N y validarlo} hacer Leer N mientras(Numero<2) Leer máximo Cantidad = 1 C=1 Hacer C=C+1 Leer numero Si (numero>máximo) entonces máximo=numero Cantidad=1 Sino Si(numero=máximo) entonces Cantidad=Cantidad+1 Fin‐si Mientas(C<N)
Escribir máximo, Cantidad Fin
16. ‐ Codification C#
static void Main(string[] args) {
int numero, maximo, cantidad, c = 1,N;
do {
//ingresamos cantidad de datos validados Console.Write("Ingrese Cantidad de Datos:"); N = int.Parse(Console.ReadLine());
} while (N < 2);
//ingresamos el primer dato y supongamos que sea el valor maximo Console.WriteLine("Ingrese Numero 1:");
maximo = int.Parse(Console.ReadLine()); cantidad = 1;
do {
c++;//actualizamos nuestro contador
//ingresamos los numeros restantes
Console.WriteLine("Ingrese Numero {0}",c); numero = int.Parse(Console.ReadLine()); if (numero > maximo)
{
maximo = numero; cantidad = 1;
}
else if (numero == maximo) cantidad++;
} while (c < N);
Console.WriteLine("El Valor Maximo es {0} con {1} repeticiones",maximo,cantidad); Console.Read();
}
17.‐Programa que lee cinco valores númericos enteros y calcula su producto mostrando el resultado en el dispositivo estandar de salidda(pantalla).
ENTRADA DE DATOS