>> Zamyla Chan: Kom ons maak seker jou krediet.
In hierdie probleem is, sal ons die gebruiker gevra vir 'n inset van 'n kredietkaart nommer.
Dan sal ons wat kredietkaart hardloop aantal om te sien of dit is geldig.
Indien wel, sal ons die maatskappy te druk dat kredietkaart behoort.
Andersins, sal ons die gebruiker vertel dat die kaart is ongeldig.
>> Kom ons spring reg in met waarna vir die gebruiker se toevoer.
Die kredietkaart nommer is van datatipe long_long,
sodat die CS50 biblioteek funksie get_long_long sal baie nuttig wees.
Maar hierdie funksie verseker dat die gebruiker insette enige heelgetal.
So 'n positiewe heelgetalle, negatiewe heelgetalle, of nul is alles goed.
So aan jou om verder bekragtig of
die gebruiker het ons 'n geldige gegee tipe kredietkaart nommer.
>> Nou dat ons 'n kredietkaart aantal van die gebruiker, dan
ons nodig het om die checksum bereken.
So kredietkaart checksums word soos volg bereken.
Vanaf die tweede laaste syfer, Ons vermenigvuldig elke ander syferheelgetalle deur 2.
Dan voeg ons daardie syfers produkte 'saam.
Van ons voeg die som van die syfers wat
is nie vermenigvuldig met 2 tot daardie vorige som wat ons bereken.
Ten slotte, as dat die getal eindig in 0, dan is die getal geldig is.
>> Kom ons gaan deur middel van 'n voorbeeld en neem hierdie stap vir stap.
So ons eerste stap is om te begin tussen die tweede en laaste syfer
en vermenigvuldig elke ander syfer deur twee.
Nou, as ek gestoor die kredietkaart nommer in 'n veranderlike genoem CC nommer,
dan modding dat met 10 sou gee my die heel laaste syfer.
So, hoe kan jy toegang die tweede laaste syfer?
>> OK, so as ons het toegang tot die tweede laaste syfer,
dan sal ons Itereer deur vermenigvuldig elke ander syferheelgetalle deur 2.
Sodra ons dit, dan Ons sal die produkte te neem
en saam te voeg syfers daardie produkte.
So hier het ek enkele syfers, so dit is goed.
Maar dan weer ek by my laaste number-- 7 vermenigvuldig met 2--
Ek voeg die 1 en die 4 vir my gee 27.
Daarvandaan het ons byvoeg dat product-- 27-- aan die som van die syfers wat
is nie vermenigvuldig met 2.
>> So hier Ek het al na vore gebring van dié nommers in oranje.
Sodra ons die syfers voeg, dan Ons kry ons finale checksum nommer.
So ons bekragtig dit deur seker dat die laaste syfer is 0.
As die checksum eindig nie in 0, dan is die kredietkaart nommer
is beslis ongeldig.
Andersins, laat ons gaan op na check die maatskappy identifiseerders
en die lengte kredietkaart.
>> Ons het 'n lys verskaf van drie maatskappye,
saam met dié, die aantal heelgetalle dat hul kredietkaart nommers het.
Toe die eerste twee syfers wat die kaarte kan begin.
So aan jou om tred te hou met die hou eerste twee syfers van die kredietkaart
en die getal van heelgetalle in die kaart.
En met dié, het jy klaar die probleem.
My naam is Zamyla, en dit was Krediet.