1 00:00:07,090 --> 00:00:07,370 [Powered by Google Translate] Vipul Shekhawat: Hi. 2 00:00:07,370 --> 00:00:09,410 In hierdie video ek sal die invoering van jou na een van die mees 3 00:00:09,410 --> 00:00:11,260 fundamentele konsepte in die logika en 4 00:00:11,260 --> 00:00:13,880 programmering, die Boole-waarde. 5 00:00:13,880 --> 00:00:16,210 As jy nuuskierig is oor die naam, Boole-waardes en 6 00:00:16,210 --> 00:00:19,440 voorwaardes is vernoem na George Boole, 'n 19de eeu 7 00:00:19,440 --> 00:00:22,030 wiskundige wat baanbreker in wat nou bekend staan ​​Boole 8 00:00:22,030 --> 00:00:23,980 logika, wat gebaseer is deur groepering en 9 00:00:23,980 --> 00:00:26,030 Boole-waardes te vergelyk. 10 00:00:26,030 --> 00:00:28,250 >> So, wat is 'n Boolese waarde? 11 00:00:28,250 --> 00:00:30,920 'N Boolese waarde is 'n veranderlike wat net twee moontlike 12 00:00:30,920 --> 00:00:33,710 voorwaardes, ware en valse. 13 00:00:33,710 --> 00:00:35,380 Jy kan dink aan dit as 'n ligskakelaar. 14 00:00:35,380 --> 00:00:38,530 Dit kan wees op of buite, waar of vals is. 15 00:00:38,530 --> 00:00:41,880 Binêre getalle Net so, kan een of nul wees, wat 16 00:00:41,880 --> 00:00:45,680 is analoog aan dieselfde ding, waar of onwaar. 17 00:00:45,680 --> 00:00:46,840 Eenvoudig, reg? 18 00:00:46,840 --> 00:00:48,750 Die konsep van 'n Boole-veranderlike is maklik om te 19 00:00:48,750 --> 00:00:51,720 verstaan, maar die maniere wat jy kan manipuleer en 20 00:00:51,720 --> 00:00:54,570 kombineer hulle voorsiening maak vir 'n groot gedeelte van 'n groter kompleksiteit. 21 00:00:54,570 --> 00:00:57,030 In bykomend tot die twee fundamentele Boole-waardes, 22 00:00:57,030 --> 00:00:59,350 daar is baie Boolese operatore wat kan kombineer twee 23 00:00:59,350 --> 00:01:01,760 Boole-waardes in 'n enkele een. 24 00:01:01,760 --> 00:01:03,540 >> Twee van die mees basiese, maar die belangrikste 25 00:01:03,540 --> 00:01:06,570 operateurs, EN en OF. 26 00:01:06,570 --> 00:01:09,950 Die operateur AND resultate in 'n waarde van ware slegs indien beide van 27 00:01:09,950 --> 00:01:14,630 die waardes wat dit neem waar is, so vals en ware is vals. 28 00:01:14,630 --> 00:01:17,540 Net so, vals en onwaar is vals. 29 00:01:17,540 --> 00:01:21,080 Enigste ware en ware gelykes waar. 30 00:01:21,080 --> 00:01:24,050 Die OR-operator resultate in die waarde van die ware as een van die 31 00:01:24,050 --> 00:01:25,620 waardes wat dit neem is waar. 32 00:01:25,620 --> 00:01:30,460 So vals of onwaar is vals, maar WAAR of ONWAAR is waar, en 33 00:01:30,460 --> 00:01:33,710 WAAR of waar is, is ook waar. 34 00:01:33,710 --> 00:01:36,560 Die operateur NOT neem net 'n Boole-veranderlike en gee 35 00:01:36,560 --> 00:01:37,830 jy die teenoorgestelde van dit. 36 00:01:37,830 --> 00:01:40,950 So waar valse en valse waar word. 37 00:01:40,950 --> 00:01:43,130 As jy die hele ding saam, veranderlikes met 38 00:01:43,130 --> 00:01:46,320 operateurs, jy skep 'n Boole-uitdrukking. 39 00:01:46,320 --> 00:01:48,550 >> Nou laat ons kyk na 'n voorbeeld van die nes hierdie Boolean 40 00:01:48,550 --> 00:01:49,950 uitdrukkings. 41 00:01:49,950 --> 00:01:51,840 Onthou jy die volgorde van bewerkings? 42 00:01:51,840 --> 00:01:54,700 Soos met getalle, kan Boolse uitdrukkings gegroepeer word deur 43 00:01:54,700 --> 00:01:56,270 die gebruik van hakies. 44 00:01:56,270 --> 00:02:00,150 So daar is basies drie uitdrukkings hier nie z, y of 45 00:02:00,150 --> 00:02:04,740 NIE z en x en y OF NIE z. 46 00:02:04,740 --> 00:02:07,080 Ons kan uit te vind die waardes van hierdie deur te kyk na die 47 00:02:07,080 --> 00:02:09,020 binne en werk ons ​​pad uit. 48 00:02:09,020 --> 00:02:12,850 So laat ons veronderstel x is waar, y is waar, en z is ook waar. 49 00:02:12,850 --> 00:02:15,270 Wat z sal NIE evalueer? 50 00:02:15,270 --> 00:02:20,970 Sedert ons begin met ware, nie z sou eenvoudig vals. 51 00:02:20,970 --> 00:02:26,230 So nou het ons vals of y. 52 00:02:26,230 --> 00:02:29,740 As jy kyk op die top, kan jy sien dat y is waar, y of ONWAAR 53 00:02:29,740 --> 00:02:32,870 sou nog net waar te wees. 54 00:02:32,870 --> 00:02:37,580 Laastens het ons x en ware. 55 00:02:37,580 --> 00:02:39,300 So, wat is X en waar? 56 00:02:39,300 --> 00:02:42,590 x is waar en waar is, is ook waar, so hierdie hele ding 57 00:02:42,590 --> 00:02:45,070 evalueer na Waar. 58 00:02:45,070 --> 00:02:47,270 >> Volgende, laat ons kyk na hoe hierdie Boolse uitdrukkings kan 59 00:02:47,270 --> 00:02:49,890 eintlik gebruik word in 'n programmeertaal. 60 00:02:49,890 --> 00:02:52,900 In C, die sintaksis vir Boole-bedrywighede is 'n bietjie anders 61 00:02:52,900 --> 00:02:55,520 van die woorde, en of en nie. 62 00:02:55,520 --> 00:02:57,210 Kom ons dek die sintaks. 63 00:02:57,210 --> 00:03:00,510 Die operateur AND te gebruik, skryf ons 'n dubbele ampersand. 64 00:03:00,510 --> 00:03:03,620 Die OR-operator is 'n dubbel pyp lyn karakter. 65 00:03:03,620 --> 00:03:05,780 Dit is die reguit vertikale lyn wat jy kan waarskynlik 66 00:03:05,780 --> 00:03:09,070 vind bo die Enter of sleutels op u sleutelbord. 67 00:03:09,070 --> 00:03:12,550 En die operateur is NIE net 'n uitroepteken. 68 00:03:12,550 --> 00:03:15,550 So die uitdrukking wat ons het, ons sou net te herskryf 69 00:03:15,550 --> 00:03:27,010 skryf hierdie x && y | | z. 70 00:03:27,010 --> 00:03:29,250 Dit is net presies wat ons gehad het voor en draai 71 00:03:29,250 --> 00:03:31,870 dit in C sintaksis. 72 00:03:31,870 --> 00:03:34,370 >> Nou dat ons het ons Boole-uitdrukking vertaal in die kode, 73 00:03:34,370 --> 00:03:36,160 hoe gebruik ons ​​dit eintlik? 74 00:03:36,160 --> 00:03:38,170 Kom ons sê ons het 'n paar kode wat behoort slegs te voer as 'n 75 00:03:38,170 --> 00:03:40,330 sekere uitdrukking waar is. 76 00:03:40,330 --> 00:03:42,750 Vir hierdie doel, pretty much alle programmeringstale 77 00:03:42,750 --> 00:03:45,190 ondersteun die indien toestand. 78 00:03:45,190 --> 00:03:47,870 Kom ons sê ons het 'n Boolese veranderlike, x, en ons wil 'n paar 79 00:03:47,870 --> 00:03:50,850 kode uit te voer slegs as x is waar. 80 00:03:50,850 --> 00:03:54,900 Ons wil net skryf die woord indien sit hakies, en 81 00:03:54,900 --> 00:03:57,800 die Boole-uitdrukking binne daardie hakies. 82 00:03:57,800 --> 00:03:59,680 Daarna sal ons draai die kode wat ons wil 83 00:03:59,680 --> 00:04:01,080 voer in krullerige draadjies. 84 00:04:07,160 --> 00:04:08,150 Wat as daar is 'n paar kode wat jy wil 85 00:04:08,150 --> 00:04:10,260 voer as x is nie waar nie? 86 00:04:10,260 --> 00:04:13,310 Skryf slegs die woord anders na die IF-stelling, wrap 87 00:04:13,310 --> 00:04:16,930 die ander kode kode tussen krulhakies, en dan dat die kode 88 00:04:16,930 --> 00:04:18,399 voer as x is nie waar nie. 89 00:04:26,640 --> 00:04:29,840 >> Nog 'n nuttige taal konstruk is anders as. 90 00:04:29,840 --> 00:04:32,210 Gestel daar is twee Booleans wat jy wil om te oorweeg, 91 00:04:32,210 --> 00:04:34,330 Kom ons noem dit x en y. 92 00:04:34,330 --> 00:04:37,340 Ons verklaar om hierdie veranderlikes te ware en valse. 93 00:04:37,340 --> 00:04:40,540 As x en y is waar, jy voer die eerste blok van 94 00:04:40,540 --> 00:04:42,630 kode binne daardie kode tussen krulhakies. 95 00:04:42,630 --> 00:04:46,470 Anders as x of y is waar, jy voer die volgende blok van 96 00:04:46,470 --> 00:04:50,590 kode, en die anders wat jy voer die laaste blok van die kode. 97 00:04:50,590 --> 00:04:52,650 Werk met Boole-waardes soos hierdie is nuttig, maar 98 00:04:52,650 --> 00:04:55,750 jy regtig net beperk tot 'n paar voorwaardes. 99 00:04:55,750 --> 00:04:58,400 Booleans kan word veel meer kragtige wanneer jy voer 100 00:04:58,400 --> 00:04:59,900 vergelykings. 101 00:04:59,900 --> 00:05:01,280 Dit is maniere om waardes wat te vergelyk 102 00:05:01,280 --> 00:05:03,300 nie oorspronklik Boole. 103 00:05:03,300 --> 00:05:06,060 Om te sien of twee waardes dieselfde is, kan jy gelyk aan 104 00:05:06,060 --> 00:05:09,340 gelyk is aan wat waar is as hulle gelyke en vals as 105 00:05:09,340 --> 00:05:10,530 hulle is nie. 106 00:05:10,530 --> 00:05:15,360 Ander algemene vergelykings is minder as, groter as, minder 107 00:05:15,360 --> 00:05:19,740 as of gelyk aan, en groter as of gelyk aan. 108 00:05:19,740 --> 00:05:22,220 >> Alles wat ek tot dusver gedek is redelik abstrakte, so 109 00:05:22,220 --> 00:05:24,320 Kom ons stel hierdie vergelykings in 'n laaste 110 00:05:24,320 --> 00:05:25,850 konkrete voorbeeld. 111 00:05:25,850 --> 00:05:27,130 Gestel daar is twee veranderlikes, 112 00:05:27,130 --> 00:05:29,430 temperatuur en isHungry. 113 00:05:29,430 --> 00:05:31,560 Temperatuur is 'n drywende punt nommer, so dit kan 114 00:05:31,560 --> 00:05:33,090 desimale plekke. 115 00:05:33,090 --> 00:05:35,440 Jy programmering 'n baie eenvoudige aansoek wat vertel 116 00:05:35,440 --> 00:05:38,270 iemand wat om te eet, afhangende van die temperatuur. 117 00:05:38,270 --> 00:05:41,010 As jy honger is, EN die temperatuur is groter as of 118 00:05:41,010 --> 00:05:45,060 gelyk is aan 100, kan jy druk roomys eet. 119 00:05:45,060 --> 00:05:48,370 Anders as jy honger en en die temperatuur is minder as 120 00:05:48,370 --> 00:05:52,420 of gelyk aan nul, kan jy printf ("gekruide kos eet"). 121 00:05:52,420 --> 00:05:55,200 Ten slotte, as jy nie honger is, kan jy druk nie "nie 122 00:05:55,200 --> 00:05:56,710 eet nie. " 123 00:05:56,710 --> 00:06:00,130 >> Ek Vipul Shekhawat, en dit is CS50.