Descargar

Algoritmos Propuestos (página 2)

Enviado por Ralph Jim�nez


Partes: 1, 2

4.3 Dados tres números decidir cuál es el central.

using System;

using System.Collections.Generic;

using System.Text;

namespace Ejercicio_4_3

{

public class Clase

{

public Int32 CapturaNumero(string cadena)

{// Recibe un string para solicitar la entrada y devuelve el numero introducido.

string Strnumber;

int number = 0;

try

{

Console.Write(cadena);

Strnumber = Console.ReadLine();

number = Convert.ToInt32(Strnumber);

}

catch

{

Console.WriteLine("Numero Invalido!!!");

return CapturaNumero(cadena); // Utiliza recursividad hasta introducir un numero valido

}

return number;

}

void ordena(int [] ar,int tam)

{// Recibe un arreglo de enteros y la organiza de menor a mayor

int i=0,t=0,j=0;

for(j=0;j<tam;j++){

for(i=j;i<tam;i++){

if(ar[i]<ar[j]){

t=ar[j];

ar[j]=ar[i];

ar[i]=t;

}

}

}

}

public void Run()

{//Metodo que ejecuta e imprime

Int32[] numeros = new Int32[3];

numeros[0] = CapturaNumero("Introducir un numero para A: ");

numeros[1] = CapturaNumero("Introducir un numero para B: ");

numeros[2] = CapturaNumero("Introducir un numero para C: ");

ordena(numeros, 3);

Console.WriteLine("El numero central es {0}", numeros[1]);

}

}

class Program

{

static void Main(string[] args)

{

Clase ejecuta = new Clase();

ejecuta.Run();

Console.ReadLine();

}

}

}

4.6 Determinar el precio de un billete de ida y vuelta en ferrocarril, conociendo la distancia a recorrer y sabiendo que si el número de días de estancia es superior a siete y la distancia es superior a los 800 Km. el billete tiene una reducción de 30%. El precio por kilómetro es 2,5 pesetas.

using System;

using System.Collections.Generic;

using System.Text;

namespace Ejercicio_4_6

{

public class Clase

{

public Int32 CapturaNumero(string cadena)

{

string Strnumber;

int number = 0;

try

{

Console.Write(cadena);

Strnumber = Console.ReadLine();

number = Convert.ToInt32(Strnumber);

}

catch

{

Console.WriteLine("Por favor Solo Números!!!");

return CapturaNumero(cadena);

}

return number;

}

public void Run()

{

Int32 distancia = 0, estancia = 0;

float precio_x_Km = 2.5F, Pasaje = 0.0F,descuento=0.0F;

distancia = CapturaNumero("Introducir la distacia en Kms: ");

estancia = CapturaNumero("Introducir dias de estancia: ");

Console.WriteLine();

Pasaje = distancia * precio_x_Km;

if (distancia > 800 && estancia > 7) descuento = (Pasaje * .30F);

Console.WriteLine("Distacia en Kms: {0,6} KmsnEstancia x Dias: {1,6} DiasnMonto del Pasaje: {2:###,###.00}", distancia, estancia, Pasaje);

if (descuento != 0)

{

Pasaje = Pasaje – descuento;

Console.WriteLine("Monto Descuento : {0:###,###.00}-nnTotal {1,6:C2} pesetas", descuento, Pasaje);

}

}

}

class Program

{

static void Main(string[] args)

{

Clase ejecuta = new Clase();

ejecuta.Run();

Console.ReadLine();

}

}

}

4.8 Se desea realizar una estadística de los pesos de los alumnos de un colegio de acuerdo a la siguiente tabla:

-Menos de 40 kg.

-Entre 40 y 50 kg.

-Más de 50 y menos de 60 kg.

-Más ó igual a 60 kg.

using System;

using System.Collections.Generic;

using System.Text;

namespace Ejercicio_4_8

