>> [Muzikos grojimo]
>> ANDI Peng: Tai CS50 ir kviečiame sekcijos dvi savaites.
Tai iš tikrųjų, o savaitę du mūsų class-- Tiesą sakant,
pirmą savaitę mes turėjome skyrių.
Rodyti rankų, kiek jums visiems atvyko į super skyriuje praėjusią savaitę?
Gerai, kad viskas OK.
Tai gerai.
Kaip daugelis iš jūsų stebėjo Super skyriuje praėjusią savaitę?
GERAI.
Ir vaikinai padarė gerai apie problemą nustatyti vieną?
Taigi, aš ruošiuosi jį priimti, kad mes turime iš tiesų protingų vaikų krūva
šioje klasėje ir dalykų bus gerai.
GERAI.
Taigi first--
>> Pirma, mes tik ketina trumpai eiti per šios dienos darbotvarkę.
Mes kalbame apie kursų logistika.
Daug iš jūsų tikriausiai turite klausimų dėl
kaip viskas paleisti šį kursą.
Mes juos atsakyti.
Mes ketiname trumpai eiti per kilpomis atveju
kas nors iš jūsų vaikinai praleido super skyrių.
Mes kalbame apie ASCII žemėlapių.
Mes kalbame apie masyvų, funkcijos, komandinės eilutės argumentai.
Ir pagaliau, ką jūs vaikinai tikriausiai visi tikrai noriu būti čia, norėdami sužinoti apie,
Jūsų pset2.
Mes turime keletą naudingų gudrybių ir patarimai, kaip tai padaryti.
>> GERAI.
Be to, antra, mes turime daug saldainių čia.
Kiekvienas, kuris sako, kad patinka saldainiai, tiesiog ateiti čia.
Grab kai.
Turiu krūva.
Mes turime biure toną.
Nemanau tikrai norite valgyti saldainių visą dieną.
Vaikinai turėtų valgyti visi saldainiai, nes aš atnešė čia jums vaikinai.
Tiesiog valgyti saldainių.
Ten bus saldainiai kiekvieną skyrių.
>> Taigi, pirmiausia, kas aš esu?
Mano vardas Ieva Peng.
Esu galva TA iš CS50 čia Jeilio.
Ir be to, kad aš taip pat be--
jei kas nors būtų like-- savo veiklos bičiulių, jūsų peties išsiverkti ant.
Jei prieš jūsų pset anketa Due naktį, jūs neturite idėjos, kas vyksta,
trenk man.
Mes užuojautą kartu, et cetera.
Tiesiog žinau, kad aš esu čia, kaip šaltinis jums kaip fronto liniją
padėti jums vaikinai išsiaiškinti, kaip spręsti problemas CS50 ir už jos ribų.
>> Mano elektroninio pašto yra andi.peng@yale.edu.
Aš taip pat siunčiame individą paštu su mano telefono numeriu jame
kad ne kiekvienas dėl Internetas gali matyti mano telefono numerį.
Nedvejodami skambinkite man bet kuriuo metu.
Rimtai, mano telefonas yra dažniausiai pritvirtintos prie mano rankos.
Aš negali atsakyti per porą minučių.
Aš negali atsakyti per kelias valandas.
Bet galiu jums garantuoti, jei Jums e-mail man, jei jūs vadinate mane
tekstas man, aš atsakyti per 24 valandas.
Dažnai, aš atsakyti prieš kad dėl suprantu
kad kiekvienas gavo kai kurias problemas, ir jūs norite, kad jūsų atsakymus
reikia atsakyti labai greitai.
>> Tačiau, jei Jūs skambinate man 30 minučių prieš
kad gabalas, kad yra dėl ketvirtadienis night-- būti kaip Andi, padėk man,
Aš ne started-- Aš gali suteikti Jums, kad peties verkti ant.
Bet tai gali būti laikas galvoti apie Kaip tai padaryti, kad kitą kartą.
GERAI.
Oi.
Kaip man grįžti?
Čia mes eiti.
>> Taigi šiuo metu mes turime tonų paramos visiems.
Be to, tik skyriai čia, kurį
kiekvieną savaitę gauti praleisti 90 nuostabių minučių su manimi,
mes taip pat turime darbo valandomis.
Kaip daugelis iš jūsų vaikinai jau buvęs darbo valandomis pagalbos?
Didysis.
Tai tikrai gera matyti, nes mes turime daugiau nei 45 darbuotojų etatus ir CAS darbuotojus
apmokyti šį kursą, kad esate čia padėti jums vaikinai su savo psets.
>> Pirmadieniais jie vyksta kryklė Klasės 17 Hill House čia
Jeilio.
Antradieniais ir ketvirtadieniais, jie vyko Visuotinis.
8:00 iki 11:00 Beveik kiekvienas šiokiadieniais.
Užeik, išeiti.
Bet problema ne problem-- tik Nagi,
ir tada mes padėsime jums su tai.
>> Antra, be to, darbo valandų ir skyriai, taip pat turime šortai.
Ar kas nors kada nors matė poros šortai ar Walkthroughs į video
svetainėje?
GERAI.
Taigi jie tikrai, tikrai naudinga.
Mūsų mielas Harvardo gamyba komanda per ten toje mokykloje
į šiaurę, jie nufilmavo ir pagamintas Šie neįtikėtinai Walkthrough video.
>> Jie paims jus žingsnis po žingsnio per kaip eiti apie problemos sprendimo.
Dažnai, jei jūs painioti apie paprasta sąvoka, vienaskaitos koncepcija,
Pažiūrėk, nes mes tikriausiai ant jo trumpo kažkur mūsų svetainėje.
Ir tai paprastai puikus šaltinis ieškoti, kai jūs pirmą kartą
neteko apie tai, kaip elgtis su problemų.
>> Trečia, mes taip pat turime study50 ir reference50.
Taigi studijuoti 50 ant svetainėje yra tik nuoroda.
Tai, manau, study.cs50.net ar kažkas panašaus.
Tiesiog Google ją.
Turime daug paruoštų skaidrių.
Turime daug šortai ir walkthroughs-- dalykai visi surinkti
labai gražus ir tvarkingas jums vaikinai visų naršyti, matyti jokių sąvokas
kad esate supainioti apie tai.
Tai tikriausiai būčiau padengtos per ten study50.
>> Reference50-- panašūs.
Mes turime įvairių užrašų daug lengvai prieinama jūsų dispozicijoje.
Ir galiausiai, turime tai, kas vadinamas CS50 Aptarkite,
kurioje forumas, jei prieš naktį jūs darote savo problemas, tarkim,
turite klausimų.
Prisijungti prie CS50 Aptarti.
Paskelbkite savo klausimą.
Ir tada vienas iš hundreds-- galbūt, thousands-- bendraamžių
pradėdami vartoti šį klasę internete bus prisijungti.
O gal kas nors gali gauti Jūsų atsakymas prieš TA gali.
Tai iš esmės tik Prisijungę Forumas kad mes visi galime
naudoti aptarti mūsų problemas.
Tai kieta.
>> GERAI.
Taigi problema rinkiniai.
Mes apie teisę į storio problema nustatyti du.
Daugelis iš mūsų jau kovojo per problema nustatyti vieną.
Mes jau žinome, kad galbūt laukia už paskutinę naktį padaryti savo pset
nėra protingiausias dalykas daryti CS50.
>> Patarimai ir patarimai esmės dėl sėkmė yra perskaityti visą spec.
Kaip daugelis iš jūsų jau skaityti už pset 2 spec?
GERAI.
Štai kietas suma.
Žinau, kad jūs vaikinai tikriausiai pripažinta dabar Specifikacijos tikrai ilgai.
Jie tikrai, tikrai ilgai.
>> Tai tikrai sunku skaityti kiekvieną eilutę tos atidžiai pažodžiui.
Jūs norite tiesiog nugriebti, kur jis jums pasakys kažką daryti.
Galiu jums garantuoti, nedaryk to.
Jei tai padarysite, jūs tikriausiai ketinate praleisti kažkur
kai ji pasakys kaip pradėti problemą
ar jis jums pasakys, ką pavadinimas jūsų problema ar jis jums pasakys,
tai tikriausiai geriausias būdas pradėti daryti savo problemą.
Ir tada jums bus prarasta.
>> Kai bandote skaityti savo spec įpusėjus,
Dėl svarbių daug informacija--, kad nesate
bus galima tikrai gauti.
Taigi perskaityti visą spec.
Pabandykite perskaityti visą spec Prieš skaitydami skyrių,
nes tada, kai mes kalbėti apie pset,
mes visi galime turėti idėją kas vyksta.
>> Antra, tai yra koncepcija kad aš norėčiau nuoroda
daug visą kursą semestrą.
Bet iš esmės, susitikti su mumis pusiaukelėje, tiesa?
Man, kaip savo TA ir Jason kaip žinoma vadybininkas ir Scaz kaip jūsų profesorius
David kaip savo profesoriaus ir visi kiti mieli struktūra Šiame kurse
padėjėjai šioje course-- mes padarysime viską
užtikrinti, kad jums yra nustatyti iki pavyks šį kursą.
Mes surengs skyrių.
Mes bus surengti darbo valandomis.
Mes atsakysime į jūsų telefoną ragina atsakyti į jūsų laiškus,
padaryti viską, ką galime padaryti tikrai bus atsakyta į jūsų klausimus.
>> Tačiau padėti mums pernelyg.
Susitikti su mumis pusiaukelėje.
Jei atvykote į darbo valandų nėra įžengęs į skyrių, o ne
pamatęs paskaitas, neturinčią idėja, kas vyksta, bus kaip, padėk man.
Aš ruošiuosi būti, pavyzdžiui, gerai, aš atsiprašau.
Ji gali būti laiko skolinti kad peties verkti ant,
nes aš nesu tikras ką aš galiu padaryti, siekiant padėti jums
jei jūs neturite pabandyti bent jau padėti Būk šiek tiek pradžioje.
Susitikti su mumis pusiaukelėje.
Žinote, prašome atvykti pasirengęs atsakyti ir gauti
pasiruošęs užsiimti medžiagos.
Jis daro ką tiek daug lengviau visiems dalyviams.
Taip, tai gana daug.
>> Rūšiavimas.
Tad mokymo programą, tai gana nuodugniai apie tai, kaip mes pažymį.
Bet iš esmės, suskirstymas į tai 50% savo klasės
bus psets, kurie yra puikus, nes tai
kur jūs išleidžiate didžioji dauguma savo kursą laiko.
Viktorinos 40%, ir jūsų galutinis projektas bus 10%.
Bus du viktorinos visoje semestro kursą.
Manau, kad laikas ir datos yra Taip pat įtrauktos į mokymo programas.
>> Taip, kad mes būti klasifikavimo savo psets
yra tai, kad mes turime iš esmės keturi vertybės, kurias priskiriate kiekvieno lygio.
Mes turime vertę taikymo srities, teisingumą, dizainas, ir stilius.
Taigi, kaip matote, kad tipo mūsų apskaičiavimo formulė psets.
Trys mes suteikiame labiausiai svoris teisingumą,
nes akivaizdu, savo treneriu turėtų būti išbandyti tuos atvejus,
kad mes norime, kad ji išbandyti.
>> Jūs vaikinai visi check50 jūsų dispozicijoje.
Tai labai naudinga funkcija kad vaikinai gali visi
įkelti savo kodą į mūsų serverius, kur mes patikrinsime tai už jus.
Ir jūs mačiau tuos frowny veidai, smiley veidus.
Jie tikrai, tikrai naudinga.
Prašome būti ne studentas, kuris norėtų bando
hardcode visose jiems atsakymus.
Aš tikrai mačiau pset kur kas matė visus check50 vertybes
ir jie tiesiog sunku koduojami in-- jei šis skaičius, spausdinti šį numerį.
Jei šio skaičiaus, išspausdinti šio skaičiaus.
Negalima daryti.
>> Nors techniškai check50 yra teisinga,
Jūsų būdas spręsti problema yra neteisingas.
Taigi tiesiog naudokite check50 taupiai.
Bet taip pat įsitikinkite, kad jūs suprasti, kaip ji veikimą,
Programa veikia be to, check50,
nes mes negalime išbandyti kiekvienas įmanoma atvejis check50.
Mes išbandysite keletą iš jų.
>> Dizainas iš esmės, kaip gerai suprojektuoti jūsų kodas?
Jei esate kopija-klijavimas kelių eilučių kodo daug, daug kartų.
Gal jūs neturite pakankamai geriausias dizainas kodą.
Gal atėjo laikas pridėti, kad kilpa.
Iš esmės, čia tai tiesiog visi apie bando padaryti savo kodą,
bando parašyti savo kodą, efektyviai įmanoma, kad jūsų programa veikia
kaip galima greičiau.
>> Galiausiai, mes turime stilių.
Taigi stilius rūšies savavališkas, subjektyvus terminas.
Aš žinau, mes oficialiai turi stilius 50 vadovas CS50,
kur jis jums pasakys, oi, jus turėtų turėti erdvę čia.
Turėtumėte rūšies formatu Jūsų kodas šiuo būdu.
Turėtumėte pavadinti dalykus šiuo būdu.
>> I do not really care, per se, kaip pasirinkti stiliaus savo kodą,
kaip ilgai, kaip jūs likti nuoseklūs.
Pavyzdžiui, jei norite palikite tarpą po jūsų keturių
Prieš savo keturių kilpa, tiesiog padaryti, kad kiekvieną kartą.
Negalima rūšies tai padaryti.
Nereikia daryti kitus kartus.
Jei jums patinka išlaikyti garbanotas petnešos erdvėje tam tikru būdu
tiesiog visada daryti, kad taip.
Negalima rūšies padaryti jį kažkur čia ir kažkur ne ten.
Kai mes klasifikavimo, tai tikrai sunku
jei aš neįsivaizduoju, kaip jūs formatavimą savo kodą,
viskas yra trenktas ir iš vietos.
Jei jūs tiesiog laikyti jį nuosekliai, tai daug lengviau man, kaip didesnis
gebėti skaityti savo kodą.
Tai daug lengviau jums, kaip studentas gebėti ieškoti per savo kodą
ir pamatyti, kas yra negerai su tai velniop, kodėl ten klausimus.
Stilius yra vienas iš paprasčiausių dalykų vaikinai gali padaryti, norint gauti visą balų.
Iš esmės, jei jūs tiesiog rūpi, jei mokate penkias minutes dėmesio
į savo kodą kiekvieną savaitę, jūs turėtumėte būti gauti visą stilių taškų.
>> Galiausiai, mes turime tai, kas vadinama taikymo sritį daugiklis.
Scope-- Žinau, kad tai didelis žodis, ypač šios klasės.
Bet apimtis, visa tai reiškia yra, kad jūs bandote
į geriausias savo gebėjimą psets.
Jei įjungsite trijose iš Jūsų keturias problemas
ir net ne bandymu paskutinis, jūs tikriausiai
ketina prarasti taškų sritį.
>> Net jei jūs tiesiog pradėkite problemą, padaryti viską, kad vaikščioti per ją.
Net jei jis neveikia, įjunkite jį, nes tai rodo ir rodo
mums, kad jūs bandote, kad bandėte problemą rinkinys
Kiek jūsų gebėjimą.
Ir tada mes galime suteikti jums pilnas taškai taikymo sritį.
>> Taikymo sritis taip pat yra labai svarbus, kai mes kalbėti apie mažiausią pset rezultatą lašas.
Taigi per kurso semestras, vaikinai turi devynis psets.
Ir mes iš tikrųjų bus nuleisti mažiausia rezultatas iš tų devynių,
bet tik jei turite pilna apimtimi taškų.
>> Taigi, jei įjungsite neišsamiai pset, Deja, mes negalime mėtyti, kad vienas,
nes savo taikymo sritį Taškai nebuvo baigtas.
Taigi, net jei jūs turite baisu savaitę kur jūs miršta ir jūs esate serga
ar jūsų šuo miršta, jūsų katė miršta, ir jūs perkrautas namų,
tiesiog bandyti pset.
Ar ji geriausia jūsų gebėjimą.
Jei jis neveikia, tai nesvarbu.
Tiesiog įjunkite jį.
Bent mes galime suteikti Jūs nurodo už pastangas.
>> A pastangų šioje klasėje.
Tuo mažiausiai mažiausią rezultatą sumažėjusios pastangų.
Taigi taip.
Tai gana daug.
Ar kas nors turite klausimų taip kas, kaip mes pažymio klasės?
Arba bet kuris iš šių?
Bet tai taip far-- sekcijos, biuro valandas?
Saunus.
GERAI.
>> Taigi, šis objektas yra, kad joks iš tikrųjų mėgsta kalbėti apie.
Nemanau, tikrai norėčiau apie tai kalbėti.
Vaikinai nelabai nori išgirsti man kalbėti apie tai.
Bet deja, mes visi turi apie tai kalbėti.
Davidas praleido 20 minučių per paskaitą apie tai kalbėti.
Ir kad yra objektas Akademinio sąžiningumo.
>> Taigi mes visi čia tikriausiai parašyta esė kažkada mūsų Jeilio karjerą.
Mes tikriausiai Dotarłeś kalbėti, kur mes buvo pasakyta, kad ne plagijuoti mūsų esė,
nes darbas yra ne mūsų.
Computer Science, mes turime tos pačios rūšies koncepcija.
Visi darbai, kad jūs pateikiate, visi kodas, rašote
turėtų būti kodas, kuris jums parašyta.
Neturėtų būti kodą, kad jūs nukopijuoti iš kažkur kitur.
Neturėtų būti kodas, kuris Jūs googled ir plopped į
ir jūs tikrai nežino, ar ji veikia.
Jūs rūšies turėti prasmę ką jis daro, bet tikrai ne.
Jei abejojate, iš esmės, tai tiesiog būti protingas.
Mūsų mokymo programą, turime visai sąrašas dalykų
matome, kaip pagrįstai palyginti nėra pagrįstas.
>> Pavyzdžiui, pagrįsta yra jums ir jūsų draugas
aptarti, kas geriausias būdas eiti apie logiškai sprendžiant problemą.
Tai gana protinga.
Kas būtų nepagrįsta yra, jei jūs vaikinai gavo kartu, atspausdintas tą patį kodą,
ir įjungtas į tą patį kodą.
Tai ne protinga.
Tas pats, tipo esė.
Jei norite diskutuoti su savo draugu, ei,
Tai yra tai, ką aš noriu rašyti.
Tai yra žingsniai Noriu imtis parašyti apie tai, puikus.
Tai puiku.
Prašome bendradarbiauti viena su kita.
Jei vaikinai pradėti rašyti tą patį,
įjungti toje pačioje esė, tai mažiau Gerai.
Taigi, kai kyla abejonių, tiesiog nereikia daryti.
>> Čia mes CS50, turime scenarijų kad paleisti automatizuoti išbandyti
ne tik savo kodą teisingumą, bet ir savo kodą unikalumą.
Taigi prašome ne pateikti mums padėtyje turintys perduoti savo bylą EXCOMM.
Prašome tiesiog visiems, tegul tik kad ši nuostabi patirtis.
Kiekvienas mokosi geriau, mes visi esame laimingesni,
ir mes visi nustatyti iki pavyks šį kursą.
Kažkas, kad labai Unikalus apie šios klasės
kad aš manau, kad kiekvienas tikrai turėtų atkreipti dėmesį į tai, kad mes turime
kas vadinama apgailestauju sąlyga mūsų mokymo programas.
Taigi, iš esmės, per 72 valandas, jei manote, kad padarei kažką
Jūs nesate tikras, buvo reikia, prašome atvykti pas mus.
Pažadame, kad per 72 valandas mes rankena bylą patys
nesikreipdama į aukštesnę institucija administracija.
>> Taigi, jei jūs ateiti pas mane ir sako: Andi, ei, aš tikrai atsiprašau,
bet aš manau, kad yra pora linijų mano kodas praeitą naktį, kad I rūšies googled,
išlipo iš kamino Perpildyta, kopijuoti ir įklijuoti,
ir aš tikrai, tikrai gaila apie tai, leiskite man žinoti.
Prašome ne tik tegul jis pūliuoti ir tiesiog tikiuosi, kad sugauti jį.
Mes sugauti jį.
Tiesiog ateiti pas mane.
Leiskite man žinoti, per 72 valandas.
Mes išsiaiškinti sprendimą.
Ir mes pažadame, kad mes ne skaitykite universitetų valdžios institucijos iš esmės.
Taigi, tai geriausia jūsų labui tiesiog būti sąžiningas su visais
dalyvauja metu.
>> GERAI.
GERAI.
Taigi dabar, greitai, kol Aš judėti į priekį, ar kas nors
turite klausimų dėl logistikos apie tai, kaip kursuose mes ketiname paleisti,
kaip skyriai vyksta paleisti, bet, kad?
GERAI.
Taip.
>> Auditorija: [nesigirdi]?
ANDI Peng: Taip.
Taigi quizzes-- kiek iš jūsų yra į pirmadienis / trečiadienis skyriuje?
Kaip daugelis iš jūsų yra antradienis / ketvirtadienis?
Gerai, kad tai kietas Split čia.
Taigi taip, kad mes paleisti jis Jeilio yra tai, kad mes
ketinate turėti du atskirus quizzes-- vieną kiekvienai section-- kad
bus priimtas per klasę.
Manau, kad tai spalio pabaiga spalio kažkas panašaus, kad, kaip per savaitę vieną
viktorinos.
Taip, taip, tiesiog ateiti į klasę.
Tą pirmadienį arba trečiadienį, jums dalyvauti viktorinoje.
Tą antradienį ar ketvirtadienį, jums priimti kitokį viktorinoje.
Bet tos pačios medžiagos bus padengtas.
Taip.
Geras klausimas.
Taip.
>> Auditorija: kur mes eiti patikrinti mūsų pažymius?
>> ANDI Peng: Taip.
Taigi, aš bus išsiųsti patikrinimą E-pašto kokia kiekvieną savaitę
kai viktorinos yra graded-- arba Atsiprašome, kai psets yra rūšiuojami.
Psets paprastai pasuko į iki pietų arba penktadienį.
Taigi, aš pažadu, kad aš bandyti gauti juos atgal į jūsų
iki kito penktadienio vidurdienį.
>> Kai aš Įvertinimas pset, aš atsiųsime tyrimą dėl laipsnio knygos pranešimo
kad jums pasakys savo rezultatą galima peržiūrėti internete.
Taigi teisę šią savaitę, po I baigti klasifikavimo praėjusios savaitės psets,
vaikinai gausite elektroninį laišką pranešimas sakau jums,
ei tai kur jus eiti, kad galėtumėte peržiūrėti savo pažymius.
Ir jūs galite pamatyti kiekvieną suskirstymas savo klasėse.
Jūs galite pamatyti komentarus.
Oi, greitas dalykas, taip pat.
Komentaro skyrius didysis Knyga yra kur aš tikriausiai
praleisti savo laiką rūšiavimo daugumą.
Taigi vienas dalykas, kad tikrai svarbu, kai
vaikinai žiūrite Jūsų rūšių ant jūsų psets
yra ne tik ieško tuo fiziniu rezultatą
bet taip pat atsižvelgiant laiko tikrai skaityti mano komentarus.
>> Dažnai kuris suteikia jums atsiliepimus apie tai, kaip jūs spręsti problemą.
Jei jums reikia padaryti, kažkas šiek tiek geriau,
konstruktyvi kritika dažniausiai yra geriausia pateikti šias pastabas skyriuje.
Taigi prašom, prašom, aš ruošiuosi praleisti laiką raštu pastabas.
Prašome, aš tikrai vertiname tai jei jus vaikinai būtų perskaityti šias pastabas.
GERAI.
Saunus.
>> Gerai.
Taigi mes ketiname pradėti kalbėti ir tiesiog peržiūrėti greitai
kai kurie iš iš medžiagos, nuliui tik todėl mes savaitę
dešinėje puslapio pradedant šios savaitės problemų.
Taigi, o kilpa yra vienas iš trijų tipų kilpų
aptarėme anksčiau šioje klasėje.
>> Kurį laiką kilpa esmės parašyta sintaksę
kur, o tam tikrą būklės, tai padaryti pakartotinai, tiesa?
Pagalvokite apie tai šiuo grafika čia.
Jūs ketinate prasidėti tam tikru savo kodą.
Jūs ketinate įvesti ciklo būklę if-- Nemanau know-- x yra mažiau nei vienas.
>> Jei tai tiesa, kad jūs ketinate vykdyti kilpa kūną.
Ir jūs ketinate nuolat daro kad vėl, vėl, vėl,
daugiau ir over-- kuris yra, kodėl tai loop-- kol Jūsų būklė taps
klaidinga.
Taigi, tokiu būdu, kurio laiko kilpa yra vienas iš paprastesnių būdų
rašyti bet kokį būklės rūšiuoti, kad reikia kartoti vėl ir vėl ir vėl.
Tiesiog būkite atsargūs, kai rašote jokios kilpos rūšiuoti
kad jūs turite išeiti būklės, gerai kaip kokia atnaujinimu
yra todėl, kad jūsų ciklas ne tik paleisti daugiau ir daugiau be galo.
Bet kuriuo atveju, jūs ketinate nori įsitikinti,
kad jūs keičiasi kai aspektą savo kodą arba bent kilpos pabaigoje
tiesiog įsitikinkite, kad jūs turite būdą perėjimas į būklę
kad norite susitikti pabaigoje.
Ar tai prasminga visiems?
Mes tiesiog nenorime būti pasivijo šiame spirale kur
mes einame aplink ir aplink ir nėra jokios pertraukos kilpą.
Ir kiekvieną kilpa esmės turi daryti, kad taip.
GERAI.
>> Antra, daugelis iš jūsų jūsų Mario psets
tikriausiai turėjo įdarbinti šio tipo kilpa.
Tai vadinama, o kilpa daryti.
Pirmiausia, Can anyone tell me koks skirtumas tarp do skirtumas
o kilpos ir while cikle yra?
Taip.
>> Auditorija: while ciklas do veikia ne pirmas [nesigirdi].
>> ANDI Peng: Taip, tiksliai.
Taigi do while cikle visada daro viską, yra viduje darbų, Skliausteliuose
ten ir daro šią sąlygą Prieš tikrinant the-- Atsiprašome,
Ar tai kodą prieš tikrinant sąlyga.
Ir tai ypač svarbūs mus čia į šią klasę, nes dauguma kartų
mes ketiname norite greitai už tam tikrą indėlį rūšiuoti vartotojas.
Ir tada, priklausomai nuo to, įėjimo jie mus
tada mes galime įvertinti, oi, tai turime paskatinti juos vėl?
>> Taigi Mario, jei vartotojas padovanojo tau neigiamas aukštis, pavyzdžiui,
jūs ketinate pirmą eilutę ir daryti viską, kas viduje.
Tada jūs ketinate patikrinti užtrukti.
Jūs žinote, yra neigiamas 1, yra tai, kad teigiamas skaičius?
Jei taip nėra, aš ruošiuosi eiti atgal ir pakartokite daryti ir pakartokite
ir pakartokite ir pakartokite, kol jie Galiausiai jums numerį, kuris jums patinka,
kad mes visi galime įdarbinti mūsų kodą.
Tai gana svarbus iš esmės bet kuris vartotojas įėjimas.
Galiu jums garantuoti, bet kartą iš pset kur
prašome įvesti bet kodą rūšiuoti, mes
tikriausiai suteiks jums testas byla, kurioje mes
ketina suteikti jums kažką blogo tai ketiname bandyti nutraukti savo kodą.
>> Jei mes stengiamės paprašyti jūsų įvesties AN sveikas, mes galime tik suteikti jums eilutę
ir pamatyti, kaip jums būtų dirbti, kad.
Jei mes prašome jus įdarbinti amžių, mes galime suteikti jums neigiamą skaičių
pamatyti, kaip jūs būtų dirbti, kad.
Tiesiog įsitikinkite, kad jums vaikinai bandymai Atvejai, kai jums nereikia gauti geriausias
įėjimas, tegul tiesiog pasakyti.
Ir nors kilpa Do Neretai geriausias
būdas sukurti savo kodą, , kad jis atitinka tą apimtį.
GERAI.
>> GERAI.
Taigi tai yra tikriausiai labiausiai kompleksas kilpa iš trijų
kad mes pažvelgė iki šiol.
Ir atrodo labai baisi ne pirmas.
Bet aš jums garantuoti, kai jūs vaikinai gauti, kaip naudotis už kilpa pakabinti,
tai vienas iš labiausiai naudingų dalykų, Naudingiausi įrankiai savo arsenalą
juda į priekį šioje klasėje.
>> Taigi, pavyzdžiui, į nulio, mes turėjome tai labai paprastas blokas
kad tik pasakė pakartoti tam tikras frazių tam tikrą skaičių kartų.
Beje, SAJ-- tai Scaz Andi Jasonas.
Mes dažnai pasirašyti mūsų laiškus saj.
Jei sakome saj, neturi būti painiojama.
Štai tik mums.
>> Taigi nulio, mes galėjome turėti blokas tai sakė, pakartokite Aš myliu SAJ!
10 kartų.
Labai paprasta.
Už tai logika yra labai, labai paprasta, tiesa?
Noriu pirmas eiti per pirmas laikas ir pamatyti, kad antrą kartą
ir pamatyti, kad trečią kartą, tt ir taip toliau, kol paspausite 10.
>> Ir kaip mes reikštų, kad kodas yra tiesiog per for ciklas paprasta.
Taigi, jūs ketinate paskelbti kintama čia, šiuo atveju,
su tarpt.
Mes ketiname pavadinti Nejaugi aš.
Mes ketiname inicijuoti ją iki 0.
Ir stabdymo leidimas yra bus i yra mažesnis nei 10.
Ir atnaujinimas bus i ++.
>> Ir per kilpą, jis ketina vykdyti, kol galiausiai ji
hitai condition-- galą, kuriame atveju, tai bus pertrauka kilpą.
Turėtų būti daiktų, kad jums vaikinai visi rūšies matęs
ir turėjo padaryti jūsų problema nustatyti vieną.
Ar kas nors turite kokių nors klausimų dėl už kilpomis dabar?
GERAI.
Didysis.
>> GERAI.
Taigi tiems iš jūsų, kurie turi skaityti pset spec šią savaitę
žinau, kad mes ketiname turėti įdarbinti kažką vadinama ASCII ASCII ir stalo.
Taigi Dovydas paskaitą perėjo trumpai kaip kompiuteriai essentially-- viskas
užkoduota kompiuteriu dvejetainis iš nulių ir.
Ir taip, kad kompiuteriai gali saugoti skirtingas vertybes, be
į nulių ir yra per kartografavimo šie skaičiai atstovauti kitoms skaitmenys
arba iš esmės kitų simbolių.
>> Taigi šiuo atveju yra ASCII table-- visi ji
yra žemėlapis ženklų, simbolių, į numerius.
Taigi kodo failą Jūsų computer-- ji mato,
Ei, iš nulių ir krūva, nulių ir, nulių ir.
Štai ką saugomi į Tikrasis atminties kompiuterio.
>> Bet kai mes, žmonės nori bendrauti su kompiuteriu,
mes want-- pasakyti, pavyzdžiui, jei noriu didžiąją A,
Aš ruošiuosi reikia tam tikru būdu pasakoja kompiuterį, OH,
kai aš tipo didžiąją A, aš tai tai atstovavimas dvejetainius.
>> Ir taip, kaip mes darome, kad būtų išmetė savavališkai dalykas vadinamas ASCII lentelę,
kur mes, kaip žmonės, kaip programuotojai, prieš kurį laiką,
mes savavališkai nusprendė, kad mes einasi priskirti šias numeris
vertės Šių simbolių.
>> Taigi vaikinai gali google tai internete.
Aš manau, kad yra nuoroda į jį savo pset-- tik ASCII žemėlapis stalas, ASCII
stalo.
Tai tiesiog verčia dvejetainis numerius į simbolius.
Ir tai bus labai naudinga jūsų problemos rinkinys
kai norite apskaičiuoti nieko arba jei
norite rodyti tam tikrą simbolių ar sveikieji skaičiai
arba manipuliuoti tam tikrus simbolius.
Tai bus labai Svarbu, kad jūs visi
žinoti, kaip naršyti ASCII lentelę.
>> Taigi, pavyzdžiui, į didžiąsias A atstovauja skaičius 65.
Ir mažosiomis atstovauja 97.
Todėl labai svarbu žinoti, kad skirtumas tarp dviejų reikšmių
yra 32.
Dažnai, jei jums reikia konvertuoti iš vienas į kitą, skirtumas yra 32.
Ir nesijaudinkite, jei esate natūra sutrikusių apie tai ne pirmas.
Mes eiti per tai, kaip mes norėtume dirba tai faktiškai kodą.
>> GERAI.
Taigi tiems iš jūsų, su nešiojamaisiais kompiuteriais iš, nedvejodami atsigriebti ASCII lentelę,
nes tai tikriausiai reikalauja, kad jūs vaikinai nuoroda
ką personažai.
GERAI.
>> Taigi žinant, kad tam tikra simbolių žemėlapį į tam tikrus numerius,
jei aš buvo paleisti tik pirmas linija, kad code-- į printf A,
mažosiomis yra minus didžiąsias A. Ar kas nors
turi apie tai, kas būtų spėti spausdinti iš ekrano dabar?
>> Taigi pirmiausia, ką mažųjų atstovauti?
Tai, kas numeris yra tai, kad užkoduotas ASCII lentelėje.
Atsiprašome?
>> Auditorija: 97?
>> ANDI Peng: 97, puikus.
Ir kas yra didžiosios Ã?
>> Auditorija: 65.
>> ANDI Peng: Taigi, kas yra 97 minus 65?
>> Auditorija: 32.
ANDI Peng: Gerai.
Taigi, ką jūs manote ketina atsitikti, kai aš įvestį, kad linija kodą
į savo kompiuterį?
>> Auditorija: [nesigirdi].
ANDI Peng: Atsiprašome, kalbėti.
Nesijaudink.
Tai labai saugus aplinka, atėmus kamera.
Mes visi vyksta to-- be rūpesčių.
Tiesiog mes visi ketiname apsimesti, kaip tai tik mums atšaldymo šiame kambaryje.
Nesijaudink.
Ne klausimas yra pernelyg kvaila.
Nėra atsakymo yra kvailas atsakymas.
Aš tikriausiai klysti į mano mokymo kursą.
Rimtai, vaikinai, tik leptelėti jį.
Būkite tikri savimi, žinote?
Taigi, kas tai buvo?
Kas sakė, kad paskutinį atsakymas?
GERAI.
Shout, kad gražus ir aiškus.
>> Auditorija: 32?
>> ANDI Peng: 32.
Gerai, tegul paleisti šį kodą ir pamatyti, jei tai, kas vyksta.
GERAI.
Taigi, kaip jūs vaikinai gali rūšies matyti, tipiškas notacijos aš
įsteigė čia kaip mes naudojame bet programoje Rūšiuoti mūsų kompiuteryje.
Mes turime pagrindinę funkciją per mūsų pagrindinė funkcija.
Aš tiesiog ketinate kopijuoti ir įklijuokite šį kodą liniją.
Taip pat būkite atsargūs, kai jūs vaikinai yra kopijuodami kodą.
Kartais tam tikri operatoriai nereikia apklijuoti teisingai.
Tokiu atveju, atėmus ženklas buvo iš tikrųjų brūkšnelis.
Ir taip kompiuteris nebuvo pasiimti.
Taigi turėjau grįžti ir fiziškai Pakartokite kad.
Tiesiog būkite atsargūs, kai vaikinai tai daro.
>> GERAI.
Mes ketiname paleisti tai čia.
Taigi mes ketiname cd į mūsų section2.
Aš vadinama ši programa asciimath.
Taigi nepamirškite, kai mes paleisti bet programa, visų pirma norime kaupti ją
paleidę jį per mūsų markė.
Ir tada mes norime iš tikrųjų paleisti atlikdami DOT-velniop programa.
Taigi mes ketiname ./asciimath.
>> Teisė, ten mes einame.
Ir mes matome 32.
Šauniai padirbėta.
Jūs nusipelno saldainiai gabalas.
Saldainiai už jus.
Atsiprašau.
Gerai.
GERAI.
Taigi, mes galime grįžti prie mūsų pavyzdyje.
Aaa, ne.
Aaa.
GERAI.
Aš tik ketina jį laikyti, kaip kad.
GERAI.
Taigi, kaip jūs vaikinai galite pamatyti, ką galime padaryti daug labai įdomių dalykų,
daug labai įdomių dalykų, daug labai sudėtingi dalykai, susiję su
ASCII simbolių ir skaitmenų.
Kai jūs gaunate žemyn linija penki, tai daug sekti kartu.
Mes neketiname eiti per skyriuje.
Nesivaržykite, jei galite, Paaiškinimas ant popieriaus
Pirmasis, ką reikia vyksta, kai vertybių įvedėte tokia eilutė.
Pavyzdžiui, tuo, kad pastarąjį linija, turime z-- kuri atstovauja tam tikrą number--
a-- kuris taip pat reiškia tam tikri number-- plius 1 MODULOS 26
plius mažosiomis a.
>> Jei vaikinai nuolat skaityti per šiuos, jums
gali pamatyti modelis sugalvoti kaip mes manipuliuoti kodą.
Aš labai, labai rekomenduojame juk jus skyriuje
vaikinai eiti į priekį ir įvesties tie visi jūsų kompiuteryje
ir pamatyti, kokios numeriai išeina
ir protavimo per Kodėl tie, kurie vyksta, nes jūsų psets
tai bus tikrai svarbu jums suprasti
kodėl tam tikri dalykai vyksta.
Visi šie skaidres bus internete.
Taigi ne apie bando rūpesčių fiziškai nusikopijuokite pastabas.
Viskas internete.
Tai pati skyriuje bus internete.
Visi mano kodo, kad Bėgu bus internete.
Taip.
Ar jūs vis dar turite klausimų?
Auditorija: Kas yra MODULOS?
ANDI Peng: Gerai.
Taigi modulį yra operatorius, ketina būti gana svarbi jūsų vaikinai Liaudies pset
čia.
Taigi taip, kad operatoriai C ir programavimo darbo
yra tai, kad jūs turite tai, kas vadinama padalinys simbolis ir modulis simbolis,
kuri yra kaip procentų ženklas.
>> Taigi C, kai jūs darote sveikasis skaičius dalijamas iš sveikojo skaičiaus su pasviruoju brūkšniu,
C turi tendenciją norite iškirpti išjungti visus dešimtųjų kiekis,
nes yra sveikas skaičius nori konvertuoti į visumą.
Jis nesiruošia norite būti dvigubai su kablelio visi po to krūva.
>> Taigi, jei aš tai padaryti 3 padalintas iš 2, tai vyksta atkirsti 0.5 ir tiesiog suteikti jums 1 d.
Taigi, kad kažkas bus labai atsargūs, kai jūs
daro kokią nors matematika rūšiuoti programavimo, yra ta, kad šie skaičiai gausite
gali būti ne numeriai kad jums buvo mąstymas,
kuris yra, kodėl apvalinimo jūsų paskutinis pset yra labai svarbi.
>> Modulo suteikia jums dalį.
Taigi, pavyzdžiui, jei aš 3 modulį 2-- taip 3 proc ženklas 2--
jis duos jums, kad likusią dalį.
Taigi 3, padalytą iš 2 1.5.
Tai 1 likusi 1.
Tai suteiks jums 1, kuris yra, kad likusi.
>> Taigi, kai jūs vaikinai juda per ASCII lentelę,
modulį bus baigti yra kažkas, kad labai svarbu,
ir mes aptarsime, kad vėliau.
>> GERAI.
Taigi kažkas, kad yra gražus, gana naujas ir gana unikalus
kad mes aptarti šią savaitę tai, ką masyvas yra sąvoka.
Taigi, masyvo yra pirmasis tipo duomenų struktūra
kad mes ketiname susidurti šioje klasėje.
Visi duomenys struktūra yra kai savavališkai rūšiuoti,
pažodžiui dalykų, pavyzdžiui, struktūra kad mes, kaip programuotojai sukūrė,
kad mes įdėti mūsų kodą, gali būti kitų vienetų kodą.
>> Taigi šia prasme yra array-- galvoti apie tai, kaip failo CAB,
kur, jei atidarote skiriasi lentynos jūsų failo CAB,
galite prieiti prie skirtingų dalykų.
Atmintyje, masyvas yra tiesiog daro tas pats dalykas kompiuteryje.
Jūs galite turėti skirtingą blocks-- mes skambinti jiems indices-- masyvo.
Tai kaip blokas, iš atminties lentyna
kad mes sukūrėme per savo Kompiuteris, galite įvesti
tam tikri dalykai skirtingose ​​erdvėse.
>> Taigi su masyvo, jums visada turi specify--
Jūs turite nurodyti, skelbiantys masyvo tokiu formatu.
Jūs ketinate pirmą kartą nurodyti duomenų tipą
kad norite sukurti masyvo.
Jei aš noriu yra sveikųjų skaičių masyvas, Aš ketina pateikti int teisę ten.
Jei aš noriu yra eilučių masyvą, Aš ruošiuosi įdėti eilutes ten,
Jūsų masyvo vardas, o tada jūs ketinate turėti skliaustus.
Ir viduje laužtiniuose skliaustuose, jūs teks savo masyvo dydį.
>> Kažkas, kad tikrai svarbu nepamiršti kuriant masyvus yra
kad, kai jūs sukuriate masyvas, kad dydis negali pakeisti.
Taigi, jei žinote, kad dabar turite iš 10 dydžio masyvą,
jūs žinote, kad aš ruošiuosi turėti 10 ląsteles per arba 10 rodiklių šioje masyvas,
ir jis niekada išplėsti arba sumažinti
nesvarbu ką, ir kad ten Šiuo metu tik 10 blokai erdvės
paskirstyti savo atminties, kurios gali laikyti iki 10 dalykų, bet kokio jūs įdėti.
>> Taigi, tokiu būdu, masyvo duomenų tipas, duomenų struktūra, kuri yra matrica
labai skiriasi nuo kai kurių kitų mes būti padengti vėliau šį kursą.
Taip.
Pavyzdžiui, jei norite sukuria 3 dydžio matrica,
esančios kintamieji integer-- Oi, atsiprašau, iš temperature--
ir temperatūra, iš Žinoma, yra sveikas skaičius.
>> Taigi, mes sukeltų LC, kuris yra duomenų tipas, ką mes norime saugoti.
Mes ketiname tai vadiname temperatūrą dėl nomenklatūros įvardijimo labui
kažkas, kad mes visi suprantame.
Ir mes ketiname turėti skliaustus.
Ir mes norime tris numerius.
Taigi mes ketiname daryti trijų viduje ji.
>> Kažkas, kad tikrai Svarbu nepamiršti,
yra tai, kad matricos yra nulis indeksuojami.
Visa tai reiškia, kad jums pradėti nuo 0 indeksą,
ir paleisti iki per dydis masyvo minus 1.
Taigi, pavyzdžiui čia, mes turi apie 3 dydžio masyvo.
Tai bus galima surengti tris reikšmes.
Bet numeriai themselves-- kad skaičius, masyvas, kad indeksas,
masyvas, yra 0 per 2.
Taigi vaikinai, tikrai, tikrai atidūs jūs ketinate per jūsų problemos nustatytų
ir sukurti bet kokio masyvo rūšiuoti, nes iš karto tai daug
tikrai, tikrai lengva pamiršti, kad.
Aš iš tikrųjų neturi indeksą 3, kad aš šiuo metu tik
turėti 2 indeksą.
Ir jei jūs bandote pasiekti trečiąjį indeksą,
tai bus kas vadinamas null terminatorius.
Jis nesiruošia iš tikrųjų egzistuoja masyvo.
Ir kompiuteris nesiruošia tai patinka.
Taigi būkite atsargūs, kai jūs susipažinimo dalykų tiesiog
siekiant užtikrinti, kad jums prisiminti kad matricos yra nulis indeksuotas.
>> GERAI.
Taigi pirmas pavyzdys yra tik vienas iš būdų sukurti masyvą.
Antrasis pavyzdys Turiu Toliau yra tik atskiras būdas
sukurti, kas yra tie patys duomenys struktūra, kurią mes ką tik įvestas.
Taigi vietoj fiziškai veikia per ir išleisti temperatūra nuo 0
lygus whatever, temperatūra 1 lygus nepriklausomai, temperatūra 2 dydžiu neprilygstami
kas, galėjau iš tikrųjų tik tiesiogiai sukurti visa tai vienoje eilutėje
į temperatūros laužtiniuose skliaustuose lygus.
>> Ir pranešimas šiuo atveju, jums nereikia nurodyti, kaip didelis jūsų masyvas,
nes kompiuteris ketina eiti per ir pamatysite, kad ten
trys elementai tose garbanotas petnešos.
Ir tai vyksta žinoti, gerai, Man reikia apie 3 dydžio masyvo.
Jūs neprisijungęs ketinate reikia įvesties jis tokiu būdu.
>> Ir taip pat, taip, kad taip.
Ar kas nors turite klausimų apie tai, kaip mes darome masyvai
arba kaip veikia masyvo struktūra?
Taip.
>> Auditorija: [nesigirdi]?
ANDI Peng: Taip, tiksliai.
Taigi, jei jums buvo paskelbti ir inicijuoti masyvas šis metodas,
kuris yra antras būdas, galite tiesiog palikti juos.
Ir kompiuteris automatiškai žino, kad ji
reikia suskaičiuoti, kiek daug elementų yra tose garbanotas petnešos, atskirti
kableliais.
>> Taigi čia jie mato 65, 87, 30 d.
Kad kompiuteris žino, OH, ten trys sveikieji skaičiai.
Žinau sukurti masyvo vardą temperatūra su trijų elementų į jį.
Geras klausimas.
Taip.
>> Auditorija: Ar ne būtų galima sukurti su skirtingų tipų duomenų masyvo
kad gali būti įtraukti į jį?
Pavyzdžiui, skaičių [nesigirdi]?
ANDI Peng: Dėl tikslais šios klasės, ne, dabar.
Kai kuriate duomenis struktūrizuoti kaip masyvą,
sakai kompiuteris, ei, man reikia tavęs
skirti tai daug atminties mano kietajame diske,
su kiekviena ląstelė būdamas tam tikras skaičius bitai.
>> Įsiminti mes sužinojome savaitę nulį, skiriasi duomenys
rūšys turi skirtingus dydžius?
Taigi, pavyzdžiui, styginių yra skirtinga suma
erdvės, nei char, kuri yra kitoks suma erdvėje
iš sveikojo skaičiaus.
Ir todėl, jei nenurodysite ir jūs sumaišoma ir suderinti Kokie kintamieji
turite, kompiuterio bus labai sutrikę.
Ir ji nesiruošia žinoti kiek atminties duoti jums.
Taigi tikslais dešinę dabar, kompiuteriai gali tik
pripažinti vienos rūšies masyvo.
Geras klausimas.
GERAI.
>> Taigi Natūralu, kad Antrasis klausimas turime
yra gerai, dabar, kad mes sukūrėme masyvas ir mes sudėjome visų šių dalykų
masyve, kaip mes bus galima ją gauti?
Taigi tipinę struktūrą, kad mes visada prieiti prie masyvo yra mūsų miela kilpa.
Aš jums pažadu, vaikinai, kad mes būsime matome iš Šitas daug čia.
>> Iš esmės, bet kuriuo metu norite į įvesties verčių į masyvą
ar norite prisijungti prie juos, tuo Geriausias būdas tai padaryti yra už kilpos,
nes už kilpos, jums žinoti, kiek kartų jūs esate
ketinate norite paleisti per masyvas, nes jūs turite sustabdyti leidimą, tiesa?
Ir kiekvieną kartą paleidus per, galite prieiti prie
kitoks elementas masyvo.
>> Taip pat, tai yra priežastis, kodėl paprastai Mes pradėjome mūsų už kilpomis tuo 0 verte,
nes kai jūs gaunate prieigą matricos, Jūs galite patekti į nulinį indeksą.
Ir todėl jis lygiuojasi labai gražiai.
Vaikinai gali norėjau rašyti int i lygus 1.
i yra mažiau nei arba lygus 3.
>> Bet tai ne darbas visai taip gerai čia, nes tik Jums
turi elementus, 0, 1, 2 ir.
Ir todėl, jei jums buvo pradėti savo i tuo elemento 1, 2, ir 3,
jūs ketinate baigti veikia iš jūsų masyvo ribų,
ir blogų dalykų nutiks.
>> Taigi tikiuosi jus vaikinai pamatyti Segue kodėl ankstesniuose klasių
mes buvome moko jus vaikinai, kaip paleisti ir formatuoti už kilpa kelią, kad mes buvome.
Tai todėl, kad dabar mes perkėlėte į masyvų,
jūs galite pamatyti, kodėl 0 skolina Pati labai gražiai galima susipažinti.
>> Taigi, kaip mes darome tai that-- aš tik spausdinant ją čia sumetimais
spausdinti jį.
Bet turiu vietaženklį, atskirdami juos kableliais.
Ir tikrasis prieigą dalis vyksta.
Masyvo vardas buvo vadinama temperatūra.
Taigi, tai temperatūra ir i-asis elementas masyvo.
>> Taigi, kaip už kilpos eina per, jis ketina pradėti 0.
Ji ketina išspausdinti 0. indeksas šio masyvo.
Tada jis ketina spausdinti iš pirmojo elemento.
Tada jis ketina spausdinti iš antros.
Ir tada mes ketiname nutraukti.
Ar kiekvienas aiškiai kaip kad vyksta?
Didysis.
>> Gerai.
Taigi čia mes turime būdą sakydamas, jei mes nenorėjome
kietojo kodu in-- mane kaip programuotojas.
Aš nenorėjau, kad iš tikrųjų fiziškai įdėti į kiekvieną atskirą elementą
Šio masyvo.
Jei aš norėjau vietoj turi vartotojo įvesties verčių,
kas yra geriausias būdas tai padaryti?
>> Na, čia aš sukūriau Tai puikus funkcija,
į kurį galiu paskelbti masyvą.
Taigi int scores-- tegul tiesiog pasakyti, kad mes norime, kad
masyvas, kad surengė visų 18 rūšių studentų Čia, šiame skyriuje.
Manau, mes turime šiek tiek daugiau nei 18 vaikai ir šiandien.
Bet, pavyzdžiui labui, tegul tiesiog manyti, mes turėjome 18.
Norėčiau sukurti masyvą pavadinimas sąskaitas su tipo tarpinis junginys, nes balų, žinoma,
yra skaičiai.
Ir aš ruošiuosi 18 laužtiniuose skliaustuose,
nes tai, kiek studentų Aš nori, kad būtų galima laikyti daugybę.
>> Ir aš taip norėčiau užpildyti masyvas yra tai, kad aš
per jį paleisti už kilpos, iš Žinoma, su 0 yra mano 0. indeksas.
Ir tada su 18 yra mano sustojimo leidimas, nes ten
18 elementų masyvą.
Ir tada aš ruošiuosi daryti printf, įveskite pelnyti student-- bla bla bla.
>> Can anyone tell me, kodėl čia aš spausdinti i plius 1 ir ne aš?
Tai tipo triukas klausimas, tikrai ne.
Tai iš tikrųjų nėra fiziškai įtakos kodas veikia.
Taip.
>> Auditorija: [nesigirdi] 0?
ANDI Peng: Taip, tiksliai.
Tai šiek tiek nepatogu sakyti, ei, Jūs esate 0. studentas šioje klasėje.
Tai šiek tiek keista.
Taigi mums, kaip žmonėms, ne tikrai patinka galvoti apie tai, kaip kompiuteriai manote.
Taigi, nors į kompiuteryje, tai saugoti vertybes
į 0-ojo indekso kai mes žmonės, mes tikrai ne
norėtų paminėti patys kaip nulis.
Taigi, kai aš tiesiog atsispausdinti, kad Aš ruošiuosi atsispausdinti ir pridėti
1 tik dėl aiškumo.
Taigi, kai aš spausdinti, aš ruošiuosi būti gali spausdinti studentus nuo 1 iki 18.
Tai nėra iš tikrųjų paveikti Kodekso veikia
jokiu būdu, aš būdas spausdinti.
>> Tačiau būkite atsargūs, kai jūs realiai patekti į masyvo.
Kai pamatysite balai i Nuoroda Čia aš iš tikrųjų
susipažinimo su 0-nį indeksą ir ne 1 plius 0-- arba 1 plius 1,
šiuo atveju, indeksas taip, kad tai tikrai aišku.
Ar kiekvienas rūšies OK kaip tai veikia per
ir su kiekvienu rodyklės aš išleisti vertę į masyvą
ir sukurti su 18 skaičių masyvas kad vartotojas ketina įvesti?
GERAI.
Saunus.
>> GERAI.
Mes dabar perkelti į kažką, kad gana svarbūs šios dalių rinkinys, taip pat.
Žinau paskaitos David-- Atsiprašome, jūs turėjote klausimą?
>> Auditorija: Ar galite jį padidinti?
>> ANDI Peng: Taip, taip, aš bandžiau.
Bet aš nežinau.
Dėl tam tikrų priežasčių, tai versija PowerPoint
yra tikrai neveikia gerai su ekrane.
Taigi mes tiesiog vyksta laikyti jį kaip šis.
Visa tai bus įkeltas internete.
Atsiprašome, vaikinai.
Taip.
GERAI.
>> Taigi, mes taip pat gali turėti stygos.
Taigi, jei jus vaikinai iš tikrųjų notice-- I žinoti Robas perėjo tai toje paskaitoje
kad jis did-- eilutė yra iš tikrųjų tik simbolių masyvas,
jei jūs manote apie tai, tiesa?
Styga yra pavadinimas arba sakinys ar žodis, tiesa?
>> Jei aš būčiau sukurti eilutę, pavadintą Andi-- tik mano vardą, N-D-I priedą.
Manote, kad tik vieną kintamąjį.
Bet iš tikrųjų, tai suskirstytas į tik pagal simbolių masyvo.
Taigi jis gavo charakterio saugomi masyve vertės.
Jis atšoko n charakterį saugomi antrasis indeksas ir taip toliau, ir taip toliau.
>> Taigi, tokiu būdu, mes iš tikrųjų turi tokio pobūdžio
struktūros nustatyti padėkite mūsų stygos.
Taigi čia, jei aš buvo įvesti į Žodis "valgyti", - taip styginių žodis lygus
gauti eilutę.
Jei aš būčiau įvesti žodis "valgyti", kad yra fiziškai taip, kad mano kompiuteris
yra saugoti, kad seka mano atmintyje.
>> Ir jei aš norėjau paleisti per, kad ir spausdinti, kad out-- Taigi į i
lygus nuliui, atminkite, kad paskaitos, mes kuriems kažkas, kad vadinama strlen,
arba eilutės ilgis.
Nes aš ne iš tikrųjų žinote, kaip didelis masyvas yra
bet kokio vartotojo inputting--
>> Pavyzdžiui, aš įvedamos žodis "valgyti", ir aš žinau,
tai trys simboliai, tiesa?
Taigi galėčiau įdėti į trijų joje ir viskas bus gerai.
Bet jei jūsų naudotojo įvesties kažką tai yra skirtingas skaičius vertybių,
jūs ketinate negalės tikrai žinau, kad, kai jūs užprogramuoti kodą.
>> Taigi taip, kad mes tvarkome testinius atvejus kaip kad yra tai, kad mes turime kažką
vadinamas strlen, kuri yra tik funkcija kad jums pasakys, kiek laiko eilutė yra.
Taigi strlen žodžio.
Mano žodis yra valgyti.
n yra lygus strlen iš žodžio.
Ar kas nors man papasakoti, kas tai vertė iš tikrųjų yra teisus ten?
Ką N atstovaujanti teisė dabar, šiame pavyzdyje, jei aš turėjo maitintis?
>> Auditorija: 3.
>> ANDI Peng: 3, tiksliai.
Taigi, mes turime int i lygu nulis, n yra lygus 3, iš esmės.
Ir aš ketina paleisti kol jis mažiau nei 3i ++.
Ir ji ketina iš esmės eiti per ir padaryti tą patį.
Ji ketina išspausdinti kas vertė ir duoti jums
El-A-T. Tai tiesiog žymintis skiriasi būdas jį raštu.
Tai ketina būti labai naudinga.
Taip.
Auditorija: Kokia nauda išleisti n yra lygus strlen žodį viduje, kad
for ciklas [nesigirdi]?
ANDI Peng: Taip.
Taigi, jei aš būčiau to-- pasakyti, pavyzdžiui, jei aš buvo padaryti, kad ir tada
do-- oop--, kad mano kodas, ji būtų iš tikrųjų daro, kaip tą patį dalyką.
Tačiau būdas, kad Davidas paaiškino IT paskaitos metu, jei kuri nors iš jūsų vaikinai
atminkite, kad, kaip žmonės, kaip programuotojams,
mes tikrai pabandyti programuoti DUK kodas, kad mūsų kompiuteris turi
dirbti minimali tiek, kiek įmanoma, todėl kad mūsų kodas yra labai veiksminga.
>> Taigi, jei aš turėjo, kad, ką nutiktų per mano už kilpos
yra tai, kad aš pirmą kartą norime paskelbti kintamasis pavadintas i bus 0.
Aš einu patikrinti, OH, kokie žodžio strlen?
Oi, strlen yra 3.
Taigi yra i mažiau nei tris?
Taip tai yra.
Aš ruošiuosi paleisti.
>> Ir tada antrą kartą grįžti aplink kilpa, aš ruošiuosi prieaugio i.
Aš tai bus vienas.
Ir aš ketina patikrinti, OH, bet kas iš žodžio strlen?
Oi, tai trys.
Ir tai daro, atrodo rūšies išlaidavimas, kiekvieną kartą paleidus per kilpą,
būti tikrinant funkciją, Nors žodis strlen
niekada iš tikrųjų keičia?
>> Taigi, tai papildomai galia kompiuterio.
Kai pradeda kalbėti apie dalykus, kad yra milijardai ir milijardus
ir milijardai vietų ilgas, įsivaizduoti kompiuterį
turintys fiziškai eiti per ir patikrinti visų, kad kiekvienas laiką.
Štai kodėl, kad tik už siekiant veiksmingumo,
mes linkę tiesiog daryti tai, nes tokiu būdu mes tik
paskambinę funkciją vieną kartą pradžioje,
ir kad kiekvieną kartą, kai jis eina per ji vyksta
laikyti vertę 3 ten, kad jūs neturite
turi nuolat tikrinti kiekvieną kartą.
Taip.
>> Auditorija: Atsiprašau.
Tiesiog [nesigirdi].
Ar jūs int n lygus strlen ir įdėti kad virš lauko for ciklas
taip pat?
ANDI Peng: Taip.
Jūs galite tai padaryti, absoliučiai.
Priežastis turime jį čia nes taip for ciklas darbų
yra tai, kad ji vadinama vietos kintamasis ta prasme,
kad viskas jums sukurti viduje už linijos
egzistuoja viduje tik už kilpos.
>> Taigi kintamasis aš tik egzistuoja tose skliausteliuose.
Ir čia N kintamieji taip pat egzistuoja tik tuose skliausteliuose.
Taigi, jei jūs norite naudoti strlen iš Žodis kelis kartus apačioje,
absoliučiai geriausias būdas tai padaryti būtų paskelbti jį viršų
todėl jūs neturite daryti vieną kartą.
Taip.
Auditorija: Kodėl jūs turite nauja linija po procentų
pamatyti, jei norite įdėti visus raidės šalia jos atskirti?
>> ANDI Peng: Oi, aš norėjau spausdinti visus juos kiekvienoje eilutėje.
Tai nesvarbu.
Taip, tai formatavimas.
Tai geras klausimas, nors.
Taip, jei aš norėjau spausdinti visa tai tik viena linija,
Nenorėčiau turėti į brūkšnys.
GERAI.
Kiekvienas geras?
GERAI.
Saunus.
>> Taigi, aš manau, kad aš kalbėjau pakankamai.
Jus vaikinai eilė eina per kodas ir pasakyk man, kas yra negerai čia.
Kur klaidą?
Taigi, kaip matote, aš deklaruotas Naujas masyvas tipas styginių pavadintas klasėje.
Ir aš įvestas Sam, Jess ir Kim į jį.
Ir aš bandant spausdinti visi masyvo elementai.
Ar kas nors pasakykite man, kodėl tai ketina duoti man problemų?
Aš duosiu jums, vaikinai, 10 sekundžių galvoti apie tai.
>> GERAI.
Taip?
>> Auditorija: Ar kairė centras lygus 3 arba [nesigirdi]?
ANDI Peng: Teisė.
Taigi, kiek kartų tai yra faktiškai ketina paleisti per šį kilpa?
>> Auditorija: Keturi.
>> ANDI Peng: Būtent.
Ji ketina per keturis kartus.
Ji ketina paleisti per bent 0, 1, 2 ir 3,
nes jų elementas yra i yra mažesnis nei arba lygus 3.
Jis nesiruošia sustoti, kai jis 2.
Tai vyksta nuolat vyksta, kol ji hitai 3.
Ir kaip žinome, yra tik trys elementai mūsų tikrasis masyvo.
>> Jei mes stengiamės pasiekti ketvirta elementas arba 3 indeksas,
jūs ketinate Hit kažkur atmintyje, kad neegzistuoja.
Tai vadinama null terminatorius.
Nieko vyksta ten.
Jūsų kompiuteris nesiruošia būti labai laimingas su jumis.
Taip.
Ar kas nors turite klausimų kodėl kuris buvo vyksta?
Štai bendras plotas išvengti.
Taip.
>> Auditorija: Ar ne pirmas skaidrę taip pat turime 2 eilutę?
ANDI Peng: Ne
Taigi, iš esmės, kai darote masyvą,
kad laikiklis teisė ten, kad number-- visi
tai sakau jums, kaip daug elementų turiu.
Tai nėra iš tikrųjų pasakoja man nieko indeksai.
Taigi šiuo atveju, aš žinau, aš noriu rašyti su trijose vietose,
su trimis fizinių vietų į palaikykite, ką noriu laikyti.
Štai kodėl numeris trys yra.
Tačiau, jei aš norėjau kad iš tikrųjų jį pasiekti,
jei aš norėjau pasakyti, printf klasė laikiklis numerį, tada
jūs ketinate iš tikrųjų įdėti fizinė puslapis ten.
Taip, geras klausimas.
>> Auditorija: Taigi yra fizinis rodiklis turėtų būti [nesigirdi]?
ANDI Peng: aš atsiprašau.
Ar galite kalbėti truputį?
>> Auditorija: Taigi yra fizinis puslapis [Nesigirdi] kiekviena iš dėžės?
[Nesigirdi]?
>> ANDI Peng: Taip.
Taigi, aš ruošiuosi grįžti į čia.
Pagalvokite čia.
Mes turime iš 3 dydžio masyvo.
Yra trys vietos, kaip, fiziniai pamainymai čia.
Bet jie pavadino 0, 1, ir 2.
Taigi, jei aš norėjau prieiti prie jų, būdas, kad aš prie jų
yra printf bet kokio norėjau čia.
Jums reikės spausdinti dėmesį į jo vardu,
nes tada kompiuteris žino, oi, man reikia ieškoti
šiame masyve už 0th indeksą.
Taip.
Bet jo dydis nesikeičia.
Dydis yra 3, nepriklausomai kaip jums ženklinti juos.
GERAI.
Kiekvienas geras?
Auditorija: Taigi kiekvieną kartą aš [nesigirdi]?
ANDI Peng: Gerai.
Taigi šiuo atveju, mes darome tikrai ne patekti į ją dabar į paskaitas.
Bet žinau, kad kaip I string-- minėta anksčiau, styginių yra iš esmės
AN simbolių masyvas.
Taigi, jei aš sukurti masyvą eilučių, I rūšies
turėti iš masyvo masyvas simbolių, tiesa?
>> Taigi, šiuo atveju, nes I turi eilučių masyvą,
jei buvo įvesti tikrai ilgas žodis, kad vis dar užima tik vieną erdvę,
nes tai viena eilutė.
Bet jei buvo galvoti apie tos masyvo simbolių,
tada, kad pradėjimo daug daugiau simbolių kaip bet kuris iš Kitaip tariant
yra.
Ne tikrai svarbu dabar.
Bet tai tiesiog paprastai kaip jis veikia.
>> GERAI.
Taigi, tai yra kažkas, aš jums tai padaryti virš semestro kursą daug.
Man reikia pailsėti mano balsą.
Jūs vaikinai reikia stimuliuoti save.
Daug iš jūsų tikriausiai turi miegoti dabar.
Aš įvedusi atsitiktinių problemų kur mes, kaip klasės ar jūs
su partneriu šalia jūs ketinate praleisti porą minučių aptarti
apie tai, kaip mes norėtume eiti apie sprendimo arba sukurti programą, tokią, kaip tai.
>> Taigi dabar mes norime sukurti program--
mes ketiname jį vadiname upper.c-- kad konvertuoja
mažosiomis žodis viršutinės klasės string-- didžiąsias, atsiprašau.
Žodis stygos, atsiprašau, yra sinonimai.
Aš ruošiuosi juos pakeisti reiškia tą patį.
>> Taip.
Paimkite porą minučių.
Ji neturi būti parašyta kokia kalba.
Tiesiog Pseudocode kodą arba logiškai, kaip mes norėtume, net
eiti apie tai daro tokią problemą.
Taip.
>> [PUSĖ POKALBIS]
>> Aš taip pat pastebėjau, kad vaikinai can-- I rūšies pamatyti jau programą.
Manau, man trūksta vedėjas režimas yra problema.
Bet tai viskas OK.
>> [PUSĖ POKALBIS]
Taip, prašom, vaikinai.
Ateikite gauti saldainių.
>> Auditorija: Taip!
>> [PUSĖ POKALBIS]
ANDI Peng: Taip pat, taip, Aš pradėsiu mesti saldainiai
žmonėms, kurie neturi atsakyti į klausimus.
Taigi jūs visi turėtų atsakyti į klausimus.
Arba aš manau, žmonės, kurie do atsakyti į klausimus.
Taip, atvirkščiai.
>> [PUSĖ POKALBIS]
Auditorija: [nesigirdi]
>> ANDI Peng: Taip.
Taip.
>> [PUSĖ POKALBIS]
>> Gerai, vaikinai.
Paimkite, pavyzdžiui, dar 10 sekundžių.
>> [PUSĖ POKALBIS]
>> Gerai, vaikinai.
Taigi, kol mes pradėti bando iš tikrųjų fiziškai rašyti kodą,
geras įprotis kurti yra tas, kad norime pirmosios rūšies priežasties
iš logiškai, kaip mes norėtume daryti.
Jūs norite įsitikinti, prieš jus fiziškai
pradėti bando kodą Mario, kad jūs padaryti
Įsitikinkite, kad turite savo Pseudocode.
Tai atsižvelgiant jus per ko jums reikia sukurti taip,
kad kai jūs fiziškai parašyti savo programą vėliau,
galite geriau sugauti klaidų Jūsų kodas ir dalykų, pavyzdžiui, kad.
>> Taigi mes ketiname tiesiog pradėkite by-- anglų kalba, į Pseudocode,
Ar kas nors nori duoti man bendrinis paaiškinimas
kaip mes norėtume eiti apie tai daro?
Taip.
>> Auditorija: [nesigirdi].
ANDI Peng: Žinoma, jokių rūpesčių.
Auditorija: Ar galite paprašyti jį arba paprašyti nors gauti string 1-- Taip, eilutę,
ir tada--
>> ANDI Peng: Taip, taip, tai yra gera pradžia.
Aš pradėti rašyti, atsiprašau, kaip jums kalbėti.
So--
>> Auditorija: --Draugai mažosiomis raidėmis numeriai yra didesni, tiesa?
Ar mažosiomis raidėmis turi labai daug?
ANDI Peng: Būtent.
Auditorija: Taigi mes atimti 32, nepriklausomai nuo jų [nesigirdi].
>> ANDI Peng: Didysis.
Taigi, mes natūra turi bendrą prasmę kaip dirbti apie šią problemą.
Žinant, kad mes rūšies išmoko fizinė būdas, kad įsipareigojimų
yra saugomi atmintyje, Ką jau
žinau, kad jūs ketinate tikriausiai turi rašyti kodą
tam, kad pereiti per eilutę?
>> Auditorija: Už kilpa.
ANDI Peng: A kilpa, tiksliai.
Didysis.
Taigi, mes natūra turi bendrinis Pseudocode nurašoma
kad šios rūšies suteikia Jūs pažymi kaip jūs
būtų perkelti apie sprendžiant problemą.
Dabar, kad jūs turite tai, jūs gali nuoroda jį vėliau
kai jūs bandote iš tikrųjų rašyti savo kodą.
Taigi mes iš tikrųjų galite eiti čia.
Ir aš turiu funkcija vadinama upper.c-- ten jis is-- tiesiog tuščią šabloną
dabar, kad jus vaikinai ketinate man padėti išsiaiškinti, kaip rašyti
Šis code-- ne eilutę kodo eilutės.
Tai bus daug eilučių kodo.
>> Pradedant bet kokio pobūdžio iš tuščio pset, kas
pirmas dalykas, man reikia prisiminti daryti?
>> Auditorija: [nesigirdi].
>> ANDI Peng: Didžioji Yep.
Įtraukti.
stdio.h.
Dažnai tai yra vienas iš labiausiai lengvai klaidos Žmonės
bus, kai jie raštu, yra tai, kad jie bus
pamiršti įtraukti Svarbu biblioteka jiems reikia.
Taigi, jei tai darbo valandos ir jūs kaip, Aš nežinau, kodėl mano kodas neveikia.
Ar galite man papasakoti, kodėl jis neveikia?
Mes ketiname pasakyti tu #include?
Turėtumėte #include ją.
GERAI.
>> Taigi mes turime standartą I / O čia.
Ar tai tik biblioteka mes ketiname reikia čia?
Ką dar mes ketiname daryti?
Atsiprašau.
Kažkas tik rėkti jį?
>> Auditorija: [nesigirdi].
ANDI Peng: There you go.
GERAI.
Ir kaip man eiti apie pradedant bet kokio pobūdžio funkcijos, bet pagrindinės funkcijos rūšiuoti
per mūsų programos?
Int main.
GERAI.
Ką aš įdėti viduje čia?
Koks pirmas dalykas, kurį norite padaryti?
Jei norime gauti seka iš naudotojo,
ką mes ketiname turėti padaryti šioje pirmoje eilutėje?
Atsiprašome, vaikinai tiesiog jaučiasi laisvai kalbėti ir garsiai.
Tiesiog šaukti whatever.
>> AUDITORIJA: Klausti vartotojas?
ANDI Peng: Kaip mes tai padaryti?
Ask-- aš ketina įvesti "paprašyti naudotojo"?
>> Auditorija: printf.
>> ANDI Peng: Gerai.
Printf.
Ką aš noriu printf?
>> Auditorija: Įveskite ką nors.
>> ANDI Peng: Kaip tai?
Vaikinai, apsimesti kaip aš kompiuteris.
Fiziškai pasakykite man kiekvieną žingsnį kad man reikia įrašykite čia?
Aš darau ką nors blogo?
Turėčiau įvedėte kažką?
>> Auditorija: Jūs turite kabučių.
>> ANDI Peng: man reikia kabučių?
GERAI.
>> Auditorija: Ir tada nauja linija.
Kabliataškiais.
ANDI Peng: kabliataškiu?
GERAI.
Geras.
>> Auditorija: O gal nurodyti kad jūs norite, kad jis mažosiomis raidėmis?
>> ANDI Peng: Didysis.
Jūs vaikinai juoktis man pamiršta įdėti kabliataškį.
Aš garantuoja jums kažkur šio klasei, žinoma,
Jūs pamiršite įdėti kabliataškis, ir ji
bus jums tris valandas išsiaiškinti kodėl jūsų kodas neveikia.
Tai atsitiko mums visiems.
Tai tikriausiai atsitikti su jumis.
Gauti gerą įprotį naudojant Kabliataškis.
GERAI.
>> AUDITORIJA: Ar norite daryti į Atgal nerijos velniop?
>> ANDI Peng: Žinoma.
Norite padaryti backslash į?
>> Auditorija: Taip.
>> ANDI Peng: Didysis.
GERAI.
Ką daryti toliau?
>> Auditorija: Gauk eilutę.
ANDI Peng: Gauk eilutę.
Taigi, ką aš tipo?
Kažkas?
>> Auditorija: Styginių Š.
>> ANDI Peng: Styginių Š.
Auditorija: GetString.
ANDI Peng: Kažkas, galite pasakyti, kur
Ši funkcija GetString ateina iš?
>> Auditorija: String.h.
>> ANDI Peng: String.h?
Jūs manote, kad tai iš string.h?
>> Auditorija: [nesigirdi].
>> ANDI Peng: There you go.
Tai iš CS50.h.
Jei jūs visada painiojama su kai bibliotekos failas yra arba antraštės failas yra,
"Google" tiesiog string.h, ir aš tau pasakysiu
kas yra visos funkcijos kurie yra string.h.
GERAI.
>> Taigi dabar, kad aš sukūriau eilutę Ir aš raginimas vartotojui už jį,
Aš saugomi jį kintamajam pavadintas S, ką man reikia daryti dabar?
>> Auditorija: Patikrinkite, ar tai mažosiomis raidėmis.
ANDI Peng: Atsiprašome?
Auditorija: Patikrinkite, ar tai mažosiomis raidėmis.
ANDI Peng: Gerai, tegul tai padaryti.
Kaip man tai padaryti?
Tiesą sakant, šiuo tikslu Klasės dabar,
mes tik ketina manyti, kad viskas
kad mes įėjimo jau mažosiomis raidėmis.
Jei nori patikrinti, darytumėte tiesiog pridėkite sąlyginį pareiškimą
kad patikrinti, kuri tęsėsi per kiekvienas masyvo elementas
ir patikrinti, jei tai tarp tam tikrų vertybių.
Aš pamiršti, ką numeris vertybių mažųjų yra.
Jūs galite ieškoti jį į ASCII lentelėje.
Bet taip, tai tikrai gera vieta.
Bet dabar, mes tik ketina manyti, kad visi eilutes mes įvesties
yra mažosios.
GERAI.
>> Taigi, kaip aš einu apie ši problema toliau?
Auditorija: Už kilpa.
ANDI Peng: Už kilpa?
GERAI.
Pasakyk man, ką rašyti.
>> Auditorija: Dėl int i lygus 0.
>> ANDI Peng: Gerai.
>> AUDITORIJA: O, iš tikrųjų, tada jūs padaryti kablelį ir daryti n lygus strlen.
>> ANDI Peng: Taigi svarbiausias dalykas kad aš manau, kad ji manimi pastebėjau čia
yra tai, kad mes neturėjome pasakyti int N antrą kartą mes tai padarėme.
Tiesiog žinau, kad už kilpa, kai jūs nurodydamas,
jūs iš tikrųjų nereikia int antrą kartą jūs kintamąjį.
Galite pasakyti, n strlen.
>> Auditorija: S.
>> ANDI Peng: Š.
GERAI.
>> Auditorija: Tada kabliataškis.
>> ANDI Peng: Žinoma.
>> Auditorija: Ir tada [nesigirdi] n.
Tada aš ++.
>> ANDI Peng: Didysis.
Gerai.
Ką mes norime viduje tai už kilpa dabar?
Atminkite, jei mes ketiname paleisti per styginių ir paleisti per masyvą,
mes norime patikrinti, ką į jį.
Ką mes ketiname reikia?
Tai rūšies keblus dalis dabar.
Kiekvienas turi spėti?
>> GERAI.
Taigi, pirmiausia, kaip mes net prieiti?
Kaip mes net pirmiausia patikrinkite ar prisijungti elementas masyve?
Kaip mes tai padaryti?
Koks žymėjimas mes naudojame tai padaryti?
Kokia šio masyvo praminė?
Tai vadinama S, tiesa?
>> Atminkite, kad bet kokia eilutė visada masyvas.
Taigi -ai laikiklis Aš, tiesa?
Nes tai yra dabartinė vertė arba indekso reikšmė mes tikrinimą.
Ir mes ketiname nustatyti, kad vienodas to-- norime mažosiomis raidėmis vertę, tiesa?
Mes norime paversti, kad lower-- Atsiprašome, Norime didžiąsias.
Mes norime paversti mažosiomis raidėmis vertė į didžiąsias.
Ir taip like-- aš atsiprašau, koks tavo vardas?
>> Auditorija: Heidi.
>> ANDI Peng: Atsiprašome?
>> Auditorija: Heidi.
>> ANDI Peng: Heidi.
Kaip Heidi sakė Iš pradžių, mes tikriausiai
ketinate reikia the-- mes tikriausiai teks atimti
32 nesvarbu iš kokio charc tai yra, tiesa?
Kadangi ant ASCII stalo, skirtumas
tarp mažosiomis laišką ir didžiąją raidę yra 32.
Taigi, kai mes darome tai, mes tikriausiai ketinate nori atimti 32, tiesa?
>> Taigi mes ketiname daryti O J.
Ar visi suprasti, kodėl aš padariau, kad?
Nes dabar, mūsų masyvas, mes tikrinant 0-nį indeksą, tiesa?
Ir 0th indeksas eilutė, tai pirmasis simbolis.
Ir charakteris mes ketiname manyti, kad tai mažosiomis raidėmis.
Jei norime, kad ji didžiąsias, mes turi atimti 32 iš savo vertę,
nes mūsų ASCII stalo, tai, kaip mes jį gauti
į kitą, atitinkantis vertė, kuri leidžia didžiąsias.
Ar visi suprantame, kad?
Taip.
>> Auditorija: Ar galite taip pat do mažosiomis yra minus--
>> ANDI Peng: Taip, taip, kad tai tikrai tikrai gera.
Aš ruošiuosi grįžti į tą klausimas, kai mes tai padaryti.
Taip.
Ir tada, jei noriu pamatyti, kas vyksta,
Aš tikriausiai norite spausdinti, ar ne?
Kažkas pasakykite man, ką Norėčiau atspausdinti čia.
>> Auditorija: printf proc c Backslash [nesigirdi].
Štai iš [nesigirdi] ai i vertę.
>> ANDI Peng: ai aš, atsiprašau?
Auditorija: [nesigirdi].
ANDI Peng: Aš nežinau.
Ką tu manai?
>> Auditorija: Na, aš wouldn't-- Spėju, kad nebūtų bring--
Norėčiau jį out viduje, nes [nesigirdi].
ANDI Peng: O, jūs turite padaryti, kad?
Auditorija: Taip.
ANDI Peng: Palikime tai kelią ji yra, ir aš paaiškinti, kodėl vėliau.
Atminkite, kad net jei jūs turėti turėtojas,
norite įdėti skliausteliuose aplink jį.
Gerai.
Taigi tai turėtų būti tvirtą funkciją čia.
Leiskite paleiskite ją ir pamatyti, jei ji kaupia.
Padaryti viršutinė.
Uh Oh.
Tai neatrodo labai gerai.
Kodėl tai vyksta?
Kaip ir su bet klaidų, norite eiti atgal ir pradėti su pirmuoju,
kadangi paprastai Viena klaida priežastis daug kitų klaidų po jo.
Čia mes matome upper.c: 18: 25, kuris pasakoja man šioje programoje pavadinta upper.c,
on-line 18, klaidų netiesiogiai teigiama, bibliotekos funkcijų strlen su tipo
unassigned-- bla, nežinau kas vyksta po to.
>> Visa tai man sako dabar yra kad kažkas vyksta ant strlen.
Ir kompiuterio painioti, nes Tai kaip, aš nežinau, ką strlen yra?
Ką tai tikriausiai papasakoti jums trūksta?
>> Auditorija: Jūs trūksta [nesigirdi] esate.
>> ANDI Peng: Jūs teisus.
Būtent.
Taigi, tai yra, kai tai Svarbu įsitikinti, kad
kad kiekvienas funkcija galite naudoti savo kodas yra turintys tinkamą antraštę
failą bibliotekoje, arba kitur jūs ketinate gauti daug klaidų
ir jūsų kodas nesiruošia žinoti, kas vyksta.
Taigi mes ketiname įtraukti string.h čia.
>> Dabar, kai mes bandome surinkti viršutinė.
Sudarykite teisingai.
Leiskite paleisti šią programą.
Taigi tipo kažką mažosiomis raidėmis.
Ką vaikinai nori tipas?
Šaukite kažką.
Visos teisės Charly tiesiog vaikščiojo.
Mes tipas Charly vardą.
>> Charly mažosiomis raidėmis.
Ir tikiuosi, tikiuosi, tai ketina šaukti ir išspjauti
Charly didžiosiomis raidėmis.
Valio!
ar visi suprantame, kaip Nuėjau apie sprendžiant, kad?
Taip, kad aš galiu manipuliuoti naudojant sveikieji skaičiai
išspręsti kažką, kad Noriu daryti stygos,
nes personažai ir sveikieji skaičiai gali būti nurodyti tokiu pačiu būdu, nes
ASCII žemėlapių.
>> Taigi, norint grįžti į savo tašką, jei aš norėjau įdėti čia vietoj 32
didžiąsias Minuso mažosiomis teisingas kaip kad, kad galėtų dirbti lygiai taip pat gerai,
nes tai tiesiog tik Skirtumas tarp šių dviejų verčių.
Jei aš noriu, kad šis again-- Charly.
O ne.
Manau, mes nuėjome į neteisingą kelią, Yeah?
>> Auditorija: [nesigirdi] mažosiomis a.
>> ANDI Peng: There you go.
Yep.
Ir iš išspjauna Charly.
Taigi būkite atsargūs, kai jūs atimant vertės
įsiminti iš kurių vienas yra didesnis nei kitų.
Pavyzdžiui, čia aš pamiršau kad mažosios a yra iš tikrųjų
didesnis nei didžiąsias A. Taigi, kai aš bandė atimti jiems į kitą pusę
aplink, aš gavau neigiamą 32.
Ir mano kompiuteris buvo, pavyzdžiui, Aš nežinau, kas tai yra.
Tai tik keletas atsitiktinių tikimybių vertė, kuri yra ne labai gerai.
Ir todėl įsitikinkite, kad esate atimant reikiamo ilgio
rasti norimas simbolis.
GERAI.
Ar kas nors nežino, kaip mes vaikščiojo rašyti šią funkciją?
GERAI.
Taigi iš tikrųjų, funkcija jau egzistuoja biblioteka vadinama ctype.h.
Bibliotekos vadinamas ctype.h.
Ši funkcija yra iš tikrųjų jau parašyta jums.
Jis vadinamas viršutinių.
>> Ir taip tikslais tai pset, jūs ketinate
rasti, kad jūs tikrai norite naudoti keletas iš funkcijų daug esančius
per ctype bibliotekoje.
Upper, sumažinti, yra viršutinė, yra lower-- tas yra visos funkcijos
kad jūs galės naudotis labai, labai greitai savo kodą, kad
daro, ką šis daro.
Mes rašė, kaip konvertuoti styginių į didžiąsias.
Bet iš tikrųjų tai yra kodas kad kažkas parašė
ir kad jūs galite pasiekti per kitą funkciją.
Taip?
>> Auditorija: Taigi jūs tiesiog nukopijuoti aisiais ten ir tai padaryti už kiekvieną laišką?
>> ANDI Peng: Taip, nes aš neturiu rūpinasi vertybėmis.
Aš tik rūpintis, kad skirtumas tarp jų yra 32, tiesa?
Skirtumas tarp mažosiomis skirtumas B ir didžiosios B yra taip pat 32.
Ir tarp C skirtumas ir didžiąsias C yra visada 32.
>> Aš tiesiog rūpintis skirtumas tarp šių dviejų,
nes visas raides sekti tą patį modelį, tiesa?
Jei turiu skirtumą tarp vienos iš jų,
Aš žinau, ką šis skirtumas tarp visi iš jų yra.
Geras klausimas.
Taip.
Kiekvienas geras?
GERAI.
Oop.
>> GERAI.
Taigi kitą koncepcija tai bus labai naudinga, nes jums
toliau plėtoti Jūsų kodas yra ši idėja
sukurti funkcijas ar abstrakciją.
Taigi dabar, mes visi imtasi algebra.
Algebra, jūs mokė, kad yra Tai nuostabus dalykas vadinamas funkcijos
mašina, kur, jei jums įvesties vienokį skaičiaus,
jis eina per šią nuostabią funkciją ir iš pasirodo kitą produkciją, tiesa?
Be kodas, tas pats atsitiks bet funkcija rūšiuoti.
>> Taigi galėjau fiziškai rašyti mano kūnas mano kodas
pagrindinis teiginys, kad iš tiesų nepriklausomai nuo kodo kūnas daro.
Bet ne, kad aš taip pat galite rašyti daug skirtingų funkcijų
kad padaryti daug įvairių dalykų.
Pavyzdžiui, mes jau ve pradėjo naudoti kai kuriuos iš jų.
Printf--, kad yra funkcija, kad kažkas
jau parašyta, kad mes galime skambinti mūsų kodą.
Norėdami upper-- šiuo atveju, upper-- yra kita funkcija
mes parašyta, kad mes galite skambinti mūsų kodą.
Ir todėl aš manau, kodėl mes net turime funkcijas?
Kodėl ne mes tiesiog pop jį visi tos pačios eilutę kodo?
Ji daro tai lengva visiems.
>> Na, už tai samprotavimas yra, visų pirma, organizacijai.
Tai tikrai erzina vyksta per kažkieno kodas
ir vienas funkcionuoja kaip printf.
Jei vaikinai iš tikrųjų žinojo, ką funkcija printf apėmė rašyti,
tai, kaip, 1000 eilučių kodo.
>> Jei kiekvieną kartą, aš norėjau į printf kažką,
Turėjau parašyti 1000 eilučių kodo, kad būtų tikrai erzina skaityti,
tiesa?
Štai kodėl mes ką tik sukūrė šį abstraktų funkciją
kad mes jau turime ką nors kitur parašė kažkur kitur.
Ir kiekvieną kartą mes turime jį naudoti Mūsų kodas, mes tiesiog pasakyti printf.
Ir tai gali naudoti šią funkciją kažkas parašė mūsų kodą.
Tai leidžia lengviau organizaciniu skaityti kodą.
>> Antra, tai supaprastinimas.
Tai supaprastina veiksmus turime imtis siekiant išspręsti mūsų problemą.
Printf, funkcijas, pavyzdžiui, printf, funkcijas, pavyzdžiui, į viršutinę
yra viskas, kad leidžia mums supaprastinti mūsų kodą žemyn, kad ji yra lengviau.
Ir paskutinis dalykas yra pakartotinis.
>> Taigi, dėl to, kad turime funkcija vadinama printf
kad mes galime skambinti daug skirtingų kartų ir leidžia, kad ji būtų daugkartinio naudojimo.
Jei aš būčiau rašyti printf, Aš rašyti tik vieną kartą.
Ji egzistuoja tik toje vienoje vietoje.
Jei aš norėjau padaryti jį dar kartą, aš norėčiau turite nukopijuoti ir įklijuoti visa tai
į mano antroje eilutėje kodą.
Štai kodėl, jei mes sukurti funkciją kad egzistuoja už mūsų pagrindinis,
mes galime tik paraginti IT ir pakartotinai jį, kai
mums reikia, kad tai daug lengviau mums, kaip programos rašyti.
>> Taigi taip, kad mes iš tikrųjų rašyti funkcija yra labai panašus, tiesa?
Tai yra rūšies pirmas atvejis, kai mes
pamatyti funkcija imtis stilius kitoks nei mūsų int main tuštumos.
Šiuo atveju, jei aš norėjau parašyti funkciją, vadinamą Q, tiesa?
>> Ir INT vertė čia Visa tai pasakojo,
Ką aš noriu tai veikti grįžti į mane?
Jei aš noriu kubas sveikasis skaičius, Aš ruošiuosi norite įvesti.
Tai yra parametrai.
Aš ruošiuosi įėjimai vertė tipas int.
Ir aš ruošiuosi grįžti kito tipo vertė tarpt.
Ir čia, kaip jums matote, viskas, ką aš darau
yra cubing kokia mano indėlis yra kaip mano produkcijos ir grąžindamas ją.
>> Taigi visa tai funkcija daro, yra užima šiek tiek sveikas skaičius rūšiuoti.
Ji daugina jį pats du kartus taip, kad jis iš esmės kubeliai.
Ir tada jis grįžta kokia, kad produkcija yra.
Taigi šiuo atveju, tai dvi eilutes kodas, kad mes turėjome rašyti papildomai.
Bet jei mes norėjome skambinti šitai kelis kartus,
tai daug lengviau rašyti, kad vienas linija čia tai iš kubo nei
turi eiti per kelis kartus.
>> Taigi taip, kad iš esmės bet formatavimą bet funkcija rūšiuoti
ketina egzistuoja tarsi čia.
Taigi, mes turime funkcijos vardą.
Šiuo atveju, tai vadinama kubas.
Ir mes name it kubą, nes tai lengva prisiminti.
Jūs galite pavadinti jį aikštė ir ji iš tikrųjų gali būti Cubed.
Nesvarbu.
Tiesiog pavadinimas, kad esate priskirdami savo funkciją.
>> Ši teisė, INT, yra tipo parametro jums reikia.
Taigi, ką daro šią funkciją reikia, kad veiktų?
Na, ji turi įvestį.
Aš jį pavadino įėjimas.
Jūs galite pavadinti jį ką tik norite.
Bet man reikia kažką tipo int.
Tai vyksta iš tikrųjų įvykdyti kas yra viduje čia
iš funkcijos kūno.
Ir tada grįžti tipas čia, tai int--
visa tai man sako yra kad ši funkcija yra
ketina grįžti į mane tarpt.
Taigi ji ketina imtis int, ir jis ketina duoti jums atgal int.
Ar visi suprasti, kaip formatavimas šios rūšies veikia?
Saunus.
>> GERAI.
Taigi nereikia būti susirūpinęs, jei tai atrodo šiek tiek abstraktus dabar.
Tai yra kažkas, kad mes kalbame apie.
Mes pasinerti giliau vėliau į paskaitas.
Būdas, kad bet kurį iš aukštesniame lygyje rūšiuoti abstrakcija iš šių dalykų darbe
yra tai, kad, atmintyje, į kompiuteris, viskas
yra saugomi šio tipo kamino, man sakyti.
>> Taigi ten viršuje.
Aš nežinau, jei jums vaikinai galite pamatyti, kad gerai.
Bandysiu padidinti.
Čia viršuje, mes turi fizinę tekstą
kas kompiuteris interpreting-- visi nuliai ir tie, kurie
egzistuoja mūsų kompiuteryje.
Ir tada mes turime inicializuoti duomenų ir grąžinamos duomenys,
ką mes vadiname globalių kintamųjų.
Taigi kintamųjų, kad egzistuoja visose programose
ir visoje visą savo, iš esmės, kodas.
Nesijaudinkite, jei jus vaikinai yra rūšies neaišku apie tai.
Jis tikrai ne klausimas dabar.
>> Ir tada mes turime tai, kas vadinamas kamino krūva.
Pagalvokite apie rietuvės prasme, kaip kaip dalykų kaminą,
įvairių kamino viskas stumiama ant
vienas nuo kito, kad saugoti įvairių kintamieji ir sintaksės per savo kodą.
Ir tada čia ne pačioje apačioje, turime aplinkos kintamuosius
ką jūs vykdyti per tik jūsų mažylis linija kodą.
>> Ir mes tik ketina padidinti į faktinę kamino dalį.
Taigi čia, jei mes padidinti į dėl tik šioje kamino srityje,
tai, kaip jis atrodo.
Ir šis iš tikrųjų yra gana svarbu, kai vaikinai kalbėti apie funkcijų,
nes pranešimas, kad atminties kompiuteryje
yra saugoti kintamuosius ir funkcijos, kurios
ir abiejų parametrai jūsų funkcija ir jūsų pagrindiniai kintamieji
skirtingose ​​vietose.
>> Taigi dabar, pagrindinis yra faktinis funkcija
kad jūs vykdant tam kodą.
Jūs jos parametrai saugomi čia ir jos vietos kintamieji saugomi čia.
Vietinis kintamasis tiesiog reiškia bet kokį kintamąjį, kad egzistuoja tik per šią funkciją.
Ir ant jo, jūs turite tai atskiras funkcija vadinama kubas.
Jūs turite tai parametrai taip pat tiems gyventojams.
>> Ir priežastis jūs galite matyti, kad čia yra tai, ką
atsitinka, kai kubas trunka A vertė iš savo pagrindinės funkcijos
yra tai, kad iš tikrųjų tai kopijuojant, kad per.
Taigi, jei aš norėjau kubo 2 ir grįžti 8, kad 2
iš tikrųjų įvestas kaip parametras, ir tai
nukopijuoti, kad jūs turite tai esama dviejų skirtingų vietų atmintyje.
Ir jūs turite būti labai atsargūs, nuo prisiminė kuriuos vienas iš tų
jūs iš tikrųjų manipuliuoja.
Ir kas nutiko pavyzdys kad būtų labai, labai blogai
egzistuoja čia.
>> Taigi čia, aš turiu, teoriškai, programa čia, pagrindinė funkcija
kad aš skelbiantys int x lygus 1.
Aš paskelbti kitą int y lygus 2.
Ir tada aš paleisti jį per šią funkciją
vadinamas apsikeitimo, kur aš manyti, kad tai Swapping dvi reikšmes.
Ir tada aš ruošiuosi spausdinti juos, tiesa?
Štai ką aš noriu Ši programa daryti.
>> Taigi leiskite nusileisti ir pažvelgti.
Taigi, jei aš iš tikrųjų rašyti kitoks funkcija, kaip jūs galite pamatyti,
mes turime pagrindinę funkciją čia.
Ir tada mes turime Antroji funkcija čia.
Tuštuma apsikeitimo.
Tuštuma tiesiog reiškia, kad tai nesiruošia grįžti nieko.
Funkcija vardas vadinamas apsikeitimo, ir tai
ketina įsiurbimo dviejų kintamųjų, int A ir int b, iš jūsų [nesigirdi] funkcija.
>> Taigi iš esmės čia mes asocijuotas x ir y į šią funkciją.
Ir jei mes sukurti this-- todėl mes norime
sukurti laikiną vertę, tiesa?
Mes ketiname priskirti, kad norint a.
Ir tada vyksta dabar vienodo b.
Ir B bus atgal kur temperatūra vertė buvo
kuris yra, todėl, kad kai norite sukeisti dalykų,
galite ne tik patinka apsikeitimo juos.
>> Jūs turite laikyti vienas iš čia taip, kad ji prisimena
kas tai yra, nes vieną kartą apsikeitimo vieną, jums pamiršti
ką tai pradinė vertė buvo, tiesa?
Taigi teoriškai šią programą turėtų dirbti, tiesa?
Jei aš norėjau apsikeitimo du, jie turėtų sukeisti.
Taigi leiskite paleisti jį ir pamatyti, jei ji veikia.
>> Taigi, kaip jūs vaikinai galite pamatyti x kažkada buvo 1 ir y kažkada buvo 2.
Ir jei aš jį atspausdinti, x yra vis dar 1 ir y yra nuo 2.
Hmm, ši programa neatrodo, kad būtų darbo kelią, kad aš noriu jį dirbti.
Ar kas nors nori imtis kulka spėlioti, kodėl tai vyksta?
Ji turi daryti su tuo, kaip kad skirtingi dalykai
saugomi skirtingose ​​vietose atmintyje.
>> GERAI.
Taigi vaikinai neturite jaudintis per daug apie tai dabar.
Bet žinau, kad kubas vietinis kintamieji buvo a ir b,
nes čia mūsų funkcija, mes pareiškė a ir b
kaip kintamųjų, kad egzistuoja per kubą, kad funkcijos.
Bet, kaip matote, parametrus, tai atsižvelgiant čia buvo saugomi.
Bet mes buvome ne iš tikrųjų grįžti nieko.
Mes iš tikrųjų nebuvo keičiasi x ir y.
Mes tiesiog keičiasi ir b.
>> Mes turėjome nukopijuoti x ir y į kažkas vadinamas a ir b.
Bet mes niekada iš tikrųjų manipuliuojama X ir Y patys.
Ar jus vaikinai matau kaip kad vyksta?
Ar, kad mes tiesiog kopijuotas daugiau, bet mes ne iš tikrųjų laikomi
takelis, kur jie buvo atmintyje.
>> Ir todėl dabar kompiuteris ieško, oi, aš
paleisti šį dalyką per Tai puikus funkcija.
Bet x ir y yra vis dar x ir y.
Nieko atsitiko jiems dėl to,
kad tų parametrų ir vietos kintamieji
yra saugomi kitoks įdėti į atmintį.
Ir tai yra aukštesnio lygio koncepcija, kuri mes
pradėsite matyti vėliau į paskaitas.
Bet tiesiog žinoti, kad tai yra problema, kad gali atsitikti
ir kad mes išsiaiškinti būdus, kaip spręsti šią vėliau į paskaitas.
GERAI.
Gerai.
Taigi paskutinis koncepcija mes tikrai ketiname padengti
kad tai bus naudinga už pset šią savaitę
yra tai, kas vadinama komandinės eilutės argumentai.
Taigi Robas jo paskaitą išgyveno rūšies trumpai apie tai, kaip šių darbo.
Iš esmės žinau, kad kai rašote
kaip pagrindinės funkcijos, kai mes rašė funkcijas prieš praeityje,
mes turėjome int main negaliojančiu.
Ir priežastis, kodėl mes turėjome negaliojančiu nėra buvo, nes mūsų programos nebuvo
reikia įvesties reikšmių paleisti, tiesa?
Kai išbėgau Mario, man nereikėjo kad iš tikrųjų tiesiog įveskite kažką
kai išbėgau Mario.
Aš galėtų paskatinti vartotoją vėliau.
Bet tai ne visada bus tas atvejis.
>> Pavyzdžiui, šis savaitės problema nustato,
jūs ketinate būti paprašyta, kad Be veikia savo programą,
jūs ketinate norite įvesti tam tikrų dalykų tiesiai, kaip jums
paleisti savo programą.
Taigi, kaip mes galime padaryti, kad yra vadinamas komandinės eilutės argumentas, kuris
yra kaip argumentą galite įvesti tiesiogiai
kaip jūs bandote paleisti programą.
>> Taigi dėl šios notacijos, tai gana sudėtingas ieško,
bet tai tikrai nereiškia, kad sunku. Taigi int main--
tai tik tavo pagrindinė funkcija.
Į argc kableliais styginių argv skliausteliuose.
Taigi visi, kad sakydamas, kad tai INT argc-- visi, kad jums sakau
yra tai, kad jie yra iš skaičių argumentai kompiuteris turi tikėtis.
>> Taigi vienas dalykas, kad tikrai Svarbu sekti
yra fizinis pavadinimas jūsų programa skaičiuojamas kaip vienas iš šių argumentų.
Taigi, jei aš norėjau, kad mano programa paleisti plius vieną papildomą komandų eilutę
argumentas, aš iš tikrųjų teks du.
Argc iš tikrųjų bus du.
Ir tada seka argv bracket-- visa tai daro,
tai, kad suteikėte man žinutę masyvo eilučių tai
ketina tik rodyti ir saugoti tai, kas visų šių komandų eilutės argumentai yra.
>> Taigi, pavyzdžiui, jei aš norėjau turėti tai programa, ./copy infile outfile, tiesa?
Tai tiesiog tipiškas "Linux" komanda.
Kas iš tikrųjų yra argc?
Kiek komandų eilutės argumentai ten iš tikrųjų yra?
Visa tai daro, yra padaryti kopiją AN į vieną failą pavadinimu INFILE
ir IT Kopijavimas į kitas failas, tiesa?
Štai visa tai daro.
Kaip matote, aš darau jį ant vienos linijos be faktiškai kuriems programą.
>> Kas yra mūsų argc šiuo atveju?
Kiek argumentai turime?
Auditorija: Trys?
ANDI Peng: mes turime tris, tiksliai.
Taigi tai labai intuityvus tiesiog manau, kad tai tik
INFILE ir outfile.
Bet žinome, kad fizinis pavadinimas iš programa dirbate skaičiuojamas kaip vienas.
Taigi, šiuo atveju, yra iš tikrųjų argc trys.
Kaip apie, kas yra argv 0?
Atminkite, kad visi iš komandinės eilutės argumentai
buvo saugomi stygų masyvo.
Taigi, jei aš pabandyti ją gauti, kas būtų argv laikiklis 0 man duoti?
>> Auditorija: [nesigirdi].
ANDI Peng: Būtent.
Tai man duotų tašką slash kopiją, nes tai
0. elemento, Pirmasis elementas mano masyvo.
Ką apie argv 1?
>> Auditorija: infile.
ANDI Peng: infile, tiksliai.
Ką apie argv 2?
Auditorija: Outfile.
ANDI Peng: Outfile.
Tai yra šiek tiek sudėtinga dabar.
Ką jūs manote argv 3 bus duoti man
jei aš bandžiau spausdinti, kad iš?
>> Auditorija: [nesigirdi]?
>> ANDI Peng: Ar turite ranką?
Taip.
>> Auditorija: Alternatyvus.
>> ANDI Peng: Būtent.
Taigi prisiminti, paskaitos, kad mes turi ne iš lenktynių kažką pabaigoje
vadinamas null terminatorius?
Mes patekti į tai taip pat toliau klasėje.
Bet žinau, kad notacijos, būdas kompiuteris
žino, kad tai pabaiga masyvo yra tai, kad
kelia kažką vadinama NULL Terminatorius arba brūkšnelis nulis.
>> Taigi, jei jūs bandote prieiti argv 3, jūs ketinate pasiektų šią brūkšnys 0.
Tai dar labiau triukas klausimą.
Ką apie argv 4?
Taigi tai yra praeitis null terminatorius, pro mūsų masyvo ribų.
Ką manote ketina atsitikti, kai mes bandome padaryti, kad?
>> Auditorija: [nesigirdi]?
ANDI Peng: Atsiprašome?
Pasakykite, kad šiek tiek garsiau?
>> Auditorija: [nesigirdi].
ANDI Peng: Taip.
Tai yra vardas plotas jums greičiausiai gauti.
Bet žinau, kad argv 4-- kuri leidžia jums prieigą prie
vietos Jūsų kompiuterio atminties, kad jūs tikrai
neturėtų būti neliesti, nes dabar jūs žinote, ką argv yra.
Jūs žinote, kad tai yra iš 3 dydžio masyvas kad turi dot kopijuoti, infile ir outfile.
>> Jei bandysite šiol peržengti, kad kad jūs pro null terminatorius,
kompiuteris turi tikriausiai saugomi kažkas argv 4 d.
Ir jūs tikrai neturėtų būti įleidžiant į argv 4
nes jūs turite failą spinta ir jūs tik
leidžiama susipažinti su šių trijų lentynų.
Bet jei bandote pasiekti toli už iš kur jums leidžiama lentyna,
jūs ketinate pradėti Messing su kiti dalykai jūsų kompiuterio atmintyje.
Tai ketina būti tikrai, tikrai neblogai.
Taigi tiesiog žinau, kad.
Būkite labai atsargūs, kad jūs ne tik atsitiktinai pradėti
susipažinimo elementų masyvą, kad nebuvo, ką norėjau sukurti.
Yep.
>> GERAI.
Taigi mes ketiname daryti kitą terminalo pavyzdys čia.
GERAI.
Taigi Rob greitai paskaitos kitą dieną išvyko
per šią Pavyzdžiui, kur jis turėjo int main int argc styginių argv
skliausteliuose, kuris man sako, kad aš teks komandinės eilutės argumentus.
>> Jis turi, jei argc lygus lygus 2-- atminkite,
lygi lygu reiškia palyginimas.
Jei jis lygus 2, tada aš ketina spausdinti Sveiki,
nepriklausomai pirmasis elementas masyve yra.
Kita spausdinimo, hello world.
Ką tai vyksta atsitikti esmės?
Ar kas nors tiesiog paaiškinti Anglų ką ši programa daro?
Taip.
>> Auditorija: Jei kas nors įvedėte komanda ir teigė, kad jų vardas ir pavardė,
tai bus ne tik spausdinti pirmasis ir pasakyti, labas,
Nesvarbu, koks Jūsų vardas yra.
>> ANDI Peng: Gerai, tegul ją paleisti.
Taigi, pavyzdžiui, jei aš buvo padaryti Šis failas padaryti Hello to-- Sveiki
to-- ką norite man pirkimo?
>> Auditorija: Vardas ir pavardė.
>> ANDI Peng: Vardas ir pavardė?
Tarpai?
>> Auditorija: Taip.
>> ANDI Peng: Ar kas nors pasakys man dabar, kas argc?
Tiesiog tiesiai ten?
Oi, atsiprašau.
Leiskite man grįžti.
Kiek komandų eilutės argumentai are-- vaikinai tikrai negali pamatyti.
Bet aš pabandysiu padidinti.
Aš bandau.
Taip, ten yra trys, tiesa?
Tai taškas velniop Sveiki, tai Ieva, ir tai Peng.
>> Taigi, ką jūs manote tai Programa bus atspausdinti?
Oh.
O, atsiprašau.
Klaidingas vardas.
Tai spausdinti, hello world.
Ar kas nors nori paaiškinti kodėl tai vyksta?
Taip?
>> Auditorija: [nesigirdi].
ANDI Peng: Būtent.
Taigi čia yra sąlyginis yra, jei argc lygus lygus 2.
Taigi tik tuo atveju, jei ten du komandinės eilutės argumentai.
Tada aš ruošiuosi spausdinti, Sveiki, kokia ji yra.
Bet kitur, aš ruošiuosi spausdinti tik, hello world.
Taigi ar kas nors nori man duoti pavyzdį
kaip aš galėtų faktiškai gauti jį išspausdinti argv 1 vertę?
>> Ką turiu įvesties čia?
Tik vienas dalykas, tiesa?
Kadangi taškas labas jau skaitosi kaip pirmas argumentas.
Turiu tik viena daugiau.
Taigi dot Sveiki, jei aš tiesiog padaryti Andi.
Sveiki, Ieva.
Ar visi suprantame, kodėl tai vyksta?
Taip.
>> Auditorija: Taigi tarp erdvė komanda line-- tai [nesigirdi]?
ANDI Peng: Ne
Taigi į komandų eilutę erdvę argumentas, X, pasakyti savo kompiuterį
kad tai yra naujos eilutės pradžia.
Taigi styginių argv here-- ji saugo visi savo komandas eilutės argumentai
tinkleliuose.
Ir taip į komandų eilutę vietos argument-- visa tai daro, yra papasakoti,
tai yra bent vienos eilutės pabaigoje ir tai laikas pereiti į kitą.
>> Taip.
Tai yra gana svarbu, Jūsų pset, nes jūs
bus išbandyti šiuos.
Taigi ar kas nors turi bet apie tai klausimai?
Gerai.
Taip?
>> Auditorija: Taigi priežastis jums būtų įdėti sveikasis argumentas Calc vietoj
iš [nesigirdi] būtų, jei norite įvesti papildomą informaciją
[Nesigirdi]?
>> ANDI Peng: Taip, tiksliai.
Kai kurios programos, reikės įvesti komandinės eilutės argumentas
kad jis eitų ir kad naudoja tai.
Taip.
Auditorija: Taigi ką daryti, jei [nesigirdi]?
>> ANDI Peng: Na, ką turiu keisti tada mano programa?
>> Auditorija: tik 3.
>> ANDI Peng: Kodėl yra tai, kad vyksta, jūs manote?
>> Auditorija: Nes [nesigirdi].
>> Auditorija: Jūs tektų pakeisti jį į 2 [nesigirdi].
>> Auditorija: 1 ir 2.
ANDI Peng: 1 ir 2 lygiai.
Taigi šiuo atveju, jūs tikriausiai nori turėti du printf statements--
vienas, kad atspausdintas argv 1 ir vienas, kad atspausdintas argv 2.
Čia.
Aš iš tikrųjų gali padaryti, kad nekilnojamojo greitai.
Na štai.
Oh.
Ne visai tai, ką norėjo.
Tačiau, jei jus vaikinai pažaisti su formatavimas, ji išeis.
Taip.
Saunus.
Aš žinau, mes šiek tiek trūksta laiko.
Bet aš tik ketina greitai praleisti pora minučių išgyvena helpful--
Auditorija: Jūs turite dvi minutes.
ANDI Peng: Turiu dvi minutes?
Ačiū.
Po greito pset patarimai.
Taigi šiam pset, aš labai rekomenduoju, kaip ir sakiau, visi skaityti spec.
Būsite raštu trys programs-- vieną vadinamas initials.c, vienas vadinamas caesar.c,
vienas vadinamas vigenere.c.
Kai kurie svarbūs patarimai, kad vaikinai tikrai norite
išlaikyti mind-- taip yra ši funkcija
vadinamas atoi-- kaip aš tarkim, Trois.
Neaišku, ar tai iš tikrųjų, kaip jūs pasakyti.
Bet visa tai daro, tai įvedusi.
Ji konvertuoja eilutę į int.
Taigi yra ASCII I sveikojo skaičiaus.
Tai tiesiog konvertuoti ASCII vertės sveikąsias reikšmes.
Taigi nepamirškite argv, masyvas, kuris saugo visi jūsų komandų eilutės arguments--
ji saugo juos visus kaip stygos.
Ir todėl, jei norite, kad būtų galima turėti vieną iš jų tampa sveikasis skaičius,
jūs ketinate turėti naudoti šią vertę čia.
>> Modulo, kaip mes, kuriems anksčiau šiandien klasės,
leidžia jums turėti likutis, ką jūs turite.
Taigi, jei mes turime tikrai, tikrai dideliais kiekiais Cezaris,
Ką daryti, jei mes turime pabaigą iš Vigenere eilutę?
Kaip jūs ketinate būti suteikta galimybė gauti, kad wrap aplink?
Jei aš paspauskite z, ir aš noriu tai grįžti į A,
Kaip aš ketina gauti kad wrap aplink?
Tikriausiai norėsite naudoti modulį ten kažkur.
>> Antra, naršyti aplink jūsų biblioteka. ctype.h.
Štai nauja biblioteka turime.
Jūs rasite daug tikrai, tikrai Naudinga functions-- isupper, islower,
toupper, tolower, IsAlpha et cetera.
Visos funkcijos, kad bus labai naudinga kai bandote išsiaiškinti,
tai charakterį mažoji raidė?
Kaip man tai pakeisime string Didžiąsias?
Visa tai bus labai, labai naudinga jūsų pset.
GERAI.
>> Darbo valandos šįvakar yra 8.00 iki 11:00 TEAL klasėje rytoj
taip pat trečiadienį ir ketvirtadienį naktį.
Darbo valandos yra Visuotinis.
Labai rekomenduojame jums vaikinai visi pradėti iš karto,
nes jūs nenorite būti, kad vaikas, kuris Ketvirtadienio naktį turi problemų
Pateikdami savo pset ir patinka, aš nežinau, ką daryti.
Aš pradėjau, aš baigiau, aš pateikti.
Pabandykite duoti sau šiek tiek kambarį, nes visada atsiranda kodas problemų.
Jūs norite įsitikinti, kad jūs suteikiate sau
daug laiko, kad būtų galima užbaigti psets.
Saunus.
Aš pakabinti aplink čia.
>> Auditorija: Ar šis internetinis jau?
ANDI Peng: Aš nežinau, jei tai Prisijungę jau, bet jis bus.
Aš pakabinti aplink čia, jei kas nors turi kokių nors klausimų jau.
Ačiū, kad atvykote.