Escolar Documentos
Profissional Documentos
Cultura Documentos
)( ) (
R 1+ R5+ R 6
R 6
R 5
I1
E1
R 6
R 2+ R 4 + R 6
R 4
I 2 = E 2E 4
R 5
R 4
R 3+ R 4+ R 5 I 3
E 4E 3
Sol:
#include<fstream.h>
#include <conio.h>
void leer(int &n, int &m);
void cargaResistencia(float r[80],float a[80][80], int n, int m);
void trianguliza(float a[80][80], int n, int m);
bool sustitucionInversa(float a[80][80], float x[80], int n, int m);
void cargaTension(float t[80],float a[80][80], int n, int m);
void impresion(float a[80][80], float x[80], int n, int m);
void muestraMatriz(float a[80][80], int n, int m);
void main(){
float a[80][80], x[80],t[80],r[80]; int n, m,k,q;
leer(n, m);
cargaResistencia(r,a,n,m);
cargaTension(t,a,n,m);
muestraMatriz(a, n, m);
trianguliza(a, n, m);
if (!sustitucionInversa(a, x, n, m)){
cout << "El sistema de ecuaciones es inconsistente";
}
else{
impresion(a, x, n, m);
}
getch();
}
void leer(int &n, int &m){
general sino particular
cout << "ingrese numero de ecuaciones y de variables del sistema:\n"; cin >> n >>
m;
while (n<2 || m<2 || m != n){
cout << "la matriz debe ser cuadrada, reingrese:\n"; cin >> n >> m;
}
cout << "\n";
}
void cargaResistencia(float r[80],float a[80][80], int n, int m){
for (int j = 0; j<6 ; j++){
cout << "Ingrese resistencia [" << j+1 << "]: "; cin >>r[j];
}
a[0][0]=r[0]+r[4]+r[5];a[1][1]=r[1]+r[3]+r[5];a[2][2]=r[2]+r[3]+r[4];
a[1][0]=a[0][1]=-r[5];a[2][0]=a[0][2]=-r[4];a[2][1]=a[1][2]=-r[3];
cout << "\n";
}
void cargaTension(float t[80],float a[80][80], int n, int m){
for (int i = 0; i<4; i++){
cout << "Ingrese la tension [" << i+1 << "] : "; cin >> t[i];
}
a[0][m]=t[0];a[1][m]=t[1]-t[3];a[2][m]=t[3]-t[2];
cout << "\n";
}
cout << "x[" << i + 1 << "]=" << x[i] << "\n";
}
}
bool sustitucionInversa(float a[80][80], float x[80], int n, int m){
int sw = 0;
for (int i = n - 1; i >= 0; i--){
if (a[i][i] == 0){
sw = 1; i = -1;
}
else{
float suma = 0;
for (int j = i + 1; j<n; j++){
suma = suma + x[j] * a[i][j];
}
x[i] = 1.0*(a[i][m] - suma) / a[i][i];
}}
if (sw == 0){
return true;
}
else{
return false;
}}
void muestraMatriz(float a[80][80], int n, int m){
cout << "El sistema de ecuaciones de resistencia y tensiones es:\n";
for (int i = 0; i<n; i++){
for (int j = 0; j<m + 1; j++){
cout << a[i][j] << "\t";
if (j == m - 1)cout << "| ";
}
cout << "\n\n";
}}
while(n<2 || n>80){
cout<<"cantidad no valida, reingrese:\n";cin>>n;
}
for(int i=0;i<n;i++){
cout<<"Ingrese nombre y apellido del soldado "<<i+1<<": ";cin>>nom[i];
num[i]=i+1;
cout<<"\n";
}
}
void determinaAyuda(char nom[80][80],int num[80],int n){
int dado,saca=0,me,tiro,k;
me=n;k=0;tiro=1;
do{
dado=1+rand()%(6);
cout<<"lanzamiento "<<tiro<<" : "<<nom[k]<<" de posicion :"<<num[k]<<"
obtuvo: "<<dado<<"\n";
if(dado==num[k]){
cout<<nom[k]<<" es retirado\n";
saca++;
for(int i=k;i<n-1;i++){
for(int t=0;t<80;t++){
nom[i][t]=nom[i+1][t];
}
}
for(int i=k;i<n-1;i++){
num[i]=num[i+1]-1;
}
n--;k--;
}
tiro++;k++;
if(tiro-1==me){
me=me-saca;k=0;tiro=1;saca=0;
if(me>1){
cout<<"\n\nLanzamos otra ronda:\n\n";
}
}
}while(n>1);
void main(){
int num[80],n;char nom[80][80];
ingresa(nom,num,n);
determinaAyuda(nom,num,n);
cout<<"\n\nEl soldado que pedira ayuda es: "<<nom[0]<<"\n";
getch();
}
void ingresa(char nom[80][80],int num[80],int &n){
cout<<"Ingresa cantidad soldados:\n";cin>>n;
while(n<2 || n>80){
cout<<"cantidad no valida, reingrese:\n";cin>>n;
}
for(int i=0;i<n;i++){
cout<<"Ingrese nombre y apellido del soldado de posicion "<<i+1<<":
";cin>>nom[i];
num[i]=i+1;
cout<<"\n";
}
}
void determinaAyuda(char nom[80][80],int num[80],int n){
int dado,tiro;
tiro=1;
do{
dado=1+rand()%(6);
cout<<"lanzamiento "<<tiro<<" : "<<" obtuvo: "<<dado<<"\n";
for(int i=0;i<n;i++){
if(num[i]==dado){
cout<<nom[i]<<" y su posicion "<<num[i]<<" es retirado\n";
for(int j=i;j<n-1;j++){
for(int t=0;t<80;t++){
nom[j][t]=nom[j+1][t];
}
}
for(int j=i;j<n-1;j++){
num[j]=num[j+1]-1;
}
n--;i=n;
}
}
tiro++;
}while(n>1);
}
for(int i=0;i<n;i++){
cout<<"Ingrese nombre del alumno "<<i+1<<": ";cin>>nom[i];
for (int j=0;j<4;j++){
a[i][j]=rand()%(21);
}
}
cout<<"\n";
}
void imprime(char nom[80][80],float a[80][80],int n){
for(int i=0;i<n;i++){
cout<<nom[i]<<"\t\t";
for(int j=0;j<4;j++){
cout <<a[i][j]<<"\t";
}
cout << "\n";
}
}
void ganador(char nom[80][80],float a[80][80],int n){
float p[80],suma,may;
for (int i=0;i<n;i++){
suma=0;
for (int j=0;j<4;j++){
suma=suma+a[i][j];
}
p[i]=suma/n;
}
may=p[0];
for(int i=0;i<n;i++){
if(p[i]>may){
p[i]=may;
}
}
cout<<"El mayor promedio es: "<<may<<"\n";
cout<<"Aquellos que obtuvieron el mayor promedio son:\n";
for(int i=0;i<n;i++){
if(p[i]==may){
cout<<nom[i]<<"\n";
}
}
}