>> [Mūzikas atskaņošanai]
SPEAKER: Nu labi.
Tātad parunāsim par citu lieta, kas ir sava veida unikāla C,
kas ir datu tipi un mainīgie.
Kad es saku unikāla C, es patiešām tikai nozīmē kontekstā,
ja esat bijis programmētājs par patiešām ilgu laiku,
Jūs, iespējams, nav strādāja ar datu tipiem
Ja jūs esat izmantojis mūsdienu programmēšanas valodas.
Mūsdienu valodas, piemēram, PHP un JavaScript,
ko mēs arī redzam nedaudz vēlāk par gaitā,
jums nav faktiski ir jānorāda datu tips ir mainīgs
kad jūs to izmantot.
>> Jūs vienkārši atzīt to un sākt to lietot.
Ja tas ir vesels skaitlis, to zinu, tas ir vesels skaitlis.
Ja tas ir raksturs, tas ir zina, tas ir raksturs.
Ja tas ir vārds, tas zina tas ir string, tā saukto.
>> Bet C, kas ir vecāki valoda, mums ir nepieciešams
precizēt datus Katra mainīgā tips
ka mēs izveidotu pirmo reizi ka mēs izmantojam šo mainīgo.
Tātad C nāk ar dažiem iebūvēts datu tipu.
Un pieņemsim iepazītos ar dažiem no tiem.
Un tad pēc tam mēs arī runāt Mazliet par kādu no datu tipu
ka mēs esam rakstīts par jums, lai jūs varētu izmantot tos CS50.
>> Pirmais ir int.
Int datu tips ir izmantots mainīgajiem lielumiem kas būs saglabāt veselus skaitļus.
Tātad, 1, 2, 3, negatīvs 1, 2, 3, un tā tālāk.
Veseli skaitļi, kas ir kaut kas jums jāpatur prātā viktorīnas,
vienmēr aizņem četri baiti atmiņas, kas ir 32 biti.
Ir astoņi bitu baitu.
>> Tas nozīmē, ka ir intervālā vērtē, ka skaitlis var uzglabāt
ir ierobežots ar to, ko var ietilptu 32 biti vērts informācijas.
Tagad, kā izrādās, tas sen bija pirms nolemts
ka mēs varētu sadalīt ka diapazons 32 bitu
uz negatīviem veseliem skaitļiem un pozitīvi veseli skaitļi,
katrs kļūst puse no diapazona.
Tātad diapazonā no vērtībām, ko mēs pārstāvam ar veselu diapazonā no negatīva 2
līdz 31. varas 2 līdz par 31. jauda mīnus 1,
radīt jums nepieciešama arī spot 0.
>> Tātad būtībā puse no iespējamām vērtībām Jūs varat iederēties int ir negatīvi,
un puse ir pozitīvi.
Un aptuveni šeit, tas ir par negatīvs 2 miljardus par pozitīvo 2 miljardiem.
Dot vai ņemt pāris simti miljonu.
Tātad tas, ko jūs varat fit in skaitlim mainīgo.
Tagad mums ir arī kaut kas sauc neparakstīts skaitlis.
Tagad neparakstītu Ints neesat atsevišķa tipa mainīgo.
Drīzāk, neparakstīts ir ko sauc par kvalifikācijas.
Tas maina datus no skaitlim veids nedaudz.
>> Un šajā gadījumā, ko neparakstīts means-- un jūs varat arī
izmantot neparakstītu citu datu tipu, skaitlim ir ne tikai viens.
Ko tas faktiski tas ir dubultspēlē pozitīvo vērtību diapazons
ka skaitlis var uzņemties at rēķina vairs neatļauj
Jūs uzņemties negatīvām vērtībām.
Tātad, ja jums ir numuri, ka jūs zināt saņems augstākas nekā 2 miljardi, bet mazāk
nekā 4 miljardus, lai example-- kas ir no 2 līdz 32. power--
jūs varētu vēlēties, lai izmantotu neparakstīts int ja jums
zināt jūsu vērtība nekad būs negatīvs.
>> Jums dažkārt ir izmanto neparakstītu mainīgajiem
in CS50, kas ir iemesls, kāpēc es pieminēt to šeit.
Bet atkal, vērtību diapazons, kas jums var pārstāvēt ar neparakstītu skaitlim
kā t regulāru skaitli, ir 0 2. līdz 32. varas mīnus 1,
vai aptuveni no 0 līdz 4 miljardiem.
Tātad jūs esat faktiski dubultojies pozitīvs diapazons, ka jūs varat fit,
bet jūs esat atteicies visu negatīvās vērtības.
>> Tagad kā malā, neparakstīts ir ne tikai kvalifikators
ka mēs varētu redzēt mainīgās datu tipi.
Ir arī lietas, ko sauc īstermiņa un ilgtermiņa un const.
Const mēs redzēsim nedaudz Brīdi vēlāk gaitā.
Īss un garš, mēs, iespējams, nebūs.
>> Bet tikai zinu, ka tur ir citas kvalifikācijas.
Neparakstīts ir ne tikai viens.
Bet tas ir tikai viens, mēs esam gatavojas runāt par tieši tagad.
Tātad viss labi.
Tāpēc mēs esam uz veseli skaitļi.
Kas tālāk?
>> Simboli.
Tātad chars tiek izmantoti mainīgie kas būs saglabāt atsevišķus rakstzīmes.
Char ir īss raksturs.
Un dažreiz jūs varētu dzirdēt cilvēki izrunāt to kā auto.
>> Tātad zīmes vienmēr aizņem vienu baitu atmiņas, kas ir tikai 8 biti.
Tātad tas nozīmē, ka viņi var tikai fit vērtības diapazonā Negatīvā 2
septītajam varas, vai negatīvs 128, 2 līdz 7. varas mīnus 1, vai 127.
>> Pateicoties ASCII, tas bija sen nolēma ceļu
kartēt šos pozitīvos skaitļus no 0-127 ar dažādiem varoņiem
ka viss pastāv uz mūsu klaviatūras.
Tātad, kā mēs redzēsim vēlāk in kurss, un jūs, iespējams,
pienācis iegaumēt dažus punkts, kapitāls A, par example--
raksturs kapitāls A-- kartes ar numuru 65.
Un iemesls tam ir jo tas, kas ir, tas ir
piešķirts ar ASCII standartā.
>> Mazie A ir 97.
Raksturs 0, kad jums faktiski ierakstiet rakstzīmi, ne
norāda, cik nulles, ir 48.
Jūs uzzināsiet pāris no šiem, kā jums iet.
Un jūs noteikti nāk nepieciešama viņiem mazliet vēlāk CS50.
>> Nākamais lielais datu tips ir peldošā komata skaitļus.
Tātad peldošo punktu numuri pazīstams arī kā reāliem skaitļiem.
Viņi būtībā numuri, kas ir Decimālzīmi tiem.
Peldošā komata vērtības tāpat kā veseli skaitļi ir arī
ietvertas 4 baiti atmiņas.
Tagad tur nav diagramma šeit.
Nav numurs līnijas, jo aprakstot klāstu pludiņa
Nav īsti skaidrs, vai intuitīvi.
>> Pietiek pateikt jums ir 32 biti strādāt.
Un, ja jums ir vairāki piemēram, Pi, kas ir
vesels skaitlis daļa 3, un peldoša punkts daļa, vai decimālā daļa 0,14159,
un tā tālāk, jums ir jābūt spējīgs pārstāvēt visus it--
veselā skaitļa daļa un decimālais daļa.
>> Tātad, ko jūs domājat, ka varētu nozīmēt?
Viena lieta ir tā, ka, ja aiz komata daļa izpaužas ilgāk un ilgāk,
ja man ir ļoti liels skaitlis daļa, es varētu ne
varētu būt kā precīzs ar decimālo daļu.
Un tas ir patiešām ierobežošana apgrozāmos līdzekļus.
>> Pludiņi precizitāte problēmu.
Mums ir tikai 32 biti uz strādāt, lai mēs varam tikai
būt tik precīzs ar mūsu decimālo daļu.
Mēs nevaram vienmēr būt decimālo daļa precīzi līdz 100 vai 200 cipariem,
jo mums ir tikai 32 biti strādāt.
Tātad tas ir ierobežojums, apgrozāmos līdzekļus.
>> Tagad par laimi tur ir citu datu tipu sauc
dubultā, kas nedaudz nodarbojas ar šo problēmu.
Dubultspēlē, piemēram, pludiņiem, tiek izmantoti arī, lai uzglabāt reāliem skaitļiem, vai peldošā komata
vērtības.
Atšķirība ir tā, ka dubultspēlē ir dubultā precizitāte.
Tās var ietilpt 64 biti dati, vai astoņi baiti.
Ko tas nozīmē?
Nu, tas nozīmē, ka mēs varam būt daudz vairāk precīzs ar komata.
Tā vietā, PI līdz septiņiem vietas varbūt, ar pludiņa,
mēs varam varbūt ir to 30 vietām.
Ja tas ir svarīgi, jūs varētu vēlēties, izmantoja dubultā vietā pludiņa.
Būtībā, ja jūs esat strādā kaut kur
kam ļoti ilgu zīmi aiz komata un daudz precizitāte ir svarīga,
Jūs droši vien vēlaties izmantot dubultu overfloat.
Tagad lielākā daļa no jūsu darba CS50, pludiņš vajadzētu pietikt.
Bet vai zināt, ka eksistē divkāršo kā veids, kā nedaudz galā ar precizitāti
Problēma, sniedzot jums papildus 32 bits strādāt ar jūsu numuriem.
>> Tagad tas nav datu tips.
Tas ir veids.
Un to sauc par spēkā neesošu.
Un es runāju par to šeit, jo mēs esam droši
redzējuši pāris reizes jau ar CS50.
Un jūs varētu būt jautājums kas tas viss ir par.
>> Tātad neesošu ir veids.
Tas pastāv.
Bet tas nav datu tips.
>> Mēs nevaram izveidot mainīgo tipa neesošu un piešķirt vērtību.
Bet funkcijas, piemēram, var būt spēkā neesošs atgriešanās veidu.
Būtībā, ja redzat funkcija kas ir spēkā neesošs atgriešanās veidu,
tas nozīmē, ka neatgriežas vērtību.
Vai tu domā par kopēju funkcija, kas mēs esam izmantojuši līdz šim
in CS50 ka neatgriežas vērtību?
>> Printf ir viens.
Printf nav reāli atgrieztos kaut ko jums.
Tas drukā kaut uz ekrāns, un tas ir pamatā
blakusparādība ko printf dara.
Bet tas nedod jums vērtību atpakaļ.
Jums nav uztveršanas rezultātu un veikalu tas kaut kādā mainīgo, lai izmantotu to vēlāk.
Tā vienkārši drukā kaut ko ekrāns un jūs darīts.
>> Tāpēc mēs sakām, ka printf ir spēkā neesošu funkcija.
Tas atgriež neko.
>> Perimetru saraksts funkcija var būt arī par spēkā neesošu.
Un jūs esat redzējuši, ka diezgan daudz CS50 too.
Int galvenais neesošu.
Vai tas gredzens bell?
Būtībā, ko tas nozīmē, ka Galvenais neņem nekādus parametrus.
Nav argumentu, ka get nonāca galvenais.
Tagad vēlāk mēs redzēsim, ka ir veids, kā nodot argumentus par galveno,
bet līdz šim tas, ko mēs esam redzējis ir int galvenais spēkā neesošu.
Galvenā vienkārši neveic nekādus argumentus.
Un tā mēs noteikt, ka, pasakot par spēkā neesošu.
Mēs esam vienkārši ir ļoti skaidri par to,
ka tas neveic nekādus argumentus.
>> Tātad tagad, pietiek teikt, ka par spēkā neesošu būtībā
tikai vajadzētu kalpot kā vietturi Jums kā domāt par neko.
Tas nav īsti darīt neko.
Nav atgriešanās vērtība šeit.
Nav parametri šeit.
Tas neatbilst patiesībai.
Tas ir nedaudz sarežģītāka nekā.
Bet tas vajadzētu pietikt labāk kursa daļa.
Un cerams, tagad jums ir maz mazliet vairāk par koncepciju par to, kas ir spēkā neesošs.
>> Tātad tie ir pieci veidi, jūs sastapšanās, kas ir iebūvēts uz C.
Bet CS50 mums ir arī bibliotēka.
CS50.h, kas var ietvert.
Un kas sniegs jums ar divām papildu veidus
ka jūs, iespējams, varētu izmantot jūsu uzdevumu,
vai vienkārši strādā vispār programmēšana.
>> Pirmais no tiem ir bool.
Tātad Būla datu tipu, bool, tiek izmantota, lai mainīgajiem lielumiem
kas būs uzglabāt Būla vērtību.
Ja jūs esat kādreiz dzirdējuši Šis termins pirms, jums
varētu zināt, ka Būla vērtība ir spējīga tikai
turot divas dažādas atšķirīgas vērtības.
Patiess un viltus.
Tagad tas šķiet diezgan pamattiesības, vai ne?
Tas ir sava veida pārsteigums, ka šī neeksistē C, kā tas ir iebūvēts.
Un daudzās mūsdienu valodās, protams, Booleans
ir standarta noklusējuma datu tips.
Bet C, viņi patiesībā nav.
Bet mēs esam izveidojuši to you.
Tātad, ja jums kādreiz ir nepieciešams, lai izveidotu mainīgais lielums, kura tips ir bool,
vienkārši būt pārliecināti, lai # Ietvert CS50.h sākumā savu programmu,
un jūs varēsiet radīt mainīgie no bool tipa.
>> Ja esat aizmirsis #include CS50.h, un sākat izmantot Boolean tipa mainīgos,
jums varētu rasties zināmas problēmas ja jūs apkopojot savu programmu.
Tik vienkārši būt par Lookout par to.
Un varbūt jūs varat vienkārši Noteikt problēmas ar mārciņu ieskaitot CS50.h.
>> Otrs lielākais datu tips, kas mums nodrošināt, lai jūs par CS50 bibliotēkā
ir virkne.
Tātad, kas ir string?
Stīgas ir tiešām tikai vārdi.
Viņi kolekcijas rakstzīmes.
Viņi vārdus.
Viņi teikumus.
Viņi punktus.
Varētu būt veselas grāmatas, pat.
>> Ļoti īsā ļoti ilgi sērijas burtiem.
Ja jums ir nepieciešams, lai izmantotu stīgas, piemēram, lai saglabātu vārdu,
vienkārši būt pārliecināti, lai iekļautu CS50.h sākumā savā programmas
lai jūs varētu izmantot virkni veidu.
Un tad jūs varat izveidot mainīgos kuru datu tips ir virkne.
Tagad vēlāk gaitā, mēs arī redzam, ka tas ir
nav viss stāsts, vai nu.
Mēs sastopas lietas sauc par struktūras,
kas ļauj jums grupai, ko var būt vesels skaitlis un string vienā vienībā.
Un mēs varam izmantot, ka daži mērķi, kas varētu
noderēs vēlāk gaitā.
>> Un mēs arī iemācīties par noteikta veida,
kas ļauj jums izveidot Jūsu pašu datu tipi.
Mums nav jāuztraucas par to tagad.
Bet tikai zinu, ka tas ir kaut pie horizonta,
ka tur ir daudz vairāk, lai šo visu tipa lieta, nekā es esmu stāsta jums tikai
tagad.
Tāpēc tagad, ka mēs esam iemācījušies Mazliet par izejas datu
veidi un CS50 datu tipi, pieņemsim runāt par to, kā strādāt ar mainīgajiem
un izveidot tos izmantojot šos datu tipi mūsu programmās.
Ja jūs vēlaties, lai izveidotu mainīgo, viss, kas jums jādara, ir divas lietas.
>> Pirmkārt, jums ir nepieciešams, lai dotu tai veidu.
Otrā lieta, jums ir nepieciešams, to darīt, ir arī tā nosaukumu.
Tiklīdz jūs esat darījuši, un cirta semikolu beigās, šīs līnijas,
Jūs esat izveidojis mainīgo.
>> Tātad, šeit ir divus piemērus.
Int numurs; char vēstule ;.
Ko es esmu darījis šeit?
Esmu izveidojis divus mainīgos.
>> Pirmais, mainīgais s nosaukums ir numurs.
Un skaits ir spēj noturēt vesels skaitlis ierakstiet vērtības, jo tās tips ir int.
Vēstule ir cita mainīga ka var turēt rakstzīmes
jo tā datu tips ir char.
>> Diezgan vienkārši, vai ne?
Ja jums atrast sev situācijā, kad
Jums ir nepieciešams, lai izveidotu vairākus mainīgie viena un tā paša tipa,
Jums tikai nepieciešams norādīt veids nosaukums reizi.
Tad tikai sarakstu, jo daudzi mainīgie šāda veida, kā jums nepieciešams.
>> Lai es varētu, piemēram, šeit Šajā trešajā rindā kodu,
teikt int augstums ;, jaunu līniju.
Int platums ;.
Un kas varētu strādāt too.
Man joprojām saņemt divi mainīgie sauc augstums un platums, katrs no kuriem
ir vesels skaitlis.
Bet es esmu atļauts, lietas C sintaksi, nostiprināt to vienā rindā.
Int augstums, platums; Tas ir tas pats.
Esmu izveidojis divus mainīgos, viens sauc augstums viens sauc platums, kas abi
spēj saimniecības skaitlim tipa vērtības.
>> Tāpat šeit, es varu izveidot trīs peldošā punkta vērtības uzreiz.
Es varu varbūt izveidot mainīgo sauc kvadrātsakne no 2--
kas, iespējams, galu galā turiet peldošā point--
ka pārstāvība laukumā sakne 2-- kvadrātsaknes 3, un pi.
Es varētu darīt šo uz trim atsevišķām līnijām.
Float, kvadrātsaknes 2; Float kvadrātsakni 3; peldēt pi; un kas varētu strādāt too.
>> Bet atkal, es varu tikai konsolidēt šis vienā koda rindu.
Padara lietas mazliet īsāks, nevis kā clunky.
>> Tagad vispār, tas ir labs dizains, lai tikai deklarēt mainīgo, kad jums to vajag.
Un mēs runāsim nedaudz mazliet vairāk par to, ka
vēlāk par gaitā kad mēs apspriestu jomu.
Līdz ar to nav obligāti nepieciešams izveidot visas jūsu mainīgo
sākumā ar programmu, kas Daži cilvēki, iespējams, ir darījuši pagātnē,
vai noteikti bija ļoti bieži pirms kodēšanas praksi daudziem gadiem
strādājot ar C. jūs varētu vienkārši vēlas izveidot mainīgo taisnība, kad
jums to vajag.
Viss kārtībā.
Tāpēc mēs esam izveidojuši mainīgos.
Kā mēs tos izmantot?
Pēc mēs deklarēt mainīgs, mums nav vajadzīga
norādīt datu tipu Minētās mainīgo vairs.
Patiesībā, ja jūs to darāt, jūs varētu beigties ar dažiem dīvaini sekām
ka mēs veida notušēt tagad.
Bet pietiek pateikt, dīvaini lietas notiek
sākt notiek, ja jūs nejauši atkārtoti deklarēt mainīgos ar tādu pašu nosaukumu
atkal un atkal.
>> Tātad, šeit man ir četras rindiņas kodu.
Un man ir pāris KOMENTĀRI Pagaidām vēl tikai norādot
kas notiek Katra līnija tikai, lai palīdzētu
jums atrodas, kas notiek.
Tātad int skaits ;.
Tu redzēji, ka iepriekš.
Tas ir mainīgs deklarācija.
>> Esmu tagad izveidojis mainīgo sauc numurs, kas ir
spēj noturēt skaitlim tipa vērtības.
Esmu deklarēta to.
>> Nākamais rindā es esmu piešķirot vērtība uz numuru.
Skaits ir vienāds ar 17.
Kas tur notiek?
Es esmu liekot skaitu 17 iekšpusē šo mainīgo.
>> Tātad, ja es kādreiz pēc tam izdrukāt ko saturs skaitu ir vēlāk,
tie būs man pateikt, tas ir 17.
Tāpēc es esmu deklarēts mainīgo, un tad es esmu piešķirts to.
>> Mēs varam atkārtot procesu atkal ar char vēstuli ;.
Tas ir deklarācija.
Vēstule vienāds kapitāls H. Tas cesiju.
Diezgan vienkārši, too.
>> Tagad šis process varētu likties veida muļķīgi.
Kāpēc mēs to darām divas rindiņas kodu?
Vai ir labāks veids, kā to izdarīt?
Patiesībā, tur ir.
Reizēm jūs varētu redzēt šo sauc inicializācijas.
Tas ir tad, kad tu deklarēt mainīgo un piešķirtu vērtību, tajā pašā laikā.
Tas ir faktiski diezgan kopīga lieta darīt.
Kad jūs izveidot mainīgo, jūs parasti vēlaties, lai ir dažas pamata vērtības.
Pat ja tas ir 0 vai kaut kas.
Jūs vienkārši jums arī tā vērtību.
>> Jūs varat inicializēt mainīgo.
Int skaits ir vienāds ar 17, ir tas pats, kas pirmās divas rindiņas koda up iepriekš.
Char burts vienāds h ir tāds pats kā trešā un ceturtā rindiņas kodu.
Svarīgākais takeaway šeit kad mēs esam deklarējot un piešķirot
mainīgie ir pēc mēs esam pasludināja to, paziņojums
Es neesmu, izmantojot datu tipu vēlreiz.
Es nesaku int skaits ir vienāds ar 17 otrā rindā kodu, piemēram.
Es tikai saku, skaits ir vienāds ar 17.
>> Atkal, atkārtoti paziņojot, mainīgo pēc Jūs esat jau paziņoja, tas var novest
zināmā dīvaini sekas.
Tik vienkārši jābūt uzmanīgiem ar to.
>> Es esmu Doug Lloyd.
Un tas ir CS50.