ZAMYLA CHAN: Tas ir man, Zamyla. Šodien Mario, mēs ejam, lai būtu zīmēšanas pusi piramīdu Mario uzkāpt. So parunāsim par mūsu to-do ir par šo problēmu. Mēs ejam, lai vēlēties lai ātri un apstiprināt lietotājs par derīgu ieguldījumu, kā augstu viņi vēlas Mario piramīda būt. Un tad mēs ejam, lai pievērstu to. Tātad, pieņemsim sāktu ar pamudinot un apstiprināšanu lietotājam par viņu ieguldījumu. Mēs varam izmantot CS50 bibliotēka Function nokļūt int, kas nodrošinās, ka lietotājs ievada veselu skaitli. Jebkuras pozitīvi veseli skaitļi, negatīvs veseli skaitļi, skaits 0 visi ir godīga spēle. Pretējā gadījumā lietotājam tiks piedāvāts mēģiniet vēlreiz, kamēr tie ievadi derīgu skaitlim. Tagad gan get int dara daudz darba par mums lai nodrošinātu, ka lietotājs dod mums vesels skaitlis, mums vēl ir nepieciešams piemērot dažus papildu ierobežojumi, kas. Galu galā, mēs nevaram būt Mario kāpšana puse piramīda augstuma negatīva 12. Papildus tam, ka problēma specifikācija saka, ka mēs varam tikai ļauj Mario kāpt piramīda no augstuma starp 0 un 23. Labi, lai tas nozīmē, ka mums ir nepieciešams nepārtraukti nekavējoties lietotājam lai dotu mums derīgs numuru un tikai turpinās kad viņi devuši mums derīgu augstumu. Kā mēs to darām? Nu, nepārtraukti procesi dod mums ideja loops-- darīt kaut ko atkārtoti. Viena cilpa C kā brīdi cilpa, kas nepārtraukti izpildīt korpusu cilpa tik ilgi, kamēr dotais nosacījums novērtē patiess. Tiklīdz šis nosacījums novērtē to viltus, programma doties uz kāds nāk pēc tam. Tāpēc, kamēr cilpas ir viens no veidiem, kā nodrošinot, ka mēs nepārtraukti nekavējoties lietotājam par derīgu ieguldījumu. Un, kad tie dod mums derīgu ieguldījumu, mēs pāriet kāds nāk nākamo. Mēs zinām, ka mēs ejam lūgt lietotājs ievadei vismaz vienu reizi. Tāpēc tagad mēs nonākam pie māsa kamēr cilpa, kas ir darīt, kamēr cilpa. Darīt, kamēr cilpas veiks ķermenis no cilpas vismaz vienu reizi. Tātad bez pārbaudīt stāvokli, tā veiks ķermeņa cilpas. Un tad pārbaudīt stāvokli, lai redzētu vai tas ir nepieciešams atkārtot sevi. Tas nāk ērts, ja mēs apstiprināšanu lietotāja ievadi. Mēs zinām, ka mēs ejam uzdot viņiem vismaz vienu reizi. Tātad darīt, kamēr cilpa varētu izskatīties kaut kas līdzīgs šim. Mums ir vesels skaitlis n. Un iekšpusē do kamēr cilpa, mēs uzreiz nekavējoties lietotājam par veselam skaitlim. Ja n ir nederīgs, tad mēs ātri viņiem atkal un atkal un atkal, līdz tie dod mums, kas ir spēkā skaitlim. Visbeidzot, kad n ir derīga ieejas, mēs doties uz pārējo mūsu programmā. So iesim atpakaļ uz spec un pārbaude kādi nosacījumi ir derīga ieejas būs. Derīgi augstumi gatavojas būt starp 0 un 23, ieskaitot. Tātad nederīgs augstumi gatavojas būt mazāks par 0 vai vairāk nekā 23. Tāpēc atcerieties, lai izstrādātu Jūsu stāvoklis uzmanīgi, zinot, ka ar nosacījumu do kamēr cilpa vajadzētu būt, bet n ir nederīgs. Tagad tas nav būs vienkāršs viena Būla izteiksme. Mums nāksies apvienot divi dažādi izteicieni lai visu mūsu stāvokli. Tātad pieņemsim tikai apskatīt patiesības galda es esmu jau devis jums mājienu, ka mēs esam būs darīšana ar divām Booleans. Tātad, šeit ir patiesība galda, kur es ir divas Booleans-- Būla 1 un 2. Tātad mums ir iespēja novērtēt bool1 un bool2 vai bool1 vai bool2. Un tikai tad būs taisnība, ja abas Booleans novērtēt patiess, bet visi vai būs true tik ilgi, kamēr viens no divi Booleans novērtē patiess. Labi, tāpēc veltiet laiku, pauzes šis video un sagremot šo patiesību tabulu. Es būšu šeit gaida. Kad tu atgriezīsies, skatiet ja jūs varat gabals kopā Būla izteiksme, lai jūsu stāvoklis n nederīgs ieejas. Tāpēc tagad, ka mums ir derīgs lietotāja ievadi, pieņemsim iet uz priekšu un runāt par to, kā mēs varētu izdarīt pusi piramīdu. Šeit, šajā vienkāršu teksta redaktoru, Esmu novilkta kreisās jāsaskaņo piramīdu. Bet mēs zinām, ka mums ir nepieciešams mūsu piramīda, kas labi jāsaskaņo. Tātad, kā es varētu darīt? Nu, es varētu mēģināt virzīt viss uz sāniem , tikai liekot nedaudz raksturs starp. Un tad, lai nākamais line, es esmu gatavojas nodot dažas vairāk rakstzīmes push to kopā, un further-- tā tālāk un tā forth-- kamēr es ir tiesības jāsaskaņo piramīdu. Tātad mums ir tiesības līdzināšanas piramīdas, bet tas neizskatās tik liels ar punktiņiem. Bet mēs joprojām vēlaties apgalvo, ka skaistu atstarpi. Tāpēc es esmu gatavojas burtiski ievietot dažas telpas. Tā vietā, trīs punkti, es ņemšu likts viens, divi, trīs telpas. Otrajā rindā. Es nolikšu vienu, divas telpas. Un priekšpēdējā line, tikai viena telpa. Un šeit man ir tiesības jāsaskaņo piramīdu. No darot piemēru tekstā redaktors, mums ir ideja par modeli ka mēs izmantosim, lai pievērstu pusi piramīdu. Par katru pēc kārtas, ko mēs darījām ir mums tips dažas telpas, un tad drukāti daži hashes, un tad drukāti Enter taustiņu, kas rada jaunu līniju. Tāpēc tagad, ka mums ir, ka, iesim vienu soli tālāk un atrast modeli. Tāpēc es esmu gatavojas teikt, lai interese par šo piemēru, mums ir darīšana ar augstumu 8. Pirmajā rindā nāksies divi hashes Tas izriet septiņas vietas. Par second-- Trīs hashes, sešas atstarpēm. Trešās row-- četri hashes, pieci spaces-- tā tālāk, un tā tālāk kamēr mēs ar n-rindu. Tātad, es lūdzu jūs par n-kārtas, cik hashes mēs nāksies un cik daudz vietas? Tātad, tas ir atkarīgs no jums, lai noskaidrotu formula pārstāvēt cik hashes un cik daudz vietas ir nepieciešami n-rinda, ja jums ir kāda augstumu. Tagad, kad jūs norādītas šo out, jābūt uzmanīgiem, kā jūs indeksēšanu. Ko es domāju ar šo ir tas, ka ikdienā mums visiem sākt skaitīšanas, parasti 1. Bet CS50 un datorzinātnē vispār, mēs esam 0 indeksēti. Tātad pirmais rindā būtu n 0, nevis 1. Esiet uzmanīgi ar šo, kad jūs esat mēģina izdomāt savu modeli. Tāpēc tagad iesim atpakaļ uz to, kā mēs ejam, lai pievērstu mūsu piramīdu. Par katru pēc kārtas, mēs esam gatavojas vēlaties drukāt atstarpes, drukāt hashes, un pēc tam izdrukāt jaunu līniju. Mājienu šeit ir Vārds "par" katru rindu. In C, mums ir būvēt sauc par cilpu, kurš sastāv no amonija nitrāta inicializācijas, nosacījums, atjaunināšana, un ķermeņa cilpas. Teikt, es gribēju teikt, sveiki pasaule, 50 reizes, mani uz cilpas varētu izskatīties kaut kas līdzīgs šim. Es sāktu manu skaitli līdz 0. Nosacījums ir tāds, ka es, ir mazāks nekā 50. Un tad mans atjauninājums ir tikai palielināšanai I pa vienam katru reizi. Mēs varam arī izmantot cilpas atkārtot pār lietām. Ievērojiet šeit, kā mums nav grūti kodēta numuru, bet ievietots mainīgo augstums vietā uz stāvoklī. Tātad, ko es daru šeit es esmu atkārtojot pār katru rindu piramīdas. Es varu darīt kaut ko par katru rinda ķermeņa iekšpusē manu cilpu. Ko mēs darām iekšienē ķermenis cilpa? Nu, kā mēs jau teicu, mēs esam drukāšanas atstarpes un mēs drukāšanas hashes un mēs drukāšanu jaunu līniju. Tāpēc mans ārējais cilpas izskatās šādi. Es atkārtot pār katru rindu piramīdas, izmantojot, Šajā gadījumā, augstums kā mainīgā kas saglabā augstumu piramīdas. Ķermeņa iekšpusē šīs cilpas, es esmu gatavojas drukāt telpas atkārtoti, print hashes atkārtoti, un pēc tam izdrukāt jaunu līniju. Tāpēc tagad, izmantojot visas koncepcijas, kas Es esmu runājis par šo arkveida, Jums vajadzētu būt iespējai, lai ātri lietotāja ievadi, apstiprināt, ka ievadi, un pēc tam izdarīt pusi piramīdu. Mans vārds ir Zamyla, un tas ir CS50.