Segitiga Pascal – part II

Karena banyaknya permintaan, saya coba buat coding untuk program Segitiga Pascal dalam  C++. Mohon maaf, untuk

program dalam bahasa JAVA, saya belum bisa buat karena pemahaman OOP saya masih cetek dan lebih-lebih, laptop saya

yang sudah tuwa dan mulai rewel menolak untuk diinstall JDK T_T
Algoritmanya tidak jauh berbeda dengan program sebelumnya dalam bahasa Pascal. Hanya saja, untuk kemudahan, saya

gunakan array 2 dimensi saja. Listingnya sebegai berikut

#include <iostream.h>

int main(){
int n,i,j;
unsigned long long arr[101][101];

cin>>n;
for (i=1;i<=n;i++){
for (j=1;j<i;j++){
arr[i][j]=arr[i-1][j-1]+arr[i-1][j];
cout<<arr[i][j]<<‘ ‘;
}
arr[i][i]=1;
cout<<arr[i][i]<<‘\n’;
}

return 0;
}

Katanya, banyak jalan menuju Roma. Begitu pula dalam pemrograman. banyak algoritma yang bisa diterapkan untuk

menyelesaikan satu masalah. Berikut ini salah satu coding lain untuk membuat Segitiga Pascal. Masih mengunakan

bahasa C++, hanya dengan sedikit sentuhan STL dan trik minimalisasi memori (duuh, kayakya bahasanya ketinggian,

hehehe… :p ). Here they are

#include <iostream.h>
#include <vector.h>

int main(){
int n,i,j,tmp1,tmp2;
vector <unsigned long long> arr;
bool odd;

cin>>n;
arr.push_back(0);
arr.push_back(1);
if (n>=1) cout<<arr[1]<<‘\n’;

for (i=2;i<=n;i++){
odd=i%2;
tmp1=0;
for (j=1;j<=i/2;j++){
tmp2=arr[j];
arr[j]=tmp1+arr[j];
tmp1=tmp2;
}

for (j=1;j<=i/2;j++) cout<<arr[j]<<‘ ‘;
if (odd) {
arr.push_back(2*tmp1);
cout<<arr[i/2+1]<<‘ ‘;
}
for (j=i/2;j>=1;j–) cout<<arr[j]<<‘ ‘;
cout<<‘\n’;
}
return 0;
}

Kira-kira demikianlah🙂
semoga bisa membantu dan semoga tidak ngebug juga :p

16 thoughts on “Segitiga Pascal – part II

  1. baobaz mengatakan:

    wow..
    masih sering coding2 nih. haha..
    goodluck aja deh.

  2. rusdy mengatakan:

    mas kalo mo cetak segitiga sama sisi kayak gini , caranya gmn?

    *****
    ***
    **
    *

    Thanks

  3. Riza mengatakan:

    Sama sisi atau siku2?
    Kalau siku2, kan bisa pake perulangan bersarang, tinggal counternya didecrease per baris.
    Yg sama sisi juga mirip, tinggal di sisipin karakter spasi di depannya.
    Cuma banyak karakter ‘*’ perbarisnya harus ganjil.
    Monggo, di coba🙂

  4. cox mengatakan:

    laen kali mintak bantuannya y kak

    maksi

  5. ikuTAn mengatakan:

    boZz soRY niCH. . ,
    w daH coBA proGramnYa. . ,
    taPI ko bnYAk bGT yanG eroR ya?????
    whY???

  6. Riza mengatakan:

    @cox:
    Monggo, akan saya bantu kalo bisa🙂

    @ikuTAn:
    Waduh, error messagenya gimana?
    Hmm..mungkin compilernya yg beda.
    Aku pake dev-c++
    Coba “unsigned long long”nya diganti “long” saja.

  7. Gea mengatakan:

    rumus aslinya ntu pa an seh…….
    kalo program yg,

    input : 1237611
    output: satu juta dua ratus tiga puluh tujuh ribu enam ratus sebelas rupiah

    ada yg tau nggak??

    kayaknya di sini pasti ada yg tau….
    thanks–

  8. numpang nanya !!! mengatakan:

    gw mo nanya nih…kalo buat program pascal yang outputnya kayak gini gimana ya ?????
    **********1*********
    *********232*******
    *******34543******
    ******4567654*****
    ****567898765****
    **67890109876***

    terus tanda bintang nya itu diganti sama “spasi”…
    thanx b4…

  9. Riza mengatakan:

    Hmmm…
    itu kayaknya tinggal main indeks deh,
    dicari aja dulu itung2ngan buat loopingnya, simple kok🙂
    kalo angkanya, tinggal di mod 10 aja kayaknya.

  10. ita mengatakan:

    Bagaimana buat program pascalnya lok outputnya kaya gni??

    **********1*********
    *********232*******
    *******34543******
    ******4567654*****
    ****567898765****
    **67890109876***

    tapi tanda bintangnya tidak ada, hanya angka itu saja…
    trimakasih sebelumnya..
    tlong cpat dikasi tawu ya…

    • Riza mengatakan:

      Humm, same problem..
      ok, mungkin procedure ini bisa membantu

      procedure tri(baris:integer);
      var i,j:integer;
      begin
      for i:=1 to baris do
      begin
      for j:=1 to baris-i do write(' ');
      for j:=i to 2*i-2 do write(j mod 10);
      write((2*i-1) mod 10);
      for j:=2*i-2 downto i do write(j mod 10);
      writeln;
      end;
      end;

  11. nero mengatakan:

    gila nih thx ada cewek nanya nih gw tinggal sok2 pinter aje

  12. L mengatakan:

    ERRROOOOORRRRR!!!

  13. fajar mengatakan:

    tolong kasih tau dong gmn codingnya buat program pascal yg outputnya ky gini :
    1
    12
    123
    1234
    12345

    dan

    5
    54
    543
    5432
    54321

  14. jendral smetget mengatakan:

    pengen minta bantuan dunk bro…

    aq bingung ne masalah flowchart..

    buatin aq flowchart untuk mengisi beras ke dalam peti sampai penuh..

    ajari dunk kk…

    trims

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