Segitiga Pascal

Soal 2 Olimpiade Sains Mahasiswa 2007, Yogyakarta.

Deskripsi Soal :

Buatlah program yang meminta input bilangan asli n dan mengoutputkan segitiga pascal dari baris 0 hingga baris n

Contoh Input :

7

Contoh Output :

1

1 1

1 2 1

1 3 3 1

1 4 6 4 1

1 5 10 10 5 1

1 6 15 20 15 6 1

1 7 21 35 35 21 7 1

Solusi :

Ada berbagai algoritma untuk membuat program segitiga pascal, seperti menggunakan flying table dll. Berikut ini listing program saya untuk membuat segitiga pascal

var num:array[1..100] of longint;

i,j,n,batas:integer;

begin

readln(n);

num[1]:=1;

writeln(1);

for i:=1 to n do

begin

batas:=(i+1) div 2;

if not odd(i) then

num[batas+1]:=num[batas]*2;

for j:=batas downto 2 do

num[j]:=num[j]+num[j-1];

for j:=1 to batas do

write(num[j],’ ‘);

if not odd(i) then write(num[batas+1],’ ‘);

for j:=batas downto 1 do

write(num[j],’ ‘);

writeln;

end;

end.

About these ads

64 thoughts on “Segitiga Pascal

  1. jaka mengatakan:

    tolong dong,program segitig pascal-nya dalam bahasa C(turbo C)…..!Thanks…..

  2. Riza mengatakan:

    Jujur, saya belum pernah coding pakai bahasa C, tapi seharusnya algoritma dari listing program Pascal diatas tidak terlalu sulit dimengerti. Mungkin yang sedikit tampak susah karena saya cuma mencari setengah bagian dari setiap baris (karena setengahnya yang lain pasti sama kan? Cuma urutannya yang terbalik). Jadi kalau mau simple, proses saja seluruh baris dengan menggunakan flying table.

  3. fandi mengatakan:

    Tolong dong untuk program piramida..
    Makasih yaaak…

  4. fandi mengatakan:

    o iya lupa, aku masih belajar pake “for do”
    minta tolong untuk yg pake for do aja yaa

  5. Riza mengatakan:

    Deskripsi soalnya kaya gimana ya?

  6. Hendriko mengatakan:

    kk boleh tidak jika aku kesulitan dalam buat program trus minta bantuannya?

  7. Riza mengatakan:

    Insya Allah saya coba bantu sebatas kemampuan saya.

  8. ipin mengatakan:

    bia nga’ kalu apabila masukannya pangkat(a+b)^n=yang keluar rumus dari paskal itu sendiri

  9. Riza mengatakan:

    Misalnya?

  10. Neyza mengatakan:

    cukup jelas dan dapat dimengerti. Jadi, kapan-kapan boleh mnt bantuannya untk soal yang sulit g? Thnx,,,

  11. Dimas mengatakan:

    tolong dong
    tuk segitiga paskal pke java
    minta bantuaanya ya …
    Thank’s

  12. adi mengatakan:

    kalo pake borland c ++ gimana mas..??????tolongin ya..!!??

  13. Rob-B mengatakan:

    Maz gmna iah cranya bkin segitiga pascal pk program turbopascal yg outputnya nanti berbentuk piramida dan terletak d tengah2..
    untuk balasannya silahkan dkirim k “robby.programmer@gmail.com”
    saya tunggu ….

    trims

  14. Riza mengatakan:

    Hmm, kayaknya susah kalo mau dibikin persis berbentuk piramida (ditengah-tengah)
    Langkah paling mudah, sebelum di writeln, convert output setiap baris menjadi string, simpan dalam buffer, trus pas mau di write, tambahkan karakter spasi di setiap baris. Masalah jumlah spasinya berapa, coba diitung2 sendiri, simple math kok :p

  15. lusi mengatakan:

    cara bentuk c# bagaimana hasilnya???

  16. lusi mengatakan:

    caranya gmn kalu menggunakan c#

  17. Fitri mengatakan:

    Mas, tolong dong….
    Kalo program buat segitiga pascal pake perulangan (for/while/repeat), bisa nggak?
    Kalo bisa gimana caranya?
    Soalnya saya lagi belajar looping.

    Terima kasih sebelumnya :-)

  18. Riza mengatakan:

    @lusi : C# mirip2 JAVA/ C kan?
    yah, kurang lebih sama kaya yg di segitiga pascal II itu lah :)

    @Fitri : lho, kan udah pake looping ntuh ^_^”

  19. Kyuuby mengatakan:

    kq gini ya,,segitiga pascalnya mana??

  20. hilda mengatakan:

    Ass…,
    kk aku baru mengenal pascal ni……
    harap maklum ya!!!
    aku mau tanya,apa sich fungsi dari segi tiga pascal itu?????
    makacih

    • Riza mengatakan:

      Hmm, apa yah fungsi umum dari segitiga pascal?
      Tapi secara umum, segitiga pascal bisa dikatakan sebagai penyusunan geometris dari koefisian binomial.
      Beberapa pola menarik kemudian bisa kita dapatkan dari segitiga pacal, seperti bilangan trigonal bahkan deret fibonacci!
      Silahkan klik di sini atau di situ atau mungkin di sono untuk informasi lebih lanjut.

      Kalau di dunia pemrograman sendiri, segitiga pascal sering digunakan sebagai topik latihan bagi programmer pemula untuk mempelajari manipulasi perulangan (nested loop), penggunaan array multidimensi, atau bahkan rekursi.

  21. nugrah rahmansyah mengatakan:

    tolong donk bwatin flowcartnya….tanks

  22. yansen mengatakan:

    baik kita masi belajar sama2, coba dunk w pengen megetahui cara pembuatan sgetiga yg di bawah ini

    bisa buat segita pascal seperti ini…………….tolong y kk ^^

    *******************|_|*******************
    ******************|_||_|******************
    *****************|_||_||_|****************
    ***************|_||_||_||_|***************
    **************|_||_||_||_||_|***************
    ************|_||_||_||_||_||_|***************

    dan seterus nya……….(* adalah spasi)……………

    • Riza mengatakan:

      hmm, kok pada penasaran bikin segitiga pascal yang balance ya? :)
      Ok2, gini, kita coba akalin, untuk setiap elemen segitiga pascalnya, kita write dengan space/ alokasi tempat yang sama dan genap, misal 4 karakter. Nah, karena spacenya genap, yang bawah nanti bisa bercabang kan? jadi codenya seperti ini

      type segitiga_pascal = array[0..100,0..100] of integer;
      var n:integer;
          pas:segitiga_pascal;
      
      procedure genpas(n:integer;var pas:segitiga_pascal);
      var i,j:integer;
      begin
        pas[1,1]:=1;
        for i:=2 to n do
          for j:=1 to i do
            pas[i,j]:=pas[i-1,j-1]+pas[i-1,j];
      end;
      
      procedure tulis(n:integer;var pas:segitiga_pascal);
      var i,j,indent,space:integer;
      begin
        space:=4; (*harus berupa bilangan genap*)
        indent:=(n-1)*(space div 2);
        for i:=1 to n do
          begin
            write('':indent);
            for j:=1 to i do
              write(pas[i,j]:space);
            writeln;
            dec(indent,space div 2);
          end;
      end;
      
      begin
        readln(n);
        genpas(n, pas);
        tulis(n,pas);
      end.
      
    • Deni mengatakan:

      sekalian aja u minta bikinin bentuk Monas…

  23. mumet_nih mengatakan:

    Kalo logika algoritma ataupun program pascal nya buat seperti di bawah ini gmana yach, tolong donk

    input nya : 6 dan output nya seperti ini :

    1
    2 7
    3 8 12
    4 9 13 16
    5 10 14 17 19
    6 11 15 18 20 21

    terima kasih

  24. mumet_nih mengatakan:

    di tambah 5 terus terus di kurangin 1
    program nya donk mas
    udah due date nih :), tolong yach

    • Riza mengatakan:

      haduh haduuuh, piyo to iki? ^_^”
      yawis, moggo code dibawah ini dicoba…

      var n,i,j,k:integer;
      
      begin
        readln(n);
        for i:=1 to n do
          begin
            k:=i;
            for j:=1 to i do
              begin
                write(k,' ');
                k:=k+n-j;
              end;
            writeln;
          end;
      end.
      
  25. wimas mengatakan:

    aslm,,,

    mas,,,
    bs buat segitiga pascal dalam bahasa fortran?
    bngung ni crina lum dpt2 juga,,,
    maturnuwun…

  26. rico mengatakan:

    mas mau tanya untuk cara buat segitiga pascal dalam fortran 77 atau 90 gmana????

    tolong bantuannya….
    hatur nuhun!!!!!!!!!!!!!!!!!!

  27. Riza mengatakan:

    waaah, saya ndak belajar fortran! ^^”

  28. nisa mengatakan:

    aslmkn….
    mas tlong buatin program pascalnya donk…..
    1 * 3 * 5
    * 2 * 4 *
    1 * 3 * 5
    * 2 * 4 *
    1 * 3 * 5
    terus kl punyaknya yansen yg no 22 kl menggunakan for ato while do gmn?
    syukron.

  29. vibie mengatakan:

    Mantap JAya!!!
    Teng qyu,,Riza..
    Qwuh udah nyari muter2 nyari jawaban buad pertanyaan kayak punya “yansen”.. Finally,,ketemu juga di ni blog…
    Teng qyu….Be ge te…Ea…

  30. aini mengatakan:

    kak riza,buatin perincian ttg segitiga pascal donk?penemunya juga

  31. moety mengatakan:

    mohon bantuannya nyari output dari

    1
    112
    11122
    11112223
    11111222233
    tolong ya..
    mendesak benget nich..
    thanks before

  32. sumiati mengatakan:

    mnt tlng kk ,program c# yang meminta input bilangan asli n dan mengoutputkan segitiga pascal dari baris 1 hingga baris n
    Contoh Input : Jumlah deret = 7
    Output :
    1
    1 1
    1 2 1
    1 3 3 1
    1 4 6 4 1
    1 5 10 10 5 1
    1 6 15 20 15 6 1
    1 7 21 35 35 21 7 1

  33. Josh mengatakan:

    bro, kalau segitiga pascal nya pake netbeans gimana?
    untuk jumlah barisnya diinput user.
    hasil segitiga pascalnya di rotate 90 derajat kekanan bro… bisa?

    contoh 3 baris aja:
    output segitiga pascal:
    1
    1 1
    1 2 1

    output rotate 90 derajat ke kanan :

    1
    1
    2 1
    1
    1

  34. Josh mengatakan:

    waduh contohnya kok jd hancur…
    gini yg bener bro

    contoh 3 baris aja:
    output segitiga pascal:
    *******1
    ***1******1
    *1 ****2**** 1

    output rotate 90 derajat ke kanan :

    1
    ***1
    2 ****1
    ***1
    1

    (* = spasi)

  35. Neng helmi mengatakan:

    Aslm. k’ klo output nya kyak gini
    1
    1 2
    3 5 8
    13 21
    34
    gmn source nya t k’…???
    dan kalau diminta masukkan nilai n
    ex. n=3
    khan hasilnya kayak gini
    1
    1 2
    3
    bantuin dunk k’ gmn source nya….pusing bgt ne k’…! udah coba2 tapi hasilnya berantakan.
    thanks b4 y k’….

    wassalam.

  36. Neng Helmi mengatakan:

    Aslm. gimana caranya bikin segitiga pascal pke bilangan fibonacci ka’…??

    hasilnya yang kayak gini ka’….

    1
    1 2
    3
    thanks b4 untuk jawabannya k’…!!

  37. tia mengatakan:

    boLeh tau ga aLgoritma’na ky gmn ??
    program yg paLing atas.. thx b4

  38. maneke mengatakan:

    tolong dong bantuannya untuk output

    5 4 3 2 1
    4 3 2
    3
    2 3 4
    1 2 3 4 5

    programnya gimana ya, thanx before

  39. wenny junianto mengatakan:

    ka buatkan dong

    * * * * *
    * * *
    *

    penting bangat ka.
    thanks

  40. wenny junianto mengatakan:

    ini jg ka
    * * * * *
    * * *
    *

  41. wenny junianto mengatakan:

    buatkan jg ka segitiga terbalik.
    trima kasih banyak.

  42. Riza mengatakan:

    Waduh, kok jadi minta dibikinin program semua ini?? ^^”
    Karena jadwal saya yg lagi hectic banget, mohon maaf saya blom bisa bantuin satu2.
    Sebagai gantinya, ini saya kasih beberapa link buat sumber belajar & tanya2, siapa tahu ada yg bisa bantu,
    http://groups.yahoo.com/group/tokinet/
    http://www.facebook.com/group.php?gid=166544345960
    Semoga bisa membantu.. \(^o^)/

  43. dorkas mengatakan:

    kok programnya sy coba di pas kal,,,hasil outputnya gak ada ya???
    aku dah coba ketik ulang tp sama aja,,hasil outputnya gak ada….

  44. yusuf mengatakan:

    bisa buat segitiga kayak gini g?
    *-*-*
    -*-*-
    –*–

  45. ururunstrive mengatakan:

    wuaaah…. uda lama ga belajar bahasa pascal…
    padahal penasaran sama segitiga pascal…

    gini ni mas/mba riza,
    saya ga ngerti bagian
    yang

    if not odd(i) then…

    nah kalau odd gimana?
    oya, oddnya juga harus di ubah jadi bilangan mod 2=0dulu kan?
    (soalnya saya pake C, hehe)

    bingung nih…
    kalau ga ngerepotin bisa ubah pake pseudo-code aja ga?
    tolong dong…

    pleaseeee ..
    (entah dibales berapa bulan kedepan) :p

    • Riza mengatakan:

      Yak betul! odd() adalah fungsi di pascal yang akan mengembalikan nilai true jika parameternya merupakan bilangan ganjil.
      if not odd(i) …
      kalo di C kurang lebih seperti ini
      if (i % 2 != 1) …

  46. ururunstrive mengatakan:

    oke deh!
    makasih mas!

  47. ade mengatakan:

    tlg bantuin ngjain tgs ni dunk bos
    . Masukkan Angka : 5
    1
    1 2 1
    1 3 3 1
    1 4 6 4 1
    1 5 10 5 1
    thnks y

  48. ade mengatakan:

    bntuknya tp sgtiga bos,angka 1 pling atas ada di tengah(diatas angka 2)

  49. Zulfikar mengatakan:

    wah kacau ini pada minta bikinin program semua. Kalo program tuh ga boleh dibikinin. Kalo yang simpel aja kayak gini ga bisa, gimana suruh bikin program yang besar

  50. tier mengatakan:

    kl punya koding nya ini… minta…. :P
    masukan kata = SurabayaZ
    S
    u u
    r r
    a a
    b b
    a a
    y y
    a a
    JJJJJJJJJJJJJJJJJJJJJ

  51. cinthya mengatakan:

    kalo dalam bahasa c# gimana

  52. lord mengatakan:

    ada yang tau gak listingya membuat bangun ruang dengan menggabuangkan titik dan garis pada pascal????

  53. nafa mengatakan:

    ass,,
    mas lw buat program ini ge mana
    1
    2 2
    3 3 3
    4 4 4 4
    5 5 5 5 5

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Logout / Ubah )

Twitter picture

You are commenting using your Twitter account. Logout / Ubah )

Facebook photo

You are commenting using your Facebook account. Logout / Ubah )

Google+ photo

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s