C dilinde yanlış hesaplama

O değerler de az da olsa sonuca etki eder, istenilenden emin olmak lazım. Büyük ihtimalle sorun cos hesaplamalarından kaynaklı, yapmak istediğin denklemi bilmediğimden net cevap veremem.

Tamamdır bir daha bakayım.

Fark ettiniz mi bilmiyorum V değerini 1.00 olarak buluyor.
 
Fark ettiniz mi bilmiyorum V değerini 1.00 olarak buluyor?

İşlem sonucunda o geliyordur. Cos'ların aralığı belli bir de karekök alınca çok da beklenmedik bir sonuç değil. %.5f yaparsan daha detaylı görebilirsin değeri. Radyan hesabında da yanlışlık yok sadece biraz daha düzenleyip geri atacağım bir daha göz atarız.
C:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#define C 6399593.626
#define E 0.00671922
#define PI 3.14

double toDegree(double radian){
    return radian * (180/PI);
}

void donusturme(double enlem,double boylam)
{
    double V;
    V=sqrt(1+((E)*cos(toDegree(enlem))*cos(toDegree(enlem))));
    printf("\nV sonucu=%.5lf",V);

    double N;
    N=C/V;
    printf("\nN sonucu=%.5lf",N);

    double sonuc;
    sonuc=(N)*cos(toDegree(enlem))*cos(toDegree(boylam));
    printf("\nDonusum sonucu=%.5lf",sonuc);
}

int main()
{
  double enlem,boylam;
  printf("Lutfen enlem ve boylami giriniz!\n");
  scanf("%lf%lf",&enlem,&boylam);
  donusturme(enlem,boylam);
    return 0;
}

Değerleri hesapladığında zaten V 1'e çok yakın bir değer çıkıyor. Enlem ve boylam değerlerini yazdığında gelen sonuçlar istediğinden farklı olamaz; ikisini de aynı değer girdiğinden formülü karıştıracağını da sanmıyorum.

Sanırım beklediğin çıktı veya girdiğin değerler yanlış. Hangi standartlarda yazdığına emin olman gerek önce.
 
İşlem sonucunda o geliyordur. Cos'ların aralığı belli bir de karekök alınca çok da beklenmedik bir sonuç değil. %.5f yaparsan daha detaylı görebilirsin değeri. Radyan hesabında da yanlışlık yok sadece biraz daha düzenleyip geri atacağım bir daha göz atarız.
C:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#define C 6399593.626
#define E 0.00671922
#define PI 3.14

double toDegree(double radian){
    return radian * (180/PI);
}

void donusturme(double enlem,double boylam)
{
    double V;
    V=sqrt(1+((E)*cos(toDegree(enlem))*cos(toDegree(enlem))));
    printf("\nV sonucu=%.5lf",V);

    double N;
    N=C/V;
    printf("\nN sonucu=%.5lf",N);

    double sonuc;
    sonuc=(N)*cos(toDegree(enlem))*cos(toDegree(boylam));
    printf("\nDonusum sonucu=%.5lf",sonuc);
}

int main()
{
  double enlem,boylam;
  printf("Lutfen enlem ve boylami giriniz!\n");
  scanf("%lf%lf",&enlem,&boylam);
  donusturme(enlem,boylam);
    return 0;
}

Değerleri hesapladığında zaten V 1'e çok yakın bir değer çıkıyor. Enlem ve boylam değerlerini yazdığında gelen sonuçlar istediğinden farklı olamaz; ikisini de aynı değer girdiğinden formülü karıştıracağını da sanmıyorum.

Sanırım beklediğin çıktı veya girdiğin değerler yanlış. Hangi standartlarda yazdığına emin olman gerek önce.
V ve N formüllerinde mi bir yanlışlık var? Parametreleri kontrol ettim hala aynısı çıkıyor

@faux
 
V ve N formüllerinde mi bir yanlışlık var? Parametreleri kontrol ettim hala aynısı çıkıyor

@faux

N formülü V'ye bağlı zaten, C sabit. Beklediğin çıktı hangi standartlardaysa onları kullanman gerek.

V için de sqrt kullanmışsın, 1 + (const * cos *cos) kullanmışsın. Syntax veya mantıkta bir problem yok, istenilen matematik bu mu onu sen bilirsin.
 
N formülü V'ye bağlı zaten, C sabit. Beklediğin çıktı hangi standartlardaysa onları kullanman gerek.

V için de sqrt kullanmışsın, 1 + (const * cos *cos) kullanmışsın. Syntax veya mantıkta bir problem yok, istenilen matematik bu mu onu sen bilirsin.
Nasıl yani tam anlayamadım?
 
Sonuç formülünün o olduğundan emin misin peki? Sağda verilen X, Y, Z'leri kullanmadığını görüyorum çünkü.

Koordinat Dönüştürme-->Coğrafiden Kartezyen--->GRS80 şeklinde ilerleyebilir misin?

@faux hesap makinesiyle V ve N değerlerini hesaplamaya çalılştım. Farklı sonuçlar geliyor. V'de bir sorun olabilir mi?
 

Geri
Yukarı