1 00:00:00,000 --> 00:00:00,490 2 00:00:00,490 --> 00:00:03,350 SPEAKER 1: Mari kita menulis program dengan antarmuka pengguna grafis yang juga 3 00:00:03,350 --> 00:00:04,580 termasuk label. 4 00:00:04,580 --> 00:00:07,940 Dan dalam label ini, kita akan menyimpan nomor, meskipun sebagai string. 5 00:00:07,940 --> 00:00:10,880 Dan kita akan memperbarui label yang lagi, dan lagi, dan lagi. 6 00:00:10,880 --> 00:00:15,040 Sehingga kita akhirnya menghitung turun dari 50 menjadi nol. 7 00:00:15,040 --> 00:00:20,910 Glabel, menyebutnya label, mendapatkan nilai glabel baru kembali. 8 00:00:20,910 --> 00:00:22,900 Sekarang, aku tidak akan memberikan ini nilai label belum, jadi saya akan 9 00:00:22,900 --> 00:00:25,040 dimasukkan ke dalam kutipan, tanda kutip. 10 00:00:25,040 --> 00:00:29,080 >> Selanjutnya mari kita sebut setfont, melewati dalam label, dan mari kita lulus dalam 11 00:00:29,080 --> 00:00:32,910 khusus font yang disebut SansSerif 36 poin. 12 00:00:32,910 --> 00:00:36,370 Sebuah font yang terjadi ada dalam alat CS50. 13 00:00:36,370 --> 00:00:41,940 Lalu akhirnya, mari kita tambahkan label ke jendela sebagai berikut. 14 00:00:41,940 --> 00:00:44,580 Sekarang, mari kita lanjutkan untuk menginduksi loop yang akan menghitung 15 00:00:44,580 --> 00:00:46,400 dari 50 turun ke nol. 16 00:00:46,400 --> 00:00:49,520 Dan dalam lingkaran itu, mari kita iteratif memperbarui label dan 17 00:00:49,520 --> 00:00:55,800 menampilkannya di layar, Untuk, int i mendapat 50, saya lebih besar dari atau sama 18 00:00:55,800 --> 00:00:59,750 ke nol, i dikurangi, dikurangi. 19 00:00:59,750 --> 00:01:02,090 >> Sekarang label, ternyata, harus string. 20 00:01:02,090 --> 00:01:04,110 Tapi aku benar-benar menghitung, menggunakan bilangan bulat. 21 00:01:04,110 --> 00:01:07,750 Jadi entah bagaimana aku akan harus mengkonversi integer, i, ke string 22 00:01:07,750 --> 00:01:09,010 representasi panah. 23 00:01:09,010 --> 00:01:12,480 Untuk melakukannya mari kita mendeklarasikan char s braket tiga. 24 00:01:12,480 --> 00:01:15,500 Sehingga kita memiliki ruang penyimpanan yang cukup untuk dua digit angka, diikuti oleh 25 00:01:15,500 --> 00:01:16,910 null terminator. 26 00:01:16,910 --> 00:01:22,480 Kemudian mari kita panggilan s print f passing di s, lewat di quote, 27 00:01:22,480 --> 00:01:24,220 persen tanda kutip i. 28 00:01:24,220 --> 00:01:26,960 Menunjukkan bahwa kita memang ingin untuk memformat integer. 29 00:01:26,960 --> 00:01:29,420 Akhirnya lewat di i itu sendiri. 30 00:01:29,420 --> 00:01:34,100 Dengan kata lain, s print f, atau tali print f, seperti print f, mengharapkan 31 00:01:34,100 --> 00:01:37,450 format string diikuti oleh beberapa variabel untuk mengganti ke dalam 32 00:01:37,450 --> 00:01:38,430 format string. 33 00:01:38,430 --> 00:01:41,910 Tetapi juga menerima adalah yang pertama argumen, lokasi di mana Anda 34 00:01:41,910 --> 00:01:44,400 ingin menyimpan string bahwa Anda telah diwakili 35 00:01:44,400 --> 00:01:45,830 dengan format string. 36 00:01:45,830 --> 00:01:52,540 >> Jadi berikutnya, mari kita pergi ke depan dan memanggil set, label, lewat di label, lewat di s. 37 00:01:52,540 --> 00:01:56,430 Sekarang, akhirnya, hanya karena label ini lebar akan berubah dari waktu ke waktu sebagai 38 00:01:56,430 --> 00:02:00,640 kita menghitung mundur dari 50, 49, dot, dot, dot, untuk 9-8. 39 00:02:00,640 --> 00:02:03,170 Yang tidak selebar nomor dua digit adalah. 40 00:02:03,170 --> 00:02:05,570 Mari kita lanjutkan untuk mencari tahu secara dinamis apa lebar ini 41 00:02:05,570 --> 00:02:08,930 label harus dan kemudian memastikan bahwa itu selalu berpusat pada layar. 42 00:02:08,930 --> 00:02:12,390 Saya pertama akan mendeklarasikan ganda, menyebutnya x, dan aku kemudian akan 43 00:02:12,390 --> 00:02:16,880 menyimpan dalam x, hasil dari get lebar, lewat di lebar 44 00:02:16,880 --> 00:02:22,120 seluruh jendela, dikurangi mendapatkan lebar, lewat di label. 45 00:02:22,120 --> 00:02:24,880 Kemudian membagi semuanya dengan dua. 46 00:02:24,880 --> 00:02:29,660 Demikian pula aku akan menyatakan y menjadi sama untuk mendapatkan ketinggian keseluruhan 47 00:02:29,660 --> 00:02:37,280 jendela, dikurangi mendapatkan ketinggian hanya label, dan membagi bahwa dengan dua juga. 48 00:02:37,280 --> 00:02:40,680 Akhirnya, aku akan memanggil setlocation, lewat di label, 49 00:02:40,680 --> 00:02:43,180 lewat di x, y lewat di. 50 00:02:43,180 --> 00:02:45,970 Ada dengan menempatkan label pada x koma y. 51 00:02:45,970 --> 00:02:49,290 >> Akhirnya, sehingga mundur ini tidak terjadi terlalu cepat mari kita 52 00:02:49,290 --> 00:02:53,350 jeda, untuk mengatakan, 100 milidetik antara setiap update dari label. 53 00:02:53,350 --> 00:02:56,320 Untuk melakukannya, kita dapat memanggil jeda fungsi, yang didefinisikan dalam 54 00:02:56,320 --> 00:03:00,390 Stanford perpustakaan portabel, cukup sederhana sebagai berikut. 55 00:03:00,390 --> 00:03:04,230 >> Sekarang mari kita simpan, kompilasi, dan menjalankan program ini. 56 00:03:04,230 --> 00:03:08,320 Membuat label, dot slash, label. 57 00:03:08,320 --> 00:03:11,000 Ada user interface saya menghitung mundur dari 50. 58 00:03:11,000 --> 00:03:14,570 Menghitung mundur, dan ke bawah, dan ke bawah, dan dilakukan. 59 00:03:14,570 --> 00:03:16,992