{

public class Clase

{

void ordena(int[] ar, int tam)

{// Recibe un arreglo de enteros y la organiza de menor a mayor

int i = 0, t = 0, j = 0;

for (j = 0; j < tam; j++)

{

for (i = j; i < tam; i++)

{

if (ar[i] < ar[j])

{

t = ar[j]; ar[j] = ar[i]; ar[i] = t;

}

}

}

}

public Int32 CapturaNumero(string cadena)

{

string Strnumber;

int number = 0;

try

{

Console.Write(cadena);

Strnumber = Console.ReadLine();

number = Convert.ToInt32(Strnumber);

}

catch

{

Console.WriteLine("Numero Invalido!!!");

return CapturaNumero(cadena);

}

return number;

}

public void Run()

{

int CuantosAlumnos = 0;

int [] Todos=new int[2000];

int Menos_40=0,Entre40y50=0,Mas50yMenos60=0,MasIgual60=0;

CuantosAlumnos = CapturaNumero("Cantidad de Alumnos en la Muestra ");

for (int i=0;i<CuantosAlumnos;i++){

Todos[i] = CapturaNumero("Introducir peso para alumno " + i.ToString()+": ");

}

ordena(Todos, CuantosAlumnos);

for(int i=0;i<CuantosAlumnos;i++){

if(Todos[i]<40)Menos_40++;

if(Todos[i]>=40 && Todos[i]<=50)Entre40y50++;

if(Todos[i]>50 && Todos[i]<60)Mas50yMenos60++;

if(Todos[i]>=60)MasIgual60++;

Console.Write(" {0}", Todos[i]);

}

Console.WriteLine("n=================================================================");

Console.WriteLine("Los alumnos < a 40 son {0:##0} {1:##0.00}%", Menos_40, Menos_40 * 100 / CuantosAlumnos);

Console.WriteLine("Los alumnos > ó = a 40 y < ó = 50 son {0:##0} {1:##0.00}%", Entre40y50, Entre40y50 * 100 / CuantosAlumnos);

Console.WriteLine("Los alumnos > a 50 y < 60 son {0:##0} {1:##0.00}%", Mas50yMenos60, Mas50yMenos60 * 100 / CuantosAlumnos);

Console.WriteLine("Los alumnos > ó = a 60 son {0:##0} {1:##0.00}%", MasIgual60, MasIgual60 * 100 / CuantosAlumnos);

Console.WriteLine("El total de alumnos fueron {0:##0} {1:##0.00}%", CuantosAlumnos, CuantosAlumnos * 100 / CuantosAlumnos);

}

}

class Program

{

static void Main(string[] args)

{

Clase ejecuta = new Clase();

ejecuta.Run();

Console.ReadLine();

}

}

}

4.11 El sistema de calificación americano se suele calcular de acuerdo a lo siguiente:

Grado Numérico

Grado en Letra

Entre 90-100

A

Entre 80-89

B

Entre 70-79

C

Entre 60-69

D

Menos de 60

F

using System;

using System.Collections.Generic;

using System.Text;

namespace Ejercicio_4_11

{

public class Clase

{

public Int32 CapturaNumero(string cadena)

{// Recibe un string para solicitar la entrada

// y devuelve el numero introducido.

string Strnumber;

int number = 0;

try

{

Console.Write(cadena);

Strnumber = Console.ReadLine();

number = Convert.ToInt32(Strnumber);

}

catch

{

Console.WriteLine("Numero Invalido!!!");

return CapturaNumero(cadena); // Utiliza recursividad

// hasta introducir un numero valido

}

return number;

}

char letra(int Nota)

{

if (Nota >= 90) return 'A';

if (Nota >= 80) return 'B';

if (Nota >= 70) return 'C';

if (Nota >= 60) return 'D';

return 'F';

}

public void Run()

{//Metodo que ejecuta e imprime

Int32 Nota = 0;

Char Letra = 'F';

do

{

Nota = CapturaNumero("Introduzca Nota el Estudiante (0-100) ");

} while (Nota < 0 || Nota > 100);

Letra =letra(Nota);

Console.WriteLine("La nota es {0}-{1}",Nota,Letra);

}

}

class Program

{

static void Main(string[] args)

{

Clase ejecuta = new Clase();

ejecuta.Run();

Console.ReadLine();

}

}

}

7.1 Determinar los valores de I, J después de la ejecución de las instrucciones siguientes:

var

entero : I, J

array[1…10] de entero : A

Inicio

I <= 1 I=1

J <= 2 J=2

A[I] <= J A[1]=2

A[J] <= I A[2]=1

A[J+I] <= I+J A[3]=3

I <= A[I]+A[J] I=3

A[3] <= 5 A[3] = 5

J <= A[I]-A[J] J=4

Fin

El valor de I es 3 y de J es 4.

7.4 Leer una matriz de 3 por 3 elementos y calcular la suma de sus filas y columnas, dejando dichos resultados en dos vectores, uno de la suma de las filas y otro de la sumas de las columnas.

using System;

using System.Collections.Generic;

