1 00:00:00,000 --> 00:00:10,216 >> [MUZIK Bermain] 2 00:00:10,216 --> 00:00:12,060 >> ZAMYLA CHAN: Sekarang mari kita menangani Tamak. 3 00:00:12,060 --> 00:00:14,390 Mengatakan anda juruwang, dan anda perlu memberi pelanggan anda 4 00:00:14,390 --> 00:00:16,309 sejumlah perubahan. 5 00:00:16,309 --> 00:00:18,820 Nah, jika anda seorang juruwang tamak, anda akan mahu untuk memastikan semua 6 00:00:18,820 --> 00:00:20,040 syiling kepada diri sendiri. 7 00:00:20,040 --> 00:00:24,310 Jadi, anda akan memberikan pelanggan perubahan mereka menggunakan sebagai beberapa syiling yang mungkin. 8 00:00:24,310 --> 00:00:27,640 >> Tugas anda untuk ini p-set adalah untuk melaksanakan Tamak, program yang 9 00:00:27,640 --> 00:00:30,530 mengira bilangan minimum syiling digunakan untuk membuat apa-apa 10 00:00:30,530 --> 00:00:31,940 diberikan jumlah perubahan. 11 00:00:31,940 --> 00:00:35,660 Sebelum terjun ke dalam pengaturcaraan konsep dan C sintaks untuk Tamak, 12 00:00:35,660 --> 00:00:38,410 mari kita bercakap pertama melalui Tamak program, dan lihat jika kita 13 00:00:38,410 --> 00:00:40,570 boleh mengenal pasti algoritma. 14 00:00:40,570 --> 00:00:42,560 Ingat bahawa algoritma hanya satu set 15 00:00:42,560 --> 00:00:44,680 arahan untuk menyelesaikan masalah. 16 00:00:44,680 --> 00:00:48,060 Algoritma untuk Tamak hanya akan menjadi set peraturan logik dan langkah-langkah yang 17 00:00:48,060 --> 00:00:49,000 kita boleh mengikuti. 18 00:00:49,000 --> 00:00:52,510 Dan mereka akan sentiasa menghasilkan minimum beberapa syiling diperlukan. 19 00:00:52,510 --> 00:00:54,340 >> Perkara pertama yang anda perlukan untuk tahu ialah berapa banyak perubahan 20 00:00:54,340 --> 00:00:55,710 terhutang kepada pelanggan. 21 00:00:55,710 --> 00:00:58,560 Untuk contoh ini, katakan $ 0,32. 22 00:00:58,560 --> 00:01:00,880 Terdapat banyak cara untuk mendapatkan kembali $ 0,32. 23 00:01:00,880 --> 00:01:03,950 Anda boleh menggunakan, misalnya, 32 beberapa sen. 24 00:01:03,950 --> 00:01:07,560 Atau jika, anda agak lanjut masanya dalam memilih syiling anda, anda boleh menggunakan 25 00:01:07,560 --> 00:01:11,730 lima syiling dan bukannya 32 dengan memberi pelanggan tiga dimes - 26 00:01:11,730 --> 00:01:14,690 $ 0.10 sesaham - dan dua beberapa sen - $ 0,01 setiap. 27 00:01:14,690 --> 00:01:16,830 >> Tetapi kita boleh melakukan yang lebih baik daripada lima syiling? 28 00:01:16,830 --> 00:01:18,990 Bolehkah kita menjadi lebih lanjut masanya? 29 00:01:18,990 --> 00:01:20,410 Mungkin. 30 00:01:20,410 --> 00:01:23,360 >> Mari kita terus berjalan melalui program ini Tamak, dan lihat. 31 00:01:23,360 --> 00:01:27,090 Jika matlamat akhir anda adalah dengan menggunakan beberapa syiling yang mungkin, maka ia akan menjadi yang paling 32 00:01:27,090 --> 00:01:29,680 berhemat untuk menggunakan terbesar syiling mungkin. 33 00:01:29,680 --> 00:01:32,410 Anda lebih suka memberikan satu perempat menyokong - $ 0,25 setiap satu - 34 00:01:32,410 --> 00:01:33,640 daripada lima Nickels - 35 00:01:33,640 --> 00:01:34,940 $ 0,05 setiap. 36 00:01:34,940 --> 00:01:38,260 Jadi mungkin peraturan pentadbiran kami untuk Tamak boleh untuk sentiasa menggunakan 37 00:01:38,260 --> 00:01:40,590 syiling terbesar mungkin. 38 00:01:40,590 --> 00:01:43,640 Daripada pihak, dimes, Nickels, dan beberapa sen, kami 39 00:01:43,640 --> 00:01:44,830 syiling terbesar adalah suku. 40 00:01:44,830 --> 00:01:47,690 Oleh itu, kita akan cuba untuk menggunakan mereka pertama. 41 00:01:47,690 --> 00:01:49,270 >> Kembali kepada $ 0.32 kami. 42 00:01:49,270 --> 00:01:52,455 Bolehkah kita menggunakan suku untuk memberi pelanggan $ 0,32? 43 00:01:52,455 --> 00:01:52,930 Ya. 44 00:01:52,930 --> 00:01:55,530 Yang akan meninggalkan kita dengan $ 0,07 kiri. 45 00:01:55,530 --> 00:01:57,440 >> Bolehkah kita menggunakan suku yang lain? 46 00:01:57,440 --> 00:02:00,100 Tidak, kerana 25 adalah lebih besar daripada tujuh. 47 00:02:00,100 --> 00:02:03,470 Kami tidak mahu memberikan pelanggan apa-apa lebih daripada kita berhutang mereka. 48 00:02:03,470 --> 00:02:04,190 >> Baiklah. 49 00:02:04,190 --> 00:02:07,370 Sekarang kita telah habis pihak kami, mari kita beralih kepada yang terbesar seterusnya 50 00:02:07,370 --> 00:02:09,090 duit syiling, ada yang itu. 51 00:02:09,090 --> 00:02:12,400 Boleh kita gunakan ada yang memberi pelanggan mereka kembali $ 0,07? 52 00:02:12,400 --> 00:02:15,100 Tidak, kerana 10 adalah lebih besar daripada tujuh. 53 00:02:15,100 --> 00:02:18,400 >> Jadi maka syiling seterusnya terbesar diakses kepada kita adalah nikel. 54 00:02:18,400 --> 00:02:19,590 Bolehkah kita menggunakan nikel? 55 00:02:19,590 --> 00:02:20,250 Ya. 56 00:02:20,250 --> 00:02:22,940 Dan kemudian kita akan mempunyai $ 0,02 yang ditinggalkan. 57 00:02:22,940 --> 00:02:24,910 >> Kita tidak boleh menggunakan nikel untuk kembali $ 0.02. 58 00:02:24,910 --> 00:02:29,510 Oleh itu, kita berpindah syiling terakhir di tangan kita - sen. 59 00:02:29,510 --> 00:02:33,090 Dan selepas menggunakan dua beberapa sen, kita akan ditinggalkan dengan sifar sen, yang bermaksud bahawa 60 00:02:33,090 --> 00:02:36,350 kita telah berjaya dibayar balik pengguna perubahan mereka terhutang 61 00:02:36,350 --> 00:02:37,830 menggunakan hanya empat syiling - 62 00:02:37,830 --> 00:02:40,410 satu perempat, satu nikel, dan dua beberapa sen. 63 00:02:40,410 --> 00:02:43,880 >> Anda boleh menjalankan penyelesaian kakitangan untuk melihat jika peraturan pentadbiran dan proses memberi 64 00:02:43,880 --> 00:02:44,770 jawapan yang betul. 65 00:02:44,770 --> 00:02:47,820 Bagi kebanyakan set masalah, anda akan dapat untuk menjalankan penyelesaian kakitangan untuk melihat bagaimana 66 00:02:47,820 --> 00:02:49,900 program anda sendiri harus bekerja. 67 00:02:49,900 --> 00:02:53,390 Dan arahan khusus akan berada di dalam masalah ini menetapkan ciri-ciri komputer. 68 00:02:53,390 --> 00:02:57,180 >> Apabila kita menjalankan penyelesaian kakitangan, ia meminta kami untuk bagaimana perubahan banyak yang terhutang 69 00:02:57,180 --> 00:02:59,790 ambil perhatian bahawa ia meminta untuk terjumlah dalam dolar. 70 00:02:59,790 --> 00:03:03,580 Kami input $ 0,32, 0.32. 71 00:03:03,580 --> 00:03:06,830 Ia memberitahu kita bahawa empat syiling berhutang, konsisten dengan jawapan kita. 72 00:03:06,830 --> 00:03:08,160 Hebat. 73 00:03:08,160 --> 00:03:10,210 >> Jadi sekarang mari kita mula mencari pada pelaksanaan 74 00:03:10,210 --> 00:03:11,780 algoritma Tamak. 75 00:03:11,780 --> 00:03:13,410 Kita tahu beberapa perkara. 76 00:03:13,410 --> 00:03:17,280 Satu, yang kita perlu untuk mempercepat pengguna bagi jumlah perubahan. 77 00:03:17,280 --> 00:03:20,830 >> Dua, bahawa kita akan mahu mengikut kami yang mengawal peraturan untuk sentiasa menggunakan 78 00:03:20,830 --> 00:03:22,990 syiling terbesar mungkin. 79 00:03:22,990 --> 00:03:26,370 Dan tiga, bahawa kita perlu untuk mengesan berapa banyak duit syiling yang kita gunakan. 80 00:03:26,370 --> 00:03:30,040 Kerana akhir sekali, kita perlu untuk mencetak bilangan syiling yang kita. 81 00:03:30,040 --> 00:03:33,270 >> Pertama, mendorong pengguna bagi jumlah perubahan. 82 00:03:33,270 --> 00:03:36,880 Apabila anda berurusan dengan input pengguna, membuat memastikan bahawa anda memikirkan semua 83 00:03:36,880 --> 00:03:40,010 keperluan input, dan hanya menerima input yang memenuhi mereka 84 00:03:40,010 --> 00:03:40,880 keperluan. 85 00:03:40,880 --> 00:03:44,100 Dalam kes ini, kita mahu berurusan dengan nilai wang dalam dolar. 86 00:03:44,100 --> 00:03:48,230 >> Yang GetFloat dan GetInt fungsi memastikan input adalah nombor. 87 00:03:48,230 --> 00:03:51,700 Tetapi pengguna dapat input nilai angka negatif. 88 00:03:51,700 --> 00:03:56,260 Jadi ingat untuk hanya menggunakan bukan negatif input, yang merangkumi semua negatif 89 00:03:56,260 --> 00:03:58,370 nombor dan sifar. 90 00:03:58,370 --> 00:04:00,260 >> Dalam kes ini, input perlu apungan. 91 00:04:00,260 --> 00:04:01,960 Dalam erti kata lain, nombor perpuluhan. 92 00:04:01,960 --> 00:04:06,000 Oleh kerana spec set masalah memerlukan anda untuk meminta input dalam dolar. 93 00:04:06,000 --> 00:04:09,540 >> Tetapi dalam C, mata yang terapung tidak boleh diwakili dengan tepat. 94 00:04:09,540 --> 00:04:12,490 Oleh kerana terdapat beberapa terhingga bit dengan yang 95 00:04:12,490 --> 00:04:14,870 mewakili nilai-nilai tak terhingga. 96 00:04:14,870 --> 00:04:16,860 Ambil nombor yang 0.1. 97 00:04:16,860 --> 00:04:21,140 Jika saya meminta anda untuk menulis 0.1 oleh tangan ke tempat perpuluhan itu seratus, 98 00:04:21,140 --> 00:04:24,380 anda akan menulis 1, diikuti oleh 99 sifar. 99 00:04:24,380 --> 00:04:27,080 Kami harapkan bahawa komputer kita akan mencetak perkara yang sama 100 00:04:27,080 --> 00:04:28,330 jika kami bertanya kepada. 101 00:04:28,330 --> 00:04:30,320 >> Jadi mari kita melihat apa yang dilakukan. 102 00:04:30,320 --> 00:04:33,150 Saya akan mengkaji semula nilai-nilai ke arah percetakan akhir ini berjalan melalui. 103 00:04:33,150 --> 00:04:39,270 Buat masa ini, lihat di sini bahawa f% adalah pemegang tempat untuk titik terapung. 104 00:04:39,270 --> 00:04:44,530 Tetapi kita nyatakan terlebih dahulu bahawa kita mahu 100 perpuluhan dipaparkan, dan kemudian baru 105 00:04:44,530 --> 00:04:46,506 talian untuk pemformatan lebih bagus. 106 00:04:46,506 --> 00:04:51,710 >> Selepas tali, kita memilih 0.1 sebagai terapung yang kita ingin mencetak keluar. 107 00:04:51,710 --> 00:04:56,680 Dan hasilnya, satu, diikuti oleh beberapa sifar, tetapi kemudian 108 00:04:56,680 --> 00:04:57,980 sejumlah nombor. 109 00:04:57,980 --> 00:05:00,470 Sudah tentu tidak seperti yang diharapkan. 110 00:05:00,470 --> 00:05:03,490 >> Titik terapung ketakpersisan boleh memperkenalkan ralat ke dalam anda 111 00:05:03,490 --> 00:05:07,330 pengiraan yang anda akan pasti mahu mengelakkan. 112 00:05:07,330 --> 00:05:10,900 Jika anda ingin melihat lebih banyak contoh, anda boleh turun imprecision.ce dari 113 00:05:10,900 --> 00:05:14,880 berjalan melalui kod, yang mudah yang program yang meminta terapung dan mencetak ia 114 00:05:14,880 --> 00:05:17,550 kembali ke tempat perpuluhan seratus. 115 00:05:17,550 --> 00:05:20,340 Sudah tentu, jika anda mahu untuk menunjukkan lebih kurang tempat perpuluhan 116 00:05:20,340 --> 00:05:22,410 anda boleh mengubah diri sendiri. 117 00:05:22,410 --> 00:05:25,740 >> Seperti yang anda akan lihat, walaupun perbezaan antara kedua-dua adalah kecil, apabila anda 118 00:05:25,740 --> 00:05:30,460 untuk membiak dan menambah mengapung, yang percanggahan akhirnya boleh menambah. 119 00:05:30,460 --> 00:05:31,790 Kembali ke Tamak. 120 00:05:31,790 --> 00:05:34,870 Kami akan mahu mengelakkan kesilapan pembundaran yang hanya berurusan dengan nombor bulat. 121 00:05:34,870 --> 00:05:38,090 Jadi apabila kita mendapatkan input sah dari pengguna, mari kita menukar ini 122 00:05:38,090 --> 00:05:39,550 nilai dolar untuk sen. 123 00:05:39,550 --> 00:05:43,420 >> Mental, kita melakukan ini dengan mendarabkan nilai dolar dengan 100. 124 00:05:43,420 --> 00:05:46,400 Tetapi ingat, kerana titik terapung ketakpersisan, kami ingin 125 00:05:46,400 --> 00:05:48,580 memastikan bahawa kita menggunakan nilai yang betul. 126 00:05:48,580 --> 00:05:52,510 Didarab dengan 100 pada dasarnya akan bergerak tempat perpuluhan dua ruang untuk 127 00:05:52,510 --> 00:05:56,640 kanan, mencincang off atau memendekkan apa-apa selepas itu. 128 00:05:56,640 --> 00:05:59,430 >> Jika anda bermain-main dengan beberapa lebih contoh, anda akan melihat bahawa anda tidak akan 129 00:05:59,430 --> 00:06:02,980 sentiasa mendapat nombor yang tepat jika anda menggunakan kaedah ini memendekkan. 130 00:06:02,980 --> 00:06:10,011 Sebagai contoh, 12.59 dicetak 100 tempat perpuluhan, yang memberikan anda 131 00:06:10,011 --> 00:06:14,050 12,5899, dan sebagainya. 132 00:06:14,050 --> 00:06:18,460 Anda akan mendapat 12.58 jika anda dipenggal, tidak 12.59, seperti yang anda perlukan. 133 00:06:18,460 --> 00:06:21,130 >> Sebaliknya, ia adalah yang terbaik untuk pusingan nombor pertama. 134 00:06:21,130 --> 00:06:23,930 Nasib baik, C datang dengan fungsi dipanggil Round. 135 00:06:23,930 --> 00:06:25,040 Ada dalam perpustakaan matematik. 136 00:06:25,040 --> 00:06:28,540 >> Jika anda ingin tahu bagaimana untuk menggunakan Bulat, maka anda boleh membawa manual atau 137 00:06:28,540 --> 00:06:30,550 halaman lelaki untuk fungsi itu. 138 00:06:30,550 --> 00:06:35,510 Anda boleh melakukan ini dengan menaip lelaki, pendek untuk manual, dan kemudian fungsi yang anda 139 00:06:35,510 --> 00:06:36,620 mahu mencari. 140 00:06:36,620 --> 00:06:42,280 Jadi menaip pusingan lelaki ke dalam pangkalan baris arahan akan membawa pengguna. 141 00:06:42,280 --> 00:06:44,790 >> Ia mungkin sedikit sukar untuk mentafsirkan, tetapi akhirnya anda akan 142 00:06:44,790 --> 00:06:45,660 memahamkan ia. 143 00:06:45,660 --> 00:06:48,290 Laman Man menunjukkan kepada anda apa fungsi tidak, dan kemudian beberapa 144 00:06:48,290 --> 00:06:50,170 kegunaan mungkin daripadanya. 145 00:06:50,170 --> 00:06:52,340 Saya akan meninggalkan anda untuk menerokai halaman lelaki itu untuk pusingan kedua. 146 00:06:52,340 --> 00:06:55,960 Tetapi tahu bahawa anda boleh menggunakannya untuk pusingan nilai semasa penukaran anda dari 147 00:06:55,960 --> 00:06:57,180 dolar untuk sen. 148 00:06:57,180 --> 00:06:59,690 >> Round akan memberikan anda kembali sejumlah jenis data berganda. 149 00:06:59,690 --> 00:07:03,810 Dan anda boleh menukar atau dibuang ia kepada int selepas itu. 150 00:07:03,810 --> 00:07:04,980 Besar. 151 00:07:04,980 --> 00:07:08,120 Sekarang kami telah mendorong pengguna untuk jumlah yang kewangan, dan 152 00:07:08,120 --> 00:07:09,520 ditukar ke sen. 153 00:07:09,520 --> 00:07:12,410 Sekarang kita boleh melaksanakan algoritma yang selalu menggunakan 154 00:07:12,410 --> 00:07:14,640 syiling tersedia yang paling besar. 155 00:07:14,640 --> 00:07:17,790 >> Perlu diingat bahawa terdapat beberapa cara-cara untuk melaksanakan Tamak, seperti 156 00:07:17,790 --> 00:07:21,200 terdapat pelbagai cara untuk mendekati setiap masalah sains komputer. 157 00:07:21,200 --> 00:07:24,040 Mencari cara yang paling elegan, itulah bahagian yang menyeronokkan. 158 00:07:24,040 --> 00:07:27,030 Sepanjang ini p-set, jika program anda tidak betul-betul sepadan saya 159 00:07:27,030 --> 00:07:29,190 penjelasan dalam walkthroughs, itulah OK. 160 00:07:29,190 --> 00:07:32,870 Tetapi memastikan bahawa ia berlalu memeriksa 50, memenuhi semua 161 00:07:32,870 --> 00:07:36,270 keperluan membentuk spesifikasi, dan bahawa anda mempertimbangkan sama ada anda 162 00:07:36,270 --> 00:07:37,670 pendekatan mempunyai reka bentuk yang baik. 163 00:07:37,670 --> 00:07:39,750 >> Dalam erti kata lain, bagaimana cekap ia? 164 00:07:39,750 --> 00:07:44,400 Sebagai contoh, adakah anda taip berulang-ulang garis kod, daripada menggunakan gelung? 165 00:07:44,400 --> 00:07:47,580 Menulis kod dengan reka bentuk yang lebih baik akan datang pengalaman sebagai anda kemajuan 166 00:07:47,580 --> 00:07:49,192 melalui kursus. 167 00:07:49,192 --> 00:07:52,350 >> Untuk ini berjalan melalui, saya akan pergi ke dua kaedah yang boleh digunakan untuk 168 00:07:52,350 --> 00:07:53,540 melengkapkan Tamak. 169 00:07:53,540 --> 00:07:57,160 Kaedah pertama adalah kaedah menggunakan gelung dan penolakan. 170 00:07:57,160 --> 00:08:00,050 Sebelum itu, apabila kita bercakap melalui Proses tamak, kami terus 171 00:08:00,050 --> 00:08:03,220 diperiksa sama ada kita boleh menggunakan suku, dan digunakan suku sehingga 172 00:08:03,220 --> 00:08:05,670 nilai baki adalah kurang daripada $ 0.25. 173 00:08:05,670 --> 00:08:07,990 >> Ini diterjemahkan juga kepada manakala struktur gelung. 174 00:08:07,990 --> 00:08:11,550 Sementara kita masih boleh menggunakan suku, menggunakan salah satu. 175 00:08:11,550 --> 00:08:15,900 Yang gelung sementara hendaklah melaksanakan selagi sebagai nilai baki adalah lebih besar daripada 176 00:08:15,900 --> 00:08:18,240 atau sama dengan nilai peratus suku ini. 177 00:08:18,240 --> 00:08:20,970 Ini bermakna bahawa anda juga akan mahu menjejaki tunai baki 178 00:08:20,970 --> 00:08:24,570 nilai, dan mengemaskinikannya setiap masa yang anda menggunakan duit syiling. 179 00:08:24,570 --> 00:08:28,350 >> Juga ingat bahawa pada akhirnya, anda keluaran ialah jumlah duit syiling yang digunakan. 180 00:08:28,350 --> 00:08:32,400 Jadi satu lagi perkara untuk mengesan adalah jumlah duit syiling yang anda gunakan. 181 00:08:32,400 --> 00:08:35,450 Anda boleh menjejaki ini menggunakan baik dinamakan pembolehubah. 182 00:08:35,450 --> 00:08:39,730 Dan di dalam tubuh gelung anda akan menjadi kemas kini pemboleh ubah. 183 00:08:39,730 --> 00:08:43,400 Apabila gelung untuk suku selesai, anda boleh menggunakan salah satu yang sama untuk dimes, 184 00:08:43,400 --> 00:08:47,180 dan sebagainya dan sebagainya, sehingga anda telah kembali semua tunai. 185 00:08:47,180 --> 00:08:50,640 >> Saya telah menulis beberapa pseudo-kod di sini untuk membantu anda menggambarkan betapa yang 186 00:08:50,640 --> 00:08:55,080 proses kami membincangkan mungkin diterjemahkan kepada C. Seperti yang anda lihat di sini, saya masih menggunakan 187 00:08:55,080 --> 00:08:55,760 Perkataan Bahasa Inggeris. 188 00:08:55,760 --> 00:08:56,830 Ia bukan C yet. 189 00:08:56,830 --> 00:08:58,590 Tetapi saya mula perkara inden. 190 00:08:58,590 --> 00:09:00,690 Saya meletakkan syarat di dalam kurungan saya. 191 00:09:00,690 --> 00:09:03,710 Ia mula kelihatan sedikit sedikit seperti kod pengaturcaraan. 192 00:09:03,710 --> 00:09:06,410 >> Pseudo-kod adalah cara yang baik untuk mendapatkan diri anda bermula. 193 00:09:06,410 --> 00:09:08,810 Bayangkan kod anda sebelum anda mencari sintaksis. 194 00:09:08,810 --> 00:09:12,570 Kerana sering bahagian yang paling sukar tentang masalah adalah benar-benar memahami apa yang 195 00:09:12,570 --> 00:09:14,450 sebenarnya anda perlu lakukan. 196 00:09:14,450 --> 00:09:17,490 Sebaik sahaja anda menulis bahawa ke bawah, maka ia adalah satu banyak lebih mudah untuk mencari fungsi 197 00:09:17,490 --> 00:09:20,390 dan sintaks tertentu untuk anda garis pseudo-kod 198 00:09:20,390 --> 00:09:23,760 >> Perlu diingat bahawa ini mungkin tidak sama dengan jenis rangka 199 00:09:23,760 --> 00:09:25,560 kod anda yang anda menulis. 200 00:09:25,560 --> 00:09:27,640 Selalu ada pengoptimuman dibuat. 201 00:09:27,640 --> 00:09:31,250 Dan terutama dalam pseudo-kod saya di sini, lihat jika anda boleh melihat ia. 202 00:09:31,250 --> 00:09:33,380 >> Tetapi pada dasarnya proses dan cara pemikiran 203 00:09:33,380 --> 00:09:35,250 hanya seperti yang kita dibincangkan. 204 00:09:35,250 --> 00:09:38,350 Baris pertama memberitahu kita untuk mendapatkan jumlah tertentu dalam dolar. 205 00:09:38,350 --> 00:09:40,960 Dan yang kedua memberitahu kita untuk menukarkan kepada sen. 206 00:09:40,960 --> 00:09:45,640 >> Dan kemudian, manakala kuarters boleh digunakan, kita mahu meningkatkan jumlah syiling dan 207 00:09:45,640 --> 00:09:47,200 mengurangkan jumlah tunai. 208 00:09:47,200 --> 00:09:49,880 Begitu juga dimes, Nickels, dan beberapa sen. 209 00:09:49,880 --> 00:09:53,230 Dan akhirnya, kami memberitahu pengguna berapa banyak duit syiling yang kita digunakan. 210 00:09:53,230 --> 00:09:53,750 >> Besar. 211 00:09:53,750 --> 00:09:55,680 Supaya menyimpulkan kaedah gelung. 212 00:09:55,680 --> 00:09:59,720 Sekarang mari kita bercakap tentang kaedah modular, yang lebih seperti bahagian. 213 00:09:59,720 --> 00:10:03,630 >> Kita semua biasa dengan campur, tolak, membiak dan membahagi pengendali 214 00:10:03,630 --> 00:10:05,030 ada pada kita. 215 00:10:05,030 --> 00:10:09,060 C mempunyai semua empat daripada mereka, tetapi juga mempunyai operator modulo itu, yang diwakili oleh 216 00:10:09,060 --> 00:10:10,640 peratus tanda. 217 00:10:10,640 --> 00:10:11,940 Modulo adalah benar-benar kemas. 218 00:10:11,940 --> 00:10:14,880 Ia memberikan selebihnya dari membahagikan dua nombor. 219 00:10:14,880 --> 00:10:19,910 >> Ingat pesan bahagian panjang apabila anda membahagikan, katakan, 74 dengan tiga? 220 00:10:19,910 --> 00:10:23,510 Bermula dengan tempat puluhan, anda akan tahu bahawa 3 masuk ke dalam tujuh 221 00:10:23,510 --> 00:10:27,620 dua kali untuk membuat enam dengan satu baki. 222 00:10:27,620 --> 00:10:31,870 Anda akan menulis dua di bahagian atas, dan kemudian tolakkan 6 daripada tujuh, membawa lebih 223 00:10:31,870 --> 00:10:34,980 baki 14 untuk mengulangi proses tersebut. 224 00:10:34,980 --> 00:10:39,410 >> Tiga masuk ke dalam 14 sebanyak empat kali untuk membuat 12, dengan baki dua. 225 00:10:39,410 --> 00:10:40,930 Dan dua tidak membawa lebih lagi. 226 00:10:40,930 --> 00:10:44,170 Jadi dua akan ditinggalkan di bawah seperti bakinya. 227 00:10:44,170 --> 00:10:46,800 >> Dan itulah yang memberikan modulo, anda nombor yang di bahagian bawah. 228 00:10:46,800 --> 00:10:49,790 Jadi 74 modulo tiga akan memberikan dua. 229 00:10:49,790 --> 00:10:52,980 Dan 10 modulo dua, baik yang akan memberi anda sifar. 230 00:10:52,980 --> 00:10:56,500 Oleh kerana tidak ada apa-apa bakinya apabila anda membahagikan 10 dengan dua. 231 00:10:56,500 --> 00:11:00,190 >> Enam modulo lima, baik lima masuk ke dalam enam sekali. 232 00:11:00,190 --> 00:11:01,830 Dan itu ia telah salah satu yang ditinggalkan. 233 00:11:01,830 --> 00:11:04,720 Jadi enam modulo lima adalah satu. 234 00:11:04,720 --> 00:11:07,950 >> Kemudian jika anda mempunyai tujuh modulo sembilan, anda akan mendapat tujuh. 235 00:11:07,950 --> 00:11:09,840 Kerana sembilan adalah lebih besar daripada tujuh. 236 00:11:09,840 --> 00:11:15,020 Jadi ia tidak membahagikan semua ke tujuh, meninggalkan tujuh sebagai jawapan anda. 237 00:11:15,020 --> 00:11:18,340 >> Jika anda berfikir tentang modulo lebih sedikit, ingat bahawa ia memberi anda 238 00:11:18,340 --> 00:11:21,020 selebihnya selepas anda membahagikan sesuatu. 239 00:11:21,020 --> 00:11:23,620 Fikirkan tentang bagaimana anda mungkin dapat menggunakannya dalam Tamak. 240 00:11:23,620 --> 00:11:27,620 Katakan pengguna meminta $ 400,11. 241 00:11:27,620 --> 00:11:30,470 Apakah cara untuk memikirkan bagaimana banyak pihak anda perlukan tanpa perlu 242 00:11:30,470 --> 00:11:32,360 mengira setiap satu? 243 00:11:32,360 --> 00:11:37,480 >> Sebaik sahaja anda memikirkan bagaimana banyak pihak anda boleh gunakan untuk membuat $ 400,11, berapa banyak 244 00:11:37,480 --> 00:11:38,880 menukar mayat? 245 00:11:38,880 --> 00:11:42,110 Mungkin gabungan di sini antara modulo dan pembahagian akan datang dalam 246 00:11:42,110 --> 00:11:46,200 berguna untuk memberikan anda yang sejuk, elegan mendekati kepada masalah ini Tamak. 247 00:11:46,200 --> 00:11:49,030 Tetapi ingat bahawa pentadbiran yang peraturan masih terpakai. 248 00:11:49,030 --> 00:11:51,610 Sentiasa gunakan duit syiling mungkin terbesar. 249 00:11:51,610 --> 00:11:55,340 >> Sebaik sahaja anda telah melakukan pengiraan bagaimana banyak duit syiling untuk digunakan, langkah terakhir 250 00:11:55,340 --> 00:11:57,930 adalah untuk mencetak bilangan syiling yang anda dikira. 251 00:11:57,930 --> 00:12:01,610 Setakat ini, kami telah menggunakan printf yang berfungsi semata-mata untuk tali. 252 00:12:01,610 --> 00:12:05,200 Tetapi apabila anda mahu untuk mencetak satu Dalam, atau sahaja apa-apa jenis data yang disimpan 253 00:12:05,200 --> 00:12:09,200 dalam pembolehubah, anda perlu menunjukkan yang menggunakan pemegang tempat yang. 254 00:12:09,200 --> 00:12:12,400 >> Di sini saya telah menyertakan beberapa tip bagaimana untuk mencetak nilai-nilai. 255 00:12:12,400 --> 00:12:16,390 Jika anda mempunyai integer, anda akan menulis tali anda menggunakan% d sebagai 256 00:12:16,390 --> 00:12:17,450 pemegang tempat. 257 00:12:17,450 --> 00:12:20,170 Selepas sebut harga penutup tanda, masukkan koma. 258 00:12:20,170 --> 00:12:24,530 Dan kemudian dimasukkan ke dalam integer yang akan mengambil tempat% d apabila dicetak. 259 00:12:24,530 --> 00:12:27,150 >> Jadi selepas memaparkan bilangan syiling yang digunakan, anda 260 00:12:27,150 --> 00:12:28,500 selesai dengan Tamak. 261 00:12:28,500 --> 00:12:32,000 Pastikan untuk memeriksa semua kes sudut, mengemas gaya anda sedikit, dan anda 262 00:12:32,000 --> 00:12:33,350 bersedia untuk mengemukakan. 263 00:12:33,350 --> 00:12:36,000 Pada akhir set masalah ini, anda akan menjadi lebih biasa dengan CS50 264 00:12:36,000 --> 00:12:39,940 perkakas, terminal, dan gelung struktur dan pembolehubah dalam C. 265 00:12:39,940 --> 00:12:41,470 >> Anda baik dalam perjalanan anda. 266 00:12:41,470 --> 00:12:43,040 Keluk pembelajaran boleh kelihatan sukar. 267 00:12:43,040 --> 00:12:44,690 Jadi mengambil langkah demi langkah. 268 00:12:44,690 --> 00:12:47,110 Pastikan anda menulis kod pseudo- sebelum menyelam terlalu dalam 269 00:12:47,110 --> 00:12:49,000 ke dalam sintaks yang tidak dikenali. 270 00:12:49,000 --> 00:12:52,030 >> Buat senarai tugasan, dan memecah tugasan ke dalam yang lebih kecil, lebih 271 00:12:52,030 --> 00:12:53,440 tugas terkawal. 272 00:12:53,440 --> 00:12:55,810 Explore semua sumber CS50. 273 00:12:55,810 --> 00:12:58,270 Selain kuliah, rewatch ini berjalan melalui. 274 00:12:58,270 --> 00:12:59,790 >> Perhatikan bahagian. 275 00:12:59,790 --> 00:13:00,710 Lihat seluar pendek. 276 00:13:00,710 --> 00:13:04,640 Baca soalan rakan sekelas anda pada Bincangkan, dan hantar sendiri. 277 00:13:04,640 --> 00:13:06,110 >> Best nasib dengan p-set. 278 00:13:06,110 --> 00:13:07,200 Dan terima kasih kerana menonton. 279 00:13:07,200 --> 00:13:08,690 Ini adalah Tamak. 280 00:13:08,690 --> 00:13:15,691 >> [MUZIK Bermain]