Vous êtes sur la page 1sur 4

UNIVERSIDAD NACIONAL DE INGENIERIA P.A.

2018-2
FACULTAD DE INGENIERIA MECANICA
DACIBAHCC
EXAMEN FINAL
INTRODUCCION A LA COMPUTACION (BIC01)
 DURACION: 110 MINUTOS
 EL DESARROLLO SE REALIZA SIN APUNTES, NI CALCULADORAS.

Problema 1 (5 puntos): Escriba un programa que lea “n” y posteriormente lea n valores y me muestre el
segundo mayor, el programa utilizará variables simples, no podrá utilizar arreglos.

Problema 2 (5 puntos): Desarrolle un método/función que reciba como parámetro un arreglo


unidimensional (vector) de números enteros y retorne en otro arreglo unidimensional (vector) aquellos
números que tengan sólo 2 cifras.

Problema 3 (5 puntos): El área de un triángulo cuyos vértices son los puntos ( , ), ( , )y( , )
(ver figura 1)

Figura 1. Un triángulo y las coordenadas de


sus vértices.
Figura 2. Un polígono arbitrario puede ser dividido en
triángulos. Si el polígono tiene 𝑛 lados, entonces se dividirá
en 𝑛 triángulos.

puede hallarse haciendo uso de la siguiente ecuación: [ ( ) ( ) ( )]


El área A será positiva si los puntos son tomados en el sentido contrario de las manecillas del reloj, en el
caso contrario, cuando los puntos son tomados en el sentido de las manecillas del reloj, el área A es negativa.
El área de un polígono puede hallarse por suma de triángulos, esta idea se ilustra en la Figura 2. Si el
polígono dispone de lados, entonces podrá dividirse en triángulos.
Se pide crear un subprograma que calcule el perímetro, así como también el área del polígono. Escribir un
programa que lea un conjunto de puntos ordenados (los vértices del polígono) en 2 arreglos
unidimensionales, y que llame al subprograma antes diseñado, de tal manera que se devuelva el área y
perímetro del polígono.

Problema 4 (5 puntos): Desarrolle un programa que procese las notas de n alumnos de un aula en una tabla
de n filas y 12 columnas. Descripción de las columnas:
Columna Descripción
1 Número de alumno (correlativo)
2..11 Práctica 1, Práctica 2, Práctica 3, ,…. Práctica 10
12 Promedio de práctica (PP)
 El programa deberá pedir solo el número de alumnos y deberá generar aleatoriamente las notas de todas
las evaluaciones de -2 a 20, considerando -2 si ha plagiado y -1 si faltó a la evaluación. Para el cálculo de
PP considerar 0 en la evaluación que no asistió.
 La columna 1, debe ser llenada con números correlativos. La columna 12, debe consignar -2 si plagio en
alguna práctica, caso contrario, si falto por lo menos en 2 prácticas debe consignar 0, caso contrario,
debe calcular el promedio de prácticas, redondeado a 0 decimales.

Los profesores
 Muestre todas las notas mediante una función llamado imprimir(A). Asuma que esta función ya está
implementada.

SOLUCIONARIO:

Problema 1:
n = leeNumero();
for (int i = 1; i <= n; i++){
valor = leeNumero();
if (i==1)
mayor1 = valor;
else
if (i == 2)
if (valor > mayor1){
mayor2 = mayor1;
mayor1 = valor;
}
else
mayor2 = valor;
else if (valor > mayor1){
mayor2 = mayor1;
mayor1 = valor;
}
else
if (valor > mayor2)
mayor2 = valor;
}
imprime(“El segundo mayor es “,mayor2);

Problema 2:

int[] solo2cifras(int[] vector){


int[] x = new int[vector.length];
int j=0;
for(int i=0; i<vector.length; i++){
if(vector[i] >9 && vector[i] < 100){
x[j] = vector[i];
j++;
}
}
return x;
}

Los profesores
Problema 3:

int n = leeNumero(); // numero de lados


double x[] = leeCoordenadasX(n);
double y[] = leeCoordenadasY(n);

double perimetro = calculaPerimetro(x,y);


double area = calculaArea(x,y);

imprime(“El perímetro es: perimetro);


imprime(“El área es: area);

double calculaPerimetro(double[] x, double[] y){


int n=x.length; // número de puntos

double p=0;
for (int i=0; i<n-1; n++){
p += euclides(x[i],y[i],x[i+1],y[i+1]);
}
p += euclides(x[1],y[1],x[n-1],y[n-1]);

return p;
}

double calculaArea(double[] x, double[] y){

double a=0;
for (int j=1; j<n-2; j++){
a += areaTriangulo(x[1],y[1],x[j+1],y[j+1],x[j+2],y[j+2]);
}
return a;
}

double euclides(double x1,double y1,double x2,double y2){


return Math.sqrt(Math.pow(x1-x2,2)+Math.pow(y1-y2,2));
}

double areaTriangulo(double x1, double y1, double x2, double y2,


double x3, double y3){
return 0.5*(x1*(y2-y3)-x2*(y1-y3)+x3*(y1-y2));
}

Los profesores
Problema 4:

n=leeNumero();

double A[][] = new double[n][12];

for (int i=0; i<n; i++){


A[i][0] = i+1; // correlativo

s=0;np=0;ni=0; // contadores, acumuladores


for (int j=1; j<11; j++){
A[i,j] = aleatorio(-2,20);
if (A[i,j]>0)
s += A[i,j];

if (A[i,j]==-2)
np++;

if (A[i,j]==-1)
ni++;
}
if (np > 0)
A[i,11]=-2;
else if (ni >= 2)
A[i,11]=0;
else
A[i,11]=Math.round(s/10);
}

imprime(A); // se asume que ya está implementada, según enunciado.

Los profesores

Vous aimerez peut-être aussi