1 00:00:07,090 --> 00:00:07,370 [Powered by Google Translate] Vipul Shekhawat: Hej. 2 00:00:07,370 --> 00:00:09,410 I denne video vil jeg være at indføre dig til en af ​​de mest 3 00:00:09,410 --> 00:00:11,260 grundlæggende begreber i logik og 4 00:00:11,260 --> 00:00:13,880 programmering, boolesk værdi. 5 00:00:13,880 --> 00:00:16,210 Hvis du er nysgerrig navnet, booleske værdier og 6 00:00:16,210 --> 00:00:19,440 betingelser er opkaldt efter George Boole, en 19. århundrede 7 00:00:19,440 --> 00:00:22,030 matematiker, som pioner hvad der nu kaldes Boolesk 8 00:00:22,030 --> 00:00:23,980 logik, som er baseret i gruppering og 9 00:00:23,980 --> 00:00:26,030 sammenligning af booleske værdier. 10 00:00:26,030 --> 00:00:28,250 >> Så hvad er en boolesk værdi? 11 00:00:28,250 --> 00:00:30,920 En boolesk værdi er en variabel, der bare har to mulige 12 00:00:30,920 --> 00:00:33,710 forhold, sandt og falsk. 13 00:00:33,710 --> 00:00:35,380 Du kan tænke på det som en lyskontakt. 14 00:00:35,380 --> 00:00:38,530 Det kan enten være tændt eller slukket, sandt eller falsk. 15 00:00:38,530 --> 00:00:41,880 Tilsvarende kan binære tal være enten en eller nul, hvilket 16 00:00:41,880 --> 00:00:45,680 er analog med det samme, sande eller falske. 17 00:00:45,680 --> 00:00:46,840 Enkel, right? 18 00:00:46,840 --> 00:00:48,750 Begrebet en boolesk variabel er let at 19 00:00:48,750 --> 00:00:51,720 forstå, men de måder, hvorpå du kan manipulere og 20 00:00:51,720 --> 00:00:54,570 kombinere dem giver mulighed for langt større kompleksitet. 21 00:00:54,570 --> 00:00:57,030 Ud over de to grundlæggende booleske værdier, 22 00:00:57,030 --> 00:00:59,350 der er mange booleske operatorer, som kan kombinere to 23 00:00:59,350 --> 00:01:01,760 Booleske værdier til en enkelt. 24 00:01:01,760 --> 00:01:03,540 >> To af de mest basale, men vigtigst 25 00:01:03,540 --> 00:01:06,570 operatører, er AND og OR. 26 00:01:06,570 --> 00:01:09,950 De OG operatør resulterer i en værdi på kun sandt, hvis begge 27 00:01:09,950 --> 00:01:14,630 de værdier, det tager, er sandt, så falsk og sandt er falsk. 28 00:01:14,630 --> 00:01:17,540 Ligeledes falsk OG falsk er falsk. 29 00:01:17,540 --> 00:01:21,080 Eneste sande og ægte lig sandt. 30 00:01:21,080 --> 00:01:24,050 Operatoren OR resulterer i værdien af ​​sand, hvis en af 31 00:01:24,050 --> 00:01:25,620 værdier, det tager, er sande. 32 00:01:25,620 --> 00:01:30,460 Så falsk eller falsk er falsk, men sandt eller falsk, er sandt, og 33 00:01:30,460 --> 00:01:33,710 Sandt eller sand er også sandt. 34 00:01:33,710 --> 00:01:36,560 Operatoren NOT simpelthen tager en boolesk variabel og giver 35 00:01:36,560 --> 00:01:37,830 man det modsatte af det. 36 00:01:37,830 --> 00:01:40,950 Så sandt bliver falsk og falsk bliver sandt. 37 00:01:40,950 --> 00:01:43,130 Hvis du lægger det hele sammen, variable med 38 00:01:43,130 --> 00:01:46,320 erhvervsdrivende, skal du oprette en boolsk udtryk. 39 00:01:46,320 --> 00:01:48,550 >> Lad os nu se på et eksempel på nesting disse booleske 40 00:01:48,550 --> 00:01:49,950 udtryk. 41 00:01:49,950 --> 00:01:51,840 Kan du huske rækkefølgen af ​​operationer? 42 00:01:51,840 --> 00:01:54,700 Som med numre, kan booleske udtryk grupperes efter 43 00:01:54,700 --> 00:01:56,270 bruge parenteser. 44 00:01:56,270 --> 00:02:00,150 Så der er grundlæggende tre udtryk 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 finde ud af værdierne af disse ved at se på 47 00:02:07,080 --> 00:02:09,020 inde og arbejde vores vej ud. 48 00:02:09,020 --> 00:02:12,850 Så lad os antage x er sandt, y er sandt, og z er også sandt. 49 00:02:12,850 --> 00:02:15,270 Hvad ville IKKE z evalueres til? 50 00:02:15,270 --> 00:02:20,970 Da vi starter med sand, ville IKKE z simpelthen være falsk. 51 00:02:20,970 --> 00:02:26,230 Så nu har vi falske eller y. 52 00:02:26,230 --> 00:02:29,740 Hvis man ser på toppen, kan du se, at y er sandt, Y eller falsk 53 00:02:29,740 --> 00:02:32,870 ville stadig bare være sandt. 54 00:02:32,870 --> 00:02:37,580 Endelig har vi, har x og sande. 55 00:02:37,580 --> 00:02:39,300 Så hvad er x og sandt? 56 00:02:39,300 --> 00:02:42,590 x er sand og sand er også rigtigt, så det hele 57 00:02:42,590 --> 00:02:45,070 evalueres til sand. 58 00:02:45,070 --> 00:02:47,270 >> Næste, lad os se på, hvordan disse boolske udtryk kan 59 00:02:47,270 --> 00:02:49,890 faktisk anvendes i et programmeringssprog. 60 00:02:49,890 --> 00:02:52,900 I C, er syntaksen for booleske operationer en smule anderledes 61 00:02:52,900 --> 00:02:55,520 fra ordene og, eller og ikke. 62 00:02:55,520 --> 00:02:57,210 Lad os dække syntaksen. 63 00:02:57,210 --> 00:03:00,510 For at bruge OG operatør, vi skriver en dobbelt-tegn. 64 00:03:00,510 --> 00:03:03,620 Operatoren OR er en dobbelt rørledning karakter. 65 00:03:03,620 --> 00:03:05,780 Det er den lige lodret linje, som du kan sandsynligvis 66 00:03:05,780 --> 00:03:09,070 finde over Enter tasterne på tastaturet. 67 00:03:09,070 --> 00:03:12,550 Og operatoren NOT er simpelthen et udråbstegn. 68 00:03:12,550 --> 00:03:15,550 Så for at omskrive det udtryk, vi havde før, vi ville bare 69 00:03:15,550 --> 00:03:27,010 Skriv dette x && y | |! z. 70 00:03:27,010 --> 00:03:29,250 Det tager bare præcis, hvad vi havde før og dreje 71 00:03:29,250 --> 00:03:31,870 det ind i C-syntaks. 72 00:03:31,870 --> 00:03:34,370 >> Nu da vi har oversat vores Boolesk udtryk i kode, 73 00:03:34,370 --> 00:03:36,160 hvordan får vi rent faktisk bruger det? 74 00:03:36,160 --> 00:03:38,170 Lad os sige, at vi har noget kode, der kun udføres, hvis en 75 00:03:38,170 --> 00:03:40,330 vis udtryk er sandt. 76 00:03:40,330 --> 00:03:42,750 Til dette formål, stort set alle programmeringssprog 77 00:03:42,750 --> 00:03:45,190 understøtte hvis betingelse. 78 00:03:45,190 --> 00:03:47,870 Lad os sige, at vi har en boolesk variabel, x, og vi vil have nogle 79 00:03:47,870 --> 00:03:50,850 kode for at udføre, hvis x er sand. 80 00:03:50,850 --> 00:03:54,900 Vi ville simpelthen skrive ordet, hvis sætte parenteser, og læg 81 00:03:54,900 --> 00:03:57,800 det booleske udtryk inden for disse parentes. 82 00:03:57,800 --> 00:03:59,680 Efter at wrap vi den kode, vi ønsker at 83 00:03:59,680 --> 00:04:01,080 eksekvere i krøllede parenteser. 84 00:04:07,160 --> 00:04:08,150 Hvad hvis der er noget kode, du gerne vil 85 00:04:08,150 --> 00:04:10,260 udføre, hvis x ikke er sandt? 86 00:04:10,260 --> 00:04:13,310 Du skal blot skrive ordet ellers efter hvis erklæring, wrap 87 00:04:13,310 --> 00:04:16,930 den anden kode i krøllede parenteser, og derefter denne kode vil 88 00:04:16,930 --> 00:04:18,399 udføre, hvis x ikke er sandt. 89 00:04:26,640 --> 00:04:29,840 >> En anden nyttig sprog konstruktion er ellers hvis. 90 00:04:29,840 --> 00:04:32,210 Antag der er to Booleans du gerne vil overveje, 91 00:04:32,210 --> 00:04:34,330 lad os kalde dem x og y. 92 00:04:34,330 --> 00:04:37,340 Vi erklærer disse variabler til at være sandt og falsk. 93 00:04:37,340 --> 00:04:40,540 Hvis x og y er sande, du udfører den første blok af 94 00:04:40,540 --> 00:04:42,630 kode inden for disse krøllede parenteser. 95 00:04:42,630 --> 00:04:46,470 Else, hvis x eller y er sande, du udfører den næste blok af 96 00:04:46,470 --> 00:04:50,590 kode, og ellers kan du udføre den sidste blok af kode. 97 00:04:50,590 --> 00:04:52,650 Arbejde med booleske værdier som dette er nyttigt, men 98 00:04:52,650 --> 00:04:55,750 du virkelig kun begrænset til nogle få betingelser. 99 00:04:55,750 --> 00:04:58,400 Booleans kan blive meget mere kraftfuld, når du indfører 100 00:04:58,400 --> 00:04:59,900 sammenligninger. 101 00:04:59,900 --> 00:05:01,280 Disse er måder at sammenligne værdier, der er 102 00:05:01,280 --> 00:05:03,300 oprindeligt ikke Boolean. 103 00:05:03,300 --> 00:05:06,060 For at se om to værdier er ens, kan du bruge lig 104 00:05:06,060 --> 00:05:09,340 lig, hvilket er sandt, hvis de er lige og falsk, hvis 105 00:05:09,340 --> 00:05:10,530 de er ikke. 106 00:05:10,530 --> 00:05:15,360 Andre almindelige sammenligninger er mindre end, større end, mindre 107 00:05:15,360 --> 00:05:19,740 end eller lig med og større end eller lig med. 108 00:05:19,740 --> 00:05:22,220 >> Alt, hvad jeg har dækket hidtil har været temmelig abstrakt, så 109 00:05:22,220 --> 00:05:24,320 Lad os indføre disse sammenligninger i en sidste 110 00:05:24,320 --> 00:05:25,850 konkret eksempel. 111 00:05:25,850 --> 00:05:27,130 Antag at der er to variable, 112 00:05:27,130 --> 00:05:29,430 temperatur og isHungry. 113 00:05:29,430 --> 00:05:31,560 Temperaturen er et decimaltal, så den kan få 114 00:05:31,560 --> 00:05:33,090 decimaler. 115 00:05:33,090 --> 00:05:35,440 Du programmerer et meget enkelt program, som fortæller 116 00:05:35,440 --> 00:05:38,270 nogen, hvad at spise afhængig af temperaturen. 117 00:05:38,270 --> 00:05:41,010 Hvis du er sulten, og og temperaturen er større end eller 118 00:05:41,010 --> 00:05:45,060 svarende til 100, kan du udskrive spise is. 119 00:05:45,060 --> 00:05:48,370 Else, hvis du er sulten og og temperaturen er lavere end 120 00:05:48,370 --> 00:05:52,420 eller lig med nul, kan du printf ("spise krydret mad"). 121 00:05:52,420 --> 00:05:55,200 Endelig, hvis du ikke er sulten overhovedet, kan du udskrive "ikke 122 00:05:55,200 --> 00:05:56,710 spise noget. " 123 00:05:56,710 --> 00:06:00,130 >> Jeg er Vipul Shekhawat, og dette er CS50.