Post on 06-Jan-2016
description
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