SPEAKER 1: Supozu nun ke mi volis doni Scratch la kapablo terni tiel. Nu, mia unua instinkto volis esti, kiel antaŭe, fari bloko, nomas tiun ternon. Indiku ke mi ŝatus specifi kun numero kiomfoje Nulo devus terni. Poste klaki okej. Lasu min movi ĉi super dekstren doni al mi iom pli ĉambro. Kaj tiam mi denove iros al Ripetu, supera la defaŭlta 10 kun n. Permesu al mi iri al la diru komunikaĵo kaj ne diru "saluton", sed "Achoo" por unu sekundo. Tiam prenu momenta paŭzo. Kaj tio estas ĝi. Nun mi havas bloko nomita ternon, tiel kiel bloko nomita tuso. Por ke nun se mi volas Scratch tusadi kaj ternon, mi povas simple entajpi terni sub sia tuso. Tri fojojn, diru. Alklaku la verdan flagon, kaj mi devus vidos ja, tuso, tuso, tuso. Sekvate de achoo, achoo, achoo. Mia plej realisma ternas al dato. Nun rimarkos iun kiu estas malbona pri tiu dezajno. Kvankam mi ne kategorie duplikatajn neniu puzlo pecojn, mi definitive trenis kaj faligis belan la samo puzlo pecoj, donante la funkcio ĉiam tiel iomete malsaman nomon, ol la alia, ternon kontre tuso. Do tio estas ŝanco por faktorigo el kelkaj komunaj kodo. Ja, rimarki la sola diferenco inter tuso kaj terno estas tiu havas Scratch diro "tuso," la aliaj pri kiu dirante "achoo." Do ni ne povis iel ĝeneraligi ĉi kodo en tia maniero, ke ni simple specifi kiu vorto ni volas grati resti? Kaj depende de tiu vorto, ĝi volas efektive estus tuson aŭ tio estos ternon. Do ni iru antaŭen kaj fari tion. Ni faras trian funkcion kaj invitas ĉi tiu, "diras." kaj mi volas, ke ĝi akcepti, ne nur numeron, sed tiu tempo ŝnureto, alie konata kiel vorto aŭ frazon. Kaj ni vokos tiu "vorto". Kaj kion mi volas diri? Kaj kiom da fojoj mi volas diri tiun vorton? Bone ni specifi numeron, nomante ĝin denove n. Kaj ĝuste por fari ĉi tiu bloko pli legebla, lasu min antaŭeniri kaj aldoni label nomata "foje." Por ke, kiam vi legu ĉi bloko de maldekstre al dekstre, ĝi laŭvorte diras "diri vorton n fojoj." Nun lasu min iri antaŭen kaj alklaku OK. Kaj nun mi povas apliki ĉi bloko, denove uzante ripeto bloko. Specifante ke mi volas ĝin ripeti n fojojn. Specifante ke mi volas diri io por unu sekundo. Sed anstataŭ io malmola coded en ĉi tiun funkcion, ni anstataŭ trenu kaj faligi la vorto, kiu estas estis pasita in Ni do atendas por unu sekundo. Kaj nun ni iru reen kaj plibonigi mian realigoj de ternon kaj tuso, por ke ili nomas tiun funkcii laŭvice. Do ni forĵetu tiun kodon. Ni forĵetu tiun kodon. Ni iru al mia kutimo bloko kaj trenu en "diri". Kaj tajpu en la argumento de "tusi" trifoje. Kaj ĉi tie ni trenas en "diri", "Achoo" trifoje. Do nun lasu min iri reen kaj fajnigi mia realigoj de tuso kaj terno, en tia maniero, ke tiuj du funkcioj nomas tiun trian funkcion, tiamaniere ŝparajn la kvanto de duobligi kodo. Do ni laŭvorte ĵeti tiun kodon for. Ni ĵetu kodo for. Kaj ĉi tiu tempo, ni simple specifas ke tuso devus esti realigita per dirante "tusi" iu nombro n de epokoj. Kaj simile, ni povas reiri kaj re-apliki ternon por ke gxi uzas diri kun argumento de "achoo" n fojojn. Do, kion ni faris? Ni rekonas la kodo kiu estis komuna al ambaŭ niaj tuso kaj nia terni funkcioj, faktorita gxi eliris en nova tria funkcio, kaj poste reskribita tuso kaj terni en tiaj vojo, kiun ili nomas tiun tria kaj nova funkcio. Nun ni absolute faris tiun tutan programo pli komplika ol ĝi vere bezonas esti. Post ĉio, je la fino de la tago, ni nur bezonas Scratch tusadi tri fojojn kaj terni trifoje. Kaj ni povus fari, ke kun nur kelkaj puzlo pecojn. Sed kiel niaj programoj akiri multe pli komplika, kaj niaj programoj pli kompleksa, tiu tekniko de faktoranta el komuna kodo, aŭ hierarkia malkomponanta via programo en pli malgrandajn funkcio, ĉiu el kiuj voki aliajn funkciojn, estas tre konvinka tekniko. Pro tio certigos ke via kodo, gxuste kiel gxi ricevas pli kompleksa, restaĵoj facile ĝisdatigi kaj ankaŭ tre legebla. Ja, konsideri la fina rezulto. Kiam la verda flago estas klakis, tuso trifoje, terni trifoje. Kaj tio estas ĝi. Fakte, ni faros ekzakte tion. Alklaku la verdan flagon kaj ni preni unu tusi, du coughs, tri coughs. Sekvate de, ni esperas, unufoje terni, du ternas, kaj tria terno. Esperas ke li ricevas bonan frue.