طلب مساعدة في البرمجة

الحالة
مغلق ولا يسمح بالمزيد من الردود.

joura

:: عضو مُشارك ::
إنضم
25 جوان 2008
المشاركات
288
نقاط التفاعل
0
النقاط
16
السلام عليكم

من فضلكم اريد المساعدة في ترجمة هذه الوظيفة من C الي PASCAL و شكرا مسبقا


svp aidez moi a écrire en pascal cette procédure parce que je connu pas le langage c

void gauss_pivot_total(float a[19][19],float b[19],int n)

{
float x[19],p,s,ref,temp;int i,j,k,ligne,colonne,pivot_sol[19],temps;

// vecteur de pivotation des solutions
for(i=0;i<n;i++) pivot_sol=i;

for(k=0;k<n-1;k++)
{
// max pour le pivot total
ref=0;
for(i=k;i<n;i++) for (j=k;j<n;j++)
if(fabs(a[j])>ref) {ref=fabs(a[j]);ligne=i;colonne=j;}

// pivotations
for(j=k;j<n;j++) {temp=a[k][j]; a[k][j]=a[ligne][j] ;a[ligne][j]=temp;}

temp=b[k]; b[k]=b[ligne]; b[ligne]=temp;

for(i=0;i<n;i++) {temp=a[k]; a[k]=a[colonne] ;a[colonne]=temp;}
// remplissage du vecteur accordé aux pivotations
temps=pivot_sol[k];
pivot_sol[k]=pivot_sol[colonne];
pivot_sol[colonne]=temps;

if (a[k][k]==0)
{
printf("\n\n * Un pivot nul ! => methode de Gauss pivot total non applicable\n\n");
}

//réduction
for(i=k+1;i<n;i++)
{
p=a[k]/a[k][k];
for (j=k;j<n;j++) a[j]=a[j]-p*a[k][j];
b=b-p*b[k];
}
}

// Résolution
for(i=n-1;i>=0;i--)
{
s=0;
for(j=i+1;j<n;j++)s=s+a[j]*b[j];
b=(b-s)/a;
}

// pivotation des solutions
for(i=0;i<n;i++) x[pivot_sol]=b;

zero(a,b,n);
printf("\n--------- Gauss avec pivot total ---------\n");
printf("\n * La matrice reduite :");
aff_syst(a,b,n);
printf("\n * La resolution donne :\n\n");
for (i=0;i<n;i++) printf(" X_%d = %f ;\n",i+1,x);
printf("\n");
}
// Mettre à Zero les elements qui doivent etre des zéro

void zero(float a[19][19],float b[19],int n)
{
int i,j;float eps=1e-4;
for(i=0;i<n;i++)
{
for (j=0;j<n;j++) if (fabs(a[j])<eps) a[j]=0;
if (fabs(b)<eps) b=0;
}
}

void comatrices(float a[19][19],float c[19][19],int i,int j,int n)
{
int l,k;
for(l=0;l<n;l++) for(k=0;k<n;k++)
{
if ((l<i)&&(k<j)) c[l][k]=a[l][k];
if ((l>i)&&(k<j)) c[l-1][k]=a[l][k];
if ((l<i)&&(k>j)) c[l][k-1]=a[l][k];
if ((l>i)&&(k>j)) c[l-1][k-1]=a[l][k];
}
}

merci d avance
 
الحالة
مغلق ولا يسمح بالمزيد من الردود.
لإعلاناتكم وإشهاراتكم عبر صفحات منتدى اللمة الجزائرية، ولمزيد من التفاصيل ... تواصلوا معنا
العودة
Top