• No se han encontrado resultados

EJERCICIOS RESUELTOS

In document C# FUNDAMENTOS DE PROGRAMACION (página 116-131)

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

In document C# FUNDAMENTOS DE PROGRAMACION (página 116-131)