Segunda Practica Calificada Octave

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 7

SEGUNDA PRÁCTICA CALIFICADA

Problema 01. La fórmula de Leibniz para calcular el valor de π es:

Hacer un programa para calcular el valor de π para n términos.


function problema1
n=input ('Ingrese el número de términos: ‘);
p=0;
for i=0:n-1
p=p+4*((-1) ^ (i)/ (2*i+1));
endfor
disp(['El valor de pi es : ' num2str(p)])
endfunction

Problema 06. El cuadrante de un punto (x,y) se puede determinar a partir del signo de x e y. Escribir un
programa tal que dadas las coordenadas x e y, indique a qué cuadrante pertenece el punto.

function problema6
x=input ('ingrese el valor de x =');
y=input ('ingrese el valor de y =');
if x>0 && y>0
disp('Pertenece al primer cuadrante');
else
if x<0 && y>0
disp('Pertenece al segundo cuadrante');
else
if x<0 && y<0
disp('Pertenece al tercer cuadrante');
else
disp('Pertenece al cuarto cuadrante');
endif
endif
endfunction

Problema 09. Dada la siguiente función:


Hacer un programa para calcular el valor numérico de la función en los valores enteros de x que pertenece al
dominio de la función.
function problema9
x=input ('ingrese el valor de x :');
if -6<=x && x<-2
y=4*exp(x+2);
disp([' f(x) = ' num2str (y)]);
else
if -2<=x && x<2.5
y=(x^2);
disp([' f(x) = ' num2str(y)]);
else
if 2.5<=x && x<=6
y=(x+6.5) ^ (1/3);
disp([' f(x) = ' num2str(y)]);
else
disp('El número no pertenece al dominio')
endif
endif
endif
endfunction

Problema 10. Realizar un programa que dado el capital inicial de un plazo fijo y un interés anual fijo muestre
en la pantalla cómo evoluciona el dinero invertido año a año, hasta llegar a un año en el que los intereses
superen el 50 % del capital invertido. Un ejemplo de la ejecución del programa es:

function problema10
c=input ('Introducir el capital inicial: ');
int=input ('Introducir el interes anual fijo : ');
i=0;
tol=c*0.5;
fprintf('%4s\t%s\n','Año','Capital');
disp(' --- -------');
while tol>I
i=i+1;
I=c*(((1+(int/100))^i)-1);
cmas1=c+I;
fprintf('%4d\t%4.2f\n',1,cmas1);
endwhile
endfunction
Problema 05. Las cuentas de electricidad de los residentes en una comunidad rural muy pequeña son
calculadas de la siguiente manera:
 si se usan 500 unidades o menos, el costo es de 2 centavos por unidad;
 si se usan más de 500, pero no más de 1000 unidades, el costo es de $ 10 para las primeras 500
unidades, y luego 5 centavos por cada unidad en exceso de 500;
 si se usan más de 1000 unidades, el costo es de $ 35 para las primeras 1000 unidades más 10
centavos por cada unidad en exceso de 1000;
 Además, se cobra una tarifa de servicio básico de $ 5, sin importar cuánto se usa electricidad
Hacer un programa que pida la cantidad consumida del usuario en unidades y determine el monto a pagar.

function problema5
cuenta = 0
cantidadCon =0
cantidadCon= input('Ingrese cantidad consumida por el usuario')
if(cantidadCon<=500
cuenta = cantidadCon*0.02 +5
elseif ((cantidadCon > 500)&&(cantidadCon<=1000)
cuenta = 500*10.0 + (cantidadCon - 500)*0.05+5
else
cuenta = 1000*35.0 + (cantidadCon - 1000)*0.10+5
endif
fprintf('El monto a pagar por el usuario es: %.2f ', cuenta)

endfunction

Problema 07. El método computacional más común para calcular raíces cuadradas es el método de Newton
de aproximaciones sucesivas. Cada vez que tenemos una estimación y del valor de la raíz cuadrada de un
número x, podemos hacer una pequeña manipulación para obtener una mejor aproximación (una más cercana
a la verdadera raíz cuadrada) promediando y con x/y.
Por ejemplo, calculemos la raíz cuadrada de 2 usando la aproximación inicial √2≈1:

Escriba un programa que reciba como entrada un número real x y calcule su raíz cuadrada usando el método
de Newton. El algoritmo debe detenerse cuando el cuadrado de la raíz cuadrada estimada difiera de x en
menos de 0,0001.

%problema7
%CAlculamos los valores iniciales
estimacion = 1
cociente = 2/estimacion
promedio = (estimacion + cociente)/2.00
%Mientras el error sea mayor 0.0001, seguimos operando
while(abs(estimacion-promedio) >=0.0001)
estimacion = promedio; %asignamoss a estimacion el valor de promedio
cociente = 2/estimacion
promedio = (estimacion+ cociente)/2,0;
endwhile

%Mostramos el valor obtenido


fprintf('La raiz cuadrada es: %.4f',estimacion)

Problema 08. La temperatura máxima diaria (en °F) en Nueva York y Anchorage, Alaska, durante el mes de
enero de 2001 vienen dadas en los siguientes vectores (datos tomados del Ministerio Nacional de Meteorología
y Oceanografía de Estados Unidos).
TNY= [31 26 30 33 33 39 41 41 34 33 45 42 36 39 37 45 43 36 41 37 32 32 35 42 38 33 40 37 36 51 50],
TANC = [37 24 28 25 21 28 46 37 36 20 24 31 34 40 43 36 34 41 42 35 38 36 35 33 42 42 37 26 20 25 31],
Escriba un programa que calcule:
a) La temperatura media en ese mes para cada ciudad.
b) El número de días que estuvo la temperatura de cada ciudad por debajo de la media.
c) El número de días, y a qué días del mes corresponden, en los cuales la temperatura de Anchorage fue
mayor que la temperatura de Nueva York.
d) El número de días, y a qué días del mes corresponden, en los cuales la temperatura fue igual en ambas
ciudades.

%problema8
clear
clc
TNY = [21 26 30 33 33 39 41 41 34 33 45 42];
TANC = [37 24 28 25 21 28 46 37 36 20 24 31];
tMediaNY = 0
tMediaAnc = 0
tMediaNy = sum(TNY/lenght(TNY);
tMediaAnc = sum(TANC)/lenght(TANC);
fprintf('La temperatura media en Ney York para el mes de enero(2001):%.2f\n', tMediaNY)
fprintf('La temperatura media en Anchorange para el mes de enero(2001):%.2f\n', tMediaAnc)

numBajoMNY = 0;
numBajoMANC = 0;

for temp = TNY


if(temp<=tMediaNY)
numBajoMNY = numBajoMNY +1
endif
endfor

for temp = TANC


if(temp <= tMediaAnc)
numBajoMANC = numBajoMANC +1;
endif
endfor
fprintf('Número de días que estuvo la temperatura por debajo de la media en Nueva York: %d\n'
numBajoMNY)
fprintf('Número de días que estuvo la temperatura por debajo de la media en Nueva York: %d\n'
numBajoMANC)

arrayMayor = TNY>TANC;
dias = 1: lenght(TNY);
dias = arrrayMayor.*dias;
fprintf('El número de días en los que la temperatura en Nueva York fue mayor que en Anchorange es:
%d\n',sum(arrayMayor))
fprintf('Los dias respectivos: \n')
disp(dias)

arrayIgual = TNY = TANC;


dias = 1:lenght(TNY)
dias = arrayIgual..*dias;
fprintf('El número de días en los que la temperatura en Nueva York fue igual que en Anchorange es:
%d\n',sum(arrayIgual))
fprintf('Los dias respectivos: \n')
disp(dias)

Problema 02. La constante recíproca de Fibonacci se define por la suma infinita:

donde Fn son los números Fibonacci 1, 1, 2, 3, 5, 8, 13, .... Cada elemento en esta secuencia de números es la
suma de los dos anteriores. Establecemos los dos primeros elementos iguales a 1, luego Fn = Fn-1 + Fn-2 .
Escribir un programa en octave que calcule para un valor dado n.
SOLUCIÓN:
clear
clc
%Problema2
n=20;

fib= ones(1, n);

for i = 3:n
fib(i) = fib(i - 2) + fib(i -1);
endfor

invFib = ones(1, n)./fib;


suma = sum(invFib);

fprintf("La constante reciproca de Fibonacci para %d es: %.2f",n ,suma)


Problema 03. El riesgo de que una persona sufra enfermedades coronarias depende de su edad y su índice
de masa corporal:

El índice de masa corporal es el cociente entre el peso del individuo en kilos y el cuadrado de su estatura en
metros. Escriba un programa que reciba como entrada la estatura, el peso y la edad de N personas, y calcule
el número de personas con bajo, medio y alto riesgo.
SOLUCIÓN:
clear
clc
%Ingresamos el numero de personas con las que vamos a trabajar
N = input("Numero de personas: ");
%Creamos las matrices de peso, estatura y talla
peso = ones(1,N)
estatura = ones(1,N)
edad = ones(1,N)
%Creamos la matriz de donde se almacena el valor de IMC
indiceMasaCorp = ones(1,N)
%Ingresamos y almacenamos peso, estatura y edad para cada personas
for i = 1:N
fprintf("Persona N° %d\n", i);
peso(i) = input("Peso(kg): ");
estatura(i) = input("Estatura(m): ");
edad(i) = input("Edad(años): ");
endfor
%Calculamos el IMC
indiceMasaCorp = peso./((estatura).^2)
%Definimos y declaramos los contadores para # de personas con riesgo
%BAJO, MEDIO Y ALTO
numBajo = 0
numMedio = 0
numAlto = 0
for i = 1 : N
if(edad(i) <= 45)
if(indiceMasaCorp(i) <= 22.0)
numBajo = numBajo + 1
else
numMedio = numMedio + 1
endif
else
if(indiceMasaCorp(i) <= 22.0)
numMedio = numMedio + 1
else
numAlto = numAlto + 1
endif
endif
endfor
fprintf("Numero de personas con BAJO riesgo: %d\n", numBajo)
fprintf("Numero de personas con MEDIO riesgo: %d\n", numBajo)
fprintf("Numero de personas con ALTO riesgo: %d\n", numBajo)

Problema 04. Se desea dar un aumento a los trabajadores de una empresa, de acuerdo a los años de
antigüedad, los trabajadores cobran un sueldo anual de 30000 soles. El programa debe realizar los cálculos en
función de los siguientes criterios: Si lleva 10 años o más en la empresa se le aplica un aumento del 10%, si
lleva menos de 10 años pero más o igual a 5 se le aplica un aumento del 7%, si lleva menos de 5 años pero
más o igual a 3 se le aplica un aumento del 5%, y si lleva menos de 3 años se le aplica un aumento del 3%.
Calcular el sueldo mensual del trabajador después del aumento.

SOLUCIÓN:
clear
clc
%valor de sueldo
sueldo = 3000
aumento = 0

anios = input("Ingrese el numero de anios del trabajador: ")

if(anios >= 10)


aumento = 0.10*sueldo;
elseif(anios < 10 && anios >=5)
aumento = 0.07*sueldo
elseif(anios < 5 && anios >=3)
aumento = 0.05*sueldo
else
aumento = 0.03*sueldo
endif

sueldo = sueldo + aumento;

fprintf("Sueldo mensual del trabajador despues de aumento es: %.2f", sueldo\12.0)

También podría gustarte