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.