1 00:00:00,000 --> 00:00:11,960 2 00:00:11,960 --> 00:00:13,750 >> ROB Bowden: Hi, aku Rob. 3 00:00:13,750 --> 00:00:17,360 Dan ketika di Roma, biarkan program sebagai Roma lakukan. 4 00:00:17,360 --> 00:00:22,280 Jadi, hal pertama yang perlu kita lakukan adalah memeriksa untuk memastikan pengguna benar-benar masuk 5 00:00:22,280 --> 00:00:26,670 nomor yang ingin kita memutar masing-masing karakter demi pada baris perintah. 6 00:00:26,670 --> 00:00:27,740 >> Jadi, kita periksa. 7 00:00:27,740 --> 00:00:30,180 Apakah argc sama dengan 2? 8 00:00:30,180 --> 00:00:34,190 Jika tidak, itu berarti pengguna baik tidak memasukkan angka pada 9 00:00:34,190 --> 00:00:37,770 baris perintah atau mereka masuk terlalu banyak hal pada baris perintah, di mana 10 00:00:37,770 --> 00:00:40,560 jika kita tidak tahu apa yang harus dilakukan dengan sisa hal. 11 00:00:40,560 --> 00:00:45,750 Jadi, selama argc dua, kita bisa melanjutkan sisa program. 12 00:00:45,750 --> 00:00:49,610 >> Sekarang, ingat bahwa argv 1 selalu string. 13 00:00:49,610 --> 00:00:52,490 Tapi kami ingin memperlakukannya sebagai integer. 14 00:00:52,490 --> 00:00:57,550 Jadi, kita menggunakan fungsi atoi yang disebutkan p set spesifikasi untuk mengkonversi 15 00:00:57,550 --> 00:01:02,330 String argv 1 ke integer, dan kami menyimpan bahwa dalam kunci. 16 00:01:02,330 --> 00:01:06,050 Kami ingin memastikan bahwa integer yang dimasukkan tidak negatif. 17 00:01:06,050 --> 00:01:09,490 Dan jika itu, kita ingin mencetak bahwa untuk pengguna bahwa mereka tidak diperbolehkan 18 00:01:09,490 --> 00:01:11,980 untuk melakukan itu, dan kembali. 19 00:01:11,980 --> 00:01:15,100 >> Jadi, sekarang kita memiliki valid nomor dari pengguna. 20 00:01:15,100 --> 00:01:19,780 Tapi kita perlu untuk mendapatkan string dari pengguna yang ingin kita mengenkripsi. 21 00:01:19,780 --> 00:01:25,340 Jadi kita digunakan untuk melakukan-while loop dan menggunakan mendapatkan string untuk mendapatkan string ini dari 22 00:01:25,340 --> 00:01:29,190 pengguna, dan terus mendapatkan tali sampai mereka benar-benar 23 00:01:29,190 --> 00:01:31,270 masukkan string yang valid. 24 00:01:31,270 --> 00:01:34,400 >> Setelah kita memiliki string yang, kita dapat melanjutkan untuk mengenkripsi itu. 25 00:01:34,400 --> 00:01:38,120 Jadi, ini untuk loop adalah melakukan enkripsi. 26 00:01:38,120 --> 00:01:43,250 Perhatikan bahwa kita iterasi dari i sama dengan 0 t sepanjang jalan sampai ke i equals 27 00:01:43,250 --> 00:01:47,790 n, di mana n didefinisikan sebagai panjang pesan kami, di mana pesan adalah 28 00:01:47,790 --> 00:01:50,260 string yang dimasukkan pengguna. 29 00:01:50,260 --> 00:01:54,330 >> Jadi kita iterasi semua karakter dalam string. 30 00:01:54,330 --> 00:01:59,740 Dan jika sebuah karakter huruf besar, maka kita akan beralih menggunakan ini 31 00:01:59,740 --> 00:02:01,860 rumus, yang kita akan mendapatkan dalam satu detik. 32 00:02:01,860 --> 00:02:05,260 Dan jika itu huruf kecil, maka kita akan beralih menggunakan ini 33 00:02:05,260 --> 00:02:07,290 formula yang sangat mirip. 34 00:02:07,290 --> 00:02:10,850 Dan apakah itu bukan merupakan huruf besar atau huruf kecil - misalnya, 35 00:02:10,850 --> 00:02:15,370 bisa menjadi nomor atau simbol - maka kita tidak akan melakukan apa-apa untuk itu. 36 00:02:15,370 --> 00:02:18,220 >> Jadi, apa formula ini? 37 00:02:18,220 --> 00:02:22,090 Nah, bagaimana kita menggeser karakter A? 38 00:02:22,090 --> 00:02:27,250 Kami ingin memperlakukan karakter A sebagai nomor 0. 39 00:02:27,250 --> 00:02:30,710 Dan kami ingin memperlakukan karakter B sebagai nomor 1, dan seterusnya. 40 00:02:30,710 --> 00:02:35,170 Ini adalah zeroth dan karakter pertama alfabet dan sebagainya. 41 00:02:35,170 --> 00:02:42,900 >> Jadi di sini, pesan i dikurangi A seharusnya untuk memberi kita tempat numerik dari 42 00:02:42,900 --> 00:02:44,400 huruf dalam alfabet. 43 00:02:44,400 --> 00:02:48,080 Jadi jika pesan saya adalah A, ini akan memberi kita 0. 44 00:02:48,080 --> 00:02:52,880 Sekarang, kita ingin menambahkan ke yang nomor yang pengguna ingin 45 00:02:52,880 --> 00:02:54,840 memutar surat itu oleh. 46 00:02:54,840 --> 00:03:03,280 Jadi, jika mereka masuk 3, maka jika pesan saya adalah A, ini akan memberi kita 0 dan ditambah 47 00:03:03,280 --> 00:03:05,400 kunci akan memberi kita 3. 48 00:03:05,400 --> 00:03:09,450 >> Jadi sekarang, kita sedang mempertimbangkan tempat ketiga dalam alfabet. 49 00:03:09,450 --> 00:03:12,810 Kita akan melihat mengapa kita perlu mod dengan surat num dalam satu detik. 50 00:03:12,810 --> 00:03:18,700 Tapi akhirnya, kami ingin menambahkan ke mengakhiri A lagi untuk beralih kami kembali ke 51 00:03:18,700 --> 00:03:22,020 Nilai ASCII untuk karakter ini bukan tempat numerik dalam 52 00:03:22,020 --> 00:03:24,260 alfabet karakter ini. 53 00:03:24,260 --> 00:03:26,580 >> Jadi, mengapa kita mod oleh surat num? 54 00:03:26,580 --> 00:03:29,960 Ingat bahwa kita ingin membungkus dari akhir alfabet untuk 55 00:03:29,960 --> 00:03:31,470 awal alfabet. 56 00:03:31,470 --> 00:03:38,530 Jadi jika pengguna sudah masuk Z, maka mengurangkan A dari yang akan 57 00:03:38,530 --> 00:03:40,520 memberi kita 25. 58 00:03:40,520 --> 00:03:44,800 Dan jika kunci adalah 3, maka kita akan memiliki 28. 59 00:03:44,800 --> 00:03:53,000 Tapi Z harus membungkus sekitar untuk ABC, sehingga 28 surat num mod, yang hash didefinisikan 60 00:03:53,000 --> 00:04:01,890 sebagai 26 yang diharapkan, akan memberikan us 2, di mana C adalah huruf kedua 61 00:04:01,890 --> 00:04:05,880 alfabet, jika Anda ingat bahwa A adalah surat zeroth alfabet. 62 00:04:05,880 --> 00:04:09,210 >> Jadi itulah mengapa kita perlu mod dengan surat num. 63 00:04:09,210 --> 00:04:13,540 Sekarang, kita perlu melakukan hal yang persis sama untuk huruf kecil, kecuali 64 00:04:13,540 --> 00:04:17,240 ingat bahwa ketika kita sedang berhadapan dengan huruf kecil, mereka memiliki berbeda 65 00:04:17,240 --> 00:04:18,579 Nilai ASCII. 66 00:04:18,579 --> 00:04:24,550 Dan jadi kita perlu mengurangi dan menambahkan pada bergeser ke bawah dari huruf kecil yang 67 00:04:24,550 --> 00:04:30,020 Nilai ASCII dan kemudian kembali ke nilai-nilai ASCII huruf kecil asli. 68 00:04:30,020 --> 00:04:33,140 >> Dan akhirnya, yang akan memberi kita pesan terenkripsi kami. 69 00:04:33,140 --> 00:04:37,780 Dan pada akhirnya, kami hanya mencetak pesan itu, dan hanya itu. 70 00:04:37,780 --> 00:04:39,875 Nama saya Rob, dan Caesar. 71 00:04:39,875 --> 00:04:49,856