PENGATURCARAAN C++ Penyelesaian Masalah (C) Md Yazid Mohd Saman, 2013 Jabatan Sains Komputer Fakulti Sains & Teknologi Universiti Malaysia Terengganu (UMT) yazid@umt.edu.my http://yazid.blog.umt.edu.my
a) An Old Lady b) A Young Lady Guess who? a) An Old Lady b) A Young Lady
Bab#3 Membina Algoritma & Aturcara C++ OBJEKTIF Modul ini memberikan penerangan ringkas kepada Takrif & definasi Analisis masalah Sampel penyelesaian masalah Sila baca Buku teks Bab#3 Membina Algoritma & Aturcara C++
Pengenalan & Takrif
Masalah Formal Masalah formal - spesifikasi persoalan yang perlu dicari penyelesaiannya Contoh masalah: Kira luas kawasan Kira cukai Kira markah purata Sistem pangkalan data Kira CGPA
Analisis masalah Analisis masalah – satu kaedah (atau cara, metodologi) untuk menilai kehendak (atau keperluan) untuk penyelesaian sesuatu masalah formal
Algoritma @ Algorithm Algoritma (alkhawarizmi) - satu susunan atau turutan tindakan yang umum untuk penyelesaian masalah yang tidak formal Contoh: resipi makanan, arahan mendaftar kursus, kira purata markah Algotritma untuk mendaftar kursus Mula 1. Dapatkan borang 2. Isi borang 3. Jumpa Pembimbing siswa 4. Daftar di komputer Akhir algoritma
Cartalir Cartalir: Mula sama seperti algoritma Baca data Proses data Pamer data Tamat Cartalir: sama seperti algoritma satu susunan tindakan untuk penyelesaian satu masalah yang berbentuk grafik
Pengkodan @ Coding Pengkodan - membina (atau menulis) kod aturcara dalam bahasa pengaturcaraan seperti C++ (atau Pascal, Java dan lain-lain) int main() { int x,y, s; cin >> x >> y; s = (x+y)/2; cout << “\nHasil = ” << s; }
Langkah Analisis Masalah Tugas pertama!! Baca & fahamkan dengan terperinci masalah yang diberikan Pastikan anda memahami spesifikasi dan keperluannya Masak Nasi Apakah bahannya? Apakah prosesnya?
Cuba fahami masalah berikut: Sampel masalah: BACA & FAHAM!!! Cuba fahami masalah berikut: Anda diminta membantu guru sekolah untuk menulis aturcara yang umum dengan untuk mencari & mempamerkan markah yang terbesar dan yang terkecil dari satu jujukan data markah. Di samping itu, juga cari & pamer markah purata.
Prinsip I P O I P O - Prinsip ASAS Penyelesaian Masalah yang mudah ! Tentukan data (I) INPUT & (O) OUTPUT Susun (P) tindakan/proses mengikut (I) BACA data, (P) PROSES data dan (O) PAMER data Cari Markah Tertinggi & Terrendah Apakah data input & output? Apakah prosesnya?
Prinsip I P O (samb) Tentukan... Data input? apakah data inputnya apakah data outputnya apakah prosesnya, ie. susunan tindakan atau ALGORITMA untuk menyelesaikannya Data input? Apakah prosesnya? Data output?
Prinsip I P O (samb) Tulis tindakan terperinci apakah proses awal (nilai awal untuk data) adakah proses menginput data? apakah proses pengiraan? apakah proses akhir adakah proses yang perlu diulang & pemilihan?
Strategi Berstruktur Strategi Berstruktur = Strategi Pecah & Tawan (divide & conquer) pecahkan masalah yang besar kepada bahagian (atau penyelesaian) yang kecil selesaikan semua bahagian kecil
Contoh Penyelesaian Masalah
Contoh#1: Kira purata 3 markah Masalah: Tuliskan aturcara C++ untuk mengira & mencetak markah purata bagi seorang pelajar yang telah mengambil 3 ujian.
Analisis Masalah Tentukan Data input? data input: 3 markah integer data output: markah purata Data input? Apakah prosesnya? Data output?
Susunan Proses? Pecah & Tawan @ I P O Kira Markah Purata Baca data input Pamer data output Proses data
Arahan terperinci Algoritmanya Data input? 1. baca (atau) dapatkan data input, m1, m2. m3 2. Kira jumlah: jumlah = m1 + m2 + m3 3. Kira purata = jumlah / 3 4. Pamer markah purata Data input? Apakah prosesnya? Data output?
Pecah & Tawan (Gambarajah Struktur @ Hiraki) Masalah Mengira Purata Markah Baca Data Input Kira jumlah markah & purata Pamer markah purata
Hasilnya… #1 - Aturcara C++ #include <iostream> int main() { int m1,m2,m3,jum; float pur; cin >> m1 >> m2 >> m3; jum = m1 + m2 + m3; pur = jum / 3; cout << ”Purata markah ialah ” << pur << endl; } Istihar pencam data Baca nilai data Proses Pamer nilai data
Contoh#2: Cari markah purata tertinggi Masalah: Tuliskan aturcara C++ untuk mencari, banding & mencetak markah purata yang terbesar diantara 2 orang pelajar yang telah mengambil 3 ujian.
Analisis Masalah Tentukan Data input? data input: 2 set data dengan 3 markah integer per set data output: satu markah purata terbesar Data input? Apakah prosesnya? Data output?
Algoritma 1. baca satu set data input #1 (m1, m2, m3) 2. Kira p1 = (m1 + m2 + m3)/3 3. Baca set data #2 4. Kira p2 = (m1 + m2 + m3)/3 5. Jika p1 > p2 maka T = p1, jika tidak T = p2 6. Pamer markah T Baca data & kira purata Arahan pemilihan
#2 - Aturcara C++ #include <iostream> int main() { int m1,m2,m3; float p1, p2, T; // baca data set pertama cin >> m1 >> m2 >> m3; p1 = (m1 + m2 + m3)/3; // baca data set kedua p2 = (m1 + m2 + m3)/3; if (p1 > p2) T = p1; else T = p2; cout << ”Markah tertinggi = ” << T; } Istihar pencam data Baca nilai data Proses Cari yang tinggi Pamer nilai data
Contoh#3: Kira purata markah 100 pelajar Masalah: Tuliskan aturcara C++ untuk mengira & mencetak markah purata bagi 100 orang pelajar yang telah mengambil 3 ujian.
Kenalpasti Data I & O Tentukan Data input? data input: 100 set data dengan 3 markah integer per set data output: 100 markah purata Data input? Apakah prosesnya? Data output?
Susun Algoritma Proses 1. baca satu set data input, m1, m2, m3 2. Kira jumlah: jumlah = m1 + m2 + m3 3. Kira purata = jumlah / 3 4. Pamer markah purata 5. Ulang dari 1 sehingga habis data Data input? Apakah prosesnya? Data output?
#3 - Aturcara C++ #include <iostream> main() { int m1,m2,m3, I, jum; float pur; for (I=1; I<= 100; I++) cin >> m1 >> m2 >> m3; jum = m1 + m2 + m3; pur = jum / 3; cout << ”\nPurata markah = “ << pur << endl; } Istihar pencam data Ulang 100 X Baca nilai data Proses Pamer nilai data
Latihan Tambahan
Latihan#1 Ubahsuai aturcara dalam Masalah#2 untuk mengira markah purata kelas bagi 100 pelajar: apakah data tambahan yang perlu ada? Apakah nilai awalnya? Apakah jenis data tersebut? Arahan apa yang diulang 100 x?
Latihan#2 Ubahsuai aturcara dalam Masalah #3 untuk mengira purata kelas apakah data tambahan yang perlu ada? Apakah nilai awalnya? Apakah jenis data tersebut? Arahan apa yang diulang 100 x? Jika simbol ‘{‘ dan ‘}’ bagi arahan for dibuang, apakah yang akan terjadi?
Rumusan / Conclusion
Aturcara & Pengaturcaraan satu set arahan yang tersusun untuk komputer laksanakan secara otomatik Pengaturcaraan : kaedah untuk membina kod aturcara guna bahasa pengaturcaraan seperti C++
Algoritma @ Algorithm Algoritma (alkhawarizmi) - satu susunan atau turutan tindakan yang umum untuk penyelesaian masalah yang tidak formal Contoh: resipi makanan, arahan mendaftar kursus, kira purata markah Algotritma untuk mendaftar kursus Mula 1. Dapatkan borang 2. Isi borang 3. Jumpa Pembimbing siswa 4. Daftar di komputer Akhir algoritma
Arahan Asas C++ Output Input Umpukan @ Assignment Ulangan @ Loops Arahan bersyarat @ Conditional statements Panggilan fungsi @ function calls
Latihan Selesaikan masalah berikut mengikut strategi berstruktur & tuliskan aturcara C++nya. Kira zakat (2.5%) untuk wang simpanan N penyimpan wang bank. Cetak @ mempamerkan hasilnya Kira cukai (20%) untuk gaji N pekerja. Cetak @ mempamerkan hasilnya dan gaji tertinggi. Kira jumlah jualan untuk N item. Jika jumlah melebihi RM100.00, berikan diskaun 20%. Cetak @ mempamerkan hasilnya
SEKIAN TERIMA KASIH