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.

Iklan

64 thoughts on “Segitiga Pascal

  1. jaka berkata:

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

  2. Riza berkata:

    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 berkata:

    Tolong dong untuk program piramida..
    Makasih yaaak…

  4. fandi berkata:

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

  5. Riza berkata:

    Deskripsi soalnya kaya gimana ya?

  6. Hendriko berkata:

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

  7. Riza berkata:

    Insya Allah saya coba bantu sebatas kemampuan saya.

  8. ipin berkata:

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

  9. Riza berkata:

    Misalnya?

  10. Neyza berkata:

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

  11. Dimas berkata:

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

  12. adi berkata:

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

  13. Rob-B berkata:

    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 berkata:

    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 berkata:

    cara bentuk c# bagaimana hasilnya???

  16. lusi berkata:

    caranya gmn kalu menggunakan c#

  17. Fitri berkata:

    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 berkata:

    @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 berkata:

    kq gini ya,,segitiga pascalnya mana??

  20. hilda berkata:

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

    • Riza berkata:

      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 berkata:

    tolong donk bwatin flowcartnya….tanks

  22. yansen berkata:

    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 berkata:

      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 berkata:

      sekalian aja u minta bikinin bentuk Monas…

  23. mumet_nih berkata:

    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 berkata:

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

    • Riza berkata:

      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 berkata:

    aslm,,,

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

  26. rico berkata:

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

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

  27. Riza berkata:

    waaah, saya ndak belajar fortran! ^^”

  28. nisa berkata:

    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 berkata:

    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 berkata:

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

  31. moety berkata:

    mohon bantuannya nyari output dari

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

  32. sumiati berkata:

    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 berkata:

    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 berkata:

    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 berkata:

    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 berkata:

    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 berkata:

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

  38. maneke berkata:

    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 berkata:

    ka buatkan dong

    * * * * *
    * * *
    *

    penting bangat ka.
    thanks

  40. wenny junianto berkata:

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

  41. wenny junianto berkata:

    buatkan jg ka segitiga terbalik.
    trima kasih banyak.

  42. Riza berkata:

    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 berkata:

    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 berkata:

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

  45. ururunstrive berkata:

    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 berkata:

      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 berkata:

    oke deh!
    makasih mas!

  47. ade berkata:

    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 berkata:

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

  49. Zulfikar berkata:

    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 berkata:

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

  51. cinthya berkata:

    kalo dalam bahasa c# gimana

  52. lord berkata:

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

  53. nafa berkata:

    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:

Logo WordPress.com

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

Gambar Twitter

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

Foto Facebook

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

Foto Google+

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

Connecting to %s