1 00:00:00,000 --> 00:00:07,170 2 00:00:07,170 --> 00:00:09,100 >> LUCAS FREITAS: OK, antar jag Nu är vi live. 3 00:00:09,100 --> 00:00:11,220 Välkommen till CS50 Supersection. 4 00:00:11,220 --> 00:00:12,880 Vi är mindre bekväm. 5 00:00:12,880 --> 00:00:13,870 Mitt namn är Lucas Freitas. 6 00:00:13,870 --> 00:00:16,230 Jag är en CS50 Head TF. 7 00:00:16,230 --> 00:00:17,523 Det här är Lauren. 8 00:00:17,523 --> 00:00:19,002 >> LAUREN CARVALHO: Hej, jag är Lauren. 9 00:00:19,002 --> 00:00:21,330 Jag är också chef TF för CS50. 10 00:00:21,330 --> 00:00:24,730 >> LUCAS FREITAS: Idag ska vi bara gå för att ge en översikt över vad du 11 00:00:24,730 --> 00:00:28,440 Killarna har lärt sig i veckan en, förhoppningsvis för att ge er en bra 12 00:00:28,440 --> 00:00:32,580 känsla till vad du bör veta för problem ställa in en. 13 00:00:32,580 --> 00:00:34,120 >> Bara ett par meddelanden. 14 00:00:34,120 --> 00:00:36,490 Först av allt, kontorstid. 15 00:00:36,490 --> 00:00:41,580 Öppettider sker från måndag till torsdagen i olika hus i 16 00:00:41,580 --> 00:00:43,450 Annenberg varje dag. 17 00:00:43,450 --> 00:00:46,680 De är en mycket bra resurs för dig killar att komma och ställa frågor, och 18 00:00:46,680 --> 00:00:49,470 prata med TF, och till och med utbyte idéer med andra studenter. 19 00:00:49,470 --> 00:00:55,420 Så se till att använda den resurs till din fördel. 20 00:00:55,420 --> 00:00:59,790 >> Det andra är det CS50 Appliance. 21 00:00:59,790 --> 00:01:01,390 För sista [OHÖRBAR] 22 00:01:01,390 --> 00:01:04,180 ni behövde inte faktiskt har en apparat. 23 00:01:04,180 --> 00:01:06,910 Du gjorde precis allt i din dator. 24 00:01:06,910 --> 00:01:10,330 Men för det här problemet, du faktiskt har att ha en virtuell maskin, så var 25 00:01:10,330 --> 00:01:14,680 Glöm inte att ladda ner CS50 Appliance och ställa upp. 26 00:01:14,680 --> 00:01:18,670 >> Och den tredje saken är att se till att starta problemet satt ASAP bara 27 00:01:18,670 --> 00:01:22,740 eftersom det är mycket lättare att hitta hjälpa till när du är i 28 00:01:22,740 --> 00:01:23,730 början av veckan. 29 00:01:23,730 --> 00:01:27,540 Eftersom människor tenderar att vänta tills sista sekund för att starta problemet set, 30 00:01:27,540 --> 00:01:29,730 och sedan går du till kontorstid, och det finns en massa människor. 31 00:01:29,730 --> 00:01:33,020 Där om du går på måndag, du kommer för att se till att du kan prata med TF 32 00:01:33,020 --> 00:01:35,870 ganska mycket för hela natten, och de kommer att vara mer än 33 00:01:35,870 --> 00:01:37,790 gärna hjälpa dig. 34 00:01:37,790 --> 00:01:40,720 >> LAUREN CARVALHO: Kan jag sluta bara du för bara en sekund? 35 00:01:40,720 --> 00:01:43,330 Har alla kunnat ladda ner den CS50 Appliance? 36 00:01:43,330 --> 00:01:44,255 Har folk försökt? 37 00:01:44,255 --> 00:01:47,120 >> LUCAS FREITAS: För att ladda ner, med sätt kan du få instruktioner 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öger. 40 00:01:48,817 --> 00:01:53,120 Och det tar en liten stund för vår systemadministratörer för att få dig en licens 41 00:01:53,120 --> 00:01:55,450 nyckel, så registrera dig för fri rättegång först. 42 00:01:55,450 --> 00:01:59,080 Så att du får det i 30 dagar, och sedan vänta på din licensnyckel 43 00:01:59,080 --> 00:02:02,650 vilket borde ge det till dig för ett år. 44 00:02:02,650 --> 00:02:04,100 >> LUCAS FREITAS: Först av allt, låt oss prata lite 45 00:02:04,100 --> 00:02:06,180 om CS50 Appliance. 46 00:02:06,180 --> 00:02:10,770 Den CS50 Appliance är faktiskt en virtuell maskin som du kommer att 47 00:02:10,770 --> 00:02:15,040 köra i din egen dator som är i grund och botten kör en annan dator 48 00:02:15,040 --> 00:02:16,010 i din egen dator. 49 00:02:16,010 --> 00:02:16,800 Vilket är ganska coolt. 50 00:02:16,800 --> 00:02:19,420 Och faktiskt den används överallt. 51 00:02:19,420 --> 00:02:23,150 Människor som till tech skulle veta att detta används hela tiden. 52 00:02:23,150 --> 00:02:23,250 du? 53 00:02:23,250 --> 00:02:26,200 Kan ha flera datorer i en enhet. 54 00:02:26,200 --> 00:02:27,760 >> Låt oss verkligen ta en titt vid Appliance. 55 00:02:27,760 --> 00:02:32,680 56 00:02:32,680 --> 00:02:36,640 När du går till Appliance efter registrering, du kommer att behöva 57 00:02:36,640 --> 00:02:42,035 sätta ditt namn och logga in på Harvard så att vi kan få er alla registrerade. 58 00:02:42,035 --> 00:02:46,570 Du kommer att få se i princip bara en tapeter, och sedan hem och papperskorgen, 59 00:02:46,570 --> 00:02:48,980 och sedan dessa små ikoner. 60 00:02:48,980 --> 00:02:51,930 Dessa tre ikoner är faktiskt den mest viktiga saker som du kan ha i 61 00:02:51,930 --> 00:02:53,000 din apparat. 62 00:02:53,000 --> 00:03:00,270 >> Den första är gedit, som är en text redaktör, precis som Anteckningar eller liknande 63 00:03:00,270 --> 00:03:01,440 någon form av textredigerare. 64 00:03:01,440 --> 00:03:09,750 Det är bara något som vi använder för att skriva kod och sedan göra saker med det. 65 00:03:09,750 --> 00:03:11,770 >> Det andra som vi har här är Chrome. 66 00:03:11,770 --> 00:03:13,910 Så om du behöver för att använda internet i Appliance, det är 67 00:03:13,910 --> 00:03:15,030 vad du kan använda. 68 00:03:15,030 --> 00:03:22,000 >> Och den tredje saken är terminalen, vilket faktiskt är mycket söt. 69 00:03:22,000 --> 00:03:26,420 Folk brukar slags rädd för terminalen eftersom det är just denna 70 00:03:26,420 --> 00:03:32,320 gammaldags program där du bara i princip skriva allt med 71 00:03:32,320 --> 00:03:32,940 tangentbordet. 72 00:03:32,940 --> 00:03:34,730 Det finns inte en hel del interaktion med musen. 73 00:03:34,730 --> 00:03:39,780 Men egentligen terminalen gör mycket bra saker. 74 00:03:39,780 --> 00:03:43,990 >> Först av allt, låt oss bara gå igenom några kommandon som du 75 00:03:43,990 --> 00:03:48,765 kan användas i terminalen. 76 00:03:48,765 --> 00:03:51,995 >> LAUREN CARVALHO: Och tveka inte att stoppa oss om du har några frågor. 77 00:03:51,995 --> 00:03:52,830 >> LUCAS FREITAS: Ja. 78 00:03:52,830 --> 00:04:01,950 Så det första kommandot som vi har för terminalen är ls. 79 00:04:01,950 --> 00:04:06,450 ls princip innebär lista allting, allt filerna och alla direktörer, 80 00:04:06,450 --> 00:04:09,540 som jag har på den plats som jag är på. 81 00:04:09,540 --> 00:04:15,200 Så om jag gör ls här, kommer jag att se att jag har några kataloger. 82 00:04:15,200 --> 00:04:18,670 Jag har på skrivbordet, nedladdning, loggarna samt vhosts. 83 00:04:18,670 --> 00:04:21,260 De som är i blått eftersom de är alla kataloger. 84 00:04:21,260 --> 00:04:24,160 >> Då har du några andra filer. 85 00:04:24,160 --> 00:04:27,840 Du har som hej och hej.c, vilket är bara filer, och de är i 86 00:04:27,840 --> 00:04:28,910 olika färger. 87 00:04:28,910 --> 00:04:33,960 Så detta är ett mycket viktigt kommando bara Du kan se vad som är filerna 88 00:04:33,960 --> 00:04:37,690 och kataloger som du har i katalogen som 89 00:04:37,690 --> 00:04:39,410 du är på i terminalen. 90 00:04:39,410 --> 00:04:44,580 När du ser jharvard @ apparat och då den lilla symbolen där, 91 00:04:44,580 --> 00:04:49,185 tilde, det betyder bara att det är den katalog som du är just nu. 92 00:04:49,185 --> 00:04:52,970 >> LAUREN CARVALHO: Så skriver ls är nästan som att klicka på mappen 93 00:04:52,970 --> 00:04:57,380 som är noterat just där, i det program du allt innehåll som är 94 00:04:57,380 --> 00:04:58,886 inom den mappen. 95 00:04:58,886 --> 00:05:04,232 >> PUBLIK: Finns det text efter hej.c? 96 00:05:04,232 --> 00:05:10,070 >> LAUREN CARVALHO: Åh, kan du inte se det, eftersom det är blått. 97 00:05:10,070 --> 00:05:12,490 >> LUCAS FREITAS: Den säger loggar och vhosts. 98 00:05:12,490 --> 00:05:14,450 >> LAUREN CARVALHO: De är bara andra mappar. 99 00:05:14,450 --> 00:05:16,890 Jag är ledsen, det är verkligen svårt att se. 100 00:05:16,890 --> 00:05:19,090 Kanske om vi släckte ljuset? 101 00:05:19,090 --> 00:05:23,002 Colton, vill du försöka hitta strömbrytaren? 102 00:05:23,002 --> 00:05:24,960 Ledsen för det. 103 00:05:24,960 --> 00:05:25,675 Jag tänkte inte på det. 104 00:05:25,675 --> 00:05:27,340 >> LUCAS FREITAS: Men det är i grund och botten - 105 00:05:27,340 --> 00:05:30,310 ja, om du kunde - 106 00:05:30,310 --> 00:05:32,278 >> LAUREN CARVALHO: Zooma in på skärmen. 107 00:05:32,278 --> 00:05:34,738 >> LUCAS FREITAS: Jag gör inte har den funktionen. 108 00:05:34,738 --> 00:05:35,988 >> LAUREN CARVALHOS: [OHÖRBAR]. 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 Tja, det finns bara en massa natur ljus i detta rum också. 112 00:05:44,270 --> 00:05:48,726 >> LUCAS FREITAS: Låt oss bara anta att Det finns två andra kataloger där. 113 00:05:48,726 --> 00:05:49,780 >> LAUREN CARVALHO: Bara bära med oss. 114 00:05:49,780 --> 00:05:54,200 Detta är den enda del som du kommer att titta på terminalen. 115 00:05:54,200 --> 00:06:00,160 >> LUCAS FREITAS: Nästa kommando är i grund och botten kanske du vill organisera 116 00:06:00,160 --> 00:06:01,080 dina filer - 117 00:06:01,080 --> 00:06:05,015 till exempel, alla C-filer i en katalog-men du har inte en 118 00:06:05,015 --> 00:06:07,180 katalog bara för C-filer ännu. 119 00:06:07,180 --> 00:06:11,590 Du kan i princip skapa en katalog användning av terminalen också, vilket är 120 00:06:11,590 --> 00:06:15,670 samma sak som att högerklicka och säger Ny mapp. 121 00:06:15,670 --> 00:06:20,640 Kommandot gör katalog, som är mkdir, så i princip "göra" och 122 00:06:20,640 --> 00:06:21,260 "Katalog." 123 00:06:21,260 --> 00:06:22,680 >> Och då kan du lägga till namnet på katalogen. 124 00:06:22,680 --> 00:06:32,490 Låt oss säga att jag ville bli kallad, Jag vet inte, låt oss säga pset1 Göra 125 00:06:32,490 --> 00:06:33,900 detta, jag bara skapat en katalog. 126 00:06:33,900 --> 00:06:35,910 Låt oss bara kontrollera att den är där. 127 00:06:35,910 --> 00:06:40,870 Så om jag gör ls, nu ser jag loggar, och då pset1, och sedan vhosts. 128 00:06:40,870 --> 00:06:44,360 Så jag har den nya katalogen där. 129 00:06:44,360 --> 00:06:46,670 >> Och sedan efter att du har en ny katalog, kanske du vill navigera 130 00:06:46,670 --> 00:06:51,760 in i det, så nästa kommando denna cd, vilket bara i princip innebär att gå till en 131 00:06:51,760 --> 00:06:53,400 specifik katalog. 132 00:06:53,400 --> 00:06:58,377 Så om jag vill gå till pset1, Jag kan bara göra cd pset1. 133 00:06:58,377 --> 00:07:01,550 >> LAUREN CARVALHO: cd står för förändring katalog, [OHÖRBAR] kunna 134 00:07:01,550 --> 00:07:02,230 kom ihåg att. 135 00:07:02,230 --> 00:07:05,460 >> LUCAS FREITAS: Och nu ser du att istället för att bara ha jharvard 136 00:07:05,460 --> 00:07:09,150 apparat, jag har jharvard apparat, och sedan pset1, eftersom det visar 137 00:07:09,150 --> 00:07:14,150 mig där jag är i den här datorn. 138 00:07:14,150 --> 00:07:17,510 >> Nu om jag vill gå tillbaka till katalog som var innan den här, jag 139 00:07:17,510 --> 00:07:22,950 kan göra en cd dot dot, vilket bara innebär att gå till den katalog som jag var innan, 140 00:07:22,950 --> 00:07:26,290 som förälder till detta katalog, i grund och botten. 141 00:07:26,290 --> 00:07:30,460 Och nu ser jag att jag är tillbaka till jharvard. 142 00:07:30,460 --> 00:07:36,050 >> Nästa sak som jag kan göra det är rm, vilket är att ta bort en fil. 143 00:07:36,050 --> 00:07:39,590 Till exempel, låt oss först göra ls för att se vad jag har här. 144 00:07:39,590 --> 00:07:41,790 Jag har hej och hej.c. 145 00:07:41,790 --> 00:07:43,780 Låt oss säga att jag vill ta bort dem. 146 00:07:43,780 --> 00:07:48,280 Jag kan göra rm hej. 147 00:07:48,280 --> 00:07:52,770 Det kommer att säga "ta bort vanlig fil hej? "Och jag säger" ja. "Och nu, om jag 148 00:07:52,770 --> 00:07:56,410 gör ls, jag ser att det är inte där längre. 149 00:07:56,410 --> 00:07:59,700 >> Om jag försöker använda rm för en katalog, Men det kommer inte 150 00:07:59,700 --> 00:08:00,800 att låta dig göra något. 151 00:08:00,800 --> 00:08:02,960 Det kommer att säga, hej, du kan inte ta bort en katalog. 152 00:08:02,960 --> 00:08:08,100 Så vi har det andra kommit kallas rmdir, vilket bara i princip innebär 153 00:08:08,100 --> 00:08:09,800 ta bort katalogen. 154 00:08:09,800 --> 00:08:12,842 Jag kan till exempel ta bort pset1. 155 00:08:12,842 --> 00:08:15,770 Och om jag gör ls, det gör jag inte ha det längre. 156 00:08:15,770 --> 00:08:18,430 >> Eventuella frågor om detta? 157 00:08:18,430 --> 00:08:20,200 Nej? 158 00:08:20,200 --> 00:08:20,595 Yeah? 159 00:08:20,595 --> 00:08:23,954 >> PUBLIK: Är det viktigt att du lämnar ett mellanslag efter - när du 160 00:08:23,954 --> 00:08:26,540 Börja skriva någonting på? 161 00:08:26,540 --> 00:08:26,830 >> LUCAS FREITAS: Ja. 162 00:08:26,830 --> 00:08:32,080 Om jag gillar cd och katalogen, Jag måste sätta ett mellanslag. 163 00:08:32,080 --> 00:08:33,350 Vad utrymme pratar du om? 164 00:08:33,350 --> 00:08:34,979 >> LAUREN CARVALHOS: Utrymmet mellan cd och [OHÖRBAR]. 165 00:08:34,979 --> 00:08:37,710 >> LUCAS FREITAS: Ja, måste du sätta utrymmena eftersom cd är det 166 00:08:37,710 --> 00:08:42,770 kommando, och sedan nästa sträng som du typ är i grunden katalogen. 167 00:08:42,770 --> 00:08:45,020 Så det är som ett argument. 168 00:08:45,020 --> 00:08:45,360 Yeah? 169 00:08:45,360 --> 00:08:47,952 >> PUBLIK: När du lista, alla de är olika kataloger, eller hur? 170 00:08:47,952 --> 00:08:50,125 >> LUCAS FREITAS: Ja, de finns i katalogen. 171 00:08:50,125 --> 00:08:53,524 >> PUBLIK: Vad är skillnaderna bland katalogerna? 172 00:08:53,524 --> 00:08:55,390 >> LUCAS FREITAS: De är bara olika mappar. 173 00:08:55,390 --> 00:08:57,366 Directory är en mapp på din dator. 174 00:08:57,366 --> 00:08:58,120 >> PUBLIK: Öppna mappen. 175 00:08:58,120 --> 00:09:00,140 >> LUCAS FREITAS: Ja, det är bara en öppen mapp. 176 00:09:00,140 --> 00:09:03,400 >> LAUREN Carvalho: Över här, de som som finns i blått är faktiska 177 00:09:03,400 --> 00:09:07,107 kataloger som du kan komma in och sedan se en massa saker som är 178 00:09:07,107 --> 00:09:10,248 inom denna, vilket är olyckligt eftersom du faktiskt inte kan läsa 179 00:09:10,248 --> 00:09:11,290 artiklar i blått. 180 00:09:11,290 --> 00:09:16,166 Och de i vitt är bara filer som ligger inom den aktuella katalogen. 181 00:09:16,166 --> 00:09:17,870 >> LUCAS Freitas: Så kataloger är mappar. 182 00:09:17,870 --> 00:09:18,810 De andra är filer. 183 00:09:18,810 --> 00:09:22,810 >> PUBLIK: Vad är kommandot att återställa det eller radera det? 184 00:09:22,810 --> 00:09:23,650 LUCAS FREITAS: För att rensa? 185 00:09:23,650 --> 00:09:24,362 LAUREN CARVALHO: För att rensa? 186 00:09:24,362 --> 00:09:27,985 LUCAS FREITAS: Jag tror det är "klart". Yeah. 187 00:09:27,985 --> 00:09:32,370 Så du bara skriva klart om skärmen är för rörigt. 188 00:09:32,370 --> 00:09:33,700 Fler frågor? 189 00:09:33,700 --> 00:09:36,720 Och du kommer att lära dig en massa andra kommandon bara naturligt under 190 00:09:36,720 --> 00:09:38,405 termin för att de är mycket användbara. 191 00:09:38,405 --> 00:09:42,380 192 00:09:42,380 --> 00:09:46,155 >> Så nu ska vi prata om att sammanställa. 193 00:09:46,155 --> 00:09:51,510 194 00:09:51,510 --> 00:09:54,730 Vi pratade om pseudokod och källkod och objektkod. 195 00:09:54,730 --> 00:09:59,020 Och det finns en massa koder, och kanske ni är förvirrade över det. 196 00:09:59,020 --> 00:10:02,190 Låt oss tala lite om vad händer när du skriver ett program, 197 00:10:02,190 --> 00:10:06,620 och du kompilera det, och det blir en körbar fil. 198 00:10:06,620 --> 00:10:10,190 De är alla ord som du killar förmodligen hört, och kanske du inte 199 00:10:10,190 --> 00:10:12,130 riktigt säker på vad som händer. 200 00:10:12,130 --> 00:10:15,540 >> Låt oss säga, till exempel, som jag vill skriva ett program som säger "hej". Den 201 00:10:15,540 --> 00:10:19,670 första som kommer i ditt sinne är du slags försök att tänka på hur du är 202 00:10:19,670 --> 00:10:23,000 kommer att göra det i ditt sinne, och du förmodligen tänker på engelska eller 203 00:10:23,000 --> 00:10:25,550 något annat språk, som naturliga språk, förmodligen. 204 00:10:25,550 --> 00:10:28,770 Och då tänker du, ja, om jag vill, till exempel skriva ett program som 205 00:10:28,770 --> 00:10:32,630 säger "Hej," jag skulle starta ett program, Jag kommer att skriva hej, och sedan kommer jag 206 00:10:32,630 --> 00:10:35,270 avsluta programmet. 207 00:10:35,270 --> 00:10:36,350 Detta är pseudokod. 208 00:10:36,350 --> 00:10:41,740 Detta är bara i princip du försöker komma med en sekvens av händelser 209 00:10:41,740 --> 00:10:46,510 att du kommer att göra för att vara kunna skriva ett program. 210 00:10:46,510 --> 00:10:49,610 >> Då har du källkoden, och källkoden inte behöver 211 00:10:49,610 --> 00:10:53,240 specifikt vara i C. Vi pratar om källkoden i C eftersom det är 212 00:10:53,240 --> 00:10:56,760 det språk vi lär oss, men naturligtvis kod kan vara ganska mycket någon 213 00:10:56,760 --> 00:10:59,160 programmeringsspråk som du har. 214 00:10:59,160 --> 00:11:01,230 Senare under terminen, du kommer att lära sig andra språk. 215 00:11:01,230 --> 00:11:03,230 Det är också källkoden. 216 00:11:03,230 --> 00:11:07,380 >> Till exempel här, det här är min källa kod, och då jag bland annat en 217 00:11:07,380 --> 00:11:10,170 bibliotek, och sedan börjar jag huvud, och sedan skriva ut jag. 218 00:11:10,170 --> 00:11:14,510 Och Laura kommer att prata lite lite om allt detta. 219 00:11:14,510 --> 00:11:16,190 Så det här är källkoden. 220 00:11:16,190 --> 00:11:19,590 >> Och vad är objektkoden? 221 00:11:19,590 --> 00:11:22,500 Objektet är ett gäng nollor och sådana, i grund och botten. 222 00:11:22,500 --> 00:11:27,680 Vad som händer är att du från början har pseudokod, som är allt på engelska. 223 00:11:27,680 --> 00:11:29,020 Och jag menar, förstår du det. 224 00:11:29,020 --> 00:11:31,260 Förmodligen dina vänner förstår det, och de flesta människor skulle 225 00:11:31,260 --> 00:11:32,560 förstå idén. 226 00:11:32,560 --> 00:11:36,770 Men datorer är verkligen dumma, och de förstår inte engelska, så du 227 00:11:36,770 --> 00:11:41,320 har översätta det till något, brukar översättas till något 228 00:11:41,320 --> 00:11:42,460 programmeringsspråk. 229 00:11:42,460 --> 00:11:46,840 >> Och du kan tänka på ett programmerings språk som ungefär som ett språk 230 00:11:46,840 --> 00:11:50,970 att du berättar för din dator hur att tala och förstå. 231 00:11:50,970 --> 00:11:54,160 Du är i princip skriva något i ett språk som både du och din 232 00:11:54,160 --> 00:11:55,190 dator förstår. 233 00:11:55,190 --> 00:11:56,470 Det är källkoden. 234 00:11:56,470 --> 00:12:00,580 Så gå formulär pseudokod till källan kod, det är upp till dig. 235 00:12:00,580 --> 00:12:03,130 Det är i grund och botten gör du ditt program. 236 00:12:03,130 --> 00:12:06,740 >> Men problemet är att dator inte ens 237 00:12:06,740 --> 00:12:08,360 förstå programmeringsspråk. 238 00:12:08,360 --> 00:12:10,320 Det förstår inte källkoden alls. 239 00:12:10,320 --> 00:12:12,520 Det egentligen bara förstår nollor och ettor. 240 00:12:12,520 --> 00:12:16,570 Så vi har det mycket magisk sak som kallas en kompilator, som i princip är 241 00:12:16,570 --> 00:12:19,755 kommer att få källan kallas att du skrev på ett språk som både du 242 00:12:19,755 --> 00:12:25,320 och din dator tala och nu är du kommer att förändra det i 243 00:12:25,320 --> 00:12:26,270 nollor och ettor. 244 00:12:26,270 --> 00:12:30,860 Så i princip vad kompilatorn gör är det blir källkod, i det här fallet C, 245 00:12:30,860 --> 00:12:34,100 det kommer att omvandla det till nollor och de som datorn 246 00:12:34,100 --> 00:12:37,440 förstår och kan göra en körbar fil av det. 247 00:12:37,440 --> 00:12:40,900 >> Låter det vettigt? 248 00:12:40,900 --> 00:12:45,300 Du kan bara tänka på den kompilator som någon form av översättare som är 249 00:12:45,300 --> 00:12:50,280 hjälpa dig förklara för datorn exakt vad den ska göra. 250 00:12:50,280 --> 00:12:52,310 >> Men hur gör jag kompilerar. 251 00:12:52,310 --> 00:12:59,680 Låt oss gå tillbaka till Appliance, och låt oss säga att jag gör det programmet. 252 00:12:59,680 --> 00:13:04,220 Först ska jag skapa en katalog här, och jag kommer att kalla det 253 00:13:04,220 --> 00:13:11,130 "Praxis." Nu ska jag för att navigera till katalogen, så cd praktiken. 254 00:13:11,130 --> 00:13:13,210 Nu är jag inne i praktiken. 255 00:13:13,210 --> 00:13:16,860 >> Nu vill jag börja gedit, så hur gör jag det? 256 00:13:16,860 --> 00:13:21,920 Jag kan antingen klicka här, eller jag kan bara bokstavligen skriver "gedit", och det kommer 257 00:13:21,920 --> 00:13:24,290 att öppna för mig. 258 00:13:24,290 --> 00:13:28,100 >> Nu ska jag skriva mitt program, så exakt vad jag skrev i bilden. 259 00:13:28,100 --> 00:13:30,360 Jag förklarar ett bibliotek. 260 00:13:30,360 --> 00:13:35,440 Jag gör int main, tomrum. 261 00:13:35,440 --> 00:13:39,180 Och nu gör jag printf, hej. 262 00:13:39,180 --> 00:13:46,530 263 00:13:46,530 --> 00:13:50,170 Nu ska jag spara. 264 00:13:50,170 --> 00:13:53,665 Låt mig uttrycka det i praktiken, och Jag kommer att kalla denna hej.c. 265 00:13:53,665 --> 00:13:57,710 266 00:13:57,710 --> 00:13:59,590 Så nu utan resultat. 267 00:13:59,590 --> 00:14:03,250 >> Om jag vill kompilera det, jag faktiskt kan göra det på två olika ställen. 268 00:14:03,250 --> 00:14:07,090 Jag kan antingen göra det i ett terminalfönster, så här stor en, eller så kan 269 00:14:07,090 --> 00:14:09,860 använder gedit som faktiskt har en terminalfönster här. 270 00:14:09,860 --> 00:14:17,890 Så du kan mycket bekvämt bara göra din kod, och då kan du bara skriva 271 00:14:17,890 --> 00:14:20,670 allt här, och försöker kompilera det. 272 00:14:20,670 --> 00:14:23,450 >> Så hur gör jag kompilera koden? 273 00:14:23,450 --> 00:14:27,495 Det enklaste sättet att vi har är att använda märke, som är en funktion som 274 00:14:27,495 --> 00:14:29,590 är i grunden kommer att kompilera din kod. 275 00:14:29,590 --> 00:14:34,170 Du måste bara säga att hej, så "Göra" och namnet på programmet. 276 00:14:34,170 --> 00:14:35,420 >> Oj. 277 00:14:35,420 --> 00:14:38,250 278 00:14:38,250 --> 00:14:39,280 Detta är besvärligt. 279 00:14:39,280 --> 00:14:41,738 >> LAUREN CARVALHO: Kan du [OHÖRBAR]? 280 00:14:41,738 --> 00:14:45,182 281 00:14:45,182 --> 00:14:45,990 >> LUCAS FREITAS: Förlåt. 282 00:14:45,990 --> 00:14:49,960 Jag ville inte spara det i rätt katalog. 283 00:14:49,960 --> 00:14:52,130 Kom till praktiken, och nu spara den som hej.c. 284 00:14:52,130 --> 00:14:54,750 Jag är ledsen. 285 00:14:54,750 --> 00:14:56,250 Nu är det sparas. 286 00:14:56,250 --> 00:14:58,300 >> Låt mig bara göra ls och vara Se till att den är här. 287 00:14:58,300 --> 00:14:59,460 OK, nu är det här. 288 00:14:59,460 --> 00:15:05,930 Så nu om jag gör hej, spottar en massa saker, men det ger bara 289 00:15:05,930 --> 00:15:08,870 mig en annan linje för terminalen, vilket innebär att det inte var framgångsrik. 290 00:15:08,870 --> 00:15:13,160 Så nu om jag gör en ls igen, jag faktiskt se denna fil i grönt, vilket är den 291 00:15:13,160 --> 00:15:15,470 körbar fil. 292 00:15:15,470 --> 00:15:21,700 >> Och sedan om jag vill driva det, allt det Jag behöver göra är att punkt snedstreck hej. 293 00:15:21,700 --> 00:15:25,830 Det kommer att säga hej just här, så det är exakt vad jag ber den till. 294 00:15:25,830 --> 00:15:29,620 >> Det är ytterligare ett sätt att sammanställa, vilken använder klang. 295 00:15:29,620 --> 00:15:35,740 Klang är bara en kompilator som vi har, och det är lite mer mångordig till 296 00:15:35,740 --> 00:15:36,390 kompilera det. 297 00:15:36,390 --> 00:15:40,180 Men det fungerar lika bra. 298 00:15:40,180 --> 00:15:46,810 Så om jag gör klang, och då-o, och sedan det namn som jag vill ge till 299 00:15:46,810 --> 00:15:50,400 den körbara filen, så låt oss säga "Hej." Och sedan den fil som jag vill ha 300 00:15:50,400 --> 00:15:53,460 att sammanställa, hej.c. 301 00:15:53,460 --> 00:15:55,900 Det kommer också att sammanställa. 302 00:15:55,900 --> 00:15:59,020 Och du har filen här, och Jag kan bara köra det också. 303 00:15:59,020 --> 00:16:00,610 Så båda av dem fungerar. 304 00:16:00,610 --> 00:16:03,270 >> Låter det vettigt? 305 00:16:03,270 --> 00:16:06,020 Några frågor? 306 00:16:06,020 --> 00:16:09,020 >> PUBLIK: Kan du zooma i en liten bit? 307 00:16:09,020 --> 00:16:09,913 >> LUCAS FREITAS: Förlåt? 308 00:16:09,913 --> 00:16:11,135 >> PUBLIK: Zooma in? 309 00:16:11,135 --> 00:16:13,310 >> LAUREN CARVALHO: Jag tror att du kan bara kommandot plus. 310 00:16:13,310 --> 00:16:14,295 >> LUCAS FREITAS: Kommando vad? 311 00:16:14,295 --> 00:16:16,060 >> LAUREN CARVALHO: Command plus. 312 00:16:16,060 --> 00:16:17,000 >> LUCAS FREITAS: Nej. 313 00:16:17,000 --> 00:16:19,350 >> LAUREN CARVALHO: Åh, det är inte kommer att fungera eftersom - 314 00:16:19,350 --> 00:16:25,548 det är för att vi ställer in upplösningen för denna sak. 315 00:16:25,548 --> 00:16:27,450 >> LUCAS FREITAS: Jag gör inte tror att vi kan zooma in 316 00:16:27,450 --> 00:16:30,852 317 00:16:30,852 --> 00:16:34,130 Ja, vi kan inte zooma. 318 00:16:34,130 --> 00:16:36,200 Har du någon annan fråga? 319 00:16:36,200 --> 00:16:36,680 Ursäkta. 320 00:16:36,680 --> 00:16:39,170 >> PUBLIK: Kan du upprepa klang? 321 00:16:39,170 --> 00:16:40,630 >> LUCAS FREITAS: Den klang? 322 00:16:40,630 --> 00:16:44,190 Klang är samma sak som gör, men det Skillnaden är att jag först tänker 323 00:16:44,190 --> 00:16:48,460 att skriva klang, som är det kommando, då jag ska göra -0, allt, vilket är 324 00:16:48,460 --> 00:16:51,680 precis vad vi ska lära sig senare som en flagga. 325 00:16:51,680 --> 00:16:54,440 Så tänk på att du alltid måste sätta-o. 326 00:16:54,440 --> 00:16:58,690 >> Och då först, du kommer att sätta namnet på den körbara filen, 327 00:16:58,690 --> 00:17:00,680 i grund och botten den fil som du är kommer att skapa. 328 00:17:00,680 --> 00:17:06,430 Så jag kan säga, till exempel, hello2 och sedan filen som jag vill kompilera, 329 00:17:06,430 --> 00:17:07,800 vilket är den. c-fil. 330 00:17:07,800 --> 00:17:09,240 Så det är hej.c. 331 00:17:09,240 --> 00:17:10,871 Låter det vettigt? 332 00:17:10,871 --> 00:17:12,635 >> PUBLIK: Hej vad? 333 00:17:12,635 --> 00:17:13,076 Vad är det? 334 00:17:13,076 --> 00:17:15,960 >> LUCAS FREITAS: hej.c. 335 00:17:15,960 --> 00:17:19,849 Och om jag kompilera det, och om Jag ls, har jag också en 336 00:17:19,849 --> 00:17:22,010 hello2 att jag just sammanställt. 337 00:17:22,010 --> 00:17:26,339 Och om jag försöker köra den, det kommer att gör exakt samma sak som hej, 338 00:17:26,339 --> 00:17:27,089 bara skriva hej. 339 00:17:27,089 --> 00:17:31,660 >> PUBLIK: Hur kommer det för märke du kan sätta hej.c efter? 340 00:17:31,660 --> 00:17:33,880 >> LUCAS FREITAS: I make, du behöver inte sätta. c.. 341 00:17:33,880 --> 00:17:36,140 I göra, du bara säga det namnet på programmet. 342 00:17:36,140 --> 00:17:37,750 Du behöver inte säga. C.. 343 00:17:37,750 --> 00:17:39,020 Men för klang, bör du. 344 00:17:39,020 --> 00:17:44,040 >> PUBLIK: Med klang gör du också måste lägga till [OHÖRBAR] 345 00:17:44,040 --> 00:17:44,480 >> LAUREN CARVALHO: Ja. 346 00:17:44,480 --> 00:17:46,180 Så du måste också biblioteket. 347 00:17:46,180 --> 00:17:51,170 >> LUCAS FREITAS: Ja, det är något Vi kommer att använda senare. 348 00:17:51,170 --> 00:17:54,850 Det kallas länkning, och jag tror att vi är kommer att prata om det senare. 349 00:17:54,850 --> 00:17:55,930 En annan fråga? 350 00:17:55,930 --> 00:17:59,927 >> PUBLIK: Har du lagt en prick snedstreck klang? 351 00:17:59,927 --> 00:18:01,060 >> LUCAS FREITAS: Nej. 352 00:18:01,060 --> 00:18:06,040 Pricken snedstreck är bara att öppna den körbara filen. 353 00:18:06,040 --> 00:18:09,440 Så klang, du bara skriva "klang", och då den om du vill öppna 354 00:18:09,440 --> 00:18:12,640 körbar fil som du just sammanställt, då du dot 355 00:18:12,640 --> 00:18:13,780 snedstreck och namnet. 356 00:18:13,780 --> 00:18:15,100 Låter det vettigt? 357 00:18:15,100 --> 00:18:18,635 358 00:18:18,635 --> 00:18:22,435 >> PUBLIK: Om du skulle bara förändring [OHÖRBAR] till hallå världen, gör du 359 00:18:22,435 --> 00:18:23,870 behöva kompilera om det? 360 00:18:23,870 --> 00:18:24,750 >> LUCAS FREITAS: Ja. 361 00:18:24,750 --> 00:18:36,650 om jag vill säga, till exempel, "Hej det, "Jag kan bara spara den nu, och jag 362 00:18:36,650 --> 00:18:38,020 bara kompilera det igen. 363 00:18:38,020 --> 00:18:41,910 Så låt mig göra en make hej. 364 00:18:41,910 --> 00:18:48,490 Och om jag gör hej, det kommer att säga "hej där." Vettigt? 365 00:18:48,490 --> 00:18:50,280 Fler frågor? 366 00:18:50,280 --> 00:18:54,384 >> PUBLIK: ni måste ha med standard I / O för att samordna arbetet? 367 00:18:54,384 --> 00:18:55,480 >> LUCAS FREITAS: Ja. 368 00:18:55,480 --> 00:18:58,050 Den standard I / O är i grunden biblioteket som har en 369 00:18:58,050 --> 00:19:00,050 genomförande för printf. 370 00:19:00,050 --> 00:19:03,450 371 00:19:03,450 --> 00:19:06,910 Så det där rätt på topp innefattar stdio. 372 00:19:06,910 --> 00:19:11,920 Det är bland annat ett bibliotek som i grund och botten har en massa olika 373 00:19:11,920 --> 00:19:13,260 verktyg som du kan använda. 374 00:19:13,260 --> 00:19:13,480 en? 375 00:19:13,480 --> 00:19:17,820 Av dem är printf som är en funktion som i grund och botten skriver 376 00:19:17,820 --> 00:19:21,290 meddelanden till skärmen. 377 00:19:21,290 --> 00:19:23,200 >> Fler frågor? 378 00:19:23,200 --> 00:19:24,700 Nej? 379 00:19:24,700 --> 00:19:25,060 OK. 380 00:19:25,060 --> 00:19:31,620 Så nu ska vi prata om - 381 00:19:31,620 --> 00:19:33,948 >> LAUREN CARVALHO: Låt oss bara gå till stilguide. 382 00:19:33,948 --> 00:19:35,896 Vill du bara hitta det i här? 383 00:19:35,896 --> 00:19:37,880 >> LUCAS FREITAS: Så ska vi att prata om stil. 384 00:19:37,880 --> 00:19:47,006 385 00:19:47,006 --> 00:19:50,430 >> LAUREN CARVALHO: Åh, David avslutade inte. 386 00:19:50,430 --> 00:19:51,230 OK. 387 00:19:51,230 --> 00:19:53,870 Varför vi inte komma tillbaka till stil i slutet? 388 00:19:53,870 --> 00:19:56,220 Det är faktiskt uppdaterats medan vi pratar. 389 00:19:56,220 --> 00:19:56,810 >> LUCAS FREITAS: Ja. 390 00:19:56,810 --> 00:19:58,300 Låt oss väg för David att avsluta det. 391 00:19:58,300 --> 00:20:07,150 392 00:20:07,150 --> 00:20:08,600 >> LAUREN CARVALHO: Can vi byter egentligen? 393 00:20:08,600 --> 00:20:14,920 394 00:20:14,920 --> 00:20:17,200 >> Så jag hoppas att alla har varit njuter Scratch. 395 00:20:17,200 --> 00:20:21,950 Tyvärr, är det dags att flytta bort från detta - 396 00:20:21,950 --> 00:20:25,280 tyvärr är det dags att flytta bort från dessa vackra programmeringsblock 397 00:20:25,280 --> 00:20:28,530 om till C. Men som tur, alla av programmering konstruktioner som du har 398 00:20:28,530 --> 00:20:32,370 arbetat med i Scratch är direkt överföra till C, och vi är 399 00:20:32,370 --> 00:20:35,130 kommer att börja att lära sig om några av dem just nu. 400 00:20:35,130 --> 00:20:39,200 Låt oss först tala om villkor i booleska uttryck. 401 00:20:39,200 --> 00:20:41,944 >> Detta körs på reserv batteriet. 402 00:20:41,944 --> 00:20:43,912 >> LUCAS FREITAS: Hur är som inte fungerar? 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, jag kommer att få - 406 00:20:50,256 --> 00:20:53,700 407 00:20:53,700 --> 00:20:57,390 >> LAUREN CARVALHOS: Så villkor är viktiga eftersom de tillåter oss att 408 00:20:57,390 --> 00:21:00,588 införa logik i våra program. 409 00:21:00,588 --> 00:21:04,620 Här är ett exempel på ett villkor inom ett C-program. 410 00:21:04,620 --> 00:21:06,130 Låt oss notera hur detta - 411 00:21:06,130 --> 00:21:11,324 Så detta tillstånd blocket just här, detta printf uttalande kommer inte köra 412 00:21:11,324 --> 00:21:14,860 såvida inte villkoret inom parentes, n som är större än 0, 413 00:21:14,860 --> 00:21:16,800 utvärderas till true. 414 00:21:16,800 --> 00:21:20,780 >> Nu är samtliga villkor inom f uttalanden är booleska uttryck, 415 00:21:20,780 --> 00:21:22,970 vilket innebär att det finns endast två alternativ. 416 00:21:22,970 --> 00:21:26,856 De kan antingen utvärderas till sant, eller de kan utvärderas till false. 417 00:21:26,856 --> 00:21:33,174 Så här, så det är vettigt, eller hur? n som är större än 0, innebär att det är ett positivt 418 00:21:33,174 --> 00:21:41,160 antal, vilket innebär att det kommer att skrivas ut ut "du valde ett positivt tal." 419 00:21:41,160 --> 00:21:44,630 >> Det finns massor av booleska uttryck som kan ligga till tillstånd med en 420 00:21:44,630 --> 00:21:47,190 init uttalande. 421 00:21:47,190 --> 00:21:48,520 Vi har mindre än. 422 00:21:48,520 --> 00:21:50,950 Detta är mindre än eller lika med. 423 00:21:50,950 --> 00:21:52,200 Detta är bara en rolig [OHÖRBAR]. 424 00:21:52,200 --> 00:21:54,800 425 00:21:54,800 --> 00:22:01,630 Om du vill att printf att ske om det är större än eller lika med 0, så 426 00:22:01,630 --> 00:22:03,345 du skulle välja detta. 427 00:22:03,345 --> 00:22:07,750 Så det lika bara lägger rätt efter större än-tecken. 428 00:22:07,750 --> 00:22:12,030 >> Lika lika, vilket skiljer sig från bara ett likhetstecken, lika lika 429 00:22:12,030 --> 00:22:16,430 egentligen innebär att oavsett är på vänstra sidan av denna är den samma som 430 00:22:16,430 --> 00:22:20,610 vad som finns på den högra sidan av denna där en likhetstecknet är vad? 431 00:22:20,610 --> 00:22:23,333 Vad är bara ett likhetstecken? 432 00:22:23,333 --> 00:22:24,275 Överlåtelse. 433 00:22:24,275 --> 00:22:25,985 >> LUCAS FREITAS: Vem sa det? 434 00:22:25,985 --> 00:22:27,170 Är det godis? 435 00:22:27,170 --> 00:22:27,370 Åh, nej. 436 00:22:27,370 --> 00:22:27,885 Ursäkta. 437 00:22:27,885 --> 00:22:28,210 Ursäkta. 438 00:22:28,210 --> 00:22:30,400 Ni båda får godis. 439 00:22:30,400 --> 00:22:31,510 Åh, OK! 440 00:22:31,510 --> 00:22:33,046 Tre personer får godis! 441 00:22:33,046 --> 00:22:37,393 >> LAUREN CARVALHO: Så här en här är det bang operatören föregår 442 00:22:37,393 --> 00:22:40,240 likhetstecknet, så det är inte är lika med. 443 00:22:40,240 --> 00:22:46,560 Så om detta var i mitt tillstånd, kroppen av tillståndet skulle 444 00:22:46,560 --> 00:22:49,615 köra om allt är i vänster är inte det samma som 445 00:22:49,615 --> 00:22:52,540 vad som finns till höger. 446 00:22:52,540 --> 00:22:57,680 >> Jag kan också ha bara utropstecken. 447 00:22:57,680 --> 00:23:01,250 Egentligen får vi se i en funktion glida på hur detta skulle kunna användas. 448 00:23:01,250 --> 00:23:03,830 >> LUCAS FREITAS: Några frågor? 449 00:23:03,830 --> 00:23:06,450 Nej? 450 00:23:06,450 --> 00:23:10,460 >> LAUREN CARVALHO: Vi kan kombinera dessa Booleska uttryck för att konstruera mer 451 00:23:10,460 --> 00:23:12,500 intrikata villkorssatser. 452 00:23:12,500 --> 00:23:19,680 Så här, om allt är till vänster sidan i de dubbla streck eller 453 00:23:19,680 --> 00:23:23,160 allt som är på höger sida av de dubbla streck utvärderas till true 454 00:23:23,160 --> 00:23:25,700 då ska vi skriva ut ogiltigt. 455 00:23:25,700 --> 00:23:29,503 Och sedan ner här, om allt vad s på den vänstra sidan av två 456 00:23:29,503 --> 00:23:33,480 et-tecken och det vi lägger på höger sidan av de två et-tecken 457 00:23:33,480 --> 00:23:37,470 utvärderas till sant, då vi ska skriva ut giltiga. 458 00:23:37,470 --> 00:23:42,195 De dubbla streck kallas den logiska OR operatör de dubbla et-tecken är 459 00:23:42,195 --> 00:23:44,190 kallas den logiska AND operatören. 460 00:23:44,190 --> 00:23:44,648 Ja? 461 00:23:44,648 --> 00:23:47,850 >> PUBLIK: Är de bara gemener l's? 462 00:23:47,850 --> 00:23:48,620 >> LAUREN CARVALHO: Nej. 463 00:23:48,620 --> 00:23:50,890 De är faktiskt - 464 00:23:50,890 --> 00:23:55,134 du vet motreaktion, som ovanför returtangenten? 465 00:23:55,134 --> 00:23:56,585 Ser du det där? 466 00:23:56,585 --> 00:23:57,940 >> LUCAS FREITAS: Det är faktiskt en bar. 467 00:23:57,940 --> 00:24:02,100 >> LAUREN CARVALHO: Det är faktiskt bara två barer. 468 00:24:02,100 --> 00:24:05,724 >> PUBLIK: Kan du använda lika lika för strängar? 469 00:24:05,724 --> 00:24:07,000 >> LUCAS FREITAS: Nej. 470 00:24:07,000 --> 00:24:09,130 Vi kommer att lära sig senare något om det. 471 00:24:09,130 --> 00:24:10,735 >> LAUREN CARVALHO: Det finns en funktion som du kan använda. 472 00:24:10,735 --> 00:24:12,644 Men du behöver inte oroar sig för att ännu. 473 00:24:12,644 --> 00:24:15,530 474 00:24:15,530 --> 00:24:18,270 >> Vad händer om jag ger det här programmet nummer 5? 475 00:24:18,270 --> 00:24:20,850 Vad kommer att skriva ut? 476 00:24:20,850 --> 00:24:22,100 >> PUBLIK: [OHÖRBAR] 477 00:24:22,100 --> 00:24:27,780 478 00:24:27,780 --> 00:24:28,275 giltig. 479 00:24:28,275 --> 00:24:29,770 >> LAUREN CARVALHO: Giltig? 480 00:24:29,770 --> 00:24:30,135 Yeah. 481 00:24:30,135 --> 00:24:34,092 Jag vet inte vem som fick den. 482 00:24:34,092 --> 00:24:35,036 >> [LAUGHTER] 483 00:24:35,036 --> 00:24:37,990 >> LAUREN CARVALHO: Det är typ skrämmande [OHÖRBAR]. 484 00:24:37,990 --> 00:24:40,900 >> PUBLIK: Så det dubbla och, som bara betyder och? 485 00:24:40,900 --> 00:24:41,740 >> LAUREN CARVALHO: Ja. 486 00:24:41,740 --> 00:24:46,160 Så nummer 5 är både större än 0 och mindre än 100. 487 00:24:46,160 --> 00:24:48,970 >> PUBLIK: Varför skulle det vara en? 488 00:24:48,970 --> 00:24:51,350 >> LAUREN CARVALHO: En et-tecken är faktiskt något annat, och det är 489 00:24:51,350 --> 00:24:53,390 en bitvis operatör, där du lär dig mer om senare. 490 00:24:53,390 --> 00:24:58,250 Men det är något som faktiskt fungerar med bitarna hos ett givet tal. 491 00:24:58,250 --> 00:25:00,872 >> LUCAS FREITAS: Bara tror att de inte oroa dig för det för nu. 492 00:25:00,872 --> 00:25:04,590 >> LAUREN CARVALHO: Jag tycker det är nog kommer upp nästa vecka. 493 00:25:04,590 --> 00:25:06,420 >> LUCAS FREITAS: Fler frågor? 494 00:25:06,420 --> 00:25:07,990 Nej? 495 00:25:07,990 --> 00:25:12,480 >> LAUREN CARVALHO: Så vi har sett att en det blockerar kan stå ensam, men det kan 496 00:25:12,480 --> 00:25:15,370 också kopplas ihop med och annat block. 497 00:25:15,370 --> 00:25:18,880 Så i det här fallet, är om n är större än 0, ska vi skriva ut "Du 498 00:25:18,880 --> 00:25:23,855 plockade ett positivt tal. "annars, vilket betyder om den är 0 eller om det är mindre 499 00:25:23,855 --> 00:25:27,170 än 0, vi kommer att skriva ut, "Du valde ett negativt tal." 500 00:25:27,170 --> 00:25:30,390 >> Det intressanta här är att dessa är exklusive varandra. 501 00:25:30,390 --> 00:25:33,940 Det kommer aldrig att bli ett fall i vilka detta och detta 502 00:25:33,940 --> 00:25:35,544 kan både skriva ut. 503 00:25:35,544 --> 00:25:38,190 504 00:25:38,190 --> 00:25:41,030 >> Jag är säker på att du arbetat med om / annat rutan i Scratch, så det borde vara 505 00:25:41,030 --> 00:25:42,392 ganska bekant. 506 00:25:42,392 --> 00:25:42,874 Ja? 507 00:25:42,874 --> 00:25:48,522 >> PUBLIK: Behöver vi utrymmet mellan int n är lika getInt då utrymmet i 508 00:25:48,522 --> 00:25:49,460 if-sats? 509 00:25:49,460 --> 00:25:51,565 Som vi använder en linje [OHÖRBAR] 510 00:25:51,565 --> 00:25:52,790 >> LAUREN CARVALHO: Åh, det utrymme här? 511 00:25:52,790 --> 00:25:56,742 >> PUBLIK: Gillar det, men du dubbla utrymme. 512 00:25:56,742 --> 00:25:58,718 Nej, gå upp. 513 00:25:58,718 --> 00:25:59,706 Gå upp. 514 00:25:59,706 --> 00:26:00,610 >> LUCAS FREITAS: Bara linjen? 515 00:26:00,610 --> 00:26:01,140 >> PUBLIK: Ja. 516 00:26:01,140 --> 00:26:02,870 >> LUCAS FREITAS: Bara den tomma raden? 517 00:26:02,870 --> 00:26:03,270 >> PUBLIK: Ja. 518 00:26:03,270 --> 00:26:04,070 >> LAUREN CARVALHO: Tom rad? 519 00:26:04,070 --> 00:26:04,470 Nej. 520 00:26:04,470 --> 00:26:06,320 Det är bara en stilistisk sak. 521 00:26:06,320 --> 00:26:09,360 >> LUCAS FREITAS: Det är precis som ibland du bara hoppa över några rader så 522 00:26:09,360 --> 00:26:12,330 att koden inte ser ut som ett stort block av text. 523 00:26:12,330 --> 00:26:15,800 >> LAUREN CARVALHO: Jag tror att det som hände var att vi hade en kommentar här, men jag 524 00:26:15,800 --> 00:26:18,220 tog ut det så att ni skulle få att tänka på koden snarare 525 00:26:18,220 --> 00:26:19,920 än bara läsa min kommentar. 526 00:26:19,920 --> 00:26:24,170 I allmänhet är avståndet kommer inte riktigt påverka hur ditt program körs. 527 00:26:24,170 --> 00:26:26,070 Det är mer av en stilistisk sak. 528 00:26:26,070 --> 00:26:29,460 Och när vi har Handboken uppdateras och redo att gå i slutet av 529 00:26:29,460 --> 00:26:33,260 supersection, vi pratar om det mer. 530 00:26:33,260 --> 00:26:34,660 >> Det är något fel med detta program, eller hur? 531 00:26:34,660 --> 00:26:38,980 Eftersom 0 är inte riktigt ett negativt tal. 532 00:26:38,980 --> 00:26:40,270 Så låt oss se om vi kan fixa det. 533 00:26:40,270 --> 00:26:45,710 534 00:26:45,710 --> 00:26:48,370 >> Du kan säkert föreställa er med detta säger, eller hur? 535 00:26:48,370 --> 00:26:52,850 Om n är större än 0, ut vi, "Du plockade ett positivt tal. "Då annanstans 536 00:26:52,850 --> 00:26:57,340 om n är mindre än 0, "Du valde en negativt tal. "annars," Du valde 537 00:26:57,340 --> 00:27:01,040 0. " 538 00:27:01,040 --> 00:27:06,030 >> Nu det intressanta är att detta skulle kunna fortsätta för evigt. 539 00:27:06,030 --> 00:27:10,020 Du kan ha en om blocket, en annan om kvarter, en annan annars om blocket, annars om, 540 00:27:10,020 --> 00:27:14,790 else if, else if, annars, i princip så länge du vill. 541 00:27:14,790 --> 00:27:17,110 Och när konstruerade så här, Dessa kommer alla att vara 542 00:27:17,110 --> 00:27:19,206 exkl. varandra. 543 00:27:19,206 --> 00:27:19,650 Ja? 544 00:27:19,650 --> 00:27:24,130 >> PUBLIK: Så varför kan inte du bara använda en annan om istället för [OHÖRBAR]? 545 00:27:24,130 --> 00:27:26,990 >> LAUREN CARVALHO: I det här fallet, ja jag skulle kunna använda en annan om, och det skulle vara 546 00:27:26,990 --> 00:27:29,190 helt OK eftersom villkor själva är 547 00:27:29,190 --> 00:27:30,600 exkl. varandra. 548 00:27:30,600 --> 00:27:33,560 Men om villkoren inte var exklusivt av varandra, skulle detta 549 00:27:33,560 --> 00:27:37,596 tvinga dem att aldrig båda utvärdera, om det är vettigt. 550 00:27:37,596 --> 00:27:44,195 >> PUBLIK: I så fall skulle vi bo den andra om i den första om? 551 00:27:44,195 --> 00:27:46,160 >> LAUREN CARVALHO: Om - vad menar du? 552 00:27:46,160 --> 00:27:49,660 >> PUBLIK: Om de två villkor utesluter inte varandra? 553 00:27:49,660 --> 00:27:54,700 >> LAUREN CARVALHOS: Om villkoren utesluter inte varandra? 554 00:27:54,700 --> 00:27:58,000 Men du vill bara en av dem att köra? 555 00:27:58,000 --> 00:28:00,260 >> PUBLIK: Du vill bara om istället för annat. 556 00:28:00,260 --> 00:28:01,020 >> LAUREN CARVALHO: Ja. 557 00:28:01,020 --> 00:28:03,630 Det kommer alltid att finnas massor olika sätt som du kan göra här. 558 00:28:03,630 --> 00:28:06,600 Du kan definitivt kapsla dem. 559 00:28:06,600 --> 00:28:10,390 Och du kommer att se i en framtida bild som du kan ha flera ifs, bara en 560 00:28:10,390 --> 00:28:11,680 efter den andra. 561 00:28:11,680 --> 00:28:14,840 Men detta är ett sätt att logiskt organisera flödet av ditt program. 562 00:28:14,840 --> 00:28:18,000 >> LUCAS FREITAS: Och det finns ytterligare en sak, är att du frågade om att sätta 563 00:28:18,000 --> 00:28:20,110 om och sedan en annan om. 564 00:28:20,110 --> 00:28:25,240 Det skulle fungera perfekt, men det är dåligt design eftersom i princip om du 565 00:28:25,240 --> 00:28:29,320 Kontrollera först om, och du märker att antalet är större än 0, du 566 00:28:29,320 --> 00:28:30,660 kan bara avsluta programmet. 567 00:28:30,660 --> 00:28:33,080 Du behöver inte kontrollera om det är mindre än 0, eller hur? 568 00:28:33,080 --> 00:28:37,510 >> Men om du om om, det kommer att kontrollera båda, men om jag gör om det annars är, 569 00:28:37,510 --> 00:28:39,260 det kommer att kontrollera om det är större än 0. 570 00:28:39,260 --> 00:28:43,500 Om det är, det kommer inte att ens titta på andra linjer i koden. 571 00:28:43,500 --> 00:28:48,560 Så du i princip kontrollera det som två gånger i onödan, så det är därför vi 572 00:28:48,560 --> 00:28:50,750 göra om annat om det. 573 00:28:50,750 --> 00:28:52,350 Fler frågor? 574 00:28:52,350 --> 00:28:56,547 >> PUBLIK: Så funktionaliteten av else if är samma som 575 00:28:56,547 --> 00:28:57,790 om det bara var om? 576 00:28:57,790 --> 00:28:58,470 >> LAUREN CARVALHO: Nej. 577 00:28:58,470 --> 00:29:02,720 Du faktiskt kommer att se i min nästa Skjut ett exempel där det kan 578 00:29:02,720 --> 00:29:03,270 vara olika. 579 00:29:03,270 --> 00:29:05,690 I detta fall, det är nästan samma. 580 00:29:05,690 --> 00:29:10,190 581 00:29:10,190 --> 00:29:15,410 >> Så här har vi ett exempel på flera om uttalanden och den 582 00:29:15,410 --> 00:29:20,020 funktionaliteten är inte samma sak som om jag just hade sagt om 583 00:29:20,020 --> 00:29:23,120 annars, om annat, om annat. 584 00:29:23,120 --> 00:29:26,970 Låt oss bara tänka på vad som skulle skriva ut om jag ange numret 95 585 00:29:26,970 --> 00:29:27,715 in i detta program. 586 00:29:27,715 --> 00:29:29,764 >> PUBLIK: [OHÖRBAR] 587 00:29:29,764 --> 00:29:31,102 >> LAUREN CARVALHO: Och sedan? 588 00:29:31,102 --> 00:29:32,340 >> PUBLIK: [OHÖRBAR] 589 00:29:32,340 --> 00:29:33,680 >> LAUREN CARVALHO: Ja. 590 00:29:33,680 --> 00:29:37,430 Så i detta fall, är dessa villkor är inte utesluter varandra. 591 00:29:37,430 --> 00:29:41,040 Och eftersom det finns ingenting som hindrar detta tillstånd från bedömning av om detta 592 00:29:41,040 --> 00:29:44,730 man redan har, de är bara allt går att skriva ut. 593 00:29:44,730 --> 00:29:46,222 Så hur kan jag åtgärda detta? 594 00:29:46,222 --> 00:29:47,608 >> PUBLIK: annars ifs? 595 00:29:47,608 --> 00:29:48,910 >> LAUREN CARVALHO: Du kan använda annans ifs. 596 00:29:48,910 --> 00:29:50,590 Jag kunde ändra ordningen av dessa, eller hur? 597 00:29:50,590 --> 00:29:53,800 Om jag gjorde det här först? 598 00:29:53,800 --> 00:29:55,120 Jo, faktiskt, nej. 599 00:29:55,120 --> 00:29:57,100 Det skulle inte fungera för 95. 600 00:29:57,100 --> 00:29:58,490 >> LUCAS FREITAS: Nej, bara de annars ifs. 601 00:29:58,490 --> 00:30:01,720 >> LAUREN CARVALHO: else ifs skulle ha fast det. 602 00:30:01,720 --> 00:30:07,050 Innebär att reda ut förvirringen mellan IFS och annars ifs? 603 00:30:07,050 --> 00:30:11,480 >> PUBLIK: Jag ville bara fråga dig, om du använde annars om, skulle det sluta? 604 00:30:11,480 --> 00:30:11,840 >> LAUREN CARVALHO: Höger. 605 00:30:11,840 --> 00:30:13,330 Så bara det första. 606 00:30:13,330 --> 00:30:16,535 Om jag kom in i nummer 95, bara detta skulle ha skrivits ut, och det aldrig 607 00:30:16,535 --> 00:30:17,934 skulle ha gått till annat. 608 00:30:17,934 --> 00:30:22,570 >> LUCAS FREITAS: Just slags tänka på det som om det händer, gör det här. 609 00:30:22,570 --> 00:30:26,990 Den andra är som om inte, check för detta, och sedan göra det. 610 00:30:26,990 --> 00:30:28,690 Så som de är alla ömsesidigt exklusiva. 611 00:30:28,690 --> 00:30:30,270 Du kan inte komma in i två över dem. 612 00:30:30,270 --> 00:30:32,800 613 00:30:32,800 --> 00:30:37,630 >> PUBLIK: Kan du använda en logisk OCH för den situationen? 614 00:30:37,630 --> 00:30:39,370 >> LAUREN CARVALHO: Ja. 615 00:30:39,370 --> 00:30:41,400 Det är ett annat sätt som vi kunde har åtgärdat problemet. 616 00:30:41,400 --> 00:30:43,470 Vi kunde ha definierat varierar, eller hur? 617 00:30:43,470 --> 00:30:49,410 Så jag kunde ha sagt om n är större än 90 och mindre än - 618 00:30:49,410 --> 00:30:52,135 Tja, jag antar att detta inte riktigt roll, men här kunde jag ha sagt om 619 00:30:52,135 --> 00:30:53,960 n är större än 80 och mindre än 90. 620 00:30:53,960 --> 00:30:55,570 Större än 70, mindre än 80. 621 00:30:55,570 --> 00:30:59,077 Det hade också fungerat. 622 00:30:59,077 --> 00:30:59,891 >> [LAUGHTER] 623 00:30:59,891 --> 00:31:00,980 >> LUCAS FREITAS: Hon är rädd. 624 00:31:00,980 --> 00:31:02,070 >> LAUREN CARVALHO: Var inte rädd. 625 00:31:02,070 --> 00:31:04,570 >> LUCAS FREITAS: Det är inte att det kommer att vara fel. 626 00:31:04,570 --> 00:31:08,630 Det är bara det att det är onödigt mångordig. 627 00:31:08,630 --> 00:31:13,480 Liksom i datavetenskap, bör man vara så enkelt som möjligt så länge som 628 00:31:13,480 --> 00:31:14,730 du har funktionaliteten. 629 00:31:14,730 --> 00:31:16,725 630 00:31:16,725 --> 00:31:17,835 Vill du ha godis? 631 00:31:17,835 --> 00:31:19,084 >> PUBLIK: Inte behöver det. 632 00:31:19,084 --> 00:31:20,340 >> LAUREN CARVALHO: Du skrämmer alla, Lucas. 633 00:31:20,340 --> 00:31:21,590 >> LUCAS FREITAS: Förlåt. 634 00:31:21,590 --> 00:31:24,650 635 00:31:24,650 --> 00:31:29,510 >> LAUREN CARVALHO: David nämnde också dessa växlar uttalande i klassen. 636 00:31:29,510 --> 00:31:33,180 I grund och botten vad som händer är switchen uttalande tar en variabel. 637 00:31:33,180 --> 00:31:35,760 I det här fallet, vi tar ett heltal. 638 00:31:35,760 --> 00:31:39,220 >> Om tal är 1, kommer vi att skriva ut, "Du valde en liten 639 00:31:39,220 --> 00:31:42,000 nummer. "Om heltal är 1," Du plockade ett medium nummer. "Om 640 00:31:42,000 --> 00:31:45,730 heltal är 3, "Du valde en hög nummer. "Och jag hade också en standard fall 641 00:31:45,730 --> 00:31:50,020 här nere, men det är inte visar upp, vilket är synd. 642 00:31:50,020 --> 00:31:53,120 643 00:31:53,120 --> 00:31:55,360 >> I grund och botten är detta bara en annan syntax. 644 00:31:55,360 --> 00:31:58,640 Vi kunde ha genomfört detta exakt Samma sak med om och annars om 645 00:31:58,640 --> 00:31:59,390 uttalanden. 646 00:31:59,390 --> 00:32:05,530 Men när det finns massor av olika villkor och massor av olika 647 00:32:05,530 --> 00:32:10,350 varianter på vad du vill göra för varje ingång, är detta ett alternativ. 648 00:32:10,350 --> 00:32:13,262 Så det är bara en bra syntax för att veta. 649 00:32:13,262 --> 00:32:15,099 Ja? 650 00:32:15,099 --> 00:32:21,380 >> PUBLIK: Varför finns det inte ett omvänt snedstreck n på den första? 651 00:32:21,380 --> 00:32:23,340 >> LAUREN CARVALHO: För där uppe? 652 00:32:23,340 --> 00:32:27,600 Det finns ingen backslash n uppe eftersom getInt - 653 00:32:27,600 --> 00:32:30,140 Om du prova det här, det ska ge dig denna prompt. 654 00:32:30,140 --> 00:32:32,290 Ge mig ett heltal mellan 1 och 3. 655 00:32:32,290 --> 00:32:35,550 Och om jag sätter den motreaktion n, skulle det ta mig till nästa rad, men jag bara 656 00:32:35,550 --> 00:32:38,690 ville att de skulle skriva heltal direkt efter kolon. 657 00:32:38,690 --> 00:32:40,120 Du kunde ha lagt motreaktionen n. 658 00:32:40,120 --> 00:32:42,374 Det är inte en stor sak. 659 00:32:42,374 --> 00:32:43,288 Yeah? 660 00:32:43,288 --> 00:32:50,525 >> Publik: För denna kod, är detta fall ett, är att eftersom 661 00:32:50,525 --> 00:32:51,760 det är det första fallet? 662 00:32:51,760 --> 00:32:52,260 Därför att - 663 00:32:52,260 --> 00:32:53,400 >> LAUREN CARVALHO: Nej, nej, nej. 664 00:32:53,400 --> 00:32:56,480 Så detta ger mig ett heltal mellan 1 och 3. 665 00:32:56,480 --> 00:32:59,070 Om n är 1, jag skriver ut det här. 666 00:32:59,070 --> 00:33:02,740 Om jag hade bett om brev, skulle jag ha sa ge mig en bokstav mellan A 667 00:33:02,740 --> 00:33:04,935 och C. Då detta skulle vara fallet A. 668 00:33:04,935 --> 00:33:05,910 >> PUBLIK: [OHÖRBAR]. 669 00:33:05,910 --> 00:33:08,090 Fallet skulle bara [OHÖRBAR] 670 00:33:08,090 --> 00:33:11,260 >> LAUREN CARVALHO: Ja, just det. 671 00:33:11,260 --> 00:33:11,550 Yeah? 672 00:33:11,550 --> 00:33:14,861 >> PUBLIK: Vad händer om du ville ha mer av en relationsuttryck? 673 00:33:14,861 --> 00:33:17,645 Så istället för att säga n är lika med 1, [OHÖRBAR] 674 00:33:17,645 --> 00:33:21,050 n är större än 1 i det första fallet? 675 00:33:21,050 --> 00:33:26,630 >> LAUREN CARVALHO: Faktiskt, om jag inte definiera en del av dessa fall, skulle detta 676 00:33:26,630 --> 00:33:28,500 att bära ner. 677 00:33:28,500 --> 00:33:30,680 Så egentligen, det är kanske inte vad du frågar. 678 00:33:30,680 --> 00:33:36,240 >> LUCAS FREITAS: Jag tror att hon frågar om fallet var n är större än 0, fall 679 00:33:36,240 --> 00:33:37,150 mindre än 0. 680 00:33:37,150 --> 00:33:39,210 >> LAUREN CARVALHO: Kanske omkopplaren påstående är inte riktigt vad du vill 681 00:33:39,210 --> 00:33:39,880 att använda i det fallet. 682 00:33:39,880 --> 00:33:42,420 >> LUCAS FREITAS: Växeln uttalande är bara för värde, så du kollar på 683 00:33:42,420 --> 00:33:45,370 värdet är som det eller det. 684 00:33:45,370 --> 00:33:47,025 Så kan du inte faktiskt sätta betingelser. 685 00:33:47,025 --> 00:33:50,988 686 00:33:50,988 --> 00:33:55,920 >> PUBLIK: Vad händer om den personen typer med [OHÖRBAR]? 687 00:33:55,920 --> 00:33:58,240 >> LAUREN CARVALHO: Det skulle ha varit min standard fall, som tyvärr 688 00:33:58,240 --> 00:33:58,910 du kan inte se. 689 00:33:58,910 --> 00:34:02,240 >> LUCAS FREITAS: [OHÖRBAR] få dem att se. 690 00:34:02,240 --> 00:34:03,690 >> LAUREN CARVALHO: Faktiskt, vet du vad? 691 00:34:03,690 --> 00:34:07,795 Låt oss bara gå att studera 50, och jag kommer bara zooma in på glasen på studie 692 00:34:07,795 --> 00:34:10,610 50, eftersom det är bara irriterande. 693 00:34:10,610 --> 00:34:14,938 Så låt mig faktiskt gå till tillstånd. 694 00:34:14,938 --> 00:34:17,860 Det är bara att ta en liten stund. 695 00:34:17,860 --> 00:34:26,940 696 00:34:26,940 --> 00:34:27,840 >> Okej. 697 00:34:27,840 --> 00:34:29,590 Så, jag är ledsen. 698 00:34:29,590 --> 00:34:33,625 Åtminstone nu vi kommer att kunna se allt utan att skära av. 699 00:34:33,625 --> 00:34:36,230 700 00:34:36,230 --> 00:34:36,969 Okej. 701 00:34:36,969 --> 00:34:43,800 >> Så om de sätter i en 10, skulle vi standard här till min standard fall, och jag 702 00:34:43,800 --> 00:34:46,510 skulle bara skriva ut ogiltiga eftersom jag bad dem att skriva in ett heltal 703 00:34:46,510 --> 00:34:49,460 mellan 1 och 3. 704 00:34:49,460 --> 00:34:50,650 Fler frågor? 705 00:34:50,650 --> 00:34:51,081 Yeah? 706 00:34:51,081 --> 00:34:57,590 >> PUBLIK: Låt oss säga för fall ett, fall tre, säger att du ville att det skulle bli allt 707 00:34:57,590 --> 00:35:00,950 samma sak, så du valde ett nummer det är inte ett medium nummer. 708 00:35:00,950 --> 00:35:03,840 I så fall skulle det vara överflödig? 709 00:35:03,840 --> 00:35:08,371 Vill du bara ändra texten på både av dem, eller skulle det inte finnas några 710 00:35:08,371 --> 00:35:08,617 redundans? 711 00:35:08,617 --> 00:35:11,920 Finns det något sätt att kombinera [OHÖRBAR]? 712 00:35:11,920 --> 00:35:15,810 >> LAUREN CARVALHO: Det finns sätt att kombinera dem, men jag tror att du kan 713 00:35:15,810 --> 00:35:18,730 bara kombinera intilliggande. 714 00:35:18,730 --> 00:35:22,250 Så om jag inte definiera något för fall två, skulle detta 715 00:35:22,250 --> 00:35:24,130 gäller för båda fallen. 716 00:35:24,130 --> 00:35:28,110 Åh, om jag inte lägga något till fall en, skulle detta gälla både 717 00:35:28,110 --> 00:35:30,620 fall ett och två. 718 00:35:30,620 --> 00:35:33,616 Om det är vettigt. 719 00:35:33,616 --> 00:35:35,872 >> PUBLIK: Kan du upprepa det en? 720 00:35:35,872 --> 00:35:36,670 >> LUCAS FREITAS: OK. 721 00:35:36,670 --> 00:35:39,950 Om du gjorde i princip, liksom, du har samma sak, men du inte lägger 722 00:35:39,950 --> 00:35:46,820 något här, skulle du vara antingen för fall en eller fall två, gör detta. 723 00:35:46,820 --> 00:35:47,930 Rätt? 724 00:35:47,930 --> 00:35:54,010 Och denna rast innebär att om du får i det här fallet, bara lämna. 725 00:35:54,010 --> 00:35:55,030 Så det är vad bromsen betyder. 726 00:35:55,030 --> 00:35:59,755 Så om jag bara gjorde det, du ser, det är fall en, och du skulle bara göra det. 727 00:35:59,755 --> 00:36:02,110 Om det var fallet två, skulle det också bara komma hit och göra det. 728 00:36:02,110 --> 00:36:03,544 >> PUBLIK: Men du kan göra det? 729 00:36:03,544 --> 00:36:05,140 Om det finns något för fall två [OHÖRBAR] 730 00:36:05,140 --> 00:36:07,095 >> LAUREN CARVALHO: Jag tror inte du kan göra det. 731 00:36:07,095 --> 00:36:09,380 Jag tror inte att du kan hoppa runt. 732 00:36:09,380 --> 00:36:11,070 Kan du göra det, Rob? 733 00:36:11,070 --> 00:36:13,300 Jag tror inte det. 734 00:36:13,300 --> 00:36:16,548 >> PUBLIK: Så bara ett nummer kan gå efter ett fall, eller hur? 735 00:36:16,548 --> 00:36:21,410 Det kan inte vara fallet ett, kommatecken, två? 736 00:36:21,410 --> 00:36:21,970 >> LUCAS FREITAS: Nej, det kan du inte. 737 00:36:21,970 --> 00:36:25,085 Du kan definitivt inte. 738 00:36:25,085 --> 00:36:28,770 >> LAUREN CARVALHO: Jag menar, är den punkt det här är ett alternativ, och det kanske inte 739 00:36:28,770 --> 00:36:31,940 passar ditt användningsfall, så då du skulle använda om förhållandena. 740 00:36:31,940 --> 00:36:33,906 >> PUBLIK: Så varför skulle du göra det här? 741 00:36:33,906 --> 00:36:34,314 Switchen? 742 00:36:34,314 --> 00:36:38,540 >> LAUREN CARVALHO: Jag skulle använda detta om du har mycket definierat - 743 00:36:38,540 --> 00:36:39,730 faktiskt, Lucas, är du blockerar. 744 00:36:39,730 --> 00:36:40,982 >> LUCAS FREITAS: Åh, förlåt. 745 00:36:40,982 --> 00:36:44,200 >> LAUREN CARVALHO: Om du har mycket definierade beteenden som du vill använda för 746 00:36:44,200 --> 00:36:48,105 varje ingång, kan detta vara ett lite mer kortfattad än att skriva ut 747 00:36:48,105 --> 00:36:49,530 en if-sats för var och en. 748 00:36:49,530 --> 00:36:51,210 >> PUBLIK: Vad gör bryta detta igen? 749 00:36:51,210 --> 00:36:53,180 >> LAUREN CARVALHOS: Avbrottet betyder stopp. 750 00:36:53,180 --> 00:36:56,860 Kom ihåg att om jag inte hade denna rast Här skulle vi ha just fallit ner 751 00:36:56,860 --> 00:36:58,110 in i nästa fall. 752 00:36:58,110 --> 00:37:00,820 >> LUCAS FREITAS: Break innebär att få ur switch-satsen. 753 00:37:00,820 --> 00:37:03,400 För om det är 1, jag vill ha för att skriva ut detta och lämna. 754 00:37:03,400 --> 00:37:04,640 Jag vill inte se något annat. 755 00:37:04,640 --> 00:37:05,790 >> PUBLIK: Du vill inte för att skriva ut något annat. 756 00:37:05,790 --> 00:37:06,730 >> LUCAS FREITAS: Ja. 757 00:37:06,730 --> 00:37:08,260 För att det är ömsesidigt uteslutande. 758 00:37:08,260 --> 00:37:11,378 >> PUBLIK: Och gör det bara fortsätter till nästa fallet om det första fallet 759 00:37:11,378 --> 00:37:11,850 är inte sant? 760 00:37:11,850 --> 00:37:14,120 Eller betyder testa alla fall på samma gång? 761 00:37:14,120 --> 00:37:16,300 >> LUCAS FREITAS: Nej, det checkar sekventiellt. 762 00:37:16,300 --> 00:37:18,070 Jämfört med föregående kvartal, ja. 763 00:37:18,070 --> 00:37:21,840 Ytterligare en fråga, då vi måste gå vidare så att vi kan täcka allt. 764 00:37:21,840 --> 00:37:22,300 Yeah? 765 00:37:22,300 --> 00:37:25,280 >> PUBLIK: Så för fallet, kan ha gjort någonting förutom just den? 766 00:37:25,280 --> 00:37:27,680 Kan du ge det en rad? 767 00:37:27,680 --> 00:37:28,580 >> LUCAS FREITAS: Nej. 768 00:37:28,580 --> 00:37:29,900 >> LAUREN CARVALHO: Jag tror inte att du kan ge det en rad. 769 00:37:29,900 --> 00:37:31,430 >> LUCAS FREITAS: Du kan inte du kan inte ge det en rad. 770 00:37:31,430 --> 00:37:33,190 >> PUBLIK: Fallet är specifik [OHÖRBAR]. 771 00:37:33,190 --> 00:37:34,840 >> LUCAS FREITAS: Switch är typ av värden. 772 00:37:34,840 --> 00:37:38,400 Du gör olika saker beroende på ett värde, ett visst värde. 773 00:37:38,400 --> 00:37:41,050 Du kan inte göra intervall, kan du inte göra något annat. 774 00:37:41,050 --> 00:37:43,055 Det är bara ytterligare ett verktyg för att se. 775 00:37:43,055 --> 00:37:46,570 >> LAUREN CARVALHO: De flesta människor inte använder byta uttalanden mycket i CS50, 776 00:37:46,570 --> 00:37:48,760 men det finns där. 777 00:37:48,760 --> 00:37:49,920 >> Okej. 778 00:37:49,920 --> 00:37:53,870 Så nästa sak vi ska prata om är den ternära operatören. 779 00:37:53,870 --> 00:37:56,650 Detta är bara en annan typ av villkorad. 780 00:37:56,650 --> 00:38:01,460 I grund och botten vad som händer här är jag ber om ett heltal, och, om n är 781 00:38:01,460 --> 00:38:05,550 större än 100, kommer jag att skriva ut "Hög". Om det inte, jag ska 782 00:38:05,550 --> 00:38:07,010 skriva ut "låg". 783 00:38:07,010 --> 00:38:11,230 >> Vad den gör är villkoret här i parentesen, och du 784 00:38:11,230 --> 00:38:13,550 kan slags tänka på frågan som jag ber om 785 00:38:13,550 --> 00:38:15,030 detta är sant eller inte. 786 00:38:15,030 --> 00:38:18,485 Om det är sant, jag ska göra det här först sak, och om det inte är sant, jag är 787 00:38:18,485 --> 00:38:20,020 kommer att göra denna andra sak. 788 00:38:20,020 --> 00:38:23,520 789 00:38:23,520 --> 00:38:27,960 >> Eventuella frågor om ternära operatör? 790 00:38:27,960 --> 00:38:30,880 >> LUCAS FREITAS: Vill bara notera från David är att när du har ett 791 00:38:30,880 --> 00:38:33,346 skick - 792 00:38:33,346 --> 00:38:35,690 >> LAUREN CARVALHO: Jag antar att Davids tittar via live stream. 793 00:38:35,690 --> 00:38:37,210 >> LUCAS FREITAS: Han gör liv ström just nu. 794 00:38:37,210 --> 00:38:41,730 Så när du har ett tillstånd, du tänkt att sätta klammerparenteser, 795 00:38:41,730 --> 00:38:45,320 precis som vi har i en växel uttalande här. 796 00:38:45,320 --> 00:38:46,750 Vi har krullparenteser här. 797 00:38:46,750 --> 00:38:49,560 För oavsett förutsättningar, du ska också sätta det. 798 00:38:49,560 --> 00:38:50,820 >> LAUREN CARVALHO: Du ser detta i stilguide. 799 00:38:50,820 --> 00:38:52,900 Vi behöver faktiskt inte ha det stilguide just nu. 800 00:38:52,900 --> 00:38:53,930 Jag tror Davids fortfarande arbetar. 801 00:38:53,930 --> 00:38:55,100 >> LUCAS FREITAS: Han sade att det bara fungerar nu. 802 00:38:55,100 --> 00:38:56,120 >> LAUREN CARVALHO: Åh, är det fungerar nu? 803 00:38:56,120 --> 00:38:57,520 OK. 804 00:38:57,520 --> 00:39:02,060 Så tydligen i år i stil vägleda, även om du bara har en rad, 805 00:39:02,060 --> 00:39:06,040 du har att sätta dem klammerparenteserna i. 806 00:39:06,040 --> 00:39:09,480 Du behöver inte nödvändigtvis behöver för funktionalitet av programmet. 807 00:39:09,480 --> 00:39:12,210 Och kanske vi ska bara ta en paus efter de villkor och gå rakt 808 00:39:12,210 --> 00:39:14,620 till den stilguide för att rensa upp några av dessa saker? 809 00:39:14,620 --> 00:39:15,010 >> LUCAS FREITAS: Ja. 810 00:39:15,010 --> 00:39:15,775 Har du en fråga? 811 00:39:15,775 --> 00:39:17,580 >> PUBLIK: Nej, jag ska bara vänta tills stilguide. 812 00:39:17,580 --> 00:39:19,578 >> PUBLIK: Kan du gå tillbaka till den ternära operatören? 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: Ternary operatören är i grund och botten en om annat uttalande, men 815 00:39:29,010 --> 00:39:33,590 istället för att ha de två raderna att kontrollera en om och sedan 816 00:39:33,590 --> 00:39:36,600 annat, har du bara en rad. 817 00:39:36,600 --> 00:39:40,930 Så i princip om jag vill ge en sträng ett värde av hög eller låg, och jag 818 00:39:40,930 --> 00:39:46,270 vill göra en hög om n är större än 100 eller låg, om den är mindre, vad jag kan göra 819 00:39:46,270 --> 00:39:47,730 är detta [OHÖRBAR] 820 00:39:47,730 --> 00:39:53,060 strängen kommer att bli, och då jag frågar programmet är n större än 100? 821 00:39:53,060 --> 00:39:55,750 >> Så det är därför jag har detta uttryck inom parentes och sedan 822 00:39:55,750 --> 00:39:56,580 frågetecknet. 823 00:39:56,580 --> 00:39:59,110 Jag frågar är det större än 100? 824 00:39:59,110 --> 00:40:02,310 Om det är, det kommer att vara hög. 825 00:40:02,310 --> 00:40:03,850 Om det inte, det kommer att vara låg. 826 00:40:03,850 --> 00:40:07,310 >> Så i princip vad du tror att du frågar en fråga, så du sätter inom parentes 827 00:40:07,310 --> 00:40:08,620 tillståndet. 828 00:40:08,620 --> 00:40:11,160 Då du sätter frågetecken eftersom du frågar det. 829 00:40:11,160 --> 00:40:15,240 Och om detta är sant, det kommer att bli i det första värdet [OHÖRBAR] här. 830 00:40:15,240 --> 00:40:18,176 Om det inte, jag ska sätta värde som är efter kolon. 831 00:40:18,176 --> 00:40:21,580 Är det vettigt? 832 00:40:21,580 --> 00:40:24,730 >> Det är också något som är som en verktyg i C, men du behöver inte 833 00:40:24,730 --> 00:40:25,700 specifikt använda den. 834 00:40:25,700 --> 00:40:29,890 Men CS människor brukar vilja att eftersom det sparar bara linjer. 835 00:40:29,890 --> 00:40:31,050 >> LAUREN CARVALHO: Det är mycket elegant. 836 00:40:31,050 --> 00:40:32,951 Det gör en hel del på bara ett uttalande. 837 00:40:32,951 --> 00:40:36,077 >> PUBLIK: Så procenttecken är precis vad resultaten på 838 00:40:36,077 --> 00:40:36,799 den tidigare linjen? 839 00:40:36,799 --> 00:40:38,260 >> LAUREN CARVALHO: Åh, jag är ledsen. 840 00:40:38,260 --> 00:40:42,670 Denna procenttecken är faktiskt en platshållare för det här är. 841 00:40:42,670 --> 00:40:46,160 I en printf uttalande, har du fått detta sträng här, vilket är vad som kommer att 842 00:40:46,160 --> 00:40:48,440 skriva ut, men du kan inte bara sätta detta är där. 843 00:40:48,440 --> 00:40:50,290 Annars skulle skriva ut ut s bokstavligen. 844 00:40:50,290 --> 00:40:54,070 Så vi satte en procent här för att hålla denna plats som innehas av någon 845 00:40:54,070 --> 00:40:57,590 kommer efter kommatecknet. 846 00:40:57,590 --> 00:40:59,470 >> Så efter en sträng, har du procent s.. 847 00:40:59,470 --> 00:41:00,950 För ett heltal, procent i.. 848 00:41:00,950 --> 00:41:03,330 För en flottör, procent f.. 849 00:41:03,330 --> 00:41:06,960 Du ser dem som vi se fler exempel. 850 00:41:06,960 --> 00:41:09,230 Men kanske borde man tala om stilguide för en liten stund, nu 851 00:41:09,230 --> 00:41:10,480 att det är upp. 852 00:41:10,480 --> 00:41:21,040 853 00:41:21,040 --> 00:41:24,010 >> LUCAS FREITAS: Om du går till cs50.net/style, du kommer att se 854 00:41:24,010 --> 00:41:25,760 den stilguide. 855 00:41:25,760 --> 00:41:32,420 För problemsamlingar, dina poäng för problem som består av omfattning, 856 00:41:32,420 --> 00:41:35,510 vilket i princip innebär att om du gjorde allt de delar av problem som eller om du 857 00:41:35,510 --> 00:41:37,170 försök till något. 858 00:41:37,170 --> 00:41:41,120 Det andra är korrekthet, som medel är ditt program gör vad det 859 00:41:41,120 --> 00:41:44,520 var tänkt att göra, eller gör det har fel, eller är det inte gör vad 860 00:41:44,520 --> 00:41:45,620 den ska göra. 861 00:41:45,620 --> 00:41:51,420 >> Den tredje saken är design, vilket innebär ni genomför detta väl, eller är 862 00:41:51,420 --> 00:41:54,520 du använder onödiga påståenden? 863 00:41:54,520 --> 00:41:59,400 Så till exempel om du vill upprepa ett antal 10 gånger, skriver du ett 864 00:41:59,400 --> 00:42:03,040 för slinga eller är du bara göra 10 gånger samma uttalande, bara göra 865 00:42:03,040 --> 00:42:04,060 kopiera och klistra in. 866 00:42:04,060 --> 00:42:05,760 Så design är för det. 867 00:42:05,760 --> 00:42:07,420 >> Och slutligen, du har stil. 868 00:42:07,420 --> 00:42:12,000 Style är precis som att döma Om din kod ser ut 869 00:42:12,000 --> 00:42:14,050 lättläst och typ av söt. 870 00:42:14,050 --> 00:42:16,520 Det betyder bara i princip är din kod läsbart? 871 00:42:16,520 --> 00:42:20,560 Skulle någon annan som var ute är din kod kunna förstå vad 872 00:42:20,560 --> 00:42:21,250 det gör? 873 00:42:21,250 --> 00:42:25,360 Har den kommentarer och liknande? 874 00:42:25,360 --> 00:42:30,430 >> Låt oss tala om den stil som du ska använda. 875 00:42:30,430 --> 00:42:32,200 Det första är kommentarer. 876 00:42:32,200 --> 00:42:35,280 Kommentarer är mycket viktigt för din kod för ibland du gör 877 00:42:35,280 --> 00:42:38,750 ditt program, och du vet exakt vad du vill göra så att du bara börja 878 00:42:38,750 --> 00:42:43,120 kodning, skriv bara upp en massa C. Men om någon annan ser är att du är 879 00:42:43,120 --> 00:42:47,500 kod, kommer de inte att kunna förstår det eftersom de inte vet 880 00:42:47,500 --> 00:42:51,420 de saker som finns i ditt huvud, som den pesudocode, så kanske de kommer 881 00:42:51,420 --> 00:42:53,970 har svårt att förstå vad koden gör. 882 00:42:53,970 --> 00:42:57,900 >> Så kommentarer verkligen är användbara för att förklara till någon som tittar på 883 00:42:57,900 --> 00:43:00,880 din kod vad det gör, och faktiskt även för dig, 884 00:43:00,880 --> 00:43:01,880 de är mycket användbara. 885 00:43:01,880 --> 00:43:05,740 När du går till hårdare och hårda Psets, du kommer att se att koden blir 886 00:43:05,740 --> 00:43:10,590 längre, och då kommentarer är egentligen viktigt så att du kommer ihåg vad varje 887 00:43:10,590 --> 00:43:13,320 del av ditt program gör. 888 00:43:13,320 --> 00:43:16,920 >> För att lägga en kommentar, kan du bara göra en snedstreck snedstreck och sedan skriva en kommentar. 889 00:43:16,920 --> 00:43:21,250 Och hela linjen är en del av en kommentar, och vad du skriver ner, 890 00:43:21,250 --> 00:43:24,550 det kommer inte att bli används för din kod. 891 00:43:24,550 --> 00:43:27,993 Det är i princip som kompilatorn kommer att ignorera det. 892 00:43:27,993 --> 00:43:29,290 Låter det vettigt? 893 00:43:29,290 --> 00:43:31,710 >> PUBLIK: Vad gör du igen för att skriva en kommentar? 894 00:43:31,710 --> 00:43:33,260 >> LUCAS FREITAS: Detta? 895 00:43:33,260 --> 00:43:36,020 Snedstrecket slash? 896 00:43:36,020 --> 00:43:39,810 Varje gång du skriver slash slash, oavsett är i den linjen kommer inte 897 00:43:39,810 --> 00:43:42,260 som skall anses vara C. Ja? 898 00:43:42,260 --> 00:43:45,910 >> PUBLIK: Så efter den kommentaren, du bara in och starta en ny linje? 899 00:43:45,910 --> 00:43:47,120 >> LUCAS FREITAS: Ja, exakt. 900 00:43:47,120 --> 00:43:50,010 >> LAUREN CARVALHO: Det snedstreck snedstreck är för enda rad kommentarer. 901 00:43:50,010 --> 00:43:52,910 >> LUCAS FREITAS: Till exempel, Här har vi - 902 00:43:52,910 --> 00:43:54,160 Låt mig zooma in - 903 00:43:54,160 --> 00:43:56,530 904 00:43:56,530 --> 00:44:01,180 till exempel, här jag förklara en flottör, men kanske om du bara sätta detta 905 00:44:01,180 --> 00:44:04,980 i koden, som du har ingen aning vad det gör, som faktiskt 906 00:44:04,980 --> 00:44:06,950 någon som tittar på den här koden kommer att bli, liksom, vad 907 00:44:06,950 --> 00:44:09,190 fan är det som händer? 908 00:44:09,190 --> 00:44:12,890 >> Om du lägger en kommentar som säger "konvertera Fahrenheit till Celsius, gör det mycket 909 00:44:12,890 --> 00:44:13,450 vettigare. 910 00:44:13,450 --> 00:44:15,480 Du är, liksom, OK, du är gör en omvandling. 911 00:44:15,480 --> 00:44:16,730 Låter det vettigt? 912 00:44:16,730 --> 00:44:19,860 913 00:44:19,860 --> 00:44:24,960 Så det är bara något som hjälper människor redo din kod och även göra 914 00:44:24,960 --> 00:44:28,290 du kunna organisera koden bättre. 915 00:44:28,290 --> 00:44:33,080 >> Det andra är att du kan göra flera linjer kommentarer, så har en 916 00:44:33,080 --> 00:44:34,850 kommentera för ett gäng linjer. 917 00:44:34,850 --> 00:44:38,880 Istället för att behöva sätta snedstreck snedstreck, Den första raden kommentarer, snedstreck snedstreck, 918 00:44:38,880 --> 00:44:43,590 den andra raden, och så vidare, du kan använda snedstreck stjärnan. 919 00:44:43,590 --> 00:44:46,330 Det sätt som du gör det är det för det första raden i kommentaren, du är 920 00:44:46,330 --> 00:44:49,650 kommer att göra ett snedstreck stjärna stjärna, så bara så där. 921 00:44:49,650 --> 00:44:56,900 Precis som här har vi i början av ett program, som du brukar sätta vem du 922 00:44:56,900 --> 00:44:59,530 är, vad programmet gör, och sånt. 923 00:44:59,530 --> 00:45:01,900 Det är ungefär som en rubrik för programmet. 924 00:45:01,900 --> 00:45:04,540 >> Återigen, det är inte något som en kompilatorn kommer att bry sig om, men 925 00:45:04,540 --> 00:45:07,570 det är viktigt för dig att veta vad detta Programmet gör eller för andra människor 926 00:45:07,570 --> 00:45:09,960 att veta vad ditt program gör. 927 00:45:09,960 --> 00:45:17,480 Så du slash stjärna stjärna, och sedan sista raden du ska göra stjärna 928 00:45:17,480 --> 00:45:22,250 snedstreck för att kunna stänga den kommentaren. 929 00:45:22,250 --> 00:45:26,140 Så i princip för alla andra linjer, du kan bara skriva vad som helst, och detta 930 00:45:26,140 --> 00:45:27,390 är alla kommer att ignoreras. 931 00:45:27,390 --> 00:45:32,920 932 00:45:32,920 --> 00:45:37,780 >> Och också, precis som stil, ser du att var och en av de linjer som har en stjärna, och alla 933 00:45:37,780 --> 00:45:39,380 stjärnorna är justerade. 934 00:45:39,380 --> 00:45:41,605 Detta är viktiga saker så att din kod ser ganska. 935 00:45:41,605 --> 00:45:42,855 Låter bra? 936 00:45:42,855 --> 00:45:45,320 937 00:45:45,320 --> 00:45:47,290 >> Nu, förhållanden. 938 00:45:47,290 --> 00:45:52,240 Vad David sa att vi borde faktiskt sätta in dessa bilder, är att 939 00:45:52,240 --> 00:45:55,810 när du har någon form av om uttalanden eller någon form av villkor, 940 00:45:55,810 --> 00:46:00,700 du bör använda klammerparenteserna för att visa att detta är vad som kommer att hända 941 00:46:00,700 --> 00:46:02,730 när du har sjukdomen. 942 00:46:02,730 --> 00:46:07,560 Tekniskt sett, när du har ett tillstånd och sedan nästa rad är bara en 943 00:46:07,560 --> 00:46:12,110 linje, behöver du inte tekniskt har att sätta klammerparenteserna. 944 00:46:12,110 --> 00:46:16,930 >> I grund och botten kompilatorn skulle förstå det ändå som implicit. 945 00:46:16,930 --> 00:46:21,100 Men för CS50, ber vi er att sätta klammerparenteserna bara så att din 946 00:46:21,100 --> 00:46:24,560 kod är mer organiserat och mer lättläst. 947 00:46:24,560 --> 00:46:28,200 Därför att koden blir längre om du har inte klammerparenteserna och sådant. 948 00:46:28,200 --> 00:46:29,150 Det blir verkligen rörigt. 949 00:46:29,150 --> 00:46:31,410 >> LAUREN CARVALHOS: Detta är exakt vad David just påpekade 950 00:46:31,410 --> 00:46:33,000 i mina tidigare bilder. 951 00:46:33,000 --> 00:46:36,690 Det fungerar definitivt utan lockigt hängslen, men av stilistiska skäl 952 00:46:36,690 --> 00:46:38,840 vi kommer att begära att du sätter dem i. 953 00:46:38,840 --> 00:46:42,400 >> Och när du börjar köra style50, som är typ av kontroll 50 för 954 00:46:42,400 --> 00:46:44,860 stil, kommer det att påminna dig om att göra detta. 955 00:46:44,860 --> 00:46:49,710 >> LUCAS FREITAS: Och en annan sak är kom ihåg att sätta klammerparenteserna längs 956 00:46:49,710 --> 00:46:50,610 i varje rad. 957 00:46:50,610 --> 00:46:52,490 Så du gör, till exempel, l's. 958 00:46:52,490 --> 00:46:56,910 Gå till nästa rad genom att öppna lockigt stag, sedan går du till nästa rad. 959 00:46:56,910 --> 00:46:59,560 Indrag, vilket är fyra platser. 960 00:46:59,560 --> 00:47:03,570 Då du skriver vad som helst, sedan en annan linje, och stäng klammerparentes. 961 00:47:03,570 --> 00:47:06,870 Så se till att både de lockigt hängslen är på olika linjer. 962 00:47:06,870 --> 00:47:11,548 >> PUBLIK: Så om denna kod hade som 10 annans ifs, bör detta 963 00:47:11,548 --> 00:47:13,040 vara 10 uppsättningar av konsoler? 964 00:47:13,040 --> 00:47:14,610 >> LUCAS FREITAS: Ja, för var och en av dem. 965 00:47:14,610 --> 00:47:14,930 Yeah. 966 00:47:14,930 --> 00:47:17,980 Så om, annars om, och så vidare. 967 00:47:17,980 --> 00:47:21,990 >> PUBLIK: Kan du inte Tryck Tab för att dra in? 968 00:47:21,990 --> 00:47:25,350 >> LUCAS FREITAS: Vi ber dig killar att använda fyra platser. 969 00:47:25,350 --> 00:47:30,060 Vissa textredigerare översätta fliken som fyra platser automatiskt. 970 00:47:30,060 --> 00:47:34,850 gedit inte, så du måste göra space space space space. 971 00:47:34,850 --> 00:47:37,920 Detta är också något som en del programmerare bara göra flikar, en del 972 00:47:37,920 --> 00:47:40,560 programmerare bara göra fyra platser, och några andra människor även gör 973 00:47:40,560 --> 00:47:41,900 två eller tre platser. 974 00:47:41,900 --> 00:47:44,040 Det är just det här vi ber er att göra fyra platser. 975 00:47:44,040 --> 00:47:47,556 >> PUBLIK: Det är nästan definitivt måste finnas ett sätt för gedit till 976 00:47:47,556 --> 00:47:48,645 automatiskt [OHÖRBAR]. 977 00:47:48,645 --> 00:47:50,480 Som ingen [OHÖRBAR] gör det. 978 00:47:50,480 --> 00:47:51,150 >> LUCAS FREITAS: Ja. 979 00:47:51,150 --> 00:47:53,165 Jag tror att du kan gå till Inställningar. 980 00:47:53,165 --> 00:47:55,270 >> PUBLIK: Det gör redan allt detta. 981 00:47:55,270 --> 00:47:56,410 >> LUCAS FREITAS: Det redan gör? 982 00:47:56,410 --> 00:47:56,890 OK. 983 00:47:56,890 --> 00:48:00,854 Så bara vara säker på att du har fyra platser. 984 00:48:00,854 --> 00:48:05,880 >> PUBLIK: Måste vi sätta lockigt fästen i för slingor också? 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 kapsla in ett block av kod, precis 987 00:48:11,610 --> 00:48:13,570 använd klammerparenteserna. 988 00:48:13,570 --> 00:48:18,040 Och innan du tror att vi bara vara pedanter om det här för någon bra 989 00:48:18,040 --> 00:48:23,450 Därför, om ni går vidare för att få tech praktikplatser på stora företag, 990 00:48:23,450 --> 00:48:26,020 de kommer att ge dig en stilguide, och de kommer att säga att detta är vad din 991 00:48:26,020 --> 00:48:27,220 kod måste se ut. 992 00:48:27,220 --> 00:48:31,120 Och även om du lärt sig att kod som detta, kanske i din praktik 993 00:48:31,120 --> 00:48:32,680 du måste göra något helt annorlunda. 994 00:48:32,680 --> 00:48:35,115 De förväntar du dig att följa till deras stil. 995 00:48:35,115 --> 00:48:39,800 >> LUCAS FREITAS: Och en sak är som ni märker hur jag har som x, 996 00:48:39,800 --> 00:48:42,290 utrymme, mindre, utrymme, 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 vara som plus, minus, gånger, mindre, större, oavsett operatör - 999 00:48:50,490 --> 00:48:57,560 du måste lägga ett utrymme på vänster och höger om föraren. 1000 00:48:57,560 --> 00:49:00,570 >> LAUREN CARVALHO: De är kallas binära operander. 1001 00:49:00,570 --> 00:49:03,720 Se bara till att du alltid utrymme ut din binära operander. 1002 00:49:03,720 --> 00:49:05,465 >> LUCAS FREITAS: Detta är inte en binär operanden. 1003 00:49:05,465 --> 00:49:07,010 >> LAUREN CARVALHOS: Det är eftersom det tar två. 1004 00:49:07,010 --> 00:49:08,260 >> LUCAS FREITAS: Oh, ja. 1005 00:49:08,260 --> 00:49:13,340 1006 00:49:13,340 --> 00:49:14,590 >> OK, omkopplarna. 1007 00:49:14,590 --> 00:49:18,180 1008 00:49:18,180 --> 00:49:23,390 Först måste du se till att precis som i en if annars uttalande, har du 1009 00:49:23,390 --> 00:49:28,280 att sätta den lockiga stag på en egen rad och under den lockiga stag här. 1010 00:49:28,280 --> 00:49:32,240 Lägg märke till att det finns en enda plats efter switch, precis som in om och annat 1011 00:49:32,240 --> 00:49:35,360 Vi hade en enda utrymme mellan det och parenteserna. 1012 00:49:35,360 --> 00:49:36,610 Så du måste säga det. 1013 00:49:36,610 --> 00:49:40,380 1014 00:49:40,380 --> 00:49:48,270 >> Och det finns inget utrymme direkt efter varje av parenteser eller före slutet 1015 00:49:48,270 --> 00:49:49,080 av parentesen. 1016 00:49:49,080 --> 00:49:52,612 Så du ser att det är alla tillsammans, och också här uppe. 1017 00:49:52,612 --> 00:49:53,940 >> Yeah? 1018 00:49:53,940 --> 00:49:58,040 >> LAUREN CARVALHO: Jag tror vi måste gå vidare. 1019 00:49:58,040 --> 00:50:02,340 >> LUCAS FREITAS: Så det här är en del av stilguide som du har för CS50. 1020 00:50:02,340 --> 00:50:06,520 Glöm inte att gå till cs50.net/style och ta en titt på detta. 1021 00:50:06,520 --> 00:50:09,250 Dessa är alla mycket viktiga för din stil poäng. 1022 00:50:09,250 --> 00:50:12,740 1023 00:50:12,740 --> 00:50:15,670 >> Låt mig gå tillbaka till meddelandet. 1024 00:50:15,670 --> 00:50:17,070 >> LAUREN CARVALHO: Helst bara använda style50. 1025 00:50:17,070 --> 00:50:18,920 Vi ska bara gå direkt till loopar. 1026 00:50:18,920 --> 00:50:27,580 1027 00:50:27,580 --> 00:50:28,300 Okej. 1028 00:50:28,300 --> 00:50:33,720 >> Så låt oss gå tillbaka till innehållet, nu att vi har gått över stilguide. 1029 00:50:33,720 --> 00:50:37,220 Loopar, har du sett dem i Scratch, och Vi kommer att prata 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-slinga, det finns tre portioner till 1032 00:50:44,400 --> 00:50:45,440 deklaration om detta för slinga. 1033 00:50:45,440 --> 00:50:49,040 Du har din initiering i där du anger dina variabler. 1034 00:50:49,040 --> 00:50:52,160 Du har fått ditt tillstånd, som är kontroll för att se om något är 1035 00:50:52,160 --> 00:50:54,670 sant eller falskt och huruvida loop bör fortsätta. 1036 00:50:54,670 --> 00:50:59,390 Och du har fått din uppdatering, vilket uppdaterar dina variabler. 1037 00:50:59,390 --> 00:51:05,310 >> Låt oss bara ta en snabb titt på några C-kod för denna för slinga i handling. 1038 00:51:05,310 --> 00:51:08,860 Vad som händer är här i initiering, vi ställer jag till 0. 1039 00:51:08,860 --> 00:51:11,820 I det tillstånd som vi kollar om k är mindre än 10. 1040 00:51:11,820 --> 00:51:14,982 Och i uppdateringen är vi inkrementering i.. 1041 00:51:14,982 --> 00:51:20,490 Så vad kommer att leda till detta för loop? 1042 00:51:20,490 --> 00:51:24,344 >> LUCAS FREITAS: Faktiskt, först och främst, vet ni vad jag + + är? 1043 00:51:24,344 --> 00:51:25,850 >> PUBLIK: Ökade med 1. 1044 00:51:25,850 --> 00:51:26,870 >> LUCAS FREITAS: Ökade med 1, ja. 1045 00:51:26,870 --> 00:51:30,020 Så det här är samma sak som gör jag lika i plus 1. 1046 00:51:30,020 --> 00:51:35,890 Och märker att vi inte har en plats mellan den i: och + +. 1047 00:51:35,890 --> 00:51:37,600 >> Så vet ni vad det här kommer att göra? 1048 00:51:37,600 --> 00:51:39,060 Kan någon berätta för mig? 1049 00:51:39,060 --> 00:51:41,463 Och kanske få lite godis på grund av detta? 1050 00:51:41,463 --> 00:51:42,912 >> PUBLIK: [OHÖRBAR] 1051 00:51:42,912 --> 00:51:44,850 >> LUCAS FREITAS: OK. 1052 00:51:44,850 --> 00:51:45,400 [OHÖRBAR] 1053 00:51:45,400 --> 00:51:47,450 visa alla senare [OHÖRBAR]. 1054 00:51:47,450 --> 00:51:49,565 Ja, det kommer att visa "här är CS50 "10 gånger. 1055 00:51:49,565 --> 00:51:52,150 >> LAUREN CARVALHO: Jag antar att det var i rubriken till objektglaset. 1056 00:51:52,150 --> 00:51:53,830 >> LUCAS FREITAS: Oh, ja. 1057 00:51:53,830 --> 00:51:54,670 >> [LAUGHTER] 1058 00:51:54,670 --> 00:51:56,790 >> LUCAS FREITAS: Det hjälper. 1059 00:51:56,790 --> 00:51:58,370 >> LAUREN CARVALHO: Så de är för slingor. 1060 00:51:58,370 --> 00:52:03,200 Vi kommer att se fler exempel av loopar senare. 1061 00:52:03,200 --> 00:52:06,510 Men låt oss verkligen ta en titt på den andra typen av loop du möter 1062 00:52:06,510 --> 00:52:08,920 i C, och det kallas while-slingan. 1063 00:52:08,920 --> 00:52:11,120 >> I en while-slinga, du har precis fått ett villkor. 1064 00:52:11,120 --> 00:52:14,790 Villkoret är markerat i början, och om detta villkor 1065 00:52:14,790 --> 00:52:18,450 utvärderas till true, sedan koden inom kropp medan blocket 1066 00:52:18,450 --> 00:52:20,380 kommer att utföra. 1067 00:52:20,380 --> 00:52:23,000 Och koden kommer att fortsätta att köra så länge som det 1068 00:52:23,000 --> 00:52:24,450 villkoret är sant. 1069 00:52:24,450 --> 00:52:28,350 1070 00:52:28,350 --> 00:52:33,320 >> Här är ett exempel på en while-slinga i C. Vi kommer att ställa räkna till 10 till 1071 00:52:33,320 --> 00:52:34,580 börja med. 1072 00:52:34,580 --> 00:52:41,800 Så länge som antalet är större än 0, vi kommer att fortsätta att skriva ut detta 1073 00:52:41,800 --> 00:52:43,360 variabel här. 1074 00:52:43,360 --> 00:52:47,080 Vi ska dekrementera antal och sedan kontrollera tillståndet igen. 1075 00:52:47,080 --> 00:52:51,370 Skriv ut, minskning, check tillståndet igen. 1076 00:52:51,370 --> 00:52:54,530 >> Här har vi ett exempel som avser på din fråga tidigare. 1077 00:52:54,530 --> 00:52:57,340 Vi hade procent s när vi var att skriva ut en sträng, och nu när 1078 00:52:57,340 --> 00:53:03,420 vi skriver ut en int, vi har en procent i som vår placeholder istället. 1079 00:53:03,420 --> 00:53:09,250 Bokstäverna bör alla vara ganska intuitivt, är för sträng, i för int. 1080 00:53:09,250 --> 00:53:15,400 >> Så om den här koden körs, bör du nedräkning från 10 till 0, skrivs ut 1081 00:53:15,400 --> 00:53:15,925 varje heltal. 1082 00:53:15,925 --> 00:53:19,460 >> LUCAS FREITAS: Och du kan tänka på procent eftersom det känns som ett tomt 1083 00:53:19,460 --> 00:53:23,960 utrymme, och då du lägger detta variabel här i det tomma utrymmet. 1084 00:53:23,960 --> 00:53:27,640 Så till exempel, här kommer jag att bara en tomt, och sedan sätter jag den 1085 00:53:27,640 --> 00:53:30,262 räkna rätt där, det Värdet av räkningen. 1086 00:53:30,262 --> 00:53:32,710 Låter det vettigt? 1087 00:53:32,710 --> 00:53:35,860 >> Kan jag bara göra som printf och sedan citerar, räkna? 1088 00:53:35,860 --> 00:53:36,840 Skulle det fungera? 1089 00:53:36,840 --> 00:53:37,980 >> PUBLIK: Nej. 1090 00:53:37,980 --> 00:53:41,190 >> LUCAS FREITAS: Nej, eftersom det kommer att faktiskt skriva ut ordet "count" 1091 00:53:41,190 --> 00:53:42,850 stället för att skriva in värdet. 1092 00:53:42,850 --> 00:53:46,080 Detta är hur du gör det skriver ut de värden mot variabel i stället för 1093 00:53:46,080 --> 00:53:47,670 bara namnet på variabeln. 1094 00:53:47,670 --> 00:53:48,530 Några frågor? 1095 00:53:48,530 --> 00:53:53,060 >> PUBLIK: Varför använder ni för som en motsats till samtidigt? 1096 00:53:53,060 --> 00:53:56,130 >> LAUREN CARVALHO: Jag skulle använda en för loop om jag vet exakt hur många 1097 00:53:56,130 --> 00:53:59,520 iterationer Jag vill att min slinga att köra. 1098 00:53:59,520 --> 00:54:02,810 I detta fall spelar det ingen roll eftersom, Jag menar, jag försökte bara 1099 00:54:02,810 --> 00:54:05,310 tänka på en riktigt enkel exempel för denna bild. 1100 00:54:05,310 --> 00:54:09,990 Men låt oss säga att du vill ha något att hålla igång samtidigt - 1101 00:54:09,990 --> 00:54:14,480 >> LUCAS FREITAS: Till exempel, du ber om inmatning till dess att personen 1102 00:54:14,480 --> 00:54:15,370 ger dig rätt ingång. 1103 00:54:15,370 --> 00:54:19,720 Så som när ingången inte OK, hålla ber om det. 1104 00:54:19,720 --> 00:54:22,920 Eller som när du är föräldrarna inte ger pengar, hålla ber om det. 1105 00:54:22,920 --> 00:54:23,430 >> [LAUGHTER] 1106 00:54:23,430 --> 00:54:25,390 >> LAUREN CARVALHO: Du vet inte hur många gånger måste du göra det. 1107 00:54:25,390 --> 00:54:27,292 >> LUCAS FREITAS: Eftersom du inte hur många gånger som är 1108 00:54:27,292 --> 00:54:28,010 kommer att fortsätta. 1109 00:54:28,010 --> 00:54:30,397 >> LAUREN CARVALHO: Men i en for-slinga, du behöver veta hur många gånger. 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 >> PUBLIK: Bara för att klargöra, att procent säger att det är något om att 1113 00:54:38,520 --> 00:54:42,415 hända, jagets för heltal, och omvänt snedstreck n - 1114 00:54:42,415 --> 00:54:43,910 >> LAUREN Carvalho: Medel? 1115 00:54:43,910 --> 00:54:45,820 Vem vet vad det omvända sned n betyder? 1116 00:54:45,820 --> 00:54:47,770 Ny rad, ja. 1117 00:54:47,770 --> 00:54:48,130 Exakt. 1118 00:54:48,130 --> 00:54:50,500 >> LUCAS FREITAS: Du kan tänka n som ny rad. 1119 00:54:50,500 --> 00:54:52,258 >> LAUREN CARVALHO: Nice. 1120 00:54:52,258 --> 00:54:55,775 >> PUBLIK: Vad är det som räknas instrumentbrädan [OHÖRBAR]? 1121 00:54:55,775 --> 00:55:00,240 >> LUCAS FREITAS: Count minus minus är samma sak som plus plus, men 1122 00:55:00,240 --> 00:55:02,160 istället för att öka, det minskar med 1. 1123 00:55:02,160 --> 00:55:04,720 1124 00:55:04,720 --> 00:55:07,185 >> LAUREN CARVALHO: Någon mer medan sling frågor? 1125 00:55:07,185 --> 00:55:09,460 Nej? 1126 00:55:09,460 --> 00:55:13,910 Åh, vi skulle har hoppat över det. 1127 00:55:13,910 --> 00:55:14,950 >> Detta är en do while-slinga. 1128 00:55:14,950 --> 00:55:18,950 Mycket liknar en while-slinga, förutom i detta fall kontrollerar vi tillståndet efter 1129 00:55:18,950 --> 00:55:23,430 koden i kroppen av loop körs en gång. 1130 00:55:23,430 --> 00:55:27,170 Så vi köra koden först oavsett vad. 1131 00:55:27,170 --> 00:55:31,956 Sedan kollar vi tillståndet, utför det igen om villkoret är sant. 1132 00:55:31,956 --> 00:55:35,450 1133 00:55:35,450 --> 00:55:38,950 >> Du hittar dig själv med detta när du ber om användarens input. 1134 00:55:38,950 --> 00:55:42,080 Eftersom du alltid kommer att behöva frågar en gång, och sedan beroende på vad 1135 00:55:42,080 --> 00:55:46,570 användarens input är, du kan behöva Fråga igen och frågar om och om igen om 1136 00:55:46,570 --> 00:55:50,670 ingången var inte vad du trodde att den skulle vara. 1137 00:55:50,670 --> 00:55:53,610 >> PUBLIK: Så det är som en form för folk att fylla ut. 1138 00:55:53,610 --> 00:55:56,010 >> LAUREN CARVALHO: Ja, exakt. 1139 00:55:56,010 --> 00:55:59,720 Du hittar, tror jag, i första Pset, du kommer att behöva 1140 00:55:59,720 --> 00:56:04,010 använda en gör väl slinga för att samla in inmatning från användaren. 1141 00:56:04,010 --> 00:56:08,728 >> PUBLIK: Beroende på situationen, mödan loopar tenderar att köra mer 1142 00:56:08,728 --> 00:56:12,805 ofta än medan slingor, som av en eller något? 1143 00:56:12,805 --> 00:56:14,080 >> LAUREN CARVALHO: Om det är exakt - 1144 00:56:14,080 --> 00:56:17,400 >> LUCAS FREITAS: De ska alltid köras den exakta mängden gånger du 1145 00:56:17,400 --> 00:56:19,130 vill att den ska köras. 1146 00:56:19,130 --> 00:56:23,860 Som vi använder gör tag eftersom vi verkligen ville få input minst en gång. 1147 00:56:23,860 --> 00:56:27,220 I medan loopar, ibland du inte vill att köra det alls om det inte är 1148 00:56:27,220 --> 00:56:28,540 målet att utföra. 1149 00:56:28,540 --> 00:56:31,300 Så det beror på designen. 1150 00:56:31,300 --> 00:56:35,900 Jag menar, kan du antingen använda göra när eller samtidigt så länge som din kod gör att 1151 00:56:35,900 --> 00:56:36,905 den ska göra. 1152 00:56:36,905 --> 00:56:38,470 >> LAUREN CARVALHO: Men jag tror att svaret på din 1153 00:56:38,470 --> 00:56:40,540 Frågan är förmodligen ja. 1154 00:56:40,540 --> 00:56:42,190 Låt oss säga att villkoret var falsk. 1155 00:56:42,190 --> 00:56:45,498 I ett fall skulle det köras en gång, och ett annat fall skulle det köras noll gånger. 1156 00:56:45,498 --> 00:56:47,370 Så, ja. 1157 00:56:47,370 --> 00:56:49,260 >> Fler frågor? 1158 00:56:49,260 --> 00:56:50,320 Ja? 1159 00:56:50,320 --> 00:56:56,443 >> PUBLIK: Kan slingan tillståndet vara ett för slinga i form av en rörlig andra 1160 00:56:56,443 --> 00:56:57,385 än [OHÖRBAR]. 1161 00:56:57,385 --> 00:57:01,700 >> LAUREN CARVALHO: Ja, Det kan vara vad som helst. 1162 00:57:01,700 --> 00:57:06,420 Förmodligen för början Psets, du kommer inte att behöva stöta på det fallet, men 1163 00:57:06,420 --> 00:57:09,878 definitivt det kan vara vad som helst. 1164 00:57:09,878 --> 00:57:12,680 >> LUCAS FREITAS: Jag tror vi är klara här. 1165 00:57:12,680 --> 00:57:13,290 >> LAUREN CARVALHO: Är vi? 1166 00:57:13,290 --> 00:57:13,480 Nej? 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 borde inte vara. 1170 00:57:16,280 --> 00:57:17,760 Åh, är vi klar med öglor. 1171 00:57:17,760 --> 00:57:19,250 OK. 1172 00:57:19,250 --> 00:57:23,180 >> Faktiskt, för vi har pratat så mycket, låt oss faktiskt alla navigera 1173 00:57:23,180 --> 00:57:28,950 över till study.cs50.net/conditions. 1174 00:57:28,950 --> 00:57:34,460 Och du kommer att navigera ner på problemen widget. 1175 00:57:34,460 --> 00:57:39,090 Jo, faktiskt, samtidigt som människor blir detta inrättas, är CS50 Study 1176 00:57:39,090 --> 00:57:42,620 kommer att bli ett verktyg som dina TF kommer använda för att förbereda sig för avsnitt och att 1177 00:57:42,620 --> 00:57:45,230 ni kan använda om du missar sektioner. 1178 00:57:45,230 --> 00:57:48,980 Det kommer att innehålla ett gäng bilder, några tips och tricks för varje 1179 00:57:48,980 --> 00:57:54,030 ämne, och vissa övningsproblem med lösningar. 1180 00:57:54,030 --> 00:57:57,200 >> Varför visas inte alla bara ta en titt på detta problem här. 1181 00:57:57,200 --> 00:58:01,630 1182 00:58:01,630 --> 00:58:04,790 >> Jag är ledsen, jag borde ha påmint människor att få bärbara datorer idag. 1183 00:58:04,790 --> 00:58:07,050 Men om du inte har en bärbar dator, det är OK. 1184 00:58:07,050 --> 00:58:10,140 Du kan bara skriva ner detta på ett papper eller se över 1185 00:58:10,140 --> 00:58:12,890 grannens axel. 1186 00:58:12,890 --> 00:58:16,380 >> Låt oss försöka skriva ett program som uppmanar användaren att ta en gissning, det 1187 00:58:16,380 --> 00:58:19,250 Genomsnittligt antal barn per familj enhet i USA. 1188 00:58:19,250 --> 00:58:22,265 Det antalet är 2, förresten, när du kan se från dessa exempel. 1189 00:58:22,265 --> 00:58:24,770 1190 00:58:24,770 --> 00:58:29,030 >> Vi vill skriva ut genomsnittliga antalet barn per familj i USA, då vi 1191 00:58:29,030 --> 00:58:31,080 vill vad? 1192 00:58:31,080 --> 00:58:35,480 Vi vill samla input från användaren. 1193 00:58:35,480 --> 00:58:41,290 Och sedan beroende på vilken användarens ingången är, du kommer att skriva ut 1194 00:58:41,290 --> 00:58:44,850 antingen detta är korrekt eller detta är felaktigt. 1195 00:58:44,850 --> 00:58:48,040 >> Och det allra första som du kommer se, om du klickar på den lilla pilen på 1196 00:58:48,040 --> 00:58:52,190 botten av problemet widget är ett plats att skriva ned lite pseudokod. 1197 00:58:52,190 --> 00:58:53,340 Så du inte programmera ännu. 1198 00:58:53,340 --> 00:58:56,740 Du bara få din idéer i ordning. 1199 00:58:56,740 --> 00:58:59,620 >> Finns det någon som vill hjälpa Lucas komma med rätt 1200 00:58:59,620 --> 00:59:01,270 pseudokod för det här problemet? 1201 00:59:01,270 --> 00:59:04,900 >> LUCAS FREITAS: Vad är det första att vi förmodligen bör göra här? 1202 00:59:04,900 --> 00:59:07,010 Vad tycker ni? 1203 00:59:07,010 --> 00:59:08,260 >> PUBLIK: [OHÖRBAR] 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å, skriv ut. 1207 00:59:16,610 --> 00:59:19,480 Säg bara skriv ut genomsnittet antal personer? 1208 00:59:19,480 --> 00:59:20,470 OK. 1209 00:59:20,470 --> 00:59:23,450 Skriv ut frågan, låt oss säga. 1210 00:59:23,450 --> 00:59:25,951 När jag skriver ut den här frågan, vad ska jag göra? 1211 00:59:25,951 --> 00:59:27,875 >> PUBLIK: Få ingång. 1212 00:59:27,875 --> 00:59:30,690 >> LUCAS FREITAS: Få ingång. 1213 00:59:30,690 --> 00:59:32,864 Något annat? 1214 00:59:32,864 --> 00:59:34,114 >> PUBLIK: skick. 1215 00:59:34,114 --> 00:59:36,770 1216 00:59:36,770 --> 00:59:38,980 >> LUCAS FREITAS: skick. 1217 00:59:38,980 --> 00:59:41,325 >> LAUREN CARVALHO: Vad är det villkor kommer att bli? 1218 00:59:41,325 --> 00:59:43,550 >> PUBLIK: Antalet [OHÖRBAR]. 1219 00:59:43,550 --> 00:59:44,440 >> LAUREN CARVALHO: Höger. 1220 00:59:44,440 --> 00:59:46,945 >> LUCAS FREITAS: Så vad ska jag att kontrollera i skick? 1221 00:59:46,945 --> 00:59:48,750 >> PUBLIK: Om det är lika med 2. 1222 00:59:48,750 --> 00:59:50,640 >> LAUREN CARVALHO: Om det är lika med 2. 1223 00:59:50,640 --> 00:59:51,890 Exakt. 1224 00:59:51,890 --> 00:59:58,340 1225 00:59:58,340 --> 01:00:00,140 >> LUCAS FREITAS: Är det något annat som jag ska göra? 1226 01:00:00,140 --> 01:00:01,390 >> PUBLIK: Räkna. 1227 01:00:01,390 --> 01:00:05,184 1228 01:00:05,184 --> 01:00:08,110 >> LUCAS FREITAS: Så om det är lika med 2, låt oss säga - 1229 01:00:08,110 --> 01:00:14,250 1230 01:00:14,250 --> 01:00:17,960 låt mig bara skriva om ingången är lika med till 2, vad jag ska 1231 01:00:17,960 --> 01:00:23,665 göra är att skriva ut korrekt. 1232 01:00:23,665 --> 01:00:26,230 1233 01:00:26,230 --> 01:00:31,826 Och då annars kommer jag för att skriva ut felaktiga. 1234 01:00:31,826 --> 01:00:34,600 1235 01:00:34,600 --> 01:00:37,720 Något annat? 1236 01:00:37,720 --> 01:00:38,670 Nej? 1237 01:00:38,670 --> 01:00:40,500 >> LAUREN CARVALHO: Så du kan klicka på - 1238 01:00:40,500 --> 01:00:42,290 Har alla här nere? 1239 01:00:42,290 --> 01:00:44,680 >> LUCAS FREITAS: Är det vettigt? 1240 01:00:44,680 --> 01:00:46,226 Så nu ska vi försöka att koda detta. 1241 01:00:46,226 --> 01:00:50,140 >> LAUREN CARVALHO: Om du klickar på den lilla arrow, faktiskt sparar din 1242 01:00:50,140 --> 01:00:51,900 pseudokod, vilket är riktigt spännande. 1243 01:00:51,900 --> 01:00:56,480 Och du kan göra dem i kommentarer om du vill bara påminna dig om 1244 01:00:56,480 --> 01:00:57,075 vad de ska göra. 1245 01:00:57,075 --> 01:01:01,555 >> LUCAS FREITAS: Så till exempel, först Jag kommer att skriva ut frågan, så 1246 01:01:01,555 --> 01:01:05,930 hur ska jag göra det, egentligen? 1247 01:01:05,930 --> 01:01:07,050 printf. 1248 01:01:07,050 --> 01:01:12,130 Så printf, och frågan är genomsnittliga antalet barn per 1249 01:01:12,130 --> 01:01:14,110 familj i USA. 1250 01:01:14,110 --> 01:01:19,070 1251 01:01:19,070 --> 01:01:21,790 >> Då kommer jag att få inmatning från användaren. 1252 01:01:21,790 --> 01:01:29,050 1253 01:01:29,050 --> 01:01:31,324 Så hur kan jag göra det? 1254 01:01:31,324 --> 01:01:32,200 >> PUBLIK: Get Int. 1255 01:01:32,200 --> 01:01:33,076 >> LAUREN CARVALHOS: 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 förklara, eller hur? 1258 01:01:35,220 --> 01:01:39,300 int, låt oss kalla det n lika getInt. 1259 01:01:39,300 --> 01:01:42,610 1260 01:01:42,610 --> 01:01:44,670 >> Och nu tillståndet. 1261 01:01:44,670 --> 01:01:49,250 Så låt mig säga att jag ska till här kryss svar. 1262 01:01:49,250 --> 01:01:57,290 Så först, om ingången, vilket är n, är lika med till - hur ska jag skriva det? 1263 01:01:57,290 --> 01:01:58,480 >> PUBLIK: Lika lika. 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 Och märker att jag gör ett mellanslag, lika, lika, utrymme, sant. 1267 01:02:04,600 --> 01:02:06,930 Och nu vad ska jag göra? 1268 01:02:06,930 --> 01:02:08,820 Något mycket viktigt för stil. 1269 01:02:08,820 --> 01:02:10,070 Klammerparenteserna. 1270 01:02:10,070 --> 01:02:16,570 1271 01:02:16,570 --> 01:02:17,795 >> Och då kommer jag att skriva ut. 1272 01:02:17,795 --> 01:02:19,790 Hur skriver jag ut? 1273 01:02:19,790 --> 01:02:22,500 printf. 1274 01:02:22,500 --> 01:02:24,568 >> PUBLIK: Kan det aktiveras? 1275 01:02:24,568 --> 01:02:27,166 1276 01:02:27,166 --> 01:02:28,380 >> LUCAS FREITAS: Nej. 1277 01:02:28,380 --> 01:02:31,000 Det ska skrivas med gemener. 1278 01:02:31,000 --> 01:02:32,250 Så det är korrekt. 1279 01:02:32,250 --> 01:02:40,990 1280 01:02:40,990 --> 01:02:44,870 >> Skulle det räcka för printf uttalande, eller jag saknar något? 1281 01:02:44,870 --> 01:02:46,265 >> PUBLIK: 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 Och nu annanstans. 1284 01:02:51,250 --> 01:02:57,290 >> PUBLIK: Finns det ett utrymme efter printf, eller nej? 1285 01:02:57,290 --> 01:03:00,820 >> LAUREN CARVALHO: Vi bör Kontrollera stilguide. 1286 01:03:00,820 --> 01:03:02,260 >> Publik: Det bör inte vara. 1287 01:03:02,260 --> 01:03:03,510 >> LUCAS FREITAS: Borde inte vara, OK. 1288 01:03:03,510 --> 01:03:05,820 1289 01:03:05,820 --> 01:03:13,605 Så annanstans, printf, "Det är fel." 1290 01:03:13,605 --> 01:03:17,105 >> LAUREN CARVALHO: Oj, dina citat. 1291 01:03:17,105 --> 01:03:17,950 >> LUCAS FREITAS: OK. 1292 01:03:17,950 --> 01:03:18,600 Något annat? 1293 01:03:18,600 --> 01:03:20,770 Ser det bra ut? 1294 01:03:20,770 --> 01:03:21,890 >> LAUREN CARVALHO: Ska vi försöka? 1295 01:03:21,890 --> 01:03:23,190 >> LUCAS FREITAS: Ja, låt oss köra den. 1296 01:03:23,190 --> 01:03:25,880 1297 01:03:25,880 --> 01:03:29,070 Så det är att sammanställa, och det verkar som att det fungerar. 1298 01:03:29,070 --> 01:03:31,465 Låt oss prova två barn. 1299 01:03:31,465 --> 01:03:34,110 Det stämmer. 1300 01:03:34,110 --> 01:03:37,300 Och nu ska vi köra igen, men nu i stället att sätta två barn, låt oss 1301 01:03:37,300 --> 01:03:40,990 säga att jag ska lägga ut fem. 1302 01:03:40,990 --> 01:03:41,515 Det är fel. 1303 01:03:41,515 --> 01:03:42,670 Så det verkar som det fungerar. 1304 01:03:42,670 --> 01:03:44,160 >> LAUREN CARVALHO: Varför inte du visa dem vad händer om du sätter något 1305 01:03:44,160 --> 01:03:45,055 konstig, liksom några bokstäver. 1306 01:03:45,055 --> 01:03:45,790 >> LUCAS FREITAS: Oh, ja. 1307 01:03:45,790 --> 01:03:47,430 Låt oss också kontrollera att. 1308 01:03:47,430 --> 01:03:51,170 Vad händer om användaren försöker att röra med ditt program, och de bara 1309 01:03:51,170 --> 01:03:57,430 skriva, jag vet inte två. 1310 01:03:57,430 --> 01:03:58,320 Det kommer att säga kan försöka igen. 1311 01:03:58,320 --> 01:04:00,780 >> LAUREN CARVALHO: Så getInt ber dem att försöka igen. 1312 01:04:00,780 --> 01:04:02,115 Vi behövde inte ta hand för att oss själva. 1313 01:04:02,115 --> 01:04:02,750 >> LUCAS FREITAS: Ja. 1314 01:04:02,750 --> 01:04:06,853 Så om jag faktiskt sätta ett nummer, det är kommer att hålla ber mig att försöka igen. 1315 01:04:06,853 --> 01:04:08,330 >> PUBLIK: Hur fick du köra den? 1316 01:04:08,330 --> 01:04:10,570 >> LUCAS FREITAS: Klicka bara på denna stjärna knappen. 1317 01:04:10,570 --> 01:04:11,940 >> LAUREN CARVALHO: Du borde gå upp. 1318 01:04:11,940 --> 01:04:13,320 Varsågod. 1319 01:04:13,320 --> 01:04:15,550 >> LUCAS FREITAS: Stjärnan höger där. 1320 01:04:15,550 --> 01:04:16,040 Yeah? 1321 01:04:16,040 --> 01:04:19,960 >> PUBLIK: Betyder det att fråga [OHÖRBAR] med decimaltal också? 1322 01:04:19,960 --> 01:04:21,235 >> LAUREN CARVALHO: Jag tror att det kommer. 1323 01:04:21,235 --> 01:04:22,660 >> LUCAS FREITAS: Om den gör vad? 1324 01:04:22,660 --> 01:04:24,990 >> LAUREN CARVALHO: Om de skriver i ett decimaltal, tror jag 1325 01:04:24,990 --> 01:04:25,880 det kommer att föranleda. 1326 01:04:25,880 --> 01:04:26,586 >> LUCAS FREITAS: Låt oss se. 1327 01:04:26,586 --> 01:04:28,360 >> LAUREN CARVALHO: Eftersom det är inte en int. 1328 01:04:28,360 --> 01:04:32,056 1329 01:04:32,056 --> 01:04:33,442 >> LUCAS FREITAS: Ja. 1330 01:04:33,442 --> 01:04:37,370 >> LAUREN CARVALHO: Så det är det inte en int, Få Int kommer att be dig att försöka igen. 1331 01:04:37,370 --> 01:04:40,795 >> PUBLIK: Så var för numret skulle vara den decimal som uppmanar 1332 01:04:40,795 --> 01:04:46,005 användaren att de måste ange ett heltal specifikt? 1333 01:04:46,005 --> 01:04:48,480 >> LAUREN CARVALHOS: getInt är faktiskt göra det för oss. 1334 01:04:48,480 --> 01:04:50,600 >> PUBLIK: Nej, jag menar om vi ville att komma in [OHÖRBAR] 1335 01:04:50,600 --> 01:04:55,070 >> LUCAS FREITAS: Du kan säga som genomsnittet Antalet barn i USA. 1336 01:04:55,070 --> 01:04:56,120 Jag vet inte. 1337 01:04:56,120 --> 01:05:01,761 Vi kan säga, till exempel, "Vänligen ange ett heltal. " 1338 01:05:01,761 --> 01:05:04,270 >> LAUREN CARVALHOS: ett heltal lika att det genomsnittliga antalet. 1339 01:05:04,270 --> 01:05:06,190 Jag menar, det är bara hur du ord det, eller hur? 1340 01:05:06,190 --> 01:05:06,520 >> LUCAS FREITAS: Ja. 1341 01:05:06,520 --> 01:05:08,420 Detta är inte en del av faktiskt kodning. 1342 01:05:08,420 --> 01:05:11,000 Det är mer som att vad som helst du kommer att vilja 1343 01:05:11,000 --> 01:05:13,987 skriver i ditt program. 1344 01:05:13,987 --> 01:05:17,723 >> PUBLIK: Hur skulle vi köra den om den var faktiskt i gedit [OHÖRBAR]. 1345 01:05:17,723 --> 01:05:19,130 Istället för att trycka på play? 1346 01:05:19,130 --> 01:05:21,180 >> LUCAS FREITAS: Vi kommer först kompilera det. 1347 01:05:21,180 --> 01:05:25,080 Vi kan göra det genom att göra make och namnet på filen. 1348 01:05:25,080 --> 01:05:29,896 Och sedan för att köra den, vi gör punkt snedstreck och namnet på programmet. 1349 01:05:29,896 --> 01:05:36,588 >> PUBLIK: Jag antar att det jag menade var om vi ville att programmet för att svara på 1350 01:05:36,588 --> 01:05:42,010 deras felaktiga, ogiltiga posten, du ska inte lägga in - 1351 01:05:42,010 --> 01:05:45,710 >> LUCAS FREITAS Vi kommer inte att kunna göra det eftersom koden här säger 1352 01:05:45,710 --> 01:05:50,350 nytt försök kommer från Get Int vilket är en funktion som redan är implementerad 1353 01:05:50,350 --> 01:05:55,790 för oss via CS50 bibliotek och sedan det är redan genomfört det, vi 1354 01:05:55,790 --> 01:05:58,340 kan inte bara [OHÖRBAR]. 1355 01:05:58,340 --> 01:06:00,780 >> LAUREN CARVALHO: Om du inte använder GetInt, då kan du göra det. 1356 01:06:00,780 --> 01:06:01,490 >> LUCAS FREITAS: Ja. 1357 01:06:01,490 --> 01:06:03,750 Men om du använder getInt, det kan du inte. 1358 01:06:03,750 --> 01:06:05,427 Fler frågor? 1359 01:06:05,427 --> 01:06:12,938 >> PUBLIK: Skulle du ha gått med liknande GetFloat och sedan kunna sätta 1360 01:06:12,938 --> 01:06:14,381 den i en decimal? 1361 01:06:14,381 --> 01:06:15,343 >> LUCAS FREITAS: Ja. 1362 01:06:15,343 --> 01:06:15,824 >> PUBLIK: OK. 1363 01:06:15,824 --> 01:06:19,210 Sedan kan du bara kunde ingång flyta a jämlikar - 1364 01:06:19,210 --> 01:06:19,950 >> LAUREN CARVALHO: Ja. 1365 01:06:19,950 --> 01:06:22,740 Exakt samma utom en flyta i stället för en int. 1366 01:06:22,740 --> 01:06:27,372 >> LUCAS FREITAS: Bara sätta det här och sedan getFloat där. 1367 01:06:27,372 --> 01:06:29,795 >> PUBLIK: När du kommer ser eller har sett - 1368 01:06:29,795 --> 01:06:31,327 >> LAUREN CARVALHOS: vi har inte fått det ännu. 1369 01:06:31,327 --> 01:06:36,490 >> PUBLIK: - göra ojämlikhet med flyter inte [OHÖRBAR] 1370 01:06:36,490 --> 01:06:40,290 >> PUBLIK: Vad semikolonen detta? 1371 01:06:40,290 --> 01:06:43,220 >> LAUREN CARVALHOS: Semikolon bara innebär att detta uttalande är klar, 1372 01:06:43,220 --> 01:06:45,030 och vi kommer att gå på nästa bild. 1373 01:06:45,030 --> 01:06:47,040 >> PUBLIK: Så det är nödvändigt varje gång? 1374 01:06:47,040 --> 01:06:48,330 >> LAUREN CARVALHO: Ja. 1375 01:06:48,330 --> 01:06:53,130 Tja, OK, så inte för dessa förhållanden, eftersom de är 1376 01:06:53,130 --> 01:06:54,090 kapsla in något. 1377 01:06:54,090 --> 01:07:00,290 Så i grund och botten om något orsakar du sedan skapa en klammer 1378 01:07:00,290 --> 01:07:03,000 blocket, inte sätta ett semikolon i slutet. 1379 01:07:03,000 --> 01:07:04,200 >> LUCAS FREITAS: Men allt annars, ja. 1380 01:07:04,200 --> 01:07:06,670 När du är klar med ett uttalande, sätta semikolon. 1381 01:07:06,670 --> 01:07:10,380 Och om du glömmer semikolon, det kompilatorn kommer att bli arg på dig, 1382 01:07:10,380 --> 01:07:12,640 och du kommer att ha för att försöka fixa det. 1383 01:07:12,640 --> 01:07:16,520 >> LAUREN CARVALHO: Om jag sätter ett semikolon Här skulle det hindra detta, och jag 1384 01:07:16,520 --> 01:07:18,780 skulle aldrig få för att utföra vad som är inne, förresten. 1385 01:07:18,780 --> 01:07:21,113 Så det är en av de vanliga fel. 1386 01:07:21,113 --> 01:07:22,390 >> PUBLIK: Alltid köra. 1387 01:07:22,390 --> 01:07:22,950 >> LAUREN CARVALHO: Ja. 1388 01:07:22,950 --> 01:07:25,860 I det här fallet skulle vi alltid utföra vad som finns inuti. 1389 01:07:25,860 --> 01:07:29,050 >> PUBLIK: Din stil [OHÖRBAR] bifoga det till dig, trodde. 1390 01:07:29,050 --> 01:07:29,802 >> LAUREN CARVALHO: Åh, det är sant. 1391 01:07:29,802 --> 01:07:34,298 >> PUBLIK: [OHÖRBAR] singel linje sak [OHÖRBAR] 1392 01:07:34,298 --> 01:07:35,286 >> PUBLIK: Ja? 1393 01:07:35,286 --> 01:07:37,756 >> PUBLIK: Kan man ha flera ingångar i en rad? 1394 01:07:37,756 --> 01:07:41,214 Så som du kan be användarna för att skriva ut två saker? 1395 01:07:41,214 --> 01:07:42,530 >> LAUREN CARVALHO: Använder ej - 1396 01:07:42,530 --> 01:07:44,520 >> LUCAS FREITAS: Nej. 1397 01:07:44,520 --> 01:07:47,040 Låt oss säga att jag vill också att få detta heltal m.. 1398 01:07:47,040 --> 01:07:49,558 Jag måste göra det på en annan linje. 1399 01:07:49,558 --> 01:07:54,992 >> PUBLIK: Om du skulle köra det, hur [OHÖRBAR]? 1400 01:07:54,992 --> 01:07:59,438 Det skulle skriva ut prompten det [OHÖRBAR] 1401 01:07:59,438 --> 01:08:00,940 och då du skulle skriva in en och - 1402 01:08:00,940 --> 01:08:01,840 >> LAUREN CARVALHO: Tja, kör den. 1403 01:08:01,840 --> 01:08:04,365 Jag menar, det finns ingenting som hindrar oss från bara köra den och se vad 1404 01:08:04,365 --> 01:08:06,610 skulle hända. 1405 01:08:06,610 --> 01:08:08,080 >> LUCAS FREITAS: Jag tycker det är kommer att klagar på oss 1406 01:08:08,080 --> 01:08:08,977 eftersom vi inte använder - 1407 01:08:08,977 --> 01:08:09,751 >> LAUREN CARVALHO: Oj. 1408 01:08:09,751 --> 01:08:12,580 >> LUCAS FREITAS: Det klagade på oss rätt nu eftersom vi inte använder det här 1409 01:08:12,580 --> 01:08:21,640 variabel, men om jag gjorde det, till exempel, n är lika lika med, och m är lika 1410 01:08:21,640 --> 01:08:26,849 lika med, vad ska hända i det här fallet? 1411 01:08:26,849 --> 01:08:28,830 Vad skulle det här programmet göra? 1412 01:08:28,830 --> 01:08:30,330 >> PUBLIK: Jag undrar bara hur det skulle - 1413 01:08:30,330 --> 01:08:31,550 >> LAUREN CARVALHO: Hon vill bara att veta hur det ser ut 1414 01:08:31,550 --> 01:08:34,189 som, tror jag, eller hur? 1415 01:08:34,189 --> 01:08:36,819 Så det tog en av dem, och sedan Det tog den andra en. 1416 01:08:36,819 --> 01:08:41,279 1417 01:08:41,279 --> 01:08:43,069 >> Jag tycker vi ska gå vidare, eftersom vi har en mer 1418 01:08:43,069 --> 01:08:44,689 bildspel kvar innan - 1419 01:08:44,689 --> 01:08:46,269 vill du dra upp 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: Ge mig bara en sekund. 1423 01:09:02,206 --> 01:09:07,390 1424 01:09:07,390 --> 01:09:14,260 >> Det finns några olika numerisk variabler i C. Sifferuppgifter inom C 1425 01:09:14,260 --> 01:09:18,130 kan klassificeras i olika typer, och dessa är de som du kommer 1426 01:09:18,130 --> 01:09:19,570 se de oftast. 1427 01:09:19,570 --> 01:09:20,910 >> Och int är ett heltal. 1428 01:09:20,910 --> 01:09:23,189 Du kan inte ha några decimaler. 1429 01:09:23,189 --> 01:09:27,754 I Appliance, tar det 32 bitar för att lagra en int. 1430 01:09:27,754 --> 01:09:30,450 >> En flottör kan ha decimaler. 1431 01:09:30,450 --> 01:09:34,330 Det tar också 32 bitar för att lagra en flottör i Appliance. 1432 01:09:34,330 --> 01:09:42,270 >> En dubbel är ett tal med en decimal punkt som tar 64 bitar för att lagra det, 1433 01:09:42,270 --> 01:09:44,470 vilket innebär att du bara kan ha större precision eftersom 1434 01:09:44,470 --> 01:09:46,426 du kan ha mer - 1435 01:09:46,426 --> 01:09:47,785 Vad kallar du det? 1436 01:09:47,785 --> 01:09:48,640 >> LUCAS FREITAS: Ja, det är mer. 1437 01:09:48,640 --> 01:09:52,140 >> LAUREN Carvalho: Fler platser efter decimalkommat. 1438 01:09:52,140 --> 01:09:57,140 Och en lång lång är ett heltal som tar 64 bitar för att 1439 01:09:57,140 --> 01:09:58,395 öm det i Appliance. 1440 01:09:58,395 --> 01:10:00,278 >> LUCAS FREITAS: Så det kan vara större än ints kan vara. 1441 01:10:00,278 --> 01:10:03,320 1442 01:10:03,320 --> 01:10:08,380 >> LAUREN CARVALHO: Men saken uppgifter typer i C är att de berätta vad 1443 01:10:08,380 --> 01:10:11,050 typ av data du kan lagra i variabeln. 1444 01:10:11,050 --> 01:10:15,860 De talar om hur du kan använda den här variabel i ditt program. 1445 01:10:15,860 --> 01:10:19,650 Det är väldigt viktigt att bara hålla reda av vilken datatyp du använder, och om 1446 01:10:19,650 --> 01:10:23,070 du behöver för att kasta från en datatyp till en annan, se till att du vet 1447 01:10:23,070 --> 01:10:25,250 exakt vad som händer när det gjutning äger rum. 1448 01:10:25,250 --> 01:10:28,520 Och du kommer att se ett exempel senare på i dessa bilder av en 1449 01:10:28,520 --> 01:10:31,490 misstag som kan uppstå. 1450 01:10:31,490 --> 01:10:35,300 >> Låt oss ta en titt på några matte i C och tycker verkligen noga, gissar jag, 1451 01:10:35,300 --> 01:10:38,470 om vad som händer när detta math sker. 1452 01:10:38,470 --> 01:10:43,552 I den allra första raden, vad är händer när jag förklarar x? 1453 01:10:43,552 --> 01:10:48,921 >> PUBLIK: Du tillåter x att vara något? 1454 01:10:48,921 --> 01:10:49,700 >> LAUREN CARVALHO: Ja. 1455 01:10:49,700 --> 01:10:54,040 Tja, jag verkligen ber drift system för 32 bitar av minnet, eller hur? 1456 01:10:54,040 --> 01:10:57,890 I vilka kan jag lagra en int, och Jag kommer att kalla det int x. 1457 01:10:57,890 --> 01:11:01,370 >> LUCAS FREITAS: I grund och botten går i minnet och att hitta en plats som har 32 1458 01:11:01,370 --> 01:11:05,290 bitar och säga, hej, jag vill ha detta utrymme, och det kommer att kallas x. 1459 01:11:05,290 --> 01:11:08,590 Så du är bara ganska mycket fynd en ruta i ditt minne för att 1460 01:11:08,590 --> 01:11:10,440 lagra värden för x. 1461 01:11:10,440 --> 01:11:13,980 >> LAUREN CARVALHO: Och sedan initiera jag x, vilket betyder att jag bara lagra 1462 01:11:13,980 --> 01:11:20,270 värde på 2 på den platsen, som bit minne, att vi frågade drifts 1463 01:11:20,270 --> 01:11:21,860 system för. 1464 01:11:21,860 --> 01:11:25,090 Och här nere vad vi gör är vi faktiskt förklara och 1465 01:11:25,090 --> 01:11:29,060 initierar y på en rad istället för i två rader som vi gjorde här uppe, 1466 01:11:29,060 --> 01:11:33,960 som också är en mycket bra, är vi addera 1 till x, och vi lagrar det 1467 01:11:33,960 --> 01:11:34,950 värde i y. 1468 01:11:34,950 --> 01:11:39,360 >> LUCAS FREITAS: Så i princip vad detta linje gör, den hittar nu en låda för y, 1469 01:11:39,360 --> 01:11:41,990 och sedan dess värde, det som du kommer att sätta i rutan, är 1470 01:11:41,990 --> 01:11:43,800 kommer att vara värdet på x plus 1. 1471 01:11:43,800 --> 01:11:45,850 Så det har den här rutan för y. 1472 01:11:45,850 --> 01:11:49,980 Det blir värdet för x, ser här, och se att det är 2. 1473 01:11:49,980 --> 01:11:53,035 Sätt det där, plus 1, så det sätter en 3 där. 1474 01:11:53,035 --> 01:11:54,290 Låter det vettigt? 1475 01:11:54,290 --> 01:11:55,780 Så y skulle vara 2 i det här fallet. 1476 01:11:55,780 --> 01:11:58,993 1477 01:11:58,993 --> 01:12:00,770 >> LAUREN CARVALHO: Okej, coolt. 1478 01:12:00,770 --> 01:12:06,010 Vi såg några tillägg, så låt oss nu tänka om uppdelning i C. Här är jag 1479 01:12:06,010 --> 01:12:11,490 förklara och initierar en flottör heter svar och dividera 1 med 10, 1480 01:12:11,490 --> 01:12:14,860 och sedan ska jag skriva ut svaret till två decimaler. 1481 01:12:14,860 --> 01:12:18,800 Och notera här, i min printf uttalande, när jag vill skriva ut något till två 1482 01:12:18,800 --> 01:12:25,600 decimaler, är% .2 f vad jag vill använda. 1483 01:12:25,600 --> 01:12:28,880 1484 01:12:28,880 --> 01:12:31,760 Så poängen 2 är att bara säga Jag behöver två platser efter 1485 01:12:31,760 --> 01:12:34,980 decimal skrivs ut. 1486 01:12:34,980 --> 01:12:38,740 >> Nu, vad som kommer att hända Om jag kör den här koden? 1487 01:12:38,740 --> 01:12:40,500 Har någon en idé? 1488 01:12:40,500 --> 01:12:42,721 Vad skulle skriva ut? 1489 01:12:42,721 --> 01:12:45,010 >> LUCAS FREITAS: Vilka är Vi räknar med att få. 1490 01:12:45,010 --> 01:12:46,810 >> LAUREN CARVALHO: Vad gör Vi vill först och främst? 1491 01:12:46,810 --> 01:12:48,871 >> LUCAS FREITAS: [OHÖRBAR] 1492 01:12:48,871 --> 01:12:51,120 >> LAUREN CARVALHOS: 0,1, ja. 1493 01:12:51,120 --> 01:12:52,325 Men vad kommer att skriva ut? 1494 01:12:52,325 --> 01:12:53,275 >> PUBLIK: [OHÖRBAR] 1495 01:12:53,275 --> 01:12:56,760 >> LAUREN CARVALHO: Tja, nej, faktiskt. 1496 01:12:56,760 --> 01:13:01,400 Detta är vad jag pratade om varför du måste hålla mycket noga koll på 1497 01:13:01,400 --> 01:13:02,550 dina datatyper. 1498 01:13:02,550 --> 01:13:05,000 Så, vilken datatyp är det här? 1499 01:13:05,000 --> 01:13:06,250 Är en int, eller hur? 1500 01:13:06,250 --> 01:13:07,600 Det finns ingen decimal. 1501 01:13:07,600 --> 01:13:08,770 10 är också en int. 1502 01:13:08,770 --> 01:13:09,930 Det finns ingen decimal. 1503 01:13:09,930 --> 01:13:15,770 >> Om jag delar en int med en int, får jag en int vilket inte är 0,1, eftersom ints 1504 01:13:15,770 --> 01:13:18,630 kan inte ha decimaler, men bara 0. 1505 01:13:18,630 --> 01:13:21,005 Eftersom en int bara trunkerar bort decimaler. 1506 01:13:21,005 --> 01:13:24,280 >> LUCAS FREITAS: Så när du gör verksamhet med Ints, du kommer att 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 princip, vad datorn gör, det är klyftor 1 av 1509 01:13:28,930 --> 01:13:31,520 10, och det blir 0,1. 1510 01:13:31,520 --> 01:13:34,870 Men då är det som att, vänta, det är tänkt att vara ett heltal, så att du bara 1511 01:13:34,870 --> 01:13:37,045 ignorera 0,1, så det är nu bara 0. 1512 01:13:37,045 --> 01:13:41,782 >> LAUREN CARVALHO: Så när jag skriver ut detta ut, jag får 0,00 i stället för 0,10. 1513 01:13:41,782 --> 01:13:44,075 >> LUCAS FREITAS: Låter det vettigt? 1514 01:13:44,075 --> 01:13:45,530 >> LAUREN CARVALHO: Det är typ av olycklig, eller hur? 1515 01:13:45,530 --> 01:13:47,290 >> LUCAS FREITAS: Så hur kan vi fixa detta? 1516 01:13:47,290 --> 01:13:48,620 >> LAUREN Carvalho: Låt oss försöka fixa det. 1517 01:13:48,620 --> 01:13:51,570 1518 01:13:51,570 --> 01:13:54,810 Här är ett exempel på där jag är faktiskt gjutning av 1 1519 01:13:54,810 --> 01:13:56,650 och 10 att flyta. 1520 01:13:56,650 --> 01:13:58,800 Så nu, 1 är inte längre en int. 1521 01:13:58,800 --> 01:14:00,020 1 är ett flöte. 1522 01:14:00,020 --> 01:14:02,590 Förresten, är detta bara syntaxen för när du vill kasta från en 1523 01:14:02,590 --> 01:14:03,410 datatyp till en annan. 1524 01:14:03,410 --> 01:14:07,140 Du kan bara sätta datatypen i parenteser och har det bara föregå 1525 01:14:07,140 --> 01:14:10,860 det värde som du gjutning. 1526 01:14:10,860 --> 01:14:15,800 >> Så här kommer jag att dela en flottör av en flottör för att få en flottör svar. 1527 01:14:15,800 --> 01:14:19,535 Och ja, skulle detta i Faktum är att skriva ut 0.10. 1528 01:14:19,535 --> 01:14:20,470 Låter det vettigt? 1529 01:14:20,470 --> 01:14:24,110 >> LUCAS FREITAS: Så typ gjutning är bara konvertera från en typ till en annan. 1530 01:14:24,110 --> 01:14:29,460 Så flyter 1 är faktiskt 1.000. 1531 01:14:29,460 --> 01:14:33,400 Inte precis det här, men det är något med decimaler 1532 01:14:33,400 --> 01:14:34,715 det är faktiskt 1. 1533 01:14:34,715 --> 01:14:35,960 Låter det vettigt? 1534 01:14:35,960 --> 01:14:36,260 Yeah? 1535 01:14:36,260 --> 01:14:40,990 >> PUBLIK: Vad händer om du gjorde float svar lika med 1,0 delat med 10? 1536 01:14:40,990 --> 01:14:43,940 >> LAUREN CARVALHO: Du är faktiskt går att se att i nästa bild. 1537 01:14:43,940 --> 01:14:47,150 Det är faktiskt vår nästa bild. 1538 01:14:47,150 --> 01:14:50,740 Detta är faktiskt en trevligare än typ gjutning, tror jag. 1539 01:14:50,740 --> 01:14:53,470 Så dessa två är flyter bara med arten av det faktum att de 1540 01:14:53,470 --> 01:14:54,926 har decimaler. 1541 01:14:54,926 --> 01:14:55,300 Ja? 1542 01:14:55,300 --> 01:14:57,670 >> PUBLIK: Vad händer om du gjorde [OHÖRBAR] 1543 01:14:57,670 --> 01:14:59,480 dividerat med 10? 1544 01:14:59,480 --> 01:15:02,270 >> LAUREN CARVALHO: Faktiskt en flottör dividerat med en int faktiskt ger dig en 1545 01:15:02,270 --> 01:15:03,670 flyta, så det skulle fungera bra. 1546 01:15:03,670 --> 01:15:08,070 1547 01:15:08,070 --> 01:15:09,120 >> Vänta, inte alla förstå detta? 1548 01:15:09,120 --> 01:15:12,720 Eftersom detta kommer att bli en riktigt stor sak i Pset1, faktiskt. 1549 01:15:12,720 --> 01:15:13,130 Ja? 1550 01:15:13,130 --> 01:15:14,762 >> PUBLIK: Kan du bara snabbt gå över den röda delen? 1551 01:15:14,762 --> 01:15:16,380 >> LAUREN CARVALHO: Den röda delen, ja. 1552 01:15:16,380 --> 01:15:17,250 Lucas, vill du? 1553 01:15:17,250 --> 01:15:18,020 >> LUCAS FREITAS: OK. 1554 01:15:18,020 --> 01:15:20,570 Så kom ihåg att den procentuella är en platshållare. 1555 01:15:20,570 --> 01:15:22,150 Det är som ett tomt utrymme. 1556 01:15:22,150 --> 01:15:26,240 Så låt oss försöka förstå allt som pågår här. 1557 01:15:26,240 --> 01:15:28,170 Procent betyder att det är en platshållare. 1558 01:15:28,170 --> 01:15:33,640 Då har du f, vilket innebär att denna platshållare är en flottör. 1559 01:15:33,640 --> 01:15:38,870 Det sista som vi har här är en 0,2, vilket betyder att jag vill ha två 1560 01:15:38,870 --> 01:15:42,410 decimaler för flottören. 1561 01:15:42,410 --> 01:15:48,510 >> Om jag bara hade% f, de kommer att sätta en massa decimaler. 1562 01:15:48,510 --> 01:15:54,170 Så jag kan bara sätta 0,2 eller 0,1 eller 0,5, eller vad som helst, och det kommer att sätta det 1563 01:15:54,170 --> 01:15:55,950 antal decimaler. 1564 01:15:55,950 --> 01:15:59,950 Det enda är att om du lägger ut .100 Eller .1,000, det är faktiskt inte 1565 01:15:59,950 --> 01:16:04,200 kommer att sätta alla dessa decimaler eftersom den inte har tillräckligt med minne 1566 01:16:04,200 --> 01:16:06,432 att ha den precision. 1567 01:16:06,432 --> 01:16:07,955 >> Fler frågor? 1568 01:16:07,955 --> 01:16:08,450 Yeah? 1569 01:16:08,450 --> 01:16:12,970 >> PUBLIK: Så flyter bara tillåter du att gå längre än heltal? 1570 01:16:12,970 --> 01:16:13,720 >> LUCAS FREITAS: Ja. 1571 01:16:13,720 --> 01:16:17,345 >> LAUREN CARVALHO: Tja, en flottör bara gör att du kan ha decimaler. 1572 01:16:17,345 --> 01:16:20,460 >> LUCAS FREITAS: Det betyder bara att du nu kan ha decimaltal. 1573 01:16:20,460 --> 01:16:25,728 >> PUBLIK: Varför skulle vi någonsin använda heltal? 1574 01:16:25,728 --> 01:16:27,870 >> LUCAS FREITAS: Varför skulle du använder heltal? 1575 01:16:27,870 --> 01:16:31,810 Kanske om du räknar från 0 till 10, du vill använda faktiskt ett heltal. 1576 01:16:31,810 --> 01:16:33,370 Du behöver inte använda en flottör. 1577 01:16:33,370 --> 01:16:35,430 I vissa situationer behöver du inte måste faktiskt - 1578 01:16:35,430 --> 01:16:37,040 >> LAUREN CARVALHO: Kanske du vill inte decimaler. 1579 01:16:37,040 --> 01:16:38,600 >> LUCAS FREITAS: Kanske behöver du inte vill använda ett flöte. 1580 01:16:38,600 --> 01:16:42,660 >> LAUREN CARVALHO: Den andra saken är, minns, både sätta en float och en int 1581 01:16:42,660 --> 01:16:46,170 ta 32 bitar för att lagra dem, och kanske du vill inte slösa bitar på 1582 01:16:46,170 --> 01:16:48,062 decimaler. 1583 01:16:48,062 --> 01:16:49,750 >> LUCAS FREITAS: Ja. 1584 01:16:49,750 --> 01:16:51,910 Så liksom, bara tänka på detta. 1585 01:16:51,910 --> 01:16:55,200 Du har 32 bitar för både en int och float. 1586 01:16:55,200 --> 01:16:59,400 För en int, alla dessa 32 bitar gå till heltalsdelen. 1587 01:16:59,400 --> 01:17:03,460 Om du använder en flottör med 32 bitar, du har en del av detta minne som används 1588 01:17:03,460 --> 01:17:06,820 för det antal, för hela antalet, och den andra delen används för 1589 01:17:06,820 --> 01:17:08,300 decimaler. 1590 01:17:08,300 --> 01:17:12,370 Så det betyder att du inte kan komma till mycket stort antal med flöten eftersom 1591 01:17:12,370 --> 01:17:16,020 flottören är redan med mycket minne för decimaler. 1592 01:17:16,020 --> 01:17:17,014 Yeah? 1593 01:17:17,014 --> 01:17:21,487 >> PUBLIK: Det första svaret, vad exakt gör det? 1594 01:17:21,487 --> 01:17:25,214 Är det att sätta värdet på flyt lika till den platshållare för att du kan 1595 01:17:25,214 --> 01:17:26,954 återkalla den i nästa rad? 1596 01:17:26,954 --> 01:17:28,942 Den säger flyta svar. 1597 01:17:28,942 --> 01:17:29,770 >> LUCAS FREITAS: Ja. 1598 01:17:29,770 --> 01:17:37,200 Så, betyder flyta svar du får nu en liten hink i minnet att 1599 01:17:37,200 --> 01:17:40,050 innehar en flottör, och det kommer att kallas svar. 1600 01:17:40,050 --> 01:17:42,040 Så det är vad float svar gör. 1601 01:17:42,040 --> 01:17:44,720 >> Och då du säger att insidan av detta, du kommer att sätta 1602 01:17:44,720 --> 01:17:46,470 resultatet av detta. 1603 01:17:46,470 --> 01:17:52,610 Så du ska göra 1,0 dividerat med 10.0, får du 0,1, och sedan du sätter 1604 01:17:52,610 --> 01:17:53,490 att insidan av svaret. 1605 01:17:53,490 --> 01:17:57,540 >> LAUREN CARVALHO: Så i en rad, vi är förklara och initierar denna flottör 1606 01:17:57,540 --> 01:18:00,070 kallas svar. 1607 01:18:00,070 --> 01:18:04,470 >> LUCAS FREITAS: Intressant, även detta är bara en rad, det gör 1608 01:18:04,470 --> 01:18:05,570 flera operationer. 1609 01:18:05,570 --> 01:18:08,800 Det är bara ett sätt att C uthyrning du använder mindre kod. 1610 01:18:08,800 --> 01:18:12,310 Det är samma sak som den ternära operatören, hur man bara kan göra en 1611 01:18:12,310 --> 01:18:13,810 [OHÖRBAR] i en rad. 1612 01:18:13,810 --> 01:18:18,860 Det är faktiskt gör samma sak som gör float svar, semikolon, och 1613 01:18:18,860 --> 01:18:23,060 då svaret är lika med denna, men i stället för vilket gör att du gör två rader för det, 1614 01:18:23,060 --> 01:18:24,160 det är som en genväg. 1615 01:18:24,160 --> 01:18:24,520 Yeah? 1616 01:18:24,520 --> 01:18:27,929 >> PUBLIK: Så om du körde det, det skulle vara 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 >> PUBLIK: Är svarar faktiskt kod, eller är det bara namnet? 1620 01:18:34,540 --> 01:18:36,010 >> LAUREN CARVALHO: Detta är faktiskt kod. 1621 01:18:36,010 --> 01:18:37,750 Det här är vad vi ska för att nämna vår variabel. 1622 01:18:37,750 --> 01:18:39,770 >> PUBLIK: Så det är bara ett namn [OHÖRBAR]. 1623 01:18:39,770 --> 01:18:40,270 >> LAUREN CARVALHO: Ja. 1624 01:18:40,270 --> 01:18:44,670 Jag kunde ha sagt float x är lika med 1,0. 1625 01:18:44,670 --> 01:18:47,160 >> LUCAS FREITAS: Saken är den att namnet på variabeln är 1626 01:18:47,160 --> 01:18:48,400 något som du använder. 1627 01:18:48,400 --> 01:18:49,690 Det är viktigt för dig. 1628 01:18:49,690 --> 01:18:52,660 För det aktuella programmet, det enda att frågor är det värde som du 1629 01:18:52,660 --> 01:18:55,570 har inne i hinken. 1630 01:18:55,570 --> 01:18:59,270 Anledningen till att du har variabler och namn på variabler är så att du skulle veta 1631 01:18:59,270 --> 01:19:01,910 vad du arbetar med, liksom vilken typ av data du är 1632 01:19:01,910 --> 01:19:03,040 åtkomst åt gången. 1633 01:19:03,040 --> 01:19:07,580 Men för själva koden, om du ringer det svara eller fråga eller något, 1634 01:19:07,580 --> 01:19:09,530 ganska mycket, det spelar ingen roll. 1635 01:19:09,530 --> 01:19:10,060 Det spelar ingen roll. 1636 01:19:10,060 --> 01:19:12,910 Så länge du är konsekvent i varje förekomst det och så du kallar det 1637 01:19:12,910 --> 01:19:13,620 något annat. 1638 01:19:13,620 --> 01:19:14,880 Yeah? 1639 01:19:14,880 --> 01:19:17,208 >> PUBLIK: Gör variablerna utöver den funktionen? 1640 01:19:17,208 --> 01:19:20,902 Som om du skulle skapa en konsol [OHÖRBAR], kan du bara 1641 01:19:20,902 --> 01:19:21,806 [OHÖRBAR] svara igen? 1642 01:19:21,806 --> 01:19:22,550 >> LAUREN CARVALHO: Nej. 1643 01:19:22,550 --> 01:19:23,300 >> PUBLIK: [OHÖRBAR] 1644 01:19:23,300 --> 01:19:24,200 >> LAUREN CARVALHO: Nej. 1645 01:19:24,200 --> 01:19:26,930 Det skulle vara utanför räckvidden av denna speciella variabel. 1646 01:19:26,930 --> 01:19:29,940 Och faktiskt, det är den typen av intressant, för när vi har 1647 01:19:29,940 --> 01:19:33,010 saker som öglor eller dessa om förhållanden, om du deklarerar en variabel 1648 01:19:33,010 --> 01:19:36,330 inom en annan uppsättning av klammerparenteser, det egentligen bara existerar 1649 01:19:36,330 --> 01:19:39,800 inom dessa klammerparenteser. 1650 01:19:39,800 --> 01:19:43,088 >> PUBLIK: En sista anteckning om de [OHÖRBAR] flottar. 1651 01:19:43,088 --> 01:19:46,076 Varför skulle du någonsin vilja använda ints? 1652 01:19:46,076 --> 01:19:49,562 Detta är mer av en sida noterar än vad som helst, men datorn är 1653 01:19:49,562 --> 01:19:53,048 betydligt bättre på att hantera ints än det är vid hantering flyter. 1654 01:19:53,048 --> 01:19:55,040 Det är som en beställning av magnitud snabbare. 1655 01:19:55,040 --> 01:20:00,360 Så om vi bara hanteras bara flyter, saker skulle vara mycket långsammare. 1656 01:20:00,360 --> 01:20:03,080 >> LAUREN CARVALHO: Faktiskt, det verkar att vara ett problem med flöten. 1657 01:20:03,080 --> 01:20:06,400 >> LUCAS FREITAS: Typ av orsaken till att du kan tänka, är hur i binär 1658 01:20:06,400 --> 01:20:08,480 du kan representera heltal genom att sätta 0 s och 1 s. 1659 01:20:08,480 --> 01:20:09,980 >> LAUREN CARVALHOS: Det är nästa sak. 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: Bara Håll den tanken. 1663 01:20:11,480 --> 01:20:13,800 >> LUCAS FREITAS: OK, jag ska berättar sen. 1664 01:20:13,800 --> 01:20:16,920 >> LAUREN CARVALHO: Innan vi kommer till vad Lucas sa just, operatör 1665 01:20:16,920 --> 01:20:17,420 företräde. 1666 01:20:17,420 --> 01:20:18,220 Det är sunt förnuft. 1667 01:20:18,220 --> 01:20:20,830 Ni har gjort det tillräckligt. 1668 01:20:20,830 --> 01:20:24,705 Så, bara om något är inom parentes, det kommer att hända först. 1669 01:20:24,705 --> 01:20:27,970 Det är multiplikation har företräde över Dessutom 1670 01:20:27,970 --> 01:20:30,330 subtraktion, sådana saker. 1671 01:20:30,330 --> 01:20:34,700 Så egentligen, bara någon som vill berätta vad nummer ett faktiskt 1672 01:20:34,700 --> 01:20:36,674 utvärderas till? 1673 01:20:36,674 --> 01:20:37,638 >> Publik: 27. 1674 01:20:37,638 --> 01:20:39,090 >> LAUREN CARVALHOS: 27? 1675 01:20:39,090 --> 01:20:39,550 Yeah. 1676 01:20:39,550 --> 01:20:41,975 >> LUCAS FREITAS: Låt mig ge godis till människor. 1677 01:20:41,975 --> 01:20:42,850 >> LAUREN CARVALHO: Okej. 1678 01:20:42,850 --> 01:20:44,100 Hur är nummer två? 1679 01:20:44,100 --> 01:20:46,880 1680 01:20:46,880 --> 01:20:48,340 Hur är nummer två? 1681 01:20:48,340 --> 01:20:49,280 >> Publik: 22. 1682 01:20:49,280 --> 01:20:50,680 >> LAUREN CARVALHO: 22, ja. 1683 01:20:50,680 --> 01:20:51,570 Jag vet inte vem som fick den. 1684 01:20:51,570 --> 01:20:52,694 Nummer tre? 1685 01:20:52,694 --> 01:20:54,050 >> Publik: 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, vill du förklara modulo? 1691 01:21:03,700 --> 01:21:07,150 >> LUCAS FREITAS: Modulo är denna operatör som faktiskt är mycket användbart för en 1692 01:21:07,150 --> 01:21:09,470 gäng problem. 1693 01:21:09,470 --> 01:21:15,270 Om jag gör 55 modulo 10, vad den gör denna låt oss säga att jag vill 1694 01:21:15,270 --> 01:21:16,970 dividera 55 med 10. 1695 01:21:16,970 --> 01:21:18,240 Vad får jag? 1696 01:21:18,240 --> 01:21:21,380 Det känns precis som om jag är faktiskt bara gör delningen, vilken är den 1697 01:21:21,380 --> 01:21:22,450 första gången som jag fick heltal? 1698 01:21:22,450 --> 01:21:23,190 >> PUBLIK: 5. 1699 01:21:23,190 --> 01:21:24,080 >> LUCAS FREITAS: 5. 1700 01:21:24,080 --> 01:21:26,230 Och sedan resten är 5, eller hur? 1701 01:21:26,230 --> 01:21:29,250 Så det är som 5 gånger 10 plus 5. 1702 01:21:29,250 --> 01:21:35,570 I grund och botten, vad modulo gör, försöker den dividera detta tal med den här, och 1703 01:21:35,570 --> 01:21:37,440 den ser vad är resten av indelningen. 1704 01:21:37,440 --> 01:21:40,080 >> LAUREN CARVALHO: Så det bara returnerar resten. 1705 01:21:40,080 --> 01:21:41,920 Så nummer ett är vad? 1706 01:21:41,920 --> 01:21:42,560 5. 1707 01:21:42,560 --> 01:21:43,336 Nummer två? 1708 01:21:43,336 --> 01:21:44,150 >> PUBLIK: 3. 1709 01:21:44,150 --> 01:21:44,934 >> LAUREN CARVALHOS: 3. 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 Och fyra är 1. 1713 01:21:48,410 --> 01:21:48,665 Exakt. 1714 01:21:48,665 --> 01:21:49,915 >> LUCAS FREITAS: Enkelt, eller hur? 1715 01:21:49,915 --> 01:21:54,270 1716 01:21:54,270 --> 01:21:56,560 >> LAUREN CARVALHO: Varför inte vi hoppa över det här bara för att vi har egentligen inte 1717 01:21:56,560 --> 01:21:59,780 tiden, och folk verkar förstå. 1718 01:21:59,780 --> 01:22:03,330 Så här är vad Lucas var bara talar om. 1719 01:22:03,330 --> 01:22:08,030 >> LUCAS FREITAS: En annan anledning till att jag skulle använda ints istället för flottörer är 1720 01:22:08,030 --> 01:22:10,840 som flyter är mycket oprecisa. 1721 01:22:10,840 --> 01:22:12,720 Och varför är de preciserad? 1722 01:22:12,720 --> 01:22:17,140 David sade att representera ett heltal, till exempel, använder vi 0 s och 1723 01:22:17,140 --> 01:22:17,810 1: s, eller hur? 1724 01:22:17,810 --> 01:22:22,370 Och då du i princip göra multiplikation, göra alla de 1725 01:22:22,370 --> 01:22:30,000 verksamheten att veta vad decimaltal du har istället för binär. 1726 01:22:30,000 --> 01:22:33,040 >> Vad händer nu om jag försöker att sätta decimal? 1727 01:22:33,040 --> 01:22:37,680 Faktiskt, till exempel, om jag har Antalet som 3,33333? 1728 01:22:37,680 --> 01:22:40,250 Det känns som 10 över 3. 1729 01:22:40,250 --> 01:22:44,950 Hur ska jag förvara alla 3 är att jag efter det? 1730 01:22:44,950 --> 01:22:47,120 Det är verkligen svårt, eller hur? 1731 01:22:47,120 --> 01:22:49,580 Du kan inte bara tala om för datorn, hej, jag har en 3, och 1732 01:22:49,580 --> 01:22:50,520 då du gör det alltid. 1733 01:22:50,520 --> 01:22:52,810 Egentligen datorn inte smart nog för detta. 1734 01:22:52,810 --> 01:22:58,300 >> Så i princip hela datorn gör är att den försöker sätta så många siffror som 1735 01:22:58,300 --> 01:23:00,950 det kan upp till minnet som du har. 1736 01:23:00,950 --> 01:23:05,890 Så låt oss säga att det kommer att säger 3.3333, och det är det. 1737 01:23:05,890 --> 01:23:10,690 Så det är inte kunde faktiskt uttrycka exakt vad som float är. 1738 01:23:10,690 --> 01:23:13,240 >> LAUREN CARVALHOS: Vi har ett ändligt antal bitar, vilket innebär att inte 1739 01:23:13,240 --> 01:23:17,910 varje decimaltal kommer att bli kunna representeras exakt. 1740 01:23:17,910 --> 01:23:24,910 Och så i det här exemplet, om vi skriva ut 0.1, är vi nu utskrift 1741 01:23:24,910 --> 01:23:26,475 ut 20 platser. 1742 01:23:26,475 --> 01:23:30,250 >> LUCAS FREITAS: Precis som jag berättade ni, kan ni sätta någon siffra. 1743 01:23:30,250 --> 01:23:36,520 Men om du bara gjorde de två platser, du skulle få 0,10, men om du sätter 20 1744 01:23:36,520 --> 01:23:43,630 ställen, det kommer att visa dig en massa av beror på att detta är vad du kan sätta 1745 01:23:43,630 --> 01:23:45,720 i minnet, eller hur? 1746 01:23:45,720 --> 01:23:48,800 >> Men just här, upp till 0, och sedan bara lägga den en 1747 01:23:48,800 --> 01:23:50,030 gäng slumptal. 1748 01:23:50,030 --> 01:23:52,590 Det är ungefär som en del - 1749 01:23:52,590 --> 01:23:56,190 >> LAUREN CARVALHO: Det beror på att vi är inte kunna representera denna decimal 1750 01:23:56,190 --> 01:23:58,320 exakt med antalet bitar som vi har. 1751 01:23:58,320 --> 01:23:59,730 >> LUCAS FREITAS: Och sedan Datorn är i grunden 1752 01:23:59,730 --> 01:24:01,470 vilket ger dig en papperskorg nummer. 1753 01:24:01,470 --> 01:24:04,530 Detta är faktiskt inte värdet av antalet. 1754 01:24:04,530 --> 01:24:08,242 >> PUBLIK: Det är så nära som det kan få [OHÖRBAR] 1755 01:24:08,242 --> 01:24:09,613 med hjälp av [OHÖRBAR]. 1756 01:24:09,613 --> 01:24:12,685 1757 01:24:12,685 --> 01:24:18,830 >> LAUREN CARVALHO: Så innebörden av detta är att låt oss säga att i stället för 1758 01:24:18,830 --> 01:24:27,680 vara 0.100014, vad som helst, tänk om det var 0,0999 - 1759 01:24:27,680 --> 01:24:30,470 bra, OK. 1760 01:24:30,470 --> 01:24:38,280 Låt oss låtsas att det faktiska svaret till detta var 0,9999999. 1761 01:24:38,280 --> 01:24:40,740 Det är väldigt nära 1, men det är inte precis 1. 1762 01:24:40,740 --> 01:24:42,840 Det är 0,99999. 1763 01:24:42,840 --> 01:24:48,140 >> Detta innebär att om jag tar det 0,999, och jag kastade den till en int, jag får 0. 1764 01:24:48,140 --> 01:24:49,460 Jag får inte 1. 1765 01:24:49,460 --> 01:24:53,050 >> LUCAS FREITAS: Därför kom ihåg, gjutning från float till int, du bara 1766 01:24:53,050 --> 01:24:54,880 ignorera alla decimaler. 1767 01:24:54,880 --> 01:24:56,400 Du ignorera bara dem. 1768 01:24:56,400 --> 01:25:00,170 Det finns inget sådant som avrundning eller kör ner när du typecast. 1769 01:25:00,170 --> 01:25:03,310 Faktiskt, det är denna funktion som gör avrundning, vilket är mycket 1770 01:25:03,310 --> 01:25:08,840 viktigt, men du tror bara att när du gör type-casting, det är bara 1771 01:25:08,840 --> 01:25:09,720 kommer att radera allt. 1772 01:25:09,720 --> 01:25:13,970 Så även om du har 0,99999, det kommer att bara ge 0 om du typecast 1773 01:25:13,970 --> 01:25:14,800 [OHÖRBAR] ett heltal. 1774 01:25:14,800 --> 01:25:17,480 >> LAUREN CARVALHO: Så bara vara riktigt medvetna för flyttal i precision, 1775 01:25:17,480 --> 01:25:20,410 speciellt när du börjar använda flottar i Pset1. 1776 01:25:20,410 --> 01:25:22,790 Men promenad genom bör varna dig om det också. 1777 01:25:22,790 --> 01:25:26,100 >> LUCAS FREITAS: Och egentligen är det verkligen hårt, till exempel, om jag gjorde 1778 01:25:26,100 --> 01:25:31,570 float svar en motsvarande 1,0 över 10, och sedan flyta svar två 1779 01:25:31,570 --> 01:25:35,540 lika med 10,0 över 100,0. 1780 01:25:35,540 --> 01:25:36,890 De är lika många, eller hur? 1781 01:25:36,890 --> 01:25:38,540 0.1, eller hur? 1782 01:25:38,540 --> 01:25:41,700 1 över 10 eller 10 över 100. 1783 01:25:41,700 --> 01:25:46,360 Men nu om jag försöker se jämlikhet, som om svaret 1 är lika med svar 2, 1784 01:25:46,360 --> 01:25:49,300 kanske det inte faktiskt kommer vara samma sak. 1785 01:25:49,300 --> 01:25:50,720 Så flyter är ungefär som det. 1786 01:25:50,720 --> 01:25:51,970 De är som att göra jämställdheten. 1787 01:25:51,970 --> 01:25:55,136