1 00:00:00,000 --> 00:00:07,170 2 00:00:07,170 --> 00:00:09,100 >> LUCAS FREITAS: OK, tror jeg nå er vi levende. 3 00:00:09,100 --> 00:00:11,220 Velkommen til CS50 Supersection. 4 00:00:11,220 --> 00:00:12,880 Vi er mindre komfortable. 5 00:00:12,880 --> 00:00:13,870 Mitt navn er Lucas Freitas. 6 00:00:13,870 --> 00:00:16,230 Jeg er en CS50 Leder TFs. 7 00:00:16,230 --> 00:00:17,523 Dette er Lauren. 8 00:00:17,523 --> 00:00:19,002 >> LAUREN CARVALHO: Hei, jeg er Lauren. 9 00:00:19,002 --> 00:00:21,330 Jeg er også leder TF for CS50. 10 00:00:21,330 --> 00:00:24,730 >> LUCAS FREITAS: I dag har vi bare kommer å gi en oversikt over hva alt du 11 00:00:24,730 --> 00:00:28,440 gutta har lært i uke en, forhåpentligvis å gi dere en god 12 00:00:28,440 --> 00:00:32,580 følelse for hva du bør vite for oppgavesettet ett. 13 00:00:32,580 --> 00:00:34,120 >> Bare et par kunngjøringer. 14 00:00:34,120 --> 00:00:36,490 Først av alt, kontortid. 15 00:00:36,490 --> 00:00:41,580 Kontortid skjer fra mandag til torsdag i forskjellige hus i 16 00:00:41,580 --> 00:00:43,450 Annenberg hver dag. 17 00:00:43,450 --> 00:00:46,680 De er en veldig god ressurs for deg gutta til å komme og stille spørsmål, og 18 00:00:46,680 --> 00:00:49,470 snakke med TFs, og selv utveksling ideer med andre studenter. 19 00:00:49,470 --> 00:00:55,420 Så sørg for å bruke denne ressursen i din favør. 20 00:00:55,420 --> 00:00:59,790 >> Den andre tingen er CS50 Appliance. 21 00:00:59,790 --> 00:01:01,390 For den siste [uhørbart] 22 00:01:01,390 --> 00:01:04,180 dere trengte ikke å faktisk ha et apparat. 23 00:01:04,180 --> 00:01:06,910 Du bare gjorde alt i din personlige datamaskin. 24 00:01:06,910 --> 00:01:10,330 Men for dette problemet, du faktisk har å ha en virtuell maskin, så 25 00:01:10,330 --> 00:01:14,680 Husk å laste ned CS50 Apparatet og sette det opp. 26 00:01:14,680 --> 00:01:18,670 >> Og den tredje tingen er å være sikker på å starte oppgavesettet ASAP bare 27 00:01:18,670 --> 00:01:22,740 fordi det er mye lettere å finne hjelp når du er i 28 00:01:22,740 --> 00:01:23,730 begynnelsen av uken. 29 00:01:23,730 --> 00:01:27,540 Fordi folk har en tendens til å vente til siste sekund for å starte Oppgavesettet, 30 00:01:27,540 --> 00:01:29,730 og deretter gå til kontortiden, og det er mye folk. 31 00:01:29,730 --> 00:01:33,020 Der hvis du går på mandag, du kommer å se at du kan snakke med TFs 32 00:01:33,020 --> 00:01:35,870 ganske mye for hele natten, og de kommer til å være mer enn 33 00:01:35,870 --> 00:01:37,790 glad for å hjelpe deg. 34 00:01:37,790 --> 00:01:40,720 >> LAUREN CARVALHO: Kan jeg bare slutte du for bare ett sekund? 35 00:01:40,720 --> 00:01:43,330 Har alle vært i stand til å laste ned den CS50 Appliance? 36 00:01:43,330 --> 00:01:44,255 Har folk prøvd? 37 00:01:44,255 --> 00:01:47,120 >> LUCAS FREITAS: For å laste ned, ved måte, kan du få instruksjoner på 38 00:01:47,120 --> 00:01:48,045 cs50.net/appliance. 39 00:01:48,045 --> 00:01:48,817 >> LAUREN CARVALHO: Høyre. 40 00:01:48,817 --> 00:01:53,120 Og det tar en liten stund for vår sys admins for å få deg en lisens 41 00:01:53,120 --> 00:01:55,450 nøkkel, så registrer deg for gratis prøveversjon først. 42 00:01:55,450 --> 00:01:59,080 På den måten vil du ha det i 30 dager, og deretter vente på lisensnøkkelen 43 00:01:59,080 --> 00:02:02,650 som bør gi den til deg for et år. 44 00:02:02,650 --> 00:02:04,100 >> LUCAS FREITAS: Først av alt, la oss snakke litt 45 00:02:04,100 --> 00:02:06,180 om CS50 Appliance. 46 00:02:06,180 --> 00:02:10,770 Den CS50 Appliance er faktisk en virtuell maskin som du kommer til å 47 00:02:10,770 --> 00:02:15,040 kjøre på din egen datamaskin som er utgangspunktet kjører en annen datamaskin 48 00:02:15,040 --> 00:02:16,010 inni din egen datamaskin. 49 00:02:16,010 --> 00:02:16,800 Som er ganske kult. 50 00:02:16,800 --> 00:02:19,420 Og faktisk er det brukt overalt. 51 00:02:19,420 --> 00:02:23,150 Folk som til tech ville vite at Dette blir brukt hele tiden. 52 00:02:23,150 --> 00:02:23,250 du? 53 00:02:23,250 --> 00:02:26,200 Kan ha flere datamaskiner i én enhet. 54 00:02:26,200 --> 00:02:27,760 >> La oss faktisk ta en titt på Appliance. 55 00:02:27,760 --> 00:02:32,680 56 00:02:32,680 --> 00:02:36,640 Når du går til apparatet etter registrering, du er nødt til å 57 00:02:36,640 --> 00:02:42,035 sette navnet ditt og logge på Harvard slik at vi kan få deg all registrert. 58 00:02:42,035 --> 00:02:46,570 Du kommer til å se i utgangspunktet bare en tapet, og deretter hjem og Trash, 59 00:02:46,570 --> 00:02:48,980 og deretter disse små ikoner. 60 00:02:48,980 --> 00:02:51,930 Dette tre ikoner er faktisk den mest viktige ting som du kan ha i 61 00:02:51,930 --> 00:02:53,000 din Appliance. 62 00:02:53,000 --> 00:03:00,270 >> Den første er gedit, som er en tekst redaktør, akkurat som Notepad eller lignende 63 00:03:00,270 --> 00:03:01,440 noen form for tekst editor. 64 00:03:01,440 --> 00:03:09,750 Det er bare noe som vi bruker til å skrive kode og deretter gjøre ting med det. 65 00:03:09,750 --> 00:03:11,770 >> Den andre tingen som vi har her er Chrome. 66 00:03:11,770 --> 00:03:13,910 Så hvis du trenger å bruke internett i Appliance, er at 67 00:03:13,910 --> 00:03:15,030 hva du kan bruke. 68 00:03:15,030 --> 00:03:22,000 >> Og det tredje er terminalen som er faktisk veldig søt. 69 00:03:22,000 --> 00:03:26,420 Folk vanligvis er litt redd for terminalen fordi det er dette veldig 70 00:03:26,420 --> 00:03:32,320 gammeldags program der du bare utgangspunktet skriver alt med 71 00:03:32,320 --> 00:03:32,940 tastaturet. 72 00:03:32,940 --> 00:03:34,730 Det er ikke mye interaksjon med musen. 73 00:03:34,730 --> 00:03:39,780 Men faktisk terminalen gjør veldig gode ting. 74 00:03:39,780 --> 00:03:43,990 >> Først av alt, la oss bare gå gjennom noen kommandoer som du 75 00:03:43,990 --> 00:03:48,765 kan bruke i terminalen. 76 00:03:48,765 --> 00:03:51,995 >> LAUREN CARVALHO: Og gjerne stoppe oss dersom du har noen spørsmål. 77 00:03:51,995 --> 00:03:52,830 >> LUCAS FREITAS: Yeah. 78 00:03:52,830 --> 00:04:01,950 Så den første kommandoen som vi har for terminalen er ls. 79 00:04:01,950 --> 00:04:06,450 ls utgangspunktet betyr liste alt, alt filene og alle styremedlemmer, 80 00:04:06,450 --> 00:04:09,540 at jeg har på det stedet jeg er på. 81 00:04:09,540 --> 00:04:15,200 Så hvis jeg gjør ls her, kommer jeg til å se at jeg har noen kataloger. 82 00:04:15,200 --> 00:04:18,670 Jeg har skrivebordet, nedlastingene, loggene, og de VHOSTs. 83 00:04:18,670 --> 00:04:21,260 De er i blått, fordi de er alle kataloger. 84 00:04:21,260 --> 00:04:24,160 >> Da har du noen andre filer. 85 00:04:24,160 --> 00:04:27,840 Du har som hei og hello.c, som er bare filer, og de er i 86 00:04:27,840 --> 00:04:28,910 forskjellige farger. 87 00:04:28,910 --> 00:04:33,960 Så dette er en svært viktig kommando bare du kan se hva som er filene 88 00:04:33,960 --> 00:04:37,690 og kataloger som du har i katalogen som 89 00:04:37,690 --> 00:04:39,410 du er på i terminalen. 90 00:04:39,410 --> 00:04:44,580 Når du ser jharvard @ apparatet og deretter den lille symbol der, 91 00:04:44,580 --> 00:04:49,185 tilde, det betyr bare at det er katalog som du er i øyeblikket. 92 00:04:49,185 --> 00:04:52,970 >> LAUREN CARVALHO: Så skrive ls er nesten som å klikke på mappen 93 00:04:52,970 --> 00:04:57,380 som er oppført der, i det viser du alt innholdet som er 94 00:04:57,380 --> 00:04:58,886 i denne mappen. 95 00:04:58,886 --> 00:05:04,232 >> PUBLIKUM: Er det tekst etter hello.c? 96 00:05:04,232 --> 00:05:10,070 >> LAUREN CARVALHO: Åh, kan du ikke se at, fordi det er blå. 97 00:05:10,070 --> 00:05:12,490 >> LUCAS FREITAS: Det står logger og VHOSTs. 98 00:05:12,490 --> 00:05:14,450 >> LAUREN CARVALHO: De er bare andre mapper. 99 00:05:14,450 --> 00:05:16,890 Jeg beklager, det er veldig vanskelig å se. 100 00:05:16,890 --> 00:05:19,090 Kanskje hvis vi slått av lysene? 101 00:05:19,090 --> 00:05:23,002 Colton, har du lyst til å prøve og finne lysbryteren? 102 00:05:23,002 --> 00:05:24,960 Beklager. 103 00:05:24,960 --> 00:05:25,675 Jeg tenkte ikke på det. 104 00:05:25,675 --> 00:05:27,340 >> LUCAS FREITAS: Men det er i utgangspunktet - 105 00:05:27,340 --> 00:05:30,310 ja, hvis du kunne - 106 00:05:30,310 --> 00:05:32,278 >> LAUREN CARVALHO: Zoom inn skjermen din. 107 00:05:32,278 --> 00:05:34,738 >> LUCAS FREITAS: Jeg gjør ikke har denne funksjonen. 108 00:05:34,738 --> 00:05:35,988 >> LAUREN CARVALHO: [uhørbart]. 109 00:05:35,988 --> 00:05:39,528 110 00:05:39,528 --> 00:05:40,001 OK. 111 00:05:40,001 --> 00:05:44,270 Vel, det er bare en masse naturlig lys i dette rommet også. 112 00:05:44,270 --> 00:05:48,726 >> LUCAS FREITAS: La oss bare anta at er det to andre kataloger der. 113 00:05:48,726 --> 00:05:49,780 >> LAUREN CARVALHO: Bare bære med oss. 114 00:05:49,780 --> 00:05:54,200 Dette er den eneste delen som du vil være å se på terminalen. 115 00:05:54,200 --> 00:06:00,160 >> LUCAS FREITAS: Den neste kommandoen er utgangspunktet kanskje du ønsker å organisere 116 00:06:00,160 --> 00:06:01,080 filene dine - 117 00:06:01,080 --> 00:06:05,015 for eksempel, alle dine C-filer i ett katalog-men du har ikke en 118 00:06:05,015 --> 00:06:07,180 katalogen bare for C-filer ennå. 119 00:06:07,180 --> 00:06:11,590 Du kan i utgangspunktet lage en katalog ved hjelp av terminalen, og, noe som er 120 00:06:11,590 --> 00:06:15,670 det samme som å høyreklikke og si ny mappe. 121 00:06:15,670 --> 00:06:20,640 Kommandoen er lage katalogen, som er mkdir, så i utgangspunktet "make" og 122 00:06:20,640 --> 00:06:21,260 "Katalog." 123 00:06:21,260 --> 00:06:22,680 >> Og så kan du sette navnet på katalogen. 124 00:06:22,680 --> 00:06:32,490 La oss si at jeg ønsket å bli kalt, Jeg vet ikke, la oss si pset1 Doing 125 00:06:32,490 --> 00:06:33,900 dette, jeg bare laget en katalog. 126 00:06:33,900 --> 00:06:35,910 La oss bare sjekke at det er der. 127 00:06:35,910 --> 00:06:40,870 Så hvis jeg gjør ls, nå ser jeg logger, og deretter pset1, og deretter VHOSTs. 128 00:06:40,870 --> 00:06:44,360 Så jeg har den nye katalogen der. 129 00:06:44,360 --> 00:06:46,670 >> Og så etter at du har en ny katalog, kanskje du ønsker å navigere 130 00:06:46,670 --> 00:06:51,760 inn i det, så neste kommando denne cd, som bare utgangspunktet betyr gå til en 131 00:06:51,760 --> 00:06:53,400 bestemt katalog. 132 00:06:53,400 --> 00:06:58,377 Så hvis jeg ønsker å gå til pset1, Jeg kan bare gjøre cd pset1. 133 00:06:58,377 --> 00:07:01,550 >> LAUREN CARVALHO: cd står for endring katalog, [uhørbart] stand til 134 00:07:01,550 --> 00:07:02,230 husk det. 135 00:07:02,230 --> 00:07:05,460 >> LUCAS FREITAS: Og nå ser du at i stedet for bare å ha jharvard 136 00:07:05,460 --> 00:07:09,150 apparatet, har jeg jharvard apparatet, og deretter pset1, fordi det viser 137 00:07:09,150 --> 00:07:14,150 meg hvor jeg er i denne datamaskinen. 138 00:07:14,150 --> 00:07:17,510 >> Nå hvis jeg ønsker å gå tilbake til katalog som var før dette, jeg 139 00:07:17,510 --> 00:07:22,950 kan gjøre en cd prikk prikk, noe som betyr bare gå til katalogen som jeg var før, 140 00:07:22,950 --> 00:07:26,290 som forelder til dette katalog, i utgangspunktet. 141 00:07:26,290 --> 00:07:30,460 Og nå ser jeg at jeg er tilbake til jharvard. 142 00:07:30,460 --> 00:07:36,050 >> Det neste som jeg kan gjøre det er rm, som er å fjerne en fil. 143 00:07:36,050 --> 00:07:39,590 For eksempel, la oss først gjøre ls for å se hva jeg har her. 144 00:07:39,590 --> 00:07:41,790 Jeg har hei og hello.c. 145 00:07:41,790 --> 00:07:43,780 La oss si at jeg ønsker å fjerne dem. 146 00:07:43,780 --> 00:07:48,280 Jeg kan gjøre rm hallo. 147 00:07:48,280 --> 00:07:52,770 Det kommer til å si "fjerne vanlig fil hallo? "Og jeg sier" ja ". Og nå hvis jeg 148 00:07:52,770 --> 00:07:56,410 gjøre ls, ser jeg at det er ikke der lenger. 149 00:07:56,410 --> 00:07:59,700 >> Hvis jeg prøver å bruke rm for en katalog, skjønt, det er ikke til 150 00:07:59,700 --> 00:08:00,800 å la deg gjøre noe. 151 00:08:00,800 --> 00:08:02,960 Det kommer til å si, hei, du kan ikke fjerne en katalog. 152 00:08:02,960 --> 00:08:08,100 Så har vi dette andre komme kalt rmdir, som bare utgangspunktet betyr 153 00:08:08,100 --> 00:08:09,800 fjerne katalogen. 154 00:08:09,800 --> 00:08:12,842 Jeg kan for eksempel fjerne pset1. 155 00:08:12,842 --> 00:08:15,770 Og hvis jeg gjør ls, gjør jeg ikke ha det lenger. 156 00:08:15,770 --> 00:08:18,430 >> Eventuelle spørsmål om dette? 157 00:08:18,430 --> 00:08:20,200 Nei? 158 00:08:20,200 --> 00:08:20,595 Yeah? 159 00:08:20,595 --> 00:08:23,954 >> PUBLIKUM: Er det viktig at du lar et mellomrom etter - når du 160 00:08:23,954 --> 00:08:26,540 begynner å skrive noe i? 161 00:08:26,540 --> 00:08:26,830 >> LUCAS FREITAS: Yeah. 162 00:08:26,830 --> 00:08:32,080 Hvis jeg gjør som CD og katalogen, Jeg må sette inn et mellomrom. 163 00:08:32,080 --> 00:08:33,350 Hva plass er det du snakker om? 164 00:08:33,350 --> 00:08:34,979 >> LAUREN CARVALHO: Avstanden mellom cd og [uhørbart]. 165 00:08:34,979 --> 00:08:37,710 >> LUCAS FREITAS: Yeah, må du sette mellomrom fordi cd er den 166 00:08:37,710 --> 00:08:42,770 kommando, og deretter den neste strengen som du typen er i utgangspunktet katalogen. 167 00:08:42,770 --> 00:08:45,020 Så det er som et argument. 168 00:08:45,020 --> 00:08:45,360 Yeah? 169 00:08:45,360 --> 00:08:47,952 >> PUBLIKUM: Når du fører opp, alle de er ulike kataloger, ikke sant? 170 00:08:47,952 --> 00:08:50,125 >> LUCAS FREITAS: Ja, de er i katalogen. 171 00:08:50,125 --> 00:08:53,524 >> PUBLIKUM: Hva er forskjellene blant katalogene? 172 00:08:53,524 --> 00:08:55,390 >> LUCAS FREITAS: De er bare ulike mapper. 173 00:08:55,390 --> 00:08:57,366 Directory er en mappe i datamaskinen. 174 00:08:57,366 --> 00:08:58,120 >> PUBLIKUM: Åpne mappe. 175 00:08:58,120 --> 00:09:00,140 >> LUCAS FREITAS: Ja, det er bare en åpen mappe. 176 00:09:00,140 --> 00:09:03,400 >> LAUREN Carvalho: Over her, de som er i blått er faktiske 177 00:09:03,400 --> 00:09:07,107 kataloger som du kan komme inn og deretter se en haug med ting som er 178 00:09:07,107 --> 00:09:10,248 i det, noe som er uheldig fordi du ikke kan faktisk lese 179 00:09:10,248 --> 00:09:11,290 seg i blått. 180 00:09:11,290 --> 00:09:16,166 Og de i hvitt er bare filer som er innenfor den gjeldende katalogen. 181 00:09:16,166 --> 00:09:17,870 >> LUCAS Freitas: Så kataloger er mapper. 182 00:09:17,870 --> 00:09:18,810 De andre som er filer. 183 00:09:18,810 --> 00:09:22,810 >> PUBLIKUM: Hva er kommandoen å nullstille den eller fjerne den? 184 00:09:22,810 --> 00:09:23,650 LUCAS FREITAS: Hvis du vil fjerne? 185 00:09:23,650 --> 00:09:24,362 LAUREN CARVALHO: Hvis du vil fjerne? 186 00:09:24,362 --> 00:09:27,985 LUCAS FREITAS: Jeg tror det er "klart". Yeah. 187 00:09:27,985 --> 00:09:32,370 Så du bare skrive klart om skjermen er for rotete. 188 00:09:32,370 --> 00:09:33,700 Eventuelle andre spørsmål? 189 00:09:33,700 --> 00:09:36,720 Og du vil lære en haug med andre kommandoer bare naturlig under 190 00:09:36,720 --> 00:09:38,405 semester fordi de er svært nyttig. 191 00:09:38,405 --> 00:09:42,380 192 00:09:42,380 --> 00:09:46,155 >> Så nå la oss snakke om kompilering. 193 00:09:46,155 --> 00:09:51,510 194 00:09:51,510 --> 00:09:54,730 Vi snakket om pseudo og kildekode og objektkode. 195 00:09:54,730 --> 00:09:59,020 Og det er mye av koder, og kanskje dere er forvirret om det. 196 00:09:59,020 --> 00:10:02,190 La oss snakke litt om hva skjer når du skriver et program, 197 00:10:02,190 --> 00:10:06,620 og du kompilere den, og det blir en kjørbar fil. 198 00:10:06,620 --> 00:10:10,190 De er alle ord at dere sikkert hørt, og kanskje du ikke er 199 00:10:10,190 --> 00:10:12,130 helt sikker på hva som skjer. 200 00:10:12,130 --> 00:10:15,540 >> La oss si, for eksempel, som jeg ønsker å skrive et program som sier "hei." Den 201 00:10:15,540 --> 00:10:19,670 første som kommer i tankene dine er du slags prøve å tenke på hvordan du er 202 00:10:19,670 --> 00:10:23,000 kommer til å gjøre det i tankene dine, og du tenker kanskje på engelsk eller 203 00:10:23,000 --> 00:10:25,550 et annet språk, som naturlig språk, sannsynligvis. 204 00:10:25,550 --> 00:10:28,770 Og så tenker du, vel, hvis jeg vil, for eksempel skrive et program som 205 00:10:28,770 --> 00:10:32,630 sier "hallo," Jeg vil starte et program, Jeg vil skrive hei, og deretter vil jeg 206 00:10:32,630 --> 00:10:35,270 avslutte programmet. 207 00:10:35,270 --> 00:10:36,350 Dette er pseudo. 208 00:10:36,350 --> 00:10:41,740 Dette er bare utgangspunktet du prøver å komme opp med en sekvens av hendelser 209 00:10:41,740 --> 00:10:46,510 at du kommer til å gjøre for å være i stand til å skrive et program. 210 00:10:46,510 --> 00:10:49,610 >> Da har du kildekoden, og kildekoden ikke må 211 00:10:49,610 --> 00:10:53,240 spesielt være i C. Vi snakker om kildekoden i C fordi det er 212 00:10:53,240 --> 00:10:56,760 språket vi lærer, men selvfølgelig Koden kan være ganske mye noen 213 00:10:56,760 --> 00:10:59,160 programmeringsspråk som du har. 214 00:10:59,160 --> 00:11:01,230 Senere i semesteret, du kommer å lære andre språk. 215 00:11:01,230 --> 00:11:03,230 Det er også kildekoden. 216 00:11:03,230 --> 00:11:07,380 >> For eksempel her, dette er min kilde kode, og da er jeg blant annet en 217 00:11:07,380 --> 00:11:10,170 bibliotek, og deretter starter jeg viktigste, og så skriver jeg ut. 218 00:11:10,170 --> 00:11:14,510 Og Laura kommer til å snakke litt litt om alt dette. 219 00:11:14,510 --> 00:11:16,190 Dette er altså kildekoden. 220 00:11:16,190 --> 00:11:19,590 >> Og hva er den objektkode? 221 00:11:19,590 --> 00:11:22,500 Objektet er en haug med nuller og de, i utgangspunktet. 222 00:11:22,500 --> 00:11:27,680 Hva skjer er at du i utgangspunktet har pseudo, som er alt på engelsk. 223 00:11:27,680 --> 00:11:29,020 Og jeg mener, forstår du det. 224 00:11:29,020 --> 00:11:31,260 Sannsynligvis dine venner forstår det, og de fleste ville 225 00:11:31,260 --> 00:11:32,560 forstå ideen. 226 00:11:32,560 --> 00:11:36,770 Men datamaskiner er veldig dumt, og de forstår ikke engelsk, så du 227 00:11:36,770 --> 00:11:41,320 har oversette det til noe, vanligvis oversatt til noen 228 00:11:41,320 --> 00:11:42,460 programmeringsspråk. 229 00:11:42,460 --> 00:11:46,840 >> Og du kan tenke på et programmerings språket som typen som et språk 230 00:11:46,840 --> 00:11:50,970 at du forteller datamaskinen hvordan å snakke og å forstå. 231 00:11:50,970 --> 00:11:54,160 Du er i utgangspunktet å skrive noe i et språk som både av deg og din 232 00:11:54,160 --> 00:11:55,190 Datamaskinen forstå. 233 00:11:55,190 --> 00:11:56,470 Det er kildekoden. 234 00:11:56,470 --> 00:12:00,580 Så skal danne pseudo til kilden kode, er det opp til deg. 235 00:12:00,580 --> 00:12:03,130 Det er i utgangspunktet det du gjør programmet. 236 00:12:03,130 --> 00:12:06,740 >> Men problemet er at Datamaskinen gjør ikke engang 237 00:12:06,740 --> 00:12:08,360 forstå programmeringsspråk. 238 00:12:08,360 --> 00:12:10,320 Det forstår ikke kildekoden i det hele tatt. 239 00:12:10,320 --> 00:12:12,520 Det faktisk bare forstår nuller og enere. 240 00:12:12,520 --> 00:12:16,570 Så har vi dette svært magiske tingen kalt en kompilator, som i utgangspunktet er 241 00:12:16,570 --> 00:12:19,755 kommer til å bli kilden heter at du skrev på et språk både deg 242 00:12:19,755 --> 00:12:25,320 og datamaskinen snakke, og nå er du kommer til å forvandle det i 243 00:12:25,320 --> 00:12:26,270 nuller og enere. 244 00:12:26,270 --> 00:12:30,860 Så i utgangspunktet hva kompilatoren gjør er det blir kildekoden, i dette tilfelle C, 245 00:12:30,860 --> 00:12:34,100 det kommer til å forvandle det til nuller og de som maskinen 246 00:12:34,100 --> 00:12:37,440 forstår og kan gjøre en kjørbar fil ut av det. 247 00:12:37,440 --> 00:12:40,900 >> Betyr det fornuftig? 248 00:12:40,900 --> 00:12:45,300 Du kan bare tenke på kompilatoren som eller annen form for oversetter som er 249 00:12:45,300 --> 00:12:50,280 hjelper du forklare til datamaskinen nøyaktig hva det er ment å gjøre. 250 00:12:50,280 --> 00:12:52,310 >> Men hvordan kompilere jeg. 251 00:12:52,310 --> 00:12:59,680 La oss gå tilbake til Appliance, og la oss si at jeg gjør det programmet. 252 00:12:59,680 --> 00:13:04,220 Først skal jeg lage en katalog her, og jeg kommer til å kalle det 253 00:13:04,220 --> 00:13:11,130 "Praksis." Nå kommer jeg til å navigere til katalogen, så cd praksis. 254 00:13:11,130 --> 00:13:13,210 Nå er jeg inne i praksis. 255 00:13:13,210 --> 00:13:16,860 >> Nå ønsker jeg å starte gedit, så hvordan gjør jeg det? 256 00:13:16,860 --> 00:13:21,920 Jeg kan enten klikke her, eller kan jeg bare bokstavelig type "gedit", og det kommer 257 00:13:21,920 --> 00:13:24,290 å åpne for meg. 258 00:13:24,290 --> 00:13:28,100 >> Nå kommer jeg til å skrive mitt program, så akkurat hva jeg skrev i raset. 259 00:13:28,100 --> 00:13:30,360 Jeg erklære et bibliotek. 260 00:13:30,360 --> 00:13:35,440 Jeg gjør int main, annullert. 261 00:13:35,440 --> 00:13:39,180 Og nå er jeg gjør printf, hallo. 262 00:13:39,180 --> 00:13:46,530 263 00:13:46,530 --> 00:13:50,170 Nå kommer jeg til å lagre dette. 264 00:13:50,170 --> 00:13:53,665 La meg sette det ut i praksis, og Jeg kommer til å kalle dette hello.c. 265 00:13:53,665 --> 00:13:57,710 266 00:13:57,710 --> 00:13:59,590 Så nå er det lagret. 267 00:13:59,590 --> 00:14:03,250 >> Hvis jeg ønsker å kompilere den, jeg faktisk kan gjøre det på to forskjellige steder. 268 00:14:03,250 --> 00:14:07,090 Jeg kan enten gjøre det i et terminalvindu, så dette stor en, eller du kan 269 00:14:07,090 --> 00:14:09,860 bruke gedit som faktisk har en terminalvinduet her. 270 00:14:09,860 --> 00:14:17,890 Så du kan veldig enkelt bare gjøre koden din, og så kan du bare skrive 271 00:14:17,890 --> 00:14:20,670 uansett her, og prøve å kompilere den. 272 00:14:20,670 --> 00:14:23,450 >> Så hvordan kompilere jeg koden? 273 00:14:23,450 --> 00:14:27,495 Den enkleste måten som vi har, er ved hjelp tjene, som er en funksjon som 274 00:14:27,495 --> 00:14:29,590 er i utgangspunktet kommer til å kompilere koden din. 275 00:14:29,590 --> 00:14:34,170 Du må bare si gjøre hei, så "Make" og navnet på programmet. 276 00:14:34,170 --> 00:14:35,420 >> Oops. 277 00:14:35,420 --> 00:14:38,250 278 00:14:38,250 --> 00:14:39,280 Dette er pinlig. 279 00:14:39,280 --> 00:14:41,738 >> LAUREN CARVALHO: Kan du [uhørbart]? 280 00:14:41,738 --> 00:14:45,182 281 00:14:45,182 --> 00:14:45,990 >> LUCAS FREITAS: Beklager. 282 00:14:45,990 --> 00:14:49,960 Jeg gjorde ikke lagre den i riktig katalog. 283 00:14:49,960 --> 00:14:52,130 Kom å øve, og nå lagre det som hello.c. 284 00:14:52,130 --> 00:14:54,750 Jeg beklager. 285 00:14:54,750 --> 00:14:56,250 Nå er det lagret. 286 00:14:56,250 --> 00:14:58,300 >> La meg bare gjøre ls og være sikker på at det er her. 287 00:14:58,300 --> 00:14:59,460 OK, nå er den her. 288 00:14:59,460 --> 00:15:05,930 Så nå hvis jeg gjør hallo, det spytter en masse ting, men da er det bare gir 289 00:15:05,930 --> 00:15:08,870 meg en annen linje for terminalen, som vil si at det var vellykket. 290 00:15:08,870 --> 00:15:13,160 Så nå hvis jeg gjør en ls igjen, jeg faktisk se i denne filen i grønt, som er 291 00:15:13,160 --> 00:15:15,470 kjørbar fil. 292 00:15:15,470 --> 00:15:21,700 >> Og så hvis jeg ønsker å kjøre den, alt som Jeg trenger å gjøre er dot slash hallo. 293 00:15:21,700 --> 00:15:25,830 Det kommer til å si hei til høyre her, så det er akkurat det jeg spør det til. 294 00:15:25,830 --> 00:15:29,620 >> Det er én måte å samle inn, som bruker klang. 295 00:15:29,620 --> 00:15:35,740 Clang er bare en kompilator som vi har, og det er en litt mer detaljert til 296 00:15:35,740 --> 00:15:36,390 kompilere den. 297 00:15:36,390 --> 00:15:40,180 Men det fungerer like bra. 298 00:15:40,180 --> 00:15:46,810 Så hvis jeg gjør klang, og deretter-o, og deretter navnet som jeg ønsker å gi til 299 00:15:46,810 --> 00:15:50,400 den kjørbare filen, så la oss si "Hallo". Og deretter filen som jeg vil 300 00:15:50,400 --> 00:15:53,460 å kompilere, hello.c. 301 00:15:53,460 --> 00:15:55,900 Det er også kommer til å kompilere. 302 00:15:55,900 --> 00:15:59,020 Og du har filen her, og Jeg kan bare kjøre den også. 303 00:15:59,020 --> 00:16:00,610 Så både av dem fungerer. 304 00:16:00,610 --> 00:16:03,270 >> Betyr det fornuftig? 305 00:16:03,270 --> 00:16:06,020 Eventuelle spørsmål? 306 00:16:06,020 --> 00:16:09,020 >> PUBLIKUM: Kan du zoome i en liten bit? 307 00:16:09,020 --> 00:16:09,913 >> LUCAS FREITAS: Sorry? 308 00:16:09,913 --> 00:16:11,135 >> PUBLIKUM: Zoom inn? 309 00:16:11,135 --> 00:16:13,310 >> LAUREN CARVALHO: Jeg tror du kan bare komman pluss. 310 00:16:13,310 --> 00:16:14,295 >> LUCAS FREITAS: Command hva? 311 00:16:14,295 --> 00:16:16,060 >> LAUREN CARVALHO: Command pluss. 312 00:16:16,060 --> 00:16:17,000 >> LUCAS FREITAS: Nei. 313 00:16:17,000 --> 00:16:19,350 >> LAUREN CARVALHO: Å, det er ikke kommer til å jobbe fordi - 314 00:16:19,350 --> 00:16:25,548 det er fordi vi setter oppløsningen for denne tingen. 315 00:16:25,548 --> 00:16:27,450 >> LUCAS FREITAS: Jeg gjør ikke tror vi kan zoome inn 316 00:16:27,450 --> 00:16:30,852 317 00:16:30,852 --> 00:16:34,130 Ja, vi kan ikke zoome. 318 00:16:34,130 --> 00:16:36,200 Har du et annet spørsmål? 319 00:16:36,200 --> 00:16:36,680 Unnskyld. 320 00:16:36,680 --> 00:16:39,170 >> PUBLIKUM: Kan du gjenta klang? 321 00:16:39,170 --> 00:16:40,630 >> LUCAS FREITAS: Den klang? 322 00:16:40,630 --> 00:16:44,190 Clang er det samme merke, men den Forskjellen er at først skal jeg 323 00:16:44,190 --> 00:16:48,460 skrive klang, som er kommandoen, så jeg kommer til å gjøre -0, alt, noe som er 324 00:16:48,460 --> 00:16:51,680 akkurat hva vi kommer til å lære senere som et flagg. 325 00:16:51,680 --> 00:16:54,440 Så bare tenk at du alltid nødt til å sette the-o. 326 00:16:54,440 --> 00:16:58,690 >> Og da først, du kommer til å sette navnet på den kjørbare filen, 327 00:16:58,690 --> 00:17:00,680 utgangspunktet filen som du er skal lage. 328 00:17:00,680 --> 00:17:06,430 Så jeg kan si, for eksempel, hello2 og deretter filen som jeg ønsker å sette sammen, 329 00:17:06,430 --> 00:17:07,800 som er. c. filen. 330 00:17:07,800 --> 00:17:09,240 Så det er hello.c. 331 00:17:09,240 --> 00:17:10,871 Betyr det fornuftig? 332 00:17:10,871 --> 00:17:12,635 >> PUBLIKUM: Hei hva? 333 00:17:12,635 --> 00:17:13,076 Hva er det? 334 00:17:13,076 --> 00:17:15,960 >> LUCAS FREITAS: hello.c. 335 00:17:15,960 --> 00:17:19,849 Og hvis jeg kompilere den, og hvis Jeg vet ls, jeg har også en 336 00:17:19,849 --> 00:17:22,010 hello2 at jeg bare kompilert. 337 00:17:22,010 --> 00:17:26,339 Og hvis jeg prøver å kjøre den, kommer det til å gjøre akkurat det samme som hallo, 338 00:17:26,339 --> 00:17:27,089 bare skrive hei. 339 00:17:27,089 --> 00:17:31,660 >> PUBLIKUM: Hvordan komme til gjøre du kan sette hello.c etter? 340 00:17:31,660 --> 00:17:33,880 >> LUCAS FREITAS: I make, du trenger ikke å sette den. c.. 341 00:17:33,880 --> 00:17:36,140 I make, du bare si det navnet på programmet. 342 00:17:36,140 --> 00:17:37,750 Du trenger ikke å si. C.. 343 00:17:37,750 --> 00:17:39,020 Men for klang, bør du. 344 00:17:39,020 --> 00:17:44,040 >> PUBLIKUM: Med klang gjør du også må legge til [uhørbart] 345 00:17:44,040 --> 00:17:44,480 >> LAUREN CARVALHO: Yeah. 346 00:17:44,480 --> 00:17:46,180 Så har du også til biblioteket. 347 00:17:46,180 --> 00:17:51,170 >> LUCAS FREITAS: Ja, det er noe vi kommer til å bruke senere. 348 00:17:51,170 --> 00:17:54,850 Det kalles linking, og jeg tror vi er kommer til å snakke om det senere. 349 00:17:54,850 --> 00:17:55,930 Et annet spørsmål? 350 00:17:55,930 --> 00:17:59,927 >> PUBLIKUM: Har du satt en prikk slash klang? 351 00:17:59,927 --> 00:18:01,060 >> LUCAS FREITAS: Nei. 352 00:18:01,060 --> 00:18:06,040 Den dot slash er bare å åpne den kjørbare filen. 353 00:18:06,040 --> 00:18:09,440 Så klang, du bare skrive "klang", og så hvis du ønsker å åpne 354 00:18:09,440 --> 00:18:12,640 kjørbar fil som du bare kompilert, så trenger du dot 355 00:18:12,640 --> 00:18:13,780 slash og navnet. 356 00:18:13,780 --> 00:18:15,100 Betyr det fornuftig? 357 00:18:15,100 --> 00:18:18,635 358 00:18:18,635 --> 00:18:22,435 >> PUBLIKUM: Hvis du skulle bare endring [Uhørbart] til hei verden, gjør du 359 00:18:22,435 --> 00:18:23,870 måtte rekompilere det? 360 00:18:23,870 --> 00:18:24,750 >> LUCAS FREITAS: Yeah. 361 00:18:24,750 --> 00:18:36,650 hvis jeg ønsker å si, for eksempel, "hallo det, "Jeg kan bare lagre det nå, og jeg 362 00:18:36,650 --> 00:18:38,020 bare kompilere den på nytt. 363 00:18:38,020 --> 00:18:41,910 Så la meg gjøre en make hallo. 364 00:18:41,910 --> 00:18:48,490 Og hvis jeg gjør hallo, det kommer til å sier "hello there." Gir mening? 365 00:18:48,490 --> 00:18:50,280 Eventuelle andre spørsmål? 366 00:18:50,280 --> 00:18:54,384 >> PUBLIKUM: Har du å inkludere standard I / O for å koordinere arbeidet? 367 00:18:54,384 --> 00:18:55,480 >> LUCAS FREITAS: Yeah. 368 00:18:55,480 --> 00:18:58,050 Den standard I / O er i utgangspunktet Biblioteket som har en 369 00:18:58,050 --> 00:19:00,050 implementering for printf. 370 00:19:00,050 --> 00:19:03,450 371 00:19:03,450 --> 00:19:06,910 Slik at ting rett på topp inkluderer stdio. 372 00:19:06,910 --> 00:19:11,920 Det er blant annet et bibliotek som i utgangspunktet har en haug med forskjellig 373 00:19:11,920 --> 00:19:13,260 verktøy som du kan bruke. 374 00:19:13,260 --> 00:19:13,480 en? 375 00:19:13,480 --> 00:19:17,820 Av dem er printf som er en funksjon som i utgangspunktet utskrifter 376 00:19:17,820 --> 00:19:21,290 meldinger til skjermen. 377 00:19:21,290 --> 00:19:23,200 >> Eventuelle andre spørsmål? 378 00:19:23,200 --> 00:19:24,700 Nei? 379 00:19:24,700 --> 00:19:25,060 OK. 380 00:19:25,060 --> 00:19:31,620 Så nå la oss snakke om - 381 00:19:31,620 --> 00:19:33,948 >> LAUREN CARVALHO: La oss bare gå til stilen guide. 382 00:19:33,948 --> 00:19:35,896 Ønsker du å bare finne det her inne? 383 00:19:35,896 --> 00:19:37,880 >> LUCAS FREITAS: Så vi skal å snakke om stil. 384 00:19:37,880 --> 00:19:47,006 385 00:19:47,006 --> 00:19:50,430 >> LAUREN CARVALHO: Oh, David førte ikke. 386 00:19:50,430 --> 00:19:51,230 OK. 387 00:19:51,230 --> 00:19:53,870 Hvorfor kan ikke vi komme tilbake til stil helt på slutten? 388 00:19:53,870 --> 00:19:56,220 Det har faktisk blitt oppdatert som vi snakker. 389 00:19:56,220 --> 00:19:56,810 >> LUCAS FREITAS: Yeah. 390 00:19:56,810 --> 00:19:58,300 La oss vei for David å fullføre det. 391 00:19:58,300 --> 00:20:07,150 392 00:20:07,150 --> 00:20:08,600 >> LAUREN CARVALHO: Can vi bytter egentlig? 393 00:20:08,600 --> 00:20:14,920 394 00:20:14,920 --> 00:20:17,200 >> Så jeg håper alle har vært nyter Scratch. 395 00:20:17,200 --> 00:20:21,950 Dessverre, er det på tide å bevege seg bort fra dette - 396 00:20:21,950 --> 00:20:25,280 dessverre er det på tide å bevege seg bort fra disse ganske blokkprogrammering 397 00:20:25,280 --> 00:20:28,530 videre til C. Men heldigvis, alt av programmering konstruerer at du har 398 00:20:28,530 --> 00:20:32,370 jobbet med i Scratch er direkte oversettbare til C, og vi er 399 00:20:32,370 --> 00:20:35,130 kommer til å begynne å lære om noen av dem akkurat nå. 400 00:20:35,130 --> 00:20:39,200 La oss først snakke om forholdene i boolske uttrykk. 401 00:20:39,200 --> 00:20:41,944 >> Denne kjører på reserve batteristrøm. 402 00:20:41,944 --> 00:20:43,912 >> LUCAS FREITAS: Hvordan er som ikke fungerer? 403 00:20:43,912 --> 00:20:47,850 404 00:20:47,850 --> 00:20:48,010 OK. 405 00:20:48,010 --> 00:20:50,256 Du går dit, jeg kommer til å få - 406 00:20:50,256 --> 00:20:53,700 407 00:20:53,700 --> 00:20:57,390 >> LAUREN CARVALHO: Så forholdene er viktig fordi de tillater oss å 408 00:20:57,390 --> 00:21:00,588 innføre logikk inn i våre programmer. 409 00:21:00,588 --> 00:21:04,620 Her er et eksempel på en tilstand i en C-program. 410 00:21:04,620 --> 00:21:06,130 La oss oppmerksom på hvordan dette - 411 00:21:06,130 --> 00:21:11,324 Så denne tilstanden blokk rett her, dette printf uttalelse vil ikke utføre 412 00:21:11,324 --> 00:21:14,860 mindre tilstanden innenfor parenteser, n er større enn 0, 413 00:21:14,860 --> 00:21:16,800 evalueres til sann. 414 00:21:16,800 --> 00:21:20,780 >> Nå er alle betingelsene i f uttalelser er boolske uttrykk, 415 00:21:20,780 --> 00:21:22,970 noe som betyr at det er bare to alternativer. 416 00:21:22,970 --> 00:21:26,856 De kunne heller vurdere å true, eller de kan behandles som usanne. 417 00:21:26,856 --> 00:21:33,174 Så her, så dette er fornuftig, ikke sant? n større enn 0, betyr at det er en positiv 418 00:21:33,174 --> 00:21:41,160 nummer, det vil si at den vil trykke out "du plukket et positivt tall." 419 00:21:41,160 --> 00:21:44,630 >> Det er mange boolske uttrykk som kan danne tilstand med en 420 00:21:44,630 --> 00:21:47,190 init uttalelse. 421 00:21:47,190 --> 00:21:48,520 Vi har mindre enn. 422 00:21:48,520 --> 00:21:50,950 Dette er mindre enn eller lik. 423 00:21:50,950 --> 00:21:52,200 Dette er bare en morsom [uhørbart]. 424 00:21:52,200 --> 00:21:54,800 425 00:21:54,800 --> 00:22:01,630 Hvis du vil at printf å skje hvis det er større enn eller lik 0, og deretter 426 00:22:01,630 --> 00:22:03,345 du vil velge dette. 427 00:22:03,345 --> 00:22:07,750 Så lik bare føyer riktig etter større enn skiltet. 428 00:22:07,750 --> 00:22:12,030 >> Lik like, noe som er forskjellig fra bare ett likhetstegn, lik lik 429 00:22:12,030 --> 00:22:16,430 faktisk betyr at uansett er på venstre side av denne er det samme som 430 00:22:16,430 --> 00:22:20,610 hva som er på høyre side av denne hvor man likhetstegnet er hva? 431 00:22:20,610 --> 00:22:23,333 Hva er bare ett likhetstegn? 432 00:22:23,333 --> 00:22:24,275 Oppdraget. 433 00:22:24,275 --> 00:22:25,985 >> LUCAS FREITAS: Hvem sa det? 434 00:22:25,985 --> 00:22:27,170 Er det godteri? 435 00:22:27,170 --> 00:22:27,370 Å, nei. 436 00:22:27,370 --> 00:22:27,885 Unnskyld. 437 00:22:27,885 --> 00:22:28,210 Unnskyld. 438 00:22:28,210 --> 00:22:30,400 Dere får godteri. 439 00:22:30,400 --> 00:22:31,510 Oh, OK! 440 00:22:31,510 --> 00:22:33,046 Tre personer får godteri! 441 00:22:33,046 --> 00:22:37,393 >> LAUREN CARVALHO: Så denne retten her er det bang operatør foregå 442 00:22:37,393 --> 00:22:40,240 likhetstegnet, så det er ikke lik. 443 00:22:40,240 --> 00:22:46,560 Så hvis dette var innenfor min tilstand, kroppen av tilstanden ville 444 00:22:46,560 --> 00:22:49,615 utføres bare hvis det er i venstre er ikke det samme som 445 00:22:49,615 --> 00:22:52,540 hva som er til høyre. 446 00:22:52,540 --> 00:22:57,680 >> Jeg kan også ha rett på utropstegn. 447 00:22:57,680 --> 00:23:01,250 Egentlig vil vi se på en funksjon skyver hvordan dette skulle brukes. 448 00:23:01,250 --> 00:23:03,830 >> LUCAS FREITAS: Noen spørsmål? 449 00:23:03,830 --> 00:23:06,450 Nei? 450 00:23:06,450 --> 00:23:10,460 >> LAUREN CARVALHO: Vi kan kombinere disse Boolske uttrykk for å konstruere mer 451 00:23:10,460 --> 00:23:12,500 intrikate betinget utsagn. 452 00:23:12,500 --> 00:23:19,680 Så her, hvis det er til venstre side av dobbelt barer eller 453 00:23:19,680 --> 00:23:23,160 det som er på høyre side av de doble barer verdien true, 454 00:23:23,160 --> 00:23:25,700 så får vi skrive ut ugyldig. 455 00:23:25,700 --> 00:23:29,503 Og deretter ned her, hvis hva som står på venstre side av to 456 00:23:29,503 --> 00:23:33,480 -tegn og hva som står på høyre side av de to-tegn 457 00:23:33,480 --> 00:23:37,470 evalueres til sant, så vi vil skrive ut gyldig. 458 00:23:37,470 --> 00:23:42,195 Den doble barer kalles den logiske ELLER operatør de doble-tegn er 459 00:23:42,195 --> 00:23:44,190 kalles den logiske AND-operatoren. 460 00:23:44,190 --> 00:23:44,648 Ja? 461 00:23:44,648 --> 00:23:47,850 >> PUBLIKUM: Er de bare små bokstaver l's? 462 00:23:47,850 --> 00:23:48,620 >> LAUREN CARVALHO: Nei. 463 00:23:48,620 --> 00:23:50,890 De er faktisk - 464 00:23:50,890 --> 00:23:55,134 du vet tilbakeslag, som ovenfor din returtasten? 465 00:23:55,134 --> 00:23:56,585 Ser du det? 466 00:23:56,585 --> 00:23:57,940 >> LUCAS FREITAS: Det er faktisk en bar. 467 00:23:57,940 --> 00:24:02,100 >> LAUREN CARVALHO: Det er faktisk bare to barer. 468 00:24:02,100 --> 00:24:05,724 >> PUBLIKUM: Kan du bruke den lik lik for strenger? 469 00:24:05,724 --> 00:24:07,000 >> LUCAS FREITAS: Nei. 470 00:24:07,000 --> 00:24:09,130 Vi kommer til å lære senere noe om det. 471 00:24:09,130 --> 00:24:10,735 >> LAUREN CARVALHO: Det er en funksjon som du kan bruke. 472 00:24:10,735 --> 00:24:12,644 Men du trenger ikke å bekymre deg for at nettopp ennå. 473 00:24:12,644 --> 00:24:15,530 474 00:24:15,530 --> 00:24:18,270 >> Hva om jeg gir dette programmet nummer 5? 475 00:24:18,270 --> 00:24:20,850 Hva vil skrive ut? 476 00:24:20,850 --> 00:24:22,100 >> PUBLIKUM: [uhørbart] 477 00:24:22,100 --> 00:24:27,780 478 00:24:27,780 --> 00:24:28,275 gyldig. 479 00:24:28,275 --> 00:24:29,770 >> LAUREN CARVALHO: Gyldig? 480 00:24:29,770 --> 00:24:30,135 Yeah. 481 00:24:30,135 --> 00:24:34,092 Jeg vet ikke hvem som fikk det. 482 00:24:34,092 --> 00:24:35,036 >> [Latter] 483 00:24:35,036 --> 00:24:37,990 >> LAUREN CARVALHO: Det er en slags skummelt [uhørbart]. 484 00:24:37,990 --> 00:24:40,900 >> PUBLIKUM: Så den doble og, det betyr bare og? 485 00:24:40,900 --> 00:24:41,740 >> LAUREN CARVALHO: Yeah. 486 00:24:41,740 --> 00:24:46,160 Så nummer 5 er både større enn 0 og mindre enn 100. 487 00:24:46,160 --> 00:24:48,970 >> PUBLIKUM: Hvorfor skulle det være en? 488 00:24:48,970 --> 00:24:51,350 >> LAUREN CARVALHO: En ampersand er faktisk noe annerledes, og det er 489 00:24:51,350 --> 00:24:53,390 en bitvis operatør, som du vil lære om senere. 490 00:24:53,390 --> 00:24:58,250 Men det er noe som faktisk fungerer med biter av et gitt antall. 491 00:24:58,250 --> 00:25:00,872 >> LUCAS FREITAS: Bare tenk de ikke trenger å bekymre deg om det for nå. 492 00:25:00,872 --> 00:25:04,590 >> LAUREN CARVALHO: Jeg tror det er trolig kommer opp neste uke. 493 00:25:04,590 --> 00:25:06,420 >> LUCAS FREITAS: Eventuelle andre spørsmål? 494 00:25:06,420 --> 00:25:07,990 Nei? 495 00:25:07,990 --> 00:25:12,480 >> LAUREN CARVALHO: Så vi har sett at en det blokkere kan stå alene, men den kan 496 00:25:12,480 --> 00:25:15,370 også være sammen med og ellers blokk. 497 00:25:15,370 --> 00:25:18,880 Så i dette tilfellet er dersom n er større enn 0, kommer vi til å skrive ut "Du 498 00:25:18,880 --> 00:25:23,855 plukket et positivt tall. "annet, noe som betyr hvis den er 0 eller hvis den er mindre 499 00:25:23,855 --> 00:25:27,170 enn 0, kommer vi til å skrive ut, "Du plukket et negativt tall." 500 00:25:27,170 --> 00:25:30,390 >> Det interessante her er at disse er eksklusive hverandre. 501 00:25:30,390 --> 00:25:33,940 Det kommer aldri til å være et tilfelle hvori denne, og dette 502 00:25:33,940 --> 00:25:35,544 kan både skrive ut. 503 00:25:35,544 --> 00:25:38,190 504 00:25:38,190 --> 00:25:41,030 >> Jeg er sikker på at du jobbet med hvis / annet bokse i Scratch, så dette bør være 505 00:25:41,030 --> 00:25:42,392 ganske kjent. 506 00:25:42,392 --> 00:25:42,874 Ja? 507 00:25:42,874 --> 00:25:48,522 >> PUBLIKUM: Trenger vi mellomrommet mellom int n er lik GetInt deretter plass i 508 00:25:48,522 --> 00:25:49,460 hvis setningen? 509 00:25:49,460 --> 00:25:51,565 Som bruker vi en linje [uhørbart] 510 00:25:51,565 --> 00:25:52,790 >> LAUREN CARVALHO: Oh, plassen her? 511 00:25:52,790 --> 00:25:56,742 >> PUBLIKUM: Sånn, men du doble plass. 512 00:25:56,742 --> 00:25:58,718 Nei, gå opp. 513 00:25:58,718 --> 00:25:59,706 Gå opp. 514 00:25:59,706 --> 00:26:00,610 >> LUCAS FREITAS: Bare linjen? 515 00:26:00,610 --> 00:26:01,140 >> PUBLIKUM: Yeah. 516 00:26:01,140 --> 00:26:02,870 >> LUCAS FREITAS: Bare den blanke linjen? 517 00:26:02,870 --> 00:26:03,270 >> PUBLIKUM: Yeah. 518 00:26:03,270 --> 00:26:04,070 >> LAUREN CARVALHO: Blank linje? 519 00:26:04,070 --> 00:26:04,470 Nei. 520 00:26:04,470 --> 00:26:06,320 Det er bare en stilistisk ting. 521 00:26:06,320 --> 00:26:09,360 >> LUCAS FREITAS: Det er akkurat som noen ganger du bare hoppe over noen linjer så 522 00:26:09,360 --> 00:26:12,330 at koden ikke ser ut som en stor blokk med tekst. 523 00:26:12,330 --> 00:26:15,800 >> LAUREN CARVALHO: Jeg tror det som skjedde var at vi hadde en kommentar her, men jeg 524 00:26:15,800 --> 00:26:18,220 tok den ut slik at dere ville ha å tenke på koden heller 525 00:26:18,220 --> 00:26:19,920 enn bare å lese min kommentar. 526 00:26:19,920 --> 00:26:24,170 Generelt vil avstanden virkelig påvirke hvordan programmet kjører. 527 00:26:24,170 --> 00:26:26,070 Det er mer av en stilistisk ting. 528 00:26:26,070 --> 00:26:29,460 Og når vi har den stilguide oppdatert og klar til å gå innen utgangen av 529 00:26:29,460 --> 00:26:33,260 supersection, vi skal snakke om at mer. 530 00:26:33,260 --> 00:26:34,660 >> Det er noe galt med dette programmet, ikke sant? 531 00:26:34,660 --> 00:26:38,980 Fordi 0 er ikke egentlig et negativt tall. 532 00:26:38,980 --> 00:26:40,270 Så la oss se om vi kan fikse det. 533 00:26:40,270 --> 00:26:45,710 534 00:26:45,710 --> 00:26:48,370 >> Du kan sikkert forestille med dette sier, ikke sant? 535 00:26:48,370 --> 00:26:52,850 Hvis n er større enn 0, skriver vi: "Du plukket et positivt tall. "Da annet 536 00:26:52,850 --> 00:26:57,340 hvis n er mindre enn 0, "Du valgte en negativt tall. "annet" Du plukket 537 00:26:57,340 --> 00:27:01,040 0 ". 538 00:27:01,040 --> 00:27:06,030 >> Nå det interessante er at dette kan fortsette i det uendelige. 539 00:27:06,030 --> 00:27:10,020 Du kan ha en hvis blokk, et annet hvis blokk, en annen else if blokk, annet hvis, 540 00:27:10,020 --> 00:27:14,790 else if, else if, annet, i utgangspunktet så lenge du vil. 541 00:27:14,790 --> 00:27:17,110 Og når konstruert som dette, disse er alle kommer til å være 542 00:27:17,110 --> 00:27:19,206 eks hverandre. 543 00:27:19,206 --> 00:27:19,650 Ja? 544 00:27:19,650 --> 00:27:24,130 >> PUBLIKUM: Så hvorfor kan ikke du bare bruke en annen hvis stedet for [uhørbart]? 545 00:27:24,130 --> 00:27:26,990 >> LAUREN CARVALHO: I dette tilfellet, ja jeg kan bruke en annen dersom, og det ville være 546 00:27:26,990 --> 00:27:29,190 helt greit fordi forholdene selv er 547 00:27:29,190 --> 00:27:30,600 eks hverandre. 548 00:27:30,600 --> 00:27:33,560 Men hvis forholdene var ikke eksklusiv av hverandre, ville denne 549 00:27:33,560 --> 00:27:37,596 tvinge dem til å aldri både evaluere, hvis det er fornuftig. 550 00:27:37,596 --> 00:27:44,195 >> PUBLIKUM: I så fall kunne vi reir den andre hvis du er i første om? 551 00:27:44,195 --> 00:27:46,160 >> LAUREN CARVALHO: If - hva mener du? 552 00:27:46,160 --> 00:27:49,660 >> PUBLIKUM: Hvis de to forholdene er ikke gjensidig utelukkende? 553 00:27:49,660 --> 00:27:54,700 >> LAUREN CARVALHO: Dersom vilkårene er ikke gjensidig utelukkende? 554 00:27:54,700 --> 00:27:58,000 Men du vil bare én av dem til å kjøre? 555 00:27:58,000 --> 00:28:00,260 >> PUBLIKUM: Du vil bare hvis stedet for andre. 556 00:28:00,260 --> 00:28:01,020 >> LAUREN CARVALHO: Yeah. 557 00:28:01,020 --> 00:28:03,630 Det er alltid kommer til å være mange av måter du kan gjøre dette. 558 00:28:03,630 --> 00:28:06,600 Du kan definitivt hekker dem. 559 00:28:06,600 --> 00:28:10,390 Og du vil se i en fremtidig lysbilde som du kan ha flere ifs, bare én 560 00:28:10,390 --> 00:28:11,680 etter hverandre. 561 00:28:11,680 --> 00:28:14,840 Men dette er en måte logisk organisere flyten i programmet. 562 00:28:14,840 --> 00:28:18,000 >> LUCAS FREITAS: Og det er en mer ting, er at du ba om å sette 563 00:28:18,000 --> 00:28:20,110 hvis og deretter en annen hvis. 564 00:28:20,110 --> 00:28:25,240 Det ville fungere perfekt, men det er ille design fordi utgangspunktet hvis du 565 00:28:25,240 --> 00:28:29,320 sjekk først om, og du merker at tallet er større enn 0, du 566 00:28:29,320 --> 00:28:30,660 kan bare fullføre programmet. 567 00:28:30,660 --> 00:28:33,080 Du trenger ikke å sjekke om det er mindre enn 0, ikke sant? 568 00:28:33,080 --> 00:28:37,510 >> Men hvis du vet om hvis, det kommer til å sjekke begge, mens hvis jeg gjøre hvis annet er, 569 00:28:37,510 --> 00:28:39,260 det kommer til å sjekke om den er større enn 0. 570 00:28:39,260 --> 00:28:43,500 Hvis det er, det er ikke til å selv se på de andre linjer av koden. 571 00:28:43,500 --> 00:28:48,560 Så du i utgangspunktet sjekke det ut to ganger unødvendig, så det er derfor vi 572 00:28:48,560 --> 00:28:50,750 gjøre hvis annet hvis. 573 00:28:50,750 --> 00:28:52,350 Eventuelle andre spørsmål? 574 00:28:52,350 --> 00:28:56,547 >> PUBLIKUM: Så funksjonaliteten av annet hvis det samme som 575 00:28:56,547 --> 00:28:57,790 hvis det var bare hvis? 576 00:28:57,790 --> 00:28:58,470 >> LAUREN CARVALHO: Nei. 577 00:28:58,470 --> 00:29:02,720 Du er faktisk kommer til å se i mitt neste skyver et eksempel der det kan 578 00:29:02,720 --> 00:29:03,270 være annerledes. 579 00:29:03,270 --> 00:29:05,690 I dette tilfellet er det nesten det samme. 580 00:29:05,690 --> 00:29:10,190 581 00:29:10,190 --> 00:29:15,410 >> Så her har vi et eksempel på multippel hvis uttalelser, og 582 00:29:15,410 --> 00:29:20,020 funksjonaliteten ikke er den samme som om jeg nettopp hadde sagt hvis 583 00:29:20,020 --> 00:29:23,120 annet, hvis annet, hvis annet. 584 00:29:23,120 --> 00:29:26,970 La oss bare tenke på hva som ville skrive ut ut hvis jeg kommer inn i nummer 95 585 00:29:26,970 --> 00:29:27,715 inn i dette programmet. 586 00:29:27,715 --> 00:29:29,764 >> PUBLIKUM: [uhørbart] 587 00:29:29,764 --> 00:29:31,102 >> LAUREN CARVALHO: Og så? 588 00:29:31,102 --> 00:29:32,340 >> PUBLIKUM: [uhørbart] 589 00:29:32,340 --> 00:29:33,680 >> LAUREN CARVALHO: Yeah. 590 00:29:33,680 --> 00:29:37,430 Så i dette tilfellet er disse forholdene er ikke utelukker hverandre. 591 00:29:37,430 --> 00:29:41,040 Og fordi det er ingenting som hindrer denne tilstanden fra å vurdere om dette 592 00:29:41,040 --> 00:29:44,730 man allerede har, de er bare alle kommer til å skrive ut. 593 00:29:44,730 --> 00:29:46,222 Så hvordan kunne jeg fikse dette? 594 00:29:46,222 --> 00:29:47,608 >> PUBLIKUM: Else ifs? 595 00:29:47,608 --> 00:29:48,910 >> LAUREN CARVALHO: Du kan bruke andres ifs. 596 00:29:48,910 --> 00:29:50,590 Jeg kunne endre rekkefølgen av disse, ikke sant? 597 00:29:50,590 --> 00:29:53,800 Hvis jeg gjorde dette først? 598 00:29:53,800 --> 00:29:55,120 Vel, faktisk, nei. 599 00:29:55,120 --> 00:29:57,100 Det ville ikke jobbe for 95. 600 00:29:57,100 --> 00:29:58,490 >> LUCAS FREITAS: Nei, bare de andres ifs. 601 00:29:58,490 --> 00:30:01,720 >> LAUREN CARVALHO: Else ifs ville ha løst dette. 602 00:30:01,720 --> 00:30:07,050 Betyr det klare opp i forvirringen mellom IFS og annet ifs? 603 00:30:07,050 --> 00:30:11,480 >> PUBLIKUM: Jeg ville bare spørre deg, hvis du brukte annet hvis, vil det stoppe? 604 00:30:11,480 --> 00:30:11,840 >> LAUREN CARVALHO: Høyre. 605 00:30:11,840 --> 00:30:13,330 Så bare denne første. 606 00:30:13,330 --> 00:30:16,535 Hvis jeg kom inn i nummer 95, bare dette ville ha skrevet ut, og det har aldri 607 00:30:16,535 --> 00:30:17,934 ville ha kommet til det annet. 608 00:30:17,934 --> 00:30:22,570 >> LUCAS FREITAS: Bare slags tenker på det som om dette skjer, gjør dette. 609 00:30:22,570 --> 00:30:26,990 Den andre er som om ikke, sjekk for dette, og deretter gjøre det. 610 00:30:26,990 --> 00:30:28,690 Så ut som de er alle gjensidig eksklusivt. 611 00:30:28,690 --> 00:30:30,270 Du kan ikke komme inn i to over de. 612 00:30:30,270 --> 00:30:32,800 613 00:30:32,800 --> 00:30:37,630 >> PUBLIKUM: Kan du bruke en logisk OG for denne situasjonen? 614 00:30:37,630 --> 00:30:39,370 >> LAUREN CARVALHO: Yeah. 615 00:30:39,370 --> 00:30:41,400 Det er en annen måte at vi kunne har løst dette problemet. 616 00:30:41,400 --> 00:30:43,470 Vi kunne ha definert varierer, ikke sant? 617 00:30:43,470 --> 00:30:49,410 Så jeg kunne ha sagt hvis n er større enn 90 og mindre enn - 618 00:30:49,410 --> 00:30:52,135 vel, jeg tror dette gjør egentlig ikke rolle, men her kunne jeg ha sagt hvis 619 00:30:52,135 --> 00:30:53,960 n er større enn 80 og mindre enn 90. 620 00:30:53,960 --> 00:30:55,570 Større enn 70, mindre enn 80. 621 00:30:55,570 --> 00:30:59,077 Det ville også fungert. 622 00:30:59,077 --> 00:30:59,891 >> [Latter] 623 00:30:59,891 --> 00:31:00,980 >> LUCAS FREITAS: Hun er redd. 624 00:31:00,980 --> 00:31:02,070 >> LAUREN CARVALHO: Ikke vær redd. 625 00:31:02,070 --> 00:31:04,570 >> LUCAS FREITAS: Det er ikke at det vil være feil. 626 00:31:04,570 --> 00:31:08,630 Det er bare det at det er unødvendig ordrik. 627 00:31:08,630 --> 00:31:13,480 Som i informatikk, bør man være så enkelt som mulig så lenge 628 00:31:13,480 --> 00:31:14,730 du har den funksjonaliteten. 629 00:31:14,730 --> 00:31:16,725 630 00:31:16,725 --> 00:31:17,835 Ønsker du godteri? 631 00:31:17,835 --> 00:31:19,084 >> PUBLIKUM: Trenger ikke det. 632 00:31:19,084 --> 00:31:20,340 >> LAUREN CARVALHO: Du skremmer alle, Lucas. 633 00:31:20,340 --> 00:31:21,590 >> LUCAS FREITAS: Beklager. 634 00:31:21,590 --> 00:31:24,650 635 00:31:24,650 --> 00:31:29,510 >> LAUREN CARVALHO: David også nevnt disse bryter uttalelse i klassen. 636 00:31:29,510 --> 00:31:33,180 I utgangspunktet hva som skjer er bryteren uttalelsen tar en variabel. 637 00:31:33,180 --> 00:31:35,760 I dette tilfelle tar vi et heltall. 638 00:31:35,760 --> 00:31:39,220 >> Hvis heltall er en, skal vi skrive ut, "Du valgte en liten 639 00:31:39,220 --> 00:31:42,000 nummer. "Hvis heltall er en:" Du plukket et middels antall. "Dersom 640 00:31:42,000 --> 00:31:45,730 heltall er tre, "Du valgte en høy nummer. "Og jeg hadde også en standard sak 641 00:31:45,730 --> 00:31:50,020 her nede, men det er ikke viser opp, noe som er synd. 642 00:31:50,020 --> 00:31:53,120 643 00:31:53,120 --> 00:31:55,360 >> I utgangspunktet er dette bare en annen syntaks. 644 00:31:55,360 --> 00:31:58,640 Vi kunne ha gjennomført dette eksakte samme med hvis og annet hvis 645 00:31:58,640 --> 00:31:59,390 uttalelser. 646 00:31:59,390 --> 00:32:05,530 Men når det er mange forskjellige forhold og masse forskjellig 647 00:32:05,530 --> 00:32:10,350 variasjoner på hva du vil gjøre for hver inngang, er dette et alternativ. 648 00:32:10,350 --> 00:32:13,262 Så det er bare en god syntaks å vite. 649 00:32:13,262 --> 00:32:15,099 Ja? 650 00:32:15,099 --> 00:32:21,380 >> PUBLIKUM: Hvorfor er det ikke en skråstrek n i det første? 651 00:32:21,380 --> 00:32:23,340 >> LAUREN CARVALHO: For der oppe? 652 00:32:23,340 --> 00:32:27,600 Det er ingen backslash n der oppe fordi GetInt - 653 00:32:27,600 --> 00:32:30,140 hvis du prøver dette, det vil gi deg denne meldingen. 654 00:32:30,140 --> 00:32:32,290 Gi meg et heltall mellom 1 og 3. 655 00:32:32,290 --> 00:32:35,550 Og hvis jeg legger tilbakeslag n, det ville ta meg til neste linje, men jeg bare 656 00:32:35,550 --> 00:32:38,690 ville ha dem til å skrive heltallet rett etter kolon. 657 00:32:38,690 --> 00:32:40,120 Du kunne ha lagt tilbakeslag n. 658 00:32:40,120 --> 00:32:42,374 Det er ikke en stor avtale. 659 00:32:42,374 --> 00:32:43,288 Yeah? 660 00:32:43,288 --> 00:32:50,525 >> PUBLIKUM: For denne koden, er dette Ved en, er at fordi 661 00:32:50,525 --> 00:32:51,760 det er den første saken? 662 00:32:51,760 --> 00:32:52,260 Fordi - 663 00:32:52,260 --> 00:32:53,400 >> LAUREN CARVALHO: Nei, nei, nei. 664 00:32:53,400 --> 00:32:56,480 Så dette er å gi meg et heltall mellom ett og tre. 665 00:32:56,480 --> 00:32:59,070 Hvis n er en, jeg skriver dette. 666 00:32:59,070 --> 00:33:02,740 Hvis jeg hadde bedt om bokstaver, kunne jeg ha sa gi meg en bokstav mellom A 667 00:33:02,740 --> 00:33:04,935 og C. Så dette ville være tilfelle A. 668 00:33:04,935 --> 00:33:05,910 >> PUBLIKUM: [uhørbart]. 669 00:33:05,910 --> 00:33:08,090 Saken ville bare [uhørbart] 670 00:33:08,090 --> 00:33:11,260 >> LAUREN CARVALHO: Ja, ikke sant. 671 00:33:11,260 --> 00:33:11,550 Yeah? 672 00:33:11,550 --> 00:33:14,861 >> PUBLIKUM: Hva om du ønsket å ha mer av en relasjons uttrykk? 673 00:33:14,861 --> 00:33:17,645 Så i stedet for å si n tilsvarer en, [uhørbart] 674 00:33:17,645 --> 00:33:21,050 n er større enn en i det første tilfellet? 675 00:33:21,050 --> 00:33:26,630 >> LAUREN CARVALHO: Egentlig, hvis jeg ikke gjør det definere noen av disse tilfellene, ville dette 676 00:33:26,630 --> 00:33:28,500 skal bære ned. 677 00:33:28,500 --> 00:33:30,680 Så egentlig, kanskje dette er ikke hva du spør. 678 00:33:30,680 --> 00:33:36,240 >> LUCAS FREITAS: Jeg tror hun spør om tilfelle var n er større enn 0, case 679 00:33:36,240 --> 00:33:37,150 mindre enn 0. 680 00:33:37,150 --> 00:33:39,210 >> LAUREN CARVALHO: Kanskje bryteren uttalelsen er egentlig ikke hva du vil 681 00:33:39,210 --> 00:33:39,880 å bruke i dette tilfellet. 682 00:33:39,880 --> 00:33:42,420 >> LUCAS FREITAS: Den bryter uttalelse er bare for verdien, så du sjekker av 683 00:33:42,420 --> 00:33:45,370 verdien er som dette eller hint. 684 00:33:45,370 --> 00:33:47,025 Så du kan faktisk ikke sette vilkår. 685 00:33:47,025 --> 00:33:50,988 686 00:33:50,988 --> 00:33:55,920 >> PUBLIKUM: Hva hvis personen typer med [uhørbart]? 687 00:33:55,920 --> 00:33:58,240 >> LAUREN CARVALHO: Det ville ha vært min standard sak, som dessverre 688 00:33:58,240 --> 00:33:58,910 du kan ikke se. 689 00:33:58,910 --> 00:34:02,240 >> LUCAS FREITAS: [uhørbart] gjøre dem se. 690 00:34:02,240 --> 00:34:03,690 >> LAUREN CARVALHO: Egentlig vet du hva? 691 00:34:03,690 --> 00:34:07,795 La oss bare gå å studere 50, og jeg vil bare zoome inn på lysbildene på studiet 692 00:34:07,795 --> 00:34:10,610 50, fordi dette er bare irriterende. 693 00:34:10,610 --> 00:34:14,938 Så la meg faktisk gå til stand. 694 00:34:14,938 --> 00:34:17,860 Dette er bare kommer til å ta en liten stund. 695 00:34:17,860 --> 00:34:26,940 696 00:34:26,940 --> 00:34:27,840 >> OK. 697 00:34:27,840 --> 00:34:29,590 Så, jeg beklager. 698 00:34:29,590 --> 00:34:33,625 Minst nå vil vi være i stand til å se alt uten det å kutte av. 699 00:34:33,625 --> 00:34:36,230 700 00:34:36,230 --> 00:34:36,969 OK. 701 00:34:36,969 --> 00:34:43,800 >> Så hvis de satt i en 10, vil vi misligholde her til min standard sak, og jeg 702 00:34:43,800 --> 00:34:46,510 ville bare skrive ugyldig fordi jeg ba dem om å oppgi et heltall 703 00:34:46,510 --> 00:34:49,460 mellom ett og tre. 704 00:34:49,460 --> 00:34:50,650 Eventuelle andre spørsmål? 705 00:34:50,650 --> 00:34:51,081 Yeah? 706 00:34:51,081 --> 00:34:57,590 >> PUBLIKUM: La oss si for saken en, sak tre, sier du ønsket å være hele 707 00:34:57,590 --> 00:35:00,950 samme, slik at du plukket en rekke det er ikke et medium nummer. 708 00:35:00,950 --> 00:35:03,840 I så fall ville det være overflødig? 709 00:35:03,840 --> 00:35:08,371 Vil du bare endre teksten i både av dem, eller vil det være en viss 710 00:35:08,371 --> 00:35:08,617 redundans? 711 00:35:08,617 --> 00:35:11,920 Er det noen måte å kombinere [Uhørbart]? 712 00:35:11,920 --> 00:35:15,810 >> LAUREN CARVALHO: Det finnes måter å kombinere dem, men jeg tror du kan 713 00:35:15,810 --> 00:35:18,730 bare kombinere tilstøtende seg. 714 00:35:18,730 --> 00:35:22,250 Så hvis jeg ikke definere noe for tilfelle to, ville dette 715 00:35:22,250 --> 00:35:24,130 gjelde for begge tilfeller. 716 00:35:24,130 --> 00:35:28,110 Å, hvis jeg ikke sette noe for saken en, vil dette gjelde for både 717 00:35:28,110 --> 00:35:30,620 Ved en og to. 718 00:35:30,620 --> 00:35:33,616 Hvis det er fornuftig. 719 00:35:33,616 --> 00:35:35,872 >> PUBLIKUM: Kan du gjenta det en? 720 00:35:35,872 --> 00:35:36,670 >> LUCAS FREITAS: OK. 721 00:35:36,670 --> 00:35:39,950 Hvis du gjorde i utgangspunktet, liksom, du har det samme, men du trenger ikke sette 722 00:35:39,950 --> 00:35:46,820 noe her, vil du være enten for Ved en eller to tilfelle, gjør dette. 723 00:35:46,820 --> 00:35:47,930 Høyre? 724 00:35:47,930 --> 00:35:54,010 Og denne pausen betyr at hvis du får i dette tilfellet, bare dra. 725 00:35:54,010 --> 00:35:55,030 Så det er det bremsen betyr. 726 00:35:55,030 --> 00:35:59,755 Så hvis jeg bare gjorde dette, ser du, det er sak en, og du ville bare gjøre dette. 727 00:35:59,755 --> 00:36:02,110 Hvis det var tilfelle to, ville det også bare komme hit og gjøre det. 728 00:36:02,110 --> 00:36:03,544 >> PUBLIKUM: Men du kan gjøre det? 729 00:36:03,544 --> 00:36:05,140 Hvis det er noe for Ved bruk av to [uhørbart] 730 00:36:05,140 --> 00:36:07,095 >> LAUREN CARVALHO: Jeg tror ikke du kan gjøre det. 731 00:36:07,095 --> 00:36:09,380 Jeg tror ikke du kan hoppe rundt. 732 00:36:09,380 --> 00:36:11,070 Kan du gjøre det, Rob? 733 00:36:11,070 --> 00:36:13,300 Jeg tror ikke det. 734 00:36:13,300 --> 00:36:16,548 >> PUBLIKUM: Så bare ett tall kan gå etter et fall, ikke sant? 735 00:36:16,548 --> 00:36:21,410 Det kan ikke være tilfelle en, komma, to? 736 00:36:21,410 --> 00:36:21,970 >> LUCAS FREITAS: Nei, det kan du ikke. 737 00:36:21,970 --> 00:36:25,085 Du definitivt ikke kan. 738 00:36:25,085 --> 00:36:28,770 >> LAUREN CARVALHO: Jeg mener, er det punktet dette er et alternativ, og dette ikke kan 739 00:36:28,770 --> 00:36:31,940 passer din bruk tilfelle, så da kan du ville bruke hvis forholdene. 740 00:36:31,940 --> 00:36:33,906 >> PUBLIKUM: Så hvorfor vil du gjøre dette? 741 00:36:33,906 --> 00:36:34,314 Bryteren? 742 00:36:34,314 --> 00:36:38,540 >> LAUREN CARVALHO: Jeg ville bruke denne hvis du har veldig definert - 743 00:36:38,540 --> 00:36:39,730 faktisk, Lucas, er du blokkerer. 744 00:36:39,730 --> 00:36:40,982 >> LUCAS FREITAS: Oh, sorry. 745 00:36:40,982 --> 00:36:44,200 >> LAUREN CARVALHO: Hvis du har veldig definerte atferd som du ønsker 746 00:36:44,200 --> 00:36:48,105 hver inngang, kan dette være en litt mer konsis enn å skrive ut 747 00:36:48,105 --> 00:36:49,530 en hvis setningen for hver enkelt. 748 00:36:49,530 --> 00:36:51,210 >> PUBLIKUM: Hva gjør break bety igjen? 749 00:36:51,210 --> 00:36:53,180 >> LAUREN CARVALHO: Bruddet betyr stopp. 750 00:36:53,180 --> 00:36:56,860 Husk, hvis jeg ikke hadde denne pausen her, ville vi nettopp har falt ned 751 00:36:56,860 --> 00:36:58,110 inn i det neste tilfelle. 752 00:36:58,110 --> 00:37:00,820 >> LUCAS FREITAS: Break betyr å få ut av bryteroppstillingen. 753 00:37:00,820 --> 00:37:03,400 For hvis det er en, jeg vil ha å skrive ut denne og forlate. 754 00:37:03,400 --> 00:37:04,640 Jeg ønsker ikke å sjekke noe annet. 755 00:37:04,640 --> 00:37:05,790 >> PUBLIKUM: Du ønsker ikke å skrive noe annet. 756 00:37:05,790 --> 00:37:06,730 >> LUCAS FREITAS: Yeah. 757 00:37:06,730 --> 00:37:08,260 Fordi det er gjensidig utelukkende. 758 00:37:08,260 --> 00:37:11,378 >> PUBLIKUM: Og betyr dette bare fortsette til det neste tilfelle hvis det første tilfellet 759 00:37:11,378 --> 00:37:11,850 er ikke sant? 760 00:37:11,850 --> 00:37:14,120 Eller gjør teste den alle sakene på samme tid? 761 00:37:14,120 --> 00:37:16,300 >> LUCAS FREITAS: Nei, det sjekker sekvensielt. 762 00:37:16,300 --> 00:37:18,070 Sekvensielt, ja. 763 00:37:18,070 --> 00:37:21,840 Ett spørsmål til, så vi er nødt til å gå videre, slik at vi kan dekke alt. 764 00:37:21,840 --> 00:37:22,300 Yeah? 765 00:37:22,300 --> 00:37:25,280 >> PUBLIKUM: Så for saken, kunne ha gjort noe annet enn bare den ene? 766 00:37:25,280 --> 00:37:27,680 Kan du gi den en rekkevidde? 767 00:37:27,680 --> 00:37:28,580 >> LUCAS FREITAS: Nei. 768 00:37:28,580 --> 00:37:29,900 >> LAUREN CARVALHO: Jeg tror ikke du kan gi det et område. 769 00:37:29,900 --> 00:37:31,430 >> LUCAS FREITAS: Du kan ikke du kan ikke gi det et område. 770 00:37:31,430 --> 00:37:33,190 >> PUBLIKUM: Saken er spesifikk [Uhørbart]. 771 00:37:33,190 --> 00:37:34,840 >> LUCAS FREITAS: Switch er liksom verdier. 772 00:37:34,840 --> 00:37:38,400 Du gjør forskjellige ting avhengig på en verdi, en bestemt verdi. 773 00:37:38,400 --> 00:37:41,050 Du kan ikke gjøre utvalg, kan du ikke gjøre noe annet. 774 00:37:41,050 --> 00:37:43,055 Det er bare et annet verktøy for å se. 775 00:37:43,055 --> 00:37:46,570 >> LAUREN CARVALHO: De fleste bruker ikke bytter uttalelser veldig mye i CS50, 776 00:37:46,570 --> 00:37:48,760 men den er der. 777 00:37:48,760 --> 00:37:49,920 >> OK. 778 00:37:49,920 --> 00:37:53,870 Så neste ting vi kommer til å snakke om er trefoldig operatør. 779 00:37:53,870 --> 00:37:56,650 Dette er bare en annen type av betinget. 780 00:37:56,650 --> 00:38:01,460 I utgangspunktet hva som skjer her er at jeg er ber om et heltall, og hvis n er 781 00:38:01,460 --> 00:38:05,550 større enn 100, kommer jeg til å skrive ut "Høy". Hvis det ikke er det, kommer jeg til å 782 00:38:05,550 --> 00:38:07,010 skrive ut "lav". 783 00:38:07,010 --> 00:38:11,230 >> Så hva det gjør er tilstanden er her i parentesene, og du 784 00:38:11,230 --> 00:38:13,550 kan slags tenker på spørsmålet så jeg spør om 785 00:38:13,550 --> 00:38:15,030 dette er sant eller ikke. 786 00:38:15,030 --> 00:38:18,485 Hvis det er sant, jeg kommer til å gjøre dette først ting, og hvis det ikke er sant, jeg er 787 00:38:18,485 --> 00:38:20,020 kommer til å gjøre dette andre ting. 788 00:38:20,020 --> 00:38:23,520 789 00:38:23,520 --> 00:38:27,960 >> Eventuelle spørsmål om trefoldig operatør? 790 00:38:27,960 --> 00:38:30,880 >> LUCAS FREITAS: Vil bare oppmerksom fra David er at når du har en 791 00:38:30,880 --> 00:38:33,346 tilstand - 792 00:38:33,346 --> 00:38:35,690 >> LAUREN CARVALHO: Jeg antar Davids ser via live stream. 793 00:38:35,690 --> 00:38:37,210 >> LUCAS FREITAS: Han gjør life stream akkurat nå. 794 00:38:37,210 --> 00:38:41,730 Så når du har en tilstand, er du ment for å sette klammeparentes, 795 00:38:41,730 --> 00:38:45,320 akkurat som vi har i en bryter uttalelsen her. 796 00:38:45,320 --> 00:38:46,750 Vi har klammeparentes her. 797 00:38:46,750 --> 00:38:49,560 For uansett forhold, er du skal også sette det. 798 00:38:49,560 --> 00:38:50,820 >> LAUREN CARVALHO: Du vil se dette i stil guide. 799 00:38:50,820 --> 00:38:52,900 Vi trenger faktisk ikke ha stil guide akkurat nå. 800 00:38:52,900 --> 00:38:53,930 Jeg tror David er fremdeles arbeider. 801 00:38:53,930 --> 00:38:55,100 >> LUCAS FREITAS: Han sa at det er bare å jobbe nå. 802 00:38:55,100 --> 00:38:56,120 >> LAUREN CARVALHO: Åh, er det å jobbe nå? 803 00:38:56,120 --> 00:38:57,520 OK. 804 00:38:57,520 --> 00:39:02,060 Så tydeligvis dette året i stil veilede, selv om du bare har én linje, 805 00:39:02,060 --> 00:39:06,040 du er nødt til å putte dem klammeparentes i. 806 00:39:06,040 --> 00:39:09,480 Du trenger ikke nødvendigvis å for funksjonaliteten i programmet. 807 00:39:09,480 --> 00:39:12,210 Og kanskje vi skal bare ta en pause etter forholdene og gå rett 808 00:39:12,210 --> 00:39:14,620 til stilen guide for å fjerne opp noen av disse tingene? 809 00:39:14,620 --> 00:39:15,010 >> LUCAS FREITAS: Yeah. 810 00:39:15,010 --> 00:39:15,775 Har du et spørsmål? 811 00:39:15,775 --> 00:39:17,580 >> PUBLIKUM: Nei, jeg vil bare vente till stilen guide. 812 00:39:17,580 --> 00:39:19,578 >> PUBLIKUM: Kan du gå tilbake til trefoldig operatør? 813 00:39:19,578 --> 00:39:23,360 >> LAUREN CARVALHO: Ternær, ja. 814 00:39:23,360 --> 00:39:29,010 >> LUCAS FREITAS: trefoldig operatøren er utgangspunktet en hvis annet utsagn, men 815 00:39:29,010 --> 00:39:33,590 i stedet for å ha de to linjene for å kontrollere om en og deretter 816 00:39:33,590 --> 00:39:36,600 annet, du bare har én linje. 817 00:39:36,600 --> 00:39:40,930 Så i utgangspunktet hvis jeg ønsker å gi en streng en verdi på høyt eller lavt, og jeg 818 00:39:40,930 --> 00:39:46,270 ønsker å gjøre en høy hvis n er større enn 100 eller lavt hvis det er mindre, hva jeg kan gjøre 819 00:39:46,270 --> 00:39:47,730 er dette [uhørbart] 820 00:39:47,730 --> 00:39:53,060 strengen kommer til å bli, og da jeg spør programmet er n større enn 100? 821 00:39:53,060 --> 00:39:55,750 >> Så det er derfor jeg har dette uttrykket i parentes, og deretter 822 00:39:55,750 --> 00:39:56,580 spørsmålstegnet. 823 00:39:56,580 --> 00:39:59,110 Jeg spør er det større enn 100? 824 00:39:59,110 --> 00:40:02,310 Hvis det er, kommer det til å være høy. 825 00:40:02,310 --> 00:40:03,850 Hvis det ikke er det, kommer det til å være lav. 826 00:40:03,850 --> 00:40:07,310 >> Så innerst inne hva du tror er du spør et spørsmål, så du putter i parentes 827 00:40:07,310 --> 00:40:08,620 tilstanden. 828 00:40:08,620 --> 00:40:11,160 Så du setter spørsmålstegn fordi du spør det. 829 00:40:11,160 --> 00:40:15,240 Og hvis dette er sant, det kommer til å være i den første verdien [uhørbart] her. 830 00:40:15,240 --> 00:40:18,176 Hvis det ikke er det, kommer jeg til å sette verdi som er i det tykktarmen. 831 00:40:18,176 --> 00:40:21,580 Er det fornuftig? 832 00:40:21,580 --> 00:40:24,730 >> Det er også noe som er som en verktøy i C, men du trenger ikke å 833 00:40:24,730 --> 00:40:25,700 spesifikt bruke det. 834 00:40:25,700 --> 00:40:29,890 Men CS folk vanligvis liker at fordi det bare sparer linjer. 835 00:40:29,890 --> 00:40:31,050 >> LAUREN CARVALHO: Det er veldig elegant. 836 00:40:31,050 --> 00:40:32,951 Det gjør mye på bare en uttalelse. 837 00:40:32,951 --> 00:40:36,077 >> PUBLIKUM: Så prosenttegnet er bare hva resultatene på 838 00:40:36,077 --> 00:40:36,799 den forrige linje? 839 00:40:36,799 --> 00:40:38,260 >> LAUREN CARVALHO: Å, jeg beklager. 840 00:40:38,260 --> 00:40:42,670 Denne prosenttegn er faktisk en plassholder for dette er. 841 00:40:42,670 --> 00:40:46,160 I en printf uttalelse, har du fått denne streng her, som er hva som kommer til 842 00:40:46,160 --> 00:40:48,440 skrive ut, men du kan ikke bare sette dette er der inne. 843 00:40:48,440 --> 00:40:50,290 Ellers ville det skrives ut ut s bokstavelig talt. 844 00:40:50,290 --> 00:40:54,070 Så satte vi en prosent her til å holde dette stedet holdt uansett 845 00:40:54,070 --> 00:40:57,590 kommer etter komma. 846 00:40:57,590 --> 00:40:59,470 >> Så for en streng, har du fått prosent s. 847 00:40:59,470 --> 00:41:00,950 For et heltall, prosent jeg. 848 00:41:00,950 --> 00:41:03,330 For en dupp, prosent f. 849 00:41:03,330 --> 00:41:06,960 Du vil se de som vi se flere eksempler. 850 00:41:06,960 --> 00:41:09,230 Men kanskje du bør snakke om style guide for en liten stund, nå 851 00:41:09,230 --> 00:41:10,480 at det er opp. 852 00:41:10,480 --> 00:41:21,040 853 00:41:21,040 --> 00:41:24,010 >> LUCAS FREITAS: Hvis du går til cs50.net/style, du kommer til å se 854 00:41:24,010 --> 00:41:25,760 stilen guide. 855 00:41:25,760 --> 00:41:32,420 For oppgavesett, poengsummen din for det Problemet sett består av omfang, 856 00:41:32,420 --> 00:41:35,510 noe som betyr at i utgangspunktet hvis du gjorde alt de delene av oppgavesettet eller hvis du 857 00:41:35,510 --> 00:41:37,170 forsøkt noe. 858 00:41:37,170 --> 00:41:41,120 Den andre tingen er nøyaktighet, som middel er programmet gjør hva det 859 00:41:41,120 --> 00:41:44,520 skulle gjøre, eller gjør det har bugs, eller er det ikke å gjøre det 860 00:41:44,520 --> 00:41:45,620 det er ment å gjøre. 861 00:41:45,620 --> 00:41:51,420 >> Den tredje er konstruksjon, noe som innebærer er du implementere dette også, eller er 862 00:41:51,420 --> 00:41:54,520 du bruker unødvendige uttalelser? 863 00:41:54,520 --> 00:41:59,400 Så for eksempel, hvis du ønsker å gjenta et nummer ti ganger, er du skrive en 864 00:41:59,400 --> 00:42:03,040 for loop eller er du bare gjør 10 ganger den samme setningen, bare gjør 865 00:42:03,040 --> 00:42:04,060 Kopier og lim inn. 866 00:42:04,060 --> 00:42:05,760 Så design er for det. 867 00:42:05,760 --> 00:42:07,420 >> Og til slutt, har du stil. 868 00:42:07,420 --> 00:42:12,000 Stil er akkurat som å dømme hvis koden din ser ut 869 00:42:12,000 --> 00:42:14,050 lesbar og litt pen. 870 00:42:14,050 --> 00:42:16,520 Det betyr bare utgangspunktet er koden din lesbar? 871 00:42:16,520 --> 00:42:20,560 Vil noen andre som var ute er koden din være i stand til å forstå hva 872 00:42:20,560 --> 00:42:21,250 det gjør? 873 00:42:21,250 --> 00:42:25,360 Har den kommentarer og lignende? 874 00:42:25,360 --> 00:42:30,430 >> La oss snakke om den stilen som du skal bruke. 875 00:42:30,430 --> 00:42:32,200 Det første er kommentarer. 876 00:42:32,200 --> 00:42:35,280 Kommentarer er svært viktig for din kode fordi noen ganger du gjør 877 00:42:35,280 --> 00:42:38,750 programmet ditt, og du vet nøyaktig hva du ønsker å gjøre, slik at du bare begynne 878 00:42:38,750 --> 00:42:43,120 koding, bare skriv opp en haug med C. Men hvis noen andre ser du er 879 00:42:43,120 --> 00:42:47,500 kode, er de ikke kommer til å være i stand til forstå det fordi de ikke vet 880 00:42:47,500 --> 00:42:51,420 de tingene som er i hodet ditt, som den pesudocode, så kanskje de vil 881 00:42:51,420 --> 00:42:53,970 har en hard tid å forstå hva koden gjør. 882 00:42:53,970 --> 00:42:57,900 >> Så kommentarer er veldig nyttig å forklare til noen som ser på 883 00:42:57,900 --> 00:43:00,880 koden din hva det gjør, og faktisk selv for deg, 884 00:43:00,880 --> 00:43:01,880 de er svært nyttig. 885 00:43:01,880 --> 00:43:05,740 Som du gå til hardere og harde Psets, du kommer til å se at koden blir 886 00:43:05,740 --> 00:43:10,590 lengre, og deretter kommentarer er virkelig viktig slik at du husker hva hver 887 00:43:10,590 --> 00:43:13,320 en del av programmet gjør. 888 00:43:13,320 --> 00:43:16,920 >> For å sette en kommentar, kan du bare gjøre en slash slash og deretter skrive en kommentar. 889 00:43:16,920 --> 00:43:21,250 Og hele linjen er en del av en kommentar, og uansett hva du skriver ned, 890 00:43:21,250 --> 00:43:24,550 det er ikke til å være brukes til koden din. 891 00:43:24,550 --> 00:43:27,993 Det er i utgangspunktet som kompilatoren kommer til å ignorere det. 892 00:43:27,993 --> 00:43:29,290 Betyr det fornuftig? 893 00:43:29,290 --> 00:43:31,710 >> PUBLIKUM: Hva gjør du igjen å skrive en kommentar? 894 00:43:31,710 --> 00:43:33,260 >> LUCAS FREITAS: Dette? 895 00:43:33,260 --> 00:43:36,020 Den skråstrek skråstrek? 896 00:43:36,020 --> 00:43:39,810 Når du skriver slash slash, uansett er i den linjen ikke kommer 897 00:43:39,810 --> 00:43:42,260 skal anses å være C. Yeah? 898 00:43:42,260 --> 00:43:45,910 >> PUBLIKUM: Så etter kommentaren, du bare gå inn og starte en ny linje? 899 00:43:45,910 --> 00:43:47,120 >> LUCAS FREITAS: Ja, akkurat. 900 00:43:47,120 --> 00:43:50,010 >> LAUREN CARVALHO: Den skråstrek skråstrek er for enkelt linje kommentarer. 901 00:43:50,010 --> 00:43:52,910 >> LUCAS FREITAS: For eksempel her har vi - 902 00:43:52,910 --> 00:43:54,160 la meg zoome inn - 903 00:43:54,160 --> 00:43:56,530 904 00:43:56,530 --> 00:44:01,180 for eksempel, her jeg erklære en dupp, men kanskje hvis du bare sette dette 905 00:44:01,180 --> 00:44:04,980 i koden din, som du ikke aner hva dette gjør, som faktisk 906 00:44:04,980 --> 00:44:06,950 noen som ser på denne koden kommer til å være, som, hva 907 00:44:06,950 --> 00:44:09,190 pokker er det som skjer? 908 00:44:09,190 --> 00:44:12,890 >> Hvis du putter en kommentar som sier "konvertere Fahrenheit til Celsius, gjør det mye 909 00:44:12,890 --> 00:44:13,450 mer fornuftig. 910 00:44:13,450 --> 00:44:15,480 Du er, som, OK, du er gjør en konvertering. 911 00:44:15,480 --> 00:44:16,730 Betyr det fornuftig? 912 00:44:16,730 --> 00:44:19,860 913 00:44:19,860 --> 00:44:24,960 Så det er bare noe som hjelper folk klar koden din og også gjøre 914 00:44:24,960 --> 00:44:28,290 du kunne organisere koden din bedre. 915 00:44:28,290 --> 00:44:33,080 >> Den andre tingen er at du kan gjøre flere linjer kommentarer, så har man 916 00:44:33,080 --> 00:44:34,850 kommentere for en haug med linjer. 917 00:44:34,850 --> 00:44:38,880 I stedet for å måtte sette slash slash, Den første linjen kommentarer, slash slash, 918 00:44:38,880 --> 00:44:43,590 den andre linjen, og så videre, du kan bruke slash stjerne. 919 00:44:43,590 --> 00:44:46,330 Måten du gjør det er at for første linjen i kommentaren, er du 920 00:44:46,330 --> 00:44:49,650 kommer til å gjøre en skråstrek star star, så bare sånn. 921 00:44:49,650 --> 00:44:56,900 Akkurat som her har vi i begynnelsen av et program, du vanligvis sette hvem du 922 00:44:56,900 --> 00:44:59,530 er, hva dette programmet gjør, og sånt. 923 00:44:59,530 --> 00:45:01,900 Det er litt som en header for programmet. 924 00:45:01,900 --> 00:45:04,540 >> Igjen, det er ikke noe som en kompilatoren kommer til å bry seg om, men 925 00:45:04,540 --> 00:45:07,570 det er viktig for deg å vite hva dette Programmet gjør eller for andre mennesker 926 00:45:07,570 --> 00:45:09,960 å vite hva programmet gjør. 927 00:45:09,960 --> 00:45:17,480 Så du slash star star, og deretter siste linje du skal gjøre stjerne 928 00:45:17,480 --> 00:45:22,250 slash å kunne lukke at kommentaren. 929 00:45:22,250 --> 00:45:26,140 Så i utgangspunktet for alle de andre linjene, du kan bare skrive hva som helst, og dette 930 00:45:26,140 --> 00:45:27,390 er alle kommer til å bli ignorert. 931 00:45:27,390 --> 00:45:32,920 932 00:45:32,920 --> 00:45:37,780 >> Og også, akkurat som stil, vil du se at hver av linjene har en stjerne, og alle 933 00:45:37,780 --> 00:45:39,380 stjernene er justert. 934 00:45:39,380 --> 00:45:41,605 Dette er viktige ting så at koden ser pen. 935 00:45:41,605 --> 00:45:42,855 Høres bra ut? 936 00:45:42,855 --> 00:45:45,320 937 00:45:45,320 --> 00:45:47,290 >> Nå er betingelsene. 938 00:45:47,290 --> 00:45:52,240 Hva David sa at vi burde faktisk satt i disse lysbildene, er at 939 00:45:52,240 --> 00:45:55,810 når du har noen form for hvis uttalelser eller en hvilken som helst form for betingelser, 940 00:45:55,810 --> 00:46:00,700 du bør bruke klammeparenteser for å vise at dette er hva som kommer til å skje 941 00:46:00,700 --> 00:46:02,730 når du har tilstanden. 942 00:46:02,730 --> 00:46:07,560 Teknisk sett, når du har en tilstand og deretter den neste linje er bare ett 943 00:46:07,560 --> 00:46:12,110 linje, trenger du ikke teknisk har å sette klammeparentes. 944 00:46:12,110 --> 00:46:16,930 >> I utgangspunktet kompilatoren ville forstå det likevel som implisitt. 945 00:46:16,930 --> 00:46:21,100 Men for CS50, ber vi dere til å sette klammeparentes bare slik at din 946 00:46:21,100 --> 00:46:24,560 Koden er mer organisert og mer lesbar. 947 00:46:24,560 --> 00:46:28,200 Fordi at koden blir lengre hvis du ikke har klammeparenteser og slikt. 948 00:46:28,200 --> 00:46:29,150 Det blir veldig rotete. 949 00:46:29,150 --> 00:46:31,410 >> LAUREN CARVALHO: Dette er nøyaktig hva David nettopp påpekt 950 00:46:31,410 --> 00:46:33,000 i mine tidligere lysbilder. 951 00:46:33,000 --> 00:46:36,690 Det fungerer definitivt uten krøllete bukseseler, men for stilistiske grunner 952 00:46:36,690 --> 00:46:38,840 vi kommer til å be om at du putte dem i. 953 00:46:38,840 --> 00:46:42,400 >> Og når du begynner å kjøre style50, som er slags sjekken 50 for 954 00:46:42,400 --> 00:46:44,860 stil, vil det minne deg på å gjøre dette. 955 00:46:44,860 --> 00:46:49,710 >> LUCAS FREITAS: Og en annen ting er husk å sette klammeparentes sammen 956 00:46:49,710 --> 00:46:50,610 i hver linje. 957 00:46:50,610 --> 00:46:52,490 Så du gjør, for eksempel, l's. 958 00:46:52,490 --> 00:46:56,910 Gå til neste linje, åpne krøllete brace, så du går til neste linje. 959 00:46:56,910 --> 00:46:59,560 Innrykk, som er fire plasser. 960 00:46:59,560 --> 00:47:03,570 Så skriver du hva, da en annen linje, og lukk klammeparentes. 961 00:47:03,570 --> 00:47:06,870 Så vær sikker på at både de krøllete bukseseler er i forskjellige linjer. 962 00:47:06,870 --> 00:47:11,548 >> PUBLIKUM: Så hvis denne koden hadde som 10 annet ifs, bør dette 963 00:47:11,548 --> 00:47:13,040 være 10 sett med braketter? 964 00:47:13,040 --> 00:47:14,610 >> LUCAS FREITAS: Ja, for hver av dem. 965 00:47:14,610 --> 00:47:14,930 Yeah. 966 00:47:14,930 --> 00:47:17,980 Så hvis, else if, og så videre. 967 00:47:17,980 --> 00:47:21,990 >> PUBLIKUM: Kan du ikke Trykk Tab for å rykke? 968 00:47:21,990 --> 00:47:25,350 >> LUCAS FREITAS: Vi ber deg gutta til å bruke fire mellomrom. 969 00:47:25,350 --> 00:47:30,060 Noen tekstredigeringssette kategorien som fire mellomrom automatisk. 970 00:47:30,060 --> 00:47:34,850 gedit ikke gjør det, så du må gjøre plass plass plass plass. 971 00:47:34,850 --> 00:47:37,920 Det er også noe som noen programmerere bare gjøre faner, noen 972 00:47:37,920 --> 00:47:40,560 programmerere bare gjøre fire områder, og noen andre folk selv gjøre 973 00:47:40,560 --> 00:47:41,900 to eller tre plasser. 974 00:47:41,900 --> 00:47:44,040 Det er bare det at her vi ber dere å gjøre fire mellomrom. 975 00:47:44,040 --> 00:47:47,556 >> PUBLIKUM: Det er nesten helt sikkert må være en måte for gedit til 976 00:47:47,556 --> 00:47:48,645 automatisk [uhørbart]. 977 00:47:48,645 --> 00:47:50,480 Som ingen [uhørbart] gjør det. 978 00:47:50,480 --> 00:47:51,150 >> LUCAS FREITAS: Yeah. 979 00:47:51,150 --> 00:47:53,165 Jeg tror du kan gå til Innstillinger. 980 00:47:53,165 --> 00:47:55,270 >> PUBLIKUM: Det gjør allerede alt dette. 981 00:47:55,270 --> 00:47:56,410 >> LUCAS FREITAS: Det allerede gjør? 982 00:47:56,410 --> 00:47:56,890 OK. 983 00:47:56,890 --> 00:48:00,854 Så bare pass på at du har fire plasser. 984 00:48:00,854 --> 00:48:05,880 >> PUBLIKUM: Må vi sette krøllete parentes i for sløyfer i tillegg? 985 00:48:05,880 --> 00:48:07,470 >> LUCAS FREITAS: Ja. 986 00:48:07,470 --> 00:48:11,610 >> LAUREN CARVALHO: Når din innkapsling av en kodeblokk, bare 987 00:48:11,610 --> 00:48:13,570 vennligst bruk klammeparentes. 988 00:48:13,570 --> 00:48:18,040 Og før du tror at vi er bare være sticklers om dette for ingen god 989 00:48:18,040 --> 00:48:23,450 grunn, hvis dere går på å få tech praksisplasser ved store selskaper, 990 00:48:23,450 --> 00:48:26,020 de vil gi deg en stil guide, og de vil fortelle deg dette er hva din 991 00:48:26,020 --> 00:48:27,220 Koden må se ut. 992 00:48:27,220 --> 00:48:31,120 Og selv om du lærte å kode som dette, kanskje i din internship 993 00:48:31,120 --> 00:48:32,680 du må gjøre noe helt annerledes. 994 00:48:32,680 --> 00:48:35,115 De forventer at du skal samsvare til deres stil. 995 00:48:35,115 --> 00:48:39,800 >> LUCAS FREITAS: Og en ting er som du legger merke til hvordan jeg har som x, 996 00:48:39,800 --> 00:48:42,290 plass, mindre, plass, 0? 997 00:48:42,290 --> 00:48:44,640 Når du har en operatør - 998 00:48:44,640 --> 00:48:50,490 det kan være som pluss, minus, ganger, mindre, større, uansett operatør - 999 00:48:50,490 --> 00:48:57,560 du må sette en plass på venstre og høyre for føreren. 1000 00:48:57,560 --> 00:49:00,570 >> LAUREN CARVALHO: De er kalt binære operander. 1001 00:49:00,570 --> 00:49:03,720 Bare sørg for at du alltid plass ut dine binære operander. 1002 00:49:03,720 --> 00:49:05,465 >> LUCAS FREITAS: Dette er ikke en binær operand. 1003 00:49:05,465 --> 00:49:07,010 >> LAUREN CARVALHO: Det er fordi det tar to. 1004 00:49:07,010 --> 00:49:08,260 >> LUCAS FREITAS: Å, ja. 1005 00:49:08,260 --> 00:49:13,340 1006 00:49:13,340 --> 00:49:14,590 >> OK, bryterne. 1007 00:49:14,590 --> 00:49:18,180 1008 00:49:18,180 --> 00:49:23,390 Først må du se at akkurat som i en if eller annet utsagn, har du 1009 00:49:23,390 --> 00:49:28,280 å sette klammeparentes på en egen linje og under den krøllete brace her. 1010 00:49:28,280 --> 00:49:32,240 Legg merke til at det er en enkelt plass etter bytte, akkurat som i hvis og annet 1011 00:49:32,240 --> 00:49:35,360 vi hadde et enkelt mellomrom mellom som og parenteser. 1012 00:49:35,360 --> 00:49:36,610 Så må du sette det. 1013 00:49:36,610 --> 00:49:40,380 1014 00:49:40,380 --> 00:49:48,270 >> Og det er ingen plass rett etter hver av de parenteser eller før slutten 1015 00:49:48,270 --> 00:49:49,080 av parenteser. 1016 00:49:49,080 --> 00:49:52,612 Så du ser at det er alt sammen, og liker også opp her. 1017 00:49:52,612 --> 00:49:53,940 >> Yeah? 1018 00:49:53,940 --> 00:49:58,040 >> LAUREN CARVALHO: Jeg tror vi trenger for å gå videre. 1019 00:49:58,040 --> 00:50:02,340 >> LUCAS FREITAS: Så dette er en del av stilguide som du har for CS50. 1020 00:50:02,340 --> 00:50:06,520 Sørg for å gå til cs50.net/style og ta en titt på dette. 1021 00:50:06,520 --> 00:50:09,250 Disse er alle svært viktige for stilen din poengsum. 1022 00:50:09,250 --> 00:50:12,740 1023 00:50:12,740 --> 00:50:15,670 >> La meg gå tilbake til uttalelse. 1024 00:50:15,670 --> 00:50:17,070 >> LAUREN CARVALHO: Jeg vil heller bare bruke style50. 1025 00:50:17,070 --> 00:50:18,920 Vi kommer bare til å gå rett til looper. 1026 00:50:18,920 --> 00:50:27,580 1027 00:50:27,580 --> 00:50:28,300 OK. 1028 00:50:28,300 --> 00:50:33,720 >> Så la oss komme tilbake til innholdet, nå at vi har gått over stilen guide. 1029 00:50:33,720 --> 00:50:37,220 Loops, har du sett dem i Scratch, og vi kommer til å snakke om dem i 1030 00:50:37,220 --> 00:50:39,210 C. 1031 00:50:39,210 --> 00:50:44,400 >> I en for løkke, er tre porsjoner til en 1032 00:50:44,400 --> 00:50:45,440 erklæring dette for loop. 1033 00:50:45,440 --> 00:50:49,040 Du har din initialisering i som du setter dine variabler. 1034 00:50:49,040 --> 00:50:52,160 Du har fått din tilstand, som er sjekke for å se om noe er 1035 00:50:52,160 --> 00:50:54,670 sant eller usant, og om den Sløyfen skal fortsette. 1036 00:50:54,670 --> 00:50:59,390 Og du har fått oppdateringen, som er å oppdatere variablene. 1037 00:50:59,390 --> 00:51:05,310 >> La oss bare ta en rask titt på noen C-kode av dette for loop i aksjon. 1038 00:51:05,310 --> 00:51:08,860 Hva som skjer er her i initialisering, setter vi i til 0. 1039 00:51:08,860 --> 00:51:11,820 I den tilstanden vi sjekker om jeg er mindre enn ti. 1040 00:51:11,820 --> 00:51:14,982 Og i oppdateringen er vi økes jeg. 1041 00:51:14,982 --> 00:51:20,490 Så hva vil følge av dette for loop? 1042 00:51:20,490 --> 00:51:24,344 >> LUCAS FREITAS: Egentlig, først av alt, vet dere vet hva jeg + + er? 1043 00:51:24,344 --> 00:51:25,850 >> PUBLIKUM: Økte med 1. 1044 00:51:25,850 --> 00:51:26,870 >> LUCAS FREITAS: Økte med 1, ja. 1045 00:51:26,870 --> 00:51:30,020 Så dette er det samme som gjør jeg er lik i pluss ett. 1046 00:51:30,020 --> 00:51:35,890 Og legg merke til at vi ikke har en plass mellom den i og + +. 1047 00:51:35,890 --> 00:51:37,600 >> Så dere vet hva dette vil gjøre? 1048 00:51:37,600 --> 00:51:39,060 Kan noen fortelle meg? 1049 00:51:39,060 --> 00:51:41,463 Og kanskje få litt godteri på grunn av det? 1050 00:51:41,463 --> 00:51:42,912 >> PUBLIKUM: [uhørbart] 1051 00:51:42,912 --> 00:51:44,850 >> LUCAS FREITAS: OK. 1052 00:51:44,850 --> 00:51:45,400 [Uhørbart] 1053 00:51:45,400 --> 00:51:47,450 vise alle senere [uhørbart]. 1054 00:51:47,450 --> 00:51:49,565 Ja, det kommer til å vise "Dette er CS50 "10 ganger. 1055 00:51:49,565 --> 00:51:52,150 >> LAUREN CARVALHO: Jeg antar det var i tittelen på lysbildet. 1056 00:51:52,150 --> 00:51:53,830 >> LUCAS FREITAS: Å, ja. 1057 00:51:53,830 --> 00:51:54,670 >> [Latter] 1058 00:51:54,670 --> 00:51:56,790 >> LUCAS FREITAS: Det hjelper. 1059 00:51:56,790 --> 00:51:58,370 >> LAUREN CARVALHO: Så de er for sløyfer. 1060 00:51:58,370 --> 00:52:03,200 Vi kommer til å se noen flere eksempler av for løkker senere. 1061 00:52:03,200 --> 00:52:06,510 Men la oss faktisk ta en titt på andre type loop du vil støte 1062 00:52:06,510 --> 00:52:08,920 i C, og det heter mens loop. 1063 00:52:08,920 --> 00:52:11,120 >> I en stund loop, har du bare fikk en betingelse. 1064 00:52:11,120 --> 00:52:14,790 Tilstanden er avkrysset i begynner, og hvis den tilstanden 1065 00:52:14,790 --> 00:52:18,450 evalueres til sann, deretter koden innenfor selve mens blokken 1066 00:52:18,450 --> 00:52:20,380 vil utføre. 1067 00:52:20,380 --> 00:52:23,000 Og koden vil fortsette å utføre så lenge at 1068 00:52:23,000 --> 00:52:24,450 tilstand er fortsatt til stede. 1069 00:52:24,450 --> 00:52:28,350 1070 00:52:28,350 --> 00:52:33,320 >> Her er et eksempel på en stund løkke i C. Vi kommer til å sette telle til ti til 1071 00:52:33,320 --> 00:52:34,580 begynne med. 1072 00:52:34,580 --> 00:52:41,800 Så lenge antallet er større enn 0, vi kommer til å fortsette å skrive ut denne 1073 00:52:41,800 --> 00:52:43,360 variabel her. 1074 00:52:43,360 --> 00:52:47,080 Vi kommer til å minske antall og deretter sjekke tilstanden på nytt. 1075 00:52:47,080 --> 00:52:51,370 Print, minsk, sjekk tilstanden på nytt. 1076 00:52:51,370 --> 00:52:54,530 >> Her har vi et eksempel som gjelder på spørsmålet ditt tidligere. 1077 00:52:54,530 --> 00:52:57,340 Vi hadde prosent s når vi var skrive ut en streng, og nå som 1078 00:52:57,340 --> 00:53:03,420 vi skrive ut en int, har vi en prosent i som vår plassholder i stedet. 1079 00:53:03,420 --> 00:53:09,250 Bokstavene bør alle være ganske intuitivt, er for streng, i for int. 1080 00:53:09,250 --> 00:53:15,400 >> Så hvis denne koden utfører, bør du telle ned fra 10 til 0, skrive ut 1081 00:53:15,400 --> 00:53:15,925 hvert heltall. 1082 00:53:15,925 --> 00:53:19,460 >> LUCAS FREITAS: Og du kan tenke på prosent som det føles som en blank 1083 00:53:19,460 --> 00:53:23,960 plass, og deretter du setter dette variabel her i det tomme rommet. 1084 00:53:23,960 --> 00:53:27,640 Så for eksempel, her jeg vil ha akkurat en blank, og da jeg setter den 1085 00:53:27,640 --> 00:53:30,262 telle rett der, det verdien av tellingen. 1086 00:53:30,262 --> 00:53:32,710 Betyr det fornuftig? 1087 00:53:32,710 --> 00:53:35,860 >> Kan jeg bare gjøre som printf og deretter siterer, telle? 1088 00:53:35,860 --> 00:53:36,840 Vil det fungere? 1089 00:53:36,840 --> 00:53:37,980 >> PUBLIKUM: Nei. 1090 00:53:37,980 --> 00:53:41,190 >> LUCAS FREITAS: Nei, fordi det vil faktisk skrive ordet "teller" 1091 00:53:41,190 --> 00:53:42,850 stedet for å skrive verdien. 1092 00:53:42,850 --> 00:53:46,080 Dette er hvordan du gjør det ut verdiene mot den variable istedenfor 1093 00:53:46,080 --> 00:53:47,670 bare navnet på variabelen. 1094 00:53:47,670 --> 00:53:48,530 Eventuelle spørsmål? 1095 00:53:48,530 --> 00:53:53,060 >> PUBLIKUM: Hvorfor bruker dere for som en motsetning til mens? 1096 00:53:53,060 --> 00:53:56,130 >> LAUREN CARVALHO: Jeg ville bruke en for løkke hvis jeg vet nøyaktig hvor mange 1097 00:53:56,130 --> 00:53:59,520 gjentakelser Jeg ønsker min sløyfe for å kjøre. 1098 00:53:59,520 --> 00:54:02,810 I dette tilfellet spiller det ingen rolle, fordi, Jeg mener, jeg prøver bare å 1099 00:54:02,810 --> 00:54:05,310 tenke på en veldig enkel eksempel på dette lysbildet. 1100 00:54:05,310 --> 00:54:09,990 Men la oss si at du vil ha noe å holde det gående mens - 1101 00:54:09,990 --> 00:54:14,480 >> LUCAS FREITAS: For eksempel, er du ber om innspill til den personen 1102 00:54:14,480 --> 00:54:15,370 gir deg rett inngang. 1103 00:54:15,370 --> 00:54:19,720 Så ut som mens inngangen er ikke OK, fortsette å spørre etter det. 1104 00:54:19,720 --> 00:54:22,920 Eller som når du er foreldre ikke gir du penger, fortsette å spørre etter det. 1105 00:54:22,920 --> 00:54:23,430 >> [Latter] 1106 00:54:23,430 --> 00:54:25,390 >> LAUREN CARVALHO: Du vet ikke hvordan mange ganger du må gjøre det. 1107 00:54:25,390 --> 00:54:27,292 >> LUCAS FREITAS: Fordi du ikke vet hvor mange ganger det er 1108 00:54:27,292 --> 00:54:28,010 kommer til å holde det gående. 1109 00:54:28,010 --> 00:54:30,397 >> LAUREN CARVALHO: Men i en for loop, du trenger å vite hvor mange ganger. 1110 00:54:30,397 --> 00:54:33,640 1111 00:54:33,640 --> 00:54:33,860 Yeah? 1112 00:54:33,860 --> 00:54:38,520 >> PUBLIKUM: Bare for å klargjøre, det prosent sier at dette er noe i ferd med å 1113 00:54:38,520 --> 00:54:42,415 skje, de jeg er for heltall, og backslash n - 1114 00:54:42,415 --> 00:54:43,910 >> LAUREN Carvalho: Midler? 1115 00:54:43,910 --> 00:54:45,820 Hvem vet hva backslash n betyr? 1116 00:54:45,820 --> 00:54:47,770 Ny linje, ja. 1117 00:54:47,770 --> 00:54:48,130 Nettopp. 1118 00:54:48,130 --> 00:54:50,500 >> LUCAS FREITAS: Du kan tenke av n som ny linje. 1119 00:54:50,500 --> 00:54:52,258 >> LAUREN CARVALHO: Nice. 1120 00:54:52,258 --> 00:54:55,775 >> PUBLIKUM: Hva er det telling dash dash [uhørbart]? 1121 00:54:55,775 --> 00:55:00,240 >> LUCAS FREITAS: Count minus minus er det samme som pluss pluss, men 1122 00:55:00,240 --> 00:55:02,160 stedet for å øke, det reduseres med ett. 1123 00:55:02,160 --> 00:55:04,720 1124 00:55:04,720 --> 00:55:07,185 >> LAUREN CARVALHO: Noe mer mens sløyfe spørsmål? 1125 00:55:07,185 --> 00:55:09,460 Nei? 1126 00:55:09,460 --> 00:55:13,910 Åh, vi skulle har hoppet over det. 1127 00:55:13,910 --> 00:55:14,950 >> Dette er en gjør mens loop. 1128 00:55:14,950 --> 00:55:18,950 Svært lik en stund sløyfe bortsett dette tilfellet kan vi sjekke tilstanden etter 1129 00:55:18,950 --> 00:55:23,430 koden i selve sløyfen utfører en gang. 1130 00:55:23,430 --> 00:55:27,170 Så vi utføre koden først uansett hva. 1131 00:55:27,170 --> 00:55:31,956 Så vi sjekke tilstanden, utføre det igjen hvis betingelsen er sann. 1132 00:55:31,956 --> 00:55:35,450 1133 00:55:35,450 --> 00:55:38,950 >> Du vil finne deg selv å bruke denne når du ber om inndata fra brukeren. 1134 00:55:38,950 --> 00:55:42,080 Fordi du alltid nødt til å spør en gang, og deretter avhengig av hva 1135 00:55:42,080 --> 00:55:46,570 brukerens input er, må du kanskje reprompt og spør igjen og igjen hvis 1136 00:55:46,570 --> 00:55:50,670 innspill var ikke hva du forventet at det skulle være. 1137 00:55:50,670 --> 00:55:53,610 >> PUBLIKUM: Så det er som en form for folk å fylle ut. 1138 00:55:53,610 --> 00:55:56,010 >> LAUREN CARVALHO: Ja, akkurat. 1139 00:55:56,010 --> 00:55:59,720 Du vil finne, tror jeg, i din aller første PSett, du er nødt til å 1140 00:55:59,720 --> 00:56:04,010 bruke en gjør godt sløyfe for å samle input fra brukeren. 1141 00:56:04,010 --> 00:56:08,728 >> PUBLIKUM: Avhengig av situasjonen, mens loops vil tendere til å kjøre mer 1142 00:56:08,728 --> 00:56:12,805 oftere enn mens looper, som av en eller noe? 1143 00:56:12,805 --> 00:56:14,080 >> LAUREN CARVALHO: Hvis det er den nøyaktige - 1144 00:56:14,080 --> 00:56:17,400 >> LUCAS FREITAS: De bør alltid kjøre den eksakte mengden av ganger at du 1145 00:56:17,400 --> 00:56:19,130 vil den skal kjøre. 1146 00:56:19,130 --> 00:56:23,860 Som vi bruker gjøre mens fordi vi egentlig ønsket å få inngangs minst én gang. 1147 00:56:23,860 --> 00:56:27,220 I mens looper, noen ganger du ikke ønsker å utføre det i det hele tatt hvis det ikke er 1148 00:56:27,220 --> 00:56:28,540 Ved å utføre. 1149 00:56:28,540 --> 00:56:31,300 Så det kommer an på design. 1150 00:56:31,300 --> 00:56:35,900 Jeg mener, kan du enten bruke gjøre mens eller mens så lenge koden din gjør at 1151 00:56:35,900 --> 00:56:36,905 det er ment å gjøre. 1152 00:56:36,905 --> 00:56:38,470 >> LAUREN CARVALHO: Men jeg gjør tror svaret på ditt 1153 00:56:38,470 --> 00:56:40,540 Spørsmålet er trolig ja. 1154 00:56:40,540 --> 00:56:42,190 La oss si at tilstanden var falsk. 1155 00:56:42,190 --> 00:56:45,498 I ett tilfelle ville det løpe en gang, og et annet tilfelle det ville kjøre null ganger. 1156 00:56:45,498 --> 00:56:47,370 Så, ja. 1157 00:56:47,370 --> 00:56:49,260 >> Eventuelle flere spørsmål? 1158 00:56:49,260 --> 00:56:50,320 Ja? 1159 00:56:50,320 --> 00:56:56,443 >> PUBLIKUM: Kan loopen tilstand være en for loop i form av en variabel andre 1160 00:56:56,443 --> 00:56:57,385 enn [uhørbart]. 1161 00:56:57,385 --> 00:57:01,700 >> LAUREN CARVALHO: Yeah, det kan være hva som helst. 1162 00:57:01,700 --> 00:57:06,420 Sannsynligvis for begynnelsen Psets, du slipper å møte så fall, men 1163 00:57:06,420 --> 00:57:09,878 definitivt kan det være noe. 1164 00:57:09,878 --> 00:57:12,680 >> LUCAS FREITAS: Jeg tror vi er ferdige her. 1165 00:57:12,680 --> 00:57:13,290 >> LAUREN CARVALHO: Er vi? 1166 00:57:13,290 --> 00:57:13,480 Nei? 1167 00:57:13,480 --> 00:57:13,870 >> LUCAS FREITAS: Loops? 1168 00:57:13,870 --> 00:57:14,600 Yeah. 1169 00:57:14,600 --> 00:57:16,280 >> LAUREN CARVALHO: Vi bør ikke være. 1170 00:57:16,280 --> 00:57:17,760 Åh, er vi ferdige med sløyfer. 1171 00:57:17,760 --> 00:57:19,250 OK. 1172 00:57:19,250 --> 00:57:23,180 >> Egentlig, fordi vi har snakket så mye, la oss faktisk alle navigere 1173 00:57:23,180 --> 00:57:28,950 over til study.cs50.net/conditions. 1174 00:57:28,950 --> 00:57:34,460 Og du kommer til å navigere ned til problemene widgeten. 1175 00:57:34,460 --> 00:57:39,090 Vel, faktisk, mens folk får dette satt opp, er det CS50 Study 1176 00:57:39,090 --> 00:57:42,620 kommer til å bli et verktøy som dine TFs vil bruke til å forberede seg for seksjoner og at 1177 00:57:42,620 --> 00:57:45,230 dere kan bruke hvis du går glipp av seksjoner. 1178 00:57:45,230 --> 00:57:48,980 Det kommer til å inneholde en haug med lysbilder, noen tips og triks for hver 1179 00:57:48,980 --> 00:57:54,030 tema, og noen praksis problemer med løsninger. 1180 00:57:54,030 --> 00:57:57,200 >> Hvorfor ikke alle bare ta en titt på dette problemet her. 1181 00:57:57,200 --> 00:58:01,630 1182 00:58:01,630 --> 00:58:04,790 >> Jeg beklager, jeg burde ha minnet folk til å bringe bærbare datamaskiner i dag. 1183 00:58:04,790 --> 00:58:07,050 Men hvis du ikke har en bærbar PC, er det OK. 1184 00:58:07,050 --> 00:58:10,140 Du kan bare skrive dette ned på et stykke papir eller se over 1185 00:58:10,140 --> 00:58:12,890 naboens skulder. 1186 00:58:12,890 --> 00:58:16,380 >> La oss prøve og skrive et program som ber brukeren om å ta en gjetning, den 1187 00:58:16,380 --> 00:58:19,250 gjennomsnittlig antall barn per familie enhet i USA. 1188 00:58:19,250 --> 00:58:22,265 At antallet er to, forresten, som du kan se fra disse eksemplene. 1189 00:58:22,265 --> 00:58:24,770 1190 00:58:24,770 --> 00:58:29,030 >> Vi ønsker å skrive ut gjennomsnittlig antall barn per familie i USA, så vi 1191 00:58:29,030 --> 00:58:31,080 ønsker til hva? 1192 00:58:31,080 --> 00:58:35,480 Vi ønsker å samle innspill fra brukeren. 1193 00:58:35,480 --> 00:58:41,290 Og så avhengig av hva brukerens innspill er, du kommer til å skrive ut 1194 00:58:41,290 --> 00:58:44,850 enten dette er riktig eller dette er feil. 1195 00:58:44,850 --> 00:58:48,040 >> Og den aller første tingen som du vil se, hvis du klikker på den lille pilen ved 1196 00:58:48,040 --> 00:58:52,190 bunnen av problemet widgeten er en øye å notere ned noen pseudo. 1197 00:58:52,190 --> 00:58:53,340 Så du ikke programmerer ennå. 1198 00:58:53,340 --> 00:58:56,740 Du bare får din ideer i orden. 1199 00:58:56,740 --> 00:58:59,620 >> Er det noen som ønsker å hjelpe Lucas komme opp med den rette 1200 00:58:59,620 --> 00:59:01,270 pseudo for dette problemet? 1201 00:59:01,270 --> 00:59:04,900 >> LUCAS FREITAS: Hva er det første at vi bør nok gjøre her? 1202 00:59:04,900 --> 00:59:07,010 Hva tror dere? 1203 00:59:07,010 --> 00:59:08,260 >> PUBLIKUM: [uhørbart] 1204 00:59:08,260 --> 00:59:12,060 1205 00:59:12,060 --> 00:59:13,290 >> LUCAS FREITAS: Ja, OK. 1206 00:59:13,290 --> 00:59:16,610 Så, print. 1207 00:59:16,610 --> 00:59:19,480 Bare si utskrifts dette gjennomsnittet antall mennesker? 1208 00:59:19,480 --> 00:59:20,470 OK. 1209 00:59:20,470 --> 00:59:23,450 Skriv ut spørsmålet, la oss si. 1210 00:59:23,450 --> 00:59:25,951 Etter at jeg skriver dette spørsmålet, hva bør jeg gjøre? 1211 00:59:25,951 --> 00:59:27,875 >> PUBLIKUM: Få innspill. 1212 00:59:27,875 --> 00:59:30,690 >> LUCAS FREITAS: Få innspill. 1213 00:59:30,690 --> 00:59:32,864 Noe mer? 1214 00:59:32,864 --> 00:59:34,114 >> PUBLIKUM: Tilstand. 1215 00:59:34,114 --> 00:59:36,770 1216 00:59:36,770 --> 00:59:38,980 >> LUCAS FREITAS: Tilstand. 1217 00:59:38,980 --> 00:59:41,325 >> LAUREN CARVALHO: Hva er det tilstanden kommer til å bli? 1218 00:59:41,325 --> 00:59:43,550 >> PUBLIKUM: Antallet [uhørbart]. 1219 00:59:43,550 --> 00:59:44,440 >> LAUREN CARVALHO: Høyre. 1220 00:59:44,440 --> 00:59:46,945 >> LUCAS FREITAS: Så hva skal jeg å sjekke inn tilstanden? 1221 00:59:46,945 --> 00:59:48,750 >> PUBLIKUM: Hvis det er lik to. 1222 00:59:48,750 --> 00:59:50,640 >> LAUREN CARVALHO: Hvis det er lik to. 1223 00:59:50,640 --> 00:59:51,890 Nettopp. 1224 00:59:51,890 --> 00:59:58,340 1225 00:59:58,340 --> 01:00:00,140 >> LUCAS FREITAS: Er det noe annet som jeg bør gjøre? 1226 01:00:00,140 --> 01:00:01,390 >> PUBLIKUM: Tell. 1227 01:00:01,390 --> 01:00:05,184 1228 01:00:05,184 --> 01:00:08,110 >> LUCAS FREITAS: Så hvis det er lik 2, la oss si - 1229 01:00:08,110 --> 01:00:14,250 1230 01:00:14,250 --> 01:00:17,960 la meg bare skrive om innspill lik til 2, så hva jeg skal 1231 01:00:17,960 --> 01:00:23,665 å gjøre er å skrive ut riktig. 1232 01:00:23,665 --> 01:00:26,230 1233 01:00:26,230 --> 01:00:31,826 Og så annet, jeg kommer å skrive ut feil. 1234 01:00:31,826 --> 01:00:34,600 1235 01:00:34,600 --> 01:00:37,720 Noe mer? 1236 01:00:37,720 --> 01:00:38,670 Nei? 1237 01:00:38,670 --> 01:00:40,500 >> LAUREN CARVALHO: Så du kan klikke på den - 1238 01:00:40,500 --> 01:00:42,290 ikke alle har dette ned? 1239 01:00:42,290 --> 01:00:44,680 >> LUCAS FREITAS: Er det fornuftig? 1240 01:00:44,680 --> 01:00:46,226 Så nå skal vi prøve å kode dette. 1241 01:00:46,226 --> 01:00:50,140 >> LAUREN CARVALHO: Hvis du klikker på den lille arrow, sparer det faktisk din 1242 01:00:50,140 --> 01:00:51,900 pseudo, noe som er veldig spennende. 1243 01:00:51,900 --> 01:00:56,480 Og du kan lage dem inn kommentarer om du bare ønsker å minne deg selv på 1244 01:00:56,480 --> 01:00:57,075 hva de skal gjøre. 1245 01:00:57,075 --> 01:01:01,555 >> LUCAS FREITAS: Så for eksempel først Jeg kommer til å skrive spørsmålet, så 1246 01:01:01,555 --> 01:01:05,930 hvordan skal jeg gjøre det, egentlig? 1247 01:01:05,930 --> 01:01:07,050 printf. 1248 01:01:07,050 --> 01:01:12,130 Så printf, og spørsmålet er gjennomsnittlig antall barn per 1249 01:01:12,130 --> 01:01:14,110 familie i USA. 1250 01:01:14,110 --> 01:01:19,070 1251 01:01:19,070 --> 01:01:21,790 >> Så jeg kommer til å få input fra brukeren. 1252 01:01:21,790 --> 01:01:29,050 1253 01:01:29,050 --> 01:01:31,324 Så hvordan kan jeg gjøre det? 1254 01:01:31,324 --> 01:01:32,200 >> PUBLIKUM: Få Int.. 1255 01:01:32,200 --> 01:01:33,076 >> LAUREN CARVALHO: GetInt. 1256 01:01:33,076 --> 01:01:33,890 >> LUCAS FREITAS: OK. 1257 01:01:33,890 --> 01:01:35,220 Så først erklære, ikke sant? 1258 01:01:35,220 --> 01:01:39,300 int, la oss kalle det n er lik GetInt. 1259 01:01:39,300 --> 01:01:42,610 1260 01:01:42,610 --> 01:01:44,670 >> Og nå tilstanden. 1261 01:01:44,670 --> 01:01:49,250 Så la meg si at jeg kommer å her Sjekk svaret. 1262 01:01:49,250 --> 01:01:57,290 Så først, hvis inngang, som er n, er lik til - hvordan skal jeg skrive det? 1263 01:01:57,290 --> 01:01:58,480 >> PUBLIKUM: Lik lik. 1264 01:01:58,480 --> 01:02:00,000 >> LUCAS FREITAS: Perfect. 1265 01:02:00,000 --> 01:02:00,670 Så n. 1266 01:02:00,670 --> 01:02:04,600 Og legg merke til at jeg gjør et mellomrom, lik, lik, plass, sant. 1267 01:02:04,600 --> 01:02:06,930 Og nå hva skal jeg gjøre? 1268 01:02:06,930 --> 01:02:08,820 Noe som er veldig viktig for stil. 1269 01:02:08,820 --> 01:02:10,070 Klammeparentes. 1270 01:02:10,070 --> 01:02:16,570 1271 01:02:16,570 --> 01:02:17,795 >> Og så kommer jeg til å skrive ut. 1272 01:02:17,795 --> 01:02:19,790 Hvordan skriver jeg ut? 1273 01:02:19,790 --> 01:02:22,500 printf. 1274 01:02:22,500 --> 01:02:24,568 >> PUBLIKUM: Kan det bli store bokstaver? 1275 01:02:24,568 --> 01:02:27,166 1276 01:02:27,166 --> 01:02:28,380 >> LUCAS FREITAS: Nei. 1277 01:02:28,380 --> 01:02:31,000 Det er ment å være alle små bokstaver. 1278 01:02:31,000 --> 01:02:32,250 Så det er riktig. 1279 01:02:32,250 --> 01:02:40,990 1280 01:02:40,990 --> 01:02:44,870 >> Vil dette være nok for printf uttalelse, eller jeg mangler noe? 1281 01:02:44,870 --> 01:02:46,265 >> PUBLIKUM: Ny linje. 1282 01:02:46,265 --> 01:02:50,220 >> LUCAS FREITAS: Ny linje, ja. 1283 01:02:50,220 --> 01:02:51,250 Og nå annet. 1284 01:02:51,250 --> 01:02:57,290 >> PUBLIKUM: Er det en plass etter printf, eller nei? 1285 01:02:57,290 --> 01:03:00,820 >> LAUREN CARVALHO: Vi bør Sjekk stilen guide. 1286 01:03:00,820 --> 01:03:02,260 >> PUBLIKUM: Det bør ikke være. 1287 01:03:02,260 --> 01:03:03,510 >> LUCAS FREITAS: Bør ikke være, OK. 1288 01:03:03,510 --> 01:03:05,820 1289 01:03:05,820 --> 01:03:13,605 Så annet, printf, "Det er feil." 1290 01:03:13,605 --> 01:03:17,105 >> LAUREN CARVALHO: Oops, dine sitater. 1291 01:03:17,105 --> 01:03:17,950 >> LUCAS FREITAS: OK. 1292 01:03:17,950 --> 01:03:18,600 Noe mer? 1293 01:03:18,600 --> 01:03:20,770 Ser det bra ut? 1294 01:03:20,770 --> 01:03:21,890 >> LAUREN CARVALHO: Skal vi prøve det? 1295 01:03:21,890 --> 01:03:23,190 >> LUCAS FREITAS: Ja, la oss kjøre den. 1296 01:03:23,190 --> 01:03:25,880 1297 01:03:25,880 --> 01:03:29,070 Så det er kompilering, og det synes at det fungerer. 1298 01:03:29,070 --> 01:03:31,465 La oss prøve to barn. 1299 01:03:31,465 --> 01:03:34,110 Det er riktig. 1300 01:03:34,110 --> 01:03:37,300 Og nå la oss kjøre igjen, men nå i stedet av å sette to barn, la oss 1301 01:03:37,300 --> 01:03:40,990 si at jeg kommer til å sette som fem. 1302 01:03:40,990 --> 01:03:41,515 Det er feil. 1303 01:03:41,515 --> 01:03:42,670 Så det virker som det fungerer. 1304 01:03:42,670 --> 01:03:44,160 >> LAUREN CARVALHO: Hvorfor ikke vise dem hva skjer hvis du putter noe 1305 01:03:44,160 --> 01:03:45,055 rart, som noen bokstaver. 1306 01:03:45,055 --> 01:03:45,790 >> LUCAS FREITAS: Å, ja. 1307 01:03:45,790 --> 01:03:47,430 La oss også sjekke det. 1308 01:03:47,430 --> 01:03:51,170 Hva om brukeren prøver å rote med programmet, og de bare 1309 01:03:51,170 --> 01:03:57,430 skrive, vet jeg ikke to. 1310 01:03:57,430 --> 01:03:58,320 Det kommer til å si retry. 1311 01:03:58,320 --> 01:04:00,780 >> LAUREN CARVALHO: Så GetInt ber dem om å prøve på nytt. 1312 01:04:00,780 --> 01:04:02,115 Vi trengte ikke å ta vare av det selv. 1313 01:04:02,115 --> 01:04:02,750 >> LUCAS FREITAS: Yeah. 1314 01:04:02,750 --> 01:04:06,853 Så med mindre jeg faktisk sette et tall, er det kommer til å fortsette å spørre meg om å prøve på nytt. 1315 01:04:06,853 --> 01:04:08,330 >> PUBLIKUM: Hvordan fikk du kjøre den? 1316 01:04:08,330 --> 01:04:10,570 >> LUCAS FREITAS: Bare klikk denne stjernen knappen. 1317 01:04:10,570 --> 01:04:11,940 >> LAUREN CARVALHO: Du bør gå opp. 1318 01:04:11,940 --> 01:04:13,320 Der du går. 1319 01:04:13,320 --> 01:04:15,550 >> LUCAS FREITAS: Stjernen knappen til høyre der. 1320 01:04:15,550 --> 01:04:16,040 Yeah? 1321 01:04:16,040 --> 01:04:19,960 >> PUBLIKUM: Betyr det be [uhørbart] med desimaltall også? 1322 01:04:19,960 --> 01:04:21,235 >> LAUREN CARVALHO: Jeg tror det vil. 1323 01:04:21,235 --> 01:04:22,660 >> LUCAS FREITAS: Hvis den gjør det? 1324 01:04:22,660 --> 01:04:24,990 >> LAUREN CARVALHO: Hvis de skriver i et desimaltall, tror jeg 1325 01:04:24,990 --> 01:04:25,880 det kommer til å be. 1326 01:04:25,880 --> 01:04:26,586 >> LUCAS FREITAS: La oss se. 1327 01:04:26,586 --> 01:04:28,360 >> LAUREN CARVALHO: Fordi det er ikke en int. 1328 01:04:28,360 --> 01:04:32,056 1329 01:04:32,056 --> 01:04:33,442 >> LUCAS FREITAS: Yeah. 1330 01:04:33,442 --> 01:04:37,370 >> LAUREN CARVALHO: Så det er det ikke en int, Få Int vil be deg om å prøve på nytt. 1331 01:04:37,370 --> 01:04:40,795 >> PUBLIKUM: Så hvor i den koden ville være desimalplassen som ber 1332 01:04:40,795 --> 01:04:46,005 bruker som de har til å gå inn et heltall spesifikt? 1333 01:04:46,005 --> 01:04:48,480 >> LAUREN CARVALHO: GetInt er faktisk gjøre det for oss. 1334 01:04:48,480 --> 01:04:50,600 >> PUBLIKUM: Nei, jeg mener hvis vi ønsket å gå inn [uhørbart] 1335 01:04:50,600 --> 01:04:55,070 >> LUCAS FREITAS: Du kan si som gjennomsnittlig antall barn i USA. 1336 01:04:55,070 --> 01:04:56,120 Jeg vet ikke. 1337 01:04:56,120 --> 01:05:01,761 Vi kan si, for eksempel, "Vennligst inngangs et heltall. " 1338 01:05:01,761 --> 01:05:04,270 >> LAUREN CARVALHO: Et heltall lik til det gjennomsnittlige antall. 1339 01:05:04,270 --> 01:05:06,190 Jeg mener, det er bare hvordan du ordet det, ikke sant? 1340 01:05:06,190 --> 01:05:06,520 >> LUCAS FREITAS: Yeah. 1341 01:05:06,520 --> 01:05:08,420 Dette er ikke en del av faktisk koding. 1342 01:05:08,420 --> 01:05:11,000 Det er mer av som hva du kommer til å ønske å 1343 01:05:11,000 --> 01:05:13,987 skriver i programmet. 1344 01:05:13,987 --> 01:05:17,723 >> PUBLIKUM: Hvordan ville vi har kjørt den hvis det var faktisk i gedit [uhørbart]. 1345 01:05:17,723 --> 01:05:19,130 I stedet for å trykke på play? 1346 01:05:19,130 --> 01:05:21,180 >> LUCAS FREITAS: Vi vil første kompilere den. 1347 01:05:21,180 --> 01:05:25,080 Vi kan gjøre det ved å gjøre make og navnet på filen. 1348 01:05:25,080 --> 01:05:29,896 Og deretter å kjøre den, vil vi gjøre dot slash og navnet på programmet. 1349 01:05:29,896 --> 01:05:36,588 >> PUBLIKUM: Jeg antar det jeg mente var om vi ønsket at programmet skal svare på 1350 01:05:36,588 --> 01:05:42,010 deres feil, ugyldig oppføring, du bør ikke sette i - 1351 01:05:42,010 --> 01:05:45,710 >> LUCAS FREITAS: Vi vil ikke være i stand til å gjøre det fordi koden dette sier 1352 01:05:45,710 --> 01:05:50,350 prøv på nytt kommer fra Get Int som er en funksjon som allerede er iverksatt 1353 01:05:50,350 --> 01:05:55,790 for oss via CS50-biblioteket, og siden det er allerede implementert det, vi 1354 01:05:55,790 --> 01:05:58,340 kan ikke bare [uhørbart]. 1355 01:05:58,340 --> 01:06:00,780 >> LAUREN CARVALHO: Hvis du ikke bruker GetInt, så kan du gjøre det. 1356 01:06:00,780 --> 01:06:01,490 >> LUCAS FREITAS: Yeah. 1357 01:06:01,490 --> 01:06:03,750 Men hvis du bruker GetInt, kan du ikke. 1358 01:06:03,750 --> 01:06:05,427 Eventuelle andre spørsmål? 1359 01:06:05,427 --> 01:06:12,938 >> PUBLIKUM: Kunne du ha gått med lignende GetFloat og da kunne sette 1360 01:06:12,938 --> 01:06:14,381 den i en desimal? 1361 01:06:14,381 --> 01:06:15,343 >> LUCAS FREITAS: Yeah. 1362 01:06:15,343 --> 01:06:15,824 >> PUBLIKUM: OK. 1363 01:06:15,824 --> 01:06:19,210 Da har du bare kunne inngang flyte en likemenn - 1364 01:06:19,210 --> 01:06:19,950 >> LAUREN CARVALHO: Yeah. 1365 01:06:19,950 --> 01:06:22,740 Nøyaktig den samme bortsett fra en flyte i stedet for en int. 1366 01:06:22,740 --> 01:06:27,372 >> LUCAS FREITAS: Bare legg den her og deretter GetFloat der. 1367 01:06:27,372 --> 01:06:29,795 >> PUBLIKUM: Som du vil se eller har sett - 1368 01:06:29,795 --> 01:06:31,327 >> LAUREN CARVALHO: vi har ikke fått det ennå. 1369 01:06:31,327 --> 01:06:36,490 >> PUBLIKUM: - gjør ulikhet med flyter ikke [uhørbart] 1370 01:06:36,490 --> 01:06:40,290 >> PUBLIKUM: Hva betyr de semikolon? 1371 01:06:40,290 --> 01:06:43,220 >> LAUREN CARVALHO: Semikolon bare betyr at denne setningen er fullstendig, 1372 01:06:43,220 --> 01:06:45,030 og vi kommer til å gå til neste lysbilde. 1373 01:06:45,030 --> 01:06:47,040 >> PUBLIKUM: Så det er nødvendig hver gang? 1374 01:06:47,040 --> 01:06:48,330 >> LAUREN CARVALHO: Yeah. 1375 01:06:48,330 --> 01:06:53,130 Vel, OK, så ikke for disse forholdene, fordi de er 1376 01:06:53,130 --> 01:06:54,090 innkapsle noe. 1377 01:06:54,090 --> 01:07:00,290 Så i utgangspunktet hvis det er noe som forårsaker du deretter opprette en klammeparentes 1378 01:07:00,290 --> 01:07:03,000 blokk, ikke sette et semikolon ved enden. 1379 01:07:03,000 --> 01:07:04,200 >> LUCAS FREITAS: Men alt annet, ja. 1380 01:07:04,200 --> 01:07:06,670 Når du er ferdig med en uttalelse, sette semikolon. 1381 01:07:06,670 --> 01:07:10,380 Og hvis du glemmer semikolon, den kompilatoren kommer til å bli sint på deg, 1382 01:07:10,380 --> 01:07:12,640 og du kommer til å ha å prøve å fikse det. 1383 01:07:12,640 --> 01:07:16,520 >> LAUREN CARVALHO: Hvis jeg sette et semikolon her, som ville stoppe dette, og jeg 1384 01:07:16,520 --> 01:07:18,780 aldri ville komme til å utføre det som er innsiden, for øvrig. 1385 01:07:18,780 --> 01:07:21,113 Så det er en av de vanligste feilene. 1386 01:07:21,113 --> 01:07:22,390 >> PUBLIKUM: Alltid utføring. 1387 01:07:22,390 --> 01:07:22,950 >> LAUREN CARVALHO: Yeah. 1388 01:07:22,950 --> 01:07:25,860 I dette tilfellet, ville vi alltid utføre hva som er inni. 1389 01:07:25,860 --> 01:07:29,050 >> PUBLIKUM: Din stil [uhørbart] feste det for deg, tenkte. 1390 01:07:29,050 --> 01:07:29,802 >> LAUREN CARVALHO: Åh, det er sant. 1391 01:07:29,802 --> 01:07:34,298 >> PUBLIKUM: [uhørbart] singel linje ting [uhørbart] 1392 01:07:34,298 --> 01:07:35,286 >> PUBLIKUM: Ja? 1393 01:07:35,286 --> 01:07:37,756 >> PUBLIKUM: Kan du ha flere innganger i en linje? 1394 01:07:37,756 --> 01:07:41,214 Så som du kan spørre brukerne å skrive ut to ting? 1395 01:07:41,214 --> 01:07:42,530 >> LAUREN CARVALHO: Bruker ikke - 1396 01:07:42,530 --> 01:07:44,520 >> LUCAS FREITAS: Nei. 1397 01:07:44,520 --> 01:07:47,040 La oss si at jeg også vil ha å få denne heltall m. 1398 01:07:47,040 --> 01:07:49,558 Jeg må gjøre det på en annen linje. 1399 01:07:49,558 --> 01:07:54,992 >> PUBLIKUM: Hvis du skulle kjøre det, hvordan [uhørbart]? 1400 01:07:54,992 --> 01:07:59,438 Det ville skrive meldingen det [uhørbart] 1401 01:07:59,438 --> 01:08:00,940 og da vil du angi ett og - 1402 01:08:00,940 --> 01:08:01,840 >> LAUREN CARVALHO: Vel, kjøre den. 1403 01:08:01,840 --> 01:08:04,365 Jeg mener, det er ingenting som hindrer oss fra bare kjører det og se hva 1404 01:08:04,365 --> 01:08:06,610 ville skje. 1405 01:08:06,610 --> 01:08:08,080 >> LUCAS FREITAS: Jeg tror det er kommer til å klager på oss 1406 01:08:08,080 --> 01:08:08,977 fordi vi ikke bruker - 1407 01:08:08,977 --> 01:08:09,751 >> LAUREN CARVALHO: Oops. 1408 01:08:09,751 --> 01:08:12,580 >> LUCAS FREITAS: Det klaget på oss riktig nå fordi vi ikke bruker denne 1409 01:08:12,580 --> 01:08:21,640 variabel, men hvis jeg f.eks n er lik lik, og m er lik 1410 01:08:21,640 --> 01:08:26,849 lik, så hva vil skje i dette tilfellet? 1411 01:08:26,849 --> 01:08:28,830 Hva ville dette programmet gjøre? 1412 01:08:28,830 --> 01:08:30,330 >> PUBLIKUM: Jeg bare lurer hvordan det ville - 1413 01:08:30,330 --> 01:08:31,550 >> LAUREN CARVALHO: Hun vil bare å vite hvordan den ser ut 1414 01:08:31,550 --> 01:08:34,189 liker, tror jeg, ikke sant? 1415 01:08:34,189 --> 01:08:36,819 Slik at det tok en av dem, og deretter det tok den andre. 1416 01:08:36,819 --> 01:08:41,279 1417 01:08:41,279 --> 01:08:43,069 >> Jeg tror vi bør gå videre, fordi vi har ett mer 1418 01:08:43,069 --> 01:08:44,689 lysbildefremvisning å gå før - 1419 01:08:44,689 --> 01:08:46,269 har du lyst til å trekke opp matte? 1420 01:08:46,269 --> 01:08:47,558 >> LUCAS FREITAS: Ja, matte. 1421 01:08:47,558 --> 01:09:00,033 1422 01:09:00,033 --> 01:09:02,206 >> LAUREN CARVALHO: Gi meg bare ett sekund. 1423 01:09:02,206 --> 01:09:07,390 1424 01:09:07,390 --> 01:09:14,260 >> Det er noen forskjellige numerisk variabler i C. Tall data i C 1425 01:09:14,260 --> 01:09:18,130 kan deles inn i ulike typer, og disse er de du vil 1426 01:09:18,130 --> 01:09:19,570 se oftest. 1427 01:09:19,570 --> 01:09:20,910 >> Og int er et helt tall. 1428 01:09:20,910 --> 01:09:23,189 Du kan ikke ha noen desimaler. 1429 01:09:23,189 --> 01:09:27,754 I Appliance, tar det 32 bits å lagre en int. 1430 01:09:27,754 --> 01:09:30,450 >> En flottør kan ha desimaler. 1431 01:09:30,450 --> 01:09:34,330 Det tar også 32 bits for å lagre en flottør i Appliance. 1432 01:09:34,330 --> 01:09:42,270 >> En dobbel er et tall med en desimal punkt som tar 64 bits for å lagre den, 1433 01:09:42,270 --> 01:09:44,470 noe som betyr at du kan bare ha større presisjon fordi 1434 01:09:44,470 --> 01:09:46,426 du kan ha mer - 1435 01:09:46,426 --> 01:09:47,785 hva kaller du det? 1436 01:09:47,785 --> 01:09:48,640 >> LUCAS FREITAS: Ja, det er mer. 1437 01:09:48,640 --> 01:09:52,140 >> LAUREN Carvalho: Flere steder etter desimaltegnet. 1438 01:09:52,140 --> 01:09:57,140 Og en lang lang er et helt tall som tar 64 bits til 1439 01:09:57,140 --> 01:09:58,395 sår det i Appliance. 1440 01:09:58,395 --> 01:10:00,278 >> LUCAS FREITAS: Så det kan være større enn ints kan være. 1441 01:10:00,278 --> 01:10:03,320 1442 01:10:03,320 --> 01:10:08,380 >> LAUREN CARVALHO: Saken om data typer i C er at de forteller deg hva 1443 01:10:08,380 --> 01:10:11,050 type data du kan lagre i variabelen. 1444 01:10:11,050 --> 01:10:15,860 De forteller deg hvordan du kan bruke denne variabel i programmet. 1445 01:10:15,860 --> 01:10:19,650 Det er veldig viktig å bare holde styr av hva datatype du bruker, og hvis 1446 01:10:19,650 --> 01:10:23,070 du trenger ikke å kaste fra en datatype til en annen, må du kontrollere at du vet 1447 01:10:23,070 --> 01:10:25,250 nøyaktig hva som skjer når det støping finner sted. 1448 01:10:25,250 --> 01:10:28,520 Og du vil se et eksempel senere på i disse lysbilder av en 1449 01:10:28,520 --> 01:10:31,490 feil som kan oppstå. 1450 01:10:31,490 --> 01:10:35,300 >> La oss ta en titt på litt matematikk i C og tror virkelig nøye, antar jeg, 1451 01:10:35,300 --> 01:10:38,470 om hva som skjer når dette matematikk foregår. 1452 01:10:38,470 --> 01:10:43,552 I den aller første linje, hva er skjer når jeg erklærer x? 1453 01:10:43,552 --> 01:10:48,921 >> PUBLIKUM: Dere tillater x å være noe? 1454 01:10:48,921 --> 01:10:49,700 >> LAUREN CARVALHO: Yeah. 1455 01:10:49,700 --> 01:10:54,040 Vel, jeg egentlig spør drifts system for 32 biter av minne, ikke sant? 1456 01:10:54,040 --> 01:10:57,890 Der jeg kan lagre en int, og Jeg kommer til å kalle det int x. 1457 01:10:57,890 --> 01:11:01,370 >> LUCAS FREITAS: I utgangspunktet går i minnet og finne et sted som har 32 1458 01:11:01,370 --> 01:11:05,290 biter og ordtak, hei, jeg vil ha denne plassen, og det kommer til å bli kalt x. 1459 01:11:05,290 --> 01:11:08,590 Så du er bare ganske mye funn en boks i hukommelsen for å 1460 01:11:08,590 --> 01:11:10,440 lagre verdier for x. 1461 01:11:10,440 --> 01:11:13,980 >> LAUREN CARVALHO: Og da jeg initial x, hvilket betyr at jeg bare lagre 1462 01:11:13,980 --> 01:11:20,270 verdien av to på det stedet, som blings minne, som vi spurte drifts 1463 01:11:20,270 --> 01:11:21,860 Systemet for. 1464 01:11:21,860 --> 01:11:25,090 Og her nede hva vi holder på med er vi faktisk erklære og 1465 01:11:25,090 --> 01:11:29,060 initialisering y på én linje i stedet for i to linjer som vi gjorde her oppe, 1466 01:11:29,060 --> 01:11:33,960 som også er et helt greit, er vi legger en til x, og vi lagrer at 1467 01:11:33,960 --> 01:11:34,950 verdi i y. 1468 01:11:34,950 --> 01:11:39,360 >> LUCAS FREITAS: Så i utgangspunktet hva dette linjen gjør det, den finner nå en boks for y, 1469 01:11:39,360 --> 01:11:41,990 og deretter sin verdi, det som du kommer til å sette inne i boksen, er 1470 01:11:41,990 --> 01:11:43,800 kommer til å være verdien av x pluss en. 1471 01:11:43,800 --> 01:11:45,850 Så det har denne boksen for y. 1472 01:11:45,850 --> 01:11:49,980 Det blir verdien av x, ser her, og se at det er to. 1473 01:11:49,980 --> 01:11:53,035 Sett det der, pluss en, så det setter et tre der. 1474 01:11:53,035 --> 01:11:54,290 Betyr det fornuftig? 1475 01:11:54,290 --> 01:11:55,780 Så y vil være to i dette tilfellet. 1476 01:11:55,780 --> 01:11:58,993 1477 01:11:58,993 --> 01:12:00,770 >> LAUREN CARVALHO: Ok, kult. 1478 01:12:00,770 --> 01:12:06,010 Vi så noen tillegg, så la oss nå tenke om divisjon i C. Her er jeg 1479 01:12:06,010 --> 01:12:11,490 erklære og initialisere en dupp kalt svar og dele en med 10, 1480 01:12:11,490 --> 01:12:14,860 og da skal jeg skrive ut svaret til to desimaler. 1481 01:12:14,860 --> 01:12:18,800 Og legg merke til her, i mitt printf uttalelse, når jeg ønsker å skrive ut noe til to 1482 01:12:18,800 --> 01:12:25,600 desimaler, er% .2 f hva jeg ønsker å bruke. 1483 01:12:25,600 --> 01:12:28,880 1484 01:12:28,880 --> 01:12:31,760 Så poenget to er bare å si Jeg trenger to steder etter 1485 01:12:31,760 --> 01:12:34,980 desimal skrives ut. 1486 01:12:34,980 --> 01:12:38,740 >> Nå, hva kommer til å skje hvis jeg kjører denne koden? 1487 01:12:38,740 --> 01:12:40,500 Er det noen som har en idé? 1488 01:12:40,500 --> 01:12:42,721 Hva ville skrive ut? 1489 01:12:42,721 --> 01:12:45,010 >> LUCAS FREITAS: Hva er vi forventer å få. 1490 01:12:45,010 --> 01:12:46,810 >> LAUREN CARVALHO: Hva gjør vi ønsker, først av alt? 1491 01:12:46,810 --> 01:12:48,871 >> LUCAS FREITAS: [uhørbart] 1492 01:12:48,871 --> 01:12:51,120 >> LAUREN CARVALHO: 0.1, ja. 1493 01:12:51,120 --> 01:12:52,325 Men hva vil skrive ut? 1494 01:12:52,325 --> 01:12:53,275 >> PUBLIKUM: [uhørbart] 1495 01:12:53,275 --> 01:12:56,760 >> LAUREN CARVALHO: Vel, nei, faktisk. 1496 01:12:56,760 --> 01:13:01,400 Dette er hva jeg snakket om hvorfor du trenger for å holde svært forsiktig styr på 1497 01:13:01,400 --> 01:13:02,550 dine datatyper. 1498 01:13:02,550 --> 01:13:05,000 Så, hva datatype er dette? 1499 01:13:05,000 --> 01:13:06,250 Er en int, ikke sant? 1500 01:13:06,250 --> 01:13:07,600 Det er ingen desimal. 1501 01:13:07,600 --> 01:13:08,770 10 er også en int. 1502 01:13:08,770 --> 01:13:09,930 Det er ingen desimal. 1503 01:13:09,930 --> 01:13:15,770 >> Hvis jeg deler en int med en int, får jeg en int, som ikke er 0.1, fordi ints 1504 01:13:15,770 --> 01:13:18,630 kan ikke ha desimaler, men bare 0. 1505 01:13:18,630 --> 01:13:21,005 Fordi en int bare avkorter off de desimaler. 1506 01:13:21,005 --> 01:13:24,280 >> LUCAS FREITAS: Så når du gjør operasjoner med ints, du kommer til å 1507 01:13:24,280 --> 01:13:25,990 få en int som svaret. 1508 01:13:25,990 --> 01:13:28,930 Så i utgangspunktet, hva maskinen gjør, det skiller en by 1509 01:13:28,930 --> 01:13:31,520 10, og det blir 0,1. 1510 01:13:31,520 --> 01:13:34,870 Men så er det som å, vent, dette er ment å være et heltall, slik at du bare 1511 01:13:34,870 --> 01:13:37,045 ignorere 0,1, så det er nå bare 0. 1512 01:13:37,045 --> 01:13:41,782 >> LAUREN CARVALHO: Så når jeg skriver dette ut, får jeg 0,00 i stedet for 0,10. 1513 01:13:41,782 --> 01:13:44,075 >> LUCAS FREITAS: Betyr det fornuftig? 1514 01:13:44,075 --> 01:13:45,530 >> LAUREN CARVALHO: Det er en slags av uheldig, ikke sant? 1515 01:13:45,530 --> 01:13:47,290 >> LUCAS FREITAS: Så hvordan kan vi løse dette? 1516 01:13:47,290 --> 01:13:48,620 >> LAUREN Carvalho: La oss prøve og fikse det. 1517 01:13:48,620 --> 01:13:51,570 1518 01:13:51,570 --> 01:13:54,810 Her er et eksempel på hvor jeg er faktisk avstøpning en 1519 01:13:54,810 --> 01:13:56,650 og 10 til flyter. 1520 01:13:56,650 --> 01:13:58,800 Så nå, er en ikke lenger en int. 1521 01:13:58,800 --> 01:14:00,020 1 er en flottør. 1522 01:14:00,020 --> 01:14:02,590 Forresten, er dette bare syntaksen for når du ønsker å kaste fra en 1523 01:14:02,590 --> 01:14:03,410 datatype til en annen. 1524 01:14:03,410 --> 01:14:07,140 Du kan bare sette datatypen i parenteser og har som bare forut 1525 01:14:07,140 --> 01:14:10,860 verdien som du kaster. 1526 01:14:10,860 --> 01:14:15,800 >> Så her er jeg dele en flåte av en flottør for å få en flyte svar. 1527 01:14:15,800 --> 01:14:19,535 Og ja, dette ville i Faktisk skrive ut 0.10. 1528 01:14:19,535 --> 01:14:20,470 Betyr det fornuftig? 1529 01:14:20,470 --> 01:14:24,110 >> LUCAS FREITAS: Så type casting er bare konvertere fra en type til en annen. 1530 01:14:24,110 --> 01:14:29,460 Så flyter en er faktisk 1.000. 1531 01:14:29,460 --> 01:14:33,400 Ikke akkurat dette, men det er noe med desimaler 1532 01:14:33,400 --> 01:14:34,715 det er faktisk en. 1533 01:14:34,715 --> 01:14:35,960 Betyr det fornuftig? 1534 01:14:35,960 --> 01:14:36,260 Yeah? 1535 01:14:36,260 --> 01:14:40,990 >> PUBLIKUM: Hva om du gjorde float svar er lik 1,0 delt på 10? 1536 01:14:40,990 --> 01:14:43,940 >> LAUREN CARVALHO: Du blir faktisk kommer å se at i neste lysbilde. 1537 01:14:43,940 --> 01:14:47,150 Det er faktisk vår neste lysbilde. 1538 01:14:47,150 --> 01:14:50,740 Dette er faktisk en hyggeligere enn skriver casting, tror jeg. 1539 01:14:50,740 --> 01:14:53,470 Så disse to er flyter bare ved arten av det faktum at de 1540 01:14:53,470 --> 01:14:54,926 har desimaler. 1541 01:14:54,926 --> 01:14:55,300 Ja? 1542 01:14:55,300 --> 01:14:57,670 >> PUBLIKUM: Hva om du gjorde [uhørbart] 1543 01:14:57,670 --> 01:14:59,480 delt på 10? 1544 01:14:59,480 --> 01:15:02,270 >> LAUREN CARVALHO: Egentlig en dupp delt på en int faktisk gir deg en 1545 01:15:02,270 --> 01:15:03,670 flyte, så det ville fungere fint. 1546 01:15:03,670 --> 01:15:08,070 1547 01:15:08,070 --> 01:15:09,120 >> Vent, ikke alle forstår dette? 1548 01:15:09,120 --> 01:15:12,720 Fordi dette kommer til å bli en virkelig big deal i Pset1, faktisk. 1549 01:15:12,720 --> 01:15:13,130 Ja? 1550 01:15:13,130 --> 01:15:14,762 >> PUBLIKUM: Kan du bare raskt gå over den røde delen? 1551 01:15:14,762 --> 01:15:16,380 >> LAUREN CARVALHO: Den røde delen, ja. 1552 01:15:16,380 --> 01:15:17,250 Lucas, vil du? 1553 01:15:17,250 --> 01:15:18,020 >> LUCAS FREITAS: OK. 1554 01:15:18,020 --> 01:15:20,570 Så husk at prosent er en plassholder. 1555 01:15:20,570 --> 01:15:22,150 Det er som en tom plass. 1556 01:15:22,150 --> 01:15:26,240 Så la oss prøve å forstå alt som skjer her. 1557 01:15:26,240 --> 01:15:28,170 Prosent betyr at det er en plassholder. 1558 01:15:28,170 --> 01:15:33,640 Da har du f, noe som betyr at denne plassholderen er for en dupp. 1559 01:15:33,640 --> 01:15:38,870 Den siste tingen som vi har her er en 0,2, som betyr at jeg ønsker å ha to 1560 01:15:38,870 --> 01:15:42,410 desimaler for flottøren. 1561 01:15:42,410 --> 01:15:48,510 >> Hvis jeg bare hadde% f, de vil sette en haug med desimaler. 1562 01:15:48,510 --> 01:15:54,170 Så jeg kan bare sette 0,2 eller 0,1 eller 0,5, eller uansett, og det kommer til å sette det 1563 01:15:54,170 --> 01:15:55,950 antall desimaler. 1564 01:15:55,950 --> 01:15:59,950 Det eneste er at hvis du legger ut .100 Eller .1,000, er det faktisk ikke 1565 01:15:59,950 --> 01:16:04,200 kommer til å sette alle disse desimaler fordi den ikke har nok minne 1566 01:16:04,200 --> 01:16:06,432 å ha det presisjon. 1567 01:16:06,432 --> 01:16:07,955 >> Eventuelle andre spørsmål? 1568 01:16:07,955 --> 01:16:08,450 Yeah? 1569 01:16:08,450 --> 01:16:12,970 >> PUBLIKUM: Så flyte bare tillater du å gå utover heltall? 1570 01:16:12,970 --> 01:16:13,720 >> LUCAS FREITAS: Ja. 1571 01:16:13,720 --> 01:16:17,345 >> LAUREN CARVALHO: Vel, en dupp bare gjør at du kan ha desimaler. 1572 01:16:17,345 --> 01:16:20,460 >> LUCAS FREITAS: Det betyr bare at du nå kan ha desimaltall. 1573 01:16:20,460 --> 01:16:25,728 >> PUBLIKUM: Hvorfor skulle vi noen gang bruke heltall? 1574 01:16:25,728 --> 01:16:27,870 >> LUCAS FREITAS: Hvorfor skulle du bruke heltall? 1575 01:16:27,870 --> 01:16:31,810 Kanskje hvis du teller fra 0 til 10., du ønsker å bruke faktisk et heltall. 1576 01:16:31,810 --> 01:16:33,370 Du trenger ikke å bruke en dupp. 1577 01:16:33,370 --> 01:16:35,430 I noen situasjoner, gjør du ikke må faktisk - 1578 01:16:35,430 --> 01:16:37,040 >> LAUREN CARVALHO: Kanskje du ønsker ikke desimaler. 1579 01:16:37,040 --> 01:16:38,600 >> LUCAS FREITAS: Kanskje du ikke ønsker å bruke en dupp. 1580 01:16:38,600 --> 01:16:42,660 >> LAUREN CARVALHO: Den andre tingen er, husk, begge satt en dupp og en int 1581 01:16:42,660 --> 01:16:46,170 ta 32 bits til å lagre dem, og kanskje om du ikke ønsker å kaste bort biter på 1582 01:16:46,170 --> 01:16:48,062 desimaler. 1583 01:16:48,062 --> 01:16:49,750 >> LUCAS FREITAS: Yeah. 1584 01:16:49,750 --> 01:16:51,910 Så ut som, bare tenke på dette. 1585 01:16:51,910 --> 01:16:55,200 Du har 32 bits for både en int og en flåte. 1586 01:16:55,200 --> 01:16:59,400 For en int, alle disse 32 bits gå til heltall del. 1587 01:16:59,400 --> 01:17:03,460 Hvis du bruker en flåte med 32 bits, du har en del av dette minnet blir brukt 1588 01:17:03,460 --> 01:17:06,820 etter nummeret, for hele tall, og den andre delen blir brukt for 1589 01:17:06,820 --> 01:17:08,300 desimaler. 1590 01:17:08,300 --> 01:17:12,370 Så det betyr at du ikke kan komme til svært store tall med flottører fordi 1591 01:17:12,370 --> 01:17:16,020 flottøren er allerede bruker mye minnet for desimaler. 1592 01:17:16,020 --> 01:17:17,014 Yeah? 1593 01:17:17,014 --> 01:17:21,487 >> PUBLIKUM: Det første svaret, hva er det du gjør? 1594 01:17:21,487 --> 01:17:25,214 Er det å sette verdien av float lik til at plassholderen til at du kan 1595 01:17:25,214 --> 01:17:26,954 husker det i neste linje? 1596 01:17:26,954 --> 01:17:28,942 Det sier flyte svaret. 1597 01:17:28,942 --> 01:17:29,770 >> LUCAS FREITAS: Yeah. 1598 01:17:29,770 --> 01:17:37,200 Så betyr float svaret du får nå en liten bøtte i minnet som 1599 01:17:37,200 --> 01:17:40,050 innehar en dupp, og det kommer å bli kalt svaret. 1600 01:17:40,050 --> 01:17:42,040 Så det er hva float svaret gjør. 1601 01:17:42,040 --> 01:17:44,720 >> Og så sier du at innsiden av dette, kommer du til å sette 1602 01:17:44,720 --> 01:17:46,470 resultatet av dette. 1603 01:17:46,470 --> 01:17:52,610 Så du kommer til å gjøre 1,0 delt på 10,0, får du 0,1, og deretter sette 1604 01:17:52,610 --> 01:17:53,490 at innsiden av svaret. 1605 01:17:53,490 --> 01:17:57,540 >> LAUREN CARVALHO: Så i en linje, er vi erklære og initialisering denne flyte 1606 01:17:57,540 --> 01:18:00,070 kalt svaret. 1607 01:18:00,070 --> 01:18:04,470 >> LUCAS FREITAS: Interessant, selv om Dette er bare én linje, det gjør 1608 01:18:04,470 --> 01:18:05,570 flere operasjoner. 1609 01:18:05,570 --> 01:18:08,800 Det er bare en måte å C utleie du bruker mindre kode. 1610 01:18:08,800 --> 01:18:12,310 Det er det samme som trefoldig operatør, hvordan du kan bare gjøre en 1611 01:18:12,310 --> 01:18:13,810 [Uhørbart] i én linje. 1612 01:18:13,810 --> 01:18:18,860 Det er faktisk å gjøre det samme som gjør float svar, semikolon, og 1613 01:18:18,860 --> 01:18:23,060 så svaret er lik denne, men i stedet for gjør du gjøre to linjer for det, 1614 01:18:23,060 --> 01:18:24,160 det er som en snarvei. 1615 01:18:24,160 --> 01:18:24,520 Yeah? 1616 01:18:24,520 --> 01:18:27,929 >> PUBLIKUM: Så hvis du kjørte dette, det ville være 0,10? 1617 01:18:27,929 --> 01:18:30,120 >> LUCAS FREITAS: Ja. 1618 01:18:30,120 --> 01:18:30,530 Yeah? 1619 01:18:30,530 --> 01:18:34,540 >> PUBLIKUM: Er svarer faktisk kode, eller er det bare navnet? 1620 01:18:34,540 --> 01:18:36,010 >> LAUREN CARVALHO: Dette er faktisk kode. 1621 01:18:36,010 --> 01:18:37,750 Dette er hva vi skal for å nevne vår variabel. 1622 01:18:37,750 --> 01:18:39,770 >> PUBLIKUM: Så det er bare et navn [uhørbart]. 1623 01:18:39,770 --> 01:18:40,270 >> LAUREN CARVALHO: Yeah. 1624 01:18:40,270 --> 01:18:44,670 Jeg kunne ha sagt float x lik 1,0. 1625 01:18:44,670 --> 01:18:47,160 >> LUCAS FREITAS: Saken er at navnet på den variabelen er 1626 01:18:47,160 --> 01:18:48,400 noe som du bruker. 1627 01:18:48,400 --> 01:18:49,690 Det er viktig for deg. 1628 01:18:49,690 --> 01:18:52,660 For selve programmet, det eneste at saker er den verdien som du 1629 01:18:52,660 --> 01:18:55,570 har inne i bøtta. 1630 01:18:55,570 --> 01:18:59,270 Grunnen til at du har variabler og navn på variabler er slik at du vil vite 1631 01:18:59,270 --> 01:19:01,910 hva du arbeider med, som hva slags data du er 1632 01:19:01,910 --> 01:19:03,040 tilgang til på en gang. 1633 01:19:03,040 --> 01:19:07,580 Men for selve koden, hvis du ringer det besvarer eller spørsmål eller noe, 1634 01:19:07,580 --> 01:19:09,530 ganske mye, spiller det ingen rolle. 1635 01:19:09,530 --> 01:19:10,060 Det spiller ingen rolle. 1636 01:19:10,060 --> 01:19:12,910 Så lenge du er konsekvent i hver forekomst det og så kaller du det 1637 01:19:12,910 --> 01:19:13,620 noe annet. 1638 01:19:13,620 --> 01:19:14,880 Yeah? 1639 01:19:14,880 --> 01:19:17,208 >> PUBLIKUM: Gjør variablene gå utover funksjonen? 1640 01:19:17,208 --> 01:19:20,902 Som hvis du skulle lage en brakett [Uhørbart], kan du bare 1641 01:19:20,902 --> 01:19:21,806 [Uhørbart] svare igjen? 1642 01:19:21,806 --> 01:19:22,550 >> LAUREN CARVALHO: Nei. 1643 01:19:22,550 --> 01:19:23,300 >> PUBLIKUM: [uhørbart] 1644 01:19:23,300 --> 01:19:24,200 >> LAUREN CARVALHO: Nei. 1645 01:19:24,200 --> 01:19:26,930 Det ville være utenfor rammen av denne variabel. 1646 01:19:26,930 --> 01:19:29,940 Og faktisk, det er slags interessant, fordi når vi har 1647 01:19:29,940 --> 01:19:33,010 ting som sløyfer eller disse hvis forhold, hvis du deklarerer en variabel 1648 01:19:33,010 --> 01:19:36,330 innenfor et annet sett med klammeparentes, det egentlig bare finnes 1649 01:19:36,330 --> 01:19:39,800 innenfor disse klammeparentes. 1650 01:19:39,800 --> 01:19:43,088 >> PUBLIKUM: En siste merknad om de [uhørbart] flyter. 1651 01:19:43,088 --> 01:19:46,076 Hvorfor skulle du ønske å bruke ints? 1652 01:19:46,076 --> 01:19:49,562 Dette er mer av en side note enn noe, men datamaskinen er 1653 01:19:49,562 --> 01:19:53,048 betydelig bedre til å håndtere ints enn det er ved håndtering flyter. 1654 01:19:53,048 --> 01:19:55,040 Det er som en bestilling av ordener raskere. 1655 01:19:55,040 --> 01:20:00,360 Så hvis vi bare håndteres bare flyter, ting ville være mye tregere. 1656 01:20:00,360 --> 01:20:03,080 >> LAUREN CARVALHO: Egentlig, det synes å være et problem med flottører. 1657 01:20:03,080 --> 01:20:06,400 >> LUCAS FREITAS: Kind av grunnen til at du kan tenke, er hvordan i binær 1658 01:20:06,400 --> 01:20:08,480 du kan representere heltall ved å sette 0-er og 1-tallet. 1659 01:20:08,480 --> 01:20:09,980 >> LAUREN CARVALHO: Det er neste ting. 1660 01:20:09,980 --> 01:20:10,480 >> LUCAS FREITAS: OK. 1661 01:20:10,480 --> 01:20:10,740 Awesome. 1662 01:20:10,740 --> 01:20:11,480 >> LAUREN CARVALHO: Just Hold den tanken. 1663 01:20:11,480 --> 01:20:13,800 >> LUCAS FREITAS: OK, jeg skal fortelle deg senere. 1664 01:20:13,800 --> 01:20:16,920 >> LAUREN CARVALHO: Før vi kommer til hva Lucas var bare si, operatør 1665 01:20:16,920 --> 01:20:17,420 forrang. 1666 01:20:17,420 --> 01:20:18,220 Dette er sunn fornuft. 1667 01:20:18,220 --> 01:20:20,830 Dere har gjort dette nok. 1668 01:20:20,830 --> 01:20:24,705 Så, bare hvis noe er i parentes, det vil skje først. 1669 01:20:24,705 --> 01:20:27,970 Det er multiplikasjon forrang over addisjon, 1670 01:20:27,970 --> 01:20:30,330 subtraksjon, sånne ting. 1671 01:20:30,330 --> 01:20:34,700 Så egentlig, bare det noen som ønsker å fortelle meg hvilket nummer man faktisk 1672 01:20:34,700 --> 01:20:36,674 evalueres til? 1673 01:20:36,674 --> 01:20:37,638 >> PUBLIKUM: 27. 1674 01:20:37,638 --> 01:20:39,090 >> LAUREN CARVALHO: 27? 1675 01:20:39,090 --> 01:20:39,550 Yeah. 1676 01:20:39,550 --> 01:20:41,975 >> LUCAS FREITAS: La meg gi godteri til folk. 1677 01:20:41,975 --> 01:20:42,850 >> LAUREN CARVALHO: Greit. 1678 01:20:42,850 --> 01:20:44,100 Hva med nummer to? 1679 01:20:44,100 --> 01:20:46,880 1680 01:20:46,880 --> 01:20:48,340 Hva med nummer to? 1681 01:20:48,340 --> 01:20:49,280 >> PUBLIKUM: 22. 1682 01:20:49,280 --> 01:20:50,680 >> LAUREN CARVALHO: 22, ja. 1683 01:20:50,680 --> 01:20:51,570 Jeg vet ikke hvem som fikk det. 1684 01:20:51,570 --> 01:20:52,694 Nummer tre? 1685 01:20:52,694 --> 01:20:54,050 >> PUBLIKUM: 10. 1686 01:20:54,050 --> 01:20:55,300 >> LAUREN CARVALHO: 10, ja. 1687 01:20:55,300 --> 01:20:58,150 1688 01:20:58,150 --> 01:20:58,490 Cool. 1689 01:20:58,490 --> 01:21:01,280 Så modulo. 1690 01:21:01,280 --> 01:21:03,700 Lucas, har du lyst til å forklare modulo? 1691 01:21:03,700 --> 01:21:07,150 >> LUCAS FREITAS: Modulo er denne aktøren som faktisk er meget nyttig for en 1692 01:21:07,150 --> 01:21:09,470 haug med problemer. 1693 01:21:09,470 --> 01:21:15,270 Hvis jeg gjør 55 modulo 10, hva den gjør dette la oss si at jeg ønsker å 1694 01:21:15,270 --> 01:21:16,970 dele 55 av 10. 1695 01:21:16,970 --> 01:21:18,240 Hva får jeg? 1696 01:21:18,240 --> 01:21:21,380 Det føles akkurat som om jeg er faktisk bare gjør divisjonen, hva er det 1697 01:21:21,380 --> 01:21:22,450 første gang at jeg fikk heltall? 1698 01:21:22,450 --> 01:21:23,190 >> PUBLIKUM: 5. 1699 01:21:23,190 --> 01:21:24,080 >> LUCAS FREITAS: 5. 1700 01:21:24,080 --> 01:21:26,230 Og så resten er fem, ikke sant? 1701 01:21:26,230 --> 01:21:29,250 Så det er som 5 ganger 10 pluss fem. 1702 01:21:29,250 --> 01:21:35,570 Innerst inne, hva modulo gjør, forsøker den å dividere dette tallet med denne ene, og 1703 01:21:35,570 --> 01:21:37,440 det ser hva som er den gjenværende av divisjonen. 1704 01:21:37,440 --> 01:21:40,080 >> LAUREN CARVALHO: Så det bare Returnerer resten. 1705 01:21:40,080 --> 01:21:41,920 Så nummer én er hva? 1706 01:21:41,920 --> 01:21:42,560 5. 1707 01:21:42,560 --> 01:21:43,336 Nummer to? 1708 01:21:43,336 --> 01:21:44,150 >> PUBLIKUM: tre. 1709 01:21:44,150 --> 01:21:44,934 >> LAUREN CARVALHO: tre. 1710 01:21:44,934 --> 01:21:46,240 Nummer tre? 1711 01:21:46,240 --> 01:21:47,190 0. 1712 01:21:47,190 --> 01:21:48,410 Og fire er en. 1713 01:21:48,410 --> 01:21:48,665 Nettopp. 1714 01:21:48,665 --> 01:21:49,915 >> LUCAS FREITAS: Enkelt, ikke sant? 1715 01:21:49,915 --> 01:21:54,270 1716 01:21:54,270 --> 01:21:56,560 >> LAUREN CARVALHO: Hvorfor kan ikke vi hoppe over dette bare fordi vi egentlig ikke har 1717 01:21:56,560 --> 01:21:59,780 tid, og folk ser ut til å forstå. 1718 01:21:59,780 --> 01:22:03,330 Så her er hva Lucas var bare snakker om. 1719 01:22:03,330 --> 01:22:08,030 >> LUCAS FREITAS: En annen grunn til at jeg ville bruke ints i stedet for flåter er 1720 01:22:08,030 --> 01:22:10,840 som flyter er svært upresise. 1721 01:22:10,840 --> 01:22:12,720 Og hvorfor er de upresise? 1722 01:22:12,720 --> 01:22:17,140 David sa at for å representere et heltall, for eksempel, bruker vi 0 og 1723 01:22:17,140 --> 01:22:17,810 En sin, ikke sant? 1724 01:22:17,810 --> 01:22:22,370 Og så er du i utgangspunktet gjøre det multiplikasjon, gjør alt de 1725 01:22:22,370 --> 01:22:30,000 operasjoner for å vite hva desimaltall du har i stedet for det binære. 1726 01:22:30,000 --> 01:22:33,040 >> Hva skjer nå hvis jeg prøver å sette desimaler? 1727 01:22:33,040 --> 01:22:37,680 Egentlig, for eksempel, hvis jeg har antall som 3,33333? 1728 01:22:37,680 --> 01:22:40,250 Det føles som 10 over tre. 1729 01:22:40,250 --> 01:22:44,950 Hvordan skal jeg lagre all 3 er at jeg har etter det? 1730 01:22:44,950 --> 01:22:47,120 Det er virkelig vanskelig, ikke sant? 1731 01:22:47,120 --> 01:22:49,580 Du kan ikke bare fortelle datamaskinen, hei, jeg har en 3, og 1732 01:22:49,580 --> 01:22:50,520 så gjør du det for alltid. 1733 01:22:50,520 --> 01:22:52,810 Egentlig datamaskinen er ikke smart nok for dette. 1734 01:22:52,810 --> 01:22:58,300 >> Så i utgangspunktet alle datamaskinen gjør er at den prøver å sette så mange sifre som 1735 01:22:58,300 --> 01:23:00,950 det kan opp til minnet du har. 1736 01:23:00,950 --> 01:23:05,890 Så la oss si at det kommer til å si 3,3333, og det er det. 1737 01:23:05,890 --> 01:23:10,690 Så det er ikke i stand til å faktisk uttrykke nøyaktig hva som flyter er. 1738 01:23:10,690 --> 01:23:13,240 >> LAUREN CARVALHO: Vi har et endelig antall biter, noe som betyr at ikke 1739 01:23:13,240 --> 01:23:17,910 hver desimaltall kommer til å være i stand til å bli representert nøyaktig. 1740 01:23:17,910 --> 01:23:24,910 Og så i dette eksempelet, hvis vi er skrive ut 0.1, er vi nå utskrift 1741 01:23:24,910 --> 01:23:26,475 ut 20 steder. 1742 01:23:26,475 --> 01:23:30,250 >> LUCAS FREITAS: Akkurat som jeg var å fortelle dere, kan du sette noen tall. 1743 01:23:30,250 --> 01:23:36,520 Men hvis du bare gjorde de to stedene, du vil få 0,10, men hvis du setter 20 1744 01:23:36,520 --> 01:23:43,630 steder, det kommer til å vise deg en haug av 's fordi dette er hva du kan putte 1745 01:23:43,630 --> 01:23:45,720 i minnet, ikke sant? 1746 01:23:45,720 --> 01:23:48,800 >> Men akkurat her, opp til 0, og da er bare sette det en 1747 01:23:48,800 --> 01:23:50,030 haug av tilfeldige tall. 1748 01:23:50,030 --> 01:23:52,590 Dette er typen som noen - 1749 01:23:52,590 --> 01:23:56,190 >> LAUREN CARVALHO: Dette er fordi vi er ikke i stand til å representere dette desimal 1750 01:23:56,190 --> 01:23:58,320 nettopp med antallet biter har vi. 1751 01:23:58,320 --> 01:23:59,730 >> LUCAS FREITAS: Og så Datamaskinen er i utgangspunktet 1752 01:23:59,730 --> 01:24:01,470 noe som gir deg en søppel nummer. 1753 01:24:01,470 --> 01:24:04,530 Dette er egentlig ikke en Verdien av tallet. 1754 01:24:04,530 --> 01:24:08,242 >> PUBLIKUM: Det er så nær som det kan få [uhørbart] 1755 01:24:08,242 --> 01:24:09,613 ved hjelp av [uhørbart]. 1756 01:24:09,613 --> 01:24:12,685 1757 01:24:12,685 --> 01:24:18,830 >> LAUREN CARVALHO: Så implikasjonen av dette er at la oss si at i stedet for 1758 01:24:18,830 --> 01:24:27,680 være 0.100014, uansett, hva hvis det var 0,0999 - 1759 01:24:27,680 --> 01:24:30,470 vel, OK. 1760 01:24:30,470 --> 01:24:38,280 La oss late som om den faktiske svar til dette var 0,9999999. 1761 01:24:38,280 --> 01:24:40,740 Det er svært nær en, men det er ikke akkurat en. 1762 01:24:40,740 --> 01:24:42,840 Det er 0,99999. 1763 01:24:42,840 --> 01:24:48,140 >> Det betyr at hvis jeg tar det 0.999, og jeg kastet det til en int, får jeg 0. 1764 01:24:48,140 --> 01:24:49,460 Jeg får ikke en. 1765 01:24:49,460 --> 01:24:53,050 >> LUCAS FREITAS: Fordi husk, støping fra float til int, du bare 1766 01:24:53,050 --> 01:24:54,880 ignorere alle desimalene. 1767 01:24:54,880 --> 01:24:56,400 Du bare ignorere dem. 1768 01:24:56,400 --> 01:25:00,170 Det finnes ikke noe slikt som avrunding opp eller kjører ned når du typecast. 1769 01:25:00,170 --> 01:25:03,310 Egentlig er dette funksjon som gjør avrunding, noe som er svært 1770 01:25:03,310 --> 01:25:08,840 viktig, men du må bare tenke at når du gjør typecasting, det er bare 1771 01:25:08,840 --> 01:25:09,720 kommer til å slette alt. 1772 01:25:09,720 --> 01:25:13,970 Så selv om du har 0,99999, det kommer å bare gi 0 hvis du typecast 1773 01:25:13,970 --> 01:25:14,800 [Uhørbart] et heltall. 1774 01:25:14,800 --> 01:25:17,480 >> LAUREN CARVALHO: Så bare være veldig klar av flyttall i presisjon, 1775 01:25:17,480 --> 01:25:20,410 spesielt når du starter å bruke flyter i Pset1. 1776 01:25:20,410 --> 01:25:22,790 Men turen gjennom bør advare deg om det også. 1777 01:25:22,790 --> 01:25:26,100 >> LUCAS FREITAS: Og faktisk er det egentlig hard, for eksempel hvis jeg 1778 01:25:26,100 --> 01:25:31,570 float svaret 1 tilsvarer 1,0 løpet 10, og deretter flyte svar 2 1779 01:25:31,570 --> 01:25:35,540 tilsvarer 10,0 enn 100,0. 1780 01:25:35,540 --> 01:25:36,890 De er det samme tallet, ikke sant? 1781 01:25:36,890 --> 01:25:38,540 0,1, ikke sant? 1782 01:25:38,540 --> 01:25:41,700 En over 10 eller 10 over 100. 1783 01:25:41,700 --> 01:25:46,360 Men nå hvis jeg prøver å se på likestilling, som hvis svaret 1 er lik svare 2, 1784 01:25:46,360 --> 01:25:49,300 kanskje det ikke er faktisk kommer å være det samme. 1785 01:25:49,300 --> 01:25:50,720 Så flyter er litt sånn. 1786 01:25:50,720 --> 01:25:51,970 De er som gjør likestilling. 1787 01:25:51,970 --> 01:25:55,136