hoş bulduk, öyle ya gerçekten, bu mutluluğu paylaşmak gerçekten çok güzel, aynı dili konuşmak çok huzur verici. :DN3CAT1 dedi: ↑Hoşgeldiniz :) Programlama candır yahu :)
SDN Programlama Kafe
Cevaplar
<html>
<title>SDN Ailesi</title>
<body bgcolor="black">
<center>
<font color="red" size="+5">
Hepiniz Bitanesiniz
</font>
</center>
</body>
</html>
<title>SDN Ailesi</title>
<body bgcolor="black">
<center>
<font color="red" size="+5">
Hepiniz Bitanesiniz
</font>
</center>
</body>
</html>
arkadaşlar bi program için uğraşıyorum
program sonucunda şu işlemin sonucunu almam gerek

burdaki - ile + arasındaki terim oluyor. Bu sonsuz döngü ise şu şekilde sonlanacak ve sonucu bize bildirecek
abs(sonterim)<0.0001 olduğunda döngü sonlanacak ve sonucu bildirecek.
program c dilinde yazılacak. yazılırken for, if, while, do-while komutları kullanılabilecek.
bende kendi yazdığım programı koyuyumda yanlışlarımı eksiklerimi söyleyin. aslında ben denedim çalışıyor ama + - olmuyor sürekli
programcılığa yeni adım atmış olan arkadaşınızdan yardımlarınız esirgemeyin lütfen :)
program sonucunda şu işlemin sonucunu almam gerek

