1
00:00:00,000 --> 00:00:00,490

2
00:00:00,490 --> 00:00:03,350
LUIDSPREKER 1: Laten we een programma schrijven met
een grafische user interface die ook

3
00:00:03,350 --> 00:00:04,580
omvat label.

4
00:00:04,580 --> 00:00:07,940
En in dit label, gaan we slaan
aantal, zij het als een string.

5
00:00:07,940 --> 00:00:10,880
En we gaan dat label te werken
opnieuw, en opnieuw, en opnieuw.

6
00:00:10,880 --> 00:00:15,040
Zodat we uiteindelijk tellen
onderaan van 50 tot nul.

7
00:00:15,040 --> 00:00:20,910
Glabel, noemde het label, krijgt de
waarde van de nieuwe glabel terugkeren.

8
00:00:20,910 --> 00:00:22,900
Nu, ik ben niet van plan om dit te geven
etiket waarde nog niet, dus ik zal

9
00:00:22,900 --> 00:00:25,040
zetten in citaat, unquote.

10
00:00:25,040 --> 00:00:29,080
>> Volgende laten we noemen setFont, passeren
in het label, en laten we passeren in

11
00:00:29,080 --> 00:00:32,910
specifiek een lettertype genaamd
SansSerif 36 punt.

12
00:00:32,910 --> 00:00:36,370
Een lettertype dat gebeurt te bestaan
binnen de CS50 apparaat.

13
00:00:36,370 --> 00:00:41,940
Dan eindelijk, nog de toevoeging dat het etiket
het raam als volgt.

14
00:00:41,940 --> 00:00:44,580
Nu, laten we overgaan tot het induceren van een
lus die gaat tellen

15
00:00:44,580 --> 00:00:46,400
van 50 tot nul.

16
00:00:46,400 --> 00:00:49,520
En binnen die lus, laten we iteratief
bijwerken van de label en

17
00:00:49,520 --> 00:00:55,800
weer te geven op het scherm, voor, int i
50 krijgt, i groter dan of gelijk

18
00:00:55,800 --> 00:00:59,750
naar nul, ik min, min.

19
00:00:59,750 --> 00:01:02,090
>> Nu labels, zo blijkt,
moet strings.

20
00:01:02,090 --> 00:01:04,110
Maar ik ben eigenlijk te tellen,
met getallen.

21
00:01:04,110 --> 00:01:07,750
Dus een of andere manier ga ik hebben om te zetten
de integer, i een tekenreeks

22
00:01:07,750 --> 00:01:09,010
vertegenwoordiging pijl.

23
00:01:09,010 --> 00:01:12,480
Om dit te doen laten verklaren
char s beugel drie.

24
00:01:12,480 --> 00:01:15,500
Zodat we voldoende opslagruimte
twee cijfers, gevolgd door een

25
00:01:15,500 --> 00:01:16,910
null terminator.

26
00:01:16,910 --> 00:01:22,480
Dan laten gesprek s afdrukken f passeren
in s, passeren in citaat,

27
00:01:22,480 --> 00:01:24,220
unquote procent i.

28
00:01:24,220 --> 00:01:26,960
Wat aangeeft dat we inderdaad willen
om een ​​geheel getal te formatteren.

29
00:01:26,960 --> 00:01:29,420
Tenslotte passeren i zelf.

30
00:01:29,420 --> 00:01:34,100
Met andere woorden, s afdrukken f of koord
prent f, net zoals print f, verwacht een

31
00:01:34,100 --> 00:01:37,450
format string gevolgd door een aantal variabelen
te vervangen in die

32
00:01:37,450 --> 00:01:38,430
format string.

33
00:01:38,430 --> 00:01:41,910
Maar het accepteert ook is zijn eerste
argument, de locatie waar u

34
00:01:41,910 --> 00:01:44,400
wil de string op te slaan
dat u vertegenwoordigd

35
00:01:44,400 --> 00:01:45,830
met dat format string.

36
00:01:45,830 --> 00:01:52,540
>> Dus de volgende, laten we verder gaan en roepen ingesteld,
label, passeren in label, passeren in s.

37
00:01:52,540 --> 00:01:56,430
Nu, eindelijk, gewoon omdat deze labels
breedte gaat veranderen in de tijd als

38
00:01:56,430 --> 00:02:00,640
we aftellen van 50, naar 49, dot,
dot, dot, naar 9-8.

39
00:02:00,640 --> 00:02:03,170
Die niet zo breed als
een twee-cijferig getal is.

40
00:02:03,170 --> 00:02:05,570
Laten we eens gaan uitzoeken dynamisch
wat de breedte van de

41
00:02:05,570 --> 00:02:08,930
etiket moet zijn en dan zorgen dat
het is altijd gecentreerd op het scherm.

42
00:02:08,930 --> 00:02:12,390
Ik ga eerst naar een dubbele verklaren,
noemde het x, en ik vervolgens naar

43
00:02:12,390 --> 00:02:16,880
opslaat in x, het resultaat van get
breedte aan, waarbij de breedte van de

44
00:02:16,880 --> 00:02:22,120
hele venster, minus krijgen breedte,
passeren in de label.

45
00:02:22,120 --> 00:02:24,880
Vervolgens te delen het hele ding door twee.

46
00:02:24,880 --> 00:02:29,660
Zo ook ik ga verklaren y te zijn
gelijk aan de hoogte van de gehele krijgen

47
00:02:29,660 --> 00:02:37,280
venster, minus get hoogte van slechts de
label, en delen die door twee ook.

48
00:02:37,280 --> 00:02:40,680
Tot slot ga ik setlocation noemen,
passeren in het etiket

49
00:02:40,680 --> 00:02:43,180
passeren in x, passeren in y.

50
00:02:43,180 --> 00:02:45,970
Het door het zo
etiketteren x komma y.

51
00:02:45,970 --> 00:02:49,290
>> Tenslotte, zodat deze niet countdown
te snel laten gebeuren

52
00:02:49,290 --> 00:02:53,350
pauzeren, voor zeg, 100 milliseconden tussen
elke update van het label.

53
00:02:53,350 --> 00:02:56,320
Om dit te doen, kunnen we de pauze noemen
functie, die is gedefinieerd in de

54
00:02:56,320 --> 00:03:00,390
Stanford draagbare bibliotheek,
simpelweg als volgt.

55
00:03:00,390 --> 00:03:04,230
>> Laten we nu eens redden, compileren,
en uitvoeren van deze programma.

56
00:03:04,230 --> 00:03:08,320
Maak label, dot slash, label.

57
00:03:08,320 --> 00:03:11,000
Daar is mijn user interface
aftellen van 50.

58
00:03:11,000 --> 00:03:14,570
Aftellen, en naar beneden,
en neer, en gedaan.

59
00:03:14,570 --> 00:03:16,992