SPEAKER 1: Id-dritt. Merħba lura. Dan huwa Week Tnejn mill CS50, u għandna s'issa kienu jużaw funzjonijiet iżda aktar meħuda għall mogħtija lilhom. Imxejna użati printf li għandha l- effett sekondarju ta 'l-istampar affarijiet fuq l-iskrin. Imxejna użati nikseb-int, jiksbu float. Imma x'jiġri jekk inti fil-fatt tixtieq li joħolqu funzjonijiet tiegħek, għaliex xi wħud minn inti tista 'diġà bdew tagħmel għall Problem Set One, għalkemm mhux strettament meħtieġ? Well, ejja imorru quddiem u tirrevedi dik problema ta 'biss tistaqsi għall-utent isem tagħhom u l-istampar xi ħaġa fuq il- iskrin, iżda jippruvaw fattur out xi tal-komunalità li aħna ħadthom jidhru fil-kodiċi tagħna s'issa. So I tfisser li dan li ġej. Jien ser jimxi 'l quddiem u joħolqu programm ġdid, biss sejħa dan hello.c bħas-soltu. Jien ser jimxi 'l quddiem u jagħtu myself jinkludu io.h standard fil-quċċata. Jien ser ukoll tagħti myself preemptively-librerija CS50 sabiex I ma jsibux għajjat ​​fil mis-kompilatur. U issa jien se jimxi 'l quddiem u tiddikjara int, prinċipali, bla effett. U mbagħad fil hawn, din hija fejn irrid biex jibdew jesternalizzaw funzjonalità li xi funzjoni oħra li I myself am ser jikteb imma li ma jeżistu bħalissa. Per eżempju, ejja ngħidu li xtaqt li jiktbu funzjoni li tippermetti lili biex jistampa hello, comma, u imbagħad Isem xi utent. Pjuttost milli jkomplu jagħmlu printf hello,% s, ma kienx ikun sbieħ jekk kien hemm biss funzjoni msejħa ma printf iżda isem print? Allura fi kliem ieħor, nixtieq li tkun tista ' jikteb programm li ma ftit xi ħaġa bħal din. L-ewwel, jien ser ngħid printf tiegħek isem, b'hekk wassal lill-utent biex tagħti me-isem tiegħu jew tagħha, u allura jien ser tuża l-i string familjari tiddikjara string. Agħti me varjabbli ta 'string tip, sejħa hija s, u jaħżnu f'dak l- riżultat ta 'sejħa tikseb sekwenza. Imma issa fil-ġimgħat li għaddew, I jkollhom kemmxejn tediously jsir hello,% s / n. U fi kliem ieħor, Rajna dan Eżempju mazz ta 'drabi, u huwa eżempju trivjali għaliex hemm biss wieħed linja tal-kodiċi hekk huwa verament mhux big deal biex iżommu ittajpjar fl-ġdid. Iżda jissoponi li din il-linja tal-kodiċi attwalment kienu qed isiru piż, u mhuwiex linja waħda tal-kodiċi iżda huwa 10 linji ta 'kodiċi ftit ġimgħat minn issa, u int biss jkollna għajjien ta 'ikkupjar u pasta jew retyping-istess kodiċi. Ma Ikun sbieħ minflok tagħmel printf hello,% s u oħrajn, ma kienx ikun sbieħ jekk kien hemm biss funzjoni msejħa isem print li jieħu argument - fi kliem ieħor, hija tieħu input - u mbagħad virgola. Allura dik il-funzjoni, se le Ikun sbieħ jekk kien jeżisti? Imbagħad I ma jkollhomx għalfejn tinkwieta dwar dak printf huwa,% s dak u kollha ta ' dawn il-kumplessitajiet li huma mhux kollha li interessanti. Dawn huma utli. Allura isem jistampa, sfortunatament, ma kienx ivvintati xi 40 sena ilu plus. Ħadd ma ħsibt li tikteb. Imma dak li l-sbuħija ta 'wara lingwa ta 'programmar, bħal fil Scratch tista 'tiddefinixxi blokki tad-dwana, sabiex fis-C u aktar kwalunkwe lingwa, tista 'inti jiddefinixxu funzjonalità tiegħek, tista inti tiddefinixxi funzjonijiet tiegħek stess. Allura anke jekk aħna nikseb prinċipali mill awtomatikament b'xejn, nistgħu tiddikjara funzjonijiet tagħna stess. Hekk jien ser tagħmel xi kamra up here top up, u jien ser tiddikjara tiegħi funzjoni stess li għaddej biex tfittex ftit stramba fl-ewwel imma aħna ser jaslu lura għal dan qabel twil. Jien se ngħid null, u b'hekk tindika din il-funzjoni ma xi ħaġa, għandu effett sekondarju, iżda ma ritorn xi ħaġa li lili fil- istess mod li jiksbu int jew nikseb string innifsu ma. U jien ser jagħti din il-funzjoni ta ' ISEM TAL-isem istampar, u jien ser jispeċifika li dan Guy se jieħu string, u jien ser sejħa li isem string. I jistgħu sejħa hija xejn nixtieq, imma I tixtieq kodiċi tiegħi biex ikunu awto-dokumentazzjoni. Fi kliem ieħor, jekk wieħed minnkom kellhom tiftaħ dan il-fajl u taqrah, inti tista ' tip ta 'jiddeduċu mill-isem ta' dik input liema rwol huwa suppost li jilagħbu. U issa hawn taħt li, jien ser tiftaħ kaboċċi Brace u magħluqa Brace kaboċċi, u għalhekk avviż stajt segwa l-istess mudell fuq erba 'linji permezz seba bħala Stajt ġew wara għal ġimgħa tajba plus issa bejn, ngħidu aħna, linji disa u 14 li jikkomponu prinċipali. Fi kliem ieħor, jistampa l-isem huwa funzjoni oħra. Issa, il-kompilatur mhux se tkun taf li jitolbu dan ħaġa awtomatikament minħabba I litteralment biss ivvintat dan, iżda se tkun taf xorta li jsejħu prinċipali awtomatikament, u mbagħad naturalment fl linja 13, I am ssejjaħ il-funzjoni tiegħi stess. U għaliex stajt ddikjarat dik il-funzjoni up on line erba qabel prinċipali, dan se jgħallmu l-kompilatur dak kwotazzjoni, unquote, "isem print" ifisser u x'għandha tagħmel. Hekk jien tip ta jtuha custom ġdida blokk fil-kuntest ta ', ngħidu aħna, Scratch. Allura fil hawn, I tista 'tpoġġi li komuni ħafna jew mudell rikorrenti ta 'kodiċi I iżommu kitba fil-klassi, printf % S hello,% s / n ", - dak li għandi jridu jitqiegħdu hawn? S? So I tixtieq li tpoġġi l-isem f'dan il-kuntest. Allura avviż daqsxejn ta 'dikotomija hawn. Minħabba I am tiddikjara funzjoni tiegħi stess u jien kemmxejn arbitrarju imsejjaħ huwa jistampa l-isem, u għaliex stajt speċifikat fil-parentesi li dan funzjoni jieħu argument wieħed, it-tip ta ' li huwa string - hekk huwa kelma jew frażi jew xi ħaġa bħal dik - u Jien ssejjaħ dak l-isem argument, li mod l-uniku varjabbli li fil ambitu, biex ngħidu hekk, huwa l-isem. S teżisti biss bejn dak tnejn braces kaboċċi, naturalment? Ukoll verament, bħad-linja 10 permezz 14, hekk bħad-Tnejn ma tistax tuża S, imma dak I tista 'tagħmel huwa jgħaddi S fil isem print. Stampa isem biss hekk jiġri li tagħtiha alias, sinonimu, laqam, ssejjaħ dan l-isem, u issa jużawha f'dan il-linja. Allura issa let me Ħlief dan, zoom out. Let me imorru quddiem u jagħmlu bonjour. Jidher tajjeb. Ma bżiq out xi żbalji. . / Bonjour Ikteb. X'hemm isem tiegħi? David. U bonjour David. Allura mhux kollha li eċċitanti, iżda biss naħseb issa. Inti issa għandhom l-istess ingredjent kif għamilna fl Scratch biex jagħmlu funzjonijiet tagħna stess. Iżda hemm daqsxejn ta 'gotcha. Ejja ngħidu li kelli ma ħsibt dan permezz u I attwalment mingħajr verament ħsieb dwar dan kiteb dik il-funzjoni stabbiliti hawn. Iħoss perfettament raġonevoli. Fil Scratch m'hemm l-ebda idea fil-post fejn skripts tiegħek. Inti tista 'tpoġġi wieħed up hawn, wieħed up hawn, wieħed up hawn, u jista 'jibda li tħares messy ftit jekk inti ma jistabbilixxu dan jitwettaq pulit, iżda ma irrispettivament minn fejn fiżikament l-iskripts kienu fuq l-iskrin. Sfortunatament C - u dan huwa kuntrarju lingwi bħal Java u Python u oħrajn li inti jista 'jkun familjari ma '- sfortunatament C, sabiex ma jimpurtax għax watch x'hemm jiġri issa. Il-funzjoni default li għaddej li jesegwixxi huwa, ovvjament, prinċipali. Main hija ser sejħa isem istampar fuq linja tmienja, imma sfortunatament, l- kompilatur mhux se anki taf li l-isem istampar jeżisti sakemm jiġrilha għal-linja 11, li sfortunatament huwa se jkun tard wisq. Mela ejja ma jagħmlu bonjour. U issa kkritikat, żewġ żbalji iġġenerat. Allura issa let me iscroll sal-ħafna ewwel, kif għandna dejjem tagħmel, u avviż li huwa yelling fil lili, "Dikjarazzjoni impliċitu tal-funzjoni print isem. " Allura aħna stajt tidher dan il-messaġġ qabel, dikjarazzjoni impliċita tal-funzjoni. Meta ma rajna dak it-tip ta 'żball? Meta I ma jinkludu librerija. Jekk I nesa cs50.h u nixtieq nikseb għajjat ​​fil għal tikseb string jew tikseb int. Iżda f'dan il-każ, dan l-istampar funzjoni isem ma jkunx librerija, id-dritt? Huwa litteralment f'dan il-fajl, hekk x'hemm verament il-problema? Ukoll sfortunatament C, din tieħdok hekk oerhört litteralment li jekk inti tixtieq funzjoni msejħa isem print jeżistu, miegħek jew ikollhom biex jimplimentaw dik il-funzjoni fil-quċċata ħafna tal tiegħek kodiċi b'tali mod li huwa aċċessibbli biex ibaxxu funzjonijiet, iżda franchement, li ssir sloppy malajr ħafna. Personalment, I simili tqegħid prinċipali ewwel għaliex allura huwa ċar ħafna liema dan programm ma ewwel daqqa t'għajn. U plus, inti tista 'tikseb fis rokna stramb każijiet fejn jekk x trid sejħa y imma y tista 'sejħa x, inti biss fiżikament ma jistgħux fil-fatt imqiegħda wieħed fuq l-oħra. Iżda jirriżulta fis-C, nistgħu issolvi din ħafna sempliċement. Jien ser tpoġġi xi ftit ta 'spazju up hawn, u jien biss ser preemptively, għalkemm kemmxejn redundantly, ser jgħallem l- kompilatur li teżisti funzjoni imsejħa isem istampar, hija tieħu string, u jien ser sejħa huwa isem virgola. Allura dan issa konformi erba, li aħna ma bbenefikawx qabel, hija dikjarazzjoni ta 'isem print funzjoni, imma hija biss wegħda li din il-funzjoni se jiġu definiti eventwalment, eventwalment jiġu implimentati. Dan issa I tista 'tħalli biss minħabba issa dan huwa l-definizzjoni, l- , l-implimentazzjoni tip ta 'l-aħħar mil tal-implimentazzjoni ta 'din funzjoni partikolari. Allura franchement huwa stupid, huwa annoying, iżda dan huwa l-mod C hija, u huwa minħabba li tieħdok ħafna litteralment u, bħala kompjuter franchement għandhom, biss ma eżattament dak li għandek għid li tagħmel, u sabiex tordna hija importanti. Sabiex iżommu dan f'moħħhom u għal darb'oħra, jibdew avviż-rikorrenza ta 'mudelli. Odds huma inti se, jekk inti ma jkunux diġà, jibdew jiltaqgħu messaġġi bħal dan li ewwel daqqa t'għajn jidhru kompletament cryptic, imma jekk inti tibda biex tfittex dawn il-kliem prinċipali bħal "Dikjarazzjoni impliċitu," isemmu ta ' funzjoni f'dan il-każ - u franchement, inti xi kultant anki jiksbu aħdar ftit simbolu zunnarija li jgħidlek fejn inti il-kwistjoni probabbilment - inti tista 'tibda taħdem tiegħek mod permezz għadhom messaġġi ta 'żball li ma tidhirx. Kwalunkwe mistoqsijiet dwar il-kitba tiegħek funzjoni stess b'dan il-mod? Ejja nagħmlu xi ħaġa li a ftit aktar konvinċenti. Pjuttost milli sempliċiment tagħmel xi ħaġa li għandha effett sekondarju ta 'l-istampar, let me go quddiem u ħlief fajl ġdid, u aħna ser sejħa dan positive.c, anki jekk huwa ser tkun ftit differenti versus aħħar darba. U din id-darba, nixtieq li jerġa jimplementaha eżempju positive.C aħħar darba, li huwa seħħ il-utent biex tagħti me numru sħiħ pożittiv. Imma I kellhom jużaw tikseb aħħar darba int. Ma Ikun sbieħ jekk kien hemm funzjoni msejħa tikseb int pożittiv li I jistgħu biss jesternalizzaw dan biċċa ta 'funzjonalità li? Allura l-differenza hawnhekk hija aħna ser jimplimentaw tikseb int pożittiv, iżda għall-kuntrarju Isem print li kellhom effett sekondarju - huwa ma reġgħux lura xi ħaġa li lili bħal numru jew sekwenza - nikseb int pożittiv huwa, naturalment, se ritorn, wieħed jittama, a int pożittiv. Mela ejja jagħmlu dan. Inkludi cs50.h, Inkludi standard io.h. Int null prinċipali. U issa fil hawn, jien ser jimxi 'l quddiem u ejja ngħidu int, sejħa hija n, ugwali nikseb int pożittiv. U bħad tikseb int diġà teżisti minħabba li l-persunal kiteb dan, jien ser li wieħed jassumi għall-mument li tikseb int pożittiv jeżisti, u issa jien ser jimxi 'l quddiem u jgħidu printf, grazzi għall-% i / n ", n. Allura issa jekk I jiġbor dan il-programm, liema jiġri fil-terminal tiegħi tieqa fil-qiegħ ta l-iskrin? Jien ser probabbilment nikseb li istess żball bħal qabel. Mela ejja tipprova dan. Kun pożittiv. U għal darb'oħra, dikjarazzjoni impliċitu tal-funzjoni, jiksbu int pożittiv. Allura nistgħu issolvi dan ftit ta 'modi. Jien ser jżommha sempliċi u biss tpoġġi dikjarazzjoni tiegħi up hawn u jiksbu int pożittiv. I bżonn l-firma hekk imsejħa. Il-firma biss jirreferi għall-estetika tal- ewwel linja tal-programm. Allura dak li għandu tikseb pożittiv int ritorn? Allura int. I mean idealment, dan se jerġa 'lura xi ħaġa bħal int pożittiva, iżda li ma teżistix. Imxejna ma bbenefikawx li fost data tagħna tipi, hekk aħna li jittrattaw l- fatt li għandna ftit tipi ta 'data li jaħdmu magħhom. Iżda aħna jistgħu jirritornaw l-int u biss fiduċja li jrid ikun pożittiv. Huwa ser jiġi msejjaħ nikseb int pożittiv. U issa kif dwar argumenti tagħha? Ma tieħu kwalunkwe input? Ma bżonn xi input? Allura ma għandux bżonn tkun taf fil-xejn quddiem. Get string ma, jiksbu int ma. Printf ma - jeħtieġ li jkollu xi input mgħoddija fis dan - u l-isem istampar meħtieġa xi input, iżda jiksbu int pożittiv ma. Hekk jien ser espliċitament tell-vojt kompilatur. Null huwa n-nuqqas ta 'xi ħaġa oħra. Allura mezzi null xejn qed jiġri ġewwa ta 'dawk parentesi, b'waqfa u virgola. U issa fil-qiegħ tal-fajl tiegħi - u għal darb'oħra, jien biss qed tip ta 'anali hawn tqegħid prinċipali fil-quċċata, li Hija prattika tajba għaliex b'dan il-mod, ghaċ inti jew xi ħadd ieħor jiftaħ fajl tiegħek, il- funzjonalità huwa hemm dritt. Tista adsa minn wieħed kwadru. Allura issa jien ser duplikat dan, tikseb null int pożittiva, imma jien ma ser jintlaqtu u virgola issa. Jien ser tiftaħ ċingi kaboċċi, u issa I bżonn li jissellef xi ideat mit-Tnejn. Allura kif inti recall, għamilna xi ħaġa tixtieq tagħmel dan li ġej waqt li xi ħaġa li kien veru. U dak li ma nagħmel? Jien għamilt xi ħaġa simili tagħti me numru sħiħ pożittiv, ftit ta 'pront. I jistgħu jużaw xi kliem li nixtieq. U mbagħad I użati dak? Int n ugwali tikseb int, ebda argumenti lilha. U avviż-differenza. Meta inti sejħa funzjoni, meta tuża funzjoni, inti ma tpoġġi fil nulli. Inti biss tagħmel dan meta tiddikjara li funzjoni, tagħlim tal-kompilatur dak għandu jistenna. Allura inti m'għandekx bżonn li tpoġġi null hemm yourself. U issa dak li kien kundizzjoni tiegħi? Ukoll, n mhuwiex ugwali għal pożittiv, iżda li biss psewdo-kodiċi. Allura kif nista jesprimu dan aktar nadif? Allura inqas minn jew ugwali għal żero. Għalhekk għal darb'oħra, avviż inti tista 'tagħmel inqas minn jew ugwali għal. Anki jekk huwa żewġ separati simboli, inti tista 'tagħmel dan fuq tastiera tiegħek bħala tali. Iżda hemm għadu bug li I invitat up aħħar darba wisq. Irrid niddikjara - eżattament. I jkollha tiddikjara n barra tal-linja. So I bżonn biex n up hawn, u jien ma tixtieq li terġa 'tiddikjara dan fil hawn lest niġi varjabbli ġdid. I biss jixtiequ assenjat valur fil hawn. U issa jien ma pjuttost isir hawn. Let me nikseb qabel myself u nippretendu jien jsir. Kun pożittiv, u issa hemm żball ġdid. Kontroll tasal fi tmiem ta ' funzjoni mhux null. Allura messaġġ ġdid ta 'żball, imma jekk inti tip ta tease apparti kull wieħed mill-kliem, huwa probabbilment timplika referenza għall x'hemm ħażin. Kontroll. Kontroll ifisser biss l-ordni ta 'operazzjonijiet fi programm. Il-kompjuter huwa fil-kontroll u xi ħaġa li marret ħażin. Għalhekk jasal fl-aħħar tal- funzjoni mhux null. Liema funzjoni huwa apparentement jirreferu għall? Liema funzjoni hija mhux null? Allura nikseb int pożittivi, u ftit toħloq konfużjoni sew, huwa tip ta 'bla effett. Hija għandha speċifikazzjoni tal invalidu għal tagħha argumenti, iżda output tagħha se jkun ta n tip. Allura l-kelma fuq ix-xellug huwa l- hekk imsejħa tip ritorn. Il-kelma fuq ġewwa hawnhekk huwa l-argumenti żero jew aktar li l-funzjoni jieħu. Mela xi do I bżonn tagħmel? F'dan il-punt fil-kodiċi tiegħi, linja 21 fejn fil-pront Teptip issa, I ikollhom int pożittiv ġewwa tal-varjabbli imsejħa n. Kif nagħti lura għal main? Litteralment. Ritorn n virgola. Hekk biss bħala Colton lura biċċa karta bi tweġiba lili billi twaqqa dik il-biċċa tal-karta fil-sewda ftit kaxxa fuq il-mejda, li jagħmlu dan fil- kodiċi, inti litteralment biss jiktbu, ritorn n, u huwa bħallikieku kienu Colton għoti me xi ħaġa lura fiżika. F'dan il-każ, dak li qed jiġri hu li tikseb int pożittiva se jagħti lura x'hemm preżumibbilment pożittiv integer lil min? Fejn ma dan il-valur jispiċċaw? Li jispiċċa f'dan varjabbli, n, u allura aħna jipproċedi bil-linja disa. Allura fi kliem ieħor, f'ordni ta ' operazzjonijiet, dan il-programm jibda eżekuzzjoni, u l-kompilatur jirrealizza, oh, trid li l-librerija? Let me go grab kwalunkwe huwa ġewwa dak. Oh, trid li l-librerija IO standard? Let me go grab kwalunkwe huwa ġewwa dak. X'tagħmel l-kumpilatur jgħidu għalih innifsu meta hits linja erba? Oh, inti wiegħed li timplimenta l- funzjoni msejħa tikseb pożittiv, iżda aħna ser terġa 'lura għal li aktar tard, xi ħaġa f'dan is-sens. Null prinċipali Int ifisser biss hawn l-imsaren tal-programm tiegħi. Line seba huwa biss Brace kaboċċi. Line tmienja huwa qal fuq ix-xellug, jagħtu me 32 bits għal integer, sejħa hija n. Min-naħa tal-lemin, huwa qal tikseb int pożittiv. Issa ejja nieqaf li l-istorja għaliex issa I ma iżommu jiċċaqilqu cursor tiegħi isfel. Cursor tiegħi issa jinżel hawnhekk għaliex issa jiksbu int pożittiv tesegwixxi. Int n hija ddikjarata. Tagħmel dan li ġej. Printf tagħti me numru sħiħ pożittiv. Get int mill-utent, aħżen fid n, u forsi jagħmlu dan mill-ġdid u għal darb'oħra. Dan loop ifisser li dan il-kodiċi jista ' jesegwixxu u 'l isfel bħal dan mill-ġdid u għal darb'oħra, iżda meta l-utent finalment jikkoopera u tagħti me a pożittiv int, I hit linja 21, f'liema punt l- numru huwa mgħoddi lura, u li wieħed għandi jenfasizzaw issa? Disa. Kontroll, biex ngħidu hekk, prospetti għal-linja disa. Dik hija l-linja li issa inkarigat. Allura dak hu li kien jiġri kollha din id-darba taħt il-barnuża, iżda meta konna użati funzjonijiet bħall printf jew anki jiksbu string li xi ħadd ieħor kiteb għalik, kontroll kien qiegħed mogħtija off li xi ħadd ieħor Kodiċi linja minn linja b'linja. Huwa biss aħna ma setgħux jarawha u aħna ma jista 'verament juru li f'dan programm għaliex dan huwa f'xi ieħor fajl fuq il-hard drive unbeknownst lilna. Mela ejja attwalment tiġbor u run dan issa. Kun pożittiv. Jikkompilaw, li progress. . / Pożittiv. Agħti me numru sħiħ pożittiv. Ejja tkun diffiċli. Negattiva 1. Zero. Ejja tagħtiha 50. Grazzi għall-50, u għalhekk kontroll issa lura. Kwalunkwe mistoqsijiet, imbagħad, fuq dan? Yeah? [Inaudible]. Say darb'oħra. Oh, mistoqsija tajba. Allura inti tista 'tinnota a parallel hawn li Jien tip ta 'qtugħ kantuniera fuq. F'konformità 12, jien qal, jiksbu int pożittiv jirritorna int, imma minn dik l-istess loġika, issa stands għal raġuni li fl sitt linja, jien qal li prospetti ewlenin l int, imma dak jkollhom aħna qatt kellha fi kwalunkwe ta 'programmi tagħna? Imxejna qatt ma kellhom referenza dan ir-ritorn kelma prinċipali. Għalhekk jirriżulta li fis-C, għall-inqas il-verżjoni ta 'li aħna qed tuża magħmula fl-1999, teknikament, dan huwa jiġri għalik awtomatikament. Ghaċ inti jimplimentaw programm u inti timplimenta funzjoni msejħa prinċipali, dik il-funzjoni se terġa 'lura żero billi default, jekk inti ma jgħidux mod ieħor, u żero huwa biss konvenzjoni. Id-dinja prospetti żero b'hekk jindika li kollox huwa tajjeb, effettiv jħallu lilna ma erba 'biljun affarijiet possibbli li jistgħu jmorru ħażin b'tali mod li jekk nerġgħu lura waħda, li tista ifisser kodiċi li jfisser dan ħaġa li marret ħażin. Aħna jista 'ritorn tnejn, li jfisser dan ħaġa oħra marret ħażin. Aħna jista 'ritorn erba' biljun, li ifisser dan ħaġa oħra marret ħażin. U jekk inti issa taħseb dwar tiegħek stess PC jew Mac, inti tista 'recall li kultant ikollok messaġġi ta 'żball cryptic mis-software li int użu, u xi kultant għandha dimensjoni umana deskrizzjoni friendly, iżda hemm spiss kodiċi jew numru fuq l-iskrin? Jekk dan ma jiġu f'moħħna, biss żżomm għajnejk out għal dan. C'est tipikament liema dawn kodiċijiet huma jirreferu għall. Huma qed inkluża fil Microsoft Word u programmi oħra b'tali mod li jekk inti fajl rapport bug mal-kumpannija, inti tista ' jgħidulhom, oh, sibt numru żball 45. U xi programmer lura fil-kumpanija tista 'tfittex li fil tiegħu jew tagħha kodiċi u jgħidu, oh, dan għaliex I magħmula dan bug u hu għalhekk li l-utent sibt dan il-messaġġ. Iżda franchement, huwa biss ftit jfixkluh u tedious ftit li jikkonkludu li, mill-inqas fuq tagħna programmi ftit ewwel, hekk aħna ħadthom ġew tħalli barra dan. Iżda dan il-ħin kull wieħed tiegħek funzjonijiet prinċipali tkun segretament kellha din linja awtomatikament miżjud għalik mill- kompilatur, biss permezz tal-konvenzjoni li jiffrankaw xi żmien. [Inaudible]. Inti ma għandekx bżonn li din tiġi inkluża fil-prinċipali. Li l-multa. Inti ma għandekx bżonn li tkun inkluża jekk inti kienu implimentazzjoni ta 'funzjoni bħal din. Inkella-ċatt funzjoni out ma tkunx taħdem. Iżda fl prinċipali, mhuwiex meħtieġ. Fil-ġimgħa jew tnejn, aħna ser jibda jkollna f'dak vizzju darba rridu nibdew li tfisser żbalji. Verament tajba kwistjoni. Break verbali hekk malajr li wieħed isemmi li din il-ġimgħa, aħna mhux se jkun li jkollhom ikla per se, imma aħna ser tkun li pranzu ma ' xi wħud mill-istudenti u l-persunal. Jekk inti tixtieq li jingħaqdu magħna, tħossok liberu li tmur cs50.net/rsvp. 06:00 nhar il-Ġimgħa. L-ispazju huwa, bħal dejjem, limitati, imma aħna ser tkompli tagħmel dawn fuq kważi bażi ta 'kull ġimgħa jekk l-ispazju runs out din il-ġimgħa. Allura l-cliffhanger li aħna jitħalla 'off fuq It-tnejn kienet li kordi tista 'attwalment jiġu indiċjati fi, li sempliċiment ifisser li inti tista 'tikseb fl-ewwel karattru, il- tieni karattru, it-tielet karattru u oħrajn, għaliex inti tista ' jaħsbu b'mod effettiv ta 'spag, bħal hello, bħala f'dan il-każ ħamsa ittri ġewwa ta 'kaxxi. U inti tista 'tikseb fuq kull wieħed minn dawk kaxxi ma 'dak sintassi ma we jintroduċu nhar it-Tnejn? Dawk parentesi kwadri fuq it-tastiera tiegħek. Li maħsuba biss jmorru post żero. Nibdew għadd żero, hekk bracket żero ifisser h, parentesi wieħed ifisser e, u oħrajn. U hekk il-ħin kollu meta aħna kont qed spag u t-tajping fil-"bonjour" u "dinja" u affarijiet oħra fuq l-iskrin, huwa kien maħżun fil-kaxxi bħal dan. U tieħu raden. Xi jfisser kull kaxxa jirrappreżentaw fiżikament ġewwa tal-kompjuter tiegħek? [Inaudible]. Jiddispjacini? Karattri. Allura karattru, ċertament fil-każ ta 'kordi, u karattru huwa biss tmien bits jew byte wieħed. Allura inti probabilment huma inqas vagament familjari mal-fatt li tiegħek kompjuter għandu memorja. Din għandha żewġ tipi ta 'memorja inqas. Wieħed huwa l-hard disk fejn tfaddal Jittieħed permanenti, u li tipikament big sabiex inti tista 'jkollha movies u l-mużika u oħrajn. Imbagħad inti għandek tip ieħor ta 'memorja imsejħa RAM, R-A-M, Random Access Memorja, u dan huwa t-tip ta 'memorja li hija użata meta l-kompjuter tiegħek huwa taħdem imma jekk inti jitilfu l-enerġija jew tiegħek imut batterija, xejn thats maħżuna fil RAM tisparixxi jekk inti jitilfu l-enerġija kollox għaliex mhuwiex persistenti. Inti tipikament ikollhom, dawn il-ġranet, a GIG ta 'dan, żewġ gigs, forsi aktar. U l-rasu ta 'RAM hija li huwa ferm ħafna, ħafna aktar mgħaġġla minn hard disks jew saħansitra istat solidu drives dawn il-ġranet, iżda huwa tipikament aktar għaljin hekk għandek inqas minnu. Allura konversazzjoni lum verament tirreferi to RAM, dak it-tip ta 'memorja li teżisti biss filwaqt li hemm poter jkunu mitmugħa fis-kompjuter tiegħek. Allura meta inti tip H-E-L-L-O, Ikteb fuq il-keyboard, il-H sejra fid wieħed byte ta 'RAM, il-E huwa għaddej fil- byte ieħor ta 'RAM, kif il-bqija tal-kelma. Allura tfakkar dak li konna kapaċi jagħmlu aħħar darba kien dan. Let me imorru quddiem u tiftaħ il-fajl li aħna msejħa string.c, u jfakkru li deher ftit xi ħaġa bħal din. Let me attwalment roll lura u l-bidla li eżattament dak li dehru qishom, tul sensiela ta 's. Allura ħarsa lejn il-programm hawn. Aħna jinkludu l-librerija CS50 hekk li nistgħu nużaw jiksbu sekwenza. Aħna jinkludu io.h standard hekk nistgħu nużaw printf. Għaliex ma aħna jinkludu string.h? Dan kien ġdid nhar it-Tnejn. Allura ridna tul string. Str leng. Nies iddeċieda snin ilu, ejja ikunu biss konċiż. Minflok ta 'sejħa dan "tul string," ejja sejħa hija "str leng" u ħalli l- figura dinja li out, u b'tali mod li dak li aħna jiksbu aċċess għal ma 'string.h. Dan huwa familjari. Dan huwa familjari. Dan huwa familjari. Dan huwa ftit ġdida. F'konformità 22 - u aħna ser terga 'lura għal dan, iżda għal issa jkunu jafu - u inti taf biss dan milli jkollhom aqra d-dokumentazzjoni jew jekk inti taf C diġà - nikseb string xi kultant jista 'screw up. Jekk l-utent huwa verament kontradittorja jew mhux kooperattiva u hu jew hi biss ma tip xejn fil-keyboard jew tipi tant fil-keyboard li dan ma jkunux jistgħu jlaħħqu memorja tal-kompjuter, fit-teorija, jiksbu string jista 'ritorn xi ħaġa li ma tkunx sekwenza ta 'karattri. Hija tista 'ritorn ta' valur speċjali msejħa NULL fil-limiti kollha, N-U-L-L, u dan huwa biss valur sentinella hekk imsejħa. Huwa valur speċjali li jissinifika xi ħaġa ħażina ġara f'dan il-każ. Huwa n-nuqqas ta 'sekwenza. So null jien iċċekkjar biex sempliċement sabiex, twil storja qasira, str leng u funzjonijiet oħra li jiġu mal C, jekk huma jistennew string iżda inti tgħaddi minnhom l-assenza ta 'spag, jekk inti tgħaddi minnhom NULL, il-kompjuter jew il-programm se biss crash outright. Hija se hang. Hija se tarmi up xi messaġġ ta 'żball. Affarijiet ħżiena se jiġri. Allura anke jekk dan għadu mhux definiti sew - din se tagħmel aktar sens fil-ġimgħa jew żewġ - fil-linja 22, dan huwa biss Eżempju ta 'awto-verifika żball difensiv biss f'każ wieħed ħin ta ' xi ħaġa miljun tmur ħażin, fil inqas programm tiegħi mhux se crash. Hekk jekk i ma ugwali xi ħaġa ħażina, I jkollhom din għal loop, u dan kien fejn kellna li oħrajn biċċa ġdida ta 'sintassi. I jkollhom għall loop iterazzjoni minn żero fuq sa l-tul ta 's. U allura hawnhekk, I kien istampar out s bracket i, imma għaliex ma I użu% c kollha f'daqqa minflok% s anke għalkemm i hija sekwenza? Huwa karattru, id-dritt? S hija sekwenza, imma xi ħaġa parentesi, s bracket i fejn i hija żero jew waħda jew tnejn, li l-individwu karattru fis-sekwenza, u għalhekk għall- hekk, jeħtieġ printf li jiġi infurmat li huwa tabilħaqq karattru li jistennew. U mbagħad tfakkar, dak li għamlet dan programm fil-fatt jagħmlu? Stampat it out fil-kolonni. Yeah, eżattament. Hija biss il-kelma stampata li I tip kolonna, karattru wieħed kull linja. Mela ejja tara dan mill-ġdid. Sabiex tagħmel string. Miġbura OK. . / String. Let me tip H-E-L-L-O, Ikteb, u tabilħaqq I ġġibu, waħda għal kull linja. So let me do ottimizzazzjoni wieħed hawn. Jekk taħseb dwar dan, speċjalment jekk inti stajt programmati qabel, hemm forsi xi ineffiċjenza fil-linja 24. Fi kliem ieħor, mhuwiex neċessarjament l-aħjar disinn. Sempliċi, mill-inqas darba inti tiftakar dak str leng hija, iżda huwa tagħmel xi ħaġa dumb potenzjalment. Liema jista 'jkun? [Inaudible]. Eżattament. Huwa verifika għat-tul ta 'i kull darba waħda ukoll jekk H-E-L-L-O huwa dejjem se li jkun ta 'ħames karattri. Kull darba permezz ta 'dan loop, il-ħamsa mhix jinbidlu. I jista 'jkun inkrementazzjoni i, imma dak huwa t-tul ta 'i fuq kull iterazzjoni ta 'dan loop? Huwa ħames, huwa ħamsa, huwa ħames, u għadhom I am madankollu tistaqsi din mistoqsija ġdid u għal darb'oħra u għal darb'oħra. Issa franchement, il-kompjuter huwa hekk kkritikat fast, l-ebda wieħed għaddej biex tinnota differenza f'dan il-każ, iżda dawn it-tipi ta 'deċiżjonijiet tad-disinn fqira tista jibdew jammontaw jekk il-kompilatur innifsu ma tipprova li jiffissaw dan għalik li tipikament ma kienx, f'dan inqas fil-appliance. Hekk jien ser jagħmlu dan. Jien ser żżid comma wara ewwel varjabbli tiegħi, i. Jien ser jagħti myself ieħor varjabbli, ssejjaħ dan n, biss billi konvenzjoni għall-numri, u allura jien ser tassenja n-valur tal string tul ta 's. U allura jien se jibdlu kundizzjoni tiegħi li jkun dak li? Jien se jibdlu kundizzjoni tiegħi li filwaqt li i huwa inqas minn n. Allura issa, kif ħafna drabi I am iċċekkjar it-tul ta 'i? Darba, imma huwa OK biex jiċċekkjaw i kontra n darb'oħra u għal darb'oħra minħabba li issa dawk Valuri mhumiex attwalment jinbidlu. Issa għal issa, biss jafu li ghaċ sejħa funzjoni, hemm daqsxejn ta ' overhead, mhux biżżejjed biex jiskoraġġixxu inti verament milli tuża funzjonijiet, iżda ċertament meta jkun hemm linja tal-kodiċi bħal dik - u l-linji se tikseb aktar interessanti qabel twil - fejn hemm opportunità biex jaħsbu, jekk I tip dan il-kodiċi, kemm drabi se tesegwixxi? Inti ser tibda tara maż-żmien il- prestazzjoni tal-programmi tiegħek jista ' tabilħaqq bidla. Fil-fatt, wieħed mill-problema settijiet konna imwettaq fis-snin passat jinvolvi implimentazzjoni, kif inti tista 'recall minn żero ġimgħa, jespliċitaw kontrollur, iżda jespliċitaw kontrollur li, imfassla biex jappoġġjaw dizzjunarju ta '150,000 plus kliem li aħna jagħtuk guys. Inti għandek tikteb kodiċi li tagħbijiet dawn il-kliem fis-RAM, hekk fis kaxxi bħal rajna fuq l-iskrin mument ilu, u mbagħad malajr kemm tista tista ', inti jeħtieġ li tkun kapaċi twieġeb għal kwistjoni tal-formola, hija din il-kelma misspelled? Huwa din il-kelma misspelled? Huwa din il-kelma misspelled? U fil xi ħaġa bħal dik dak li aħna ħadthom imwettaq fis-snin passat huwa mdawwar fi, għalkemm fuq bażi opt-in fakultattiv, a kompetizzjoni ta 'tipi, li biha l- studenti li jużaw il-RAM inqas u inqas ħin, inqas CPU ċikli, jispiċċaw tbaqbieq sal-quċċata ta 'ftit bord mexxej jew gradazzjoni li nitfgħu fuq homepage il-kors kif konna imwettaq fis-snin li għaddew. Għalhekk għal darb'oħra, totalment mhux obbligatorju, iżda dan jitkellem għall-opportunitajiet disinn li huma qabel ladarba nibdew bini atop xi wħud minn dawn moduli bażiċi tal-bini. So let me jmorru lura għal dan dijagramma għal ftit mument u jiżvelaw ftit xi ħaġa aktar. Dan tabilħaqq hija sekwenza, u aħna ħadt vantaġġ minn libreriji ftit, io.h standard li għandha - Printf. Printf, fost affarijiet oħra. cs50.h, li jiksbu int u jiksbu string u oħrajn, string.h, li kellhom str leng. Iżda jirriżulta hemm énième. Franchement, hemm lottijiet u lottijiet ta header fajls li jiddikjaraw funzjonijiet għal-libreriji, iżda dan huwa ctype.h fil-fatt se jkun kemmxejn vantaġġuża għaliex jien ser jimxi 'l quddiem u jimplimentaw waħda programm ieħor hawnhekk. Let me imorru quddiem u tiftaħ xi ħaġa I kiteb bil-quddiem imsejjaħ capitalize.c, u ejja tagħti ħarsa lejn kif taħdem din. Avviż li jien jużaw, f'dan il-verżjoni ta 'dan, tliet fajls familjari. Avviż li fil-linja 18, jien jkollna linja tat-test. Avviż bil-linja 21, jien fejn sostniet li il-kodiċi li ġej se tikkapitalizza i, ikun x'ikun l-utent ittajpjat fi, u kif am I tagħmel dan? Well, jien tieħu - lezzjonijiet li tgħallmu mill-aħħar darba - Jien tiddikjara i u n u iterazzjoni fuq il-karattri fit-sekwenza. U allura dak li huwa din il-blokka ta ' kodiċi fil-linja 24 permezz 27 jagħmlu f'termini laymans? Zghar ittra lura. Eżattament. Jekk i bracket i - hekk jekk l-i-th karattru ta 's, li huwa speċifiku char fis-sekwenza, huwa akbar minn jew daqs zghar au - ifakkar li ampersand doppja turi u - u l-istess natura, s parentesi i, hija inqas minn jew ugwali għal zghar z, dan ifisser huwa ta 'a jew b jew c jew dot, dot, dot, jew z, li jfisser huwa zghar. What do I trid tagħmel f'dak il-każ? Well, I tista 'tagħmel dan kemmxejn cryptically, iżda ejja tease dan apparti. Jien ser sejħa printf, stampi% c għaliex nixtieq li Reprint dan karattru fuq l-iskrin. Jien imbagħad ser jieħdu s parentesi i, il- karattru i-th fil-i, u allura għaliex am I tagħmel dan trick ftit hawn, zghar a A kapital minus? X'inhu li ser jagħti me, ġeneralment? [Inaudible]. Eżattament. I ma verament tiftakar - kien 65 għal kapital A. I ma verament tiftakar dak zghar a huwa, iżda l-ebda kwistjoni. Il-kompjuter jaf. Allura billi qal, zghar nieqes kapital A, huwa stramb li jkun tnaqqas char waħda minn oħra, iżda liema huma Chars taħtha l-hood? Huma qed biss numri. Sabiex ikun x'ikun dawn in-numri huma, ħalli l-kompjuter tiftakar minflok lili il-bniedem. Allura zghar kapital nieqes A huwa ser jagħti me differenza. Dan jiġri li jkun 32, u li tkun il-każ għal b zghar u kapital B u ibqa 'sejjer hekk. Jibqa konsistenti, Thankfully. Hekk jien essenzjalment tgħid, jieħdu l- zghar ittra, naqqas off li differenza standard, u li bidliet effettivament i bracket i minn zghar li, naturalment, uppercase, mingħajr tiegħi verament jkollhom biex jaħsbu dwar jew ftakar, liema kienu dawk numri tkellimna dwar meta l-tmien voluntiera ħarāu fuq il-palk? Issa sadanittant, fir-oħra, jekk mhuwiex ittra zghar kif determinat minn linja 24, biss print out. I biss tixtieq li tmiss il- karattri li kienu attwalment oriġinarjament zghar. Mela ejja tara dan. Għamla kapitalizzazzjoni. Miġbura, OK. . / Kapitalizzazzjoni. U let me tip H-E-L-L-O fl lowercase, Ikteb. U tinnota li dan jiġi konvertit fis uppercase. Let me jagħmlu dan mill-ġdid ma kelma differenti. Kif dwar D-A-V-I-D ma 'l-ewwel D kapitalizzat bħala isem tipikament hu? Ikteb. Avviż huwa għadu korretta. Huwa biss outputted li l-ewwel D nbidlux permezz ta 'dik inkella jinbena. Allura wieħed iżomm f'moħħu, allura, a koppja ta 'affarijiet hawn. Waħda, jekk inti qatt tixtieq li jiċċekkjaw tnejn kundizzjonijiet f'daqqa, inti tista 'u minnhom flimkien kif aħna mbassra. Tista 'tqabbel karattri b'dan il-mod u effettivament jittrattaw tipa numri, iżda franchement, dan huwa hekk kkritikat cryptic Jien qatt ma ser tiftakar kif toħroġ bi dan mill-bidu mingħajr motivazzjoni minnu għal pjuttost ftit ta 'żmien. Ma Ikun sbieħ jekk xi ħadd hemmhekk kiteb funzjoni msejħa huwa inaqqsu dak setgħux iwieġbu għalija vera jew falza, dan il-karattru huwa lowercase? Well Thankfully, min kiteb ctype.h ma eżattament dan. Let me go up hawn u żid ctype għall c tipi, u issa let me jinżlu hawn u jikteb din il-linja kif ġej. Mela jekk huwa msejjaħ hija aktar baxxa, nitlob, s bracket i, allura jien ser tħassar dawn iż-żewġ linji għal kollox. Allura issa xi ħadd ieħor, jien bit-tama, kiteb funzjoni msejħa hija aktar baxxa, u dawriet out dawn ma u huma ddikjarati dan ġewwa tal ctype.h. U issa jien ser jitilqu linja 27 biss, jien ser jitilqu linja 31 biss, imma avviż kemm stajt issikka d kodiċi tiegħi. Huwa issa aktar nodfa. Huwa inqas diffiċli biex tfittex permezz għaliex issa l-funzjoni, barra minn hekk, huwa hekk wonderfully jismu dan biss ma dak li jgħid. Allura issa jien ser jiffrankaw din. Jien ser zoom out. U hekk kif fil Scratch inti jista 'jkollhom Booleans, valuri Boolean vera jew falza, dan huwa eżattament dak li huwa ibaxxu effettiv prospetti. Let me recompile. Let me ri-run. U issa ejja tipprova mill-ġdid, H-E-L-L-O, Ikteb. Li pjuttost tajba. U tipprova mill-ġdid, kun żgur I ma screw up xi ħaġa. Dan huwa kapitalizzat ukoll. Iżda dan mhuwiex tajjeb biżżejjed minħabba li l- ħaġa oħra li jien qatt ma ser ftakar sakemm I taħdem permezz tassew b'attenzjoni fuq, ngħidu aħna, karta hija din il-linja kkritikat. Ma Ikun sbieħ jekk kien hemm funzjoni msejħa biex fuq? Ukoll jirriżulta hemmhekk huwa ctype.h ukoll. Jien ser jimxi 'l quddiem u t-tip - let me iġġib dik il-linja lura. Minflok dan hawn, let me imorru quddiem u jgħidu, tissostitwixxi l-% c il- riżultat ta 'sejħa din il-funzjoni li ta 'fuq fuq il-karattru i-th tal-i. U issa avviż huwa jkollna ftit bbilanċjati. I għandhom iżommu rekord ta 'kemm parentesi Stajt miftuħa u magħluqa. Allura issa huwa saħansitra aktar nodfa. Issa dan il-programm huwa jkollna aħjar u mfassla aħjar forsi għaliex dan huwa ħafna, ħafna aktar tinqara iżda Hija l-ebda ejja jikkoreġu. Għamla kapitalizzazzjoni. . / Kapitalizzazzjoni. H-E-L-L-O. Ejja run mill-ġdid, D-A-V-I-D. OK, hekk aħna qed għadhom fl pretty forma tajba. Imma issa li fuq. Nipproponi li hemm wieħed aktar irfinar nistgħu jagħmlu li jkun tassew sbieħ, li jista 'verament jissikkaw up dan il-kodiċi u verament tagħtina ħames minn ħamsa għal disinn, per eżempju. Dak li jkun sbieħ li jeħles? Ukoll, tfittex kemm kkritikat twil f'dan il-blokk ta ' kodiċi huwa biss biex jagħmel xi ħaġa sempliċi. Issa bħala twarrib, kif inti jista 'jkollok tidher fis-sezzjoni super f'dan passat weekend, inti strettament m'għandhomx bżonn l- braces kaboċċi meta inti biss għandek wieħed linja tal-kodiċi, anke jekk aħna propost żommhom sabiex jagħmel ħafna aktar ċara, bħal fil U-forma Scratch tal blokki, x'hemm ġewwa tal-fergħa. Imma ma kienx ikun sbieħ jekk l fuq, meta jingħata input tagħha, huwa mdawwar fi uppercase jekk mhuwiex, u dak li kieku tkun isbaħ fil-każ oppost, jekk huwa diġà uppercase? Just għaddiha u jitilqu minnu biss. Allura forsi ma dan. I tista 'tipprova u ftit tama li ma, imma ħalluni jintroduċu ħaġa waħda oħra. Minflok tuża dan built-in terminali tieqa stabbiliti hawn, ifakkar li din l-ikona iswed kwadru jagħtik tieqa terminal akbar li nista sħiħa iskrin jekk irrid? Għalhekk jirriżulta li dawn qed tip ta 'oddly msemmija, iżda hemm dawn l-affarijiet imsejħa paġni bniedem, paġni manwali, il-bniedem fil-qasir, u nista 'aċċess dawn billi ittajpjar bniedem - liema do Irrid tip? Man għal fuq. U issa avviż jekk jeżisti jiffunzjonaw ġewwa tal-kompjuter, fil- F'dan il-każ l-appliance, li huwa biss is-sistema operattiva Linux, li għaddej li tagħti me sett kemmxejn cryptic ta output, imma inti ser issib matul iż-żmien li dejjem huwa formattjati pjuttost l- istess sabiex tibda biex jidraw lilha. Avviż fil-quċċata li fuq, u apparentement huwa l-istess dokumentazzjoni għall tinżel. Kull min kiteb kien qtugħ xi kantunieri u qiegħdu kollu fuq paġna waħda. Għan Dawn l-affarijiet fil ħajja huwa li jikkonverti ittra lill fuq jew zghar. Avviż li taħt Synopsis, il-paġna bniedem hija tagħlim me dak għandi fajl li tinkludi l-użu dan il-ħaġa. Huwa jagħti me-firem għal dawn funzjonijiet, kemm minnhom, anke jekk aħna dritt issa biss jimpurtahom wieħed. Hawnhekk issa huwa deskrizzjoni. Biex tikkonverti l-ittra ta 'fuq c li uppercase jekk possibbli. Still mhux li istruttivi, iżda let me issa jfittxu taħt valur tar-ritorn, il-ħaġa thats mogħtija lura. Allura l-valur irritornat huwa dak tal- ittra konvertiti jew c jekk il- konverżjoni ma kienx possibbli. X'inhu c? Il-karattru oriġinali. Il-karattru oriġinali u nafu li billi, għal darb'oħra, li jmorru sal- sinopsi, u min kiteb dan funzjoni biss iddeċieda li l-input li l fuq u t'isfel li huwa biss arbitrarjament se jiġu msejħa c. Huma jistgħu qalu li din xejn aktar li jridu, imma dawn żammha sempliċi kemm c. Allura stajt kkonsultat il-paġna bniedem. Din is-sentenza Lászlo me li jekk huwa mhux ittra zghar, huwa ser biss jagħtu me back c, li huwa perfetta, li jfisser I tista 'teħles minn kundizzjoni ieħor tiegħi. So let me jmorru lura għall gedit, u issa let me biss tagħmel dan. Jien ser kopja dikjarazzjoni printf tiegħi. Jien ser imorru quddiem u dritt ġewwa l għall-istampar loop li minn, u jiksbu rid ta 'issa dan kollu jekk jinbena. Ma kienx idea ħażina, u kien ferm ħafna korretta u konsistenti ma ' kollox konna preached, iżda biss mhux meħtieġ. Hekk kif inti tirrealizza xi librerija funzjoni teżisti li xi ħadd ieħor kiteb, jew forsi inti kiteb x'imkien ieħor il-fajl, inti tista 'tuża u verament jibdew li jissikka l-kodiċi. U meta ngħid affarijiet simili stil tajjeb, il-fatt li din il-persuna msejħa l- jiffunzjonaw għal fuq, jew qabel, hija baxx huwa wonderfully utli għaliex dawn qed ħafna deskrittiv. Inti ma tkunx tixtieq li sejħa funzjonijiet tiegħek X u Y u Z, li għandhom ħafna, ħafna inqas tifsira. Kwalunkwe mistoqsijiet dwar dak is-serje ta 'titjib? Allura huwa biżżejjed li jingħad wieħed mill- takeaways huwa saħansitra bħala problema tiegħek set - forsi problema sett wieħed, iżda ċertament P stabbiliti żewġ u 'l quddiem, anki meta jkunu qed korretti mhux bilfors jfissirx li dawn huma perfetti biss jew għadhom partikolarment mfassla tajjeb. Dik hija l-assi ieħor li tibda taħseb dwar. Allura dan kien ġewwa sensiela ta 'tiegħek memorja tal-kompjuter, imma jekk għandek mazz sħiħ ta 'karattri bħal H-E-L-L-O ġewwa ta 'RAM, u jissoponi li inti fil-programm tiegħek sejħa tikseb string minn darba tali li inti sejħa nikseb string darba, allura inti sejħa tikseb string mill-ġdid. Ukoll, dak li għaddej biex jiġri matul iż-żmien? Fi kliem ieħor, jekk għandek linja ta ' kodiċi, għalkemm barra mill-kuntest, bħall- string s gets - ejja tagħmel dan. Isem String ugwali tikseb string. Allura jissoponi li linja tal-kodiċi huwa maħsub li titlob lill-utent għall-isem tiegħu jew tagħha. Din il-linja li jmiss ta 'kodiċi hija maħsuba biex jistaqsu l-utent għall-iskola tiegħu jew tagħha, u din il-linja li jmiss, u oħrajn. Ejja ngħidu li aħna iżommu tistaqsi l-utent għall-ieħor u ieħor u ieħor string. Huma qed tmur biex jibqgħu fil-memorja fl-istess ħin. Wieħed mhux se clobber l-oħra. Iskola huwa mhux jissostitwixxu l-oħra. Iżda fejn do dawn kollha jispiċċaw fil-memorja? Ukoll, jekk nibdew biex ifasslu fuq l-iskrin, li nistgħu nużaw dan il-ħaġa hawn bħal chalkboard, jekk dan iswed rettangolu tirrappreżenta l-kompjuter tiegħi memorja, jien ser tibda arbitrarjament jaqsmuh up fis ftit kwadri, li kull wieħed minnhom jirrappreżenta byte wieħed ta 'memorja. Franchement, jekk għandek gigabyte ta 'RAM dawn il-ġranet, inti għandek biljun bytes tal-memorja fil-kompjuter tiegħek, sabiex biljun ta 'dawn kwadri. Allura huwa biżżejjed li jingħad, dan mhuwiex verament li l-iskala. Iżda nistgħu iżommu tpinġija kollha ta 'dawn kjarament mhux iskala kwadri, u din jirrappreżenta kollettivament memorja tal-kompjuter tiegħi. Issa aħna ser biss tagħmel dot, dot, dot. Allura fi kliem ieħor, meta I issa pront il- utent string get li tagħti me spag, x'jiġri? Jekk tipi l-utent fil-"hello," li jispiċċa up fil-H E-L-L-O. Iżda jissoponi l- utent imbagħad tipi fil - attwalment, I ma għandu jkollu jsir bonjour għaliex aħna qed tistaqsi minnhom għall-ismijiet tagħhom. Mela ejja mmorru lura jekk I tista 'tagħmel dan. Mela jekk jien tip D-A-V-I-D għall-isem tiegħi, iżda tfakkar li t-tieni linja ta ' kodiċi kien nikseb string mill-ġdid biex tikseb l-iskola tagħhom. Fejn hi din il-kelma li l-utent tipi fil se jmorru jmiss? Well, forsi huwa se jmorru fil H-A-R-V-A-R-D. Allura anke jekk stajt mfassla bħala żewġ ringieli, dan huwa biss mazz sħiħ ta 'bytes fil tiegħek RAM kompjuter. Hemm problema issa għaliex issa jekk jien użu RAM f'dan raġonevoli ħafna iżda tip ta 'mod naive, dak li jista inti ma apparentement distinzjoni? Meta waħda jibda u fejn wieħed truf, id-dritt? Huma qed tip ta 'ċajpir flimkien. Għalhekk jirriżulta li l-kompjuter ma tagħmel dan. Let me attwalment iscroll lura fil-ħin ta ' karattri ftit, u minflok Harvard jmorru immedjatament wara isem l-utent, l-utent fil-fatt gets, wara l-kwinti, karattru speċjali inserit mill- kompjuter għall lilu jew lilha. / 0, magħrufa wkoll bħala l-karattru Nul annoyingly imsejħa N-U-L, ma N-U-L-L, iżda tikteb bħala / 0. Huwa biss kollha bits żero hija markatur fil- bejn l-ewwel kelma li l-utent ttajpjati u t-tieni. Allura Harvard attwalment issa jispiċċa kif din is-sekwenza ta 'karattri u wieħed aktar / 0. Allura fi kliem ieħor, billi dawn Valuri sentinella, tmienja żero kontigwi bits, inti issa tista 'tibda biex issir distinzjoni karattru waħda minn oħra. Allura dan il-ħin dak li kien "bonjour" huwa attwalment "bonjour" ma '/ 0, u sadanittant, hemm tista 'tajjeb ħafna jkun pjuttost ftit aktar RAM ġewwa tal-kompjuter. Let me jagħmlu ħaġa waħda oħra issa. Jirriżulta li kollha ta 'dawn kwadri aħna kont qed tpinġija, huma, iva, kordi, iżda b'mod aktar ġenerali, dawn l-affarijiet huma arrays. Firxa hija biss blokki ta 'memorja li l-lura lura lura biex lura, u inti tipikament jużaw firxa permezz ta 'dan notazzjoni parentesi kwadri. Allura aħna qed tmur biex tara dawn pjuttost ftit matul iż-żmien, iżda let me imorru quddiem u jiftħu, ejja sejħa hija etajiet. U avviż dak li nistgħu nagħmlu ma ' dawn l-istess tricks, ftit daqsxejn aktar sintassi hawn. Allura fil-linja 17 ta 'dan il-programm - attwalment, let me imexxu l-programm ewwel hekk nistgħu naraw dak li din il-ħaġa ma. Let me sejħa tagħmel età biex jikkompilaw dan il-programm. Etajiet. /. Kif ħafna nies huma fil-kamra? Sejħa hija tlieta. Età ta 'l-ewwel persuna? 18, 19, u 20. U issa kemmxejn ridiculously, I biss għamlu programm li etajiet dawk tliet persuni. Allura hemm b'mod ċar opportunità għal xi aritmetika gost hawn. Thankfully, l-matematika hija korretta. 18 marru sa 19, 19 marru sa 20 u ibqa 'sejjer hekk. Imma dak li verament maħsub li jkun illustrattiv hawnhekk hija kif aħna qed jaħżnu etajiet dawk it-tliet poplu. Let me zoom fuq x'hemm jiġri hawn fuq. Allura l-ewwel, dawn linji ewwel ftit għandhom tkun jkollna pretty familjari. Jien biss ġiegħlet lill-utent għall- numru ta 'nies fil-kamra. Imbagħad jien jużaw nikseb int u tagħmel waqt li tagħmel dan mill-ġdid u għal darb'oħra u għal darb'oħra. Rajna li mudell qabel, iżda linja 27 huwa ġdid u attwalment pjuttost utli, u se jsiru dejjem aktar utli. Avviż li x'hemm differenti fil-linja 27 hija li I jidhru li tiddikjara int imsejħa etajiet, iżda stenna. Huwa mhux biss etajiet int. Hemm dawn parentesi kwadri, ġewwa tagħhom hija n. Allura l-bracket n f'dan il-kuntest, ma ġewwa ta 'dikjarazzjoni printf hawn imma f'dan unika linja 27, din il-linja huwa qal, agħti lili n ints, li kull wieħed minnhom huwa ta 'tip int. Allura dan huwa barmil, biex ngħidu hekk, ta ', f'dan il-każ, tliet numri interi lura lura lura hekk li I effettivament jkollha tliet varjabbli. L-alternattiva, li tkun ċara, ikun dan. Jekk jien ridt l-ewwel istudent età, I tista 'tagħmel dan. Jekk jien ridt-tieni istudent età I tista 'tagħmel dan. Jekk jien ridt-tielet istudent età, I tista 'tagħmel dan. U Alla jipprojbixxu għandna bżonn kulħadd età f'din il-kamra - I mean, dan huwa Heck ta 'lott ta' kopja, paste ġdid u għal darb'oħra u għal darb'oħra. U plus ladarba I jiġbor dan il-programm, jekk student ieħor mixjiet fil matul out ta 'dak il-bieb, issa numru tiegħi ta 'varjabbli hija żbaljata. Allura x'hemm sbieħ dwar firxa huwa kif Hekk kif inti tibda tħossok lilek innifsek ikkupjar u pasta, odds huma li l- mhux l-aħjar metodu. Firxa huwa dinamiku potenzjalment. I do not know-quddiem kemm persuni ser ikunu fil-kamra, iżda I do know I bżonn n minnhom, u jien ser figura n meta jasal iż-żmien. Din il-linja tal-kodiċi issa jfisser, tagħti me a blokki ta 'memorja li tidher bħal dan fejn in-numru ta 'kaxxi fuq l-iskrin huwa kompletament dipendenti fuq n li l-utent ittajpjat pulzieri Allura issa l-bqija ta 'dan il-programm huwa attwalment pretty simili għal dak li aħna biss għamlet b'karattri. Avviż I jkollhom għall loop jibda fil-linja 30. So dritt wara I nikseb il-firxa, I jtenni mill y ugwali għal żero fuq sa n. I biss jkollhom din printf istruttivi messaġġ biss qal, agħti lili l-età ta 'persuna #% i, hekk numru wieħed, numru tnejn, numru tlieta. U għaliex ma nagħmel dan? Franchement, bnedmin jippreferu li jgħoddu minn wieħed fuq up billi xjenzati tal-kompjuter, żero fuq up. xjenzjati tal-kompjuter mhumiex ser jużaw dan it-tip ta 'programm, hekk aħna qed ser biss tibda tgħodd f'wieħed bħal nies normali. U issa fil-linja 33, avviż-ftit biċċa differenti ta 'sintassi. L-età i-th fil-varjant tat-tip array se tikseb int. U issa fl-aħħarnett, din hija biss aritmetika stabbiliti hawn. I iddeċieda fil loop separat jitolbu xi żmien jgħaddi, u issa f'dan loop separat, dawn il-linji tesegwixxi. Sena minn issa, persuna i se jkun i sena, iżda tinnota dan mhuwiex il- varjabbli i. Dan issa huwa% i għall int. U avviż kif l-ewwel placeholder, I plug in i plus 1, hekk aħna għadd bħal persuna normali. U mbagħad għall-valur tal-età tagħhom, għal i sena, nieħu etajiet bracket i - u għaliex am I tagħmel plus wieħed hawn? Huma biss età. Din l-għażla stupid tiegħi tal-programmi. Huma biss età ta 'sena. I tista tip fi kwalunkwe numru li I attwalment tixtieq hemmhekk. Allura x'hemm attwalment kollha ta ' ir-rilevanza hawn? Well, let me attwalment iscroll lura hawn fuq u żebgħa stampa ta 'dak li jinsab quddiem. Dak li aħna ser tkun qiegħda tagħmel ma 'li jmiss tagħna Problema Set Żewġ huwa dabbling fil- dinja tal-kriptografija. Allura dan huwa sekwenza ta 'karattri, hekk sekwenza ta 'Chars multipli, u liema ma dan jgħidu? Mhuwiex fil-verżjoni online tad-dijapożitivi. So I jsostnu li din hija ugwali għal dan, reklam stupid minn ħafna snin ilu li jista 'attwalment recall wieħed mill-oriġini tagħha. Allura dan huwa eżempju ta 'encryption jew kriptografija. Jirriżulta li jekk inti tixtieq li attwalment jibagħtu informazzjoni jew sehem informazzjoni ma 'xi ħadd fiż-żgur, bħal messaġġ bħal dan, inti tista ' ġirja-ittri. Imma tipikament, il-kliem huma ma scrambled saltwarjament. Huma qed ippermutat b'xi mod jew mibdula b'xi mod hekk li - oops. Li l-spoiler gost għall-ħin li jmiss. Allura inti tista 'pjan ta' liema hija apparentement O għal B. Avviż li l-linji up kapitalizzazzjoni-għaqli. Apparentement r isir e. Apparentement F-H-E-R isir S-U-R-E. Allura jirriżulta hemm immappjar, u F'dan il-każ hemm pretty stupid immappjar jekk xi ħadd ikun dehret out? Din hija xi ħaġa imsejħa Rot 13, Dawwar 13. Hija l-stupidest ta 'encryption mekkaniżmi minħabba li litteralment biss żżid 13 għal kull waħda mill-ittri, stupid fis-sens li jekk inti biss jkollhom daqsxejn ta 'ħin liberu fuq idejk u lapes, jew inti biss taħseb li permezz fir-ras tiegħek, inti tista 'tipprova żidiet kollha possibbli - wieħed, tnejn, tlieta, dot, dot, dot, 25 għal ftit dawwar l-alfabett kollu, u eventwalment, inti ser insemmu dak li dan il-messaġġ huwa. Mela jekk inti ma xi ħaġa bħal din fil- Iskola ta 'grad tgħaddi messaġġi tiegħek aqwa ħabib, jekk l-iskola grad tiegħek għalliem sempliċiment jaqra permezz tal- messaġġ u brute sfurzat-soluzzjoni, inti jista 'jkollok gotten risposta minn dak. Issa naturalment, fid-dinja reali, kriptografija hija aktar sofistikata. Dan huwa snippet ta test minn sistema tal-kompjuter li għandu usernames u passwords, kif kważi kollha ta 'tagħna tagħmel, u dan huwa dak password tiegħek jista tfittex bħal jekk maħżuna fuq hard tiegħek issuq iżda f'forma kriptata. Din mhix biss rotazzjoni ta 'ittri, A hija B u B huwa C. Dan huwa ħafna aktar sofistikati, imma hija tuża x'hemm ġeneralment magħrufa bħala sigrieti ewlenin kriptografija. Din l-istampa jgħidlekx li ġej istorja ma 'ikoni ftit. Fuq ix-xellug, għandna dak aħna ser sejħa test sempliċi. Fid-dinja tal-kriptografija, sempliċi test huwa biss il-messaġġ oriġinali miktuba bl-Ingliż jew bil-Franċiż jew kwalunkwe lingwa tkun xi tkun. Jekk inti tixtieq li kriptaġġ, aħna ser jgħaddu dan pictorially permezz ta 'katnazz, hekk xi tip ta 'ta' l-algoritmu, xi funzjoni jew programm li xi ħadd kiteb li scrambles-ittri nisperaw aktar complicatedly milli kieku sempliċement tiżdied 13 għal kull wieħed minnhom. Dak li inti tikseb minn dak il-proċess fil- nofs hemm tissejjaħ cyphertext. Allura tip ta 'kelma sexy. Dan ifisser biss huwa l-encrypted verżjoni tat-test sempliċi. U biss jekk ikollok l-istess sigriet, 13 jew minus 13, inti tista ' decrypt messaġġ bħal dik. Għalhekk fl Problema Set Tnejn, fost l-affarijiet inti ser tagħmel jekk fil-Hacker Edition, inti se jkollhom jiktbu kodiċi li xquq dawn passwords, jidhru dak li kienu u kif dawn kienu encrypted, għalkemm nagħmlu jagħtuk daqsxejn ta 'gwida tul it-triq. Fil-Standard Edition, nintroduċu koppja ta 'ciphers, encryption mekkaniżmi, wieħed imsejjaħ Caesar, wieħed imsejħa Vigenere, li għadhom ciphers rotazzjonali meta A issir xi ħaġa, B isir xi ħaġa, iżda għandek tagħmel dan programmatically għaliex tabilħaqq se jkun hemm sigriet ewlieni involut li huwa tipikament numru jew keyword li biss l- mittent u r-riċevitur ta 'dawn messaġġi għandhom jifhmu. Issa, dan fil-fatt għandu incarnations fid-dinja reali. Dan, per eżempju, huwa ftit orfni Ring decoder sigriet Annie, u inti jistgħu fil-fatt jimplimentaw dawn ciphers rotazzjonali - A isir xi ħaġa, B isir xi ħaġa - ma 'koppja ta' roti, waħda fuq barra, waħda fuq ġewwa tali li jekk inti dawwar il-rota jew -ċirku, inti tista 'attwalment line up il- ittri ma 'ittri differenti, jkollna kodiċi sigriet. U hekk kif il-cliffhanger għal-lum, dak li ħsibt I d tagħmel huwa daqsxejn ta ' throwback li jekk inti mbagħad fuq il-TV fuq Diċembru 24, inti tista 'tara l- movie ad nauseum għal 24 siegħa fil-filliera. Iżda għal-lum, jien ser tiftaħ it up here u tagħtina biss żewġ minuti ta ' Story Milied pedagoġikament relevanti bi sħabi ftit jismu Ralphie. [Daqq video] -Be hija magħrufa li kulħadd u varji li Ralph Parker huwa b'dan maħtur membru tal-Orfni Little Annie sigriet ċirku u huwa intitolat għal kulħadd l-unuri u l-benefiċċji jseħħu miegħu. Iffirmat-, Little Orfni Annie. Kontrofirmata, Pierre Andre bil-linka. Honors u l-benefiċċji diġà fl-età ta 'disa'. [Shouting FUQ RADJU] Come on, ejja nikseb fuq magħha. I m'għandhomx bżonn dak kollu li jazz dwar kuntrabandisti u l-pirati. Isma 'għada bil-lejl għall- konklużjoni avventura ta l-iswed vapur pirata. Issa, wasal iż-żmien għall Secret Annie tal Messaġġ għalik membri taċ-ċirku sigriet. Ftakar, gidjien. Il-membri tal Circle Secret Annie tal jistgħu jiddekowdja messaġġ sigriet Annie tal. Ftakar, Annie jiddependi fuq int. Set labar tiegħek biex B2. Hawn hu l-messaġġ. 12, 11, 2 - -I am fl-ewwel laqgħa sigrieta tiegħi. -25, 14, 11, 18, 16 - -Pierre kien tonight vuċi kbira. I tista 'tgħid messaġġ li tonights kien verament importanti. -3, 25. Li messaġġ mill Annie ruħha. Ftakar, ma tgħid xi ħadd. -90 Sekondi wara, jien fil-kamra biss fid-dar fejn tifel ta 'disa' jistgħu ipoġġu fil-privatezza u jiddekowdja. Aha, B. I marru għall-ieħor. E. L-ewwel kelma hija "jkun." S. Huwa kien ġejjin faċli issa. U. 25. Li R. -Come on, Ralphie. I gotta go. I'll jkun-dritt isfel, Ma. Whiz gee. -T. O. Kun żgur li. Kun żgur li dak li? Liema kienet Little Orfni Annie nipprova ngħid? Kun żgur li dak li? -Ralphie, Randy s'est li jmorru. Gaat jekk jogħġbok toħroġ? -Kull dritt, Ma. I ser tkun dritt out. -I kien jkollna eqreb lejn issa. It-tensjoni kien terribbli. Liema kienet? Il-destin tal-pjaneta jista ' hang fil-bilanċ. -Ralphie, go gotta Randy tal. I'll jkun tajjeb-out għal biki out loud. Kważi-hemm. Swaba tiegħi taru. Mind tiegħi kienet nassa azzar. Kull pori ivvibrat. Kien kważi ċara. Iva, iva, iva, iva, iva. -Kun żgur li tixrob Ovaltine tiegħek. Ovaltine? A kummerċjali crummy? Iben ta 'kelba. [Daqq video END] SPEAKER 1: Dan huwa CS50, u li se jkun Problema Set Żewġ. Ara inti ġimgħa d-dieħla. SPEAKER 2: Fil-li jmiss CS50, dan jiġri. SPEAKER 1: Allura wieħed suġġett aħna ma ħares lejn s'issa huwa dak ta 'pointers funzjoni. Issa, funzjoni pointer huwa biss l-indirizz ta 'pubbliku funzjoni, iżda ferm simili - iben ta '-