using System.Text;

namespace Ejercicio_7_4

{

public class Clase

{

public Int32 CapturaNumero(string cadena)

{// Recibe un string para solicitar la entrada

// y devuelve el numero introducido.

string Strnumber;

int number = 0;

try

{

Console.Write(cadena);

Strnumber = Console.ReadLine();

number = Convert.ToInt32(Strnumber);

}

catch

{

Console.WriteLine("Numero Invalido!!!");

return CapturaNumero(cadena); // Utiliza recursividad

// hasta introducir un numero valido

}

return number;

}

void grafica3x3(Int32[,] matriz)

{

Console.WriteLine("==============================");

for (int f = 0; f < 3; f++)

{

for (int c = 0; c < 3; c++)

{

Console.Write(" {0:####}", matriz[f, c]);

}

Console.WriteLine();

}

Console.WriteLine("==============================");

}

public void Run()

{//Metodo que ejecuta e imprime

Int32[,] numeros = new Int32[3,3];

Int32[] sfilas = new Int32[3];

Int32[] scolumnas = new Int32[3];

for (int f = 0; f < 3; f++)

{

for (int c = 0; c < 3; c++)

{

numeros[f, c] = CapturaNumero("Posicion " + f.ToString() + "/" + c.ToString()+": ");

}

}

grafica3x3(numeros);

for (int f = 0; f < 3; f++)

{

for (int c = 0; c < 3; c++)

{

sfilas[f] = sfilas[f] + numeros[f, c];

}

}

for (int c = 0; c < 3; c++)

{

for (int f = 0; f < 3; f++)

{

scolumnas[c] = scolumnas[c] + numeros[f, c];

}

}

Console.WriteLine("Suma Columnas {0} {1} {2}", scolumnas[0],scolumnas[1],scolumnas[2]);

Console.WriteLine("Suma Filas {0} {1} {2}", sfilas[0], sfilas[1], sfilas[2]);

}

}

class Program

{

static void Main(string[] args)

{

Clase ejecuta = new Clase();

ejecuta.Run();

Console.ReadLine();

}

}

}

7.7 Calcular la suma de los elementos de la diagonal principal de una matriz 4×4.

using System;

using System.Collections.Generic;

using System.Text;

namespace Ejercicio_7_7

{

public class Clase

{

public Int32 CapturaNumero(string cadena)

{// Recibe un string para solicitar la entrada

// y devuelve el numero introducido.

string Strnumber;

int number = 0;

try

{

Console.Write(cadena);

Strnumber = Console.ReadLine();

number = Convert.ToInt32(Strnumber);

}

catch

{

Console.WriteLine("Numero Invalido!!!");

return CapturaNumero(cadena); // Utiliza recursividad

// hasta introducir un numero valido

}

return number;

}

void grafica4x4(Int32[,] matriz)

{

Console.WriteLine("==============================");

for (int f = 0; f < 4; f++)

{

for (int c = 0; c < 4; c++)

{

Console.Write(" {0:####}", matriz[f, c]);

}

Console.WriteLine();

}

Console.WriteLine("==============================");

}

public void Run()

{//Metodo que ejecuta e imprime

Int32[,] numeros = new Int32[4, 4];

Int32 suma = 0;

for (int f = 0; f < 4; f++)

{

for (int c = 0; c < 4; c++)

{

numeros[f, c]=CapturaNumero("Posicion "+f.ToString() + "/"+c.ToString() + ": ");

}

}

grafica4x4(numeros);

for (int f = 0; f < 4; f++) suma = suma + numeros[f, f];

Console.WriteLine("Suma Diagonal es {0}", suma);

}

}

class Program

{

static void Main(string[] args)

{

Clase ejecuta = new Clase();

ejecuta.Run();

Console.ReadLine();

}

}

}

7.13 Se disponen de N temperaturas almacenadas en un array. Se desea calcular su media y obtener el número de temperaturas mayores o iguales a la media.

using System;

using System.Collections.Generic;

using System.Text;

namespace Ejercicio_7_13

