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 En ĉi tiu video mi estos enkonduki vin al unu el la plej 3 00:00:09,410 --> 00:00:11,260 fundamentaj konceptoj en logiko kaj 4 00:00:11,260 --> 00:00:13,880 programado, la Bulea valoro. 5 00:00:13,880 --> 00:00:16,210 Se vi estas scivola pri la nomo, Bulea valoroj kaj 6 00:00:16,210 --> 00:00:19,440 kondiĉoj estas nomita post George Boole, la 19-a jarcento 7 00:00:19,440 --> 00:00:22,030 matematikisto kiu pioniris kion oni nun nomas Bulea 8 00:00:22,030 --> 00:00:23,980 logiko, kiu estas bazita per grupigo kaj 9 00:00:23,980 --> 00:00:26,030 kompari Bulea valoroj. 10 00:00:26,030 --> 00:00:28,250 >> Do kio estas Bulea valoro? 11 00:00:28,250 --> 00:00:30,920 Al Bulea valoro estas variablo kiu ĝuste havas du eblajn 12 00:00:30,920 --> 00:00:33,710 kondiĉoj, vera kaj malvera. 13 00:00:33,710 --> 00:00:35,380 Vi povas pensi pri tio kiel lumo ŝaltilon. 14 00:00:35,380 --> 00:00:38,530 Ĝi povas esti aŭ sur aŭ for, vera aŭ malvera. 15 00:00:38,530 --> 00:00:41,880 Simile, duumaj nombroj povas esti unu aŭ nulo, kio 16 00:00:41,880 --> 00:00:45,680 Estas analoga al la sama afero, vera aŭ malvera. 17 00:00:45,680 --> 00:00:46,840 Simpla, ĉu ne? 18 00:00:46,840 --> 00:00:48,750 La koncepto de Bulea variablo estas facile 19 00:00:48,750 --> 00:00:51,720 komprenas, sed la manieroj en kiuj vi povas manipuli kaj 20 00:00:51,720 --> 00:00:54,570 kombini ilin permesas multe de granda komplekseco. 21 00:00:54,570 --> 00:00:57,030 Krom la du fundamentajn Bulea valoroj, 22 00:00:57,030 --> 00:00:59,350 ekzistas multaj Bulea operatoroj kiuj povas kombini du 23 00:00:59,350 --> 00:01:01,760 Bulea valoroj en sola unu. 24 00:01:01,760 --> 00:01:03,540 >> Du el la plej baza, sed plej grava 25 00:01:03,540 --> 00:01:06,570 operatoroj, estas AND kaj OR. 26 00:01:06,570 --> 00:01:09,950 La KAJ operatoro rezultoj en valoro de veraj nur se ambaŭ 27 00:01:09,950 --> 00:01:14,630 la valoroj prenas estas veraj, do falsa KAJ vera estas falsa. 28 00:01:14,630 --> 00:01:17,540 Simile, falsaj KAJ falsa estas falsaj. 29 00:01:17,540 --> 00:01:21,080 Nur vera KAJ vera egalas vera. 30 00:01:21,080 --> 00:01:24,050 La OR operatoro rezultoj en la valoro de vera se iu el la 31 00:01:24,050 --> 00:01:25,620 valoroj prenas estas vera. 32 00:01:25,620 --> 00:01:30,460 Do falsa OR falsa estas malvera, sed vera OR falsa estas vera, kaj 33 00:01:30,460 --> 00:01:33,710 vera AŬ vera ankaŭ estas veraj. 34 00:01:33,710 --> 00:01:36,560 La NE operatoro simple prenas Bulea variablo kaj donas 35 00:01:36,560 --> 00:01:37,830 vi la malo de tio. 36 00:01:37,830 --> 00:01:40,950 Do vera igas falsa kaj falsaj iĝas vera. 37 00:01:40,950 --> 00:01:43,130 Se vi metas la tutan aferon kune, variablojn kun 38 00:01:43,130 --> 00:01:46,320 operatoroj, oni kreas Bulea esprimo. 39 00:01:46,320 --> 00:01:48,550 >> Nun ni rigardu ekzemplon de nestumado tiuj Bulea 40 00:01:48,550 --> 00:01:49,950 esprimoj. 41 00:01:49,950 --> 00:01:51,840 Ĉu vi memoras la ordo de operacioj? 42 00:01:51,840 --> 00:01:54,700 Kiel kun nombroj, bulea esprimoj povas esti grupita per 43 00:01:54,700 --> 00:01:56,270 uzante krampoj. 44 00:01:56,270 --> 00:02:00,150 Do estas esence tri esprimoj tie, NE z, y AŬ 45 00:02:00,150 --> 00:02:04,740 NE z, kaj x KAJ y AŬ NE z. 46 00:02:04,740 --> 00:02:07,080 Ni povas eltrovi la valoroj de tiuj por rigardi la 47 00:02:07,080 --> 00:02:09,020 ene kaj laboras niaj elirejo. 48 00:02:09,020 --> 00:02:12,850 Do ni supozu x estas vera, y estas vera, kaj z estas ankaŭ vera. 49 00:02:12,850 --> 00:02:15,270 Kion NE z taksi al? 50 00:02:15,270 --> 00:02:20,970 Ekde ni starti kun vera, NE z devus simple malvera. 51 00:02:20,970 --> 00:02:26,230 Do nun ni havas falsan AŬ y. 52 00:02:26,230 --> 00:02:29,740 Se vi rigardos supro, vi povas vidi ke y estas vera, y AŬ malvera 53 00:02:29,740 --> 00:02:32,870 estus ankoraŭ nur esti vera. 54 00:02:32,870 --> 00:02:37,580 Laste ni, havi x KAJ vera. 55 00:02:37,580 --> 00:02:39,300 Do kio estas x KAJ vera? 56 00:02:39,300 --> 00:02:42,590 x estas vera kaj vera estas ankaŭ vera, do ĉi tiu tuta afero 57 00:02:42,590 --> 00:02:45,070 taksas al vera. 58 00:02:45,070 --> 00:02:47,270 >> Tuj poste, ni rigardu kiel tiuj Bulea esprimoj povas 59 00:02:47,270 --> 00:02:49,890 efektive esti uzata en programlingvo. 60 00:02:49,890 --> 00:02:52,900 En C, la sintakson por Buleaj operacioj estas iom malsama 61 00:02:52,900 --> 00:02:55,520 de la vortoj kaj, aŭ, kaj ne. 62 00:02:55,520 --> 00:02:57,210 Ni kovri la sintakso. 63 00:02:57,210 --> 00:03:00,510 Por uzi la KAJ operatoro, ni skribi duoblan signo. 64 00:03:00,510 --> 00:03:03,620 La OR operatoro estas duopan linio karaktero. 65 00:03:03,620 --> 00:03:05,780 Ĉi tiu estas la rekta vertikala linio, kiun vi povas verŝajne 66 00:03:05,780 --> 00:03:09,070 trovi pli supre la Entajpu aŭ Reveno klavoj sur via klavaro. 67 00:03:09,070 --> 00:03:12,550 Kaj la NE operatoro estas simple ekkrion marko. 68 00:03:12,550 --> 00:03:15,550 Do por reverki la esprimon ni antaŭe, ni farus nur 69 00:03:15,550 --> 00:03:27,010 skribi ĉi x && y | |! z. 70 00:03:27,010 --> 00:03:29,250 Tio simple prenante ekzakte kion ni havis antaŭ kaj turnante 71 00:03:29,250 --> 00:03:31,870 gxin en C sintakso. 72 00:03:31,870 --> 00:03:34,370 >> Nun ke ni tradukis nian Bulea esprimo en kodo, 73 00:03:34,370 --> 00:03:36,160 kiel ni vere uzas ĝin? 74 00:03:36,160 --> 00:03:38,170 Supozu ke ni havas iun kodon kiu devus nur ekzekuti se 75 00:03:38,170 --> 00:03:40,330 iuj esprimo estas vera. 76 00:03:40,330 --> 00:03:42,750 Por ĉi tiu celo, preskaux cxiuj programlingvoj 77 00:03:42,750 --> 00:03:45,190 apogas la se kondiĉo. 78 00:03:45,190 --> 00:03:47,870 Supozu ke ni havas Bulea variablo, x, kaj ni volas iun 79 00:03:47,870 --> 00:03:50,850 kodo por ekzekuti nur se x estas vera. 80 00:03:50,850 --> 00:03:54,900 Ni simple skribu la vorton se, metis krampojn kaj metis 81 00:03:54,900 --> 00:03:57,800 la Bulea esprimo ene de tiuj krampoj. 82 00:03:57,800 --> 00:03:59,680 Post tio, ni envolver la kodon ni volas 83 00:03:59,680 --> 00:04:01,080 ekzekuti en bukla krampoj. 84 00:04:07,160 --> 00:04:08,150 Kio se estas iu kodo vi ŝatus 85 00:04:08,150 --> 00:04:10,260 ekzekuti se x ne estas vera? 86 00:04:10,260 --> 00:04:13,310 Simple skribu la vorton alie post la se aserto, wrap 87 00:04:13,310 --> 00:04:16,930 la alia kodo en bukla krampoj, kaj tiam tiu kodo estos 88 00:04:16,930 --> 00:04:18,399 ekzekuti se x ne estas vera. 89 00:04:26,640 --> 00:04:29,840 >> Alia utila lingvo konstruo estas alie se. 90 00:04:29,840 --> 00:04:32,210 Supozi estas du Booleans vi ŝatus konsideri, 91 00:04:32,210 --> 00:04:34,330 ni nomas ilin x kaj y. 92 00:04:34,330 --> 00:04:37,340 Ni deklaras tiuj variabloj al esti vera kaj falsa. 93 00:04:37,340 --> 00:04:40,540 Se x kaj y estas vera, vi ekzekuti la unua bloko de 94 00:04:40,540 --> 00:04:42,630 kodo ene de tiuj buklaj krampoj. 95 00:04:42,630 --> 00:04:46,470 Else if x aŭ y estas vera, vi ekzekuti la sekvanta bloko de 96 00:04:46,470 --> 00:04:50,590 kodo, kaj alia vin ekzekuti la lasta bloko de kodo. 97 00:04:50,590 --> 00:04:52,650 Laborante kun Bulea valorojn kiel ĉi tio estas utila, sed 98 00:04:52,650 --> 00:04:55,750 vi estas vere nur limigita al malmultaj kondiĉoj. 99 00:04:55,750 --> 00:04:58,400 Booleans povas igi multe pli potenca, kiam vi enkondukos 100 00:04:58,400 --> 00:04:59,900 komparoj. 101 00:04:59,900 --> 00:05:01,280 Ĉi tiuj estas manieroj kompari valorojn kiuj estas 102 00:05:01,280 --> 00:05:03,300 origine ne Bulea. 103 00:05:03,300 --> 00:05:06,060 Por vidi ĉu du valoroj estas la sama, oni povas uzi egalas 104 00:05:06,060 --> 00:05:09,340 egaluloj, kiu estas vera se ili estas egalaj kaj malvera se 105 00:05:09,340 --> 00:05:10,530 ili ne estas. 106 00:05:10,530 --> 00:05:15,360 Aliaj komunaj komparoj estas malpli ol, pli grandaj ol, malpli 107 00:05:15,360 --> 00:05:19,740 ol aŭ egala al, kaj pli granda ol aŭ egala al. 108 00:05:19,740 --> 00:05:22,220 >> Ĉio kiun mi kovris tiom estis bela abstrakta, tiel 109 00:05:22,220 --> 00:05:24,320 ni enkondukos tiujn komparojn en unu lasta 110 00:05:24,320 --> 00:05:25,850 konkreta ekzemplo. 111 00:05:25,850 --> 00:05:27,130 Supozi estas du variabloj, 112 00:05:27,130 --> 00:05:29,430 temperaturo kaj isHungry. 113 00:05:29,430 --> 00:05:31,560 Temperaturo estas glitpunkta nombro, do ĝi povas havi 114 00:05:31,560 --> 00:05:33,090 decimalaj. 115 00:05:33,090 --> 00:05:35,440 Vi programado tre simpla apliko kiu diras 116 00:05:35,440 --> 00:05:38,270 iu kion manĝi depende de la temperaturo. 117 00:05:38,270 --> 00:05:41,010 Se vi malsatas, KAJ KAJ la temperaturo estas pli granda ol aŭ 118 00:05:41,010 --> 00:05:45,060 egala al 100, vi povas presi manĝi glaciaĵon. 119 00:05:45,060 --> 00:05:48,370 Else se vi estas malsata KAJ KAJ la temperaturo estas malpli ol 120 00:05:48,370 --> 00:05:52,420 aŭ egala al nulo, vi povas printf ("mangxi pika manĝo»). 121 00:05:52,420 --> 00:05:55,200 Laste, se vi ne estas malsata tute ne, vi povas presi "ne 122 00:05:55,200 --> 00:05:56,710 manĝi nenion. " 123 00:05:56,710 --> 00:06:00,130 >> Mi estas Vipul Shekhawat, kaj ĉi tiu estas CS50.