Diktat_Prosedural_13_StudiKasus

1 2011 2012tgl revisi 21 nov 2011 17 draft diktat

Info iconThis preview shows page 1. Sign up to view the full content.

View Full Document Right Arrow Icon
This is the end of the preview. Sign up to access the rest of the document.

Unformatted text preview: (input P1, P2 : polinom, output P3 : polinom) { I.S. : P1, P2 terdefinisi dan mungkin kosong } { F.S. : P3 = P1 + P2, P3 polinom baru } { Menjumlahkan P1 + P2 dan menyimpan hasilnya di P3, P3 ≠ P1 dan P3 ≠P2 } KAMUS LOKAL Pt1, Pt2 : address Last : address Sum : integer { alamat elemen terakhir P3 } { penjumlahan coefficient P1 dan P2 } ALGORITMA InitListPol(P3); Last ← Nil; Pt1 ← P1; Pt2 ← P2 while (Pt1 ≠ Nil) and (Pt2 ≠ Nil) do depend on Pt1, Pt2 Degree(Pt1) > Degree(Pt2) : { Salin & insert Pt1 ke P3, Pt1 maju } InsertLast(Degree(Pt1),Coefficient(Pt1),P3,Last) Pt1 ← Next(Pt1) Degree(Pt1) = Degree(Pt2) : { Jumlahkan Coefficient, salin & insert jika tidak nol, Pt1 & Pt2 maju } Sum ← Coefficient(Pt1) + Coefficient(Pt2) if (Sum ≠ 0) then InsertLast(Degree(Pt1),Sum,P3,Last) { else tidak di-insert karena Coefficient bernilai nol } Pt1 ← Next(Pt1); Pt2 ← Next(Pt2) Degree(Pt1) < Degree(Pt2) : { Salin & insert Pt2, Pt2 maju } InsertLast(Degree(Pt2),Coefficient(Pt2),P3,Last) Pt2 ← Next(Pt2) { Pt1 = Nil or Pt2 = Nil } while (Pt1 ≠ Nil) do { proses sisa P1 } InsertLast(Degree(Pt1),Coefficient(Pt1),P3,Last) Pt1 ← Next(Pt1) while (Pt2 ≠ Nil) do { proses sisa P2 } InsertLast(Degree(Pt2),Coefficient(Pt2),P3,Last) Pt2 ← Next(Pt2) Oleh: Inggriani Liem/Revisi bab oleh: Tim IF2030 sem. 1 2011-2012/Tgl. Revisi: 21 Nov 2011 17 Draft Diktat Struktur Data Hanya untuk digunakan di lingkungan Sekolah Teknik Elektro dan Informatika ITB procedure SubListPol (input P1, P2 : polinom, output P3 : polinom) { I.S. : P1, P2 terdefinisi dan mungkin kosong } { F.S. : P3 = P1-P2, P3 polinom baru } { Mengurangkan P1 - P2 dan menyimpan hasilnya di P3, P3 ≠ P1 dan P3 ≠ P2 } KAMUS LOKAL Pt1, Pt2 : address PNew : address Last : address Diff : integer { { { { address traversal } alokasi sebuah suku baru } alamat elemen terakhir P3 } pengurangan coefficient P1 dan P2 } ALGORITMA InitListPol(P3); Last ← Nil; Pt1 ← P1; Pt2 ← P2 while (Pt1 ≠ Nil) and (Pt2 ≠ Nil) do depend on Pt1, Pt2 Degree(Pt1) > Degree(Pt2) : { Salin & insert Pt1 ke P3, Pt1 maju } InsertLast(Degree(Pt1),Coefficient(Pt1),P3,Last) Pt1 ← Next(Pt1) Degree(Pt1) = Degree(Pt2) : { Kurangkan Coefficient, Salin dan insert jika tidak nol, Pt1 & Pt2 maju } Diff ← abs(Coefficient(Pt1) - Coefficient(Pt2)) if (Diff ≠ 0) then InsertLast(Degree(Pt1),Diff,P3,Last) { else tidak di-insert karena Coefficient bernilai nol } Pt1 ← Next(Pt1); Pt2 ← Next(Pt2) Degree(Pt1) < Degree(Pt2) : { Salin&insert Pt2 ke P3,Pt2 maju } InsertLast(Degree(Pt2),Coefficient(Pt2),P3,Last) Pt2 ← Next(Pt2) { Pt1 = Nil or Pt2 = Nil : tuliskan sisanya ke P3 } { Proses sisa P1, jika ada } while (Pt1 ≠ Nil) do { Proses sisa P1 } { Alokasi sebuah suku polinom } InsertLast(Degree(Pt1),Coefficient(Pt1),P3,Last) Pt1 ← Next(Pt1) { Proses sisa P2, jika ada } while (Pt2 ≠ Nil) do { Proses sisa P2 } { Alokasi sebuah suku polinom } InsertLast(Degree(Pt2),Coefficient(Pt2),P3,Last) Pt2 ← Next(Pt2) Oleh: Inggriani Liem/Revisi bab oleh:...
View Full Document

Ask a homework question - tutors are online