ЗАМИЛА цхан: То је-ја, Замила.
Данас, ћемо имплементирати Марио, где се постави Марио
пуна пирамида за њега да скочи преко.
Да разбити подзадатака за овај проблем.
>> Прво, желимо да подстакне корисника за висине пирамиде.
А онда желимо да се уверите да је улаз је важећа.
А онда ћемо Желим да скренем пирамиду.
>> Дакле, хајде да причамо о подстицања и потврђивање уноса корисника.
То може да изгледа отприлике овако ово, до-вхиле петље да
пита корисника за интегер и онда само понавља
ако је цео број је неважећи.
Дакле, шта би требало да ово стање буде?
>> За то, хајде да се вратимо спецификацији.
Па, спецификације нам говори да било који важи висина ће бити између 0 и 23,
закључно.
Па онда то значи да сваки неважећи висина ће бити мања од 0
или више од 23.
>> Дакле, сада имамо ову информацију, Хајде да дизајн наше стање.
Али морамо да будемо опрезни, јер сада имамо
два боолеанс које желимо да се процени.
>> Овде сам вам дао са столом истине.
То нам омогућава да се два Боолеанс, Булова један и два.
И можемо оценити било боол1 и боол2 или боол1 или боол2.
>> Дакле, у чему је разлика између и и или?
Па, боол1 и боол2 ће проценити да важи ако и само
ако су оба боолеанс су истините, док је или операције
ће бити тачно ако ни један од у боолеанс или обоје су истините.
Са тим на уму, види да ли могу да схватим
шта је прикладно услов за Ваш ДО-вхиле петље за неважеће н
ће бити.
>> Уз то, ми смо затражено и провера корисник за висину пирамиде
да они желе.
Тако сада, то је на нама повући пирамиду.
Пуна пирамида за ово Проблем ће изгледати мало
овако, где имамо леву пирамиде, неки јаз, а затим десно пирамида.
Хајде да прекинемо ово доле мало.
>> Ако одем у моју тект едитор, овде имам извући нам лево поравнат пирамиду.
Али то неће учинити.
Оно што ми желимо да урадимо је да хоћемо да створити прави поравнат пирамиду први.
Дакле, за то, да се само гурнути ми хешеве дуж са стране,
Само ћу ставити неке знакове између, само ових тачака.
Онда ћу ставити два на Следећи ред, а један на тој линији.
И ево имам десно поравнат пирамиду.
>> Након тога, ја ћу вратити у горњем реду
и ставити у празнину, која је, по спец, два простора.
Онда ћу да попуните друге стране пирамиде.
Ја идем у другом реду, пишу два простора за јаз и онда два
хасхес.
Назад на трећем реду, два простора за јаз и три хасхес.
И на крају, два простора за јаз и четири хасхес.
Дакле, то је оно што пуну пирамида ће изгледати.
>> Наравно, не желимо ове тачке на путу.
Па ћемо заменити ово тачке стављањем неке просторе у.
Један, два, три у првом реду.
Један, два на другом.
И један у трећем реду.
Дакле, то је оно што ће учинити ако ми хтео само да се потпуно пирамиду,
кажу, у нашем текстуалном едитору.
>> Дакле, хајде да ово, разумевање образаца,
и претворити га до неког псеудокоду.
За сваки ред пирамиде, желимо за штампање лево пирамиду и затим
празнина и онда десно пирамида.
За левој пирамида, штампамо Неопходна количина простора,
затим хешеви.
Онда смо принт јаз, који је само два места сваки пут.
И на правом пирамиде, штампамо Потребни број хешева.
>> За другог реда, спровели смо исто тачан процес.
Ми принт просторе за леви пирамида је потребан износ
хешева, јаза, два простора, и онда хешеви за правом пирамиде.
>> Хајде да ухвати у коштац са образац за леву пирамиде.
Ако сам имао, за потребе овог примера, висина
од осам захтев од стране корисник, онда мој први ред
имам једно хасх и седам места.
Мој други ред би имао два хешеве, шест простори.
Трећи ред, три хешеве, пет простори.
Вероватно могу то да урадим се за висине од осам
и одредити за сваки ред колико хешева и колико простора вам је потребно.
Али оно што ми желимо да урадимо је желимо да издвоје то.
Зато вас питам за било ко зна који ред, колико хешеве и колико простори нам је потребно?
>> Сада, као што утврдити образац за колико хасхес
и колико простора вам је потребно за свака нтх ред за дату висину,
запамтите да буду опрезни како си индексирање.
На шта мислим то је да у свакодневном живот већина нас почети да броји по један.
Дакле, први ред би био број један.
А други ред би био ред број два, и тако даље и тако даље.
>> Али у компјутерској науци и ЦС50, ми смо нула-индексиране.
Тако да заправо почети да броји од нуле.
Дакле, први ред би бити ред број нула.
А други ред ће бити ред број један.
Дакле, ако сам имао висину од осам за мој пирамида, онда је последња вредност од н
би уствари било седам, а не осам.
>> Дакле, буди опрезан у вези овога.
И бити свестан када утврђивања ваш образац ли ваш нула-индексираних
или један индексираних
>> ОК.
Па сад да имамо образац за леву пирамиде,
треба да се утврди образац за јаз.
Срећом, ово је стварно лако.
То је само увек два места.
>> Тако да сада наставити са правом обрасцу.
Први ред ће имати једну хасх.
Други ред, два.
Трећи ред, три.
Тако даље, и тако даље.
Дакле, поново, одредити за сваки резиме н и сваки висина колико хешеве
и колико простори сваки ред треба да има.
>> ОК.
Тако да знамо да за сваки ред и ми Потребно је да спроведе неки процес.
Како то да урадимо?
Па, ми користимо за петље конструкт, састоје од иницијализације,
услов, а обнављање.
За петље могу користити да се понови процес.
>> Тако кажу желим да поздравим, свет 50 пута, а затим мој за петљу
би изгледао отприлике овако, где Ја иницијализујемо своју променљиву на нулу.
Услов је да сам је мање од 50.
А онда исправка је ли то увећава се за по један сваки пут.
Дакле, шта то би урадио би било да принт Хелло, Ворлд 50 пута за редом.
>> Сада, да сам хтео да поновити већа од висине пирамиде.
Онда уместо хард кодирања нека вредност у стању,
Ја само користити променљиву висину.
Дакле, шта ће то урадити је Итерате већа од висине сваког реда.
И ја могу да урадим нешто у тела тог петље.
>> Шта желимо да урадимо унутар тела петље?
Па, као што смо већ рекли, желимо за штампање просторе и хешеви
за леву пирамиде, а затим штампање два простора, а затим штампање хасхес.
Тако да смо већ схватили.
Тако да можемо почети да попуни у нашем програму много више.
>> Овде имам један спољни фор петље које Примењује преко сваког реда у пирамиде.
И у том тијелу идем за штампање простора у више наврата,
хешева у више наврата, а онда јаз, а затим хасхес за прави пирамиде,
а онда, коначно, нова линија за почетак следећег реда.
>> Уз то, ми смо затражено корисник за улаз.
Направили смо сигурни да је то важећа.
А онда смо извукли пирамиду.
Дакле, Марио може успешно попне на пирамиду.
>> Ми наме ис Замила.
А ово је ЦС50.