ZAMYLA CHAN: Ito ay isang sa akin, Zamyla.
Ngayon sa Mario, kami ay pagpunta sa maging pagguhit ng half pyramid para sa Mario
upang umakyat.
>> Kaya sabihin makipag-usap tungkol sa aming mga to-do para sa problemang ito.
Kami ay pagpunta sa gusto upang i-prompt at patunayan
ng gumagamit para sa isang may-bisang input ng kung paano high gusto nila ni Mario pyramid na.
At pagkatapos, kami ay pagpunta sa gumuhit ito.
Kaya sabihin makapagsimula sa udyok at pagpapatunay sa mga gumagamit para sa kanilang input.
>> Maaari naming gumawa ng paggamit ng CS50 Library Function
makakuha int na masiguro na ang user input ng isang integer.
Anumang positive integers, negatibo integers, bilang 0 ay ang lahat ng makatarungang laro.
Kung hindi man, ang user ay maaari udyukan sa retry hanggang sa sila input ng isang wastong integer.
Ngayon bagaman get int gumagana isang pulutong ng mga trabaho para sa amin
sa pagsiguro na ang user ay nagbibigay sa amin ng isang integer,
kailangan pa rin naming ilapat ang ilang karagdagang constraints sa na.
Matapos ang lahat, hindi namin maaaring magkaroon Mario climbing kalahating pyramid ng taas negatibong 12.
>> Bilang karagdagan sa na, ang problema specification
sabi na lamang namin Maaari payagan Mario sa umakyat
isang pyramid sa taas sa pagitan ng 0 at 23.
OK, sa gayon ay nangangahulugan na kailangan namin upang patuloy na prompt ng gumagamit
upang bigyan kami ng isang may-bisang numero at lamang magpatuloy
isang beses na ibinigay nila sa amin ng wastong taas.
Paano namin gawin iyon?
>> Well, tuloy-tuloy na proseso bigyan kami ang ideya ng loops-- paggawa ng isang bagay
repetitively.
One loop sa C bilang habang loop na habilin patuloy
execute ang katawan ng loop hangga't ang binigay na kondisyon sinusuri sa true.
Sa sandali na kondisyon na sinusuri sa false,
ang programa ay magpatuloy sa anuman ang dumating matapos na.
Kaya habang loop ay isang paraan ng pagtiyak na patuloy naming
i-prompt ang user para sa isang wastong input.
At sa sandaling bigyan sila sa amin ng wastong input, kami ay magpatuloy sa kahit anong ay susunod.
Alam namin na kami ay pagpunta sa hilingin sa ang user para sa input ng hindi bababa sa isang beses.
Kaya ngayon kami dumating sa isang kapatid na babae ng habang loop, kung saan ay ang gawin habang loop.
>> Gawin habang loop ay execute ang katawan ng loop ng hindi bababa sa isang beses.
Kaya nang walang pagtingin sa mga kondisyon, ito ay execute ang katawan ng loop.
At pagkatapos suriin ang kalagayan upang makita kung kailangan nito upang ulitin mismo.
Ito ay dumating sa madaling-gamiting kapag kami ay pagpapatunay user input.
Alam namin na kami ay pagpunta upang hilingin sa kanila ng hindi bababa sa isang beses.
Kaya ang isang gawin habang loop baka hitsura ng isang bagay tulad nito.
Mayroon kaming isang integer n.
At sa loob ng do habang loop, agad naming
i-prompt ang user para sa isang integer.
Kung n ay hindi wasto, pagkatapos ay gagamitin namin prompt ang mga ito muli at muli at muli hanggang sa sila
bigyan kami na valid integer.
Sa wakas, sa sandaling n ay isang wastong input, kami magpatuloy sa natitirang bahagi ng aming programa.
>> Kaya sabihin bumalik sa spec at check kung ano ang mga kondisyon para sa isang may-bisang input
ay magiging.
Ang wastong heights ay pagpunta sa nasa pagitan ng 0 at 23, inclusive.
Kaya di-wastong heights ay pagpunta sa na mas mababa sa 0 o higit sa 23.
Kaya tandaan upang mag-disenyo iyong kalagayan nang mabuti,
alam na ang kalagayan para sa gawin habang loop
dapat na habang n ay hindi wasto.
Ngayon na ito ay hindi pagpunta sa maging isang simpleng solong Boolean expression.
Kami ay pagpunta sa may sa pagsamahin dalawang magkaibang mga expression
upang gumawa ng aming buong kondisyon.
>> Kaya sabihin lang tumingin sa isang katotohanan mesa na ako na nagbigay sa iyo ng hint na kami
pagpunta sa pagharap sa dalawang Booleans.
Kaya narito ang isang katotohanan mesa kung saan ako may dalawang Booleans-- Boolean 1 at 2.
Kaya kami ay may pagpipilian upang suriin bool1 at bool2 o bool1 o bool2.
At lamang maging totoo kung ang parehong Booleans suriin sa tunay na, samantalang lahat
o magiging tunay na bilang hangga't ang isa sa ang dalawang Booleans sinusuri sa true.
OK, kaya maglaan ng ilang sandali, i-pause ito video at digest ang katotohanang ito table.
Kukunin ko na karapatan dito naghihintay.
Kapag dumating ka pabalik, tingnan kung maaari mong pagdugtong-dugtungin
isang Boolean expression para sa iyong kalagayan ng n sa pagiging isang di-wastong input.
>> Kaya ngayon na mayroon kami wastong user input, sabihin
sige at makipag-usap tungkol sa kung paano namin maaaring gumuhit ng half pyramid.
Dito sa ito simpleng text editor, Ko na iginuhit ng isang kaliwa nakahanay pyramid.
Datapuwa't nalalaman natin na kailangan namin ang aming pyramid na right nakahanay.
Kaya kung paano ang maaari kong gawin ito?
Well, maaari ko bang subukan upang itulak ang lahat ng bagay sa gilid
sa pamamagitan lamang ng paglalagay ng isang maliit na karakter sa pagitan.
At pagkatapos, para sa susunod na line, ako pagpunta sa ilagay
ang ilang mga karagdagang mga character upang itulak ito kasama, at further-- iba pa at iba forth--
hanggang ako ay may karapatan nakahanay pyramid.
Kaya ang ginagawa namin ay may karapatan align pyramid, ngunit ito ay hindi hitsura kaya mahusay na gamit ang mga tuldok.
Ngunit kami pa rin bang mapanatili na magandang spacing.
Kaya ako ng pagpunta sa literal ipasok ang ilang mga puwang.
>> Sa halip na tatlong tuldok, makikita ko maglagay ng isa, dalawa, tatlo puwang.
Sa ikalawang linya.
Makikita ko bang ilagay ang isa, dalawang mga puwang.
At sa una sa huli line, lamang ng isang space.
At dito Mayroon akong isang karapatan nakahanay pyramid.
Mula sa paggawa ng sa halimbawa sa teksto editor, kami ay may isang ideya para sa mga pattern
na gagamitin namin upang gumuhit ang half pyramid.
Para sa bawat hilera, ano ang ginawa namin ay i-type namin ang ilang mga puwang,
at pagkatapos ay nag-type ng ilang mga hashes, at pagkatapos ay nag-type
ang Enter key, na kung saan ay ang paglikha ng isang bagong linya.
Kaya ngayon na mayroon kami na, hana isang hakbang karagdagang at makahanap ng isang pattern.
>> Kaya ako pagpunta sa sabihin, para sa interes ng halimbawang ito,
kami ay pagharap sa isang taas ng 8.
Ang unang hanay ay pagpunta sa magkaroon ng dalawang hashes na sumusunod pitong mga puwang.
Ang second-- tatlong hashes, anim na mga puwang.
Third row-- apat hashes, limang spaces-- iba pa at iba pa
hanggang sa makuha namin sa NTH hilera.
Kaya nga, hinihiling ko sa iyo para sa NTH hilera, kung gaano karaming mga hashes kami makapupunta upang magkaroon
at kung gaano karaming mga puwang?
Kaya ito ay nasa sa iyo upang malaman kung ang isang formula upang kumatawan kung gaano karaming mga hashes
at kung gaano karaming mga puwang ay kailangan para sa ang NTH hilera kapag mayroon kang ilang taas.
>> Ngayon kapag ikaw ay figuring out na ito, maging maingat kung paano ka na-index.
Ano ang ibig sabihin ko sa pamamagitan ng ito ay na sa araw-araw na buhay ang lahat ng sa amin
magbilangan, kadalasan sa pamamagitan ng 1.
Ngunit sa CS50 at sa computer science sa pangkalahatan, kami ay 0-index.
Kaya ang unang hilera ay magiging n ng 0 bilang laban sa 1.
Mag-ingat ng mga ito kapag ikaw ay sinusubukan upang malaman kung ang iyong mga pattern.
Kaya ngayon sabihin bumalik sa kung paano kami ay pagpunta sa gumuhit ng aming pyramid.
Para sa bawat hilera, kami ay pagpunta sa nais na i-print ang mga puwang, i-print ang hashes,
at pagkatapos ay i-print ang isang bagong linya.
Ang hint dito ay ang salitang "para" sa bawat hilera.
Sa C, mayroon kaming isang tayuan tinatawag na isang para sa loop,
na kung saan ay binubuo ng isang initialization, sa isang kondisyon, ang isang pag-update,
at ang katawan ng loop.
>> Sabihing Nais kong sabihin, hello mundo, 50 beses, ang aking para sa loop
magiging hitsura ng isang bagay tulad na ito.
magpasimula ko ang aking integer sa 0.
Ang kalagayan ay na ako ay mas mababa sa 50.
At pagkatapos ay ang aking pag-update ay lamang incrementing ko sa pamamagitan ng isa sa bawat oras.
Maaari din naming gamitin para sa mga loop upang umulit sa bagay na ito.
Pansinin dito kung paano kami ay may hindi hard-code ng isang numero,
ngunit sa halip na inilagay ang mga variable taas sa halip sa ang kundisyon.
Kaya kung ano ako ng paggawa dito ay ako iterating sa paglipas ng bawat hilera ng pyramid.
ang maaari kong gawin ang isang bagay para sa bawat hilera sa loob ng katawan ng aking loop.
>> Ano ang iyong ginagawa sa loob namin ang katawan ng loop?
Well, bilang namin na sinabi, kami ay pag-print espasyo at kami ay pag-print ng hashes
at kami ay pag-print ng isang bagong linya.
Kaya ang aking mga panlabas na para sa loop ay ganito ang hitsura.
umulit ako sa paglipas ng bawat hilera ng pyramid, paggamit,
sa kasong ito, taas bilang ang mga variable na nag-iimbak ang taas ng pyramid.
Sa loob ng katawan ng na loop, ako upang i-print na mga puwang nang paulit-ulit, i-print
ang hashes paulit-ulit, at pagkatapos ay i-print ang isang bagong linya.
>> Kaya ngayon, gamit ang lahat ng mga konsepto na Ko na uusapang tungkol sa ito lakad-through,
dapat mong ma upang i-prompt ang user para sa input, patunayan na input,
at pagkatapos ay gumuhit ang kalahati pyramid.
>> Ang pangalan ko ay Zamyla, at ito ay CS50.