IRCForumları - IRC ve mIRC Kullanıcılarının Buluşma Noktası

IRCForumları - IRC ve mIRC Kullanıcılarının Buluşma Noktası (https://www.ircforumlari.net/)
-   C ve C++ (https://www.ircforumlari.net/c-ve-c/)
-   -   Pascal Üçgeni (https://www.ircforumlari.net/c-ve-c/457035-pascal-ucgeni.html)

aSi 27 Şubat 2012 18:20

Pascal Üçgeni
 
[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]

[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]ni yazdıran bir program…Değerler integer tanımlı olduğu için 12 den sonrasını hatalı tanımlıyor.Programı okumaya başlamadan önce Yukarıdaki linkten nasıl hesaplandığını öğrenebilirsiniz.(Dil yarı Türkçe Yarı İngilizce oldu bu seferlik kusura bakmayın)

Kod:

#include <stdio.h>
#include <stdlib.h>

//Pascal triangle in this example contains
//Lazım olan fonksiyonlarımız
int factorial(int);//Faktöriyel hesaplayabilmemiz için
int C(int,int);//Kombinasyonu hesaplayabilmemiz için
void space(int);//Üçgene şeklini verebilmemiz için gerekli boşlukları koymamızı sağlıyor
void writer(int,int);//Her satırı yazdırmamızı sağlayan fonksiyon
//Öncelikle
int main()
{
    int last,sender;
    do
    {
        printf("Enter a number from 0 or larger");
        scanf ("%d",&last);
    }
    while(last<0);

    for(sender=0; last>=sender; sender++)
        writer(sender,last);//Her satırın yazılışını bu fonksiyon ile sağlayacağız

    getch();
    return 0;
}

//****space printer****
void  space(int space)
{
    int counter;
    for(counter=0; space>=counter; counter++)
    {
        printf("  ");
    }
}

//*******factorial*****
int factorial(int incoming)
{// tek değer alır. 1'den gelen sayıya kadar olan sayıları 1'er artırarak çarpar. Cevap zaten o sayının faktoriyeli olur
    int counter,result=1;
    for(counter=1; incoming>=counter; counter++)
    {
        result*=counter;
    }
    return result;
}

//***combination calculate***
int combinasyon(int n,int r)
{//İki tane  değer alır Biri hangi satırda olduğu diğeri de kaçıncı sayı olduğu. Örnek:
//      1    1.satır
//      1 1    2.satır
//    1 2 1    3.satır
//    1 3 3 1    4.satır buradaki ilk 3 sayısı 2. sayıdır
    int result;
    result=factorial(n)/(factorial(r)*factorial(n-r));//Sayının hesaplanması için gerekli formul
    return result;//bulduğumuz sayıyı döndürüyoruz
}

//*********printer***********
void writer(int incoming,int last)
{//İki tane değerimiz geliyor biri son değer biri'de kaçıncı satırda olduğumuz bilgisi
    int counter;
    space(last-incoming);//son değerden ilk değeri çıkararak üçgenin soldan kaç birim uzaklıkta olması gerektiğini ayarlıyoruz
    for(counter=incoming; counter>=0; counter--)
        printf("%4d",combinasyon(incoming,counter));//3 boşluk koyup(yazılacak olan sayı 2 basamaklı ise 2 boşluk koyacaktır)
//sayımızı kombinasyon fonksiyona hesaplatıp gerkeli cevabı aldıktan sonra yazdırıyoruz
    printf("\n");
}




Tüm Zamanlar GMT +3 Olarak Ayarlanmış. Şuanki Zaman: 14:37.

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2025, vBulletin Solutions, Inc.
Search Engine Friendly URLs by vBSEO
Copyright ©2004 - 2025 IRCForumlari.Net Sparhawk