Examen de Informática: Primer parcial 30-01-2007 Alumno: Solución Profesor Grupo: Nota. Responda a las preguntas en el espacio reservado a tal efecto. 1º) Escribir en Vbasic 6.0 el código que calcule la suma de los 100 primeros números impares, de modo que el resultado se almacene en una variable llamada S100Impares, que ya está definida. (1 pto) Dim i As Integer S100Impares = 0 For i = 0 to 99 S100Impares = S100Impares + (i*2) + 1 Next i 2º) Escribir en Vbasic 6.0 el código que realice la transformación de ángulos de Centesimal a Radianes. Para ello supondrá que el ángulo objeto de esta transformación se encuentra almacenado en la variable Azimut y el resultado se almacena sobre la misma variable que NO hay que definir. (0,5 pto) Azimut = Azimut * Atn(1) / 50 3º) Disponemos de las coordenadas (X,Y) de 3 puntos que definen un triángulo cualquiera almacenadas en las variables X1, Y1, X2, Y2, X3, Y3 y se desea calcular la superficie de dicho triángulo. Escriba el código en Vbasic que desarrolle el cálculo de dicha superficie, considerando la posibilidad de que el triángulo como tal no exista (los tres puntos estén alineados en un segmento de recta). (2,5 pto) Dim a As Double, b As Double, c As Double a = Sqr ( ( X2 – X1) ^2 + (Y2 – Y1)^2) b = Sqr ( ( X3 – X2) ^2 + (Y3 – Y2)^2) c = Sqr ( ( X3 – X1) ^2 + (Y3 – Y1)^2) Dim sp As Double, sup As Double sp = ( a + b + c ) / 2 If ( (sp > a ) And (sp > b) And (sp > c) ) Then sup = Sqr ( (sp * (sp – a) * (sp – b) * (sp – c)) Else sup = 0 End If 1 4º) Sean A, B y C tres matrices Bidimensionaes de 5*5 elementos todas ellas. a) Identifique el tipo de tratamiento que realiza el siguiente código. (1 pto) Dim i As Integer, j As Integer For i = 0 To 4 For j = 0 To 4 C(i, j) = A(j,i)) Next j Next i TRATAMIENTO ....C = Traspuesta de A.............. b) Complete el código proporcionado para que el tratamiento de las matrices sea C = B – A. (1 pto) Dim i As Integer, j As Integer For i = .0.. To ..4... For j = ..0.. To .4... C(i, j) = B(i,j) – A(i,j)................ Next j Next i c) Complete el siguiente código para que el tratamiento de las matrices responda a la expresión C = B * A. (1 pto) Dim i As Integer, j As Integer, k As Integer For i = ..0.. To .4... For j = ..0.. To .4... C(i,j) = …0. For k = ..0.. To .4.... C(i,j) = C(i,j) + B(i,k) * A(k,j) Next k Next j Next i 5º) Si disponemos de un control de tipo TextBox llamado Text1 en un formulario y se desea que su valor numérico de tipo real con doble precisión se almacene en la variable DIST, escriba el código Vbasic que realice la transformación y NO genere errores en su ejecución. (1 pto) DIST = Val (Replace(Text1.Text, “,”,”.”)) También es válido If Text1.Text <> “” Then DIST = Cdb(Text1.Text) Else DIST = 0 2 6º) Escribir el código de un procedimiento que permita transformar de cartesianas a polares y viceversa, de modo que se adapte a la siguientes estructura y haga uso de una hipotética función que calcula el Azimut y retorna el resultado en radianes. El procedimiento operará SOLO con azimutes en radianes. (2 ptos) Function Azimut (IncX As Double, IncY As Double) As Double Public Sub RecPol( XX As Double, YY As Double, DD As Double, AAZ As Double, TRANS As Boolean) ‘ TRANS = True Rectangulares a Polares; TRANS = False Polares a Rect. If TRANS = True Then DD = Sqr( XX^2 + YY^2) AAZ = Azimut(XX, YY) Else XX = DD * Sin(AAZ) YY = DD * Cos(AAZ) End If End Sub 3