>> ZAMYLA Chan: Konpliman sou fini ou
premye koup la C pwogram yo.
Mwen konnen ke plonge premye fwa ou antre nan C sentaks ka redoutable.
Men, mwen asire ou, nan fen a Natirèlman, ou pral kapab fè yon gade nan la
premye koup la devwa ak ranpli yo nan kèk minit.
>> Kounye a ke w ap vin plis abitye ak sentaks, se pou yo ale nan Seza li ye.
Nan Seza, itilizatè a ap soumèt yon nonb antye ki pè kle kòm yon liy lòd
agiman, lè sa a antre nan yon plenn mesaj tèks nan èd memwa a.
Pwogram nan pral Lè sa a chifre tèks la ak ekri an lèt detache
mesaj chifre yo.
>> Enciphering a pou Seza tande kòz se byen senp.
Chanjman chak lèt, nan yo plenn tèks, pa kle a.
Kòm yon rezilta, li la tou trè sekirite.
Men, Aplikasyon Seza, n ap entwodui nou ASCIIMath ak etalaj done
estrikti.
Nou pral jwenn pi konplèks Algorithms pita.
Ak yon kle Seza tande kòz nan 2, lèt A nan ta plenn tèks dwe reprezante pa
lèt C a nan chifre paske C se de lèt apre A. B ta dwe
reprezante pa D ak C pa E. Rive sou fen a nan alfabè a, W se
reprezante pa Y, ak X pa Z. Men, Y pa gen de lèt apre li fin, se konsa
Algorithms yo vlope toutotou alfabè a.
Se y nan tèks plenn konsa reprezante pa A nan chifre ak Z pa B. Li kapab
ede wè kalkile nan Seza tande kòz tankou yon wou alfabè kontinyèl.
>> Chifre tèks yo, itilizatè a pral antre nan de agiman
nan liy lan bay lòd -
. / Seza tande kòz ki te swiv pa yon kle.
Kòm toujou, nou pa ka fè konfyans itilizatè a konplètman antre nan opinyon ki fè
sans pou pwogram nou an.
Se konsa, nou pral gen valide yo lòd liy opinyon.
>> Olye pou yo lè l sèvi avèk Int anile prensipal yo, nou ap lè l sèvi avèk Int prensipal yo, Int arg, fisèl argv.
Arg nan nonb antye ki pè varyab reprezante nimewo a nan agiman te pase nan
lòd liy lan.
Men, argv se yon etalaj, oswa panse a li kòm yon lis, nan agiman yo te pase pous
>> Se konsa, pou Seza, ki jan nou valide D 'itilizatè a la?
Bon, yo ta dwe sèlman ap rantre nan agiman de liy lòd -
. / Seza ak kle a.
Se konsa, si arg se pa 2, sa vle di yo swa bliye yon kle ak jis
antre nan. / Seza, oswa yo antre nan kle miltip.
>> Si sa a se ka a, Lè sa a, ou pral vle ekri ak lèt ​​detache enstriksyon
ak kite pwogram nan.
Yo pral bezwen eseye ankò soti nan liy la lòd.
Men, menm si arg se 2, ou pral bezwen tcheke si yo
ba ou yon kle ki valid.
Pou Seza, ou bezwen yon nonb antye ki pè.
Men, argv se yon etalaj de strings.
Ki jan ou fè jwenn aksè ki kle?
>> Yon gade rapid nan ranje -
done estrikti ki kenbe miltip valè nan kalite la menm done.
Entries yo zewo-endèks, sa vle di eleman nan premye se zewo nan endèks
ak eleman an pase a se nan gwosè endèks 1 mwens, kote gwosè se nimewo a nan
eleman nan etalaj la.
>> Si mwen te deklare yon fisèl nouvo bwat etalaj longè 3, vizyèlman, li
sanble tankou sa a.
Twa kontenè ki pou strings , Kòt a kòt.
Pou jwenn aksè a nenpòt eleman, ou tape non an nan etalaj la ak Lè sa a endike
endèks la nan parantèz kare.
Isit la, mwen voye yon ti valè nan chak eleman, menm jan mwen ta fè ak nenpòt ki
lòt fisèl varyab.
>> Se konsa, jwenn aksè nan agiman lòd liy nou an, tout sa nou dwe fè se jwenn aksè
eleman nan dwa nan etalaj la argv.
Si itilizatè a te antre nan. / Blastoff Ekip Wòkèt nan tèminal la, argv 0 ta
dwe. / blastoff.
argv ta dwe Ekip, ak arg2 ta dwe fize.
>> Koulye a, ke nou kapab jwenn aksè kle nou yo, nou toujou bezwen fè
asire w ke li nan kòrèk.
Nou bezwen konvèti li nan yon nonb antye ki pè.
Men, nou pa ka jis jete tankou nou te fè deja.
Chans, A rive Y fonksyon an pran swen sa a pou nou e menm retounen 0
si fisèl la pa ka konvèti nan yon nonb antye ki pè.
Li a jiska ou, menm si, di itilizatè a poukisa ou pa pral
kite pwogram nan kontinye.
Sere rezilta a nan A Y nan yon nonb antye ki pè, epi gen ou gen kle ou.
Pati nan pwochen se senp.
Èd memwa itilizatè a pou tèks plenn yo, ki pral nan fisèl done kalite.
Chans pou nou, tout itilizatè antre strings yo valab.
>> Koulye a, ke nou gen tout opinyon nesesè soti nan itilizatè a, li lè pou nou pou n
chifre mesaj yo.
Konsèp la nan Seza se senp ase yo konprann.
Men, ki jan òdinatè w lan konnen ki lèt vini apre youn ak lòt?
>> Isit la nan kote tab la ASCII vini pous
Chak karaktè gen yon nonb antye ki pè nimewo ki asosye ak li.
Kapital A se 65.
Kapital B se 66.
Miniskil yon se 97.
B miniskil se 98.
Men, karaktè yo pa limite jis nimewo alfabetik.
Pou egzanp, @ senbòl la se 64 ASCII nimewo.
>> Anvan fè fas ak fisèl la tout antye, kite a pretann nou jis gen chanjman
yon karaktè.
Oke, nou sèlman vle chanjman reyèl lèt nan tèks la plenn, pa
karaktè oubyen nimewo yo.
Se konsa, nan premye bagay ke nou pral vle tcheke se si pèsonaj la se nan
alfabè an.
>> Isalpha nan fonksyon fè sa a pou nou epi retounen yon Boolean -
vre si karaktè yo se yon lèt, fo si otreman.
De lòt aktivite itil yo isupper ak islower, ak
pwòp tèt ou-eksplikasyon non.
Yo tounen vre si pèsonaj la bay se majuskul oswa miniskil,
respektivman.
Depi yo Booleans, yo ap itil nan itilize kòm kondisyon yo.
>> Si isalpha retounen vre, ou pral bezwen chanjman ki N. pa kle a.
Se konsa, kite a ouvè a ASCIIMath ak fè kèk matematik ASCII.
L 'a se trè menm jan ak l' a pou Seza tande kòz ak pran nan yon kle nan la
liy lòd.
>> Si mwen kouri ASCIIMath 5, li sanble yo ajoute 5 nan yon, bay m 'f a lèt, ak
montre valè a ASCII.
Se konsa, kite a pran yon gade nan pwogram nan.
>> Ou ta ka mande, dwa isit la, poukisa lèt se yon nonb antye, lè li nan
byen klè, byen, yon lèt.
Li sanble ke karaktè ak nonm antye yo ka ranplase.
Pa mete lèt la A nan sèl giymè, nonb antye ki pè a ka magazen
valè a ASCII nan kapital A. Fè atansyon, menm si.
Ou bezwen rad yo sèl.
San yo pa mak yo quote yon sèl, nan du ta gade pou yon varyab
yo te rele A, epi yo pa pèsonaj la.
>> Apre sa, mwen ajoute lèt ak kle yon, sere nan sòm nan rezilta a Int varyab.
Menm si rezilta a se nan kalite done nonb antye ki pè, deklarasyon printf mwen sèvi ak nan
% C kontneur pou karaktè.
Se konsa, pwogram nan simagri pèsonaj la ki asosye ak rezilta a nonb antye ki pè.
Men, depi nou enprime nonb antye ki pè a fòm kòm byen lè l sèvi avèk d%, nou wè
nimewo a tou.
Se konsa, kounye a ou ka wè ke nou trete karaktè ak
nonm antye yo, ak vis vèrsa.
>> Ann tès soti ASCIIMath yon kèk fwa plis lè l sèvi avèk 25 kòm yon kle.
Nou jwenn z la lèt.
Koulye a, nou eseye 26.
Nou vle jwenn lèt la yon, men olye pou nou jwenn yon bracket bò gòch.
Se konsa, evidamman, jis ajoute a kle nan lèt la pa pral fè.
Nou bezwen konnen yon fòmil vlope alantou alfabè a, renmen nou an
egzanp depi nan konmansman an te fè sa.
>> Yon fòmil pou la nan Seza tande kòz chanjman se jan sa a.
c egal p plis k modulo 26.
Sonje ke modulo se yon itil operasyon ki ba nou rès la
nan divize yon sèl nimewo pa lòt la.
Se pou yo aplike sa a fòmil plenn lan lèt tèks ak yon kle nan 2.
Valè a ASCII y la se 89, ki ba nou 91 modulo 26,
ki egal 13 -
definitivman pa valè a ASCII nan yon, ki se 67.
>> Imè m 'koulye a ak avanse pou pi lwen nan Valè ASCII nan yon endèks alfabetik
kote A se zewo ak Z se 25, sa vle di Y se 24.
24, 2 plis modulo 6, ba nou 26, 26 modulo, 0, ki se nan
alfabetik endèks nan yon.
Se konsa, sa a fòmil sanble pou aplike pou la alfabetik endèks nan lèt la ak
pa valè ASCII li yo.
>> Men, ou kòmanse ak valè ASCII.
Men, ekri ak lèt ​​detache pèsonaj la chifre, ou pral bezwen valè ASCII li yo tou.
Li a jiska ou, Lè sa a, figi konnen ki jan yo chanje retounen ak lide.
>> Yon fwa ou konnen fòmil la dwa pou yon karaktè yo, tout sa ou bezwen fè
se aplike fòmil la menm chak lèt nan tèks la plenn -
sèlman si lèt sa a se alfabetik, nan kou.
Epi sonje ke ou bezwen prezève ka a, anwo oswa pi ba, ki nan kote
isUpper la ak fonksyon isLower mansyone pi bonè ap vini an sou la men.
Ou ta ka gen de fòmil -
yonn pou lèt majuskul ak yonn pou miniskil.
Se konsa, isUpper yon isLower pral ede w detèmine ki fòmil pou aplike pou.
>> Ki jan ou fè aplike fòmil ou a chak yon sèl karaktè nan yon fisèl?
Oke, yon kòd se jis yon etalaj de karaktè.
Se konsa, ou kapab jwenn aksè chak karaktè pa gwoupman sou tout karaktè nan la
fisèl nan yon pou bouk.
Kòm pou kondisyon an nan ou pou bouk, fonksyon an strlèn, pou fisèl
longè, ap vini an sou la men.
Li pran nan yon fisèl kòm opinyon ak retounen longè a nan ki fil.
Asire w ke w gen ladan bibliyotèk la dwa yo sèvi ak fonksyon an longè fil.
>> Apre sa, ou gen chifre ou.
Non mwen se Zamyla la.
Men, [PALE KÒD].