2. Determine cules de las siguientes cadenas de smbolos pueden constituir expresiones aritmticas sintcticamente vlidas en C#: a) A + ( B * 2 ) b) +( A + ( A + A )) c) X d) A* - B e) PiSobre2 f) ( A/ B) (C /D * E)
3. Desarrolle los rboles de evaluacin y evale las siguientes expresiones aritmticas: a) ( A / B) ( C / ( D * E )) b) A / B ( C / ( D * E )) c) A / B ( C / D * E ) d) (A + B*C) / (( D * E ) ( A * C )) e) A + ( B*C ) / ( D * E ) ( A * C )
4. Seleccione algunos de los listados del presente captulo y determine bloques de cdigo, identificadores, palabras reservadas, comentarios, declaraciones de variables, constantes, tipos de datos bsicos y expresiones.
6. En el listado que se muestra seguidamente determine qu elementos del estilo de cdigo propuesto en I.2.7 han sido ignorados. class C { int ArrancEn; int P; void arranca() { ArrancEn = Environment.TickCount; } void Para() { P=Environment.TickCount; } long tiempo() { return P-ArrancEn; } } 7. Refine la clase Circunferencia del presente captulo con la incorporacin de un constructor. 8. Disee e implemente una clase que dado un nmero de milisegundos entre 0 y 106, obtiene el equivalente en horas, minutos, segundos y centsimas de segundos. 9. Refine la clase Cronmetro de forma tal que el tiempo transcurrido se pueda mostrar en el formato horas, minutos, segundos y centsimas de segundos (auxliese de la clase definida en el ejercicio anterior). 10. Refine la clase Cronmetro de forma tal que ahora se le pueda agregar una funcionalidad Continuar, que permita parar y luego seguir acumulando el tiempo (idea original en [24]).. 11. La nota final de una asignatura se calcula a partir de las notas de los tres exmenes parciales, calculando la parte entera de la media de dichas notas. Disee e implemente una clase que permita representar asignaturas con su respectivo nombre, las tres notas de los parciales y la nota final. 12. Disee e implemente una clase que permita representar puntos de R2 , al menos garantice responsabilidades para mover dichos puntos y para determinar la distancia entre dos puntos. 13. Disee e implemente una clase que permita representar vectores de R3 , al menos garantice responsabilidades para las operaciones suma, producto por un escalar, producto escalar y producto vectorial. 14. Disee e implemente una clase que permita representar matrices cuadradas de orden 2, al menos garantice responsabilidades para las operaciones suma, producto y producto por un escalar. 15. Disee e implemente una clase que permita representar cuadrilteros, al menos garantice responsabilidades para calcular rea, permetro, longitud de las diagonales. Incorpore un mtodo constructor y al menos una sobrecarga de este. 16. Disee e implemente una clase que permita representar tringulo, garantice al menos responsabilidades para calcular rea, permetro. Incorpore un mtodo constructor y al menos una sobrecarga de este. 17. Disee e implemente una clase que permita representar rectas de la forma y = mx + n, garantice al menos responsabilidades para evaluar un valor, hallar su cero, calcular la pendiente de una recta perpendicular a esta. Incorpore un mtodo constructor y al menos una sobrecarga de este. 18. Disee e implemente una clase que permita representar medidas (expresadas en metros), garantice al menos responsabilidades necesarias para conocer el equivalente en km, cm, mm. Defina un mtodo constructor para la misma. 19. Disee e implemente una clase que permita representar ecuaciones de segundo grado, garantice responsabilidades para calcular el determinante, calcular una de sus raices y obtener el resultado de evaluar un valor. Defina un mtodo constructor para la misma. 20. Dadas las definiciones de las clases siguientes: class Persona { string nombre; int aoNacimiento; Persona (string nombre,int aoNacimiento) { this.nombre = nombre; this.aoNacimiento = aoNacimiento; } int Edad ( int unAo) { return unAo - aoNacimiento; } }
class A { int x,y; A (int unX, int unY) { x = unX; y = unY; } int Producto () { return x*y; } int Suma () { return x+y; } }
class B { string s1,s2; string Suma () { return s1 + + s2; } }
a) De las instrucciones que se listan a continuacin Cuales son correctas son correctas y cules no?. Justifique en cada caso. { Persona juan = new Persona( juan, 1970), p , j; p.nombre = paco; A valor1 = new A(); j = juan; string s1 = valor1.Producto(); B valor2 = new B(hola, bien); B v1 = new B(); v1.s1 = v1.s2 = hola; j.nombre = pepe; Persona p1 = j; j = new Persona(juan, 1780); j.aoNacimiento = 1910; p1.aoNacimiento = j.aoNacimiento ; v1.suma = cadena; }
b) Tomando en cuenta el listado anterior Qu resultado devuelve las instrucciones siguientes? juan.Edad(); juan.nombre;