{

public class Clase

{

public Int32 CapturaNumero(string cadena)

{// Recibe un string para solicitar la entrada y devuelve el numero introducido.

string Strnumber;

int number = 0;

try

{

Console.Write(cadena);

Strnumber = Console.ReadLine();

number = Convert.ToInt32(Strnumber);

}

catch

{

Console.WriteLine("Numero Invalido!!!");

return CapturaNumero(cadena); // Utiliza recursividad

// hasta introducir un numero valido

}

return number;

}

public void Run()

{//Metodo que ejecuta e imprime

Int32[] Temperatura = new Int32[100];

Int32 suma = 0,Cantidad=0;

float Media=0F;

do

{

Cantidad = CapturaNumero("Cantidad de Temperaturas ");

} while (Cantidad > 100);

for (int i = 0; i < Cantidad; i++)

{

Temperatura[i] = CapturaNumero("Introducir temperatura No." + i.ToString() + ": ");

suma = suma + Temperatura[i];

}

Media = (float)suma / Cantidad;

Console.WriteLine("La media es {0}", Media);

Console.Write("Las Temperaturas Mayores a la Media son ");

for (int i = 0; i < Cantidad; i++)

{

if (Temperatura[i] >= Media) Console.Write(" {0}", Temperatura[i]);

}

}

}

class Program

{

static void Main(string[] args)

{

Clase ejecuta = new Clase();

ejecuta.Run();

Console.ReadLine();

}

}

}

7.15 Rellenar una matriz identidad de 4 por 4 elementos

using System;

using System.Collections.Generic;

using System.Text;

namespace Ejercicio_7_15

{

class Program

{

static void Main(string[] args)

{

//int[,] matriz = {{1,0,0,0},{0,1,0,0},{0,0,1,0},{0,0,0,1}}; Forma FACIL

int [,] matriz = new int[4,4];

for (int i = 0; i < 4; i++)

{

for (int j = 0; j < 4; j++)

{

if (j == i) matriz[i, j] = 1;

else matriz[i, j] = 0;

}

}

Console.WriteLine("==============================");

for (int f = 0; f < 4; f++)

{

for (int c = 0; c < 4; c++)

{

Console.Write(" {0}", matriz[f, c]);

}

Console.WriteLine();

}

Console.WriteLine("==============================");

Console.Read();

}

}

}

7.21 Se dispone de las notas de cuarenta alumnos. Cada uno de ellos puede tener una o varias notas. Escribir un algoritmo que permita obtener la media de cada alumno y la media de la clase a partir de la entrada de las notas desde el Terminal.

using System;

using System.Collections.Generic;

using System.Text;

namespace Ejercicios_7_21

{

public class Clase

{

public struct registro

{

public Int32[] notas;

public Int32 CantNotas,Suma;

public float promedio;

};

public Int32 CapturaNumero(string cadena)

{// Recibe un string para solicitar la entrada y devuelve

// el numero introducido.

string Strnumber;

int number = 0;

try

{

Console.Write(cadena);

Strnumber = Console.ReadLine();

number = Convert.ToInt32(Strnumber);

}

catch

{

Console.WriteLine("Numero Invalido!!!");

return CapturaNumero(cadena); // Utilizo recursividad hasta

// introducir un numero valido

}

return number;

}

public void Run(int CantidadAlumnos)

{//Metodo que ejecuta e imprime

registro[] alumno = new registro[CantidadAlumnos];

Int32 Cantidad=0;

float promedio_total = 0;

for (int i = 0; i < CantidadAlumnos; i++)

{

Cantidad = 0;

do

{

Console.WriteLine("n——————————————————-");

Cantidad = CapturaNumero("Cantidad de notas alumno numero " + i.ToString() + ": ");

} while (Cantidad > 4 || Cantidad == 0);

alumno[i].CantNotas = Cantidad;

alumno[i].notas = new Int32[Cantidad];

for (int j = 0; j < Cantidad; j++)

{

alumno[i].notas[j] = CapturaNumero("Introducir Nota #" + j.ToString() + " de Alumno No." + i.ToString() + ": ");

alumno[i].Suma = alumno[i].Suma + alumno[i].notas[j];

}

alumno[i].promedio = (float) alumno[i].Suma / alumno[i].CantNotas;

promedio_total = promedio_total + alumno[i].promedio;

Console.WriteLine("Su promedio es {0}", alumno[i].promedio);

}

promedio_total = (float)promedio_total / CantidadAlumnos;

Console.WriteLine("El promedio de todos los alumnos {0}", promedio_total);

}

}

class Program

{

static void Main(string[] args)

{

Clase ejecuta = new Clase();

ejecuta.Run(40);

Console.ReadLine();

}

}

}

5.5 Imprimir todos los números primos entre 2 y 1000 inclusive.

using System;

using System.Collections.Generic;

using System.Text;

namespace Ejercicio_5_5

