1 00:00:00,000 --> 00:00:13,290 2 00:00:13,290 --> 00:00:14,570 >> ROB BOWDEN: Ahoj, ja som Rob. 3 00:00:14,570 --> 00:00:17,610 A ja dúfam, že ste obvinený pre úver. 4 00:00:17,610 --> 00:00:20,710 Takže prvá vec, ktorú musíme urobiť, je požiadať o kreditnú kartu 5 00:00:20,710 --> 00:00:22,710 Číslo od užívateľa. 6 00:00:22,710 --> 00:00:25,060 Tu sme pomocou getLongLong. 7 00:00:25,060 --> 00:00:29,070 Dalo by sa tiež použiť getString, ale v tomto prípade si musíte skontrolovať 8 00:00:29,070 --> 00:00:32,340 že to tam bolo žiadny non-numeric znaky v reťazci. 9 00:00:32,340 --> 00:00:34,560 Takže budeme používať getLongLong. 10 00:00:34,560 --> 00:00:38,070 >> Uvedomte si, že nemôžete použiť niečo ako vezmi_int, pretože počet bude 11 00:00:38,070 --> 00:00:40,650 príliš veľké, aby sa zmestili na celé číslo. 12 00:00:40,650 --> 00:00:44,480 Akonáhle budeme mať toto číslo, my pozri tu while. 13 00:00:44,480 --> 00:00:48,210 Takže tento cyklus while sa vykonáva Luhn algoritmus, ktorý 14 00:00:48,210 --> 00:00:50,980 pozri v pset spec. 15 00:00:50,980 --> 00:00:53,830 >> A je to vlastne deje byť trochu šikovný. 16 00:00:53,830 --> 00:01:00,800 Takže v pset spec, všimnite si, že Kroky jedna a dve sú oddelené. 17 00:01:00,800 --> 00:01:05,160 Prvýkrát sme sa ísť po celom kreditnej karty číslo, hľadá každý druhý 18 00:01:05,160 --> 00:01:09,775 charakter od druhého do posledný znak, a ich znásobenie 19 00:01:09,775 --> 00:01:11,750 a súčet všetkých číslic. 20 00:01:11,750 --> 00:01:16,150 Potom po tom, pridáme do všetky ostatné číslice. 21 00:01:16,150 --> 00:01:20,660 >> Takže namiesto toho, aby robil tie dva samostatné kroky, budeme kombinovať 22 00:01:20,660 --> 00:01:24,430 je do jednej iterácii cez Celé číslo kreditnej karty. 23 00:01:24,430 --> 00:01:29,710 Tu vidíme, int prúdoch číslica rovná číslo kreditnej karty, mod 10. 24 00:01:29,710 --> 00:01:32,050 Čo je číslo kreditnej karty mod 10 robí? 25 00:01:32,050 --> 00:01:35,750 Je nám dáva poslednú číslicu v celej rade. 26 00:01:35,750 --> 00:01:39,340 Takže pamätajte, že keď sme sa rozdelili číslo až o 10, potom zvyšok 27 00:01:39,340 --> 00:01:42,180 by čokoľvek, aby posledná číslica je. 28 00:01:42,180 --> 00:01:46,560 23 delené 10, Zvyšok bude 3. 29 00:01:46,560 --> 00:01:53,760 >> Takže posledná číslica, teraz tu vidíme, sme vetvenia na rozmnožovacie o 2. 30 00:01:53,760 --> 00:01:57,630 Takže to, čo budeme používať Mult o 2 pre je rozlišovať medzi 31 00:01:57,630 --> 00:02:02,110 jeden z "každých ďalších čísel z druhá číslica "čísla. 32 00:02:02,110 --> 00:02:08,310 Mult o 2 sa chystá začať ako false, pretože posledná číslica nemal 33 00:02:08,310 --> 00:02:11,750 považovať z Druhý na poslednú číslicu. 34 00:02:11,750 --> 00:02:16,760 >> Takže na konci tejto pre sláčiky, sme vidieť, že ak budeme to zmeniť 35 00:02:16,760 --> 00:02:18,870 z false na true. 36 00:02:18,870 --> 00:02:22,520 Na ďalšej iterácii pre sláčiky, bude to považovať za pravdivé, kým 37 00:02:22,520 --> 00:02:25,090 koniec, keď zmeníme že z true na false. 38 00:02:25,090 --> 00:02:28,290 Pretože potom budeme na treťom až posledná číslica, ktorá nie je jedným z 39 00:02:28,290 --> 00:02:32,210 číslice, že by sme mali vynásobiť 2. 40 00:02:32,210 --> 00:02:37,410 >> Takže ak sa stalo, že sa na jeden z tých číslice, ktoré chceme vynásobiť 2, 41 00:02:37,410 --> 00:02:40,610 vidíme my pridania do nášho kontrolného súčtu. 42 00:02:40,610 --> 00:02:43,640 A tu, sme pomocou ternárnu operátor raz 43 00:02:43,640 --> 00:02:45,470 opäť trochu šikovný. 44 00:02:45,470 --> 00:02:50,170 Takže ak teraz číslica menšia ako 5, potom môžeme len robiť prúdoch číslice krát 2. 45 00:02:50,170 --> 00:02:50,690 To je jednoduché. 46 00:02:50,690 --> 00:02:52,770 Ak je to 1, potom chceme pridať 2. 47 00:02:52,770 --> 00:02:54,090 Ak je to 2, chceme pridať 4. 48 00:02:54,090 --> 00:02:55,530 Ak je to 4, chceme pridať 8. 49 00:02:55,530 --> 00:02:57,400 >> Takže to, čo je zvláštne na 5? 50 00:02:57,400 --> 00:03:00,290 No, 5 krát 2 je 10.. 51 00:03:00,290 --> 00:03:05,920 A pamätajte si, ze pset spec, že chceme pridať číslice 52 00:03:05,920 --> 00:03:09,300 počet krát 2, a nie počet časy 2. sám. 53 00:03:09,300 --> 00:03:13,920 Takže v prípade, že pôvodné číslo je 7, 7 krát 2 je 14.. 54 00:03:13,920 --> 00:03:18,930 Chceme pridať 1 plus 4 počtu, nie 14. 55 00:03:18,930 --> 00:03:24,050 >> Takže tu, v prípade, že je číslo 5 alebo vyššie, to, čo robíme, je teraz číslica 56 00:03:24,050 --> 00:03:26,470 krát 2 mínus 9. 57 00:03:26,470 --> 00:03:29,940 A ak si myslíte, že o tom, 5 krát 2 je 10. 58 00:03:29,940 --> 00:03:33,130 A tak sme pridaním 1, čo je o 10 mínus 9. 59 00:03:33,130 --> 00:03:35,490 A 6 krát 2 je 12. 60 00:03:35,490 --> 00:03:38,380 Takže budeme pridávať 3, ktoré je 12 mínus 9. 61 00:03:38,380 --> 00:03:40,250 A to funguje u všetkých čísel. 62 00:03:40,250 --> 00:03:43,330 >> Takže to je to, čo sme pridaním na našom kontrolným súčtom. 63 00:03:43,330 --> 00:03:49,970 A to je ešte to, čo je manipulácia krok Dva Luhn algoritmu, ktorý je práve 64 00:03:49,970 --> 00:03:55,010 pridaním číslice, ak sa tak nestane byť jeden z každej ďalšej číslice. 65 00:03:55,010 --> 00:04:01,440 Takže akonáhle sme sa, že to je udržať track z prvých dvoch znakov 66 00:04:01,440 --> 00:04:05,220 číslo kreditnej karty, prvé dva číslice, pretože sme nakoniec bude 67 00:04:05,220 --> 00:04:08,980 chcieť používať, ktoré sa tu overiť, v poriadku, Visa musia začať 68 00:04:08,980 --> 00:04:14,440 s to, a potreby American Express začať s tým, a tak ďalej. 69 00:04:14,440 --> 00:04:16,850 >> Nakoniec, my kreditnej karty číslo sa rovná kreditnej karty 70 00:04:16,850 --> 00:04:18,730 číslo delené 10. 71 00:04:18,730 --> 00:04:19,829 Prečo to robíme? 72 00:04:19,829 --> 00:04:22,070 No, práve sme sa ovládal poslednú číslicu. 73 00:04:22,070 --> 00:04:24,880 Rozdelenie podľa 10 posunie Celé číslo znova. 74 00:04:24,880 --> 00:04:27,150 Takže teraz, keď sme sa slučka späť, sme bude manipulácia 75 00:04:27,150 --> 00:04:28,540 Druhý na poslednú číslicu. 76 00:04:28,540 --> 00:04:31,060 Potom, keď sme hit to znova, ideme odrezať druhý trvať 77 00:04:31,060 --> 00:04:35,060 číslice, slučka späť, a zvládnuť tretí poslednej číslice, a tak ďalej, až kým sa 78 00:04:35,060 --> 00:04:40,120 číslo dosiahne 0, na ktorom mieste sme sa vymaniť z cyklu while. 79 00:04:40,120 --> 00:04:43,560 >> Sme tiež sledovanie úveru dĺžka číslo karty, pretože to je 80 00:04:43,560 --> 00:04:48,440 dôležité rozlišovať, či je to číslo platnej kreditnej karty. 81 00:04:48,440 --> 00:04:53,560 Takže teraz, raz sme sa vypočíta kontrolný súčet, môžeme určiť, či 82 00:04:53,560 --> 00:04:55,180 je platnou kartou. 83 00:04:55,180 --> 00:04:58,010 Kontrolný súčet mod 10 je súčasťou z Luhn algoritmu. 84 00:04:58,010 --> 00:05:03,360 Ak kontrolný súčet mod 10 vráti niečo nenulové, potom sa to vráti hodnotu true, 85 00:05:03,360 --> 00:05:06,650 v takom prípade sa počet Musí byť neplatné. 86 00:05:06,650 --> 00:05:12,590 >> V opačnom prípade, ak je kontrolný súčet mod 10 je 0, potom môžeme pokračovať. 87 00:05:12,590 --> 00:05:18,360 Tento veľký else if hovorí, keď je prvý dve číslice sú rovné AMEX 1, 88 00:05:18,360 --> 00:05:23,640 kde tu vidíme, že AMEX 1, podľa spec, je 34 rokov. 89 00:05:23,640 --> 00:05:26,595 A budeme tiež porovnávať na AMEX 2, čo je 37. 90 00:05:26,595 --> 00:05:30,360 91 00:05:30,360 --> 00:05:34,210 A dĺžka číslo kreditnej karty, je rovnajúcu sa očakávané American Express 92 00:05:34,210 --> 00:05:37,910 Dĺžka karty, potom môžeme vytlačiť American Express. 93 00:05:37,910 --> 00:05:41,920 >> Budeme robiť podobnú vec s Visa. 94 00:05:41,920 --> 00:05:51,940 Prvé dve číslice musia byť väčšie ako alebo rovná 40 ° C, alebo menej 95 00:05:51,940 --> 00:05:54,290 ako alebo rovnajúcu sa 49. 96 00:05:54,290 --> 00:05:57,180 Tí predstavujú platné karty Visa. 97 00:05:57,180 --> 00:06:01,530 A dĺžka musí byť rovný Visa Dĺžka 1 alebo Visa dĺžka 2. 98 00:06:01,530 --> 00:06:07,320 A tak sa dĺžka musí byť buď 13 alebo 16 číslic. 99 00:06:07,320 --> 00:06:12,240 >> A konečne s MasterCard, je to podobne ako Visa, že prvé dva 100 00:06:12,240 --> 00:06:15,340 číslice musia byť v určitej Rozsah a dĺžka musí 101 00:06:15,340 --> 00:06:19,440 byť presne 16 číslic. 102 00:06:19,440 --> 00:06:24,390 Takže ak niektorý z týchto prípadov držať, potom V prvom prípade budeme tlačiť AMEX. 103 00:06:24,390 --> 00:06:26,310 Pokiaľ tento prípad platí, budeme tlačiť Visa. 104 00:06:26,310 --> 00:06:28,400 Pokiaľ tento prípad platí, budeme vytlačiť MasterCard. 105 00:06:28,400 --> 00:06:32,170 >> Ale ak žiadny z nich drží, aj v prípade, že kontrolný súčet bol platný, 106 00:06:32,170 --> 00:06:33,900 stále tlačiť neplatné. 107 00:06:33,900 --> 00:06:37,050 Vzhľadom k tomu, že to nie je jeden z tieto typy kariet. 108 00:06:37,050 --> 00:06:40,030 Volám sa Rob a ja dúfam, že vás nájdených kreditnej zaujímavé. 109 00:06:40,030 --> 00:06:46,272