>> ZAMYLA Chan: Llongyfarchiadau ar orffen eich
cwpl cyntaf o raglenni C.
Gwn fod eich ymgais gyntaf i mewn i Gall gystrawen C fod yn frawychus.
Ond yr wyf yn eich sicrhau, ar ddiwedd y cwrs, byddwch yn gallu edrych ar y
cwpl cyntaf o aseiniadau ac eu cwblhau mewn munudau.
>> Nawr eich bod yn cael yn fwy cyfarwydd gyda chystrawen, gadewch i ni fynd i Gesar.
Yn Cesar, bydd y defnyddiwr yn cyflwyno allweddol cyfanrif fel llinell orchymyn
ddadl, ac yna mynd i mewn i blaen neges destun wrth yr anogwr.
Bydd y rhaglen, encipher y testun ac argraffu
eu neges ciphertext.
>> Mae'r enciphering ar gyfer Cesar yn eithaf syml.
Symud pob llythyr, yn eu testun plaen, gan yr allwedd.
O ganlyniad, mae hefyd yn eithaf ansicr.
Ond bydd sy'n gweithredu Caesar cyflwyno ni i ddata ASCIIMath ac amrywiaeth
strwythurau.
Byddwn yn mynd i fwy cymhleth dulliau cêl-ysgrifennu yn ddiweddarach.
Gyda Caesar allweddol 2, y llythyren A yn Byddai destun plaen yn cael ei gynrychioli gan
y llythyr C yn ciphertext oherwydd C yw y byddai dau lythyr ar ôl A. B fod yn
gynrychiolir gan D a C gan E. Tuag at diwedd y wyddor, W yn
gynrychiolir gan Y, a X gan Z. Ond Y Nid oes rhaid dau lythyr ar ôl iddo, felly
y dulliau cêl-ysgrifennu lapio o amgylch y wyddor.
Y yn destun plaen yn cael ei gynrychioli gan gan A yn ciphertext, a Z gan B. Gallai fod
helpu i weld y Cesar Cypher fel olwyn wyddor parhaus.
>> I encipher eu testun, y defnyddiwr fydd yn mynd dwy ddadl
i mewn i'r llinell orchymyn -
. / Cesar ddilyn gan allweddol.
Fel bob amser, ni allwn ymddiried yn y defnyddiwr yn gyfan gwbl i fynd i mewn mewnbwn sy'n gwneud
synnwyr ar gyfer ein rhaglen.
Felly bydd yn rhaid i ni ddilysu eu mewnbwn llinell orchymyn.
>> Yn hytrach na defnyddio int brif gwag, rydym yn ddefnyddio int brif, argc int, llinyn argv.
Mae'r argc amrywiol cyfanrif yn cynrychioli mae nifer o ddadleuon pasio i mewn i
'r archa bannod.
Ac argv yn amrywiaeth, neu'n meddwl am y peth fel rhestr, o'r dadleuon pasio i mewn
>> Felly, ar gyfer Cesar, sut ydym yn ddilysu fewnbwn y defnyddiwr?
Wel, dylid ond eu mynd i mewn dau dadleuon llinell orchymyn -
. / Cesar ac allwedd.
Felly, os nad argc yw 2, mae hynny'n golygu bod maent naill ai wedi anghofio allwedd a dim ond
gofnodi. / Cesar, neu eu bod yn cofnodi allweddi lluosog.
>> Os yw hyn yn wir, yna wnewch chi helpu eisiau argraffu cyfarwyddiadau
a gadael y rhaglen.
Bydd angen iddynt geisio eto o'r llinell orchymyn.
Ond hyd yn oed os argc yw 2, byddwch yn angen i wirio a ydynt yn
rhoi allwedd dilys i chi.
Ar gyfer Cesar, mae angen yn gyfanrif.
Ond argv mae amrywiaeth o llinynnau.
Sut ydych chi'n cael y allweddol?
>> Golwg cyflym ar araeau -
strwythurau data sy'n dal lluosog werthoedd o'r un math data.
Ceisiadau yn sero-indexed, sy'n golygu bod yr elfen gyntaf yw y sero mynegai
a'r elfen olaf ar faint mynegai minws 1, lle mae maint yn y nifer o
elfennau yn y rhesi.
>> Os byddaf yn datgan flwch post amrywiaeth llinyn newydd o hyd 3, yn weledol, mae'n
yn edrych fel hyn.
Tri cynwysyddion ar gyfer llinynnau , Ochr yn ochr.
I gael mynediad i unrhyw elfen, teipiwch yr enw y rhesi, ac yna dangos
y mynegai mewn cromfachau sgwâr.
Yma, rwy'n neilltuo gwerth i bob elfen, yn union fel y byddwn yn ei wneud gydag unrhyw
newidyn llinyn arall.
>> Felly, i gael gafael ar ein dadleuon llinell gorchymyn, pob mae'n rhaid i ni ei wneud yw cael mynediad
yr elfen dde o'r amrywiaeth argv.
Os yw'r defnyddiwr gofnodi Tîm. / Blastoff Roced i mewn i'r derfynell, byddai argv 0
fod. / blastoff.
Byddai argv fod Tîm, a Byddai arg2 yn roced.
>> Nawr ein bod yn gallu cael mynediad i'n allweddol, mae angen i ni wneud
siŵr ei fod yn gywir.
Mae angen i ni droi i mewn i gyfanrif.
Ond ni allwn ei bwrw fel rydym wedi ei wneud o'r blaen.
Yn ffodus, yr A i Y swyddogaeth yn cymryd gofal o hyn i ni a hyd yn oed yn dychwelyd 0
os na all y llinyn eu trosi i mewn i cyfanrif.
Mae i fyny i chi, fodd bynnag, i ddweud y defnyddiwr pam nad ydych yn
gadael i'r rhaglen symud ymlaen.
Storiwch y canlyniad A i Y mewn cyfanrif, ac mae gennych eich allwedd.
Mae'r rhan nesaf yn syml.
Annog y defnyddiwr ar gyfer eu testun plaen, a fydd o linyn fath data.
Yn ffodus i ni, bwydo pob defnyddiwr llinynnau yn ddilys.
>> Nawr ein bod i gyd mewnbwn angenrheidiol gan y defnyddiwr, mae'n amser i ni
encipher eu neges.
Mae'r cysyniad o Cesar yn syml digon i ddeall.
Ond sut mae eich cyfrifiadur yn gwybod pa llythyrau dod ar ôl ei gilydd?
>> Dyma lle y tabl ASCII yn dod i mewn
Mae pob cymeriad yn cael cyfanrif nifer sy'n gysylltiedig ag ef.
Cyfalaf yw 65.
Capital B yw 66.
Lythrennau bach a yw 97.
Llythrennau bach b yw 98.
Ond nid cymeriadau yn gyfyngedig i ddim ond rhifau wyddor.
Er enghraifft, mae'r symbol @ yw rhif ASCII 64.
>> Cyn ddelio gyda'r llinyn yn gyfan, gadewch i esgus rydym yn unig rhaid i ni symud
un cymeriad.
Wel, dim ond eisiau symud gwirioneddol llythrennau yn y testun plaen, nid
cymeriadau neu rifau.
Felly, y peth cyntaf y byddwn am ei gwirio yw a yw'r cymeriad yn
yr wyddor.
>> Mae'r isalpha swyddogaeth gwneud hyn ar gyfer ni ac yn dychwelyd Boolean -
yn wir os yw'r cymeriadau yn llythyr, ffug os fel arall.
Ddwy swyddogaeth defnyddiol eraill isupper a islower, gyda
enwau hunan-esboniadol.
Maent yn dychwelyd wir os gymeriad a roddir yn priflythyren neu llythrennau bach,
yn y drefn honno.
Gan eu bod yn booleans, maen nhw'n ddefnyddiol i'w defnyddio fel amodau.
>> Os isalpha yn dychwelyd yn wir, bydd angen i chi i symud y cymeriad gan yr allwedd.
Felly, gadewch i ni agored i ASCIIMath ac yn gwneud ychydig o cwestiwn ASCII.
Mae'r defnydd yn debyg iawn i'r defnydd ar gyfer Cesar ac yn cymryd mewn cywair yn y
llinell orchymyn.
>> Os byddaf yn rhedeg ASCIIMath 5, mae'n ymddangos i ychwanegu 5 i, gan roi llythyr f fi, a
arddangos y gwerth ASCII.
Felly, gadewch i ni edrych ar y rhaglen.
>> Efallai y byddwch yn meddwl tybed, dde yma, pam llythyr yn gyfanrif, pan mae'n
yn glir, yn dda, a llythyr.
Mae'n ymddangos bod cymeriadau a cyfanrifau yn ymgyfnewidiol.
Drwy roi'r llythyren A yn un dyfynodau, gall y cyfanrif storio
gwerth ASCII o gyfalaf A. Byddwch yn ofalus, er.
Mae angen y dillad unigol chi.
Heb y dyfynodau sengl, yr Byddai compiler chwilio am newidyn
enwir A, ac nid y cymeriad.
>> Yna mi ychwanegu lythyr ac allwedd, storio'r swm y newidynnau canlyniad int.
Er bod canlyniad yw o'r math ddata cyfanrif, fy natganiad printf yn defnyddio'r
% C cadw'r gymeriadau.
Felly, mae'r rhaglen printiau cymeriad sy'n gysylltiedig â'r canlyniad cyfanrif.
Ac ers i ni argraffu'r cyfanrif ffurf dda gan ddefnyddio% d, rydym yn gweld
nifer hefyd.
Felly, nawr gallwch weld ein bod drin cymeriadau a
cyfanrifau, ac i'r gwrthwyneb.
>> Gadewch i brawf allan ASCIIMath ychydig gwaith yn fwy gan ddefnyddio 25 fel allwedd.
Rydym yn cael y llythyr z.
Nawr rydym yn ceisio 26.
Rydym yn awyddus i gael y llythyr, ond yn lle hynny rydym yn cael braced chwith.
Felly, yn amlwg, dim ond ychwanegu y Ni fydd allweddol y llythyr yn ei wneud.
Mae angen i chyfrif i maes fformiwla i lapio o amgylch y wyddor, fel ein
enghraifft, yn y dechrau ei wneud.
>> Mae fformiwla ar gyfer y Cesar newid fel a ganlyn.
c yn hafal i p ynghyd k modwlo 26.
Cofiwch fod modwlo yn ddefnyddiol llawdriniaeth sy'n rhoi'r gweddill i ni
o rannu un rhif gan y llall.
Gadewch i ni wneud cais fformiwla hon i'r blaen Llythyr testun gyda allweddol o 2.
Mae gwerth ASCII o y yn 89, a yn rhoi i ni 91 modwlo 26,
sy'n hafal i 13 -
yn bendant nid y gwerth ASCII o, sef 67.
>> Hiwmor mi yn awr ac yn symud i ffwrdd oddi wrth y Gwerthoedd ASCII i mynegai yn nhrefn yr wyddor
lle mae A yn sero a Z yw 25, sy'n golygu bod Y yn 24.
24 a 2, modwlo 6, yn rhoi i ni 26, modwlo 26, 0, sef y
mynegai yn nhrefn yr wyddor a.
Felly, y fformiwla hon yn ymddangos i wneud cais i'r Mynegai yn nhrefn yr wyddor o'r llythyr a
nid yw ei werth ASCII.
>> Ond byddwch yn dechrau gyda gwerthoedd ASCII.
Ac i argraffu'r cymeriad ciphertext, bydd angen i chi ei werth ASCII hefyd.
Mae i fyny i chi, yna, er mwyn chyfrif i maes sut i newid yn ôl ac ymlaen.
>> Ar ôl i chi chyfrif i maes y fformiwla gywir ar gyfer un cymeriad, mae angen i bob i chi ei wneud
yn cymhwyso'r un fformiwla i bob llythyr yn y testun plaen -
dim ond os y llythyr hwnnw yn nhrefn yr wyddor, wrth gwrs.
A chofiwch fod angen i chi gadw yn wir, uwch neu'n is, dyna lle
y isUpper a swyddogaethau isLower a grybwyllwyd yn gynharach yn dod i mewn 'n hylaw.
Efallai y bydd gennych ddwy fformiwla -
un ar gyfer llythyrau priflythyren ac un ar gyfer llythrennau bach.
Felly isUpper bydd isLower eich helpu pennu pa fformiwla i wneud cais.
>> Sut mae gwneud cais eich fformiwla i bob gymeriad sengl mewn llinyn?
Wel, mae llinyn yn unig yw amrywiaeth o gymeriadau.
Felly, gallwch gael gafael ar bob cymeriad yn ôl grwpio dros bob cymeriad yn y
llinyn mewn i ddolen.
Fel ar gyfer y cyflwr eich am ddolen, y swyddogaeth strlen, er llinyn
hyd, yn dod mewn 'n hylaw.
Mae'n cymryd mewn llinyn fel mewnbwn a dychwelyd hyd y llinyn.
Gwnewch yn siwr i gynnwys y llyfrgell cywir i ddefnyddio'r swyddogaeth hyd llinyn.
>> Ac yno i chi gael eich ciphertext.
Fy enw i yw y Zamyla.
Ac [COD SIARAD].