Zamyla CHAN: Тоа е мене, Zamyla. Денес во Марио, ние ќе треба да биде цртање на половина пирамида за Марио се качат. Па ајде да зборуваме за нашите to-do за овој проблем. Ние се случува да сакаат да се поттикне и да се провери на корисникот за валидна влез за тоа како висок сакаат пирамида Марио да биде. И тогаш, ние се случува да го подготви. Па ајде да започнете со поттикнувајќи и потврдување на корисникот за нивниот придонес. Ние може да се направи употреба на Функција CS50 библиотека се int која ќе се обезбеди корисникот влезови цел број. Секое позитивни цели броеви, негативни цели броеви, бројот 0 се сите фер игра. Инаку, корисникот ќе биде побарано да обидете се повторно се додека не го внесете валиден број. Сега, иако стапите int прави многу работа за нас со која се обезбедува корисникот ни дава цел број, ние се уште треба да се применуваат некои дополнителни ограничувања за тоа. Впрочем, ние не може да има Марио качување пол пирамидата на висина негативни 12. Во прилог на тоа, спецификација проблем вели дека ние може само да дозволи Марио да се искачи пирамида од височина помеѓу 0 и 23 години. Добро, па тоа значи дека ние треба постојано да го извести корисникот за да ни дадат валидна број и само што продолжуваат кога еднаш ќе ни даде валидна висина. Како го правиме тоа? Па, континуирани процеси ни даде идејата за loops-- прави нешто repetitively. Еден циклус во C е време циклус кој постојано ќе изврши телото на јамка се додека дадениот услов е точен. Штом таа состојба неточен, програмата ќе продолжи да она што доаѓа после тоа. Така, додека петелки се еден начин на се осигура дека ние постојано го извести корисникот за валидна влез. И кога ќе ни дадат валидна влез, ние ќе продолжиме со она што следува потоа. Ние знаеме дека ние ќе треба да прашам на корисникот за влез барем еднаш. Така, сега доаѓаме до една сестра на додека јамка, која е направите додека јамка. Направите додека петелки ќе се изврши на телото на јамка барем еднаш. Значи без проверка на состојба, тоа ќе го изврши органот на јамка. А потоа проверете ја состојбата за да ја видите без разлика дали тоа треба да се повтори. Ова доаѓа во рака кога ние сме потврдување на корисник влез. Ние знаеме дека ние ќе да ги прашате барем еднаш. Значи направите додека јамка на сила изгледа нешто како ова. Ние имаме цел број n. И во внатрешноста на do додека јамка, ние веднаш го извести корисникот за цел број. Ако n е валиден, тогаш ние ќе ги поттикне повторно и повторно и повторно се додека не ни даде таква валиден број. Конечно, откако n е валидна влез, ние ќе продолжи со остатокот од нашата програма. Значи, да се вратиме на спецификации и проверка какви се условите за валидност на влез е и ќе биде. Важечките височини се случува да да биде помеѓу 0 и 23, инклузивна. Значи валиден височини се случува да да биде помал од 0 или повеќе од 23. Па не заборавајте да се дизајнира вашата состојба внимателно, знаејќи дека состојбата за направите додека јамка треба да биде, а n е валиден. Сега тоа не се случува да се биде едноставни еден Булова израз. Ние се случува да треба да се комбинираат две различни изрази да се направи целата наша состојба. Па ајде да се погледне на маса вистината сум веќе ви даде знак дека ние сме ќе треба да се занимаваат со две Booleans. Значи тука е вистина маса каде што имаат две Booleans-- Булова 1 и 2. Значи, имаме можност да се оцени bool1 и bool2 или bool1 или bool2. И ќе биде само точно ако двата Booleans оценка на true, додека сите или ќе биде вистина се додека еден од двете Booleans е точен. Добро, па се земе еден миг, пауза за ова видео и вари оваа таблица на вистинитост. Јас ќе бидам во право тука чекаат. Кога ќе се врати, видете ако може да се состави мозаикот Булова израз за вашиот состојба на n е валиден влез. Па сега дека имаме валидна корисник влез, ајде оди напред и да се зборува за тоа како ние Може да се подготви на половина пирамида. Овде, во овој едноставен уредувач на текст, Јас нацртате лево порамнети пирамида. Но ние знаеме дека ни треба пирамида да се десно порамнети. Па, како би можеле да го направам тоа? Па, јас може да се обиде да им помогнам на се што е на страна само со ставање малку знак помеѓу. И тогаш, за следните линија, јас одам да се стави некои повеќе знаци да го притисни заедно, и further-- така натаму и така forth-- додека имам право усогласена пирамида. Па ние имаме право усогласување на пирамида, но тоа не изгледа толку голема со точки. Но, ние се уште сакаат да тврдат дека убаво проред. Па јас ќе одам да буквално вметнете некои простори. Наместо три точки, јас ќе стави еден, два, три места. На втората линија. Ќе се стави една, две места. И на претпоследната линија, туку само еден простор. И тука има право во согласност пирамида. Од тоа на пример во текстот уредник, имаме идеја за моделот дека ние ќе ги користите за да привлече половина пирамида. За секој ред, што ние го сторивме е што тип на некои места, а потоа се внесе некои хашови, а потоа се внесе Внесете клучни, кој е создавање на нова линија. Па сега дека ние го имаме тоа, ајде да одиме еден чекор понатаму и да се најде модел. Па јас ќе одам да се каже, за интерес на овој пример, ние сме се занимаваат со висина од 8. Во првиот ред се случува да имаат две хаш што следува седум места. На second-- три хаш, шест места. Трето row-- четири хаш, пет spaces-- така натаму и така натаму се додека не се дојде до n-ти ред. Па тогаш, јас побара од вас за n-ти ред, Колку хаш сме случува да имаат и колку простори? Така, тоа е до вас за да дознаам формула за да се претставуваат како многу хаш и колку места се потребни за n-ти ред, кога имаш некои височина. Сега кога ќе се пронајдат ова, да се биде внимателен како сте индексирање. Што мислам со ова е дека во секојдневниот живот на сите нас почнат да бројат, обично од 1. Но, во CS50 и во компјутерски науки Во принцип, ние се 0 индексирани. Така, првиот ред ќе биде n од 0 наспроти 1. Бидете внимателни за тоа кога сте се обидувам да дознаам вашиот модел. Па сега ајде да се вратиме на тоа како ние ќе треба да се подготви нашите пирамида. За секој ред, ние се случува да сакаат да се печатење на простор, печатење на хаш, а потоа печати нова линија. Клучот тука е зборот "за" секој ред. Во C, имаме конструкт повика за телефонска линија, кој е составен од една иницијализација, состојба, ажурирање, а телото на јамка. Велат дека сакав да го кажам, здраво светот, 50 пати, ми за телефонска линија ќе изгледа нешто како ова. Јас се иницијализира мојот број на 0. Состојбата е дека е помалку од 50. И тогаш се ажурира мојот е само Се зголемува бројката од еден во секое време. Ние исто така може да се користи за петелки да iterate во текот на работите. Забележи овде како не сме хард кодирани број, туку се става на променливата висина, наместо во состојба. Значи она што го правам тука е јас сум процесирањето над секој ред од пирамидата. Можам да направам нешто за секоја ред во внатрешноста на телото на мојот циклус. Што правиме во органот на јамка? Па, како што веќе реков, ние сме печатење простори и ние сме печатење хаш и ние сме печатење на нова линија. Така ми надворешниот за телефонска линија ќе изгледа вака. Јас iterate над секој ред на пирамидата, користење, во овој случај, висина како и променлива кој ги зачувува на висината на пирамидата. Во внатрешноста на органот на јамка, јас сум случува да се печати простори постојано, за печатење на хаш постојано, а потоа печати нова линија. Па сега, со користење на сите на концептите кои Сум зборувал во оваа прошетка низ, треба да бидат способни да го извести корисникот за влез, потврда дека влез, а потоа се повлече на половина пирамида. Моето име е Zamyla, и ова е CS50.