C To Fortan Yardım
-
Merhaba Arkadaşlar, elimde bir C kodu var ve acilen Fortrana çevirmem gerekiyor.Yardımlarınızı bekliyorum...
#include <stdio.h>
//QR MATRİS PARÇAMALAMA PROGRAMIint A[100][100];
float R[100][100];
float V[100][100];
float Q[100][100];
int n,m;
float fonk(int sayi)
{
int i,k;
float toplam1=0.0;
for(i=0;i<sayi;i++)
{
for(k=0;k<n;k++)
toplam1=toplam1+(R[i][sayi]*Q[k][i]);
}
toplam1=toplam1/10.0;
printf("toplam1=%2.2f\n",toplam1);
return toplam1;
}int main()
{
int i,j,toplam=0,say1=0,k,say2=0;
float top1=0.0;
printf("lutfen matrisin satir elemanini giriniz:");
scanf("%d",&n);
printf("lutfen matrisin sutun elemanini giriniz:");
scanf("%d",&m);
for(i=0;i<n;i++){
for(j=0;j<m;j++){
printf("matrisin %d . satirinin %d .sutununun elemanini giriniz:",i,j);
scanf("%d",&A[i][j]);
}
}
printf("olusan matrisimiz:\n");
for(i=0;i<n;i++)
{
for(j=0;j<m;j++){
printf(" %d ",A[i][j]);
}
printf("\n");
}
//n satir m sutun olcak
j=0;
while(j<m)
{
for(i=0;i<n;i++)
toplam=toplam+(A[i][say1]*A[i][say1]);
R[j][j]=sqrt(toplam);
say1++;
j++;
toplam=0;
}
// diagonal alt
for(i=0;i<m;i++)
{
for(j=0;j<m;j++)
{
if(i>j)
R[i][j]=0.0;
}
}
//R[1][1],R[2][2],R[3][3],R[4][4] bulundu
for(i=0;i<m;i++)
{
for(j=0;j<m;j++){
printf("-%2.1f-",R[i][j]);
}
printf("\n");
}
//Ana dongu bu kadar islem olacak
say2=0;
for(k=0;k<m;k++)
{
//once V buluncak sonra Q1 en son da R[1][2] DONGU BOYLE DVM EDİCEK
for(j=0;j<n;j++)
{
if(say2==0)
V[j][say2]=A[j][say2];
else
V[j][say2]=A[j][say2]-fonk(say2);
}
//Q matrisi bulundu alt alt yazıyo
for(j=0;j<n;j++)
Q[j][say2]=V[j][say2]/R[say2][say2];
for(j=0;j<n;j++)
top1=top1+(A[j][say2+1]*Q[j][say2]);
R[say2][say2+1]=top1;
top1=0;
say2++;
}
printf("Matris V:\n");
for(i=0;i<n;i++)
{
for(j=0;j<m;j++){
printf(" %2.2f ",V[i][j]);
}
printf("\n");
}
printf("Matris Q:\n");
for(i=0;i<n;i++)
{
for(j=0;j<m;j++){
printf(" %2.2f ",Q[i][j]);
}
printf("\n");
}
printf("Matris R:\n");
for(i=0;i<m;i++)
{
for(j=0;j<m;j++){
printf(" %2.2f ",R[i][j]);
}
printf("\n");
}
system("PAUSE");
} -
bekle bi sn deniyim?
-
bekliyorum rapidhacker550
