Desain Top-Down
Dengan Fungsi
Programmer yang
menggunakan metode pengembangan
perangkat lunak untuk memecahkan masalah Masalah pernyataan
dan mengumpulkan selama analisis dan tahap desain
membantu
programmer
menyelesaikan program.
Programmer juga menggunakan segmen solusi program
yang sebelumnya sebagai blok
bangunan untuk membangun program baru.
Untuk menggunakan informasi
yang ada, programmer dapat
menggunakan top-down teknik
desain untuk menyederhanakan pengembangan algoritma
dan struktur program yang dihasilkan.
Programmer jarang memulai dengan
kertas kosong (atau
layar kosong) ketika
mereka
mengembangkan
program. metode pengembangan
perangkat lunak menghasilkan sistem dokumentasi yang penting, terdiri
dari deskripsi persyaratan
data masalah ini (dikembangkanselama fase Analisis) dan
algoritma solusinya (dikembangkan
selama Desain
fase). Anda dapat menggunakan dokumen
ini sebagai titik awal dalam
pengkodean program, Sebagai
contoh, Anda dapat
mulai dengan mengedit persyaratan
data agar sesuai dengan sintaks C untuk definisi makro konstan
dan deklarasi variabel, seperti
ditunjukkan pada Gambar. 3.1 untuk mil-to-kilometer
program konversi. Pendekatan ini
sangat berguna jika Dokumentasi dibuat dengan pengolah
kata dan dalam sebuah
file yang dapat Anda edit.
GAMBAR 3.1 Persyaratan Diedit Data
dan Algoritma Program Konversi
1. / *
2. * Mengkonversi jarak dalam mil ke kilometer.
3. * /
4.
5. # include / * printf, definisi scanf * /
6. # define KMS_PER_MILE 1.609 / * konversi konstan * /
7.
8. int
9. main (void)
10. {
11. mil ganda; / * input - jarak dalam mil. * /
12. ganda km; / * Output - jarak dalam kilometer * /
13.
14. / * Dapatkan jarak dalam mil. * /
15.
16. / * Mengkonversi jarak ke kilometer. * /
17. / * Jarak dalam kilometer adalah
18. 1.609 * jarak dalam mil. * /
19.
20. / * Tampilan jarak dalam kilometer. * /
21.
22. kembali (0);
23. }
1. / *
2. * Mengkonversi jarak dalam mil ke kilometer.
3. * /
4.
5. # include / * printf, definisi scanf * /
6. # define KMS_PER_MILE 1.609 / * konversi konstan * /
7.
8. int
9. main (void)
10. {
11. mil ganda; / * input - jarak dalam mil. * /
12. ganda km; / * Output - jarak dalam kilometer * /
13.
14. / * Dapatkan jarak dalam mil. * /
15.
16. / * Mengkonversi jarak ke kilometer. * /
17. / * Jarak dalam kilometer adalah
18. 1.609 * jarak dalam mil. * /
19.
20. / * Tampilan jarak dalam kilometer. * /
21.
22. kembali (0);
23. }
GAMBAR 3.2 (lanjutan)
10. {
11. ganda radius; / * input - radius lingkaran * /
12. ganda daerah; / * Output - luas lingkaran * /
13. ganda sirkum; / * Output - lingkar * /
14.
15. / * Dapatkan jari-jari lingkaran * /
16. printf ("Masukkan jari-jari>");
17. scanf ("% Jika", & radius);
18.
19. / * Hitung daerah * /
20. daerah = PI * radius * radius;
21.
22. / * Hitung keliling * /
23. sirkum = 2 * PI * radius;
24.
25. / * Menampilkan daerah dan lingkar * /
26. printf ("Daerah ini% .4 f \ n", luas);
27. printf ("keliling adalah% .4 f \ n", circum);
28.
29. kembali (0);
30. }
Masukkan radius> 5.0
Daerah ini 78,5397
Lingkar adalah 31,4159
10. {
11. ganda radius; / * input - radius lingkaran * /
12. ganda daerah; / * Output - luas lingkaran * /
13. ganda sirkum; / * Output - lingkar * /
14.
15. / * Dapatkan jari-jari lingkaran * /
16. printf ("Masukkan jari-jari>");
17. scanf ("% Jika", & radius);
18.
19. / * Hitung daerah * /
20. daerah = PI * radius * radius;
21.
22. / * Hitung keliling * /
23. sirkum = 2 * PI * radius;
24.
25. / * Menampilkan daerah dan lingkar * /
26. printf ("Daerah ini% .4 f \ n", luas);
27. printf ("keliling adalah% .4 f \ n", circum);
28.
29. kembali (0);
30. }
Masukkan radius> 5.0
Daerah ini 78,5397
Lingkar adalah 31,4159
Output pada
Gambar. 3.2 memberikan tes
yang baik dari solusi karena rela-
tively mudah untuk menghitung keliling untuk nilai radius dari 5,0. Cara lain di mana programmer menggunakan informasi yang ada adalah dengan memperluas
solusi untuk satu masalah untuk memecahkan masalah yang lain. Misalnya, Anda dapat dengan mudah memecahkan masalah ini dengan membangun solusi untuk yang sebelumnya.
tively mudah untuk menghitung keliling untuk nilai radius dari 5,0. Cara lain di mana programmer menggunakan informasi yang ada adalah dengan memperluas
solusi untuk satu masalah untuk memecahkan masalah yang lain. Misalnya, Anda dapat dengan mudah memecahkan masalah ini dengan membangun solusi untuk yang sebelumnya.
MASALAH
Anda bekerja untuk sebuah perusahaan hardware yang memproduksi mesin cuci datar. Untuk memperkirakan kapal-
biaya ping, perusahaan Anda membutuhkan sebuah program yang menghitung berat tertentu
jumlah mesin cuci datar.
Anda bekerja untuk sebuah perusahaan hardware yang memproduksi mesin cuci datar. Untuk memperkirakan kapal-
biaya ping, perusahaan Anda membutuhkan sebuah program yang menghitung berat tertentu
jumlah mesin cuci datar.
ANALISIS
Sebuah mesin cuci datar menyerupai donat kecil. Untuk menghitung berat datar tunggal
mesin cuci, Anda perlu tahu daerah rim nya, ketebalannya, dan kepadatan materi
digunakan dalam konstruksi. sebagai masukan: diameter luar mesin cuci dan diameter dalamnya (diameter lubang).
Dalam persyaratan data berikut, kita daftar radius mesin cuci yang dalam dan luar
(setengah diameter) sebagai variabel program. Kami juga daftar daerah rim dan berat satu
washer.
Sebuah mesin cuci datar menyerupai donat kecil. Untuk menghitung berat datar tunggal
mesin cuci, Anda perlu tahu daerah rim nya, ketebalannya, dan kepadatan materi
digunakan dalam konstruksi. sebagai masukan: diameter luar mesin cuci dan diameter dalamnya (diameter lubang).
Dalam persyaratan data berikut, kita daftar radius mesin cuci yang dalam dan luar
(setengah diameter) sebagai variabel program. Kami juga daftar daerah rim dan berat satu
washer.
DATA PERSYARATAN
Konstan masalah
PI 3,14159
masalah Input
ganda hole_diameter / * diameter lubang * /
ganda edge_diameter / * diameter tepi luar * /
Ketebalan ganda / * ketebalan mesin cuci * /
ganda density / * kepadatan bahan yang digunakan * /
ganda kuantitas / * jumlah pencuci dibuat * /
Konstan masalah
PI 3,14159
masalah Input
ganda hole_diameter / * diameter lubang * /
ganda edge_diameter / * diameter tepi luar * /
Ketebalan ganda / * ketebalan mesin cuci * /
ganda density / * kepadatan bahan yang digunakan * /
ganda kuantitas / * jumlah pencuci dibuat * /
![]() |
rim area = (d2/2)2(d1/2)2
masalah Output
ganda berat / * berat batch pencuci * /
Program Variabel
ganda hole_radius / * radius lubang * /
ganda edge_radius / * radius tepi luar * /
ganda rim_area / * daerah rim * /
ganda unit_weight / * berat 1 mesin cuci * /
Rumus yang relevan
luas lingkaran =? * radius
radius lingkaran = diameter / 2
rim daerah = daerah lingkaran luar - daerah lubang
satuan berat = rim daerah * ketebalan * kerapatan2
ganda berat / * berat batch pencuci * /
Program Variabel
ganda hole_radius / * radius lubang * /
ganda edge_radius / * radius tepi luar * /
ganda rim_area / * daerah rim * /
ganda unit_weight / * berat 1 mesin cuci * /
Rumus yang relevan
luas lingkaran =? * radius
radius lingkaran = diameter / 2
rim daerah = daerah lingkaran luar - daerah lubang
satuan berat = rim daerah * ketebalan * kerapatan2
GAMBAR 3.3 (lanjutan)
39. rim_area = PI * edge_radius * edge_radius -
40. PI * hole_radius * hole_radius;
41.
42. / * Hitung berat mesin cuci datar. * /
43. unit_weight = rim_area * ketebalan * kepadatan;
44. / * Hitung berat batch mesin cuci. * /
45. berat = unit_weight * kuantitas;
46.
47. / * Menampilkan berat batch mesin cuci. * /
48. printf ("\ berat nTim diharapkan dari batch adalah% .2 f", berat);
49. printf ("gram \ n.");
50.
51. kembali (0);
52. }
39. rim_area = PI * edge_radius * edge_radius -
40. PI * hole_radius * hole_radius;
41.
42. / * Hitung berat mesin cuci datar. * /
43. unit_weight = rim_area * ketebalan * kepadatan;
44. / * Hitung berat batch mesin cuci. * /
45. berat = unit_weight * kuantitas;
46.
47. / * Menampilkan berat batch mesin cuci. * /
48. printf ("\ berat nTim diharapkan dari batch adalah% .2 f", berat);
49. printf ("gram \ n.");
50.
51. kembali (0);
52. }
Batin diameter
dalam sentimeter> 1.2
Outer diameter dalam sentimeter> 2,4
Tebal dalam sentimeter> 0,1
Bahan kepadatan dalam gram per sentimeter kubik> 7.87
Jumlah dalam batch> 1000
Berat diharapkan dari batch adalah 2670,23 gram.
Outer diameter dalam sentimeter> 2,4
Tebal dalam sentimeter> 0,1
Bahan kepadatan dalam gram per sentimeter kubik> 7.87
Jumlah dalam batch> 1000
Berat diharapkan dari batch adalah 2670,23 gram.
PENGUJIAN
Untuk menguji program ini, menjalankannya dengan diameter dalam dan luar seperti 2 cm
dan 4 cm yang menyebabkan perhitungan mudah untuk daerah rim (3 * PI persegi cm).
Anda dapat memverifikasi bahwa program ini menghitung satuan berat yang benar
Untuk menguji program ini, menjalankannya dengan diameter dalam dan luar seperti 2 cm
dan 4 cm yang menyebabkan perhitungan mudah untuk daerah rim (3 * PI persegi cm).
Anda dapat memverifikasi bahwa program ini menghitung satuan berat yang benar
LATIHAN UNTUK
BAGIAN 3.4
1. Jelaskan masukan masalah dan output dan menulis algoritma untuk pro-
gram yang menghitung gaji kotor karyawan diberi jam kerja dan
tarif per jam.
1. Jelaskan masukan masalah dan output dan menulis algoritma untuk pro-
gram yang menghitung gaji kotor karyawan diberi jam kerja dan
tarif per jam.
2. Menulis
versi awal dari program
dari solusi Anda untuk
Latihan 1. Tampilkan bagian deklarasi program
dan komentar Program
sesuai dengan algoritma dan perbaikannya.
sesuai dengan algoritma dan perbaikannya.
3. Dalam menghitung gaji kotor, perubahan
apa yang harus Anda lakukan untuk
memperpanjang daftar gaji
algoritma dalam Self-Periksa Latihan 1 untuk memasukkan jam lembur yang harus dibayar pada
algoritma dalam Self-Periksa Latihan 1 untuk memasukkan jam lembur yang harus dibayar pada
pemrograman
1. Tambahkan perbaikan ke garis program yang mengikuti dan menulis program C akhir.
/ *
* Hitung jumlah dan rata-rata dari dua angka.
* /
# include / * printf, definisi scanf * /
int
main (void)
{
ganda satu, dua, / * masukan - nomor untuk memproses * /
Singkatnya, / * Output - jumlah satu dan dua * /
rata-rata; / * Output - rata-rata satu dan dua * /
/ * Dapatkan nomor dua. * /
/ * Hitung jumlah angka. * /
/ * Hitung rata-rata angka. * /
/ * Tampilan jumlah dan rata-rata. * /
kembali (0);
}
2. Menulis sebuah program C lengkap untuk Self-Periksa Latihan 1.
3. Menulis sebuah program C lengkap untuk algoritma penggajian revisi dikembangkan di
Self-Periksa Latihan 3.
4. Asumsikan bahwa mesin cuci datar yang diproduksi oleh stamping mereka keluar dari rectan-
gular sepotong kain ketebalan seragam. Memperpanjang program mesin cuci untuk menghitung
(a) jumlah sentimeter persegi bahan yang diperlukan untuk memproduksi
1. Tambahkan perbaikan ke garis program yang mengikuti dan menulis program C akhir.
/ *
* Hitung jumlah dan rata-rata dari dua angka.
* /
# include / * printf, definisi scanf * /
int
main (void)
{
ganda satu, dua, / * masukan - nomor untuk memproses * /
Singkatnya, / * Output - jumlah satu dan dua * /
rata-rata; / * Output - rata-rata satu dan dua * /
/ * Dapatkan nomor dua. * /
/ * Hitung jumlah angka. * /
/ * Hitung rata-rata angka. * /
/ * Tampilan jumlah dan rata-rata. * /
kembali (0);
}
2. Menulis sebuah program C lengkap untuk Self-Periksa Latihan 1.
3. Menulis sebuah program C lengkap untuk algoritma penggajian revisi dikembangkan di
Self-Periksa Latihan 3.
4. Asumsikan bahwa mesin cuci datar yang diproduksi oleh stamping mereka keluar dari rectan-
gular sepotong kain ketebalan seragam. Memperpanjang program mesin cuci untuk menghitung
(a) jumlah sentimeter persegi bahan yang diperlukan untuk memproduksi
