
PROGRAMAFICIÓN
R-suelve tus dudas
EJERCICIOS DE EXÁMENES PASADOS
¡¡PONTE A PRUEBA!!
EJERCICIO 1 (2017)
Realizar un programa en R que permita obtener el elemento de una matriz cuyo valor absoluto es máximo (almacenado en elmax) Y el elemento cuyo valor absoluto es mínimo (almacenado en elmin). Así como la fila y la columna en que está cada uno (imax, jmax, imin, jmin). Aplíqueselo a la matriz :
El resultado que deberá salir por lo tanto es :
elmax=40, imax=2, jmax=2, elmin=-0,01, imin=3, jmin=3

SOLUCIÓN:
# creo la matriz que me da el enunciado:
A=matrix(c(-3,4/3,-2,5/4,-40,exp(3),7,-1,-0.01,-0.5,0.2,14), nrow=3, ncol=4)
# inicio todo a los primeros valores, para empezar a comparar
elmax=A[1,1];elmin=A[1,1]; imax=1;imin=1;jmax=1;jmin=1
#Hago bucles para comparar cada elemento de la matriz. Si es mayor que el número almacenado en elmax, lo guardo como elmax,
# si es menor que el guardado en elmin, lo guardo como el nuevo elmin. (y sus coordenadas i y j)
for (i in 1:3){
for (j in 1:4){
if(abs(A[i,j])>abs(elmax)){
elmax=A[i,j];imax=i;jmax=j}
else if(abs(A[i,j])<abs(elmin)){
elmin=A[i,j];imin=i;jmin=j}
}
}
elmax;imax;jmax;elmin;imin;jmin

Al ejecutarlo, los datos de salida son los esperados:


ERRORES COMUNES:
- Equivocarse al guardar los nombres de las variables
- Los números al crear la matriz se meten en orden por columnas, de arriba abajo
- El número e, se escribe con exp
- Entre las 2 comparaciones se pone else if, aunque con if sólo también funciona
EJERCICIO 2 (2018)

SOLUCIÓN:
#metemos datos iniciales y creamos la función
a=0; b=pi; n=100
f<-function(x){
v=sin(x)+cos(1+x**2)-1
return(v)
}
#creamos h, y metemos la fórmula dada en el enunciado para resolver la integral
h=(b-a)/(n-1)
suma=0
S=0
for(i in 1:n){
S[i]=a+(i-1)*h
}
for (i in 1:(n-1)){
suma=suma+f(((S[i]+S[i+1])/2)-(h*(sqrt(3)/3)))+f((S[i]+S[i+1])/2+(h*sqrt(3))/3)
}
integral=(h/2)*suma
integral

El resultado dado, comparado al valor real es:


ERRORES COMUNES:
-Hay que llamar a la función
- El cálculo del valor h se hace fuera de los bucles
- Cuidado con los paréntesis
- No confundir i con 1
Si has fallado, te vendría bien repasar funciones: