[Daqq tal-mużika] SPEAKER: Kull dritt. Mela ejja nitkellmu dwar ieħor ħaġa li tip ta 'unika biex Ċ, li huwa tipi ta 'data u fatturi varjabbli. Meta I say unika biex Ċ, I really jfisser biss fil-kuntest ta ', jekk inti kont qed programmer għal żmien twil verament, inti stajt probabilment mhux ħadem ma tipi ta 'data jekk inti ħadthom użati moderna lingwi ta 'programmar. Lingwi moderni bħall PHP u JavaScript, li aħna ser tara wkoll ftit aktar tard fil-kors, inti ma attwalment jkollhom jispeċifikaw dejta tat-tip ta 'varjabbli meta tużah. Inti biss tiddikjaraha u tibda tuża din. Jekk huwa integer, huwa taf huwa integer. Jekk huwa karattru, huwa jaf huwa karattru. Jekk huwa ftit kliem, hija taf huwa string, hekk imsejħa. Iżda fis-C, li hija lingwa anzjani, għandna bżonn li tispeċifika d-data tip ta 'kull varjabbli li noħolqu l-ewwel darba li nużaw dak il-varjabbli. Allura C jiġi ma 'xi mibnija fil-tipi ta 'data. U ejja nikseb familjari ma xi wħud minn dawk. U allura wara aħna ser nitkellmu wkoll a ftit dwar xi wħud mill-tipi ta 'data li konna bil-miktub għalik, sabiex inti tista 'tużahom fil CS50. L-ewwel huwa int. Dejta tat-tip int tintuża għall-varjabbli li se taħżen valuri numru sħiħ. Allura 1, 2, 3, negattiv 1, 2, 3, u l-bqija. Interi, li hija xi ħaġa li għandu jżomm f'moħħu għall-kwizz, dejjem jieħdu erba 'bytes tal-memorja, li huwa 32 bits. Hemm tmien bits fi byte. Allura dan ifisser li l-firxa ta ' valuri li integer jista 'jaħżen huwa limitat b'liema jistgħu joqogħdu ġewwa 32 bits jiswew ta 'informazzjoni. Issa kif jirriżulta, kien twil ilu deċiż li aħna se jinqasam dik il-medda ta '32 bit fis interi negattivi u interi pożittivi, kull nofs jkollna tal-medda. Allura l-firxa ta 'valuri li aħna jirrappreżentaw ma 'firxa integer minn negattiv 2 għall-qawwa 31 għal 2 sa l 31 poter minus 1, jikkawżaw inti wkoll bżonn post biex għamilhom 0. Allura bażikament nofs il-valuri possibbli inti tista tajbin fi int huma negattivi, u nofshom huma pożittivi. U bejn wieħed u ieħor hawnhekk, dan huwa ta 'madwar negattiv 2 biljuni għal madwar pożittiv 2 biljuni. Agħti jew jieħu ftit mijiet ta 'miljuni. Allura dak hu li inti tista tajbin fi varjabbli numru sħiħ. Issa irridu wkoll xi ħaġa jissejjaħ sħiħ mhux iffirmat. Issa ints mhux iffirmat mhumiex tip separat ta 'varjabbli. Pjuttost, iffirmata hija dak li sejjaħ jikkwalifika. Jimmodifika l-informazzjoni tip ta 'numru sħiħ ftit. U f'dan il-każ, dak iffirmata means-- u inti tista 'ukoll użu ta 'tipi mhux iffirmat oħra tad-dejta, numru sħiħ mhux l-uniku wieħed. Dak li effettivament ma huwa doubles il-firxa ta 'valuri pożittivi li integer jista 'jieħu fuq mill spejjeż ta 'ma tippermettilux iżjed inti tieħu fuq valuri negattivi. Mela jekk għandek numri li inti taf se tikseb ogħla minn 2 biljuni iżda inqas minn 4 biljun, għal example-- li huwa 2 għall-32 power-- inti tista 'tixtieq li tuża l int mhux iffirmat jekk inti magħruf il-valur tiegħek qatt mhu se jkun negattiv. Int ser kultant ikollhom użat għall-varjabbli mhux iffirmat fil CS50, u huwa għalhekk nsemmi hawnhekk. Iżda għal darb'oħra, il-firxa ta 'valuri li inti jista 'jirrappreżenta bi sħiħ mhux iffirmat li t numru sħiħ regolari, huma 0 2 għall-qawwa 32 minus 1, jew madwar 0-4000000000. Allura inti ħadthom effettivament irdoppja l firxa pożittiv li inti tista tajbin, imma inti ħadthom rrinunzjaw kollha il-valuri negattivi. Issa bħala twarrib, iffirmata mhuwiex l-uniku jikkwalifika li nistgħu tara għalik tipi ta 'data varjabbli. Hemm ukoll affarijiet imsejħa qasir u twil u const. Const Ser naraw ftit Wara ftit fil-kors. Qasir, aħna probabbilment mhux se. Iżda biss jafu li hemm huma kwalifiki oħra. Mhux iffirmat mhuwiex l-uniku wieħed. Imma hija l-unika waħda aħna qed ser jitkellmu dwar id-dritt issa. Allura id-dritt. Allura konna koperti interi. Xi jmiss? Chars. Allura Chars huma użati għall-varjabbli li se taħżen karattri uniku. Char huwa qasir għall-karattru. U xi kultant inti tista 'tisma nies jippronunzja bħala karozza. Allura karattri dejjem jibdew waħda byte ta 'memorja, li huwa biss 8 bits. Allura dan ifisser li dawn jistgħu biss tajbin valuri fil-firxa ta negattiva 2 is-seba 'enerġija, jew negattiv 128, 2 għas-7 poter minus 1, jew 127. Grazzi għall ASCII, kien twil ilu iddeċidew mod Mappa dawn in-numri pożittivi minn 0-127 diversi karattri li kollha jeżistu fuq it-tastiera tagħna. Allura kif Ser naraw aktar tard fil il-kors, u inti probabilment jaslu għal jimmemorizza f'xi punt, il-kapital A, għal example-- il-kapital karattru A-- mapep għan-numru 65. U r-raġuni għal dan hi għaliex dan huwa dak li huwa ġie assenjat mill-istandard ASCII. Zghar A hija 97. Il-karattru 0 meta inti fil-fatt tip-karattru, ma tirrappreżenta n-numru żero, huwa 48. Int ser ikollok jitgħallmu ftit minn dawn kif tmur. U tkun taf ċertament ħafna għall-ħtieġa minnhom ftit aktar tard fil CS50. It-tip ewlieni data jmiss f'wiċċ l-ilma punt numri. Allura floating numri punt huma magħrufa wkoll bħala numri reali. Huma qed bażikament numri li għandhom punt deċimali fihom. Floating valuri tal-punti bħal interi huma wkoll li tinsab fi żmien 4 bytes ta 'memorja. Issa hemm ebda chart hawn. M'hemm l-ebda linja numru, għaliex jiddeskrivi l-firxa ta 'float mhuwiex eżattament ċar jew intuwittivi. Biżżejjed ngħid lilek jkollhom 32 bits biex jaħdmu ma '. U jekk għandek numru bħal pi, li għandha parti integer 3, u floating punt parti, jew parti deċimali 0.14159, u l-bqija, inti jeħtieġ li tkun jistgħu jirrappreżentaw kollha it-- il-parti numru sħiħ u l-parti deċimali. Allura dak li taħseb li jista 'jfisser? Ħaġa waħda hija li jekk l-deċimali parti gets itwal u itwal, jekk ikolli kbir ħafna parti numru sħiħ, I ma jista tkun tista 'tkun preċiża mal-parti deċimali. U li verament il- limitazzjoni ta 'float. Sufruni jkollhom problema preċiżjoni. Aħna biss 32 bits għal jaħdmu ma ', sabiex inkunu nistgħu biss jkunu tant preċiżi ma 'parti deċimali tagħna. Ma nistgħux neċessarjament ikollhom deċimali parti preċiżi għal 100 jew 200 numri, għaliex aħna biss 32 bits biex jaħdmu ma '. Allura dak limitazzjoni ta 'float. Issa fortunatament hemm tip ta 'data oħra msejħa doppja, li xi ftit jittratta din il-problema. Doubles, bħal sufruni, huma wkoll użati biex taħżen numri reali, jew punt floating valuri. Id-differenza hija li jirdoppja huma preċiżjoni doppja. Huma jistgħu joqogħdu 64 bits ta data, jew tmien bytes. Xi tfisser? Ukoll, dan ifisser li nistgħu jkun hemm ħafna aktar preċiż mal-punt deċimali. Minflok ma jkollhom pi għal sebgħa postijiet forsi, bil-float, nistgħu forsi għandna hija li 30 postijiet. Jekk dan huwa importanti, inti tista 'tixtieq li jużaw doppju minflok ta 'float. Bażikament, jekk int jaħdmu fuq xi ħaġa fejn jkollha post deċimali verament twila u ħafna ta 'preċiżjoni hija importanti, inti probabilment tixtieq li jużaw overfloat doppja. Issa għal ħafna tax-xogħol tiegħek fil CS50, float għandha tkun biżżejjed. Iżda nafu li jirdoppja jeżistu bħala mod biex kemmxejn tittratta l-preċiżjoni problema billi giving you extra 32 bits biex jaħdmu ma 'għal numri tiegħek. Issa dan mhuwiex tip ta 'data. Din hija tip. U huwa msejjaħ bla effett. U jien jitkellem dwar dan hawnhekk għaliex aħna ħadthom probabbilment bbenefikawx għal xi ftit drabi diġà fil CS50. U inti tista 'tkun mintix dak li huwa kollha madwar. Allura null huwa tip. Hija ma jeżistu. Iżda mhuwiex tip ta 'data. Aħna ma tistax toħloq varjabbli ta 'tip null u tassenja valur lilha. Iżda funzjonijiet, per eżempju, jista 'jkollhom tip ta' ritorn bla effett. Bażikament, jekk inti tara funzjoni li għandha tip ritorn null, dan ifisser li ma jerġax lura valur. Tista 'taħseb ta' komuni funzjoni li konna użati s'issa fil CS50 li ma jerġax lura valur? Printf hija waħda. Printf ma attwalment ritorn xejn għalik. Hija prints xi ħaġa li l- iskrin, u huwa bażikament effett sekondarju ta 'dak printf ma. Iżda dan ma jtik valur lura. Inti ma jaqbdu l-riżultat u jaħżnu dan f'xi varjabbli jużah aktar tard. Hija biss prints xi ħaġa li l-iskrin u inti qed isir. Allura aħna ngħidu li printf hija funzjoni null. Dan jirritorna xejn. Il-lista perimetru ta ' funzjoni tista 'wkoll tkun nulla. U inti stajt wkoll meqjus li pjuttost ftit fil CS50 wisq. Null prinċipali Int. Does li ring qanpiena? Bażikament dak li tfisser hija li prinċipali ma tieħu xi parametri. M'hemm l-ebda argument li jiksbu għadda fis prinċipali. Issa aktar tard Ser naraw li hemm mod li jgħaddu argumenti fis prinċipali, iżda s'issa dak li konna tidher hija nulla prinċipali int. Main biss ma tieħu ebda argument. U hekk aħna jispeċifikaw li billi qal null. Aħna biss qed ħafna espliċitu dwar il-fatt li dan ma jieħux ebda argument. Allura għal issa, huwa biżżejjed li jiġi jgħidu li null bażikament għandhom biss iservu bħala placeholder għalik bħala taħseb dwar kif xejn. Mhuwiex verament tagħmel xejn. M'hemm l-ebda valur tar-ritorn hawn. M'hemm l-ebda parametri hawn. Huwa bla effett. Huwa ftit aktar kumplessa minn dik. Iżda dan għandu jkun biżżejjed għall aħjar il-parti tal-kors. U nisperaw issa għandek ftit daqsxejn aktar ta 'kunċett ta' dak li huwa null. Għalhekk dawn huma l-ħames tipi tkun taf jiltaqgħu li huma mibnija fil lill C. Iżda fil CS50 aħna għandna wkoll librerija. CS50.h, li inti tista 'tinkludi. U li ser jagħtik b'żewġ tipi addizzjonali li inti probabilment tkun kapaċi għall-użu fuq inkarigi tiegħek, jew tax-xogħol ġusti ġeneralment programmazzjoni. L-ewwel minn dawn huwa BOOL. Allura dejta tat-tip Boolean, BOOL, huwa użat għall-varjabbli li se taħżen valur Boolean. Jekk inti stajt qatt semgħu dan it-terminu qabel, inti tista 'taf li Boolean valur huwa kapaċi biss jesgħu żewġ valuri distinti differenti. Vera u falza. Issa dan jidher pretty fundamentali, id-dritt? Huwa tip ta 'sorpriża li din ma jeżistix fil C kif huwa mibni. U f'lingwi moderni ħafna, Naturalment, Booleans huma tip data default standard. Iżda fis-C, dawn qed attwalment le. Iżda aħna ve maħluqa dan għalik. Mela jekk inti qatt bżonn biex joħolqu varjabbli li tip huwa BOOL, biss kun żgur li #include CS50.h fil-bidu tal-programm tiegħek, u tkun taf tkun kapaċi joħolqu varjabbli tat-tip BOOL. Jekk tinsa #include CS50.h, u tibda tuża varjabbli Boolean tat-tip, inti tista 'tiltaqa' xi problemi meta int kumpilazzjoni program tiegħek. Hekk biss tkun fuq il-lookout għal dan. U forsi inti tista 'sempliċement tiffissa l- problemi billi lira inkluż CS50.h. It-tip ewlieni data oħra li aħna jipprovdu għalik fil-librerija CS50 huwa string. Allura dak li huwa string? Strings huma verament biss kliem. Huma qed kollezzjonijiet ta 'karattri. Huma qed kliem. Huma qed sentenzi. Huma qed paragrafi. Jista 'jkun kotba sħaħ, anke. Qasir ħafna biex twil ħafna serje ta 'karattri. Jekk għandek bżonn tuża kordi, per eżempju, biex jaħżnu kelma, biss kun żgur li tinkludi CS50.h fil-bidu tal-programm tiegħek sabiex inti tista 'tuża t-tip sekwenza. U allura inti tista 'toħloq varjabbli tip ta 'data li hija sekwenza. Issa aktar tard fil-kors, Ser naraw ukoll li dan huwa mhux l-istorja sħiħa, lanqas. Aħna ser tiltaqa affarijiet imsejħa strutturi, li jippermetti li inti grupp liema jista 'jkun integer u string fil unità waħda. U nistgħu nużaw li għal xi skop, li jistgħu jaqgħu fil handy aktar tard fil-kors. U aħna ser jitgħallmu wkoll dwar it-tipi definiti, li jippermettu li inti toħloq tipi ta 'data tiegħek. Aħna ma bżonn ninkwetaw dwar li għal issa. Iżda biss jafu li dan huwa xi ħaġa fuq l-orizzont, li hemm ħafna aktar għal dan kollu Ħaġa tip minn jien tghidlek biss issa. Allura issa li konna tgħallimna ftit dwar id-data bażika tipi u tip ta 'data CS50, ejja jitkellmu dwar kif taħdem ma 'varjabbli u jinħolqu minnhom jużaw dawn tipi ta 'data fil-programmi tagħna. Jekk inti tixtieq li toħloq varjabbli, kull ma għandek bżonn tagħmel huwa żewġ affarijiet. L-ewwel, inti għandek bżonn biex tagħtiha tip. It-tieni ħaġa li għandek bżonn tagħmel hu tagħtiha isem. Ladarba inti ghamilt dan u slapped virgola fi tmiem dak il-linja, inti stajt ħolqot varjabbli. Allura hawnhekk żewġ eżempji. Numru int; ittra char ;. Liema kienu I għamlu hawn? Stajt ħolqot żewġ varjabbli. L-ewwel, il-varjabbli tal- isem huwa numru. U n-numru huwa kapaċi li jżommu numru sħiħ tip valuri, minħabba tip tagħha huwa int. L-ittra huwa varjabbli ieħor li tista 'żżomm karattri minħabba tip ta 'data tagħha hija char. Pretty sempliċi, id-dritt? Jekk issib ruħek f'sitwazzjoni fejn għandek bżonn biex joħolqu multipli varjabbli tal-istess tip, għandek bżonn biss li tispeċifika l-isem tip darba. Imbagħad biss lista kif ħafna fatturi varjabbli ta 'dak it-tip kif għandek bżonn. So I jistgħu pereżempju, hawn f'dan tielet linja ta 'kodiċi, jgħidu għoli int ;, linja ġdida. Wisa int ;. U li tkun taħdem wisq. I d xorta jiksbu żewġ varjabbli imsejħa għoli u wisa, li kull wieħed minnhom huwa integer. Imma jien jitħallew, affarijiet li sintassi C, tikkonsolidaha linja waħda. Għoli int, wisa; Huwa l-istess ħaġa. Stajt ħolqot żewġ varjabbli, wieħed imsejħa għoli wieħed imsejjaħ wisa ', it-tnejn li huma kapaċi li jżommu Valuri tip numru sħiħ. Bl-istess mod hawnhekk, I jistgħu joħolqu tliet f'wiċċ l-ilma valuri tal-punti mill-ewwel. I tista 'forsi toħloq varjabbli imsejħa għerq kwadrat tal 2-- li preżumibbilment se eventwalment żomm il-point-- f'wiċċ l-ilma li rappreżentazzjoni tal-kwadru għerq ta 2-- għerq kwadrat ta '3, u pi. I seta 'jsir dan fuq tliet linji separati. Float, għerq kwadrat 2; Float għerq ikkwadrat 3; float pi; u li tkun taħdem wisq. Iżda għal darb'oħra, I tista 'biss jikkonsolida dan fis-linja waħda tal-kodiċi. Tagħmel affarijiet ftit iqsar, mhux bħala clunky. Issa b'mod ġenerali, huwa disinn tajjeb biss tiddikjara varjabbli meta jkollok bżonnha. U aħna ser nitkellmu ftit ftit aktar dwar dan aktar tard fil-kors meta niddiskutu ambitu. Allura mhux bilfors li joħolqu kollha ta 'varjabbli tiegħek fil-bidu tal-programm, li xi nies jistgħu għamlu l-passat, jew kienet ċertament komuni ħafna prattika kodifikazzjoni ħafna snin ilu meta jaħdmu ma C. inti tista 'biss tixtieq li toħloq dritt varjabbli meta jkollok bżonnha. Kull dritt. Allura konna maħluqa varjabbli. Kif nistgħu jużawhom? Wara aħna tiddikjara varjabbli, ma kellniex bżonn biex tispeċifika t-tip tad-data ta 'dak il-varjabbli aktar. Fil-fatt, jekk inti tagħmel dan, inti tista tispiċċa ma 'xi konsegwenzi stramb li aħna ser tip ta 'tleqqija fuq għal issa. Iżda huwa biżżejjed li jingħad, affarijiet stramb sejrin biex tibda jiġri jekk inti involontarjament mill-ġdid tiddikjara varjabbli bl-istess isem aktar u aktar. So here I jkollhom erba 'linji ta' kodiċi. UI għandhom ftit Kummenti hemm biss jindikaw dak li qed jiġri fuq kull linja biss biex jgħinu ikollok jinsab x'inhu għaddej. Numru hekk int ;. Inti raw li qabel. Li dikjarazzjoni varjabbli. Stajt issa ħolqot varjabbli imsejħa numru li l- kapaċi li jżomm valuri tat-tip numru sħiħ. Stajt ddikjarat dan. Il-linja li jmiss jien tassenja valur li numru. Numru ugwali 17. Dak li qed jiġri hemmhekk? Jien tqegħid tal-numru 17 ġewwa ta 'dak il-varjabbli. Mela jekk jien qatt mbagħad jistampa dak il-kontenut tal-għadd huma aktar tard, dawn ser tell me huwa 17. Hekk stajt iddikjarat varjabbli, u mbagħad stajt assenjat lilha. Aħna tista 'tirrepeti l-proċess għal darb'oħra bl-ittra char ;. Li dikjarazzjoni. Ittra ugwali kapital H. Li assenjazzjoni. Pretty sempliċi, wisq. Issa dan il-proċess jista jidhru tip ta 'iblah. Għaliex aħna tagħmel dan f'żewġ linji ta 'kodiċi? Hemm mod aħjar biex tagħmel dan? Fil-fatt, hemm. Kultant inti tista 'tara dan jissejjaħ inizjalizzazzjoni. Huwa meta inti tiddikjara varjabbli u tassenja valur fl-istess ħin. Dan huwa attwalment pretty ħaġa komuni li tagħmel. Meta inti toħloq varjabbli, inti normalment tixtieq li jkollha xi valur bażiku. Anki jekk huwa 0 jew xi ħaġa. Inti biss għandek tagħtiha valur. Tista 'initialize varjabbli. Int numru ugwali 17 huwa l-istess bħal l-ewwel żewġ linji ta 'kodiċi up hawn fuq. Ittra Char ugwali h huwa l-istess bħall- tielet u r-raba 'linji ta' kodiċi ta 'hawn fuq. L-takeaway aktar importanti hawnhekk meta aħna qed tiddikjara u tassenja varjabbli huwa wara konna ddikjarat li, avviż Jien ma jużawx dejta tat-tip ġdid. Jien ma tgħid int numru ugwali 17 dwar it-tieni linja ta 'kodiċi, per eżempju. Jien biss qal numru ugwali 17. Għal darb'oħra, jerġgħu tiddikjara varjabbli wara inti stajt diġà ddikjarat dan jista 'jwassal għal xi konsegwenza stramb. Hekk biss tkun attenta ta 'dak. Jien Doug Lloyd. U dan huwa CS50.