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 V tomto videu budu zavádět do jednoho z nejvíce 3 00:00:09,410 --> 00:00:11,260 základní pojmy v logice a 4 00:00:11,260 --> 00:00:13,880 programování, booleovská hodnota. 5 00:00:13,880 --> 00:00:16,210 Pokud jste zvědaví na jméno, logických hodnot a 6 00:00:16,210 --> 00:00:19,440 podmínky jsou pojmenované po George Boole, 19. století 7 00:00:19,440 --> 00:00:22,030 matematik, který propagoval to, co se nyní nazývá Boolean 8 00:00:22,030 --> 00:00:23,980 logika, která je založena seskupením a 9 00:00:23,980 --> 00:00:26,030 porovnání logické hodnoty. 10 00:00:26,030 --> 00:00:28,250 >> Takže to, co je logická hodnota? 11 00:00:28,250 --> 00:00:30,920 Logická hodnota je proměnná, která právě má ​​dva možné 12 00:00:30,920 --> 00:00:33,710 podmínky, true a false. 13 00:00:33,710 --> 00:00:35,380 Můžete si ji představit jako vypínači. 14 00:00:35,380 --> 00:00:38,530 To může být buď zapnout nebo vypnout, true nebo false. 15 00:00:38,530 --> 00:00:41,880 Podobně může být binární čísla jeden nebo nula, která 16 00:00:41,880 --> 00:00:45,680 je analogický ke stejné věci, true nebo false. 17 00:00:45,680 --> 00:00:46,840 Jednoduché, ne? 18 00:00:46,840 --> 00:00:48,750 Pojem booleovské proměnné je snadné 19 00:00:48,750 --> 00:00:51,720 pochopit, ale způsoby, které můžete manipulovat a 20 00:00:51,720 --> 00:00:54,570 zkombinovat umožňuje mnohem větší složitosti. 21 00:00:54,570 --> 00:00:57,030 Kromě těchto dvou základních logické hodnoty, 22 00:00:57,030 --> 00:00:59,350 existuje mnoho logických operátorů, které mohou spojit dvě 23 00:00:59,350 --> 00:01:01,760 Booleovské hodnoty do jednoho. 24 00:01:01,760 --> 00:01:03,540 >> Dva z nejzákladnějších, ale nejdůležitější 25 00:01:03,540 --> 00:01:06,570 provozovatelé, jsou AND a OR. 26 00:01:06,570 --> 00:01:09,950 Operátor AND výsledky v hodnotě platí pouze v případě, a to jak z 27 00:01:09,950 --> 00:01:14,630 hodnoty to trvá, jsou pravdivé, tak nepravdivé a pravdivé, je nepravdivé. 28 00:01:14,630 --> 00:01:17,540 Stejně tak, false false A je nepravdivé. 29 00:01:17,540 --> 00:01:21,080 Jediné pravé a pravdivé rovná true. 30 00:01:21,080 --> 00:01:24,050 Operátor OR vede k hodnotě true, pokud buď z 31 00:01:24,050 --> 00:01:25,620 Hodnoty, které trvá, jsou pravdivé. 32 00:01:25,620 --> 00:01:30,460 Takže false false OR je falešný, ale true nebo false, je pravda, a 33 00:01:30,460 --> 00:01:33,710 true nebo pravda je také pravda. 34 00:01:33,710 --> 00:01:36,560 Operátor NOT jednoduše přebírá booleovskou proměnnou a dává 35 00:01:36,560 --> 00:01:37,830 jste protiklad toho. 36 00:01:37,830 --> 00:01:40,950 Pravda se stává false false a stává pravdou. 37 00:01:40,950 --> 00:01:43,130 Pokud dáte celou věc dohromady, proměnné s 38 00:01:43,130 --> 00:01:46,320 Provozovatelé, můžete vytvořit logický výraz. 39 00:01:46,320 --> 00:01:48,550 >> Nyní se podívejme na příklad hnízdní těchto Boolean 40 00:01:48,550 --> 00:01:49,950 výrazy. 41 00:01:49,950 --> 00:01:51,840 Vzpomínáte si na pořadí operací? 42 00:01:51,840 --> 00:01:54,700 Jak s čísly, lze logické výrazy mohou být seskupeny podle 43 00:01:54,700 --> 00:01:56,270 pomocí závorek. 44 00:01:56,270 --> 00:02:00,150 Takže tam jsou v podstatě tři výrazy tady, ne z, y OR 45 00:02:00,150 --> 00:02:04,740 NOT z, a x A y OR NOT z. 46 00:02:04,740 --> 00:02:07,080 Můžeme zjistit hodnoty těchto pohledem na 47 00:02:07,080 --> 00:02:09,020 uvnitř a pracovní cestu ven. 48 00:02:09,020 --> 00:02:12,850 Takže předpokládejme, že x je pravda, y je pravda, a z je také pravda. 49 00:02:12,850 --> 00:02:15,270 Co by NOT z vyhodnocen? 50 00:02:15,270 --> 00:02:20,970 Vzhledem k tomu, začneme s pravdou, by nebylo z jednoduše nepravdivé. 51 00:02:20,970 --> 00:02:26,230 Takže teď máme false OR y. 52 00:02:26,230 --> 00:02:29,740 Pokud se podíváte na vrcholu, můžete vidět, že y je pravda, y nebo false 53 00:02:29,740 --> 00:02:32,870 by stále jen byla pravda. 54 00:02:32,870 --> 00:02:37,580 Konečně jsme se, mít X a skutečné. 55 00:02:37,580 --> 00:02:39,300 Takže to, co je x A pravda? 56 00:02:39,300 --> 00:02:42,590 x je pravda a pravda je také pravda, tak celá tahle věc 57 00:02:42,590 --> 00:02:45,070 vyhodnocen jako true. 58 00:02:45,070 --> 00:02:47,270 >> Další, pojďme se podívat na to, jak se tyto Booleovské výrazy mohou 59 00:02:47,270 --> 00:02:49,890 vlastně být použit v programovacím jazyce. 60 00:02:49,890 --> 00:02:52,900 V jazyce C, syntaxe pro logické operace je trochu jiný 61 00:02:52,900 --> 00:02:55,520 ze slov a, nebo, a ne. 62 00:02:55,520 --> 00:02:57,210 Pojďme pokrytí syntaxi. 63 00:02:57,210 --> 00:03:00,510 Chcete-li použít operátor, píšeme dvojí ampersand. 64 00:03:00,510 --> 00:03:03,620 Operátor OR je dvojitá trubka řádek znak. 65 00:03:03,620 --> 00:03:05,780 To je přímá vertikální linie, které si můžete pravděpodobně 66 00:03:05,780 --> 00:03:09,070 zde výše Enter nebo Return na klávesnici. 67 00:03:09,070 --> 00:03:12,550 A operátor NOT je prostě vykřičník. 68 00:03:12,550 --> 00:03:15,550 Takže přepsat výraz jsme předtím, bychom jen 69 00:03:15,550 --> 00:03:27,010 napsat tento x && y | |! z.. 70 00:03:27,010 --> 00:03:29,250 To je jen s přesně to, co jsme měli předtím a soustružení 71 00:03:29,250 --> 00:03:31,870 to do syntaxe C. 72 00:03:31,870 --> 00:03:34,370 >> Teď, když jsme přeložen náš logický výraz do kódu, 73 00:03:34,370 --> 00:03:36,160 jak jsme se vlastně použít? 74 00:03:36,160 --> 00:03:38,170 Řekněme, že máme nějaký kód, který by měl provede pouze v případě 75 00:03:38,170 --> 00:03:40,330 určité výraz je pravdivý. 76 00:03:40,330 --> 00:03:42,750 Pro tento účel, skoro všechny programovací jazyky 77 00:03:42,750 --> 00:03:45,190 podporovat, pokud podmínku. 78 00:03:45,190 --> 00:03:47,870 Řekněme, že máme logickou proměnnou, x, a chceme, aby některé 79 00:03:47,870 --> 00:03:50,850 Kód provést pouze tehdy, pokud x je pravda. 80 00:03:50,850 --> 00:03:54,900 Rádi bychom jednoduše napsat slovo, pokud dát závorky, a dal 81 00:03:54,900 --> 00:03:57,800 booleovský výraz v těchto závorkách. 82 00:03:57,800 --> 00:03:59,680 Poté, zabalíme kód chceme 83 00:03:59,680 --> 00:04:01,080 provést ve složených závorkách. 84 00:04:07,160 --> 00:04:08,150 Co když tam je nějaký kód, který chcete 85 00:04:08,150 --> 00:04:10,260 spustit, pokud x není pravda? 86 00:04:10,260 --> 00:04:13,310 Stačí napsat slovo ještě po if zábalem 87 00:04:13,310 --> 00:04:16,930 jiný kód ve složených závorkách, a pak, že kód bude 88 00:04:16,930 --> 00:04:18,399 spustit, pokud x není pravda. 89 00:04:26,640 --> 00:04:29,840 >> Dalším užitečným jazykem konstrukce je else if. 90 00:04:29,840 --> 00:04:32,210 Předpokládejme, že existují dvě booleovské byste chtěli, aby zvážila, 91 00:04:32,210 --> 00:04:34,330 říkejme jim x a y. 92 00:04:34,330 --> 00:04:37,340 Prohlašujeme tyto proměnné jsou pravdivé a nepravdivé. 93 00:04:37,340 --> 00:04:40,540 Pokud x a y jsou pravdivé, spuštění prvního bloku 94 00:04:40,540 --> 00:04:42,630 Kód v těchto složených závorek. 95 00:04:42,630 --> 00:04:46,470 Else if x nebo y jsou pravdivé, spuštění další blok 96 00:04:46,470 --> 00:04:50,590 kód, a co byste provést poslední blok kódu. 97 00:04:50,590 --> 00:04:52,650 Práce s booleovských hodnot, jako je to užitečné, ale 98 00:04:52,650 --> 00:04:55,750 jste opravdu omezena pouze na několik podmínek. 99 00:04:55,750 --> 00:04:58,400 Booleans se může stát mnohem silnější, když si představí 100 00:04:58,400 --> 00:04:59,900 srovnání. 101 00:04:59,900 --> 00:05:01,280 To jsou způsoby, jak tyto hodnoty, které jsou 102 00:05:01,280 --> 00:05:03,300 ne původně Boolean. 103 00:05:03,300 --> 00:05:06,060 Chcete-li zjistit, zda dvě hodnoty jsou stejné, můžete použít rovná 104 00:05:06,060 --> 00:05:09,340 rovná, což platí iv případě, že jsou stejné, a false, pokud 105 00:05:09,340 --> 00:05:10,530 nejsou. 106 00:05:10,530 --> 00:05:15,360 Jiné obyčejné srovnání jsou menší než, větší než, menší 107 00:05:15,360 --> 00:05:19,740 než nebo rovno, a větší než nebo rovno. 108 00:05:19,740 --> 00:05:22,220 >> Všechno, co jsem zatím probrané byl velmi abstraktní, tak 109 00:05:22,220 --> 00:05:24,320 pojďme zavést tyto srovnání v jednom posledním 110 00:05:24,320 --> 00:05:25,850 Konkrétním příkladem. 111 00:05:25,850 --> 00:05:27,130 Předpokládejme, že existují dvě proměnné, 112 00:05:27,130 --> 00:05:29,430 teplota a isHungry. 113 00:05:29,430 --> 00:05:31,560 Teplota je číslo s plovoucí čárkou, tak to může mít 114 00:05:31,560 --> 00:05:33,090 desetinných míst. 115 00:05:33,090 --> 00:05:35,440 Jste programování velmi jednoduchou aplikaci, která říká, 116 00:05:35,440 --> 00:05:38,270 někdo to, co jíst v závislosti na teplotě. 117 00:05:38,270 --> 00:05:41,010 Pokud máte hlad, a a teplota je vyšší než nebo 118 00:05:41,010 --> 00:05:45,060 rovna 100, můžete tisknout jíst zmrzlinu. 119 00:05:45,060 --> 00:05:48,370 Jinak, pokud máte hlad a a teplota je nižší než 120 00:05:48,370 --> 00:05:52,420 nebo roven nule, můžete printf ("jíst kořeněná jídla"). 121 00:05:52,420 --> 00:05:55,200 Konečně, pokud jste neměla hlad vůbec, můžete tisknout "ne 122 00:05:55,200 --> 00:05:56,710 jíst cokoli. " 123 00:05:56,710 --> 00:06:00,130 >> Já jsem Vipul Shekhawat, a to je CS50.