1 00:00:07,090 --> 00:00:07,370 [Powered by Google Translate] Vipul Shekhawat: Hei. 2 00:00:07,370 --> 00:00:09,410 I denne videoen skal jeg introdusere deg til en av de mest 3 00:00:09,410 --> 00:00:11,260 grunnleggende begreper i logikk og 4 00:00:11,260 --> 00:00:13,880 programmering, den boolske verdien. 5 00:00:13,880 --> 00:00:16,210 Hvis du er nysgjerrig på om navnet, boolske verdier og 6 00:00:16,210 --> 00:00:19,440 forholdene er oppkalt etter George Boole, en 19. århundre 7 00:00:19,440 --> 00:00:22,030 matematiker som pioner det som nå kalles Boolsk 8 00:00:22,030 --> 00:00:23,980 logikk, som er basert etter gruppering og 9 00:00:23,980 --> 00:00:26,030 sammenligne boolske verdier. 10 00:00:26,030 --> 00:00:28,250 >> Så hva er en boolsk verdi? 11 00:00:28,250 --> 00:00:30,920 En boolsk verdi er en variabel som bare har to mulige 12 00:00:30,920 --> 00:00:33,710 forhold, sant og usant. 13 00:00:33,710 --> 00:00:35,380 Du kan tenke på det som en lysbryter. 14 00:00:35,380 --> 00:00:38,530 Det kan være enten på eller av, sant eller usant. 15 00:00:38,530 --> 00:00:41,880 Likeledes kan binære tall være enten en eller null, som 16 00:00:41,880 --> 00:00:45,680 er analog til det samme, sant eller usant. 17 00:00:45,680 --> 00:00:46,840 Enkelt, ikke sant? 18 00:00:46,840 --> 00:00:48,750 Konseptet med en boolsk variabel er lett å 19 00:00:48,750 --> 00:00:51,720 forstå, men de måtene du kan manipulere og 20 00:00:51,720 --> 00:00:54,570 kombinere dem åpner for mye av større kompleksitet. 21 00:00:54,570 --> 00:00:57,030 I tillegg til de to fundamentale boolske verdier, 22 00:00:57,030 --> 00:00:59,350 det er mange boolske operatorer som kan kombinere to 23 00:00:59,350 --> 00:01:01,760 Boolske verdier i en eneste en. 24 00:01:01,760 --> 00:01:03,540 >> To av de mest grunnleggende, men det viktigste 25 00:01:03,540 --> 00:01:06,570 operatører, er AND og OR. 26 00:01:06,570 --> 00:01:09,950 AND-operatoren resulterer i en verdi på sant bare hvis begge 27 00:01:09,950 --> 00:01:14,630 verdiene som trengs er sant, er så falsk og ekte falske. 28 00:01:14,630 --> 00:01:17,540 Likeledes er falsk og false false. 29 00:01:17,540 --> 00:01:21,080 Eneste sanne og ekte lik sant. 30 00:01:21,080 --> 00:01:24,050 OR-operatoren resulterer i verdien av ekte hvis en av 31 00:01:24,050 --> 00:01:25,620 verdier det tar er sanne. 32 00:01:25,620 --> 00:01:30,460 Så falsk eller falsk er falsk, men sant eller usant er sant, og 33 00:01:30,460 --> 00:01:33,710 Sant eller sant er også sant. 34 00:01:33,710 --> 00:01:36,560 NOT-operatoren bare tar en boolsk variabel og gir 35 00:01:36,560 --> 00:01:37,830 du det motsatte av det. 36 00:01:37,830 --> 00:01:40,950 Så sant blir falsk og usann blir sant. 37 00:01:40,950 --> 00:01:43,130 Hvis du putter hele greia sammen, variabler med 38 00:01:43,130 --> 00:01:46,320 operatører, oppretter du en boolsk uttrykk. 39 00:01:46,320 --> 00:01:48,550 >> La oss nå se på et eksempel på hekkende disse boolsk 40 00:01:48,550 --> 00:01:49,950 uttrykk. 41 00:01:49,950 --> 00:01:51,840 Husker du rekkefølgen av operasjoner? 42 00:01:51,840 --> 00:01:54,700 Som med tall, kan boolske uttrykk deles av 43 00:01:54,700 --> 00:01:56,270 bruke parentes. 44 00:01:56,270 --> 00:02:00,150 Så det er i utgangspunktet tre uttrykkene her, ikke z, y ELLER 45 00:02:00,150 --> 00:02:04,740 IKKE z, og x og y eller IKKE z. 46 00:02:04,740 --> 00:02:07,080 Vi kan finne ut verdiene av disse ved å se på 47 00:02:07,080 --> 00:02:09,020 innsiden og arbeider vei ut. 48 00:02:09,020 --> 00:02:12,850 Så la oss anta x er sant, er y sant, og z er også sant. 49 00:02:12,850 --> 00:02:15,270 Hva ville IKKE z vurdere til? 50 00:02:15,270 --> 00:02:20,970 Siden vi begynner med ekte, ville ikke z bare være falsk. 51 00:02:20,970 --> 00:02:26,230 Så nå har vi falsk eller y. 52 00:02:26,230 --> 00:02:29,740 Hvis du ser på toppen, kan du se at y er sant, Y eller falsk 53 00:02:29,740 --> 00:02:32,870 vil fortsatt bare være sant. 54 00:02:32,870 --> 00:02:37,580 Til slutt vi har x og sann. 55 00:02:37,580 --> 00:02:39,300 Så hva er x og sant? 56 00:02:39,300 --> 00:02:42,590 x er sant og ekte er også sant, så dette hele greia 57 00:02:42,590 --> 00:02:45,070 evalueres til sann. 58 00:02:45,070 --> 00:02:47,270 >> Deretter la oss se på hvordan disse boolske uttrykk kan 59 00:02:47,270 --> 00:02:49,890 faktisk brukes i et programmeringsspråk. 60 00:02:49,890 --> 00:02:52,900 I C, er syntaksen for boolske operasjoner litt annerledes 61 00:02:52,900 --> 00:02:55,520 fra ordene og, eller, og ikke. 62 00:02:55,520 --> 00:02:57,210 La oss dekke syntaksen. 63 00:02:57,210 --> 00:03:00,510 Hvis du vil bruke og operatør, skriver vi en dobbel-tegnet. 64 00:03:00,510 --> 00:03:03,620 OR-operatoren er en dobbel pipe line karakter. 65 00:03:03,620 --> 00:03:05,780 Dette er den rette vertikale linjen, som du kan sannsynligvis 66 00:03:05,780 --> 00:03:09,070 finne over Enter eller Retur tastene på tastaturet. 67 00:03:09,070 --> 00:03:12,550 Og NOT-operatoren er rett og slett et utropstegn. 68 00:03:12,550 --> 00:03:15,550 Så for å skrive om uttrykket vi hadde før, ville vi bare 69 00:03:15,550 --> 00:03:27,010 skrive denne x && y | |! z. 70 00:03:27,010 --> 00:03:29,250 Det er bare å ta nøyaktig hva vi hadde før, og slår 71 00:03:29,250 --> 00:03:31,870 den inn i C syntaks. 72 00:03:31,870 --> 00:03:34,370 >> Nå som vi har oversatt våre Boolsk uttrykk i koden, 73 00:03:34,370 --> 00:03:36,160 hvordan vi faktisk bruker det? 74 00:03:36,160 --> 00:03:38,170 La oss si at vi har noen kode som bare skal kjøre hvis en 75 00:03:38,170 --> 00:03:40,330 enkelt uttrykk er sant. 76 00:03:40,330 --> 00:03:42,750 For dette formålet, stort sett alle programmeringsspråk 77 00:03:42,750 --> 00:03:45,190 støtte hvis tilstanden. 78 00:03:45,190 --> 00:03:47,870 La oss si vi har en boolsk variabel, x, og vi ønsker noen 79 00:03:47,870 --> 00:03:50,850 kode for å utføre bare hvis x er sant. 80 00:03:50,850 --> 00:03:54,900 Vi ville bare skrive ordet hvis, sette parenteser og sette 81 00:03:54,900 --> 00:03:57,800 den boolske uttrykk innenfor disse parentes. 82 00:03:57,800 --> 00:03:59,680 Etter det, vikle vi koden vi ønsker å 83 00:03:59,680 --> 00:04:01,080 gjennomføre i klammeparentes. 84 00:04:07,160 --> 00:04:08,150 Hva om det er noen kode du ønsker å 85 00:04:08,150 --> 00:04:10,260 gjennomføre hvis x er ikke sant? 86 00:04:10,260 --> 00:04:13,310 Bare skrive ordet annet etter hvis setningen, wrap 87 00:04:13,310 --> 00:04:16,930 annen kode i klammeparentes, og da vil kode 88 00:04:16,930 --> 00:04:18,399 gjennomføre hvis x er ikke sant. 89 00:04:26,640 --> 00:04:29,840 >> En annen nyttig språk konstruere er annet hvis. 90 00:04:29,840 --> 00:04:32,210 Anta det er to boolske du ønsker å vurdere, 91 00:04:32,210 --> 00:04:34,330 la oss kalle dem x og y. 92 00:04:34,330 --> 00:04:37,340 Vi erklærer disse variablene til å være sant og usant. 93 00:04:37,340 --> 00:04:40,540 Hvis x og y er sant, utføre du den første blokken av 94 00:04:40,540 --> 00:04:42,630 kode i disse klammeparentes. 95 00:04:42,630 --> 00:04:46,470 Else if x eller y er sant, utføre deg neste blokk med 96 00:04:46,470 --> 00:04:50,590 kode, og annet du utføre den siste blokken med kode. 97 00:04:50,590 --> 00:04:52,650 Arbeide med boolske verdier som dette er nyttig, men 98 00:04:52,650 --> 00:04:55,750 du er egentlig bare begrenset til noen få forhold. 99 00:04:55,750 --> 00:04:58,400 Boolske kan bli mye kraftigere når du introdusere 100 00:04:58,400 --> 00:04:59,900 sammenligninger. 101 00:04:59,900 --> 00:05:01,280 Dette er måter å sammenligne verdier som er 102 00:05:01,280 --> 00:05:03,300 opprinnelig ikke Boolsk. 103 00:05:03,300 --> 00:05:06,060 For å se om to verdier er like, kan du bruke lik 104 00:05:06,060 --> 00:05:09,340 likemenn, som er sant hvis de er likeverdige og usann hvis 105 00:05:09,340 --> 00:05:10,530 de ikke er. 106 00:05:10,530 --> 00:05:15,360 Andre vanlige sammenligninger er mindre enn, større enn, mindre 107 00:05:15,360 --> 00:05:19,740 enn eller lik, og større enn eller lik. 108 00:05:19,740 --> 00:05:22,220 >> Alt jeg har dekket så langt har vært ganske abstrakt, så 109 00:05:22,220 --> 00:05:24,320 la oss introdusere disse sammenligningene i en siste 110 00:05:24,320 --> 00:05:25,850 konkret eksempel. 111 00:05:25,850 --> 00:05:27,130 Anta det er to variabler, 112 00:05:27,130 --> 00:05:29,430 temperatur og isHungry. 113 00:05:29,430 --> 00:05:31,560 Temperatur er et flyttall, slik at den kan ha 114 00:05:31,560 --> 00:05:33,090 desimaler. 115 00:05:33,090 --> 00:05:35,440 Du programmerer et veldig enkelt program som forteller 116 00:05:35,440 --> 00:05:38,270 noen hva du spiser avhengig av temperaturen. 117 00:05:38,270 --> 00:05:41,010 Hvis du er sulten, og og temperaturen er høyere enn eller 118 00:05:41,010 --> 00:05:45,060 lik 100, kan du skrive ut spise iskrem. 119 00:05:45,060 --> 00:05:48,370 Annet hvis du er sulten, og og temperaturen er mindre enn 120 00:05:48,370 --> 00:05:52,420 eller lik null, kan du printf ("spise krydret mat"). 121 00:05:52,420 --> 00:05:55,200 Til slutt, hvis du ikke er sulten i det hele tatt, kan du skrive "ikke 122 00:05:55,200 --> 00:05:56,710 spise noe. " 123 00:05:56,710 --> 00:06:00,130 >> Jeg er Vipul Shekhawat, og dette er CS50.