Sie sind auf Seite 1von 3

Algoritmos y Programación

Práctica 3

Para la resolución de algunos ejercicios de esta práctica resultará más cómodo si se


redirecciona la entrada de datos por teclado de tal forma que se lean de un archivo de texto.

Para eso deberá incluir como primera sentencia de la función Main:

Console.SetIn(new System.IO.StreamReader("nombredearchivo.txt"));

De esa manera cada vez que en el código se ejecute un Console.ReadLine() en vez de habilitar
la consola para que el usuario tipee un valor usando el teclado, leerá una línea del archivo de
texto especificado.

Este archivo deberá estar ubicado en la misma carpeta donde está el ejecutable. De lo
contrario deberá especificarse la ruta completa del archivo para poder ser leído, ejemplo:

"C:\\Mis documentos\\Algoritmos y programación\\Práctica 3\\ejercicio 7.txt"

1) Codifique la clase Hora de tal forma que al ejecutar el siguiente programa:


class Program
{
public static void Main(string[] args)
{
Hora h=new Hora(23,30,15);
h.imprimir();
Console.ReadKey(true);
}
}
se imprima por consola:
23 HORAS, 30 MINUTOS Y 15 SEGUNDOS
2) Agregue un segundo constructor a la clase Hora para que pueda especificarse por un
solo parámetro que indique la cantidad de horas. Así el siguiente código:
class Program
{
public static void Main(string[] args)
{
Hora h1=new Hora(23,30,15);
Hora h2=new Hora("14:25:47");
h1.imprimir();
h2.imprimir();
Console.ReadKey(true);
}
}
produce la siguiente salida por consola:
23 HORAS, 30 MINUTOS Y 15 SEGUNDOS
14 HORAS, 25 MINUTOS Y 47 SEGUNDOS
3) Defina una clase Persona con 3 campos: Nombre, Edad y DNI. Escriba un algoritmo que
permita al usuario ingresar en una consola una serie de datos de la forma
"Nombre<TAB>Documento<TAB>Edad<ENTER>". Una vez finalizada la entrada de
datos, el programa debe imprimir en la consola un listado el listado con la forma:
Nro.) Nombre (Edad) <TAB> DNI.
Ejemplo:
1) Juan Perez (40) 2098745
2) José García (41) 1965412
...
a) Utilizando un arreglo de Personas. Antes de comenzar con la carga el usuario debe
ingresar por consola la cantidad de personas que va cargar.
b) Utilizando un arraylist. En este caso el usuario no debe ingresar la cantidad de
personas que va a cargar, simplemente el proceso de entrada finaliza con un string
vacío.
4) Agregue a la clase Persona un método esMayorQue(Persona p) que devuelva
verdadero si la persona que recibe el mensaje es de más edad que la persona recibida
como parámetro. Utilícelo para realizar un programa que compare la edad de la
primera persona del arreglo respecto de todas las demás imprimiendo en la consola el
resultado de dicha comparación.
5) Implemente la clase Matriz que se utilizará para trabajar con matrices matemáticas.
Implemente los dos constructores y todos los métodos que se detallan a continuación:
public Matriz(int filas, int columnas)
public Matriz(double[,] matriz)
public void SetElemento(int fila, int columna, double elemento)
public double GetElemento(int fila, int columna)
public void imprimir()
public void imprimir(string formatString)
public double[] GetFila(int fila)
public double[] GetColumna(int columna)
public double[] GetDiagonalPrincipal()
public double[] GetDiagonalSecundaria()
public double[][] getArregloDeArreglo()
public void sumarle(Matriz m)
public void restarle(Matriz m)
public void multiplicarPor(Matriz m)
6) Cree una clase llamada Operación con tres campos, operando1, operando2 y
operador. Modifique el ejercicio 14 de la práctica 1 para crear instancias de la clase
Operación con cada pedido del usuario. Cada instancia creada deberá devolver el
resultado correspondiente mediante la llamada a un método evaluar que será
encargado de devolver el resultado de la operación que representa. El programa
deberá imprimir todos los resultados una vez que el usuario desee salir de la
aplicación.
7) Cree un namespace llamado geometría en el cual estén codificadas las siguientes
clases:
a) Línea: Contiene como atributos el x y el y de comienzo, más el x e y de fin. Esta clase
posee los siguientes métodos:
• pendiente(): retorna la pendiente de la línea ( – ) / ( - ).
• esHorizontal(): retorna True si es una línea horizontal en caso contrario False.
• esVertical(): retorna True si es una línea vertical en caso contrario False.
• longitud(): devuelve la longitud de la línea √
b) Circulo: Contiene como atributos el x y el y donde se encuentra centrado el circulo,
más el radio del mismo. Así mismo, esta clase define los siguientes métodos:
• area(): devuelve el área del círculo.
• perimetro(): devuelve el perímetro del círculo.
c) Rectangulo: Contiene como atributos el x y el y de la esquina superior izquierda de
la figura, más el ancho y el largo del rectángulo. Los métodos a codificar son:
• area(): retorna el área de la figura.
• esCuadradro(): retorna true si es un cuadrado en caso contrario false.
• perimetro(): devuelve el perímetro.
Todas las clases deben tener su correspondiente constructor que reciba como
parámetro valores para todos sus campos.
8) Implementar una aplicación que permita crear por consola las figuras geométricas
especificadas en el ejercicio anterior. Dicha aplicación debe permitir al usuario
seleccionar que figura crear:
• Si el usuario ingresa una L entonces se creará una línea
• Si el usuario ingresa una C entonces se creará un círculo.
• Si el usuario ingresa una R entonces se creará un rectángulo.
Luego de elegida la figura a crear la aplicación solicitara los datos correspondientes a la
figura solicitada.
La carga de figuras finaliza cuando el usuario ingresa la letra F.
Al finalizar el programa deberá informar cuantas figuras de cada tipo fueron creadas y
para cada una de ellas informar sus características:

Ejemplo de salida esperada:


Se ingresaron 4 líneas, 2 círculos y 1 rectángulos
Linea de (2,3) a (8,7) con pendiente 0.66666666667 y longitud 7.2111025509
Linea vertical de (2,4) a (2,9) con pendiente infinita y longitud 5
Linea horizontal de (3,7) a (1,7) con pendiente 0 y longitud 2
Linea de (-2,0) a (-12,1) con pendiente -0.1 y longitud 10.0498756211209
Círculo con centro (3,4) y radio 6 cuya área es 113.03 y su perímetro es 37.69
Círculo con centro (1,-1) y radio 14 cuya área es 615.75 y su perímetro es 87.96
Rectángulo con vértice superior izquierdo (2,1), ancho 5 y alto 9 cuyo área es
45 y su perímetro es 28

Das könnte Ihnen auch gefallen