1 00:00:00,000 --> 00:00:00,490 2 00:00:00,490 --> 00:00:03,350 Выступающий 1: Давайте напишем программу с Графический интерфейс пользователя, что также 3 00:00:03,350 --> 00:00:04,580 включает в себя этикетку. 4 00:00:04,580 --> 00:00:07,940 И в этом лейбле, мы собираемся хранить число, хотя и в виде строки. 5 00:00:07,940 --> 00:00:10,880 И мы собираемся обновить эту метку снова, и снова, и снова. 6 00:00:10,880 --> 00:00:15,040 Так что мы в конечном итоге рассчитывать вниз от 50 до нуля. 7 00:00:15,040 --> 00:00:20,910 Glabel, назвав его лейбл, получает возвращать значение нового glabel. 8 00:00:20,910 --> 00:00:22,900 Теперь, я не собираюсь дать этому значение метки еще, так что я буду 9 00:00:22,900 --> 00:00:25,040 положить в цитатой, конец цитаты. 10 00:00:25,040 --> 00:00:29,080 >> Теперь давайте называть SetFont, проходя на этикетке, и перейдем в 11 00:00:29,080 --> 00:00:32,910 специально шрифт под названием SansSerif 36 очко. 12 00:00:32,910 --> 00:00:36,370 Шрифт, происходит существовать внутри CS50 прибора. 13 00:00:36,370 --> 00:00:41,940 Тогда, наконец, давайте добавим метку к окну следующим образом. 14 00:00:41,940 --> 00:00:44,580 Теперь, давайте перейдем к индукции цикл, который собирается рассчитывать 15 00:00:44,580 --> 00:00:46,400 от 50 до нуля. 16 00:00:46,400 --> 00:00:49,520 И в течение этого цикла, давайте многократно обновления метки и 17 00:00:49,520 --> 00:00:55,800 отображать его на экране, для, Int я получает 50, я больше, чем, или равно 18 00:00:55,800 --> 00:00:59,750 к нулю, я минус, минус. 19 00:00:59,750 --> 00:01:02,090 >> Теперь этикетки, оказывается, должны быть строками. 20 00:01:02,090 --> 00:01:04,110 Но я на самом деле рассчитывает, с помощью целых чисел. 21 00:01:04,110 --> 00:01:07,750 Так или иначе я буду иметь, чтобы преобразовать целое число, я, чтобы строка 22 00:01:07,750 --> 00:01:09,010 представление стрелка. 23 00:01:09,010 --> 00:01:12,480 Для этого объявим Чара с кронштейн три. 24 00:01:12,480 --> 00:01:15,500 Так что у нас есть достаточно места для хранения для двузначного числа, а затем 25 00:01:15,500 --> 00:01:16,910 нуль терминатор. 26 00:01:16,910 --> 00:01:22,480 Печать е прохождение Тогда давайте назовем с в с, передавая цитатой, 27 00:01:22,480 --> 00:01:24,220 конец цитаты процентов я. 28 00:01:24,220 --> 00:01:26,960 Указав, что мы действительно хотим Для форматирования целых чисел. 29 00:01:26,960 --> 00:01:29,420 Наконец передавая я себе. 30 00:01:29,420 --> 00:01:34,100 Другими словами, с печати F, или строки печать е, как и печати е, ожидает 31 00:01:34,100 --> 00:01:37,450 Формат строки следуют некоторых переменных подставить в том, что 32 00:01:37,450 --> 00:01:38,430 Формат строки. 33 00:01:38,430 --> 00:01:41,910 Но она также принимает его первый Аргумент, место, в котором вы 34 00:01:41,910 --> 00:01:44,400 хотели бы сохранить строку что вы представляли 35 00:01:44,400 --> 00:01:45,830 с этой строкой формата. 36 00:01:45,830 --> 00:01:52,540 >> Так что в следующий, давайте идти вперед и называть установить, этикетка, переходя в этикетке, переходя в с. 37 00:01:52,540 --> 00:01:56,430 Теперь, наконец, просто потому, что это метки ширина собирается меняться с течением времени, как 38 00:01:56,430 --> 00:02:00,640 мы отсчет от 50, до 49, до точки,, точка, точка, до девяти до восьми. 39 00:02:00,640 --> 00:02:03,170 Которые не так велик, как двузначное число есть. 40 00:02:03,170 --> 00:02:05,570 Перейдем выяснить динамически что ширина этого 41 00:02:05,570 --> 00:02:08,930 Этикетка должна быть и убедитесь, что это всегда по центру экрана. 42 00:02:08,930 --> 00:02:12,390 Я сначала собирается объявить дубль, назвав его х, и я тогда буду 43 00:02:12,390 --> 00:02:16,880 хранить внутри х, результат Get ширина, переходя в ширине 44 00:02:16,880 --> 00:02:22,120 все окно, минус получить ширину, переходя в этикетке. 45 00:02:22,120 --> 00:02:24,880 Тогда деления все это на два. 46 00:02:24,880 --> 00:02:29,660 Точно я собираюсь объявить у быть равной получить высоту в целом 47 00:02:29,660 --> 00:02:37,280 высота окна, минус Get просто этикетка и деления, что два, а также. 48 00:02:37,280 --> 00:02:40,680 Наконец, я собираюсь позвонить SetLocation, проходя на этикетке, 49 00:02:40,680 --> 00:02:43,180 проходя по х, переходя в у. 50 00:02:43,180 --> 00:02:45,970 Там, позиционируя маркировать при х запятой у. 51 00:02:45,970 --> 00:02:49,290 >> Наконец, так что этот отсчет не происходит слишком быстро давайте 52 00:02:49,290 --> 00:02:53,350 паузу, для скажем, 100 миллисекунд между каждое обновление этикетки. 53 00:02:53,350 --> 00:02:56,320 Чтобы сделать это, мы можем вызвать паузу Функция, который определен в 54 00:02:56,320 --> 00:03:00,390 Стэнфордский переносимая библиотека, довольно просто следующим образом. 55 00:03:00,390 --> 00:03:04,230 >> Теперь давайте сохраним, компиляции, и запустить эту программу. 56 00:03:04,230 --> 00:03:08,320 Сделать этикетки, точечные слэш, этикетку. 57 00:03:08,320 --> 00:03:11,000 Там мой пользовательский интерфейс обратный отсчет от 50. 58 00:03:11,000 --> 00:03:14,570 Обратный отсчет, и вниз, и вниз, и сделано. 59 00:03:14,570 --> 00:03:16,992