>> ZAMYLA Chan: Estu la salto en Mario.
Mario estas programo kie ni fari nian propran, kvankam primitiva, versio de
klasika Super Mario Brothers ludo fono.
Por ĉi tiu problemo aro, ni iras amuzi la duono-piramido por
Mario salti plu.
Nia programo estos interaga, do demandos la uzanton al eniro certa
alteco por la piramido.
Kaj la programo presos ekster duon-piramido de tiu alteco, kie la
malsupro maldekstra hash vicigas kun la fundo maldekstra angulo de la fina stacio
eligo fenestro.
>> Ni rompi tiun problemon en du partojn, unu, get Uzanta enigo, kaj du,
elprinti la piramido.
Memoru, ke kvankam la GetInt funkcio estos elsxuti entjero, vi
devas certigi ke tiu enigo faras senson por via programo, do en
Mario, ĝi ne faros nur produkto por entjero.
Vi bezonos por certigi ke la uzanto enigoj entjero kiu estas ene de la
suba kaj supra limojn de la piramido, ke vi povas presi.
Per ĉi tiu specifo, ĉi tiu estas 0 kaj 23 inkluziva.
Se la uzanto enigas entjero ekstere de nia akceptita baroj, tiam ni volas
instigi ilin denove kaj denove ĝis Ili donu al ni valida entjero.
>> Unu maniero certigi korekta Uzanta enigo estas uzante Do-Dum buklo, kiu estas
tre simila al Dum buklo.
La Do-Dum buklo ekzekutas la kodo interne de la korpo fojon, kaj tiam kontrolas
ĉu la kondiĉo estas konis aŭ ne.
Ĉi tio estas utila por akiri Uzanta enigo ĉar vi scias, ke vi bezonas
instigi ilin almenaŭ unufoje.
Se la kondiĉo ne konis, la programo faros la linion post
via Do-Dum buklo.
Se la kondiĉo estas konita, kvankam, la ciklo ripetos.
>> Al Do-Dum buklo por validigi uzanto enigo aspektos iu kiel ĉi tio.
Mi deklaras variablon n, GetInt, kaj ripeti gxis n estas valida.
Memoru ke kiam vi deklaras vian variablo, ĝi bezonas la taŭgajn
medion, samkiel en Scratch.
Se mi deklarus n ene mia Do-Dum buklo, la resto de la programo ne estos
povis konsenti ĝin.
Ĝi estas limigita al la randoj de la krispa krampoj.
>> Bone, do nun kiam ni validigita la uzanto enigo, ni vere bezonas
desegni ĉi duon-piramido.
Ĝi estas formita de presitaj signoj, do ni faru duon-piramido en simpla
tekstoredaktilo.
Se ni volas fari Mario stilo piramido de alteco tri kiu estas vicigitaj
sur la maldekstra flanko de nia fenestro, tiam ni volas tajpi du hashes, klaku Enter,
tiam tajpi tri hashes, klaku Enter, kaj poste tajpi kvar.
>> Sed en ĉi tiu problemo aro, nia duone piramido devas esti ĝuste vicigitaj.
Uzanta norma klavaro, kiom eble vi modifas ĉi tiun dosieron por movi hashes
super la dekstra flanko?
Mi povus uzi por substrekoj, du en la supera linio kaj unu en la dua.
Tio ne aspektas kiel agrabla, kvankam, do ni anstataŭas la substrekoj kun
spacoj, kaj tie ni havas duon-piramido de alteco tri.
>> Provu kaj memoru tiun tekstoredaktilo Ekzemple kiel vi komencas pensi reen al
C. Ni provu kaj eltrovi iun speco de ŝablono, ke ni povas
meti en buklo konstruo.
Prenu ekzemple alteco, diru ok, kaj vidu se vi povas komenci
supreniru kun ŝablono.
La unua vico havos sep spacoj sekvata de du hashes.
La dua vico havos ses spacoj kaj tri hashes, kaj tiel plu ĝis la
oka vico.
>> Sed kiel vi reprezentus la n-a vico?
Memoru ke programado konvencio estas nulo indeksita.
Tio signifas ke vi komencas rakonti al nulo, do la unua vico estas teknike
vico nombro nulo kun du lukoj, vico numero unu havas tri hashes, vico
numero du havas kvar hashes, do sekvaj ĉi ŝablono por ĉiu vico
nombro n, ekzistas n plus 2 hashes.
Mi lasos ĝin al vi, kvankam, trovi el la desegnon por la spacoj.
Memoru ke via ŝablono estos iomete malsama se vi elektos
komenci vian grafo de unu kaj ne nulo.
>> Nun, vi havas bildon por iu abstrakta vico n.
Vi scias kiom da spacoj por presi kaj kiom da hashes, do por ĉiu vico, ke
numeron ŝanĝos.
Sed la sama procezo de presado oni sola karaktero, ĉu spaco aŭ
hash, ripetas.
Do ĉiuj devas fari estas ree presi tiun karakteron por tiom da fojoj
kiel via mastro determinas.
>> Nu do kiel ni ripetu procezoj?
En Scratch, ni uzis la ripeto bloko.
En C, ni uzas Por buklo.
Ni rigardu la sintakso por Ĉar maŝojn.
>> Ĉiu Por buklo estas formita de tri partoj, inicialización, kondiĉo,
kaj ĝisdatigo.
Via Por buklo estos pravalorizi variablo kiam ĝin unue
eniras la Por iteracio.
Se la kondiĉo estas konita, la korpo de la buklo faros.
Poste, la ĝisdatigo faros.
>> Se la kondiĉo estas ankoraŭ renkontis, la buklo ekzekutos kaj ĝisdatigi kaj
ripeti tiel longe kiel via kondiĉo taksas al True.
Vi estas kondiĉo devas eventuale valuate al falsa, kvankam, ĉar
kontraste Scratch, ni ne havas neniun Forever maŝojn.
Via programo devas finiĝi fine.
>> Jen ekzemplo de Ĉar buklo kiun vi eble deziras uzi por Mario.
La inicialización deklaras entjero i kun valoro 0.
Tiel longe kiel i estas malpli ol la alteco, la korpon de la buklo ekzekutos kaj
pliigi i per unu kaj ripeti ĝis mi estas pli granda ol aŭ
egala al la alto.
>> Nun, mia Por buklo estas nulo indekso.
La Mez i komencas je nulo, ne unu.
Se mi elektis unu, tiam mia kondiĉo farus ankaŭ esti malsamaj por
la buklo de ekzekuti la sama nombro da fojoj.
Memoru tion atente kiam vi estas elekti vian inicialización kaj via
kondiĉo, kaj konsultas tiun streki duobligi ĉeko.
>> Unu el la grandaj aĵoj pri komputilo scienco estas ke tie estas nur tiom da
manieroj por ekzekuti aĵoj.
Vi povas elekti, ĉu vi komenci ĉe nulo aŭ unu.
Se vi ne volas uzi Por buklo, vi ankaŭ povas uzi Dum buklo al
ripeti deklaroj tiel longe kiel vi observos la esenco de Ĉar buklo,
inicialización, kondiĉo, kaj ĝisdatigon.
Iam ni elkompreni la Por buklo kiun ni estas plej komforta kun, tiam ni
povas kompletigi Mario.
>> Ni unue kontrolis por uzanto enigo kaj poste identigis
ŝablono por ĉiu vico n.
Do por ĉiu vico de nulo al n minus 1 presos la taŭga nombro da
spacoj, tiam la taŭga nombro da hashes laŭ nia mastro, kaj
tiam nova linio.
Kun tiu, vi havas vian piramido.
Mia nomo estas Zamyla, kaj tio estis por Mario.