ZAMYLA CHAN: Tas ir-me, Zamyla.
Šodien, mēs ejam, lai īstenotu Mario, kur mēs vēršam Mario
pilna piramīda viņam lēkt pāri.
Pieņemsim nojauktu apakšprogrammas uzdevumi šo problēmu.
>> Pirmkārt, mēs vēlamies, lai nekavējoties lietotājam augstumam piramīdas.
Un tad mēs gribam, lai pārliecinātos, ka ka tas ievade ir derīgs.
Un tad mēs ejam vēlas vērst piramīdu.
>> So parunāsim par pamudinot un apstiprinot lietotāja ievadi.
Tas varētu izskatīties kaut kas līdzīgs tas, do-kamēr cilpa, kas
liek lietotājam par vesels un tad tikai atkārtojas
ja tas skaitlis ir nederīgs.
Tātad, ko šis nosacījums būtu?
>> Lai to izdarītu, iesim atpakaļ specifikācijai.
Nu, spec stāsta mums, ka jebkurš derīgs augstums būs no 0 līdz 23,
ieskaitot.
Tātad tas nozīmē, ka jebkurš nederīgs augstums būs mazāks par 0
vai vairāk nekā 23.
>> Tāpēc tagad, ka mums ir šī informācija, pieņemsim dizains mūsu stāvokli.
Bet mums ir jābūt uzmanīgiem, jo tagad mums ir
divas Booleans ka mēs vēlamies, lai novērtētu.
>> Šeit es esmu nodrošināts tevi ar patiesību galda.
Tas ļauj mums veikt divas Booleans, Būla viens un divi.
Un mēs varam novērtēt vai nu bool1 un bool2 vai bool1 vai bool2.
>> Tātad, kāda ir atšķirība starp un un vai?
Nu, bool1 un bool2 būs izvērtēt patiess tad un tikai
ja abi Booleans ir taisnība, tā kā darbības vai
būs taisnība, ja nu kāds no tad Booleans vai abi ir patiesi.
Tātad ar šo prātā, redzēt, ja jūs varat izdomāt
kāds piemērots nosacījums Jūsu do-kamēr cilpa par nederīgu n
būs.
>> Ar to, ka mēs esam pamudināja un apstiprināti lietotājs augstuma piramīdas
ka viņi vēlas.
Tāpēc tagad, tas ir atkarīgs no mums lai pievērstu piramīdu.
Pilns piramīda šim Problēma izskatīsies mazliet
kā šis, kur mums ir kreiso piramīdas, daži sprauga, un pēc tam pa labi piramīdas.
Tātad, pieņemsim lauzt šo leju mazliet.
>> Ja es iet uz manu teksta redaktoru, šeit es esmu sastādīts mums pa kreisi līdzināts piramīdu.
Bet tas nebūs jādara.
Ko mēs vēlamies darīt, ir mēs vēlamies izveidot pareizo saskaņots piramīdu pirmās.
Tātad, lai to izdarītu, vienkārši push mans hashes gar sāniem,
Es esmu tikai gatavojas īstenot dažas rakstzīmes starp, tikai šiem punktiem.
Tad es esmu gatavojas īstenot divi par nākamais līnija, un viens uz šīs līnijas.
Un tāpēc šeit man ir labo jāsaskaņo piramīdu.
>> Pēc tam, es esmu gatavojas doties atpakaļ uz augšējā rindā
un nodot plaisu, kas ir, par spec, divām telpām.
Tad es esmu gatavojas aizpildīt otra puse no piramīdas.
Es iešu uz otro rindu, rakstiet divas telpas plaisa un tad divas
hashes.
Atpakaļ uz trešās kārtas, divas atstarpes par plaisu un trīs hashes.
Un beigās, divas telpas par plaisu un četri hashes.
Tātad, tas ko pilna piramīda izskatīsies.
>> Protams, mēs negribam šie punkti ceļā.
Tātad mēs ejam, lai aizstātu tos punkti, ievietojot dažas atstarpes.
Viens, divi, trīs pirmajā līnijā.
Viens, divi uz otro.
Un viens trešajā rindā.
Tātad tas ir tas, ko mēs varētu darīt, ja mēs gribēja tikai veikt pilnu piramīdas,
teikt, mūsu teksta redaktoru.
>> Tātad pieņemsim šo, izprast modeļus,
un pārvērst to pa kādu pseudocode.
Katrai rindu piramīdas, mēs gribam izdrukāt kreisi piramīdu un tad
plaisa un tad tiesības piramīda.
Par kreisās piramīdas, mēs drukāt nepieciešamais daudzums telpās,
kam seko hashes.
Tad mēs drukāt plaisu, kas ir tikai divas vietas katru reizi.
Un īstajā piramīdas, mēs drukāt vajadzīgo skaitu hashes.
>> Attiecībā uz otro rindu, veicām tāds pats precīzs process.
Mēs drukāt atstarpes, lai pa kreisi piramīda, nepieciešamais daudzums
no hashes, plaisa, divas telpas, un tad hashes par labo piramīdas.
>> Pieņemsim risināt modeli kreisajam piramīdas.
Ja man būtu, mērķiem no šajā piemērā, augstums
no astoņiem līdz pieprasīto lietotājs, tad mana pirmā rinda
būtu viena hash un septiņas vietas.
Mans otrais rindā būtu divi hashes, sešas atstarpēm.
Trešajā rindā, trīs hashes, piecas telpas.
Jūs varat droši izdarīt pats par kuru augstums ir astoņi
un noteikt, katrā rindā cik hashes un cik daudz vietas jums ir nepieciešams.
Bet ko mēs vēlamies darīt, ir mēs gribam abstrakts tā.
Tāpēc es aicinu jūs uz jebkuru n rindas, cik daudz hashes un cik daudz vietas mums vajag?
>> Tagad, kā jūs noteikt modelis uz cik hashes
un cik daudz vietas jums ir nepieciešams, lai jebkurš n rindu konkrētā augstumā,
atcerieties jābūt uzmanīgiem par to, kā jūs indeksēšanu.
Ko es domāju ar šo ir tas, ka ikdienā dzīve lielākā daļa no mums sākt skaitīšanas pa vienam.
Tātad pirmais rindā būs numur viens.
Un otrajā rindā būs rinda numurs divi, tā tālāk un tā tālāk.
>> Bet datorzinātnē un CS50, mēs nulles indeksētas.
Tātad mēs faktiski sākt skaitīt no nulles.
Tātad pirmais rindā būtu būt rindas numurs nulle.
Un otrajā rindā būtu rinda numur viens.
Tātad, ja man bija augstumu astoņi par mans piramīdas, pēc tam pēdējo n vērtība
faktiski nebūtu septiņi un nav astoņi.
>> Tāpēc jābūt uzmanīgiem par to.
Un jāapzinās, ja jūs nosakot Jūsu raksts vai jūsu nulles indeksētas
vai vienu indeksētas
>> LABI.
Tāpēc tagad, ka mums ir modelis kreisajā piramīdas,
mums ir nepieciešams, lai noteiktu, modelis par plaisa.
Par laimi, tas ir patiešām viegli.
Tas ir tikai vienmēr divas telpas.
>> Tāpēc tagad mēs pārejam pie pareizā modeli.
Pirmajā rindā būs viens hash.
Otrajā rindā, divi.
Trešajā rindā, trīs.
Tā tālāk un tā tālāk.
Tātad vēlreiz, noteikt, kādu abstraktu n un jebkura augstuma cik hashes
un cik daudz vietas Katrā rindā ir jābūt.
>> LABI.
Tātad mēs zinām, ka katrā rindā mēs nepieciešams veikt kādu procesu.
Kā mēs to darām?
Nu, mēs izmantojam, lai cilpu būvēt, sastāv no inicializācijas,
nosacījums, un atjauninājumu.
Attiecībā uz cilpas var tikt izmantoti atkārtot procesu.
>> Tā teikt, es gribu to pateikt hello, pasaules 50 reizes, tad mans cilpas
varētu izskatīties kaut kas līdzīgs šim, kur Es sāktu manu mainīgo līdz nullei.
Nosacījums ir, ka man ir mazāks par 50.
Un tad update ir tas, ka tā soli pa vienam katru reizi.
Tātad, ko tas varētu darīt, būtu drukāt hello, pasaules 50 reizes pēc kārtas.
>> Tagad, ka es gribēju atkārtot vairāk nekā augstums piramīdas.
Tad nevis cieto kodēšanas daži vērtība stāvoklī,
Es tikai izmantot mainīgo augstumu.
Tātad, ko tas būs jādara, ir atkārtot vairāk nekā augstums katrā rindā.
Un es varu darīt kaut ko iekšā no korpusa minētās cilpas.
>> Ko mēs vēlamies darīt ķermeņa iekšpusē cilpa?
Nu, kā mēs norādīts iepriekš, mēs gribam drukāt atstarpes un hashes
par kreiso piramīdas un pēc tam izdrukāt divas telpas, un pēc tam izdrukāt hashes.
Tāpēc mēs esam jau sapratu, ka out.
Tātad, mēs varam sākt aizpildīt mūsu programmā ir daudz vairāk.
>> Šeit man ir ārējā uz cilpas, kas vairākkārt uzsvērts pār katru rindu piramīdas.
Un iekšā šīs struktūras es eju drukāt telpas atkārtoti,
hashes atkārtoti, un tad plaisa, un tad hashes par tiesībām piramīdas,
un pēc tam, beidzot, jauns line lai sāktu nākamo rindu.
>> Ar to, ka mēs esam piedāvāts lietotājs par ieguldījumu.
Mēs esam pārliecināts, ka tas ir derīgs.
Un tad mēs esam sastādīts piramīdu.
Tātad Mario var veiksmīgi kāpt piramīdu.
>> Mans vārds ir Zamyla.
Un tas ir CS50.