⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 practica7_1a.cpp

📁 Topics Practices: Programming and Numerical Methods Practice 1: Introduction to C Practice 2
💻 CPP
字号:
/*PRACTICA 7 EJERCICIO 1a
Escribir una funci髇 que tome como par醡etro una matriz cuadrada y que triangule
la matriz seg鷑 el m閠odo de Gauss-Jordan sin pivoteo.

a) Modificar la funci髇 para que detecte la existencia de pivotes nulos, y que 
interrumpa el proceso mostrando un mensaje de error en ese caso. Para este 
punto, consideramos que un pivote aii es nulo si | aii | < 10-8.*/



#include<stdio.h>
#include<conio.h>
#include<math.h>
#define COLS 100
void triangular(float A[][COLS],int n,float E)
{ float m,aux; int i,j,k,t,;
  for (j=0; j<n-1; ++j)
  { 
     if(fabs(A[j][j])<E)
      { t=j+1;
        while(t<n && fabs(A[t][j])<E)
           ++t;
        if(t==n)
        {
           printf("La matriz no es inversible");
           return;
        }
        for (k=j; k<=n; ++k)
        { 
            aux =A[t][k];
            A[t][k]=A[j][k];
            A[j][k]=aux;
        }   
      }
    for (i=j+1; i<n; ++i)
     { 
        m=-A[i][j]/A[j][j];
        for(k=j; k<=n; ++k)
          A[i][k]=A[i][k]+m*A[j][k];
     }
  }
} 
main ()
{ int n,i,j;
 float E,suma;
 printf ("Dame el margen de error");
 scanf("%f",&E);
 printf("ingrese el tamande la matriz cuadrada");    
 scanf("%d",&n);
 float A[n][COLS];
 printf("Ingrese los elementos de la matriz\n");
 for(i=0; i<n;++i)
 {
   for(j=0; j<=n; ++j)
   {
     scanf("%f",&A[i][j]);
   }
 }
 printf("\n\n");
 triangular(A,n,E);
 for(i=0; i<n;++i)
 {
   for(j=0; j<=n; ++j)
   {
    printf("%.0f ",A[i][j]);
    if (j==n)
    printf("\n");
   }
 }
 printf("\n\n");
  float X[n];
  X[n]=0;
  suma=0;
  for(i=n-1; i>=0 ; --i)
  {  
     for(j=i+1; j<n; ++j)
     {
      suma=suma+A[i][j]*X[j];
     }
     if (i==n-1)
     X[i]=A[i][n]/A[i][i];
     else         
     X[i]=(A[i][n]/A[i][i])-(suma/A[i][i]);
     suma=0;
  }
  for(i=0 ; i<n; ++i)
    printf("%f ,",X[i]);             
 
getch();
} 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -