>> ZAMYLA CHAN: Zorionak Zure bukatzean
C programen pare lehen.
Badakit zure lehen egindako saiakera bihurtzen dela C sintaxia gogorra izan daiteke.
Baina zuk ziurtatzen dut, eta amaieran noski, ahal izango begiratu beharko duzu
Lehenengo zereginak pare eta horiek osatzeko minutuan.
>> Orain ari zaren gehiago ezagutzen lortzean sintaxia batera, Goazen Zesar iritsi.
Zesarri, erabiltzaileak bat aurkeztuko du komando-lerro bat gako osokoa
argumentua, eta sartu lautada batean text gonbitan mezua.
Programa egingo encipher testua eta inprimatu
ciphertext beren mezua.
>> César for enciphering du nahiko erraza da.
Shift gutun den, euren testu soila, gakoak.
Ondorioz, baita ere, da Nahiko ziurra.
Baina ezartzeko César egingo sartzea gaitu ASCIIMath eta array datuak
egiturak.
Konplexuagoa ikusiko dugu zifraketen geroago.
2 giltza Caesar, a letra batean testu arrunta izango litzateke irudikatzen
ciphertext C hizkia C delako bi A. B ondoren letrak litzateke
D eta C irudikatzen E. by Hacia alfabetoaren bukaeran, W da
Y, eta X irudikatzen Z. Baina Y ez du bi letrak ondoren, beraz,
zifraketen alfabetoaren inguruan biltzen.
Testu arruntean Y horrela irudikatzen arabera Ciphertext A, B eta Z daiteke arabera
laguntzeko César Cypher ikusi nahi etengabeko alfabetoa gurpila.
>> Bere testua, erabiltzaileak nahi encipher Bi argumentu sartuko
komando-lerroa sartu -
. / César gako bat.
Beti bezala, ez dugu fidatu erabiltzailea erabat sarrera osatzen duten sartu
gure programa zentzua.
Beraz, bere balioztatzeko dugu komando lerro sarrera.
>> Horren ordez, int nagusia void erabiliz, gara int nagusia, int argc, kate argv erabiliz.
Osoko aldagai argc adierazten gainditu sartu argumentu kopurua
komando-lerroa.
Eta argv array bat da, edo pentsatzen zerrenda bat, argudio gainditu sartu
>> Beraz, Zesarri, nola ez dugu baliokidetu erabiltzailearen sarrerako?
Beno, bakarrik behar dira sartzen bi komando-lerroko argumentuak -
. / César eta gakoa.
Beraz argc ez bada, 2, horrek esan nahi du ahaztua bai dute gako bat, eta besterik ez
sartu. / César, edo sartu anitz gakoak.
>> Hori horrela bada, orduan izango duzu nahi argibideak inprimatu nahi
eta irten programatik.
Behar berriro saiatu dira ikusiko komando-lerrotik.
Baina nahiz argc 2, ikusiko duzu egiaztatu behar dute, ala ez
ematen duzu baliozko gakoa.
César baterako, zenbaki oso bat behar duzu.
Baina argv kate multzo bat da.
Nola gako sartzeko duzu?
>> Array begirada A -
Datu egiturak eutsi anitz du datu-mota bereko baloreak.
Sarrerak zero indexatuetan, esanahi lehen elementuaren indizea zero da
eta azken elementu indizearen tamaina da ken 1, non tamaina zenbaki bat da
en array elementuak.
>> Deklaratu nuen berri bat kate array postontzia bada luzera 3, ikusmen, it
itxura hau.
Hiru kateak edukiontziak , Aldamenean.
Elementu sartzeko, izena idatzi duzu array, eta, ondoren, adierazi
kortxete artean indizea.
Hemen, balio bat naiz esleitzea bakoitzean elementu bezala, edozein nuke
beste aldagai katea.
>> Beraz, gure komando-lerroko argumentuak sartzeko, guztiak egin behar dugu sartzeko
argv array elementu eskubidea.
Erabiltzaile sartu. / Blastoff Team bada Terminal sartu Rocket, argv 0 litzateke
izango da. / blastoff.
argv Team izango litzateke, eta arg2 suziria izango litzateke.
>> Orain dela gure gakoa sartu ahal izango dugu, behar dugu oraindik ere egiteko
Ziur dela zuzena.
Bihurtzeko zenbaki oso bat sartu behar dugu.
Baina ezin dugu besterik gabe bota bezalako egin dugu aldez aurretik.
Zorionez, A Y funtzioa hartzen du zainketa Gurekin honetan, eta are gehiago, 0 itzultzen du
katea ezin bada bihurtu zenbaki oso bat da.
Zer egiten duzu, nahiz eta, kontatzeko Erabiltzaile zergatik ez duzu
utzi programa jarraitzeko.
Denda emaitza Y batean osokoa, eta ez zure gako duzu.
Hurrengo zatia erraza da.
Galdetu duen testu laueko erabiltzailea, hau da, datu-mota katea izan behar du.
Zorionez guretzat, erabiltzaile guztiak sartu kateak egokiak dira.
>> Orain dela beharrezkoa sarrera guztiak dugu erabiltzailearen digu denbora da
encipher beren mezua.
César kontzeptu sinplea da nahikoa ulertzen.
Baina, nola egin zure ordenagailua ez dakigu zein letrak bata bestearen atzetik etorri?
>> Hemen ASCII taula dator sartu
Karaktere bakoitzak zenbaki oso bat dauka zenbakia da lotuta.
Ekipo-A 65 da.
Ekipo-B 66 da.
Minuskula bat da, 97.
Minuskulaz b 98 da.
Baina pertsonaiak ez daude mugatuta besterik alfabetiko zenbakiak.
Adibidez, @ ikurra ASCII kopurua 64 da.
>> Kate osoan aurre egin aurretik, dezagun nahi dute, besterik ez dugu mugitzeko
ko pertsonaia.
Beno, besterik ez dugu nahi, benetako mugitzeko en testu arruntaren letrak, ez
karaktere edo zenbakiak.
Beraz, lehenengo gauza garela nahi izango duzu egiaztatu da pertsonaia ala ez da
alfabetoa.
>> Funtzioa isalpha du honentzat gurekin eta boolear bat itzultzen du -
pertsonaiak bada gutun bat, bestela faltsua bada.
Beste bi funtzio erabilgarria isupper eta islower, batera
auto-azalpen izenak.
Egia itzuliko dira emandako pertsonaia bada da letra larriz edo xehez,
hurrenez hurren.
Dira Booleans geroztik, dute Oraindik erabilgarria baldintza gisa erabiltzeko.
>> Isalpha itzultzen Egia bada, beharko duzu pertsonaia hori mugitzeko gakoak.
Hargatik nahi ASCIIMath ireki eta zer ASCII math batzuk.
Erabilera oso erabilera antzekoa César eta tekla bat hartzen
komando-lerroa.
>> Exekutatu dut ASCIIMath 5 izanez gero, gehitu badirudi 5 bat, me emanez gutun f, eta
ASCII balioa bistaratzeko.
Beraz dezagun programa begirada bat.
>> Buruari galdetzen, zenuke hemen, zergatik gutun oso bat da, noiz da
argi eta garbi, bai, gutun batean.
Bihurtzen da, eta pertsonaiak duten osokoak dira aldagarriak.
Letra bakar bat jarriz arabera komatxo, osokoa dezakezu gordetzeko
kapital ASCII balioa A. Kontuz, baina.
Bakar arropa behar duzu.
Duen aurrekontua bakar markak gabe, konpiladore litzateke aldagai baten bila
izeneko bat, eta ez pertsonaia.
>> Ondoren, gutun eta gako bat gehitu dut, gordetzeko aldagai int emaitza batura.
Nahiz eta emaitza datuak motakoa da osokoa, nire printf adierazpena erabiltzen
% C karaktere biltegia.
Beraz, programa pertsonaia bistaratzen osoko emaitza lotutako.
Eta inprimatutako dugu osokoa noiztik forma baita% d erabiliz, ikusiko dugun
kopurua ere.
Beraz, orain ikusi ahal izango dituzu, guk tratatzeko eta pertsonaiak
osokoak, eta alderantziz.
>> Dezagun proba ASCIIMath gutxi bat 25 aldiz gehiago erabiltzen gako gisa.
Gutun-z lortzen dugu.
Orain 26 saiatu gara.
Gutun bat lortu nahi dugu, baina ordez ezkerreko tarte bat lortuko dugu.
Beraz, jakina, besterik gehituz Letra gakoa ez egiteko.
Irudikatu nahi formula bat bildu behar dugu alfabetoaren inguruan, gure
hasieran egin zuen adibidez.
>> Zesarren formula bat shift ondorengoa da.
c berdin p plus k modulo 26.
Gogoratu modulo dela baliagarria Eragiketa ematen dizkigun gainerako
ko kopurua zatituz beste bidez.
Dezagun aplikatzen formula hau lautada Testu 2 gakoa duen eskutitza.
Y ASCII balioa 89 da, eta hori ematen digu 91 modulo 26,
horrek berdin 13 -
zalantzarik ez ASCII balioa bat, eta hori da, 67.
>> Umorea dit orain, eta urruntzen hasita ASCII alfabetoaren indizea balioak
non A zero eta Z da, 25, Y dela 24 zentzua.
24 gehi 2, modulo 6, ematen digu 26, modulo 26, 0, eta hori da,
alfabetiko baten indizea.
Beraz, formula hori badirudi du aplikatzen alfabetoaren gutun-indizea eta
ez bere ASCII balioa.
>> Baina hasteko balio ASCII dezakezu.
Eta ciphertext pertsonaia inprimatzeko, bere ASCII balioa beharko duzu ere.
Egin arte, eta ondoren, irudikatu nahi nola atzera eta aurrera aldatzeko.
>> Bein eskubidea formula karaktere bat, eta behar duzun guztia egin
formula bera aplikatuko da, behin testu soileko letra -
bada bakarrik gutun dela alfabetikoa, noski.
Eta gogoratu behar duzula gorde kasuan, goiko edo txikiagoa da, non da
isUpper eta isLower funtzioak Arestian esan izango handy etorriko.
Bi formula izan dezakezu -
hizki larri bat eta minuskulaz bat.
Beraz isUpper isLower beti lagunduko dizu zehaztu zein formula aplikatu beharko da.
>> Nola zure formula aplikatzen duzun bakoitzean kate batean pertsonaia bakar?
Beno, kate bat besterik ez da beti karaktere array.
Beraz, pertsonaia bakoitzak sartu ahal izango duzu pertsonaia behin baino gehiago elkartuz
Kate bat begizta da.
Zure egoera begizta egiteko moduan, funtzioa strlen, katea
luzera izango handy etorriko.
Kate bat hartzen ditu sarrera moduan eta katea itzultzen duten iraupena.
Ziurtatu eskubidea liburutegi sartzea katea luzera funtzioa erabiltzeko.
>> Eta ez dago zure ciphertext duzu.
Nire izena Zamyla da.
Eta [Mintzamena CODE].