LUCAS Freitas: Bone, mi supozas Nun ni vivas. Bonvenon al CS50 Supersection. Ni estas malpli komfortaj. Mia nomo estas Lucas Freitas. Mi estas unu CS50 Kapo TFS. Ĉi tio estas Lauren. Lauren Carvalho: Saluton, mi estas Lauren. Mi ankaŭ Kapo TF por CS50. LUCAS Freitas: Hodiaŭ ni ĝuste iri doni superrigardon pri kio vi cxiuj infanoj lernis en semajno unu, mi esperas doni al vi knaboj bonan senso de kio vi devus scii pro problemo starigis unu. Nur kelkaj anoncoj. Unue, oficejo horoj. Oficejo horoj okazas de lundo al ĵaŭdo en diversaj domoj en Annenberg ĉiu tago. Ili estas tre bona rimedo por vi knaboj venu kaj demandojn, kaj paroli TFS, kaj eĉ interŝanĝo ideojn kun aliaj lernantoj. Do estu certa ke por uzi tiun rimedon en via favoro. La dua afero estas la CS50 aparaton. Por la lasta [inaudibles] vi uloj ne devu reale havas aparaton. Vi ĵus faris ĉion via persona komputilo. Sed por tiu ĉi problemo, vi efektive havas havi virtualan maŝinon, do estu Nepre elŝuti la CS50 Aparato kaj starigis gxin. Kaj la tria afero estas certi al komenci la problemo metita ASAP nur ĉar ĝi estas multe pli facile trovi helpi kiam vi estas en la komencante de la semajno. Ĉar homoj emas atendi ĝis la lasta dua por komenci la problemo aro, kaj poste vi iros al la oficejo horoj, kaj tie estas multaj homoj. Kie, se vi iros lundon, vi tuj por vidi, ke vi povas paroli al TFS bela multe por la tuta nokto, kaj oni tuj estos pli ol felicxa helpi vin. Lauren Carvalho: Ĉu mi povas simple ĉesi vi por nur unu dua? Ĉu ĉiuj povis elŝuti la CS50 Aparato? Ĉu homoj provis? LUCAS Freitas: Por elŝuti, por la vojo, vi povas ricevi instrukciojn ĉe cs50.net/appliance. Lauren Carvalho: Ĝuste. Kaj gxi faras prenu iom da tempo por nia sys administrantoj akiri vin permesilon ŝlosilo, do subskriboj por la senpaga provo unue. Tiel vi devos gxin dum 30 tagoj, kaj poste atendu vian permesilo ŝlosilon kiun devus doni ĝin al vi kiel jaron. LUCAS Freitas: Antaŭ ĉio, ni parolu iomete pri la CS50 aparaton. La CS50 Aparato estas fakte virtuala maŝino kiu vi iras al kuri en via propra komputilo, kiu estas esence kurante alia komputilo en via propra komputilo. Kiu estas bela malvarmeta. Kaj fakte ĝi estas uzata ĉie. Homoj kiuj al tech scius ke tio estas uzataj la tutan tempon. vi? Povas havi plurajn komputilojn en unu aparato. Ni fakte tuj iri ĉe la aparaton. Kiam vi iras al la Aparato post enskribi, vi tuj devas metu vian nomon kaj ensaluti al Harvard tiel ni povos atingi vin ĉiujn registrita. Vi tuj vidos esence nur fonbildo, kaj tiam Hejmo kaj Trash, kaj tiam tiuj malgranduloj ikonoj. Tiu tri piktogramoj estas efektive la plej gravaj aferoj kiujn vi povas havi en vian aparaton. La unua estas gedit, kio estas teksto redaktoro, ĝuste kiel Notepad aŭ kiel iu speco de teksto-redaktilo. Estas nur ion ke ni uzos por skribi kodo kaj tiam fari aferojn kun ĝi. La dua afero, kiun ni havas tie estas Chrome. Do, se vi devas uzi la interreton en la Aparato, jen kion vi povas uzi. Kaj la tria afero estas la fina stacio, kio estas fakte tre dolĉa. Homoj kutime estas speco de timigitaj de la fina ĉar temas pri tiu ĉi tre antikvaj apliko en kiu vi nur esence tajpi ĉiun kun via klavaro. Ne estas plu multa interagado kun via muso. Sed fakte la fina faras tre bonajn aĵojn. Unue, ni nur iri tra iujn komandojn kiujn vi povas uzi en la terminalo. Lauren Carvalho: Kaj bonvolu haltigi ni se vi havas iujn demandojn. LUCAS Freitas: Jes. Do la unua ordono, ke ni havas por la fina stacio estas LS. ls esence signifas listo ĉio, ĉiuj la dosieroj kaj cxiuj direktoroj, ke mi havas en la loko, kiun Mi estas ĉe. Do, se mi faras ls tie, mi tuj vidos ke mi havas iom da dosierujoj. Mi havas la labortablo, la malŝarĝo, la protokolojn, kaj la VHOSTs. Tiuj estas en blua ĉar ili estas ĉiuj dosierujoj. Tiam vi havas iujn aliajn dosierojn. Vi havas kiel saluton kaj hello.c, kiuj estas nur dosierojn, kaj ili estas en malsamaj koloroj. Do tio estas tre grava komandon ĝuste vi povas vidi, kio estas la dosierojn kaj dosierujojn kiujn vi havos en la katalogo, ke vi estas je la fina. Kiam vi vidos jharvard @ aparato kaj tiam la eta simbolo tie, la supersigno, tio nur signifas ke tio estas la dosierujo, ke vi estas nuntempe. Lauren Carvalho: Do ​​tajpo ls estas preskaŭ kiel alklakante la dosierujo ke estas listigita Dekstre, en gxi spektaklojn vin ĉiujn el la enhavo, kiu estas ene de tiu dosierujo. Spektantaro: Ĉu ekzistas teksto post la hello.c? Lauren Carvalho: Ho, vi ne povas vidi tion, ĉar ĝi estas blua. LUCAS Freitas: ĝi diras loglibrojn kaj VHOSTs. Lauren Carvalho: Tiuj estas nur aliajn dosierujojn. Mi bedaŭras, ĝi estas vere malfacila vidi. Eble se ni elŝaltis la lumoj? Colton, ĉu vi volas provi trovi la lumon ŝaltilo? Pardonu pri tio. Mi ne pensis pri ĝi. LUCAS Freitas: Sed ĝi estas esence - yeah, se vi povus - Lauren Carvalho: Zoom en via ekrano. LUCAS Freitas: mi ne havas tiun trajton. Lauren Carvalho: [inaudibles]. OK. Nu, tie estas nur amaso de naturaj lumo en tiun ĉambron tiel. LUCAS Freitas: Ni simple supozi ke ekzistas du aliaj dosierujoj tie. Lauren Carvalho: Just toleru nin. Tiu estas la nura parto kiu vi devos oni rigardas la terminalo. LUCAS Freitas: La venonta ordono estas esence eble vi volas organizi viaj dosieroj - ekzemple, ĉiujn viajn C dosierojn en unu dosierujo-sed vi ne havas katalogo nur por C dosieroj ankoraŭ. Vi povas esence krei dosierujon uzante la fina tiel, kio estas la samo kiel dekstra musklako kaj dirante: Nova dosierujo. La komando estas fari dosierujo, kiun Estas mkdir, do esence "fari" kaj "Dosierujo." Kaj tiam vi povas meti la nomo de la katalogo. Ni diru ke mi volis nomi, Mi ne scias, ni diru pset1 Doing tio, mi ĵus kreis dosierujon. Ni nur kontroli, ke estas tie. Do, se mi faras ls, nun mi vidas la protokolojn, kaj tiam pset1, kaj tiam VHOSTs. Do mi havas la novan dosierujon tie. Kaj tiam post vi havas novan dosierujon, eble vi volas navigi en ĝin, do la venonta ordono ĉi kd, kio ĝuste esence signifas iri al specifa dosierujo. Do se mi volas iri al pset1, Mi povas nur fari kd pset1. Lauren Carvalho: cd staras por ŝanĝo dosierujo, [inaudibles] povis memori tion. LUCAS Freitas: Nun vi vidos, ke anstataŭ ĝuste havi jharvard aparato, mi jharvard aparaton, kaj tiam pset1, ĉar ĝi estas montrante al mi, kie mi estas en ĉi tiu komputilo. Nun, se mi volas reiri al la dosierujo, kiu estis antaŭ ĉi tiu, mi povas fari kd dot dot, kiu signifas nur iri al la dosierujo kiujn mi trovis antaŭ, kiel la patro de tiu dosierujo, esence. Kaj nun mi vidas ke mi estas reen al jharvard. La sekva afero, kiun mi povas fari ĝin Estas RM, kiu estas forigi dosieron. Ekzemple, ni unue faru ls por vidi, kion mi havas cxi tie. Mi havas saluton kaj hello.c. Ni diru ke mi volas forigi ilin. Mi povas do rm saluton. Ĝi estas dironta "remove regula dosiero saluton? "Kaj mi diras" jes. "Kaj nun, se mi fari ls, mi vidas ke ĝi estas Ne ekzistas plu. Se mi provas uzi rm por dosierujo, tamen, ĝi ne tuj lasi vin fari ion ajn. Ĝi estas dironta, hey, vi ne povas forigi dosierujon. Do ni havas ĉi aliajn veni nomata RMDIR, kio ĝuste esence signifas forigi dosierujon. Mi povas, ekzemple, forpreni pset1. Kaj se mi faras ls, mi ne faras havi ĝin plu. Demandojn pri tio? Neniu? Jes? Spektantaro: Ĉu gravas, ke vi lasos interspaco post - kiam ajn vi ektajpu ion? LUCAS Freitas: Jes. Se mi faras kiel KD kaj la dosierujo, Mi devas meti spacon. Kio spaco vi parolas? Lauren Carvalho: La spaco inter cd kaj [inaudibles]. LUCAS Freitas: Jes, vi devos metis la spacojn ĉar cd estas la komando, kaj tiam la sekva kordo ke vi tipo estas esence la katalogo. Do gxi estas kiel argumenton. Jes? Spektantaro: Kiam vi listo, ĉiuj tiuj estas diversaj dosierujoj, ĉu ne? LUCAS Freitas: Jes, ili estas en la dosierujo. Spektantaro: Kio estas la diferencoj inter la subdosierujoj? LUCAS Freitas: Ili estas nur malsamaj dosierujoj. Dosierujo estas dosierujon en via komputilo. Spektantaro: Malfermu dosierujon. LUCAS Freitas: Jes, estas ĝuste malfermitan dosierujon. Lauren Carvalho: Pli ol cxi tie, tiuj kiuj estas en blua estas reala subdosierujoj, kiuj vi povas eniri kaj tiam vidi amaseton de aferoj, kiuj estas ene de tiu, kiu estas malfeliĉa ĉar vi ne povas vere legi la en blua. Kaj tiuj blankaj estas nur dosierojn kiuj estas ene de la aktuala dosierujo. LUCAS Freitas: Do dosierujojn estas dosierujoj. La aliaj aĵoj estas dosierojn. Spektantaro: Kio estas la komando restartigi ĝin aŭ purigi ĝin? LUCAS Freitas: Demeti? Lauren Carvalho: Demeti? LUCAS Freitas: Mi opinias ĝi estas "klara". Jes. Do vi simple tajpu klara se via ekrano estas tro senorda. Ajna alia demandojn? Kaj vi lernos faskon da aliaj komandas nur nature dum la semestro ĉar ili estas tre utilaj. Do nun ni parolu pri la kompili. Ni parolis pri _pseudocode_ kaj fontkodon kaj celkodo. Kaj estas multaj kodoj, kaj eble vi uloj estas konfuzita pri tio. Ni parolu iomete pri kio okazas kiam vi skribas programon, kaj vi kompili ĝin, kaj ĝi iĝas plenumebla dosiero. Tiuj estas ĉiuj vortoj, kiujn vi infanoj probable aŭdis, kaj eble vi ne estas vere certas, kio okazas. Ni diru, ekzemple, ke mi volas skribi programon kiu diras "saluton". La unua kiu venas en vian menson estas vi specon de provu pensi pri kiel vi estas faros tion en via menso, kaj vi probable pensante en la angla aŭ kelkaj aliaj lingvo, kiel natura lingvo, probable. Kaj tiam vi pensas, bone, se mi volas, ekzemple, skribi programon kiu diras "saluton", mi estus komenci programon, Mi printi saluton, kaj tiam mi volas lasi la programon. Ĉi tio estas _pseudocode_. Tiu estas ĝuste esence vi provas supreniru per sekvenco de okazaĵoj ke vi tuj fari por esti povi skribi programon. Tiam vi havos la fontkodon, kaj la fontokodo ne devas specife estos en C. Ni parolas pri fontkodo en C, ĉar tio la lingvon ni lernas, sed kompreneble kodo povas esti preskaux neniu programlingvo, kiun vi havos. Poste en la semestro, vi tuj por lerni aliajn lingvojn. Tio estas ankaŭ fonto-kodo. Ekzemple, ĉi tie, ĉi tiu estas mia fonto kodo, kaj tiam mi inkludita biblioteko, kaj tiam mi komencos ĉefa, kaj tiam mi presi. Kaj Laura tuj paroli iom iom pri ĉio ĉi. Do tiu estas la fontkodo. Kaj kio estas la objekto kodo? La objekto estas aro da nuloj kaj ones, esence. Kio okazas estas vi komence havis _pseudocode_, kiuj estas ĉiuj en la angla. Kaj mi volas diri, vi komprenas. Probable viaj amikoj komprenu ĝin, kaj la plej multaj homoj farus komprenas la ideon. Sed komputiloj estas vere stultaj, kaj ili ne komprenas la anglan, do vi esti traduki tiun en ion, kutime tradukita en iuj programlingvo. Kaj vi povas pensi pri programado lingvon kiel ia kiel lingvo ke vi diru al via komputilo kiel paroli kaj kompreni. Vi estas esence skribas ion en lingvon, kiu ambaŭ de vi kaj via komputilo komprenas. Tio estas la fontkodo. Do irante formo _pseudocode_ al vikitekston kodo, ĝi estas via. Ĝi estas esence vi faras via programo. Sed la problemo estas ke la komputilo faras eĉ ne kompreni programlingvo. Ĝi ne komprenas fontkodon ajn. Ĝi fakte ĝuste komprenas nuloj kaj. Do ni havas ĉi tre magio afero nomata tradukilo, kiu esence estas tuj akiri la fonto nomata ke vi skribis en lingvo la ambaŭ vin kaj via komputilo parolos, kaj nun vi estas tuj transformos ke en nuloj kaj. Do esence kion la tradukilo faras estas metas fontkodo, en tiu kazo C, tuj transformi ĝin en nuloj kaj tiuj, kiujn la komputilo komprenas kaj povas fari plenumebla dosiero el ĝi. Ĉu tio havas sencon? Vi povas nur pensi pri la tradukilo kiel ia tradukisto, kiu estas helpas vin klarigi al la komputilo ĝuste kio ĝi estas supozis fari. Sed kiel mi kompili. Ni reiru al la aparaton, kaj diru, ke mi faras tiun programon. Unue mi iros por krei dosierujon ĉi tie, kaj mi iros kaj nomas ĝin "Praktiko". Nun mi iros por navigi al la dosierujo, do cd praktiko. Nun mi estas interne la praktiko. Nun mi volas komenci gedit, do kiel mi faru tion? Mi povas ĉu klaku tie ĉi, alie mi povas nur laŭvorte tajpi "gedit", kaj tio okazas malfermi por mi. Nun mi iros por tajpi mian programon, do ekzakte kion mi skribis en la tobogano. Mi deklarante biblioteko. Mi fartas int main, malplenon. Kaj nun mi faras printf, saluton. Nun mi iros por savi ĉi. Permesu al mi metis ĝin en la praktiko, kaj Mi iras por voki ĉi hello.c. Do nun estas savitaj. Se mi volas traduki ĝin, mi reale povas fari tion en du malsamaj lokoj. Mi povas ĉu faru ĝin en terminalo fenestro, tia ĉi granda, aŭ vi povas uzi gedit kiu reale havas terminalfenestro ĝuste ĉi tie. Do vi povas tre oportune nur faru via kodo, kaj tiam vi povas simple tajpi kion ajn ĉi tie, kaj provi kompili ĝin. Do kiel mi kompilos kodo? La plej facila maniero kiun ni havas estas per uzo fari, kio estas funkcio kiu Estas esence tuj kompili vian kodon. Vi nur devas diri fari saluton, do "Fari" kaj la nomo de la programo. Oops. Ĉi tio estas mallerta. Lauren Carvalho: Can you [inaudibles]? LUCAS Freitas: Pardonu. Mi ne savos lin en la dekstra dosierujo. Venu por praktiki, kaj nun konservi ĝin kiel hello.c. Mi bedaŭras. Nun ĝi estas savitaj. Lasu min nur faru LS kaj estu certas, ke ĝi estas ĉi tie. OK, nun estas ĉi tie. Do nun, se mi faras fari saluton, ĝi sputas multajn aĵojn, sed tiam ĝi nur donas mi alian linion por la fina, kiu signifas ke ĝi estis sukcesa. Do nun, se mi faros ls denove, mi vere vidas tiun dosieron en verdo, kiu estas la plenumebla dosiero. Kaj tiam se mi volas kuri, cxiuj Mi devas fari estas skalara oblikvo saluton. Ĝi estas dironta saluton ĝuste ĉi tie, do ĝi estas precize kion mi demandante al. Estas unu plia maniero kompili, kiu uzas tin. Tin estas nur tradukilon, ke ni havas, kaj estas iom pli verbose al kompili ĝin. Sed ĝi funkcias same bone. Do, se mi faras tin kaj tiam-o, kaj tiam la nomo, kiun mi volas doni al la plenumeblan dosieron, do ni diru "Saluton." Kaj tiam la dosiero, kiun mi volas kompili, hello.c. Ĝi estas ankaŭ tuj kompili. Kaj vi havas la dosieron ĉi tie, kaj Mi povas nur plenumi gxin tiel. Do ambaux funkcias. Ĉu tio havas sencon? Demandojn? Spektantaro: Cxu vi povas zomi en iomete? LUCAS Freitas: Pardonu? Spektantaro: Zoom in? Lauren Carvalho: Mi opinias, ke vi povas simple ordonas plus. LUCAS Freitas: Ordonu al kio? Lauren Carvalho Command plus. LUCAS Freitas: N-ro Lauren Carvalho: Ho, tio ne iri por labori ĉar - estas ĉar ni starigis la rezolucio pro cxi tiu afero. LUCAS Freitas: mi ne kredas ke ni povas zomi in Jes, ni ne povas zomi. Ĉu vi havas alian demandon? Pardonon. Spektantaro: Ĉu vi povas ripeti tin? LUCAS Freitas: La tin? Tin estas la sama afero kiel ŝminko, sed la diferenco estas ke unue mi tuj skribi tin, kiu estas la komando: tiam Mi faros -0, ĉio, kio estas nur tio, kion ni tuj lernu poste kiel flago. Do simple pensas, ke vi ĉiam devas meti la-o. Kaj tiam la unua, vi tuj metis la nomo de la plenumebla dosiero, esence la dosiero, kiun vi estas tuj kreos. Do mi povas diri, ekzemple, hello2 kaj tiam la dosiero, kiun mi volas kompili, kiu estas la. c dosiero. Do jen hello.c. Ĉu tio havas sencon? Spektantaro: Saluton kion? Kio estas tio? LUCAS Freitas: Hello.c. Kaj se mi kompili ĝin, kaj se Mi ls, mi ankaŭ havas hello2 ke mi ĵus kompilis. Kaj se mi provas kuri ĝin, tuj fari ekzakte la samon kiel saluton, nur printi saluton. Spektantaro: Kiamaniere venos al la fakto vi povas meti hello.c post? LUCAS Freitas: En make, vi ne devas meti la. c. En make, vi nur diru la nomo de la programo. Vi ne bezonas diri. C. Sed por tin you should. Spektantaro: Kun tin faros vin ankaŭ devas adicii la [inaudibles] Lauren Carvalho: Jes. Do vi havas ankaŭ al biblioteko. LUCAS Freitas: Jes, tio estas io Ni tuj uzi poste. Tio nomiĝas sinsekvon, kaj mi pensas ke ni estas tuj paroli pri tio poste. Alia demando? Spektantaro: Ĉu vi metis skalara oblikvo tin? LUCAS Freitas: N-ro La skalara oblikvo estas nur por malfermi la plenumebla dosiero. Do tin vi simple skribos "tin" kaj tiam la, se vi volas malfermi la plenumebla dosiero kiu vi ĵus kompilita, tiam vi ja dot oblikvo kaj la nomo. Ĉu tio havas sencon? Spektantaro: Se vi estus justaj ŝanĝo [Inaudibles] al saluton mondo, ĉu vi devos rekompili ĝin? LUCAS Freitas: Jes. se mi volas diri, ekzemple, "saluton tie, "mi povas nur savos ĝin nun, kaj mi nur kompili ĝin denove. Do lasu min fari make saluton. Kaj se mi faras saluton, ĝi tuj diri "saluton tie." Havas sencon? Ajna alia demandojn? Spektantaro: Ĉu vi devas inkluzivi la norma I / O kunordigi la laboron? LUCAS Freitas: Jes. La norma I / O estas esence la biblioteko kiu havas efektivigo por printf. Por ke afero ĝuste sur la supro inkluzivas stdio. Tio estas inkludita bibliotekon kiu esence havas multajn malsamajn iloj, kiujn vi povas uzi. unu? De ili estas printf ke estas funkcio kiu esence printaĵoj mesaĝojn al la ekrano. Ajna alia demandojn? Neniu? OK. Do nun ni parolu pri - Lauren Carvalho: Ni simple iru al la stilo gvidas. Ĉu vi volas ĝuste trovi ĝin en ĉi tie? LUCAS Freitas: Do ni iras paroli pri stilo. Lauren Carvalho: Ho, Davido ne finis. OK. Kial ni ne revenos al stilo, je la fino? Ĝi estas fakte estis ĝisdatigita kiel ni parolas. LUCAS Freitas: Jes. Ni vojon por David, por fini tio. Lauren Carvalho: Hundo ni ŝanĝi vere? Do mi esperas ke ĉies estis ĝui Scratch. Bedaŭrinde, estas tempo por movi sin de tio - bedaŭrinde estas tempo por malproksimigi el tiuj belaj programado blokoj sur C. Sed bonŝance, ĉiuj la programado konstruas ke vi havas laboras kun en Scratch estas rekte tradukebla al C, kaj ni estas tuj komencas lerni pri iuj el ili ĝuste nun. Ni unue diskuto pri kondiĉoj en Buleaj esprimoj. Ĉi tiu rulas ĉe rezervo baterio potenco. LUCAS Freitas: Kiom estas kiuj ne laboras? OK. Vi iros tien, mi iros akiri la - Lauren Carvalho: Do ​​kondiĉoj estas gravaj ĉar ili permesas al ni enkonduki logiko en niajn programojn. Jen ekzemplo de kondiĉo ene de C-programo. Ni notu, ke tiu - Do tiu kondiĉo bloko ĝuste ĉi tie, ĉi printf komunikaĵo ne agos krom se la kondiĉo ene de la krampoj, n pli granda ol 0, taksas vera. Nun, ĉiuj la kondiĉoj ene f asertoj estas Buleaj esprimoj, kio signifas, ke ekzistas Estas nur du ebloj. Ili povis ĉu taksi kiel vera, aŭ oni povas taksi al falsaj. Do ĉi tie, do tio havas sencon, ĉu ne? n pli granda ol 0, tio signifas ke estas pozitiva nombro, kio signifas ke ĝi estos presi el "vi plukis pozitiva numero." Ekzistas multaj Buleaj esprimoj kiu povas formi la kondiĉo kun init komunikaĵo. Ni havas la malpli ol. Tio estas malpli ol aŭ egala al. Tiu estas nur amuza [inaudibles]. Se vi deziras la printf al okazi se ĝi estas pli granda ol aŭ egala al 0, tiam vi elektus ĉi. Do la egalaj simple appends dekstra post la granda ol signo. Egalaj egala, kio estas malsama de nur unu egalsigno, egala egala fakte signifas, ke kio estas sur la maldekstra flanko de tio estas la sama kiel kio estas sur la dekstra flanko de ĉi tiu kie oni egala signo estas kio? Kio estas ĝuste unu egalsigno? Farita. LUCAS Freitas: Kiu diris tion? Estas ke dolĉaĵoj? Ho, ne. Pardonon. Pardonon. Vi ambaŭ akiri frandaĵon. Ho, OK! Tri homoj akiri frandaĵon! Lauren Carvalho: Do ​​ĉi tiu ĝuste ĉi tie Estas la bang operatoro antaŭvenanta la egala signo, tia, ke estas Ne egala al. Do, se tiu estis ene de mia kondiĉo, La korpo de la kondicxo ekzekuti nur se ajn estas en la maldekstra ne estas la sama kiel kio estas sur la dekstra. Mi povas ankaŭ havi nur la exclamation point. Efektive ni vidos en esprimilo gliti kiel ĉi estus uzata. LUCAS Freitas: Any questions? Neniu? Lauren Carvalho: ni povas kombini tiujn Bulea esprimojn por konstrui pli komplika kondiĉa deklaroj. Do ĉi tie, se kion ajn la maldekstre mana flanko de la duoblaj stangoj aŭ kio estas sur la dekstra flanko de la duoblaj stangoj taksas vera, tiam ni devos presi nevalidaj. Kaj poste malsupren tie, se kion ajn la sur la maldekstra flanko de la du ampersands kaj kio ajn estas sur la dekstra mana flanko de la du ampersands taksas vera, tiam ni devos presi validas. La duoblaj stangoj estas nomata la logika AŬ operatoro la duobla ampersands estas vokis la logika KAJ operatoro. Jes? Spektantaro: Ĉu tiuj ĵus minuskla l's? Lauren Carvalho: N-ro Ili estas fakte - vi konas la reagon, kiel super via Reiri klavo? Ĉu vi vidas? LUCAS Freitas: Estas vere trinkejo. Lauren Carvalho: Estas vere nur du stangoj. Spektantaro: Cxu vi povas uzi la egala egala por kordoj? LUCAS Freitas: N-ro Ni tuj lernos poste ion pri tio. Lauren Carvalho: Ekzistas funkcio ke vi povas uzi. Sed vi ne devas zorgu ke ĝuste ankoraŭ. Kio se mi donos al tiu programo la numeron 5? Kio estos presi? Spektantaro: [inaudibles] valida. Lauren Carvalho: Valida? Jes. Mi ne scias, kiu sidis kaj petis tion. [Ridado] Lauren Carvalho: Tio estas afabla de timigaj [inaudibles]. Spektantaro: Do ​​la duobla kaj, ke ĝuste signifas kaj? Lauren Carvalho: Jes. Do nombro 5 estas la du pli grandaj ol 0 kaj malpli ol 100. Spektantaro: Kial gxi estu unu? Lauren Carvalho: Unu ampersand estas efektive io malsama, kaj ĝi estas a laŭbita operatoro, kiun vi devos lerni pri poste. Sed estas iu kiu efektive laboras kun la bridoj de donita nombro. LUCAS Freitas: Nur pensu ili ne devas zorgi pri ĝi ĝis nun. Lauren Carvalho: Mi kredas ke estas probable venanta supren proksima semajno. LUCAS Freitas: Ajna aliajn demandojn? Neniu? Lauren Carvalho: Do ​​ni jam vidis, ke ĝi blokas povas stari sole, sed ne povas ankaŭ esti parigita kun kaj alia bloko. Do, en tiu kazo, se n estas pli granda ol 0, ni tuj presi "Vi plukis pozitiva numero. "alie, signifo se ĝi estas 0 aŭ se ĝi estas malpli ol 0, ni tuj presi, "Vi plukis negativa nombro." La interesa afero estas, ke tiuj estas ekskluzivaj unu de la alia. Tie neniam tuj esti kazo en kiuj ĉi tiu kaj ĉi povas ambaŭ presi. Mi certas ke vi laboris kun la se / alie boksi en Scratch, do tio devus esti bela familiara. Jes? Spektantaro: Cxu ni bezonas la spacon inter int n egalas GetInt tiam spacon en la se aserto? Kiel ni uzu linion [inaudibles] Lauren Carvalho: Ho, la spaco ĉi tie? Spektantaro: Kiel tio, sed vi duobligos spaco. Ne, tien iru. Eniru. LUCAS Freitas: Nur la linio? Spektantaro: Jes. LUCAS Freitas: Nur la malplenan linion? Spektantaro: Jes. Lauren Carvalho: Blank linio? N-ro Tio estas nur stila afero. LUCAS Freitas: Estas nur kiel foje vi simple transsaltu kelkajn liniojn tiel ke la kodo ne aspektas kiel grandega bloko de teksto. Lauren Carvalho: Mi pensas kio okazis estis ke ni devis komenton ĉi tie, sed mi prenis ĝin el tiel ke vi uloj havus pensi pri la kodo prefere ol nur legi mian komenton. En ĝenerala, Interspacigo ne volas vere tuŝas la manieron de via programo kuras. Ĝi estas pli stila afero. Kaj kiam ni havas la stilo gvidas ĝisdatigita kaj preta por iri al la fino de supersection, ni reparolos pri kiuj pli. Estas io misas pri tiun programon, ĉu ne? Ĉar 0 estas ne vere negativa nombro. Do ni vidu, se ni povas ripari tion. Vi versxajne povas imagi kun tiu diras, right? Se n estas pli granda ol 0, ni presi, "Vi plukis pozitiva numero. "Tiam alia se n estas malpli ol 0, "Vi plukis negativa nombro. "alian," Vi elektis 0. " Nun la interesa afero estas ke tio povus daŭrigi eterne. Vi povas havi, se la bloko, unu alian se bloko, alia alie se bloko, alie se, else if, else if, else, esence tiel longe kiel vi deziras. Kiam konstruita kiel tiu, tiuj estas ĉiuj tuj estos ekskluziveco de ĉiu alia. Jes? Spektantaro: Do ​​kial vi ne povas simple uzi alian, se anstataŭ [inaudibles]? Lauren Carvalho: En ĉi tiu kazo, mi jes povus uzi alian se, kaj estus absolute delikata ĉar la kondiĉoj sin trovas ekskluziveco de ĉiu alia. Sed se la kondiĉoj ne estis ekskluziva de ĉiu alia, tiu farus devigi ilin neniam ambaŭ taksi, se tio havas sencon. Spektantaro: En tiu kazo, ni povus nesto la dua, se en la unua se? Lauren Carvalho: Se - Kion vi signifas? Spektantaro: Se la du kondiĉojn ne estas reciproke ekskluzivaj? Lauren Carvalho: Se la kondiĉoj ne estas reciproke ekskluzivaj? Sed vi volis nur unu el ili kuri? Spektantaro: Vi volas nur se anstataŭ alia. Lauren Carvalho: Jes. Tie estas ĉiam tuj estos multe manieroj, kiujn vi povas fari ĉi tion. Vi povas definitive nesto ili. Kaj vi vidos en futura slide ke vi povas havi multoblajn oj, nur unu post alia. Sed tio estas vojo de logike organizi la fluon de via programo. LUCAS Freitas: Kaj estas unu pli afero, estas ke vi demandis pri metante se kaj tiam alia se. Tio funkcius perfekte, sed ĝi estas malbona dezajno ĉar esence, se vi kontrolu la unua se, kaj vi rimarkos, ke la nombro estas pli granda ol 0, vi povas simple finas la programon. Vi ne devas kontroli se ĝi estas malpli ol 0, right? Sed se vi se se, ĝi tuj kontroli ambaŭ, dum se mi faru, se alia estas, ĝi tuj kontroli se ĝi estas pli granda ol 0. Se tio estas, ĝi ne estas tuj eĉ rigardi ĉe la aliaj linioj de la kodo. Do vi estas esence kontrolanta ĝin kiel dufoje nenecese, por ke tio ni faru, se alie se. Ajna alia demandojn? Spektantaro: Do ​​la funcionalidad de la alia, se estas la sama kiel se gxi estis nur se? Lauren Carvalho: N-ro Vi estas vere tuj vidas en mia proksima gliti ekzemplon en kiu ĝi povas esti malsamaj. En ĉi tiu kazo, ĝi estas preskaŭ la samaj. Do jen, ni havas ekzemplon de multnombraj se frazoj, kaj la funcionalidad ne estas la sama kvazaŭ mi ĵus diris, se alie, se alie, se alie. Ni pensu pri kio devus presi ĉu mi eniras la nombro 95 en ĉi tiun programon. Spektantaro: [inaudibles] Lauren Carvalho: Kaj do? Spektantaro: [inaudibles] Lauren Carvalho: Jes. Do, en tiu kazo, ĉi tiuj kondiĉoj estas Ne reciproke ekskluzivaj unu de la alia. Kaj ĉar tie estas nenio haltante tiu kondiĉo de pritaksanta se tiu oni jam havas, ili estas nur ĉiuj tuj presi. Do kiel mi povus ripari tion? Spektantaro: alie oj? Lauren Carvalho: Vi povas uzi alian oj. Mi povus ŝanĝi la ordon de ĉi tiuj, ĉu ne? Se mi faris ĉi tiun unuan? Nu, fakte, ne. Tio ne funkcius por 95. LUCAS Freitas: Ne, nur la alian oj. Lauren Carvalho: La alia IFS estus fiksita ĉi. Ĉu tio ne klarigas la konfuzon inter oj kaj alia oj? Spektantaro: mi nur volis demandi al vi, se vi ne uzas alie se, ĝi ĉesus? Lauren Carvalho: Ĝuste. Do nur tiun unuan. Se mi eniris la numeron 95, nur tiu estus presita, kaj gxi neniam estus progresis al la alia. LUCAS Freitas: Nur speco de pensi pri ĝin kvazaŭ ĉi tio okazas, faru tion. La alia estas kiel se ne, ĉeko por tio, kaj tiam fari tion. Do kiel ili ja ĉiuj reciproke ekskluziva. Vi ne povas eniri en du super tiuj. Spektantaro: Cxu vi uzas logikan Kaj por tiu situacio? Lauren Carvalho: Jes. Tio estas alia vojo, ke ni povus esti fiksita tiun ĉi problemon. Ni povis esti difinita gamoj, ĉu ne? Do mi povis, tion diris, se n estas granda ol 90 kaj malpli ol - nu, mi supozas ke ĉi tiu ne vere negrava, sed ĉi tie mi povis, tion diris, se n estas pli granda ol 80 kaj malpli ol 90. Pli granda ol 70, malpli ol 80. Tio estus ankaŭ laboris. [Ridado] LUCAS Freitas: Ŝi estas timigitaj. Lauren Carvalho: Ne timu. LUCAS Freitas: Ne ke estos malĝusta. Estas nur ke ĝi estas nenecese verbose. Kiel en komputiko, oni devus esti kiel eble plej simpla tiel longe kiel vi havas la funkciojn. Ĉu vi volas la frandaĵon? Spektantaro: ne bezonas ĝin. Lauren Carvalho: Vi timigante ĉiuj, Lucas. LUCAS Freitas: Pardonu. Lauren Carvalho: David ankaŭ menciita tiuj ŝanĝi aserto en la klaso. Esence kio okazas estas la ŝaltilo deklaro prenas variablon. En ĉi tiu kazo, ni prenas entjero. Se la entjero estas 1, ni iras al presi, "Vi elektis malgrandan nombro. "Se la entjero estas 1," Vi plukis meza nombro. "Se la entjero estas 3, "Vi elektis alta nombro. "Kaj mi ankaux devis defaŭlta kazo cxi tie, sed ĝi ne montrante supren, tio estas tro malbona. Esence, ĉi tiu estas nur alian sintakson. Ni povis esti implementado precize tiu ĉi sama afero kun se kaj alie, se deklaroj. Sed kiam estas multaj malsamaj kondiĉoj kaj multajn malsamajn variadoj sur kion vi volas fari por ĉiu enigo, estas eblo. Do ĝi estas nur bonaj sintakso scii. Jes? Spektantaro: Kial estas ne backslash n en la unua? Lauren Carvalho: Ĉar tie supre? Mankas backslash n tie supre ĉar la GetInt - se vi provos tion, ĝi malebligos doni al vi cxi tiu invito. Donu al mi entjero inter 1 kaj 3. Kaj se mi metas la reagon n, ĝi farus prenos min al la sekva linio, sed mi simple volis ilin tajpi la entjero tuj post la dupunkto. Vi povus meti la reagon n. Ĝi estas ne granda interkonsento. Jes? Spektantaro: Por ĉi tiu kodo, estas jena kazo, estas ke pro ĝi estas la unua kazo? Ĉar - Lauren Carvalho: Ne, ne, ne. Do tiu estas doni al mi entjero inter 1 kaj 3. Se n estas 1, mi presi ĉi. Se mi petis literojn, mi povis havi diris al mi leteron inter A kaj C. Tiam tio estus kazo A. Spektantaro: [inaudibles]. La kazo estus nur [inaudibles] Lauren Carvalho: Jes, ĝuste. Jes? Spektantaro: Kio, se vi volas havi pli de rilata esprimo? Do anstataŭ diri n egalas 1, [inaudibles] n estas pli granda ol 1 en la unua kazo? Lauren Carvalho: Efektive, se mi ne difini iujn el ĉi tiuj kazoj, ĉi tio esti porti malsupren. Do fakte, eble ĉi tio ne estas kion vi demandas. LUCAS Freitas: Mi pensas ŝi demandante se La kazo estis n pli granda ol 0, kazo malpli ol 0. Lauren Carvalho: Eble la ŝaltilo aserto ne estas vere kion vi volas uzi en tiu kazo. LUCAS Freitas: La ŝaltilo aserto estas nur por valoro, tial vi estas kontrolanta de la valoro estas kiel tiu aŭ tio. Do vi ne povas reale meti kondiĉojn. Spektantaro: Kio, se la persono tipoj kun [inaudibles]? Lauren Carvalho: Tio estus estinta mia defaŭlta kazo, kiu bedaŭrinde vi ne povas vidi. LUCAS Freitas: [inaudibles] faru ilin vidas. Lauren Carvalho: Efektive, vi scias kion? Ni simple iri studi 50, kaj mi volas, nur zomi en la diapozitivoj instruhoroj 50, ĉar tiu estas simple ĝena. Do mi efektive iru al kondiĉo. Tiu estas ĝuste tuj preni iom da tempo. Ĉiuj pravas. Do, mi bedaŭras. Almenaŭ nun ni povos vidi ĉio sen ĝi fortranĉi. Ĉiuj pravas. Do se oni metu en 10, ni devus default tien al mia defaŭlta kazo, kaj mi estus ĝuste presi nevalida ĉar mi demandis al ili eniri entjero inter 1 kaj 3. Ajna alia demandojn? Jes? Spektantaro: Diru al kazo, okazo tri, diru vi volis ĝin esti ĉiuj sama afero, do vi plukis nombro tio ne estas mediumo nombro. En tiu kazo, estus tio estus redunda? Ĉu vi nur ŝanĝi la tekston en ambaŭ el ili, aŭ devus ekzisti iu redundo? Ĉu ekzistas iu maniero por kombini [Inaudibles]? Lauren Carvalho: Ekzistas manieroj kombini ilin, sed mi kredas ke vi povas nur kombini apudaj. Do, se mi ne difinis iun por kazo du, tio farus apliki al ambaŭ kazoj. Ho, se mi ne metos ion por majuskligo unu, tio aplikus al ambaŭ kazo unu kaj du. Se tio faras sencon. Spektantaro: Ĉu vi povas ripeti tion? LUCAS Freitas: okej. Se vi faris esence, kiel, vi havas La sama afero, sed vi ne metas nenio ĉi tie, oni kredus esti ĉu por kazo unu aŭ kazo du, faru tion. Ĝuste? Kaj tiu paŭzo signifas, se vi ricevas en ĉi tiu kazo, simple eliri. Do, tio estas kion la bremso signifas. Do, se mi ĝuste faris tion, vi aspektas, ĝi estas kazo, kaj vi devus nur fari tion. Se gxi estis kazo du, estus ankaŭ ĵus venis ĉi tien kaj fari tion. Spektantaro: Sed vi povas fari tion? Se estas io por kazo du [inaudibles] Lauren Carvalho: Mi ne kredas Vi povas fari tion. Mi ne opinias ke vi povas salti ĉirkaŭ. Ĉu vi povas fari tion, Rob? Mi ne pensas tiel. Spektantaro: Do ​​nur unu nombro povas iri post la okazo, right? Ne povas ekzisti kazo, komo, du? LUCAS Freitas: Ne, vi ne povas. Vi certe ne povas. Lauren Carvalho: Mi volas diri, la punkto estas tio estas eblo, kaj tio ne fariĝu adapti vian uzon kazo, do tiam vi uzus la, se kondiĉoj. Spektantaro: Do ​​kial vi farus tion? La ŝaltilo? Lauren Carvalho: Mi uzus ĉi se vi havas tre difinita - reale, Luko, estas vi blokado. LUCAS Freitas: Ho, pardonon. Lauren Carvalho: Se vi havas tre difinita kondutoj kiujn vi volas por ĉiu ajn enigo, tiu povus esti iom pli konciza ol skribi ekstere an se aserto por cxiu. Spektantaro: Kion faras la Break signifas denove? Lauren Carvalho: La paŭzo signifas halti. Memoru, se mi ne havas tiun rompon tie, ni devus esti ĵus falinta en la apudan kazo. LUCAS Freitas: Break signifas akiri el la ŝaltilo komunikaĵo. Ĉar se estas 1, mi volas printi kaj eliri. Mi ne volas kontroli ion alian. Spektantaro: Vi ne volas presi ion alian. LUCAS Freitas: Jes. Ĉar ĝi estas reciproke ekskluzivaj. Spektantaro: Kaj tio ĉi nur procedi al la sekva kazo, se la unua kazo ne estas vera? Aŭ ghi testi ĉiuj kazoj en la sama tempo? LUCAS Freitas: Ne, ĉekojn sinsekve. Sinsekve, jes. Unu plian demandon, tiam ni devas pluiru tiel ni povas kovri ĉion. Jes? Spektantaro: Do ​​por la kazo, povus havi faris ion krom nur la unuan? Ĉu vi povas doni al ĝi rangon? LUCAS Freitas: N-ro Lauren Carvalho: Mi ne kredas vi povas doni ĝin gamo. LUCAS Freitas: Vi ne povas vin ne povas doni al ĝi rangon. Aŭdienco: La kazo estas specifa [Inaudibles]. LUCAS Freitas: Switch estas speco de valoroj. Vi faras malsamajn aferojn depende sur valoro, specifa valoro. Vi ne povas fari gamo, vi ne povas fari ion alian. Ĝi estas nur alia ilo por vidi. Lauren Carvalho: Plej multaj homoj ne uzas ŝanĝi deklaroj tre multe en CS50, sed ŝi estas tie. Ĉiuj pravas. Do la sekva afero, kiun ni iras por paroli pri estas la triargumenta operatoro. Ĉi tio estas nur alia tipo de kondiĉa. Esence kio okazas ĉi tie estas mi petante entjero, kaj se n estas pli granda ol 100, mi tuj presi "Alta". Se ĝi ne estas, mi tuj presi "malalta". Do kio ĝi estas faranta estas la kondiĉo estas ĝuste ĉi tie en la krampoj, kaj vi povas ia pensi pri la demando kiel Mi petas, ĉu tio estas vera aŭ ne. Se ĝi estas vera, mi faros ĉi tiun unuan afero, kaj se ĝi ne estas vera, mi estas tuj fari tiun duan aferon. Demandojn pri la triargumenta operatoro? LUCAS Freitas: Nur volas noti, el David estas ke ĉiam vi havas kondiĉo - Lauren Carvalho: Mi supozas ke David rigardante tra la vivan fluon. LUCAS Freitas: Li estas faranta vivo rivereto ĝuste nun. Do kiam ajn vi havas kondiĉo, vi estas supozis meti krispa krampoj, ĝuste kiel ni havas en ŝaltilo aserto tie. Ni havas krispa krampoj tie. Por kio ajn kondiĉoj, vi estas supozeble ankaŭ metu tion. Lauren Carvalho: Vi vidos tio en la stilo gvidas. Ni ne vere havas la stilo gvidas aktuale. Mi kredas David ankoraŭ laboras. LUCAS Freitas: Li diris, ke Estas nur laboras nun. Lauren Carvalho: Ho, cxu labori nun? OK. Do ŝajne ĉi tiu jaro en la stilo gvidi, eĉ se vi nur havas unu linion, vi devas meti tiujn krispa krampoj in Vi ne nepre bezonas por la funcionalidad de la programo. Kaj eble ni devus simple paŭzi post la kondiĉoj kaj iri rekte al la stilo gvidas liberigi kelkajn el tiuj aĵoj? LUCAS Freitas: Jes. Ĉu vi havas demandon? Spektantaro: Ne, mi nur atendi prilaboradu la stilo gvidas. Spektantaro: Ĉu vi povas iri reen al la triargumenta operatoro? Lauren Carvalho: triargumenta, jes. LUCAS Freitas: triargumenta operatoro estas esence, se alie formulita, sed anstataŭ devi havas la du liniojn de kontrolanta an se kaj tiam la alie, vi nur havas unu linion. Do esence, se mi volas doni kordo valoron de alta aŭ malalta, kaj mi volas fari altan se n estas pli granda ol 100 aŭ malalta, se ĝi estas malpli, kion mi povas fari Estas ĉi tiu [inaudibles] la arĉa tuj esti, kaj poste mi demandu al la programo estas n pli granda ol 100? Tial estas kial mi havas tiun esprimon en krampoj kaj poste la demandosigno. Mi demandas ĉu estas pli granda ol 100? Se jes, ĝi tuj estu altaj. Se ĝi ne estas, ĝi tuj estos malalta. Do esence tion, kion vi opinias estas vi demandas demando, do vi metu en krampoj la kondiĉo. Tiam vi metas la demandosigna ĉar vi demandas ĝin. Kaj se tio estas vera, ĝi tuj estos en la unua valoro [inaudibles] tie. Se ĝi ne estas, mi tuj metis la valoro kiu estas post la dupunkto. Ĉu havas sencon? Ĝi estas ankaŭ iu, kiu estas kiel ilon en C, sed vi ne devas specife uzi ĝin. Sed CS homoj ĝenerale ŝatas tiun ĉar nur ŝparas linioj. Lauren Carvalho: Ĝi estas tre eleganta. Ĝi faras multon en nur unu komunikaĵo. Spektantaro: Do ​​la procento signo estas nur nenial la rezultoj sur la antaŭa linio? Lauren Carvalho: Ho, mi bedaŭras. Tiu procento signo estas reale a lokokupilo por tiu s. En printf deklaro, vi havas ĉi kordo tie, kiu estas kio okazas al presi, sed vi ne povas simple meti ĉi s en tie. Alie tio estus printi el la s laŭvorte. Do ni metis procentojn ĉi tie konservi ĉi lokon tenis por kiaj venas post la komo. Do por kordoj, vi mem havigis procento s. Por entjero, procento i. Por kaleŝego, procento f. Vi vidos tiujn kiel ni vidi pli ekzemploj. Sed eble vi devus paroli pri la stilo gvidas dum iom da tempo, nun ke OKAZAS. LUCAS Freitas: Se vi iros al cs50.net/style, vi tuj vidos la stilo gvidas. Por problemon aroj, viaj partituro por la problemo aro estas formita de medio, kiu esence signifas, ke se vi faris cxion, la partoj de problemon agordi aux se vi provis ion. La dua afero estas korekto, kio per ĝi vian programon faras kio Oni supozis ke faranta, aux faras gxin havi cimojn, aŭ ĝi ne estas fari kion ĝi estas supozis fari. La tria afero estas dezajno, kiu signifas vi apliki tiun puton, aŭ estas vi uzas nenecesajn asertoj? Do ekzemple, se vi volas ripeti nombro 10 fojojn, vi skribas por buklo aŭ vi simple faras 10 fojoj la saman aserton, simple fari kopio kaj pasto. Do dezajno estas por tio. Kaj finfine, vi havas stilon. Stilo estas nur kvazaŭ juĝi se via kodo aspektas legebla kaj tipon de bela. Ĝi simple esence signifas Estas via kodo legebla? Ĉu iu alia, kiu serĉis estas via kodo povi kompreni kion ĝi estas faranta? Ĉu ĝi havas komentojn kaj similaj? Ni parolu pri la stilo kiun vi supozis uzi. La unua afero estas komentoj. Komentoj estas tre grava por via kodo ĉar kelkfoje vi faras via programo, kaj vi scias ekzakte kion ke vi volas fari tiel vi komencu kodigon, simple tajpu supren faskon de C. Sed se iu alia serĉas vi estas kodo, oni ne tuj povos komprenas ĝin ĉar ili ne scias la aferoj, kiuj estas en via kapo, kiel la pesudocode, do eble ili volos havas malfacilan tempon por kompreni kion la kodo estas faranta. Do komentoj estas vere utila por ekspliki al iu kiu estas rigardanta via kodo, kio ĝi estas farante, kaj fakte eĉ por vi, ili estas tre utilaj. Kiel vi iru al pli malfacila kaj malfacile Psets, vi tuj vidas, ke la kodo gets pli longa, kaj tiam komentoj estas vere grava por vi memoras, kion ĉiu parton de via programo faras. Meti komenton, vi povas simple fari oblikvo oblikvo kaj poste skribu komenton. Kaj la tuta linio estas parto de komento, kaj kion ajn vi notus, ĝi ne tuj estu uzata por via kodo. Ĝi estas esence same kiel la tradukilo tuj ignori tion. Ĉu tio havas sencon? Spektantaro: Kion vi faros denove skribi komenton? LUCAS Freitas: Tiu? La oblikvo oblikvo? Kiam ajn vi tajpas oblikvo oblikvo, kio ajn estas en tiu linio ne tuj esti konsiderata C. Jes? Spektantaro: Do ​​post la komento, vi nur eniri kaj komenci novan linion? LUCAS Freitas: Jes, ĝuste. Lauren Carvalho: La oblikvo oblikvo Estas por unuopa linio komentojn. LUCAS Freitas: Ekzemple, ĉi tie ni havas - lasu min zomi - ekzemple, ĉi tie mi deklarante kaleŝego, sed eble se vi simple metas ĉi en via kodo, kiel vi havas nenian ideon kion tiu faras, kiel reale al iu kiu rigardas tiun kodon tuj estos, kiel, kio estas la heck okazas? Se vi metis komenton dirante "konverti Fahrenheit al gradoj, ĝi faras multe pli senco. Vi, kiel, OK, vi estas faranta konvertiĝo. Ĉu tio havas sencon? Do estas nur iu kiu helpas al homoj preta via kodo kaj ankaŭ fari vi povos organizi via kodo bona. La dua afero estas, ke vi povas fari plurliniaj komentoj, do havas unu komenti por faskon da linioj. Anstataŭ havi meti oblikvo oblikvo, la unua linio komentojn, oblikvo oblikvo, la dua linio, kaj simile, vi povas uzi la oblikvo stelo. La vojo, kiun vi faras ĝin estas, ke por la unua linio de la komento, vi estas tuj faros oblikvo stelo stelo, tiel same kiel tiu. Ĝuste kiel ĉi tie ni havas la komenco de programo, oni kutime metas kiu vi estas, kion tiu programo faras, kaj da tio. Ĝi estas speco de kiel kaplinio por la programo. Denove, tio ne estas io, kion tradukilo tuj zorgas pri, sed ĝi estas grava por vi scii, kio estas tiu programo faras aŭ por aliaj homoj scii kion via programo faras. Do vi oblikvo stelo stelo, kaj tiam la lasta linio vi tuj faros stelo oblikvo por povi fermi ke komento. Do esence por ĉiuj la aliaj linioj, vi povas simple skribi kion ajn, kaj tiu cxio tuj esti ignorata. Kaj ankaŭ, ĝuste kiel stilon, vi vidas, ke ĉiu el la linioj havas stelon, kaj ĉiuj La steloj estas vicigitaj. Ĉi tiuj estas gravaj aferoj estas tiel ke via kodo aspektas bela. Sonas bone? Nun, kondiĉoj. Kio Davido estis diranta, ke ni devus efektive metis en tiuj diapozitivoj, estas ke kiam vi havas ian ajn se deklaroj aŭ ia ajn kondiĉoj, Vi devus uzi krispa krampoj montri ke tio estas kion okazos kiam vi havas la kondiĉon. Teknike, kiam vi havas kondiĉo kaj tiam la sekva linio estas nur unu linio, vi ne teknike havas meti la krispa krampoj. Esence la kompililo devus kompreni ĝi ĉiuokaze kiel implicita. Sed por CS50, ni petas vin knaboj meti la krispa krampoj ĝuste tial, ke via kodo estas pli organizita kaj pli legebla. Pro tiu kodo gets plu, se vi ne havas krispa streĉaj kaj tiaj. Ĝi ricevas vere senorda. Lauren Carvalho: Tio estas ekzakte kion David simple atentigis en mia antaŭa diapozitivoj. Ĝi definitive laboras sen la krispa krampoj, sed pro stilaj kialoj Ni tuj petas, ke vi metis tiujn in Kaj kiam vi komencos kuri style50, kio estas speco de la ĉeko de 50 por stilo, ĝi rememorigas al vi fari tion. LUCAS Freitas: Kaj alia afero estas memori meti la krispa krampoj kune en ĉiu linio. Do vi faras, ekzemple, l's. Iru al la sekva linio, malfermu la krispa streĉa, tiam vi iru al sekva linio. Deŝovon, kiu estas kvar spacoj. Poste vi skribas kion ajn, tiam alia linio, kaj fermi la krispa streĉa. Do estu certa, ke ambaŭ tiuj krispa krampoj estas en malsamaj linioj. Spektantaro: Do, se tiu kodo havis kiel 10 alie oj, tiu devus esti 10 aroj de parentezoj? LUCAS Freitas: Jes, por ĉiu el ili. Jes. Do se, alie se, kaj tiel plu. Spektantaro: Ĉu vi ne tab-klavon por krommargxenu? LUCAS Freitas: Ni petas vin infanoj uzi kvar spacoj. Kelkaj tekstoj redaktantoj traduki langeto kiel kvar spacoj aŭtomate. gedit ne, do vi devos fari spaco space space spaco. Tiu estas ankaŭ io, ke iuj programistoj nur fari langetoj, iuj programistoj nur fari kvar spacoj, kaj kelkaj aliaj homoj ecx fari du aŭ tri spacoj. Estas nur ke tie ni petas you guys fari kvar spacoj. Spektantaro: Estas preskaŭ certe alvenis al esti maniero por gedit al aŭtomate [inaudibles]. Kiel neniu [inaudibles] faras tion. LUCAS Freitas: Jes. Mi kredas ke vi povos iri al Settings. Spektantaro: Ĝi jam faras ĉiu el tiu. LUCAS Freitas: Ĝi jam faras? OK. Do simple estu certa, ke vi havi kvar spacoj. Spektantaro: Cxu ni devas meti la krispa krampoj en por bukloj tiel? LUCAS Freitas: Jes. Lauren Carvalho: Krom se via encapsulando bloko de kodo, nur bonvolu uzi la krispa krampoj. Kaj antaŭ ol vi pensas ke ni estas apenaŭ esti sticklers pri tio por ne bonon Tial, se vi uloj ne iru sur akiri tech pasantías en grandaj entreprenoj, Ili donos al vi stilo gvidas, kaj ili diros al vi ĉi tiu estas kion via kodo devas aspekti. Kaj eĉ se vi lernis kodo kiel tiu, eble en via internulejo vi devos fari ion tute malsama. Ili atendas vin konformiĝi ilia stilo. LUCAS Freitas: Kaj alia afero estas ke vi rimarkos kiom i havas kiel x, spaco, malpli, spaco, 0? Kiam ajn vi havas operatoro - tio povas esti kiel plus, minus, tempoj, malpli, granda, kio ajn operatoro - vi devas meti spacon maldekstre kaj la rajto de la operatoro. Lauren Carvalho: Tiuj estas nomita duuma operandoj. Nur certigu vin ĉiam spaco vian duuma operandoj. LUCAS Freitas: Jen Ne duuma argumento. Lauren Carvalho: Tio estas ĉar ĝi prenas du. LUCAS Freitas: Ho, jes. OK, la ŝaltiloj. Unue, vi devas vidi, ke same kiel en se alie deklaro, vi havas meti la krispa krampoj sur ĝia propra linio kaj sub la krispa streĉa tie. Rimarku, ke ne estas sola spaco post ŝaltilo, ĝuste kiel en se kaj alia ni havis sola spaco inter ke kaj la krampoj. Do vi devos meti tion. Kaj ne estas spaco dekstre post ĉiu de la parentezoj aux antaux la fino de la krampoj. Do vi vidas, ke ĉio estas kune, kaj ankaŭ ŝatas ĉi tie. Jes? Lauren Carvalho: Mi opinias ni bezonas pluiri. LUCAS Freitas: Do tiu estas parto de la stilo gvidas, ke vi havas pro CS50. Nepre iru cs50.net/style kaj rigardu ĉi. Tiuj estas ĉiuj tre grava por via stilo partituro. Permesu al mi iri reen al la deklaro. Lauren Carvalho: mi preferus nur uzu style50. Ni nur tuj iros rekte al loops. Ĉiuj pravas. Do ni iru reen al la enhavo, nun ke ni iris trans la stilo gvidas. Masxojn, vi jam vidis ilin en Scratch, kaj ni iras por paroli pri ili en C. En buklo, esas tri partojn al la deklaro de ĉi por buklo. Vi jam ricevis vian inicialización en kiun vi starigis vian variabloj. Vi jam ricevis vian kondiĉo, kiu estas kontrolas, ĉu io estas vera aŭ falsa kaj ĉu la buklo devus daŭrigi. Kaj vi jam ricevis vian ĝisdatigo, kio Estas ĝisdatigi vian variabloj. Ni simple prenu rapidan rigardon al iu C-kodo de ĉi por buklo en agado. Kio okazas estas tie en la inicialización, ni opcio i al 0. En la kondiĉo ni kontrolanta ĉu mi estas malpli ol 10. Kaj en la ĝisdatigo ni estas pliigante i. Do kio rezultos el ĉi por buklo? LUCAS Freitas: Efektive, unue: ĉu vi uloj scias kion mi + + estas? Spektantaro: Pliigita per 1. LUCAS Freitas: Pliigita per 1, jes. Do tiu estas la sama afero kiel fari i egalas i plus 1. Kaj rimarki ke ni ne havas spacon inter la i kaj la + +. Do ĉu vi uloj scias kion tio faros? Ĉu iu diras al mi? Kaj eble akiri iun frandaĵon pro tio? Spektantaro: [inaudibles] LUCAS Freitas: okej. [Inaudibles] montri ĉiuj postaj [inaudibles]. Jes, tio okazas por montri "Tiu Estas CS50 "10 foje. Lauren Carvalho: Mi supozas ke estis En la titolo de la glito. LUCAS Freitas: Ho, jes. [Ridado] LUCAS Freitas: Tio helpas. Lauren Carvalho: Do ​​tiuj Estas por maŝojn. Ni tuj vidi ian pli ekzemploj de For masxojn poste. Sed ni fakte tuj iri ĉe la dua tipo de buklo vi renkontas en C, kaj ĝi estas nomata la dum-cirklon. En momento buklo, vi havas just got kondiĉo. La kondiĉo estas kontrolita en la komencante, kaj se tiu kondiĉo taksas kiel vera, do la kodon ene La korpo de la dum la bloko Mi faros. Kaj la kodo daŭre ekzekuti tiel longa kiel tiu kondiĉo restas vera. Jen ekzemplo el tempo buklo en C. Ni tuj starigis grafo por 10 al komenci. Tiel longe kiel grafo estas pli granda ol 0, Ni tuj teni presi tiun variablo tie. Ni iras al dekremento grafo kaj tiam kontrolu la kondiĉo denove. Print, dekremento, ĉeko kondiĉe denove. Ĉi tie ni havas ekzemplon kiu rilatas al via demando antaŭe. Ni havis la procento s kiam ni estis presi el ŝnuro, kaj nun ke ni presado ekster an int, ni havi procento i kiel nia lokokupilo anstataŭe. La literoj ĉiuj devus esti bela intuicia, s por kordoj, i por int. Do se tiu kodo ekzekutas, vi devus kalkuli suben el 10 al 0, presado ekstere ĉiu entjera. LUCAS Freitas: Kaj vi povas pensi pri la procento kiel oni sentas ĝin malplena spaco, kaj tiam vi meti ĉi variablo tie en tiu malplenan spacon. Do, ekzemple, ĉi tie mi havas nur malplenan, kaj tiam mi metas la kalkuli ĝuste tie, la valoro de la grafo. Ĉu tio havas sencon? Ĉu mi simple imitu printf kaj do citas rigardas? Ĉu tio funkcias? Spektantaro: N-ro LUCAS Freitas: Ne, ĉar ĝi volas reale presi la vorto "grafo" anstataŭ presi la valoro. Jen kiel vi faru gxin presi la valoroj cele la variablo anstataŭ nur la nomon de la variablo. Demandojn? Spektantaro: Kial vi uzas por kiel kontraŭa al tempo? Lauren Carvalho: mi uzus por buklo se mi scias ekzakte kiom da ripetoj Mi volas mian buklo kuri. En ĉi tiu kazo, ne gravas, ĉar Mi volas diri, mi nur provas pensi pri vere simplaj Ekzemplo por ĉi tiu bildo. Sed diru ke vi volas ion plu iri dum - LUCAS Freitas: Ekzemple, vi estas petante enigo ĝis la persono donas al vi la rajton enigo. Do kiel dum la enigo estas ne OK, vi observos petante ĝin. Aŭ kiel dum vi estas gepatroj ne donos vi monon, vi observos petante ĝin. [Ridado] Lauren Carvalho: Vi ne scias kiel multajn fojojn vi devos fari tion. LUCAS Freitas: Ĉar vi ne scias, kiom da fojoj tio iri plu iri. Lauren Carvalho: Sed en buklo, Vi devas scii, kiom da fojoj. Jes? Spektantaro: Nur por klarigi, la procento diras ĉi estas io pri al okazi, la i estas por la entjero, kaj la backslash n - Lauren Carvalho: Rimedoj? Kiu scias, kion la backslash n signifas? Nova lineo, jes. Ekzakte. LUCAS Freitas: Vi povas pensi de n kiel nova linio. Lauren Carvalho: Nice. Spektantaro: Kio estas tio grafo haltostreko haltostreko [inaudibles]? LUCAS Freitas: Grafo minus minus estas la sama afero kiel plus plus, sed anstataŭ kreskanta, ĝi estas malkreskanta per 1. Lauren Carvalho: Ajna pli dum buklo demandojn? Neniu? Ho, ni supozis ke saltis tio. Tio estas do samtempe buklo. Tre simila al tempo buklo krom en tiu kazo ni kontrolu la kondiĉo poste La kodo en la korpo de la buklo ekzekutas unufoje. Do ni komencu fari la kodo unua negrave kion. Tiam ni kontrolu la kondiĉo, ekzekuti ĝi denove se la kondiĉo estas vera. Vi trovos vin uzanta tion kiam vi petante uzanto enigon. Ĉar vi estas ĉiam tuj devos demandi unu fojon, kaj tiam depende kion la uzanto enigo estas, eble vi devos reprompt kaj petu denove kaj denove, se la enigo ne estis kion vi atendis ĝin esti. Spektantaro: Tiel estas kiel formo por homoj plenigi. Lauren Carvalho: Jes, ĝuste. Vi trovos, mi pensas, en via unua Pset, vi tuj devas uzi bonfarante buklo kolekti enigo de la uzanto. Spektantaro: Depende de la situacio, Via dum masxojn emos kuri pli ofte ol dum masxojn, kiel per unu aŭ ion? Lauren Carvalho: Se temas pri la ĝusta - LUCAS Freitas: ili devus ĉiam kuras La ĝusta kvanto de fojoj ke vi volas ĝin kuri. Kiel ni uzu do dum ĉar ni vere volis akiri la enigo almenaŭ unufoje. En tempo masxojn, kelkfoje oni ne volas ekzekuti ŝin en ĉiuj, se ĝi ne estas la kazo ekzekuti. Do ĝi dependas de la desegno. Mi volas diri, vi povas ĉu uzo faras dum aŭ dum tiel longe kiel via kodo faras tion ĝi estas supozis fari. Lauren Carvalho: Sed mi faras pensas la respondo al via demando estas verŝajne jes. Diru la kondiĉo estis falsaj. En unu kazo kurus fojon, kaj alia kazo kurus nulo fojojn. Do, jes. Plu demandoj? Jes? Spektantaro: Chu la buklo kondiĉo esti por buklo en terminoj de variablo aliaj ol [inaudibles]. Lauren Carvalho: Yeah, tio povas esti nenio. Probable pro la komenco Psets, vi ne devos renkonti tiuokaze, sed definitive ĝi povas esti nenio. LUCAS Freitas: Mi opinias ni faris ĉi tie. Lauren Carvalho: Ĉu ni estas? Neniu? LUCAS Freitas: Loops? Jes. Lauren Carvalho: ni ne devus esti. Ho, ni estas faritaj kun bukloj. OK. Efektive, ĉar ni jam parolis tiel multa, ni vere ĉiuj navigi super al study.cs50.net/conditions. Kaj vi tuj navigi malsupren al la problemoj widget. Nu, efektive, dum homoj fartas ĉi starigis la CS50 Studo estas tuj estos ilo ke via TFS volo uzi por prepari sekcioj kaj ke vi uloj povas uzi se vi mankos sekcioj. Ĝi tuj enhavas faskon da diapozitivoj, iuj konsiloj kaj trukojn por ĉiu temo, kaj iom praktiko problemoj kun solvoj. Kial ne ĉiuj simple rigardu en ĉi tiu problemo ĝuste ĉi tie. Mi pardonpetas, mi devus memorigis homoj por venigi tekkomputilojn hodiaŭ. Sed se vi ne havas portebla, tio estas en ordo. Vi povas simple jot ĉi malsupren sur Peco de papero aŭ transrigardi via proksimulo ŝultro. Ni provu kaj skribu programo kiu stimulanta la uzanto preni diveno, la averaĝa nombro de infanoj po familio unueco en la Unuiĝintaj Ŝtatoj. Tiu numero estas 2, sur la vojo, kiel vi povas vidi el tiuj ekzemploj. Ni volas presi averaĝa nombro de infanoj po familio en Usono, tiam ni volas kion? Ni volas kolekti enigo de la uzanto. Kaj tiam depende kion la uzanto enigo estas, vi tuj presi ĉu tiu estas korekta aŭ ĉi tio estas malĝusta. Kaj la tre unua afero, kiun vi devos vidu, se vi alklakos la malgranda sago ĉe la fundon de la problemo fenestraĵo estas spot al jot malsupren iuj _pseudocode_. Do vi ne plani ankoraŭ. Vi simple interesigi viajn ideoj en ordo. Ĉu iu volas helpi Lucas veni supren kun la dekstra _pseudocode_ por tiu problemo? LUCAS Freitas: Kio estas la unua aĵo ke ni devus verŝajne faras ĉi tie? Kion vi uloj pensas? Spektantaro: [inaudibles] LUCAS Freitas: Jes, bone. Do, presi. Nur diru la presita ĉi averaĝa nombro da homoj? OK. Print demandon, ni diru. Post mi presi tiun demandon, kion mi devus fari? Spektantaro: Get enigo. LUCAS Freitas: Get enigo. Ĉu io alia? Spektantaro: Kondiĉo. LUCAS Freitas: Kondiĉo. Lauren Carvalho: Kio estas tiu kondiĉo tuj estos? Spektantaro: La nombro de [inaudibles]. Lauren Carvalho: Ĝuste. LUCAS Freitas: Do, kion mi povos kontroli en la kondiĉo? Spektantaro: Se ĝi egalas 2. Lauren Carvalho: Se ĝi egalas 2. Ekzakte. LUCAS Freitas: Ĉu estas io alia ke mi devus fari? Spektantaro: Grafo. LUCAS Freitas: Do, se ĝi estas egala al 2, ni diru - lasu min nur skribi se enigo estas egala al al 2, tiam kion mi iros fari estas presita korekta. Kaj tiam alian, mi tuj presi malĝusta. Ĉu io alia? Neniu? Lauren Carvalho: Do ​​vi povas klaki sur la - Ĉu ĉiuj havas ĉi sube? LUCAS Freitas: Ĉu havas sencon? Do nun ni provu programi tion. Lauren Carvalho: Se vi alklakos la eta arrow, ĝi fakte savas vian _pseudocode_, kiu estas vere ekscita. Kaj vi povas fari tiujn en komentoj, se vi volas nur memorigi vin mem de kion fari. LUCAS Freitas: Do ekzemple, unue Mi tuj presi la demando, tiel kiom mi povos fari tion, fakte? printf. Do printf, kaj la demando estas averaĝa nombro de infanoj po familio en Usono. Tiam Mi iros por ricevi enigo de la uzanto. Do kiel povas mi fari? Spektantaro: Get Int. Lauren Carvalho: GetInt. LUCAS Freitas: okej. Do unue deklari, ĉu ne? int, ni nomas ĝin n egalas GetInt. Kaj nun la kondiĉo. Do mi dirus ke mi iras tie ĉekon respondo. Do unue, se enigo, kiu estas n, egalas al - kiel mi verkos tion? Spektantaro: Equal egalaj. LUCAS Freitas: Perfekta. Do la n. Kaj rimarki ke mi faru spacon, egalas, egalaj, spaco, veraj. Kaj nun kion mi devas fari? Io tre grava por stilo. La krispa krampoj. Kaj poste mi iros por presi. Kjel mi presi? printf. Spektantaro: Could gxin majuskle? LUCAS Freitas: N-ro Oni supozas ke ĉiuj minuskle. Do tio estas korekta. Ĉu tio sufiĉas por la printf deklaro, aux cxu mi mankas io? Spektantaro: Nova lineo. LUCAS Freitas: Nova lineo, jes. Kaj nun alia. Spektantaro: Is there a spaco post la printf, aŭ ne? Lauren Carvalho: Ni devus kontrolu la stilo gvidas. Spektantaro: Ĝi ne devus esti. LUCAS Freitas: Cxu ne estus, OK. Do alia, printf, "Tio estas malĝusta." Lauren Carvalho: Oops, viaj citaĵoj. LUCAS Freitas: okej. Ĉu io alia? Ĉu ĝi aspektas bone? Lauren Carvalho: Ĉu ni provu ĝin? LUCAS Freitas: Jes, ni ruli ĝin. Do estas kompili, kaj ĝi Ŝajnas ke ĝi funkcias. Ni provu du infanoj. Tio estas korekta. Kaj nun ni kuros denove, sed nun anstataŭ meti du infanojn, ni diras, ke mi tuj metis kiel kvin. Tio estas malĝusta. Do ŝajnas, ke ĝi funkcias. Lauren Carvalho: Kial ne montri ilin kio okazas se vi metas ion weird, kiel iuj literoj. LUCAS Freitas: Ho, jes. Ni ankaŭ kontroli tion. Kio, se la uzanto provas salato kun via programo, kaj ili apenaŭ skribi, mi ne scias du. Ĝi estas dironta Retry. Lauren Carvalho: Do ​​GetInt petas ilin reprovi. Ni ne devas prizorgi de tiu mem. LUCAS Freitas: Jes. Do, se mi efektive metis nombro, ĝi estas tuj Petu Min reprovi. Spektantaro: Kiel vi ruli ĝin? LUCAS Freitas: Simple klaku tiu stelo butonon. Lauren Carvalho: Vi iru. Tie vi iros. LUCAS Freitas: La stelo butono rajton tie. Jes? Spektantaro: Ĉu ĝi instigas [inaudibles] kun dekumaj nombroj tro? Lauren Carvalho: Mi kredas tion volos. LUCAS Freitas: Se tio faras kion? Lauren Carvalho: Se oni tajpas en dekuma nombro, mi pensas ĝi tuj instigas. LUCAS Freitas: Ni vidu. Lauren Carvalho: Pro ĝi ne estas an int. LUCAS Freitas: Jes. Lauren Carvalho: Do ​​tio ne estas entjeraj, Get Mez petos vin reprovi. Spektantaro: Do, kie en la kodo estus la dekuma loko kiu pelas la uzanton ke ili devas eniri entjero specife? Lauren Carvalho: GetInt estas reale fari tion por ni. Spektantaro: Ne, mi volas diri, se ni volis eniri [inaudibles] LUCAS Freitas: Oni povas diri kiel averaĝa nombro de infanoj en Usono. Mi ne scias. Ni povas diri, ekzemple, "Bonvolu enigo entjero. " Lauren Carvalho: An entjero egala ĝis la duona nombro. Mi volas diri, estas nur kiel vi vorton ĝin, ĉu ne? LUCAS Freitas: Jes. Tiu ne estas parto de reale kodigo. Ĝi estas pli kiel ajn vi tuj volas skribu en via programo. Spektantaro: Kiel ni ruli ĝin, se ĝi Estis fakte en gedit [inaudibles]. Anstataux premi teatraĵo? LUCAS Freitas: Ni volas unue kompili ĝin. Ni povas fari ĝin farante ŝminko kaj la nomo de la dosiero. Kaj poste ekzekuti lin, ni faros dot oblikvo kaj la nomo de la programo. Spektantaro: Mi divenas, kion mi volis diri estis, se Ni volis ke la programo por respondi al ilia malĝusta, nevalida enirejo, Vi ne devus meti en - LUCAS Freitas: Ni ne povos fari tion ĉar la kodon ĉi diras reprovi devenas Akiri Mez kiu estas funkcio kiu estas jam implementado por ni tra la CS50 biblioteko, kaj ekde ĝi estas jam implementado tie, ni ne povas simple [inaudibles]. Lauren Carvalho: Se vi ne uzas GetInt, tiam vi povas tion fari. LUCAS Freitas: Jes. Sed se vi uzas GetInt, vi ne povas. Ajna alia demandojn? Spektantaro: Ĉu vi iros kun kiel GetFloat kaj tiam povos meti ĝin en dekuma? LUCAS Freitas: Jes. Spektantaro: okej. Tiam vi simple povus enigo flosi a egalaj - Lauren Carvalho: Jes. Ekzakte la sama escepte de flosi anstataŭ int. LUCAS Freitas: Nur metu ĝin ĉi tie kaj tiam GetFloat tie. Spektantaro: Kiel vi volas, vidi aŭ vidis - Lauren Carvalho: ni havas ne alvenis tie ankoraŭ. Spektantaro: - fari neegalaĵo kun flosoj ne [inaudibles] Spektantaro: Kion la punktokomojn signifi? Lauren Carvalho: La punktokomo nur signifas ke ĉi tiu deklaro estas kompleta, kaj ni tuj iru sur la flanko glito. Spektantaro: Do ​​estas necese ĉiu tempo? Lauren Carvalho: Jes. Nu, bone, do ne por tiuj kondiĉoj, ĉar ili estas encapsulando ion. Do esence, se io estas kaŭzante vi tiam krei krispa krampoj bloko, ne metu punktokomo ĉe la fino. LUCAS Freitas: Sed ĉio alie, jes. Kiam vi finos komunikaĵo, metu la punktokomo. Kaj se vi forgesos punktokomojn, la tradukilo tuj koleriĝas pri vi, kaj vi tuj havos por klopodi ripari ĝin. Lauren Carvalho: Se mi metis punktokomo ĉi tie, ke haltus ĉi, kaj mi neniam atingus ekzekuti kio estas interne, per la vojo. Do ĝi estas unu el tiuj komunaj cimojn. Spektantaro: Ĉiam ekzekuti. Lauren Carvalho: Jes. En ĉi tiu kazo, ni havus ĉiam ekzekuti kio estas ene. Spektantaro: Via stilo [inaudibles] alfiksi ke por vi, pensis. Lauren Carvalho: Ho, tio estas vera. Spektantaro: [inaudibles] sola linio afero [inaudibles] Spektantaro: Jes? Spektantaro: Cxu vi povas havi multoblajn enigoj en unu linio? Do kiel vi povas demandi al uzantoj presi du aferoj? Lauren Carvalho: Not uzante - LUCAS Freitas: N-ro Ni diru ke mi volas ankaŭ akiri ĉi entjero m. Mi devas fari tion en malsama linio. Spektantaro: Se vi estus kuri ke, kiom [inaudibles]? Estus presi la prompto tie [inaudibles] kaj tiam vi povus eniri unu kaj - Lauren Carvalho: Nu, ruli ĝin. Mi volas diri, estas nenio haltante nin el nur kurante ĝin kaj vidante kion okazus. LUCAS Freitas: Mi pensas, ke estas tuj plendas ĉe ni Ĉar ni ne uzante - Lauren Carvalho: Oops. LUCAS Freitas: Ĝi plendis ĉe ni la veron nun ĉar ni ne uzas tiun variablo, sed se mi faris, ekzemple, n estas egalas egalas al, kaj m egalas egalas al, do kion volas okazi en tiu kazo? Kia estus tiu programo faras? Spektantaro: mi simple scivolis Tiel ĝi - Lauren Carvalho: Ŝi nur volas scii kiel aspektas kiel mi pensas, ĉu ne? Do ĝi prenis unu el ili, kaj tiam ĝi prenis la dua. Mi kredas ke ni devus movi plu, ĉar ni havas unu pli Bildovico iri antaŭe - ĉu vi volas tiri supren matematiko? LUCAS Freitas: Jes, math. Lauren Carvalho: Donu mi nur unu sekundo. Estas kelkaj malsamaj nombra variabloj en C. Nombraj datumoj en C povas klasifiki en malsamaj tipoj, kaj cxi tiuj estas tiuj, vi devos vidi la plej ofte. Kaj int estas tuta nombro. Vi ne povas havi ajnan glitpunktaj nombroj. En la Aparato, preno 32 bitojn por stoki an int. A float povas havi glitpunktaj nombroj. Ĝi ankaŭ prenas 32 bitojn por stoki float en la aparaton. Duobla estas nombro kun dekuma punkto kiu portas 64 bitojn por stoki ĝin, kio signifas ke vi povas nur havi grandan precizecon, ĉar vi povas havi pli - kion vi nomas ĝin? LUCAS Freitas: Jes, tio estas pli. Lauren Carvalho: Pli lokoj post la dekuma punkto. Kaj longa longa estas tuta kvanto kiu prenas 64 bitojn por turmentaj ĝin en la aparaton. LUCAS Freitas: Do ĝi povas esti pli granda ol ints povas esti. Lauren Carvalho: La afero pri datumoj tipoj en C estas, ke ili diru al vi, kion speco de la datumoj povas stoki en via variablo. Ili diros al vi, kiel vi povas uzi tiun variablo en via programo. Estas tre grave ĝuste konservi trako de kio datumtipo vi uzas, kaj se vi ja bezonas por elpeli el datumtipo al alia, certigu ke vi scias ĝuste kio okazas kiam tiu fandon okazas. Kaj vi vidos ekzemplon poste sur en tiuj diapozitivoj de eraro kiu povas okazi. Ni rigardu kelkajn math en C kaj opinias vere diligente, mi supozas, pri kio okazas kiam tiu math okazas. En la unua linio, kio estas okazas kiam mi deklaras x? Spektantaro: Vi permesante x al esti io? Lauren Carvalho: Jes. Nu, mi vere demandas la mastruma sistemo por 32 bitoj de memoro, ĉu ne? En kiu mi povas stoki int, kaj Mi iras por voki ke int x. LUCAS Freitas: Esence irante en la memoro kaj ne trovante lokon kiu havas 32 bitojn kaj diron, hey, mi volas ke tiu spaco, kaj gxi tuj nomos x. Do, vi estas nur sufiĉe tre trovo skatolo en vian memoron vendejo valorojn por x. Lauren Carvalho: Kaj tiam mi pravalorizi x, kio signifas ke mi nur gardi la valoro de 2 en tiu loko, ke chunk de memoro, ke ni petis mastruma sistemo por. Kaj cxi tie kion ni faras estas ni reale deklarante kaj inicializar y en unu linio anstataŭ en du liniojn kiel ni faris ĉi tie, kiu estas ankaŭ perfekte bone, Ni estas aldoni 1 al x, kaj ni stokante ke valoro en y. LUCAS Freitas: Do esence kion ĉi linio faras, ĝi trovas nun skatolon por y, kaj tiam ĝia valoro, la aĵo kiu vi tuj metu ene de la skatolo, estas tuj estos la valoro de x plus 1. Do ĝi havas tiun skatolon por y. Ĝi ricevas la valoro de x, aspektas ĉi tie, kaj vi vidos, ke ĝi estas 2. Metu gxin tie, plus 1, tiel gxi sxiras 3 tie. Ĉu tio havas sencon? Do y estus 2 en tiu kazo. Lauren Carvalho: Enorde, cool. Ni vidis kelkajn Krome, tiel ni nun opinias pri divido en C. Ĉi tie mi estas deklari kaj inicialización float vokis respondon kaj dividanta 1 per 10, kaj tiam Mi presado el la respondo al du dekumaj lokoj. Kaj rimarku tie, en mia printf deklaro, kiam mi volas printi ion por du dekumaj lokoj,% .2 f estas kion mi volas uzi. Do la punkto 2 oni nur diras Mi bezonas du lokoj post la dekuma presita eksteren. Nun, kio okazos se mi kuros tiun kodon? Chu iu havas ideon? Kio estus presi? LUCAS Freitas: Kio estas ni esperas atingi. Lauren Carvalho: Kion fari Ni volas, unua el cxiuj? LUCAS Freitas: [inaudibles] Lauren Carvalho: 0.1, jes. Sed kio estos presi? Spektantaro: [inaudibles] Lauren Carvalho: Nu, ne, fakte. Ĉi tio estas kion mi estis parolanta pri kial vi bezonas teni tre zorgema spuro de via datumtipoj. Do, kio datumtipo estas tio? Estas int, ĉu ne? Ne estas dekuma loko. 10 Estas ankaŭ int. Ne estas dekuma loko. Se mi dividas an int per int, mi ricevas int kio ne estas 0.1, ĉar ints ne povas havi dekumaj lokoj, sed simple 0. Ĉar int nur senpintigas super la decimalaj. LUCAS Freitas: Do kiam ajn vi faras operacioj kun ints, vi tuj akiri int kiel la respondo. Do esence, kion la komputilo faras, ĝi estas dividas 1 per 10, kaj ĝi ricevas 0,1. Sed tiam ĝi estas kiel, atendu, tio estas supozis esti entjero, do vi nur ignori la 0,1, do estas nun simple 0. Lauren Carvalho: Do ​​kiam mi printi ekstere, mi alvenas 0.00 anstataŭ 0.10. LUCAS Freitas: Ĉu tio havas sencon? Lauren Carvalho: Tio estas afabla de malfeliĉa, ĉu ne? LUCAS Freitas: Do kiel oni povas ripari tion? Lauren Carvalho: Ni klopodi ripari tion. Jen ekzemplo de kie mi estas reale elfandi la 1 kaj la 10 al flosas. Do nun, 1 estas ne plu an int. 1 estas flosas. Parenteze, tio estas nur la sintakso cxar kiam vi volas elpeli el unu datumtipon al alia. Vi povas simple meti la datumtipo en parentezoj kaj havas ke ĝuste antaŭos la valoro kiun vi enjxetantan. Do jen, mi dividanta float per float akiri float respondo. Kaj jes, ĉi tio en Fakte presi 0.10. Ĉu tio havas sencon? LUCAS Freitas: Do tipo fandon estas nur konverto de unu tipo al la alia. Do flosi 1 estas reale 1,000. Ne precize tion, sed estas io kun decimalaj ke estas reale 1. Ĉu tio havas sencon? Jes? Spektantaro: Kio, se vi faris float respondon egalas 1.0 dividita per 10? Lauren Carvalho: Vi efektive irante por vidi, ke en la venonta glito. Tio estas vere niaj tre proksimaj glito. Tiu estas fakte pli agrabla ol tajpi fandon, mi pensas. Do tiuj du estas flosoj nur naturon de la fakto ke ili havas dekuman lokoj. Jes? Spektantaro: Kio, se vi faris [inaudibles] dividita per 10? Lauren Carvalho: Efektive float dividita per int vere donas al vi flosi, tiel ke funkcius bone. Atendu, ĉu ĉiuj komprenis tion? Ĉar ĉi tiu tuj estos vere big deal en Pset1, fakte. Jes? Spektantaro: Ĉu vi ĝuste rapide transiru la ruĝa parto? Lauren Carvalho: La ruĝa parto, jes. Lucas, ĉu vi volas? LUCAS Freitas: okej. Do memoru, ke la procento Estas lokokupilo. Estas kiel malplenan spacon. Do ni provu kompreni ĉiun ke okazas tie. Elcento signifas ke ĝi estas lokokupilo. Tiam vi havos la f, kio signifas, ke ĉi lokokupilo estas por kaleŝego. La lasta afero kiun ni havas ĉi tie estas .2, Kio signifas ke mi volas havi du dekumaj lokoj por la kaleŝego. Se mi nur havis% f, ili gxin metos faskon da dekumaj lokoj. Do mi povas simple meti .2 aŭ .1 aŭ .5, aŭ kion ajn, kaj ĝi tuj metis tiun nombro de dekumaj lokoj. La nura afero estas ke, se vi metas kiel .100 Aŭ .1,000, ne reale tuj metos cxiujn tiujn dekumaj lokoj ĉar ĝi ne havas sufiĉan memoron por havi tiun precizeco. Ajna alia demandojn? Jes? Spektantaro: Do ​​flosi nur permesas vin iri trans entjeroj? LUCAS Freitas: Jes. Lauren Carvalho: Nu, float nur permesas al vi havi dekumaj lokoj. LUCAS Freitas: Tio simple signifas, ke vi nun povas havi decimalaj numeroj. Spektantaro: Kial ni iam uzi entjeroj? LUCAS Freitas: Kial vi uzas entjeroj? Eble se vi rakontante de 0 al 10, vi volas uzi efektive entjero. Vi ne bezonas uzi flosi. En iuj situacioj, vi ne devas reale - Lauren Carvalho: Eble vi ne volas glitpunktaj nombroj. LUCAS Freitas: Eble vi ne deziras uzi flosi. Lauren Carvalho: La alia afero estas, memori, ambaŭ meti float kaj int preni 32 bitojn por stoki ilin, kaj eble vi ne volas malŝpari bitoj sur la dekumaj lokoj. LUCAS Freitas: Jes. Do kiel, apenaŭ pensas pri ĉi tio. Vi havas 32 bitojn por ambaŭ an int kaj float. Por int, ĉiuj tiuj 32 bitoj iru al la entjera parto. Se vi uzas float kun 32 bitoj, vi havi parton de tiu memoro uzata cxar la nombro, cxar la tuta nombro, kaj la alia parto estas uzata por la dekumaj lokoj. Do tio signifas ke vi ne povas atingi tre grandajn nombrojn per flosoj ĉar la kaleŝego'S jam uzas multajn memoron por la decimalaj. Jes? Spektantaro: Tiu unua respondo, kio precize estas ĝi faras? Ĉu opcio la valoro de float egala por ke lokokupilo por ke vi povas memori ĝin en la sekva linio? Ĝi diras flosi respondo. LUCAS Freitas: Jes. Do, float respondo signifas al vi nun estas nun iom sitelon en la memoro, ke tenas kaleŝego, kaj tio okazas esti nomata respondo. Do jen kio flosas respondon faras. Kaj poste vi diru, ke interne de tiu, vi tuj metis La rezulto de tio. Do vi iras fari 1.0 dividita per 10.0, vi ricevas 0,1, kaj tiam vi metu ke ene de respondo. Lauren Carvalho: Do ​​en unu linio, ni estas deklari kaj inicialización ĉi float vokis respondo. LUCAS Freitas: Interese, kvankam tio estas nur unu linion, ĝi estas faranta multnombraj operaciojn. Ĝi estas nur maniero de C liberigo vi uzu malpli kodo. Ĝi estas la sama afero kiel la triargumenta operatoro, kiel vi povas simple fari [Inaudibles] en unu linio. Ĝi estas fakte faras la samon kiel faranta float respondon, punktokomo, kaj tiam respondo egalas tion, sed anstataŭ farante vi faru du liniojn por tiu, ĝi estas kiel mallongigo. Jes? Spektantaro: Do ​​se vi kuris ĉi, estus 0.10? LUCAS Freitas: Jes. Jes? Spektantaro: Cxu respondi reale kodo, aŭ ĉu simple la nomo? Lauren Carvalho: Tiu Estas vere kodo. Jen kion ni iras nomumi nia variablo. Spektantaro: Do ​​estas ĝuste nomo [inaudibles]. Lauren Carvalho: Jes. Mi povus jam diris float x egalas 1.0. LUCAS Freitas: La afero estas ke la nomo de la variablo estas iu kiu vi uzas. Ĝi estas grava por vi. Ĉar la efektiva programo, la sola afero ke aferoj estas la valoro, kiun vi havi ene de la rubujo. La kialo, kial vi havas variabloj kaj nomoj de variabloj estas tiel oni kredus scias kion vi pritraktas, kiel kia datumoj vi estas aliro samtempe. Sed por la kodo, se vi nomas lin respondi aŭ demandon aŭ ion ajn, pretty much, ne gravas. Ne gravas. Tiel longe kiel vi estas konsekvenca en ĉiu apero kaj tiel vi nomas ĝin io alia. Jes? Spektantaro: Do ​​la variabloj iri preter la funkcio? Kiel, se vi estus krei krampo [Inaudibles], povis vi ĵus [Inaudibles] respondos denove? Lauren Carvalho: N-ro Spektantaro: [inaudibles] Lauren Carvalho: N-ro Tio estus ekstere de la medio de tiu aparta variablo. Kaj efektive, jen speco de interesa, ĉar kiam ni havas aĵoj kiel masxojn aŭ tiuj se kondiĉoj, se vi rakontos variablo ene de alia aro de krispa krampoj, gxi vere ekzistas nur en tiuj, krispa krampoj. Spektantaro: Unu lasta noto pri la [inaudibles] flosoj. Kial vi iam volas uzi ints? Ĉi tio estas pli de flanka noto ol ion, sed via komputilo estas signife pli bona ĉe uzado ints ol ĝi estas je uzado flosoj. Estas kiel ordono de grando pli rapida. Do, se ni nur manipulitaj nur flosas, aferoj estus multe pli malrapida. Lauren Carvalho: Efektive, tie ŝajnas ke estas problemo kun flosoj. LUCAS Freitas: Speco de la motivon ke vi povas pensi, estas kiel en duuma vi povas reprezenti entjerojn metante 0-aj kaj la 1-aj jaroj. Lauren Carvalho: Tio estas la sekva afero. LUCAS Freitas: okej. Awesome. Lauren Carvalho: Just teni tiun penson. LUCAS Freitas: OK, mi rakontos al vi poste. Lauren Carvalho: Antaŭ ol atingi kion Lucas ĵus dirante operatoro prioritaton. Tiu estas komuna senco. Vi infanoj tion faris sufiĉe. Do, nur se io estas en krampoj, gxi okazos la unua. Ĝi estas multipliko havas prioritaton super Krome, subtraho, aĵoj kiel tio. Do fakte, nur ĉu iu volas diru al mi kio numero unu reale taksas al? Spektantaro: 27. Lauren Carvalho: 27? Jes. LUCAS Freitas: Lasu min donu frandaĵojn al homoj. Lauren Carvalho: Bone. Kio pri numero du? Kio pri numero du? Spektantaro: 22. Lauren Carvalho: 22, jes. Mi ne scias, kiu sidis kaj petis tion. Numero tri? Spektantaro: 10. Lauren Carvalho: 10, jes. Cool. Do module. Lucas, ĉu vi deziras ekspliki module? LUCAS Freitas: module estas ĉi operatoro ke estas fakte tre utila por fasko da problemoj. Se mi faras 55 module 10, kio faras ĉi ni diru, ke mi volas dividi 55 per 10. Kiel mi estas rekompenciĝita? Ĝi sentas same kiel se mi estas fakte ĝuste faras la dividon, kio estas la unua fojo ke mi atingis la entjero? Spektantaro: 5. LUCAS Freitas: 5. Kaj poste la resto estas 5, ĉu ne? Do ĝi estas kiel 5 fojojn 10 plus 5. Esence, kio module ne, ĝi provas dividu cxi tiun numeron por ĉi tiu, kaj li vidas kio estas la resto de la divido. Lauren Carvalho: Do ​​apenaŭ Revenas la resto. Do numero unu estas kio? 5. Numero du? Spektantaro: 3. Lauren Carvalho: 3. Numero tri? 0. Kaj kvar estas 1. Ekzakte. LUCAS Freitas: Simpla, ĉu ne? Lauren Carvalho: Kial ni ne preterlasi tiun nur cxar ni ne havas vere tempo, kaj la homo ŝajnas kompreni. Do jen kio Lucas estis nur parolas. LUCAS Freitas: Alia kialo kial mi uzus ints anstataŭ flosoj estas kiuj flosas estas tre malpreciza. Kaj kial ili estas malpreciza? David diris, ke por reprezenti entjero, ekzemple, ni uzos 0-aj kaj 1-oj, ĉu ne? Kaj tiam vi esence fari la multipliko, fari ĉiujn tiujn operacioj por scii kio dekuma nombro vi havas anstataŭ la binara. Kio okazas nun, se mi penas meti dekuma punktoj? Efektive, por ekzemplo, se mi havas la nombro kiel 3,33333? Ĝi sentas kiel 10 pli ol 3. Kiamaniere mi povos stoki tutan 3 estas ke mi havas post tio? Estas vere malfacile, ĉu ne? Vi ne povas simple diri al la komputilo, bona, mi havas 3, kaj tiam vi faras tion por ĉiam. Efektive la komputilo ne estas sufiĉe lertaj por tiu ĉi. Do esence ĉiu via komputilo faras estas ke ŝi provas meti tiom da ciferoj kiel ĝi povas supren al la memoro kiun vi havos. Do diru ke ĝi estas tuj diru 3,3333, kaj tio estas ĝi. Do ĝi ne povas vere esprimi precize kion tio float estas. Lauren Carvalho: Ni havas finia nombro de bitoj, kio signifas, ke ne ĉiun dekuman numeron tuj estos povos esti reprezentita precize. Kaj tiel en tiu ekzemplo, se ni estas presi el 0.1, ni estas nun impreso el 20 lokoj. LUCAS Freitas: Ĝuste kiel mi estis rakontanta vi uloj, vi povus meti iun ajn nombron. Sed se vi nur faris la du placoj, Vi ŝatus ricevi 0.10, sed se vi metos 20 lokoj, ĝi tuj montros al vi aron de-ejon ĉar tio estas, kion vi povas meti en la memoro, right? Sed ĝuste tie, ĝis la 0, kaj tiam ĝi simple meti ĝin fasko da hazardaj nombroj. Tio estas speco de kiel iuj - Lauren Carvalho: Ĉi tio estas ĉar ni estas ne povis reprezenti ĉi dekuma precize kun la nombro de bitoj ni havas. LUCAS Freitas: Kaj tiam la komputilo estas esence doni al vi rubo nombro. Ĉi tio ne estas vere la valoro de la nombro. Spektantaro: Ĝi estas tiel proksimaj kiel gxi povas akiri [inaudibles] uzante la [inaudibles]. Lauren Carvalho: Do ​​la implico de tio estas, ke ni diru ke anstataux esti 0.100014, kio ajn, kio se ĝi estis 0,0999 - bone, okej. Ni asertas, ke la efektiva respondon al ĉi tio estis 0,9999999. Tio estas tre proksima al 1, sed ĝi ne estas ekzakte 1. Ĝi estas 0,99999. Tio signifas, ke se mi prenus ke 0.999, kaj mi jxetis gxin al int, mi alvenas 0. Mi ne ricevos 1. LUCAS Freitas: Ĉar memoras, fandon el flosas al int, vi nur ignori ĉiuj dekumaj lokoj. Vi nur ignoras ilin. Tie estas nenia tia aĵo kiel rondas supren aŭ kurante suben kiam vi typecast. Efektive, ekzistas ĉi tiu funkcio kiu faras rondas, kiu estas tre grava, sed vi nur pensas, ke kiam vi faru typecasting, estas nur tuj forviŝi ĉion. Do eĉ se vi havas 0,99999, ĝi okazas por simple doni 0 se vi typecast [Inaudibles] entjero. Lauren Carvalho: Do ​​simple estu vere konsciis de flosanta punkto en precizeco, speciale kiam vi komencas uzi flosoj en Pset1. Sed la promenado tra la deziro averti vin pri tio, kiel bone. LUCAS Freitas: Kaj fakte ĝi estas vere malmola, por ekzemplo, se mi faris float respondo 1 egalas 1.0 super 10, kaj tiam flosas respondo 2 egalas 10,0 super 100.0. Ili estas la sama nombro, ĉu ne? 0.1, right? 1 pli ol 10 aŭ 10 pli ol 100. Sed nun, se mi penas vidi la egaleco, kvazaŭ respondo 1 estas egalaj respondi 2, eble ĝi ne estas vere irante esti la sama afero. Do flosoj estas speco de tia. Ili estas kiel fari egaleco.