Hesap makinesi

Katılım
28 Nis 2024
Mesajlar
4
Puanları
1
Yaş
21
keypad de yüzde hesaplama log hesaplama karekök alma üslü sayı hesaplama; sin arc sin cos arc cos tann arc tan işelmlerini yapabilecek c dilinde kod arıyorum
kullanacağım program: pic c compiler
mikrodenetleyici : p ic16f877a
 
Evet, bu pic ile tüm bu aritmetiksel işlemler yapılabilir, örnek kod, deneyebilirsiniz.
Ancak C Compiler farklılığından problem çıkabilir, bulabildiğiniz tüm C Compiler'lar ile deneyin.
Kolay gelsin

#include <math.h>
#include <stdio.h>

// Fonksiyon prototipleri
float calculatePercentage(float number, float percentage);
float calculateLog(float number);
float calculateSquareRoot(float number);
float calculatePower(float base, float exponent);
float calculateSin(float angle);
float calculateArcSin(float value);
float calculateCos(float angle);
float calculateArcCos(float value);
float calculateTan(float angle);
float calculateArcTan(float value);

void main() {
float result;

// Yüzde hesaplama örneği
result = calculatePercentage(150, 20);
printf("Sonuc: %.2f\n", result);

// Logaritma hesaplama örneği
result = calculateLog(10);
printf("Sonuc: %.2f\n", result);

// Karekök alma örneği
result = calculateSquareRoot(25);
printf("Sonuc: %.2f\n", result);

// Üslü sayı hesaplama örneği
result = calculatePower(2, 3);
printf("Sonuc: %.2f\n", result);

// Trigonometrik işlemler örnekleri
float angle = 45; // Açı derecesi
result = calculateSin(angle);
printf("Sin(%f): %.2f\n", angle, result);

result = calculateArcSin(0.5);
printf("ArcSin(0.5): %.2f\n", result);

result = calculateCos(angle);
printf("Cos(%f): %.2f\n", angle, result);

result = calculateArcCos(0.5);
printf("ArcCos(0.5): %.2f\n", result);

result = calculateTan(angle);
printf("Tan(%f): %.2f\n", angle, result);

result = calculateArcTan(1);
printf("ArcTan(1): %.2f\n", result);
}

// Yüzde hesaplama
float calculatePercentage(float number, float percentage) {
return (number * percentage) / 100;
}

// Logaritma hesaplama
float calculateLog(float number) {
return log10(number);
}

// Karekök alma
float calculateSquareRoot(float number) {
return sqrt(number);
}

// Üslü sayı hesaplama
float calculatePower(float base, float exponent) {
return pow(base, exponent);
}

// Sinüs hesaplama
float calculateSin(float angle) {
return sin(angle * M_PI / 180.0);
}

// ArcSin hesaplama
float calculateArcSin(float value) {
return asin(value) * 180.0 / M_PI;
}

// Kosinüs hesaplama
float calculateCos(float angle) {
return cos(angle * M_PI / 180.0);
}

// ArcCos hesaplama
float calculateArcCos(float value) {
return acos(value) * 180.0 / M_PI;
}

// Tanjant hesaplama
float calculateTan(float angle) {
return tan(angle * M_PI / 180.0);
}

// ArcTan hesaplama
float calculateArcTan(float value) {
return atan(value) * 180.0 / M_PI;
}
 
C de hazir fonksiyonlar isin kolay kismi.

1+2*3 gibi bir islem 1+ (2*3) = 7 demektir ve bu hangi islemin once yapilmasini gerektiren yorumlama gerektirir.

Yani islem siralamasi onemlidir. Oncelikle yorumlayici yazman gerekiyor. Tus takimindan girilen islem siralamasina gore verileri ya derhal isleme alman ya da stack'a atip gerektiginde islem yapacakken cekmen gerekiyor.

Oncelikle bu yorumlama kismina odaklan.
 
Son düzenleme:
yok hocam olmadı halledemedim
 
Hesap makinesinin en can alici kisimlarindan birisi bu yorumlayiciyi yazmak. Imkansiz degil ama kolay da degil.

mesela sin(15) islemi yapmak sorun degil. Burdaki zorluk sin fonksiyonu yazmak. Eger kutuphaneden sin fonksiyonunu cagiriyorsan zaten orda da zorluk yok fakat;

Klavyeden 1+15 sin *4/pi+5 seklinde tusalara bastiysan yorumlayici bunlari islerken cok iyi yorumlamak zorunda.

Aksi halde yanlis sonuc hesaplatirsin.
 
Son düzenleme:
Bu siteyi kullanmak için çerezler gereklidir. Siteyi kullanmaya devam etmek için onları kabul etmelisiniz. Daha fazla bilgi edin…