[Çözüldü] Çarpım-tpplam sembölü kodlamak. (C dilinde)

Başlatan M4DMAX, 12 Aralık 2015 - 23:52:02

« önceki - sonraki »

0 Üyeler ve 1 Ziyaretçi konuyu incelemekte.

M4DMAX

ekteki Çarpım sembolünü kodlamaya çalışıyorum fakat bir türlü düzgün çarpmıyor

int k,bitis;
    int sonuc=1;

    printf("bitis:");
    scanf("%d",&bitis);

    for(k = 1; k <= bitis; k++){
        sonuc *= ( ( 3 * ( k ^ 3 ) ) + 5 ) / ( k ^ 2 );

    printf("%d",sonuc);
}


Bitiş dedigim denklemdeki R oluyor.

[eklenti yönetici tarafından silindi]

tlg

"^", bu işaret C üzerinde bit işlemlerinde kullanılan XOR operatörüdür. En azından ben böyle kullanıldığını biliyorum.
Diyelim kare ve küp işlemi yapan iki fonksiyonun olsun.
int kareAl (int x) {
    return x*x;
}

int kupAl (int x) {
    return x*x*x;
}


Ekleyelim bunları senin koduna
int k,bitis;
    int sonuc=1;

    printf("bitis:");
    scanf("%d",&bitis);

    for(k = 1; k <= bitis; k++){
        sonuc *= ( ( 3 * kupAl(k) ) + 5 ) / ( kareAl(k) );

    printf("%d",sonuc);
}

M4DMAX

int main()
{
    int k,bitis;
    int sonuc=1;

    printf("bitis:");
    scanf("%d",&bitis);

    for(k = 1; k <= bitis; k++){
        sonuc = sonuc *((( 3 * ( k * k * k)) + 5 ) / ( k * k ));

    printf("%d",sonuc);
}


ben öylede oluyodu diye hatırladım üstteki gibi yaptıgımdada tuhaf bi sonuc veriyor.?

şu

tlg

Sizin kullanığınız operatörler bit düzeyinde işlem yapan operatörler, https://en.wikipedia.org/wiki/Operators_in_C_and_C++#Bitwise_operators
Bunu kullanırsanız çok alakasız sonuçlar gelecektir illa ki. Yapcağınız şey math kütüphanesini eklemek veya böyle basit şeyler için ufak fonksiyonlar yazmak olabilir.

M4DMAX

hocam şimdi çözdüm olayı 2 için verdigi sonuc 856 idi orda aslında } ' i en sona attıgım için 1 için cıkan 8 cevabının yanına 2 nin cevabı olan 56 yı yazıyordu } i printf ' in üstüne atınca sonuclar doğru cıktı.Ama bunun gibi bundan daha karışık bi kaç toplam sembölü var o fonksiyonları nası yazdıgınızı biraz anlatırmısınız fonksiyonları tüm işlerin başına mi belirmem lazım ?

tlg

Hmm, şuan bende ilk defa öğreniyorum ^ işaretiyle üs alındığını.
Fonksiyon yaz demekteki amacım basit işler için, şimdiki örnekte olduğu gibi kare alma, üs alma filan tabi bunları çoğaltabilirsin kendince hem elin alışmış olur hemde konuyla ilgili daha çok bilgi sahibi olmuş olursun. Bir nevi güzel bir alıştırma olur, mesela toplam sembolünün işini yapan bir fonksiyon yazabilirsin matematik ve programlamanı iyi geliştirirsin bence :D

Yok ben hazır alim diyorsan, "#include <math.h>" :)

Fonksiyonlar ana programın bulunduğu dosyada ana fonksiyonun üstünde veya altında yazılabilir. Veya ayrı dosyada yazıp, kullanmak istediğin yere include edebilirsin.

M4DMAX

işin ilginci include math dan pow ile kuvvet aldım birde sizin verdiginiz kodlar ile 2sinin sonucu farklı cıktı pow ile 554 alırken sizn kodlar 504 verdi bu fark nerden geliyor olabilir.?

tlg

Ben senin koduna ek yapmıştım, orada da } karakterini alta koymuştun, onu düzelttin mi?

M4DMAX

Evet o } leri düzelttim ilk 2 değer için doğru cıkıyor  ama 3.değerde fark cıkıyor.

Sh4oTT

C de ^ işaretiyle üs alınmıyor ki sadece algoritma yazarken ^ işareti ile üs alındıgını bıldırıyoruz kod satırında olmuyor

M4DMAX

^ kısmını karıştırmış olabilirim :S 6 saattir Codeblocksta oynayınca biraz pepele oldum doğrusu :)

tlg

Sanırım türlerle alakalı, pow fonksiyonu double kullanıyordu, biz int üzerinde gittik. Tabi işinin erbabı arkadaşlar daha iyi cevap vereceklerdir.

Sh4oTT

double pow (double x, double y);    -> x  üzeri y ' yi döndürür.

M4DMAX

ama ben double kullanmadım direk pow dan attım oldu ?
for(k = 1; k <= R; k++)
        {
            total *= ((( 3 * (pow(k,3))) + 5 ) / ( pow(k,2) ));
        }
            printf("%d",total);

            printf("\n");


su sekilde suan ve çalışıyor tanımlama kısmındada int ile double yok

Sh4oTT

@M4DMAX benim attıgım pow fonksiyonun prototipiydi zaten nasıl kullanılacagı hakkında bilgi vermesi amaçlıydı sorun yok yani dogru yapmıssınız :)

M4DMAX

#15
eyv. Hocam benim merak ettigim diğer arkadaşın attıgı fonksiyonlarda niye farklı sonuç cıktı ? onun fonksiyonlarda doğru 2sinide int üzerinden denedim.


Mesaj tekrarı yüzünden mesajınız birleştirildi. Bu mesajın gönderim tarihi : 13 Aralık 2015 - 01:59:47

Birde beyler bi sorum daha var ben bunu codeblocks'tan yazıyorum bitirince hocaya atıcam şimdi o ekte attıgım soru fotosunu terminalde cıkartabilir miyim orda mesela R için değer girin derken onun altında sorunun fotosunu gösterebilir miyim ?

Sh4oTT

Foto olarak degilde soyle bır sey yapabılırsın :)

#include <stdio.h>


int main() {

printf("R\t");
printf(" 3(k^3)+5\n");
printf("%c\t",227);
printf("---------\n");
printf("k=1\t");
printf("  (k^2)\n");



}

M4DMAX

aslında bunu  yapmaya üşenmiştim :)  printf("%c\t",227); şu kısım bende soru işareti gibi tuhaf bişey cıktı normali öylemi yoksa bende font mu desteklemedi oraya bi çarpım sembolü ayarlasak efsane olurdu :D

Sh4oTT

#18
Boyle nasıl :)

#include <stdio.h>


int main() {

printf(" R\t");
printf(" 3k³+5\n");
printf(" ∏\t");
printf("-------\n");
printf(" k=1\t");
printf("  k²\n");



}

M4DMAX

you rock dude!!  :D Nası cıkarttın onu ben toplam işaretini attıgımda complier hata veriyodu buna bişey demedi. nerden buldun nası buldun ?

Sh4oTT


M4DMAX

haha :D bende toplam işlemini attım oda oldu 2'sinide yaparım artık çok teşekkürler.Söz konusu puan olunca her yol mübah :)

Sh4oTT


Reverser


XFCE ROCKS !
Powered by Thunar & XFWM4