[Çözüldü] C ile bir fonksiyon yapmak(seriler)

Başlatan harunbas141, 30 Eylül 2016 - 16:36:34

« önceki - sonraki »

0 Üyeler ve 1 Ziyaretçi konuyu incelemekte.

harunbas141

Bir fonksiyon yapmaya çalışıyorum ama tıkandım. Alt limit ve üst limit var. Matematik'te diziler vardıya. Alt limitte üst limitte eksi olabilir. şimdi bu kodun bir kısmını yaptım ama en önemli kısmı eksik.


#include<stdio.h>
#include<conio.h>
main(){
int a,b,i,tp;
printf("bir deger giriniz: ");scanf("%d",&a);
printf("bir deger giriniz: ");scanf("%d",&b);
for(i=a;i<=b;i=i+1){
printf("%d\n",i);
tp=tp+i;
}
printf("tp: %d",tp);
getch();}


sayıları 1 bölü 1 1 bölü 2 1 bölü 3 diye yazdırıp bunları toplamını bulmam lazım. sizden direk kodu vermenizi zaten beklemiyorum. nasıl yapabilirim onu söyleyin makul. :)


travego0403

İlk olarak i ve tp değerlerini double yap.
tp değerine başlangıç değeri olarak 0 yap.
Toplama işlemini yaptırdığın yeride tp = tp +1/i yaparsan istediğin değeri alırsın.

Tabi double değişkenleri yazdırmak için %d değilde %f yapman lazım.
"Matematik bir dildir ve bu dilde şairlere fizikçi denir." Richard Feynman

harunbas141

#2
Dostum teşekkür ederim. Anlamadığım şey neden double yapıyoruz?


Mesaj tekrarı yüzünden mesajınız birleştirildi. Bu mesajın gönderim tarihi : 30 Eylül 2016 - 19:04:27


bir deger giriniz: -5
bir deger giriniz: 10
-5.000000
-4.000000
-3.000000
-2.000000
-1.000000
0.000000
1.000000
2.000000
3.000000
4.000000
5.000000
6.000000
7.000000
8.000000
9.000000
10.000000
tp: 1.#INF00


böyle bir çıktı aldım. ne kadar doğru acaba?

travego0403

int tamsayı değişkenleri depolamak içindir. 1 2 3 gibi. 1/1+1/2 sayıların toplamı kesirli yani gerçek sayı olacak örneğin yandaki iki sayının toplamı 1+0.5 = 1,5 bu sayı int bir değişkende tutulamaz. Virgülden sonrasını yok sayar. Reel sayıları tutmak için float ve double tipinde değişkenler kullanılır.


Mesaj tekrarı yüzünden mesajınız birleştirildi. Bu mesajın gönderim tarihi : 30 Eylül 2016 - 19:08:13

Düzenlediğin kodları bir dha atar mısın bir bakalım nerde hatan var.
"Matematik bir dildir ve bu dilde şairlere fizikçi denir." Richard Feynman

harunbas141


#include<stdio.h>
#include<conio.h>
main(){
int a,b;
double i,tp;
tp=0;
printf("bir deger giriniz: ");scanf("%d",&a);
printf("bir deger giriniz: ");scanf("%d",&b);
for(i=a;i<=b;i=i+1){
printf("%f\n",i);
tp=tp+1/i;
}
printf("tp: %f",tp);
getch();}

travego0403

Şimdi gördüm ilk baktığımda dikkat etmemişim. -5 ten başlayarak 0 kadar geliyorsun. i/0 değerinde sıfıra bölme hatası veriyor bu yüzden anlamsız sonuçlar çıkıyor muhtemelen. Başka aralıklar için denemeler yapabilirsin.
"Matematik bir dildir ve bu dilde şairlere fizikçi denir." Richard Feynman

harunbas141


travego0403

Elbetteki sayabilirsin. Yalnız programlamaya yeni başlamışsın herhalde. :) Küçük bir if şartı koyarak o turu atlayabilirsin.
"Matematik bir dildir ve bu dilde şairlere fizikçi denir." Richard Feynman

harunbas141

Bilgisayar Mühendisliği 2.sınıftayım. İlk sene gördüm C dilini. Yazın pek tekrar etmedim. O yüzden unuttum. Şimdi kendime ödevler çıkardım. Onları yapmaya çalışıyorum.


if(i==0) contiune;


bunu yazdım oldu.  :)

travego0403

Sorun çözüldüyse başlığı etiketleyebilirsin. :)
"Matematik bir dildir ve bu dilde şairlere fizikçi denir." Richard Feynman