SPEAKER 1: Ni skribos programon kun grafika uzantinterfaco ke ankaŭ inkluzivas etiketon. Kaj en ĉi etikedo, ni iras al stoki nombro, kvankam kiel linio. Kaj ni tuj aktualigi ke etiketon denove, kaj denove, kaj denove. Por ke ni finfine kalkuli malsupren de 50 al nulo. Glabel, nomante ĝin label, ricevas la redoni valoro de novaj glabel. Nun, mi ne tuj transdonos ĉi label valoro ankoraŭ, do mi meti en citaĵo, unquote. Sekva ni nomas setFont, pasante en la etiketo, kaj ni iam en specife tiparon nomata SansSerif 36 punkton. A tiparo kiu okazas ekzisti interne de la CS50 aparaton. Tiam fine, ni aldonos la etikedon al la fenestro kiel sekvas. Nun, ni procedi indukti buklo, ke tuj kalkuli el 50 suben al nulo. Kaj ene de tiu ciklo, ni ripete ĝisdatigi la etiketo kaj montri ĝin sur la ekrano, CXar int i gets 50, i estas pli granda ol aŭ egala al nulo, i minus, minus. Nun etiketo, rezultas, devas esti kordoj. Sed mi vere rakonti, uzante entjeroj. Do iel mi tuj devos konverti la entjero, i, al ĉeno reprezento sago. Por fari tion ni deklarus Char s krampo tri. Por ke ni havas sufiĉan stora por du cifera nombro, sekvata de nula finilo. Do ni alvoko s print f forpaso en s, pasante en citaĵo, unquote procento i. Indikante, ke ni ja volas formati entjero. Fine pasante en i mem. En aliaj vortoj, s print f, aŭ kordo print f, samkiel print f, atendas formato kordo sekvata de kelkaj variabloj anstataŭigi en tiun formato kordo. Sed gxi ankaux akceptas estas lia unua argumento, la situo en kiu vi volus gardi la kordo ke vi jam reprezentita kun tiu formato kordo. Do la sekvan, ni iru antaŭen kaj nomas enkadrigeblajn label, pasante en label, pasante en s. Nun, finfine, simple ĉar ĉi etiketoj larĝa tuj ŝanĝas super tempo nombru malsupren de 50, 49, al dot, streketo streketo naŭ ok. Kiuj ne estas tiel larĝa kiel du cifera nombro estas. Ni procedi elkompreni dinamike kio estas la larĝeco de tiu label devus esti kaj tiam certigi ke ĝi estas ĉiam centrita sur la ekrano. Mi unue tuj deklari duobla, nomante ĝin X, kaj mi tiam tuj stoki ene de x, la rezulto de Get larĝa, pasante en la larĝeco de la tutan fenestron, minus get larĝa, pasante en la etikedo. Tiam dividante la tutan aferon por du. Simile Mi tuj rakontos y al esti egala por akiri altecon de la tuta fenestro, minus get altecon de nur la label, kaj dividi ke per du tiel. Fine, mi tuj vokos setlocation, pasante en la etiketo, pasante en x, pasante en y. Tie por Metante la etikedi je x komo y. Fine, do, ke tiu rakontas malantaŭen ne okazi tro rapide ni paŭzi, por diri, 100 milisekundoj inter ĉiu ĝisdatigo de la etikedo. Por tion fari, ni povas nomi la paŭzo funkcio, tio difinita en la Stanford porteblan biblioteko, tute simple kiel sekvas. Nun ni savu, kompili, kaj kuri ĉi programo. Faru label, skalara oblikvo, etiketo. Estas mia uzantinterfaco rakonti malsupren de 50. Counting malsupren kaj malsupren, kaj malsupren, kaj farita.