Definisi Algoritma (setelah Al Kho-perang-iz-mi seorang
matematikawan Persia abad ke-9) - urutan yang teratur dan tidak mendua yang
terdefinisi dengan baik instruksi yang melakukan beberapa tugas dan perhentian
dalam waktu tertentu
Mari kita memeriksa empat bagian dari definisi ini lebih dekat
1. urutan yang teratur berarti Anda dapat nomor langkah-langkah (kaus kaki itu kemudian sepatu!)
2. ambigu dan instruksi yang terdefinisi dengan baik berarti bahwa setiap instruksi jelas, tidak-mampu, dan dapat dilakukan tanpa kesulitan
3. melakukan beberapa tugas
4. perhentian dalam waktu tertentu (algoritma berakhir!)
Algoritma dapat dijalankan oleh agen komputasi yang belum tentu komputer.
Tiga Kategori of algorithmic Operasi
Algorithmic operasi memerintahkan dalam bahwa ada instruksi pertama, kedua instruksi dll Namun, ini tidak cukup. Sebuah algoritma harus memiliki kemampuan untuk mengubah perintah dari instruksi. Instruksi yang mengubah urutan dari suatu algoritma disebut struktur kontrol
Tiga Kategori of algorithmic Operasi:
1. berurutan operasi - instruksi yang dilaksanakan dalam rangka
2. bersyarat ( "pertanyaan menanyakan") operasi - struktur kontrol yang mengajukan benar / salah pertanyaan dan kemudian memilih instruksi berikutnya berdasarkan jawaban
3. operasi berulang-ulang (loop) - struktur kontrol yang mengulangi eksekusi blok instruksi
Sayangnya tidak semua masalah atau tugas yang memiliki "baik" solusi algoritmik. Ada
1. masalah terpecahkan - tidak ada algoritma yang dapat ada untuk memecahkan masalah (terputus-putus Soal)
2. "keras" (terselesaikan) masalah - algoritma waktu terlalu lama untuk memecahkan masalah (Traveling Salesman Problem)
3. masalah dengan solusi algoritmik tidak diketahui
Bagaimana mewakili algoritma?
1. Gunakan bahasa alami
* Terlalu verbose
* Terlalu "konteks-sensitif" - bergantung pada pengalaman pembaca
2. Gunakan bahasa pemrograman formal
* Terlalu rendah
* Mengharuskan kita untuk berurusan dengan rumit sintaks bahasa pemrograman
3. Pseudo-Code - model konstruksi bahasa alami terlihat seperti pernyataan tersedia dalam banyak bahasa pemrograman
Pseudo-Code hanyalah sebuah daftar bernomor instruksi untuk melakukan beberapa tugas. Dalam kursus ini, kami akan memberlakukan tiga standar kode pseudo baik
1. Nomor setiap instruksi. Hal ini untuk menegakkan gagasan tentang urutan yang teratur ... operasi. Selain itu kami memperkenalkan notasi titik (misalnya 3,1 datang setelah 3 tapi sebelum 4) ke nomor bawahan bersyarat dan operasi untuk operasi iteratif
2. Setiap instruksi harus tidak ambigu (yang merupakan agen komputasi, dalam hal ini pembaca, mampu melaksanakan instruksi) dan efektif dihitung (do-able).
3. Kelengkapan. Tidak ada yang ditinggalkan.
Pseudo-code paling baik dipahami dengan melihat contoh. Setiap contoh di bawah ini menunjukkan salah satu struktur kontrol yang digunakan dalam algoritma: operasi sekuensial, operasi bersyarat, dan operasi iteratif. Kami juga daftar semua variabel yang digunakan pada akhir pseudo-code.
Contoh # 1 - Komputasi Pajak Penjualan: Pseudo-kode tugas menghitung harga akhir suatu barang setelah mencari di pajak penjualan. Perhatikan tiga jenis instruksi: input (mendapatkan), proses / menghitung (=) dan output (layar)
1. mendapatkan harga barang
2. mendapatkan tingkat pajak penjualan
3. pajak penjualan = harga waktu kali tarif pajak penjualan
4 final pangeran = harga barang ditambah pajak penjualan
5. tampilan harga akhir
6. berhenti
Variabel: harga barang, tingkat pajak penjualan, pajak penjualan, harga akhir
Perhatikan bahwa operasi diberi nomor dan setiap operasi yang jelas dan efektif dihitung. Kami juga mengambil dan menampilkan seluruh variabel yang digunakan dalam pseudo-code. Ini akan berguna ketika menerjemahkan pseudo-kode ke dalam bahasa pemrograman
Contoh # 2 - Komputasi Mingguan Upah: Bruto membayar tergantung pada tingkat gaji dan jumlah jam kerja per minggu. Namun, jika Anda bekerja lebih dari 40 jam, Anda dibayar waktu-dan-a-setengah untuk semua jam kerja lebih dari 40. Kode Pseudo-tugas komputasi yang diberikan bruto membayar upah dan jam kerja.
1. mendapatkan jam kerja
2. mendapatkan upah
3. jika bekerja ≤ 40 jam lalu
Bruto = 3,1 membayar upah kali jam kerja
4. lain
Bruto = 4,1 membayar upah kali 40 ditambah 1,5 kali upah kali (jam kerja dikurangi 40)
5. layar bruto membayar
6. berhenti
variabel: jam kerja, tingkat sinar, kotor membayar
Contoh ini memperkenalkan struktur kontrol kondisional. Atas dasar yang benar / salah pertanyaan yang diajukan di baris 3, kita mengeksekusi baris 3,1 jika jawabannya adalah True; sebaliknya jika jawabannya adalah False kita jalankan bawahan baris ke baris 4 (garis yaitu 4.1). Dalam kedua kasus kita melanjutkan pseudo-kode pada baris 5.
Contoh # 3 - Komputasi sebuah Kuis Average: Pseudo-code rutin untuk menghitung rata-rata kuis Anda.
1. mendapatkan jumlah kuis
2. sum = 0
3. count = 0
4. sementara menghitung
4,1 mendapatkan nilai kuis
4,2 sum = sum + kuis kelas
4,3 count = count + 1
5. rata-rata = jumlah / jumlah kuis
6. menampilkan rata-rata
7. berhenti
variabel: jumlah kuis, jumlah, menghitung, kuis kelas, rata-rata
Contoh ini memperkenalkan pernyataan kontrol berulang-ulang. Selama kondisi jalur 4 ini Benar, kami melaksanakan operasi bawahan 4,1-4,3. Ketika kondisi menjadi False, kami melanjutkan pseudo-kode pada baris 5.
Ini adalah contoh dari top-tes atau saat melakukan struktur kontrol iterasi. Ada juga pendekatan bottom-tes atau mengulangi sampai berulang-ulang struktur kontrol yang mengeksekusi sebuah blok pernyataan sampai kondisi yang diuji pada akhir blok adalah False.
Pseudo-code adalah salah satu langkah penting dalam proses menulis program.
Pseudo-code Bahasa Constructions: Sebuah Ringkasan
Perhitungan / Tugas
menetapkan nilai dari "variabel" ke: "ekspresi aritmatika" atau
"variabel" sama dengan "ekspresi" atau
"variabel" = "ekspresi"
Input / Output
mendapatkan "variabel", "variabel", ...
menampilkan "variabel", "variabel", ...
Bersyarat (dot notasi yang digunakan untuk penomoran pernyataan bawahan)
6. jika "kondisi"
6.1 (bawahan) pernyataan 1
6,2 etc ...
7. lain
7.1 (bawahan) pernyataan 2
7,2 etc ...
Berulang-ulang (dot notasi yang digunakan untuk penomoran pernyataan bawahan)
9. sementara "kondisi"
9.1 (bawahan) pernyataan 1
9,2 etc ...
Mari kita memeriksa empat bagian dari definisi ini lebih dekat
1. urutan yang teratur berarti Anda dapat nomor langkah-langkah (kaus kaki itu kemudian sepatu!)
2. ambigu dan instruksi yang terdefinisi dengan baik berarti bahwa setiap instruksi jelas, tidak-mampu, dan dapat dilakukan tanpa kesulitan
3. melakukan beberapa tugas
4. perhentian dalam waktu tertentu (algoritma berakhir!)
Algoritma dapat dijalankan oleh agen komputasi yang belum tentu komputer.
Tiga Kategori of algorithmic Operasi
Algorithmic operasi memerintahkan dalam bahwa ada instruksi pertama, kedua instruksi dll Namun, ini tidak cukup. Sebuah algoritma harus memiliki kemampuan untuk mengubah perintah dari instruksi. Instruksi yang mengubah urutan dari suatu algoritma disebut struktur kontrol
Tiga Kategori of algorithmic Operasi:
1. berurutan operasi - instruksi yang dilaksanakan dalam rangka
2. bersyarat ( "pertanyaan menanyakan") operasi - struktur kontrol yang mengajukan benar / salah pertanyaan dan kemudian memilih instruksi berikutnya berdasarkan jawaban
3. operasi berulang-ulang (loop) - struktur kontrol yang mengulangi eksekusi blok instruksi
Sayangnya tidak semua masalah atau tugas yang memiliki "baik" solusi algoritmik. Ada
1. masalah terpecahkan - tidak ada algoritma yang dapat ada untuk memecahkan masalah (terputus-putus Soal)
2. "keras" (terselesaikan) masalah - algoritma waktu terlalu lama untuk memecahkan masalah (Traveling Salesman Problem)
3. masalah dengan solusi algoritmik tidak diketahui
Bagaimana mewakili algoritma?
1. Gunakan bahasa alami
* Terlalu verbose
* Terlalu "konteks-sensitif" - bergantung pada pengalaman pembaca
2. Gunakan bahasa pemrograman formal
* Terlalu rendah
* Mengharuskan kita untuk berurusan dengan rumit sintaks bahasa pemrograman
3. Pseudo-Code - model konstruksi bahasa alami terlihat seperti pernyataan tersedia dalam banyak bahasa pemrograman
Pseudo-Code hanyalah sebuah daftar bernomor instruksi untuk melakukan beberapa tugas. Dalam kursus ini, kami akan memberlakukan tiga standar kode pseudo baik
1. Nomor setiap instruksi. Hal ini untuk menegakkan gagasan tentang urutan yang teratur ... operasi. Selain itu kami memperkenalkan notasi titik (misalnya 3,1 datang setelah 3 tapi sebelum 4) ke nomor bawahan bersyarat dan operasi untuk operasi iteratif
2. Setiap instruksi harus tidak ambigu (yang merupakan agen komputasi, dalam hal ini pembaca, mampu melaksanakan instruksi) dan efektif dihitung (do-able).
3. Kelengkapan. Tidak ada yang ditinggalkan.
Pseudo-code paling baik dipahami dengan melihat contoh. Setiap contoh di bawah ini menunjukkan salah satu struktur kontrol yang digunakan dalam algoritma: operasi sekuensial, operasi bersyarat, dan operasi iteratif. Kami juga daftar semua variabel yang digunakan pada akhir pseudo-code.
Contoh # 1 - Komputasi Pajak Penjualan: Pseudo-kode tugas menghitung harga akhir suatu barang setelah mencari di pajak penjualan. Perhatikan tiga jenis instruksi: input (mendapatkan), proses / menghitung (=) dan output (layar)
1. mendapatkan harga barang
2. mendapatkan tingkat pajak penjualan
3. pajak penjualan = harga waktu kali tarif pajak penjualan
4 final pangeran = harga barang ditambah pajak penjualan
5. tampilan harga akhir
6. berhenti
Variabel: harga barang, tingkat pajak penjualan, pajak penjualan, harga akhir
Perhatikan bahwa operasi diberi nomor dan setiap operasi yang jelas dan efektif dihitung. Kami juga mengambil dan menampilkan seluruh variabel yang digunakan dalam pseudo-code. Ini akan berguna ketika menerjemahkan pseudo-kode ke dalam bahasa pemrograman
Contoh # 2 - Komputasi Mingguan Upah: Bruto membayar tergantung pada tingkat gaji dan jumlah jam kerja per minggu. Namun, jika Anda bekerja lebih dari 40 jam, Anda dibayar waktu-dan-a-setengah untuk semua jam kerja lebih dari 40. Kode Pseudo-tugas komputasi yang diberikan bruto membayar upah dan jam kerja.
1. mendapatkan jam kerja
2. mendapatkan upah
3. jika bekerja ≤ 40 jam lalu
Bruto = 3,1 membayar upah kali jam kerja
4. lain
Bruto = 4,1 membayar upah kali 40 ditambah 1,5 kali upah kali (jam kerja dikurangi 40)
5. layar bruto membayar
6. berhenti
variabel: jam kerja, tingkat sinar, kotor membayar
Contoh ini memperkenalkan struktur kontrol kondisional. Atas dasar yang benar / salah pertanyaan yang diajukan di baris 3, kita mengeksekusi baris 3,1 jika jawabannya adalah True; sebaliknya jika jawabannya adalah False kita jalankan bawahan baris ke baris 4 (garis yaitu 4.1). Dalam kedua kasus kita melanjutkan pseudo-kode pada baris 5.
Contoh # 3 - Komputasi sebuah Kuis Average: Pseudo-code rutin untuk menghitung rata-rata kuis Anda.
1. mendapatkan jumlah kuis
2. sum = 0
3. count = 0
4. sementara menghitung
4,1 mendapatkan nilai kuis
4,2 sum = sum + kuis kelas
4,3 count = count + 1
5. rata-rata = jumlah / jumlah kuis
6. menampilkan rata-rata
7. berhenti
variabel: jumlah kuis, jumlah, menghitung, kuis kelas, rata-rata
Contoh ini memperkenalkan pernyataan kontrol berulang-ulang. Selama kondisi jalur 4 ini Benar, kami melaksanakan operasi bawahan 4,1-4,3. Ketika kondisi menjadi False, kami melanjutkan pseudo-kode pada baris 5.
Ini adalah contoh dari top-tes atau saat melakukan struktur kontrol iterasi. Ada juga pendekatan bottom-tes atau mengulangi sampai berulang-ulang struktur kontrol yang mengeksekusi sebuah blok pernyataan sampai kondisi yang diuji pada akhir blok adalah False.
Pseudo-code adalah salah satu langkah penting dalam proses menulis program.
Pseudo-code Bahasa Constructions: Sebuah Ringkasan
Perhitungan / Tugas
menetapkan nilai dari "variabel" ke: "ekspresi aritmatika" atau
"variabel" sama dengan "ekspresi" atau
"variabel" = "ekspresi"
Input / Output
mendapatkan "variabel", "variabel", ...
menampilkan "variabel", "variabel", ...
Bersyarat (dot notasi yang digunakan untuk penomoran pernyataan bawahan)
6. jika "kondisi"
6.1 (bawahan) pernyataan 1
6,2 etc ...
7. lain
7.1 (bawahan) pernyataan 2
7,2 etc ...
Berulang-ulang (dot notasi yang digunakan untuk penomoran pernyataan bawahan)
9. sementara "kondisi"
9.1 (bawahan) pernyataan 1
9,2 etc ...