burdaki - ile + arasındaki terim oluyor. Bu sonsuz döngü ise şu şekilde sonlanacak ve sonucu bize bildirecek
abs(sonterim)<0.0001 olduğunda döngü sonlanacak ve sonucu bildirecek.
program c dilinde yazılacak. yazılırken for, if, while, do-while komutları kullanılabilecek.
bende kendi yazdığım programı koyuyumda yanlışlarımı eksiklerimi söyleyin. aslında ben denedim çalışıyor ama + - olmuyor sürekli
#include <stdio.h>int main(void)
{
double x;
double toplam,pay,payda,terim=0.0;
int k;
printf("\nx degerini giriniz: ");
scanf("%lf", &x);
toplam=1.0;
pay=(x*x);
payda=1*2;
for(k=3;abs(terim)<=0.0001;k=k+2)
{
terim=pay/payda;
toplam+=terim;
pay*=(x*x);
payda*=(k*(k+1));
}
printf("Seri: %.4f\n\n",toplam);
system("PAUSE");
return 0;
}
programcılığa yeni adım atmış olan arkadaşınızdan yardımlarınız esirgemeyin lütfen :)
yokmu bi yardım edecek :(
+ ve - olması için araya bi if attırman lazım :D
cobra11
başkasının algoritmasının üzerinden gidemiyorum :D baştan ben böyle yaptım, mantığını anlamazsan yardımcı olurum
başkasının algoritmasının üzerinden gidemiyorum :D baştan ben böyle yaptım, mantığını anlamazsan yardımcı olurum
#include<stdio.h>
double fakto(double f) // faktoriyel fonksiyonu
{
double carpim=1,deger;
for(deger=f; deger>1; deger--)
{
carpim*=deger;
}
return carpim;
}
main()
{
double x;
printf("X değeri:");
scanf("%lf", &x);
double k,toplam=1,pay=x*x,payda=fakto(2),carpan=-1;
for(k=4;(pay/payda)>0.0001;k+=2)
{
printf("%lf değeriyle döngüye giriliyor\n", pay/payda); // hangi pay/payda değeriyle dönyüye girildiğini görelim (0.0001'den büyük değer çıkacak hep)
toplam+=carpan*(pay/payda);
pay*=x*x;
payda=fakto(k);
carpan*=-1; // bir artı bir eksi olan yer burası
}
printf("Toplam: %lf\n", toplam);
}__kadıköyRAP__
işlem sonucu yanlış veriyor. resimde seriyi yazarken yazmamışımda o ser cos(x) değerini veriyor
cos60 yazıyorum çok saçma bi rakam çıkıyor.
işlem sonucu yanlış veriyor. resimde seriyi yazarken yazmamışımda o ser cos(x) değerini veriyor
cos60 yazıyorum çok saçma bi rakam çıkıyor.
cobra11 nerden sardırdın şunu başıma :D dizi izliyordum yarıda kestim neyse devam edeyim diziye, sonra bakarım buna, 3 ve 4 değerlerini ver kendin bak istersen mesela 3 için google'ın verdiği sonuç;
1 - (3^2/2!) + (3^4/4!) - (3^6/6!) + (3^8/8!) - (3^10/10!) + (3^12/12!)
Benim algoritma da aynı sonucu veriyor. Hata göremiyorum algoritmada ama dediğin gibi cos değerini de vermiyor. Neden 12'de kestin dersen çünkü 3^14/14! 0.0001'den küçük.
1 - (3^2/2!) + (3^4/4!) - (3^6/6!) + (3^8/8!) - (3^10/10!) + (3^12/12!)
Benim algoritma da aynı sonucu veriyor. Hata göremiyorum algoritmada ama dediğin gibi cos değerini de vermiyor. Neden 12'de kestin dersen çünkü 3^14/14! 0.0001'den küçük.
yok yaptığın değer doğru zaten ona bişey demiyorum ama, ifade cos(x) değerini verecekmiş. x değerini bizden alacak mesela 60 girdik cos(60)=0.5 değerini bize vermesi gerek.
soruyu ödev veren doçent saolsun bizi pc başına hapsetti :) ama bi türlü cos değerlerini sağlamıyor. ne türlü fantaziler denedim cos(x) e tahmin bile edemezsiniz :) ama olmuyor işte :)
soruyu ödev veren doçent saolsun bizi pc başına hapsetti :) ama bi türlü cos değerlerini sağlamıyor. ne türlü fantaziler denedim cos(x) e tahmin bile edemezsiniz :) ama olmuyor işte :)
Olay şuymuş, radyan olarak hesaplıyor bu meret :)cobra11 dedi: ↑yok yaptığın değer doğru zaten ona bişey demiyorum ama, ifade cos(x) değerini verecekmiş. x değerini bizden alacak mesela 60 girdik cos(60)=0.5 değerini bize vermesi gerek.
soruyu ödev veren doçent saolsun bizi pc başına hapsetti :) ama bi türlü cos değerlerini sağlamıyor. ne türlü fantaziler denedim cos(x) e tahmin bile edemezsiniz :) ama olmuyor işte :)
Ancak düzgün sonuçları 32'ye kadar verebiliyor bende ancak, sanırım hesaplama kapasitesi yetmiyor 32'den sonra saçmalıyor.
Aç bilimsel hesap makinesini 32'ye kadar hesaplat cosinüslerini radyan cinsinden, tuttuğunu göreceksin.
--- Mesaj Güncellendi ---
Dereceyi girdikten sonra radyan'a dönüştürmek lazım.
PI sayısını tanımlamamız lazım ister en üste #include<stdio.h> altına yazarsın #define PI 3.141592654 diye ya da bunu görmediyseniz double PI = 3.141592654 diye tanımlarsın. scanf ile x i aldıktan sonra x = x * (PI/180) formülü ile radyana dönüştürürsün oldu bitti.
#include<stdio.h>
#define PI 3.141592654
double fakto(double f)
{
double carpim=1,deger;
for(deger=f; deger>1; deger--)
{
carpim*=deger;
}
return carpim;
}
main()
{
double x;
printf("X değeri:");
scanf("%lf", &x);
x = x * (PI/180);
double k,toplam=1,pay=x*x,payda=fakto(2),carpan=-1;
for(k=4;(pay/payda)>0.0000001;k+=2) // 0.0001 yerine 0.0000001 yaptım hassasiyeti arttırdım, daha doğru sonuçlar veriyor
{
//printf("%lf/%lf = %lf değeriyle döngüye giriliyor\n", pay, payda, pay/payda); // bu satıra gerek yok artık
toplam+=carpan*(pay/payda);
pay*=x*x;
payda=fakto(k);
carpan*=-1; // bir artı bir eksi olan yer burası
}
printf("Toplam: %lf\n", toplam);
}Şimdi hesapla bakalım cos(60) :)
programın çalışıyor eline sağlık. define komutunu gördük kolay bişey zaten ama
ordaki ortadaki main() komutunu görmedik. main i tek kullandığımız yer en başta int main (void) şeklinde oldu. Mantığını az çok anlar gibi oldum ama o main() olayında kopuyorum
ordaki ortadaki main() komutunu görmedik. main i tek kullandığımız yer en başta int main (void) şeklinde oldu. Mantığını az çok anlar gibi oldum ama o main() olayında kopuyorum
int main (void) de sen aynı şey, standart prosedür de geç :D
aynen __kadıköyRAP__ kardeşime katılıyorum.. aynen ben de öyle düşünmüştüm :D__kadıköyRAP__ dedi: ↑int main (void) de sen aynı şey, standart prosedür de geç :D
Fenasın... :D__kadıköyRAP__ dedi: ↑int main (void) de sen aynı şey, standart prosedür de geç :D
neyse sen dizideyken biz anlatırız arkadaşa onun ne olduğunu sorun değil...
int main (void)
int main (int argc,char** argv)
int main ()
bak şimdi
ilk blok "int" bunun yani bu main adlı fonksiyonun bir int değer döndürdüğüne delalet etmektedir.
main bir fonksiyon ve bu fonksiyonu özel kılan tek şey adı değil...
her C++ (ve C) programınde önce main fonksiyonu çalıştırılır, yani ana fonksiyondur.
yazdığın fonksiyonlara ve sınıflara çağrıyı burdan yaparsın.
3 blok ise parantez içleri yani, fonksiyonun alıcağı argümanları belirler.
içi boş parantezler "()" ve içinde void yazan parantezler "(void)" aynı şeye işaret ediyor, fonksyonun argüman almadığına.
fakat abilerimiz demişlerki ya bu main fonksiyonu argüman da alsın, hani işletim sisteminden gelen şu parametreler varya "C:\hede hödö" -iki tiki tak tuk
gibi...
işte bu parametrelerin işlenmesi için iki argümanı yeterli görmüş bu "abiler", ilk argüman tahmin ettiğin gbi bir int ve main fonksiyonuna gönderilen parametrelerin sayısını vermekte, 2. argüman ise parametrelerin tutulduğu bir karakter katarı dizisi.
parametreler bu dizide tutuluyor işte.
rahatlıkla parametre kabul eden ve bu parametreyi işleyip ona göre davranan program yazabilirsin.
elbet hatalarım vardır, bende çok eski sayılmam programcılıkta, hafif sulu bir beyin, kendinde olmayan bi orta kulak ve bi çok tuşu kendinden geçmiş bir klavye ile yardımcı olmaya çalıştım, umarım açıklayabilmişimdir, hatalarımı burdaki abilerimiz düzeltsinler, sende aramıza hoş geldin bu arada. :D
<?php echo "slm nbr kib bye"; ?>ohoo ben kaç gün önce demiştim dizi izliyorum diye yaw :D ama demin de izliyordum denk getirmişsin :DLeaveNhA dedi: ↑Fenasın... :D
neyse sen dizideyken biz anlatırız arkadaşa onun ne olduğunu sorun değil...
teşekkürler arkadaşlar. bu ödevi hocaya verdiğimiz gün hoca bu konuları anlattı :)
denk gelmiş işte bak, zamanlamam iyidir. :D__kadıköyRAP__ dedi: ↑ohoo ben kaç gün önce demiştim dizi izliyorum diye yaw :D ama demin de izliyordum denk getirmişsin :D
öyle denk geldimi pasla bana, sen geç diziye, ben anlatırım. :D
peki baktım bilmediğim konu var çaktırmadan paslarım :D
estafurullah, sen konu ayırmadan pasla işte, amaç genç nesle yön vermek. :D__kadıköyRAP__ dedi: ↑peki baktım bilmediğim konu var çaktırmadan paslarım :D
"burda ki genç tabiri C++ daki düzeyimden kaynaklanıyor tabi" :D
konunun ehli kaç kişi var bilmiyorum ama php ile aram iyi, tamamen php'ye yoğunlaşsam iş olanaklarım neler olur, freelance projeler vs ?
bilgisi olan abilerimiz ablalarımız bi aydınlatabilirmi acaba ?
arkadaşlar şu koddaki yalnışlık nerde bi yardım edin.
bu işlemin sonucu verecek.
kod derleniyor ama sonuç hatalı çıkıyor.
bu işlemin sonucu verecek.kod derleniyor ama sonuç hatalı çıkıyor.
#include <stdio.h>
#include <math.h>
float seri(float x, int n);
int main(void)
{
float x;
int n;
printf("x ve n degerlerini giriniz: ");
scanf("%f%d",&x,&n);
printf("sonuc %f", seri(x,n));
getch();
return 0;
}
float seri(float x, int n)
{
float terim,sonuc;
int z=2,y;
for(y=1;y<=(2*n-1);y=y+2);
{
terim=y/pow(x,z);
sonuc=sonuc+terim;
z=z+2;
}
return(sonuc);
}
float seri(float x, int n) fonksiyonunu iki kere tanımlamışsın, baştaki boş olanı sil
baştaki float seri(float x, int n) fonksiyonunu silince alttakinde hata veriyor. ben üsttekinde fonksiyon tanımlamadım prototip girdim zaten sonunda ; var yani işlemi ordan bitirdim. float seri(float x, int n) şeklinde bi işlem gelecek haberin olsun şeklinde bi işlemdi baştaki
float seri fonksiyonunu main fonksiyonun üstüne yazmayı dene sen yine de
--- Mesaj Güncellendi ---
şu yani
olmazsa algoritmayı bi inceleriz :)
--- Mesaj Güncellendi ---
şu yani
#include <stdio.h>
#include <math.h>
float seri(float x, int n)
{
float terim,sonuc;
int z=2,y;
for(y=1;y<=(2*n-1);y=y+2);
{
terim=y/pow(x,z);
sonuc=sonuc+terim;
z=z+2;
}
return(sonuc);
}
int main(void)
{
float x;
int n;
printf("x ve n degerlerini giriniz: ");
scanf("%f%d",&x,&n);
printf("sonuc %f", seri(x,n));
getch();
return 0;
}
olmazsa algoritmayı bi inceleriz :)
denedim sonuç aynı değişmedi
peki syntax hatası yok o zaman bi bakayım algoritmaya
algoritma da hata yok gibi görünüyor seri fonksiyonu da doğru yapılmış.
edit: seri fonksiyonunu printf dışında deneyip öyle yazdırsana bakalım nolacak
edit: seri fonksiyonunu printf dışında deneyip öyle yazdırsana bakalım nolacak
yok gene aynı sonucu veriyor :/
işe önce şu for'un sonundaki noktalı virgülü kaldırarak başla
--- Mesaj Güncellendi ---
sonuc değerine de başlangıç olarak 0 ata tamamdır :)
--- Mesaj Güncellendi ---
sonuc değerine de başlangıç olarak 0 ata tamamdır :)
programlamanın pis yanı işte :)__kadıköyRAP__ dedi: ↑işe önce şu for'un sonundaki noktalı virgülü kaldırarak başla
o kadarda uğraştım sildim tekrar yaptım ama ; ü herzaman koymuşum :)
teşekkür ederim __kadıköyRAP__