Sol_PC4_Lenguaje de Programación II

download Sol_PC4_Lenguaje de Programación II

of 8

description

Lenguaje de Programación II, Visual Basic

Transcript of Sol_PC4_Lenguaje de Programación II

  • UNIVERSIDAD NACIONAL DE INGENIERIA ESCUELA DE INGENIERIA ESTADSTICA FIECS

    CCCiiiccclllooo AAAcccaaadddmmmiiicccooo 222000111444---IIIIII

    PC4_2014II / Pag. 1

    4ta. PRACTICA CALIFICADA

    SOLUCIONARIO Problema 1. Las notas de cuatro (04) PRCTICAS de un grupo de estudiantes se encuentran en el archivo Notas.txt, con ellas se debe calcular el Promedio eliminando la MAS BAJA. El programa debe muestre como resultado:

    Listado con las cuatro Prcticas y el Promedio. Tabla de frecuencias para el Promedio considerando cuatro (04) categoras.

    Agregue un Histograma para esas categoras.

    #include

    #include

    #include

    #include

    #include

    #include

    int Min(int a1, int a2, int a3, int a4); float Menor(int k, float w[]); float Mayor(int k, float w[]);

    void main() {int i,j,N, Valor,K; float p,q,h; clrscr(); ifstream Datos ("D:\\EC313\\Notas.txt"); j=0; while (!Datos.eof()) {j++; Datos>>Valor>>Valor>>Valor>>Valor;} N=j-1; Datos.close(); int x[N+1],y[N+1],z[N+1],w[N+1]; float Prom[N+1]; ifstream Notas ("D:\\EC313\\Notas.txt"); for (j=1; j>x[j]>>y[j]>>z[j]>>w[j]; for (j=1; j

  • UNIVERSIDAD NACIONAL DE INGENIERIA ESCUELA DE INGENIERIA ESTADSTICA FIECS

    CCCiiiccclllooo AAAcccaaadddmmmiiicccooo 222000111444---IIIIII

    PC4_2014II / Pag. 2

    for (j=1; j

  • UNIVERSIDAD NACIONAL DE INGENIERIA ESCUELA DE INGENIERIA ESTADSTICA FIECS

    CCCiiiccclllooo AAAcccaaadddmmmiiicccooo 222000111444---IIIIII

    PC4_2014II / Pag. 3

    #include

    #include

    #include

    #include

    #include

    #include

    struct Estud {char Codigo[10], Nombres[40], Ciudad[20], Facultad[8]; float Nota;};

    void main() {int N,i,j,k; float t,Acum,S; char b[40], Rpta; ifstream Dat ("D:\\EC313\\Alumnos.dat"); Estud Aux; k=0; while (!Dat.eof()) {k++; Dat.read ((char *) &Aux, sizeof(Estud));} N=k-1; Estud Alumno[N+1]; clrscr(); Dat.close(); ifstream Datos ("D:\\EC313\\Alumnos.dat"); for (j=1; j

  • UNIVERSIDAD NACIONAL DE INGENIERIA ESCUELA DE INGENIERIA ESTADSTICA FIECS

    CCCiiiccclllooo AAAcccaaadddmmmiiicccooo 222000111444---IIIIII

    PC4_2014II / Pag. 4

    gotoxy(47,4); cout

  • UNIVERSIDAD NACIONAL DE INGENIERIA ESCUELA DE INGENIERIA ESTADSTICA FIECS

    CCCiiiccclllooo AAAcccaaadddmmmiiicccooo 222000111444---IIIIII

    PC4_2014II / Pag. 5

    Function Mayor(m As Integer, w() As Integer) As Integer Dim j As Integer, Aux As Integer Aux = -10000 For j = 1 To N If (Aux < w(j)) Then Aux = w(j) Next Mayor = Aux End Function

    Private Sub cmdProb3_Click()

    Dim j As Integer, k As Integer, i As Integer Dim a As Integer, b As Integer Dim p As Single, q As Single Dim y() As Single N = InputBox("CANTIDAD de Valores", "INGRESO DE DATOS") k = InputBox("CANTIDAD de Clases", "INGRESO DE DATOS") ReDim x(N) ReDim y(k) a = InputBox("ingrese MENOR Valor", "INGRESO DE DATOS") b = InputBox("ingrese MAYOR Valor", "INGRESO DE DATOS") Randomize For j = 1 To N x(j) = a + (b - a) * Rnd Hoja1.Cells(j, 1) = x(j) Next p = Menor(N, x) q = Mayor(N, x) For j = 0 To k y(j) = p + (j / k) * (q - p) Next Dim f() As Integer ReDim f(k) For j = 1 To k f(j) = 0 Next For j = 1 To N For i = 1 To k If (x(j) < y(i) And x(j) >= y(i - 1)) Then f(i) = f(i) + 1 Next If (x(j) = q) Then f(k) = f(k) + 1 Next Hoja1.Cells(1, 3) = "DISTRIBUCION DE FRECUENCIAS, SEGUN CLASES" For j = 1 To k Hoja1.Cells(j + 1, 3) = y(j - 1) & " - " & y(j)

  • UNIVERSIDAD NACIONAL DE INGENIERIA ESCUELA DE INGENIERIA ESTADSTICA FIECS

    CCCiiiccclllooo AAAcccaaadddmmmiiicccooo 222000111444---IIIIII

    PC4_2014II / Pag. 6

    Hoja1.Cells(j + 1, 4) = f(j) Next End Sub

    Problema 4. Lea (genere) una lista de valores enteros y muestre el PRIMER VALOR que se repite y su posicin original.

    Ejemplo. Sea la lista: 13, 15, 08, 10, 12, 05, 14, 08, 12, 15, 10, 13 En este caso, el Primer valor que se repite es 08 y su posicin original es tres (3)

    Dim N As Integer Dim x() As Integer

    Private Sub cmdProb4_Click()

    Dim j As Integer, k As Integer Dim NRep As Integer Dim Valor As Integer, pos1 As Integer, pos2 As Integer Dim p As Integer, q As Integer N = InputBox("CANTIDAD de valores a GENERAR", "INGRESO DE DATOS") ReDim x(N) p = InputBox("MENOR Valor", "INGRESO DE DATOS") q = InputBox("MAYOR Valor", "INGRESO DE DATOS") Hoja2.Cells(1, 1) = "Valores" Randomize For j = 1 To N x(j) = Int(p + (q - p) * Rnd) Hoja2.Cells(j + 1, 1) = x(j) Next For k = 2 To N NRep = 0 For i = 1 To k - 1 If (x(k) = x(i)) Then NRep = NRep + 1 Exit For End If Next If (NRep > 0) Then Valor = x(k) pos1 = i pos2 = k Exit For End If Next If (NRep > 0) Then Hoja2.Cells(2, 2) = "PRIMER Valor REPETIDO"

  • UNIVERSIDAD NACIONAL DE INGENIERIA ESCUELA DE INGENIERIA ESTADSTICA FIECS

    CCCiiiccclllooo AAAcccaaadddmmmiiicccooo 222000111444---IIIIII

    PC4_2014II / Pag. 7

    Hoja2.Cells(2, 3) = Valor Hoja2.Cells(3, 2) = "Posicion INICIAL" Hoja2.Cells(3, 3) = pos1 Hoja2.Cells(4, 2) = "Posicion FINAL" Hoja2.Cells(4, 3) = pos2 Else Hoja2.Cells(2, 2) = "NO HAY Valores REPETIDOS" End If End Sub

    Problema 5. Lea (genere) datos de N alumnos correspondientes a sus notas finales en los cursos (variables) EC313, ES311 y calcule el Coeficiente de CORRELACION entre ambas variables (notas). Adems, debe mostrar la cantidad de alumnos aprobados en cada curso.

    Dim N As Integer Dim x() As Integer, y() As Integer

    Function Media(k As Integer, w() As Integer) As Single Dim j As Integer, Suma As Single Suma = 0 For j = 1 To k Suma = Suma + w(j) Next Media = (Suma / k) End Function

    Function Covar(k As Integer, w() As Integer, z() As Integer) As Single Dim j As Integer, wz() As Integer ReDim wz(k) For j = 1 To k wz(j) = w(j) * z(j) Next Covar = (Media(k, wz) - Media(k, w) * Media(k, z)) End Function

    Private Sub cmdProb5_Click()

    Dim j As Integer Dim p As Integer, q As Integer Dim AprobX As Integer, AprobY As Integer N = InputBox("CANTIDAD de Valores", "INGRESO DE DATOS") ReDim x(N) ReDim y(N) p = InputBox("MENOR Valor para EC313", "INGRESO DE DATOS") q = InputBox("MAYOR Valor para EC313", "INGRESO DE DATOS") Randomize

  • UNIVERSIDAD NACIONAL DE INGENIERIA ESCUELA DE INGENIERIA ESTADSTICA FIECS

    CCCiiiccclllooo AAAcccaaadddmmmiiicccooo 222000111444---IIIIII

    PC4_2014II / Pag. 8

    For j = 1 To N x(j) = Int(p + (q - p) * Rnd) If (x(j) >= 10) Then AprobX = AprobX + 1 Hoja3.Cells(j + 1, 1) = x(j) Next Hoja3.Cells(2, 4) = N Hoja3.Cells(3, 4) = AprobX p = InputBox("MENOR Valor para ES311", "INGRESO DE DATOS") q = InputBox("MAYOR Valor para ES311", "INGRESO DE DATOS") Randomize For j = 1 To N y(j) = Int(p + (q - p) * Rnd) If (y(j) >= 10) Then AprobY = AprobY + 1 Hoja3.Cells(j + 1, 2) = y(j) Next Hoja3.Cells(4, 4) = AprobY Hoja3.Cells(6, 4) = Covar(N, x, y) Hoja3.Cells(7, 4) = (Covar(N, x, y) / (Covar(N, x, x) * Covar(N, y, y))) ^ 0.5 End Sub