C programming language notes (2)

742 views
526 views

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
742
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
31
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

C programming language notes (2)

  1. 1. 2. Penyelesaian Masalah & Pengenalan KepadaPengaturcaraan2.0 Penyelesaian masalah dgn komputerDari Bab 1 : Komputer boleh menyelesaikan masalah tertentu jikadiberi arahan dgn menulis aturcara.Pengaturcaraan bukan hanya menulis aturcara.Langkah2 PM Kejuruteraan1. Mengenali & memahamimasalah2. Mengumpul maklumat3. Memilih teori & prinsip ygbersesuaian4 . M e m b u a t a n d a i a n 2 y gdiperlukan5. Selesaikan masalah6. Menguji keputusanPenyelesaian masalah dengan komputer adalah prosedur untukmenentukan penyelesaian kepada sesuatu masalah danmenyatakannya dalam bentuk yang jelas - PALING SUSAH.Penyelesaian masalah (PM) memerlukan kemampuan seni & sains.Bidang kejuruteraan & sains menggunakan kaedah kejuruteraan &sains utk menyelesaikan masalah.PM bidang kejuruteraan lwn kejuruteraan perisian (KP).Proses pembangunan perisian yg menggunakan kaedah PMkejuruteraan & sains dinamakan kejuruteraan perisian.Langkah2 PM KP1. Dapatkan spesifikasikeperluan masalah/sistem2. Analisa masalah3. Rekabentuk penyelesaian4. Pengkodan & pelaksanaan5. Pengujian perisian6. Penyenggaraan(C) miehussain@linux.com.my-1-Bab 2Langkah2 proses pembangunan perisian:1. Spesifikasi keperluan2. Analisa masalah3. Rekabentuk4. Pengkodan & pelaksanaan5. Penentusahan & Pengujian6. PenyenggaraanMemahami masalah & persekitaran masalah yg hendakdiselesaikan.Andaian2 juga perlu dilakukan utk memastikan skop masalah.Cth masalah mudah : membuat kopi.1. Memahami masalah : Kopi utk berapa orang, kopi O @ kopi susu@ kedua2nya dll.2. Persekitaran masalah : Situasi buat kopi di pejabat, rumah &apa kelengkapan yg ada dll.3. Andaian : Taraf gula yg diambil sama, air yg digunakan belumdimasak dll.2.1 Pembangunan Perisian2.1.1 Spesifikasi KeperluanMengkaji/menganalisa spesifikasi masalah dgn terperinci. 2elemen utama yg perlu di kenal pasti:2.1.2 Analisa Masalahi. input masalahApakah data @ maklumat yg perlu diberi ke dalam sistematurcara utk penyelesaian masalah tersebut.Format input juga perlu ditentukan.cth: kopi, gula, air (format: yg belum dimasak) & krim.(C) miehussain@linux.com.my-2-Bab 2
  2. 2. Bagaimana algoritma dibuat dlm proses pembangunan aturcara ?....... TUNGGU......2.1.2 Analisa Masalah (samb ....)ii. output masalahApakah data @ maklumat yg perlu dari aturcara sebagaipenyelesaian pada masalah.Format keluaran perlu ditentukan.cth : Format 5 cawan kopi susu @ Format 5 cawan kopi O dgn5 sudu susu dlm bekas berasingan.(C) Dayang & Rosbi 2001-3-Bab 22 tugas utama dlm rekabentuk aturcara:! memilih struktur yg sesuai utk menyusun & menyimpan datadalam proses penyelesaian masalah.! merekabentuk algoritma utk memproses input & mengeluarkanoutput.2.1.3 RekabentukBagaimana perlaksanaan algoritma dilakukan dlm pengaturcaraanC?.....TUNGGU......Proses melaksanakan algoritma yg direkabentuk ke dlm bahasapengaturcaraan tertentu (dlm kelas ini bhs C).Format input yg telah dikenal pasti akan digunakan bersamaalgoritma tersebut & keluaran akan dikeluarkan mengikut formatyg juga telah dikenal pasti.2.1.4 Pengkodan & Pelaksanaanii. prosesMenganalisa apakah proses yg perlu dilalui oleh input utkmenghasilkan output. Kekangan2 & andaian2 pd PM yg lebihterperinci dilakukan disini.cth : formula yg digunakan, proses masuk kopi dlm cawan dll.Perlu dilakukan pada semua fasa sebelum ini..... KENAPA?Fasa 1 & 2Berinteraksi pd orang yg memberi masalah (pakar) yg utkdiselesaikan supaya pemahaman masalah tepat & tidak terpesong(pakar masalah kelas ini adalah SAYA).Fasa 3Pastikan rekabentuk yg terhasil memenuhi spesifikasi keperluanyg telah dihasilkan dr fasa 1 & 2.Fasa 4Pastikan aturcara selaras dgn algoritma rekabentuk & lengkap.Pastikan tiada kesilapan sintaks (ralat yg dikesan semasamengkompail aturcara) & kesilapan logik (ralat masa larian) padaaturcara. AKAN DIALAMI SEMUA.....(C) Dayang & Rosbi 2001-4-Bab 2Utk menentukan aturcara yg dihasilkan betul.2.1.5 Penentusahan (verification) & PengujianTaraf kesukaran penyenggaran sesuatu perisian bergantung kpdfass 1-5 yg telah ditempuhi oleh perisian tersebut... SAMADAPENULISNYA MENGIKUT PRINSIP KP @ TIDAK.......Proses penyenggaraan perisian amat unik jika dibanding dgnproduk kejuruteraan lain.Cthnya kereta : jika roda kereta rosak tukar pada roda yg baru.jika fungsi utk antara muka perisian word perlu ditukarBAGAIMANA????2.1.6 PenyenggaraanPengujian aturcara perlu dilakukan dgn memberi input &memeriksa output sama ada output yg betul dikeluarkan dariaturcara yg ditulis.
  3. 3. Algoritma - resipi bagaimana untuk menyelesaikan masalah dengankomputer. Ia menerangkan cara & langkah yang perlu dilakukan untukmenyelesaikan masalah.Untuk menyelesaikan masalah dengan komputer, kita perlu:1. Reka algoritma (fasa rekabentuk)2. Nyatakan algoritma sebagai aturcara dalam bahasaaturcara yang sesuai (fasa pengkodan & perlaksanaan)3. Laksanakan aturcara tersebut di atas komputer (fasapengkodan & perlaksanaan)Tanpa algoritma tiada aturcara, tanpa aturcara tiada penyelesaian.2.2 Algoritma & Bagaimana Mengungkap AlgoritmaAlgoritma tidak bergantung kepada bahasa pengaturcaraan.Berbagai kaedah mengungkap algoritma :Kenyataan bahasa Carta alir Kod PseudoGambarajah N-S Jadual aksi Mesin keadaan terhingga... dsbnya.Sila sambung TUNGGU 1.1.3 disini.(C) Dayang & Rosbi 2001-5-Bab 2Apa yg perlu ada dlm algoritma:! input! output! tidak mengelirukan/ringkas/mudah! dlm bentuk umum - boleh difahami semua golongan pembaca ygberkeperluan! tepat utk menyelesaikan masalah! terhingga - ada kesudahan! cekap2.2.1 Kaedah kod pseudoContoh : algoritma untuk menyediakan secawan kopii. Kaedah kod pseudo - kenyataan bahasa(C) Dayang & Rosbi 2001-6-Bab 2Kod pseudo adalah jujukan langkah yg ditulis menggunakan bhstabii yg menerangkan pemprosesan yg terlibat dlm penyelesaianmasalah.Setiap langkah dlm penyelesaian masalah disususn satu-persatusecara sistematik. Setiap baris kod pseudo mewakili satu langkahyang dilaksanakan sekali shj.Tujuan utama mempersembahkan penyelesaian masalah dalambentuk yang logik dan sistematik.Ada beberapa cara penulisan kod pseudo digunakan, dlm kelas ini 2jenis akan diperkenalkan:! kenyataan bahasa! kenyataan bahasa menyerupai bahasa pengaturcaraan1. masak air2. masukkan kopi dalam cawan3. jika perlu gula3.1. tambahkan gula4. jika perlu krim4.1 tambahkan krim5. masukkan air panas ke dalam cawanAlgoritma yg ditulis dlm bahasa tabii & tidak mempunyai peraturanyg khusus.Dalam kaedah ini nombor yg diberikan pada jujukan langkah adalahsangat penting.Tertib perlaksanaan langkah2 mengikut nombor yg ditulis.
  4. 4. ii. Kaedah kod pseudo - kenyataan bhs menyerupai bhs pengaturcaraanTertib perlaksanaan langkah2 mengikut aturan langkah2 itu ditulis.Contoh algoritma utk memasak air:isi air ke dlm cereknyalakan apimasak air hingga mendidihTertib perlaksanaan(C) Dayang & Rosbi 2001-7-Bab 2Kod pseudo adalah pengungkapan algoritma dlm bahasa Inggerismudah yg hampir menyerupai bahasa pengaturcaraan PASCAL -TAPI ia BELUM terikat kpd sebarang bahasa pengaturcaraan !Sesuai utk masalah yg mudah krn tiada jujukan & struktur ygkompleks.2.2.1 Kaedah kod pseudo (samb...)b) Struktur pemilihan:n. jika syaratn.1. langkah_n.1n.2. langkah_n.2:n.n. langkah_n.nc) Struktur ulangan:n. pergi ke langkah sebelum na) Struktur jujukan:1. mula2. langkah_13. langkah_2:n. langkah_nn+1. tamatb) Struktur lompat:n. pergi ke langkah selepas n2.2.1 Kaedah kod pseudo (samb...)Kod pseudo menyediakan secawan kopimasak airmasukkan kopi dalam cawanif perlu_gula thentambahkan gulaendifif perlu_krim thentambahkan krimendifmasukkan air panas ke dalam cawan(C) Dayang & Rosbi 2001-8-Bab 2Tertib perlaksanaan langkah2 boleh dikawal dgn menggunakanbeberapa struktur kawalan. Kata-kunci2 digunakan utkmenjelaskan struktur2 kawalan ini.b) Struktur pemilihan:if syarat thenbhg_benarelsebhg_takbenarendifc) Struktur ulangan:repeatbhg_yg_perlu diulanguntil syarat@while syarat dobhg_yg_perlu diulangendwhile@repeat N kalibhg_yg_perlu diulang N xPerhatikan:i. syarat adalah ungkapan samada benar @ tidakii. bhg tertentu teks (blok) diindenkan (diberi jidar) utkmenjelaskan kod pseudoiii. Blok kadangkala dikumpulkan diantara kata kunci begin & enda) Struktur jujukan:beginlangkah_1langkah_2:langkah_nend
  5. 5. 2.2.1 Kaedah kod pseudo (samb...)Kod pseudo menyediakan secawan kopimasak airmasukkan kopi dalam cawanif perlu_gulathen tambahkan gulaendifif perlu_krimthen tambahkan krimendifmasukkan air panas ke dalam cawanPenghalusan berlangkah algoritmaPerhatikan, kod pseudo di atas masih lagi dinyatakan dlm ungkapanumum. Contohnya, masak air, masukkan kopi dsbnya. Algoritma iniperlu dihalusi lagi utk menghapuskan kekeliruan dlm melaksanakannya.Kod pseudo di atas adalah contoh bagaimana fasa pertama algoritmaditulis, bermula dari langkah2 yg agak umum. Dlm fasa2 ygseterusnya, langkah2 umum ini dihalusi sedikit demi sedikit sehinggamenghasilkan langkah2 yg lebih spesifik.Teknik merekabentuk algoritma sebegini dipanggil teknik Atas keBawah (Top-down). Proses menghalusi algoritma sedikit demi sedikitdipanggil Penghalusan berlangkah.Contoh: Penghalusan berlangkah ungkapan masak airmasak air isi air ke dlm cereknyalakan apirepeattungguuntil air_mendidih(C) Dayang & Rosbi 2001-9-Bab 22.2.2 Kaedah carta alirCarta alir terdiri dari kotak-kotak berbagai bentuk yangmenunjukkan operasi yg perlu dilakukan dan anak-panah2 ygmenyatakan jujukan operasi tersebut.Simbol carta alir:TerminalMULATAMATTambahGulaProsesperlu gula ?Keputusantidakya(C) Dayang & Rosbi 2001-10-Bab 2Cetakan dokumenCetak "Kopisudah siap"Data input/outputmasukkankopiAAPenyambunganpd ms samaPenyambunganke ms lain32rekod bil.cawan kopidisiapkansehariStoran diskinput/outputKira kosainSubrutin/fungsi
  6. 6. Carta alir menyediakan secawan kopimasak airMULATAMATgula ?tidaktambah gulakrim ?tambah krimtambah airtidakyayamasukkankopi(C) Dayang & Rosbi 2001-11-Bab 22.2.2 Kaedah carta alir (samb...) 2.3 Carta Alir lwn. Kod PseudoKod Pseudo Carta Alirbeginlangkah_1langkah_2. . . .. . . .langkah_nendif syarat thenbhg_ifelsebhg_elseendifrepeatbhg_yg_perlu diulanguntil syaratwhile syarat dobhg_yg_perlu diulangendwhilesyaratbhg_iftidak yabhg_elsesyarat bhg_yg_diulangtidakyasyaratbhg_yg_diulangtidakyalangkah_1 langkah_2langkah_n(C) Dayang & Rosbi 2001-12-Bab 2
  7. 7. 2.4 Contoh PM & Algoritma-13-Bab 2Tulis aturcara yg akan menerima input sepasang nombor& mencetak mesej "SAMA" jika dua nombor tersebutmempunyai nilai yg sama, mesej "NOMBOR PERTAMALEBIH BESAR" jika nombor pertama lebih besar dpdnombor kedua & mesej "NOMBOR KEDUA LEBIHBESAR" jika nombor kedua lebih besar dpd nomborpertama.Fasa:SpesifikasikeperluanFasa : Analisa MasalahInput:1. media : papan kekunci2. data :nombor pertama (nom1) &nombor kedua (nom2)Output:1. media : skrin2. data :"SAMA" @"NOMBOR PERTAMA LEBIH BESAR" @"NOMBOR KEDUA LEBIH BESAR"Proses:1. bandingkan 2 nonbor & tentukan outputFasa : Rakabentuki. Kod pseudo I1. Mula2. Baca nom1, nom23. Jika nom1=nom23.1. cetak mesej "SAMA"3.2. pergi ke langkah 64. Jika nom1>nom24.1. cetak mesej "NOMBOR PERTAMA LEBIH BESAR"4.2. pergi ke langkah 65. Jika nom1<nom25.1. cetak mesej "NOMBOR KEDUA LEBIH BESAR"5.2. pergi ke langkah 66. Tamatno.adalahpenting!!2.4 Contoh PM & Algoritma (samb....)-14-Bab 2ii. Kod pseudo IIbeginBaca nom1, nom2if nom1=nom2 thencetak mesej "SAMA"elseif nom1>nom2cetak mesej "NOMBOR PERTAMA LEBIH BESAR"elsecetak mesej "NOMBOR KEDUA LEBIH BESAR"endifendifendEsotan(indent)&penggunaankata-kunciadalahpenting!!!MULATAMATnom1=nom2tidaknom1>nom2tidakyayaBaca nom1,nom2iii. Carta alirCetak"SAMA"tidakCetak "NOMBORPERTAMA LEBIHBESAR"Cetak "NOMBORPERTAMA LEBIHBESAR"Anakpanah&bentukkotakadalahpenting!!!
  8. 8. 2.5 Proses Menyediakan Aturcara-15-Bab 2Langkah2 penyelesaian masalah menggunakan disiplin KP telahdifahami dari bhg 2.1.Bagaimana hendak menyerapkan disiplin tersebut dalam prosespenyedian aturcara.Kajian kesWalaupun contoh kajian kes ini mudah, ttp proses ini bolehdigunakan utk masalah mudah atau rumit.Daripada jejari yg diberikan kira luas bulatan & ukurlilit bulatantersebut.Langkah 1 : Definisi Masalah @ Spesifikasi Keperluan MasalahLangkah 2 : Analisa MasalahInput:1. media: papan kekunci2. data:radius - dimasukkan oleh penggunaπ = 3.14159 pemalarOutput1. media: skrin2. data:luas bulatanukurlilit bulatanProses:formula 1: luas bulatan = πj2formula 2: ukurlilit bulatan = 2πjj-jejari bulatan2.5 Proses Menyediakan Aturcara (samb ....)-16-Bab 2Langkah 3 : RekabentukLangkah 3.1Mulakan rekabentuk awal dgn menggunakan kaedah kod pseudokenyataan bahasa:1. Baca jejari bulatan2. Kira luas bulatan3. Kira ukurlilit bulatan4. Cetak luas dan ukurlilit bulatanLangkah 3.2Algoritma ini perlu dihalusi & dilukis menggunakan carta alir.MULATAMATluas =π*jejari* jejariukurlilit=2*π*jejaribacajejaricetak luas &ukurlilitLangkah 3.3Jika algoritma melibatkan struktur ulangan & pemilihan sila tuliskod pseudo menggunakan kenyataan bhs menyerupai bhspengaturcaraan.
  9. 9. 2.5 Proses Menyediakan Aturcara (samb ....)taip & suntingaturcara puncaMULATAMATsimpan failaturcararalat sintaks?tidaktidakyayalaksanakanpengkompillaksanakanaturcara objekralatsemantik@laksana?yaguna penyunting failEDIT, WORD dsbnyacontoh : FAILSAYA.Ccontoh : Turbo C, Borland C,Microsoft C dsbnyaC> FAILSAYA.EXE-17-Bab 2Langkah 4 : Tulis KodCadangan strategi penulisan kod :Langkah 5 & Langkah 6: Taip Aturcara & Uji AturcaraCarta alir taip aturcara & uji aturcara:tulis aturcara di atas kertasdpd Langkah 3- rekabentukperiksa aturcara dgn rekabentuk buat perubahanke Langkah 5-taip aturcaraLatihan:2. Nyatakan pada fasa mana proses2 berikut dilakukan:a) Penyataan masalah diperolehi dari pengguna.b) Kos pseudo ditulis untuk mengira luas segi tiga.c) Setelah algoritma siap dibina, data contoh digunakan dgnmemasukkan data ke dalam algoritma & memastikan output darialgoritma tersebut memberi nilai yg betul.d) Mengenal pasti input sistem.e) Menulis arahan2 bahasa C utk PM.f) Memastikan ralat masa-larian & ralat sintaks tiada pada kod.g) Menulis dokumen2 yg perlu dlm proses PM.-18-Bab 21. Soalan ulangkaji.a) Senaraikan fasa/langkah pembangunan perisian.b) Algoritma bergantung kpd bhs pengaturcaraan. betul @ salah.c) Fasa perlaksanaan bergantung kpd bhs pengaturcaraan. betul @salah.d) Senaraikan 4 kaedah pengungkapan algoritma.
  10. 10. Latihan (samb...)3. Rekakan algoritma dlm bentuk kod pseudo dan carta alir bagimenyelesaikan masalah2 berikut:a) menentukan samada satu integer itu genap atau ganjil.b) mencari nilai rintangan setara bagi 4 perintang yg disambungkanselari.c) mencari nilai rintangan setara bagi M perintang yg disambungkanselari.d) mencari punca bagi persamaan kuadratic Ax2+Bx+C=0.4. Tuliskan hasil algoritma berikut dlm bentuk kod pseudo dan cartaalir selepas penghalusan berlangkah dilakukan :isi air ke dlm cereknyalakan apirepeattungguuntil air_mendidiha) if perlu_gulathen tambahkan gulaelsejangan tambah gulaendifb)((C) miehussain@linux.com.my-19-Bab 2

×