Documentos de Académico
Documentos de Profesional
Documentos de Cultura
INFORME N°2
Objetivo.- Se desea conocer seis datos sobre el triangulo que son los tres lados y los tres angulos. Ademas de
calculas el valor del área, perímetro.
Para hacer posible el calculo de datos debe tenerse al menos un lado dentro de la terna de valores.
➢ Fundamento teorico
Si un ángulo es opuesto
Por ley de senos:
A=dato
B=A*sen(b)/sen(a)
C=A*sen(c)/sen(a)
a=dato
b=dato
c=180°-a-b
Per=A+B+C
Area=(P(P-A)(P-B)(P-c))^0.5
Donde P=(A+B+C)/2
Diagrama de flujo
#include<iostream>
#include<cmath>
#include<conio.h>
using namespace std;
int main() {
int continuar;
do{
float a,aa,b,bb,c,cc,pi,resp,area,perimetro,p;
int lados;
cout << "ingrese la cantidad de lados conocidos" << endl;
cin >> lados;
switch (lados) {
case 1:
cout << "el lado es opuesto a algun angulo conocido?" << endl;
cout << "1.Si" << endl;
cout << "2.No" << endl;
cin >> resp;
if (resp==1) {
cout << "ingrese el lado conocido y el angulo opuesto en grados" << endl;
cin >> a >> aa;
cout << "ingrese el otro angulo en grados" << endl;
cin >> bb;
b = a*sin(bb*M_PI/180)/sin(aa*M_PI/180);
cc = 180-(aa+bb);
c = a*sin(cc*M_PI/180)/sin(aa*M_PI/180);
} else {
cout << "ingrese el lado conocido" << endl;
cin >> a;
cout << "ingrese los angulos en grados" << endl;
cin >> bb >> cc;
aa = 180-bb-cc;
b = a*sin(bb*M_PI/180)/sin(aa*M_PI/180);
c = a*sin(cc*M_PI/180)/sin(aa*M_PI/180);
}
break;
case 2:
cout << "el angulo conocido es opuesto al lado desconocido?" << endl;
cout << "1.Si" << endl;
cout << "2.No" << endl;
cin >> resp;
if (resp==1) {
cout << "ingrese los lados" << endl;
cin >> a >> b;
cout << "Ingrese el angulo en grados" << endl;
cin >> cc;
c = pow((a*a+b*b-2*a*b*cos(cc*M_PI/180)),0.5);
aa = acos((b*b+c*c-a*a)/(2*b*c))*180/M_PI;
bb = 180-aa-cc;
} else {
cout << "ingrese el lado,y su angulo opuesto en grados" << endl;
cin >> a >> aa;
cout << "Ingrese el lado restante" << endl;
cin >> b;
bb = asin(b*sin(aa*M_PI/180)/a)*180/M_PI;
cc = 180-aa-bb;
c = pow((a*a+b*b+2*a*b*cos(cc*M_PI/180)),0.5);
}
break;
case 3:
cout << "Ingrese el valor de los lados" << endl;
cin >> a >> b >> c;
aa = acos((b*b+c*c-a*a)/(2*b*c))*180/M_PI;
bb = acos((a*a+c*c-b*b)/(2*a*c))*180/M_PI;
cc = 180-aa-bb;
break;
default:
cout << "invalido" << endl;
}
perimetro=a+b+c;
p=perimetro/2;
area=pow(p*(p-a)*(p-b)*(p-c),0.5);
➢ Capturas de funcionamiento
MATRIZ VANDERMONDE
✓ Fundamento teorico
✓ Diagrama de flujo
Listado del código
#include<iostream>
#include<cmath>
using namespace std;
int main() {
float det,n;
float elementos[100];
int i,j;
cout<<"\tMATRIZ DE VANDERMONDE"<<endl;
cout<<"------------------------------------------------"<<endl;
cout << "Ingrese el orden de la matriz " << endl;
cin >> n;
for (i=0;i<=n-1;i++) {
cout << "ingrese el elemento a[" << i+1 << "]" << endl;
cin >> elementos[i];
}
cout << "La matriz generada es:" << endl;
for (j=0;j<=n-1;j++) {
cout<<"\t";
for (i=0;i<=n-1;i++) {
cout << pow(elementos[j],i) << " ";
}
cout << " " << endl;
}
cout << "su determinante es:" << endl;
det = 1;
for (j=0;j<=n-1;j++) {
for (i=0;i<=n-1;i++) {
if (i<j) {
det = det*(elementos[j]-elementos[i]);
}
}
}
cout << "\tdet=" << det << endl;
return 0;
}
Capturas de funcionamiento
DIVISION DE POLINOMIOS CON EL MÉTODO DE HORNER
➢ Fundamento teorico
El método de Horner es un método creado por William George Horner que nos permite dividir dos polinomios,
para ver los detalles de este método resolveremos un ejercicio de manera detallada.
Dividir:
Resolución:
Para dividir los polinomios por el método de Horner los polinomios, tanto el dividendo como el divisor deben
estar ordenados en forma decreciente, con respecto al exponente de la variable.
Entonces ordenando el dividendo y el divisor obtendremos:
Enseguida colocamos los coeficientes del dividendo y el divisor en el siguiente sistema gráfico, compuesto por
dos líneas horizontales y dos verticales:
Residuo:
Generalizando
𝑎0 𝑥 𝑛 + 𝑎1 𝑥 𝑛−1 + ⋯ + 𝑎𝑛
𝑝𝑎𝑟𝑎 𝑛 > 𝑚
𝑏0 𝑥 𝑚 + 𝑏1 𝑥 𝑚−1 + ⋯ + 𝑏𝑚
Para hacer bo=1 dividimos los demás bi y ai entre bo, de esta manera evitamos tener que dividir entre bo a cada paso,
además cambiamos los signos de los b1,b2…,bn multiplicando por (-1).
𝑏0 𝑎 𝑎 𝑎 𝑎𝑛−𝑚 ... 𝑎𝑛 −𝑚 1 𝑎𝑛
𝑏1
𝑏
...
𝑏𝑛
𝑛−𝑚 ... 𝑟0 𝑟1 𝑟𝑚−1
Cociente Residu
𝑟0o = 𝑎𝑛−𝑚 1 + 𝑘0
𝑟1 = 𝑎𝑛−𝑚 + 𝑘1
𝑟 = 𝑎𝑛−𝑚 3 +𝑘
...
𝑟𝑚−1 = 𝑎𝑛 +𝑘𝑛
constantes
➢ Diagrama de flujo
➢ Listado del código
#include<iostream>
using namespace std;
int main() {
float c;
int i,j,n,m;
float q[100],r[100],a[100],b[100];
cout<<"DIVISION DE POLINOMIOS POR EL METODO DE HORNER"<<endl;
cout<<"---------------------------------------------------------------"<<endl;
cout << "ingrese el grado del dividendo" << endl;
cin >> n;
cout << "Ingrese el grado del divisor" << endl;
cin >> m;
if (n>m) {
cout << "Ingrese los coeficientes del Dividendo" << endl;
for (i=0;i<=n;i++) {
cout << "x^[" << n-i << "]:" ;
cin >> a[i];
}
cout << "\tingrese los coeficientes del divisor" << endl;
for (i=0;i<=m;i++) {
cout << "x^[" << m-i << "]: ";
cin >> b[i];
}
float aux;
aux=b[0];
for (i=0;i<=n;i++) {
a[i] = a[i]/aux;
b[i] = (-1)*b[i]/aux;
}
q[0] = a[0];
//cociente
float c;
for (i=1;i<=n;i++) {
if(i<=n-m){
c=0;
for (int j=0;j<i;j++) {
c=c+q[j]*b[i-j];
}
q[i] = c+a[i];
}
else{
q[i]=0;
}
}
cout<<"los coeficientes del cociente"<<endl;
for (int j=0;j<=n-m;j++) {
cout<<"x^["<<n-m-j<<"]: "<<q[j]<<endl;
}
//residuo
for (i=n-m;i<=n;i++) {
c=0;
for (int j=i;j>=0;j--) {
if(i-j+1>m){
b[i-j+1]=0;
}
c=c+q[j]*b[i-j+1];
}
r[i-n+m]= c+a[i+1];
}
cout<<"los coeficientes del residuo"<<endl;
for (int j=0;j<=m-1;j++) {
cout<<"x^["<<m-1-j<<"]:"<<aux*r[j]<<endl;
}
} else {
cout << "division impropia No calculable por el metode de horner" << endl;
}
return 0;
}
➢ Capturas de funcionamiento
➢ SISTEMA 2X2
➢ Fundamento teorico
𝐴∗𝑋 = 𝐵
Donde A es la matriz de coeficientes, del que se realizara el analisis de determinante
#include<iostream>
using namespace std;
int main() {
float a,b,c,d,f,g,x,det,yy;
system("cls");
cout<<"Sistema introducido:"<<endl;
cout<<"\t\t("<<a<<")x+("<<b<<")y="<<c<<endl;
cout<<"\t\t("<<d<<")x+("<<f<<")y="<<g<<endl<<endl;
cout<<"resultado obtenido:"<<endl;
det = (a*f-d*b);
if (det!=0) {
x = (c*f-g*b)/det;
yy = (a*g-d*c)/det;
cout << "\t\tx=" << x << endl;
cout << "\t\ty=" << yy << endl;
} else {
if (c*f-g*b==0) {
cout << "Infinitas soluciones" << endl;
} else {
cout << "No existen soluciones" << endl;
}
}
return 0;
}
➢ Capturas de funcionamiento