Sei sulla pagina 1di 5

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 FINAL
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, 10 de Diciembre del 2018 Hora: 10 a 12 horas Duración: 110 minutos

Indicaciones:
• 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.
Ejemplo 1: n=3 con los valores 5, 6 y 7 El segundo mayor será 6
Ejemplo 2: n=5 con los valores 4, 1, 3, 4 y 1 El segundo mayor será 4

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 (𝑥1 , 𝑦1), (𝑥2 , 𝑦2 ) y (𝑥3 , 𝑦3 ) (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 “𝑛 − 2”
triángulos.

puede hallarse haciendo uso de la siguiente ecuación:


1
𝐴 = 2 [𝑥1 (𝑦2 − 𝑦3 ) − 𝑥2 (𝑦1 − 𝑦3 ) + 𝑥3 (𝑦1 − 𝑦2 )]
• 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 “𝑛 − 2” 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.
• Muestre todas las notas mediante una función llamado imprimir(A). Asuma que esta función ya
está implementada.

Los profesores
SOLUCIONARIO:

Probl1:
n = input('Ingrese cantidad==> ');
for i = 1 : n
valor = input('Ingrese un valor ==> ');
if i==1
mayor1 = valor;
else
if i == 2
if valor > mayor1
mayor2 = mayor1;
mayor1 = valor;
else
mayor2 = valor;
end
elseif valor > mayor1
mayor2 = mayor1;
mayor1 = valor;
else
if valor > mayor2
mayor2 = valor;
end
end
end
end
fprintf('El segundo mayor es %3d\n',mayor2);

Probl2:
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;
}

Probl3:
Programa principal
clc
clear all
home

x=input('Ingrese las coordenadas x de los vertices del poligono, en sentido antihorario: ');
y=input('Ingrese las coordenadas y de los vertices del poligono, en sentido antihorario: ');
[area,per]=Fun_area_perimetro(x,y);
fprintf('El perímetro es: %f\nEl área es: %f\n',per,area)

Funciones o Procedimientos

function [A,P] = Fun_area_perimetro(x,y)


%vectores “x” y “y” son los puntos del polígono ordenados
%en el sentido contrario al de las manecillas del reloj
n=length(x);%número de puntos

%calculando perímetro
P=0;
for i=1:1:(n-1)
P=P+norma_euclidiana(x(i),y(i),x(i+1),y(i+1));
end
P=P+norma_euclidiana(x(1),y(1),x(end),y(end));

%calculando área
A=0;
for j=1:1:(n-2)
A=A+area_triangulo(x(1),y(1),x(j+1),y(j+1),x(j+2),y(j+2));
end
end

function z=norma_euclidiana(x1,y1,x2,y2)
z=sqrt((x1-x2)^2+(y1-y2)^2);
end

function z=area_triangulo(x1,y1,x2,y2,x3,y3)
z=0.5*(x1*(y2-y3)-x2*(y1-y3)+x3*(y1-y2));
end

Probl4:
n=input('Ingrese numero de alumnos:');
A=round(rand(n,12)*22)-2;
A(:,1)=(1:n)';
for i=1:n
s=0;np=0;ni=0;
for j=2:11
if A(i,j)>0
s=s+A(i,j);
end
if A(i,j)==-2
np=np+1;
end
if A(i,j)==-1
ni=ni+1;
end
end
if np>0
A(i,12)=-2;
elseif ni>=2
A(i,12)=0;
else
A(i,12)=round(s/10,0);
end
end

imprimir(A)

Potrebbero piacerti anche