Está en la página 1de 3

Universidad Nacional de Ingeniería

Facultad de Ingeniería Mecánica


Departamento Académico de Ciencias Básicas y humanidades
Asignatura: Introducción a la Computación BIC01
Periodo Académico 2018-2

EXAMEN SUSTITUTORIO
Profesores: Ings. Augusto Tam, Julio Vásquez, Máximo Obregón, Ricardo Castañeda.
Secciones: A-B-C-D-E-F-G-H-I
Fecha: Lunes, 17 de Diciembre del 2018 Hora: 14 a 16 horas Duración: 110 minutos
Indicaciones: El desarrollo se realiza sin apuntes, ni calculadoras.

Problema 1 (5 puntos): Escribir un programa que lea 4 valores y me indique si los 4 números son
iguales o si son iguales 3 o si son iguales 2 y 2 (2 pares) o si dos son iguales o si son todos diferentes.

Problema 2 (5 puntos): Desarrolle una función (método o módulo) que reciba como parámetro un
arreglo unidimensional (vector) de números enteros y un número de divisores deseado para que
retorne en otro arreglo unidimensional (vector) aquellos números que tengan la misma cantidad de
divisores que el número de divisores deseado.
SUGERENCIA: Desarrolle una función (método o módulo) adicional para que retorne la cantidad
de divisores que tiene un número entero dado como parámetro.

Problema 3 (5 puntos): Escribir una función (método o módulo) llamado mincuad, con entrada de
dos arrays unidimensionales, 𝑥 y 𝑦, con el cual, calculará la recta de mínimos cuadrados que mejor
se ajusta a la data de entrada, para ello considere 3 parámetros de salida:
• m y b que representa a la recta, que mejor Donde:
se ajusta: 𝑦 = 𝑚𝑥+b • ∑ 𝑥 es la suma de los valores de 𝑥
(∑ 𝑥𝑦) − (∑ 𝑥)𝑦̅ • ∑ 𝑦 es la suma de los valores de 𝑦
𝑚= 2
(∑ 𝑥 ) − (∑ 𝑥)𝑥̅ • ∑ 𝑥 2 es la suma de los cuadrados de 𝑥
𝑏 = 𝑦̅ − 𝑚𝑥̅ • ∑ 𝑦 2 es la suma de los cuadrados de 𝑦
• ∑ 𝑥𝑦 es la suma de los productos de 𝑥 y 𝑦
• r como la correlación del ajuste. • 𝑥̅ es la media de los valores de 𝑥
𝑛(∑ 𝑥𝑦) − (∑ 𝑥)(∑ 𝑦) • 𝑦̅ es la media de los valores de y
𝑟=
√[(𝑛 ∑ 𝑥 2) − (∑ 𝑥)2 ][(𝑛 ∑ 𝑦 2 ) − (∑ 𝑦)2 ] • 𝑛 es el número de puntos utilizados para el
ajuste
Considere que existe una función llamado mean(vec), que te permite calcular el promedio de todos
los valores del arreglo vec. No se podrá usar la función sum, ni los operadores (.*, .^, ^ ).
Problema 4 (5 puntos)
Desarrolle una función (método o módulo) llamado: calcula, que tiene como parámetro de entrada,
una matriz de 2 dimensiones cuyos valores son las edades de los alumnos de un colegio. En cada
columna se ha registrado las edades de cada aula, además, cada aula tiene 35 alumnos y el colegio
tiene 22 aulas. La función debe devolver el promedio de edades redondeado a 0 decimales de cada
aula, en un vector fila. Debe considerar que la toma y procesamiento de la información se realiza en
un día, por ello, se debe tener en cuenta que algunos alumnos no asistieron, registrando 0 en la matriz
como edad, para esos casos; eso implica que para el cálculo del promedio de edades debe realizarse
solamente con los alumnos que asistieron. También debe considerar que algunas aulas la inasistencia
fue al 100%, en esos casos debe considerar como promedio -1.
Los profesores
SOLUCIONARIO:
Probl1:
v1 = input ('ingrese 1er valor ==> ');
v2 = input ('ingrese 2do valor ==> ');
v3 = input ('ingrese 3er valor ==> ');
v4 = input ('ingrese 4to valor ==> ');
if(v1==v2)&&(v2==v3)&&(v3==v4)
fprintf('Los 4 son iguales %3d %3d %3d %3d\n',v1,v2,v3,v4);
elseif ((v1==v2)&&(v2==v3)) || ((v1==v3)&&(v3==v4))
||((v2==v3)&&(v3==v4))
fprintf('Hay 3 iguales %3d %3d %3d %3d\n',v1,v2,v3,v4);
elseif ((v1==v2)&&(v3==v4)) || ((v1==v3)&&(v2==v4))
||((v1==v4)&&(v2==v3))
fprintf('Hay 2 pares %3d %3d %3d %3d\n',v1,v2,v3,v4);
elseif ((v1==v2) || (v1==v3)) || (v1==v4) ||(v2==v3) ||((v2==v4) ||
(v3==v4))
fprintf('Hay 1 par %3d %3d %3d %3d\n',v1,v2,v3,v4);
else
fprintf ('Todas son diferentes %3d %3d %3d
%3d\n',v1,v2,v3,v4);
end

Probl2:
int[] ndivisores(int[] vector, int n){
int[] x = new int[vector.length];
int j=0;
for(int i=0; i<vector.length; i++){
if(divisores(vector[i]) == n){
x[j] = vector[i];
j++;
}
}
Return x;
}
int divisores(int num){
int c=0;
for(int i=1; i<=num; i++){
if(num % i == 0)
c++;
}
return c;
}

Probl3:
function [m,b,r] = mincuad(x,y)
%x: es un vector columna
%y: es un vector columna
n=length(x);
m=(suma_vec(prod_elem(x,y))-suma_vec(x)*mean(y))/(suma_vec(x.^2)-
suma_vec(x)*mean(x));
b=mean(y)-m*mean(x);
r=(n*(suma_vec(prod_elem(x,y)))-
suma_vec(x)*suma_vec(y))/sqrt((n*suma_vec(x.^2)-
(suma_vec(x))^2)*(n*suma_vec(y.^2)-(suma_vec(y))^2));
end

function z=suma_vec(x)
%x: es un vector columna o fila
n=length(x);
z=0;
for i=1:1:n
z=z+x(i);
end
end

function z=prod_elem(x,y)
%x: es un vector columna o fila
%y: es un vector columna o fila
n=length(x);
for i=1:1:n
z(i)=x(i)*y(i);
end
end

Probl4:
function P=calcula(T)
f=35;c=22;
for j=1:c
con=0;
sum=0;
for i=1:f
if T(i,j)>0
con=con+1;
sum=sum+T(i,j);
end
end
if con==0
P(j)=-1;
else
P(j)=round(sum/con);
end
end

También podría gustarte