{

public class Clase

{

bool Si_Primo(Int32 numero)

{

bool Divisor = true;

Int32 n = 2;

if (numero <= 2) return false;

while (Divisor == true && n < numero)

{

if (numero % n == 0) Divisor = false;

n++;

}

return Divisor;

}

public void Run()

{//Metodo que ejecuta e imprime

for (int i = 0; i <= 1000; i++)

{

if (Si_Primo(i) == true) Console.Write(" {0,4}", i);

}

}

}

class Program

{

static void Main(string[] args)

{

Clase ejecuta = new Clase();

ejecuta.Run();

Console.ReadLine();

}

}

}

5.8 Leer 100 números y determinar la media de los números positivos y la media de los números negativos.

using System;

using System.Collections.Generic;

using System.Text;

namespace Ejercicio_5_8

{

public class Clase

{

public Int32 CapturaNumero(string cadena)

{// Recibe un string para solicitar la entrada

// y devuelve el numero introducido.

string Strnumber;

int number = 0;

try

{

Console.Write(cadena);

Strnumber = Console.ReadLine();

number = Convert.ToInt32(Strnumber);

}

catch

{

Console.WriteLine("Numero Invalido!!!");

return CapturaNumero(cadena); // Utiliza recursividad

// hasta introducir un numero valido

}

return number;

}

public void Run(int Cantidad)

{//Metodo que ejecuta e imprime

Int32 Numero = 0;

Int32 SumaPositivo = 0, SumaNegativo = 0;

Int32 CantidadPositivo = 0, CantidadNegativo = 0;

float MediaPositivo = 0, MediaNegativo = 0;

for (int i = 0; i < Cantidad; i++)

{

Numero = CapturaNumero("Introducir Numero " + i.ToString() + "/100: ");

if (Numero<0) {

SumaNegativo=SumaNegativo+Numero;

CantidadNegativo++;

}else {

SumaPositivo=SumaPositivo+Numero;

CantidadPositivo++;

}

}

MediaPositivo = (float)SumaPositivo / CantidadPositivo;

MediaNegativo = (float)SumaNegativo / CantidadNegativo;

Console.WriteLine("La media de los positivo es {0}", MediaPositivo);

Console.WriteLine("La media de los negativo es {0}", MediaNegativo);

}

}

class Program

{

static void Main(string[] args)

{

Clase ejecuta = new Clase();

ejecuta.Run(100);

Console.ReadLine();

}

}

}

5.12 Calcular el enésimo término de la seria de Fibonacci.

using System;

using System.Collections.Generic;

using System.Text;

namespace Ejercicio_5_12

{

public class Clase

{

long CapturaNumero(string cadena)

{// Recibe un string para solicitar la entrada

// y devuelve el numero introducido.

string Strnumber;

long number = 0;

try

{

Console.Write(cadena);

Strnumber = Console.ReadLine();

number = (long)Convert.ToInt32(Strnumber);

}

catch

{

Console.WriteLine("Numero Invalido!!!");

return CapturaNumero(cadena); // Utiliza recursividad

// hasta introducir un numero valido

}

return number;

}

long fib(long n)

{

if ((n == 1) || (n == 2)) return 1;

else return (fib(n – 1) + fib(n – 2));

}

public void Run()

{//Metodo que ejecuta e imprime

long Numero = 0;

Numero = CapturaNumero("Introduzca el No. E-Nesimo de la Serie ");

Console.WriteLine("El E-Nesimo de la Serie es {0}", fib(Numero));

}

}

class Program

{

static void Main(string[] args)

{

Clase ejecuta = new Clase();

ejecuta.Run();

Console.ReadLine();

}

}

}

5.16 Imprimir una tabla de multiplica 15 x 15.

using System;

using System.Collections.Generic;

using System.Text;

namespace Ejercicio_5_16

{

class Program

{

static void Main(string[] args)

{

Console.Write(" ");

for (int i = 1; i < 16; i++)

{

Console.Write("{0,4}", i);

}

Console.WriteLine();

for (int i = 1; i < 16; i++)

{

Console.Write("{0,4}*", i);

for (int j = 1; j < 16; j++)

{

Console.Write("{0,4}", i * j);

}

Console.WriteLine();

}

Console.Read();

}

}

}

 

Ralph Jiménez

Republica Dominicana

Analista Programador

30 Mayo 2007

Partes: 1, 2
 Página anterior Volver al principio del trabajoPágina siguiente