[Мусиц плаиинг] ГОВОРИ: У реду. Дакле, хајде да разговарамо о другом Оно што је некако јединствен за Ц, која је врсте података и променљиве. Када кажем да Ц јединствено, стварно значе само у контексту, ако сте били програмер за јако дуго времена, вероватно сте не радио са типове података ако сте користили модеран програмски језици. Модерни језици као што су ПХП и ЈаваСцрипт, који такође ћемо видети мало касније у курсу, ви заправо не морате да наведете тип података променљиве када га користите. Само га прогласи и почнете да га користите. Ако је цео број, то Знам да је цео број. Ако је то лик, то је зна да је лик. Ако је реч, она зна то је стринг, тзв. Али у Ц, што је старији језик, морамо навести податке Тип сваке варијабле да стварамо први пут да користимо ту променљиву. Дакле, Ц долази са неким буилт-ин типова података. И хајде да се упознате са неким од њих. И после тога такође ћемо причати мало о неким од типова података да смо написали за вас, тако да можете да их користите у ЦС50. Први је инт. Тип ИНТ Подаци се користе за варијабле да ће чувати целе вредности. Со 1, 2, 3, негативно 1, 2, 3, и тако даље. Целих бројева, што је нешто што Треба имати на уму за квиз, Увек заузимају четири бајта меморије, што је 32 бита. Постоји осам бита у бајт. Дакле, то значи да у распону од вредности које цео број може да складишти је ограничена оним што може да стане у 32 бита вредне информације. Сада како се испоставило, она дуго је пре одлучено да смо се растали да опсег од 32 бита у негативне целих и позитивни цели бројеви, сваки добијање половина опсега. Дакле распона вредности које заступамо са целим распону од негативног 2 до 31. власт на 2 до 31. снага минус 1, проузрокује такође треба место за 0. Дакле, у основи половина од могућих вредности може да стане у инт су негативни, и пола су позитивни. И отприлике овде, ово је о негативним 2 милијарде на око позитивном 2 милијарде. Дати или узети пар стотина милиона. Дакле, то је оно што може да стане у целобројне променљиве. Сада имамо и нешто назива непотписани цео број. Сада непотписани ИНТС нису посебан тип променљиве. Уместо тога, непотписани је како се зове квалификације. Она мења податке тип интегер благо. И у овом случају, оно што непотписани меанс-- а можете користити непотписане друге врсте података, цео није једини. Шта је ефективно ради је дубл позитивни опсег вредности да цео број може преузети на расход од не дозвољавајући да се на негативне вредности. Дакле, ако имате бројеве које знате добиће већи од 2 милијарде, али мање од 4 милијарде, за екампле-- која је 2 до 32. Силе можда ћете желети да користите непотписана Инт ако вас знам ваша вредност никада неће бити негативан. Ви повремено ћете имати користи за непотписани варијабле у ЦС50, због чега сам споменуо овде. Али опет, опсег вредности које може представљати са унсигнед интегер како би се т редовно цео број, су 0 на 2 до 32. власти минус 1, или приближно 0 до 4 милијарде. Дакле, можете ефикасно сте дуплирала Позитиван опсег који може да стане, али сте одустали све негативне вредности. Сада као страну, непотписани није једини квалификатор да бисмо могли видјети променљиве врсте података. Постоје ствари које се зову кратка и дуга и цонст. Цонст ћемо видети мало Нешто касније у току. Кратко и дуго, вероватно неће. Али, само знам да постоје и друге квалификације. Непотписани није једини. Али то је само једна смо ће говорити о сада. Дакле, све у реду. Тако смо покривени целе бројеве. Шта је следеће? Карактера. Дакле цхарс се користе за варијабле да ће сачувати појединачних карактера. Знак је скраћеница за карактер. И понекад чути Људи се изговара као ауто. Дакле, ликови увек заузима један бајт меморије, што је само 8 бита. Дакле, то значи да они само могу да стану вредности у опсегу негативних 2 на седмом власт, или негативан 128, до 2 на 7. власт минус 1, или 127. Захваљујући АСЦИИ, било је давно одлучио начин да мапира ове позитивне бројеве од 0 до 127 са различитим ликовима да сви постоје на нашем тастатури. Дакле, као што ћемо видети касније у курс, и вероватно ћете долазе да запамтите у неким тачка, капитал А, за екампле-- главни лик А-- мапе на број 65. А разлог за то је јер то је оно што је додељен од стране АСЦИИ стандард. Мала слова А је 97. Карактер 0 када вас заправо тип карактера, не представља број нула је 48. Ви ћете научити пар од њих као што иде. А ти ћеш сигурно доћи требати их мало касније ЦС50. Следећи велики тип података лебди бројеве тачака. Дакле, плутајући број тачака су такође познат као реалних бројева. Они у суштини су бројеви који имају децималну тачку у њима. Флоатинг вредности тачке као целих су садржан у року од 4 бајта меморије. Сада нема графикон овде. Нема број линије, јер описујући опсег пловком није баш јасан или интуитивно. Довољно је да вам кажем има 32 бита за рад. А ако имате број попут пи, који има цео број део 3, и плутајући Тачка део, или децимални део 0,14159, и тако даље, морате бити у стању да представља све тога-- целобројни део и део децимале. Дакле, шта мислите да би могло да значи? Једна ствар је да ако децимале део добија дужи и дужи, ако имам веома велики цео део, нисам могао моћи да буде што прецизнији са децималним делом. И то је заиста ограничење флоат. Поплавки имају прецизност проблем. Имамо само 32 бита на радити, тако да можемо само тако прецизан са нашим децимални део. Не можемо нужно имати децимале дио прецизно до 100 или 200 цифара, јер имамо само 32 бита за рад. Дакле, то је ограничење флоат. Сада срећом нема други тип података се зове дупли, што донекле бави овим проблемом. Доублес, попут сплавовима, користе се такође за складиштити реалних бројева или флоатинг поинт вредности. Разлика је у томе Двокреветне собе су двоструке прецизности. Они могу да се уклопе 64 бита подаци, или осам бајтова. Шта то значи? Па, то значи да може бити много више прецизан са децимални зарез. Уместо да пи на седам места можда, са пловак, мозда би могли да га до 30 места. Ако је то важно, можда ћете желети да користи дупло уместо флоат. У основи, ако сте ради на било гдје има стварно дуг децимални место и много прецизности је важно, вероватно желите да користе двоструки Оверфлоат. Сада за већину свог рада у ЦС50, флоат бити довољно. Али знам да постоје дубл као начин да се донекле бави прецизношћу Проблем дајући вам додатних 32 бита за рад са својим бројевима за. Сада то није тип података. Ово је једна врста. И то се зове неважећим. И ја говорим о томе јер смо вероватно сам види га неколико пута већ у ЦС50. А можда се питате шта се ради. Дакле, празнина је врста. То не постоји. Али то није тип података. Не можемо створити променљиву типа воид и доделите вредност на њега. Међутим функције, на пример, могу имати тип празнина повратка. У основи, ако видите функцију да има тип празнина повратка, то значи да не врати вредност. Можете ли се сетити заједничка функција која смо до сада користили у ЦС50 да не врати вредност? Принтф је један. Принтф заправо не ништа не врате. То исписује нешто до екран, и то је у основи нуспојава шта иф ради. Али то не вам дати вредност врати. Не ухвати резултат и продавницу то у некој променљивој га користити касније. Само исписује нешто екран и готови сте. Зато ми кажемо да иф је празнина функција. Не враћа ништа. Листа Обим олуја са функција може такође бити неважећа. Такође сте видели да доста у ЦС50 превише. Инт маин празнина. Да ли то звучи познато? У суштини шта то значи да Главни не узима никакве параметре. Нема аргумент да се прошли у главни. Сада касније ћемо видети да постоји начин да прође аргументе у главни, али за сада шта смо види се маин празнина. Главни једноставно не узима никакве аргументе. И тако смо навели да говорећи празнина. Ми само су врло експлицитно о томе да не узима никакве аргументе. Дакле, за сада, то довољно да се кажу ту празнину у основи треба само да послужи као плејсхолдером за вас као размишљање о као ништа. То није стварно ради ништа. Нема повратка вредност овде. Нема параметара овде. То је празнина. То је мало сложенији од тога. Али ово бити довољно за бољи део курса. И надам се сада имате мало мало више концепта онога што је неважећи. Дакле, то су пет типова ви ћете Сусрет који су уграђени у Ц. Али у ЦС50 имамо и библиотеку. ЦС50.х, који можете укључити. И који ће вам пружити са две додатне типове да, вероватно ћете моћи користити на вашим задацима, или само ради генерално програмирање. Први од њих је инт. Дакле, Булова тип података, боол, се користи за варијабле који ће сачувати Боолеан вредности. Ако сте икада чули овај термин пре, хвала можда знате да је Боолеан вредност је способан од само држећи два различита различите вредности. Истина и лаж. Сада то изгледа прилично основно, зар не? То је нека врста изненађење да ово не постоји у Ц као што је уграђени. И у многим модерним језицима, наравно, Боолеанс су стандардни тип подразумевани података. Али у Ц, они заправо ниси. Али ми смо га створили за вас. Дакле, ако сте икада потребно да креирате променљива чија је тип је инт, Само будите сигурни да #инцлуде ЦС50.х на почетку вашег програма, а ви ћете бити у стању да створи варијабле типа боол. Ако заборавите да #инцлуде ЦС50.х, и почнете да користите Булова типа променљиве, можете наићи на неке проблеме када састављања свој програм. Дакле, само да буде на видиковцу за то. А можда можете само поправити Проблеми по килограму, укључујући ЦС50.х. Други главни тип података које смо обезбеди за вас у ЦС50 библиотеци је ниска. Дакле, шта је стринг? Жице су заиста само речи. Они су збирке карактера. Они су ријечи. Они су реченице. Они су ставове. Можда је цела књига, чак. Врло кратак да дуго серија знакова. Ако морате да користите жице, На пример, да сачувате реч, само будите сигурни да укључите ЦС50.х на почетку вашег програма тако да можете користити тип стринг. А онда можете да креирате варијабле чија је тип података је ниска. Сада касније у курсу, такође ћемо видети да је то не цела прича, ни. Ми ћемо наићи ствари тзв структуре, која вам омогућити да група које могу бити цео број и гудачки у једну целину. И можемо да користимо да за нека сврха, што може доћи касније у току. И такође ћемо научити о одређене типове, које вам омогућавају да креирате твоји типови података. Ми не треба да бринете о томе за сада. Али знам да је то нешто на хоризонту, да има много више у овом целини Тип ствар него што сам ти само Сада. Дакле, сада када смо научио мало о основним подацима врсте и типови ЦС50 података, хајдемо говоре о томе како радити са варијаблама и створи их помоћу њих типови података у нашим програмима. Ако желите да креирате променљиву, све што треба да урадите је да две ствари. Прво, треба да му дати тип. Друга ствар коју треба да урадите јесте дати му име. Када сам то урадио и ошамарио зарез на крају тог реда, сте направили променљиву. Ево два примера. Инт број; цхар слово ;. Шта сам урадио овде? Ја сам створио две варијабле. Први, променљива је Име је број. А број има могућност за складиштење интегер тип вредности, јер је њен тип је Инт. Писмо је још један променљива који могу да држе знакове јер је његова врста података цхар. Прилично једноставно, зар не? Ако се нађете у ситуацији у којој морате да направите вишеструке варијабле истог типа, потребно је само да одредите тип име једном. Онда само навести што више променљивих тог типа колико вам је потребно. Тако сам могао, на пример, овде У овом трећем реду кода, кажу инт хеигхт ;, нову линију. Ширина инт ;. И то би исто раде. Ја бих увек се две варијабле назива висина и ширина, од којих сваки је цео број. Али ми је дозвољено да, ствари Ц синтаксе, консолидирати га у једној линији. Инт хеигхт, ширина; То је иста ствар. Направио сам две варијабле, који се зове висина један по имену ширине, а оба су у стању да држи интегер тип вредности. Исто овде, могу створити три флоатинг вредности тачака одједном. Ја можда могу створити променљиву назива квадратни корен од 2-- што вероватно ће на крају држите плутајући поента да представљање трга корен 2-- квадратног корена 3, и пи. Могао сам да уради на три одвојене линије. Флоат, квадратни корен 2; Флоат кореновање 3; флоат пи; и да ће радити превише. Али опет, ја само могу да консолидује ово у једној линији кода. Чини ствари мало краће, а не као заморно. Сада уопште, то је добар дизајн за само прогласи променљиву када је то потребно. И причаћемо мало мало више о томе касније у курсу када разговарамо обим. Дакле, не морају да створити све ваше варијабли на почетку програма, који неки људи можда урадили прошлост, или је свакако веома честа пре кодирања пракса много година када радите са Ц. Иоу мигхт само желимо да створимо праву када променљиве вам је потребна. У реду. Тако смо створили променљиве. Како да их користимо? Након што прогласи променљива, ми не треба да одредите тип података те променљиве више. У ствари, ако то урадите, можда завршити са неким чудним последицама да ћемо некако прикрију за сада. Али довољно је рећи, чудне ствари иду да почињу да се дешавају Ако случајно поново прогласи променљиве са истим именом непрестано. Дакле, овде имам четири линије кода. И ја имам пар Коментари Још само указују Шта се дешава на Свака линија само да помогне ви се налази у шта се дешава. Дакле, Инт број ;. Видели сте да претходно. То је променљива декларација. Сада сам створио променљиву назвао број који је способан да држи вредности интегер-типа. Ја сам га прогласио. Следећа линија сам додељивања вредност на број. Број једнако 17. Шта се тамо дешава? Стављам број 17 унутар тог променљиве. Дакле, ако сам икада затим одштампате шта садржај броја су касније, су ми рекли да је 17. Зато сам прогласио променљиву, и онда сам га добио. Можемо да поновите поступак поново са цхар слово ;. То је изјава. Писмо једнако капитала Х. То је задатак. Прилично једноставно, превише. Сада тај процес могао да Изгледа помало шашаво. Зашто ми ово радимо у два реда кода? Постоји ли бољи начин да се то уради? У ствари, постоји. Понекад можете видети ово зове иницијализацију. То је кад прогласи променљиву и доделите вредност истовремено. Ово је заправо прилично уобичајена ствар. Када креирате променљиву, обично Желим да има неке основне вредности. Чак и ако је 0 или тако нешто. Ви само ви му дати вредност. Можете иницијализујемо променљиву. Инт број једнак 17 је исти као Прве две линије кода горе изнад. Цхар слово једнака х је исти као Трећи и четврти линија код горе. Најважније понети овде када смо декларисање и додељивање варијабле је после имамо прогласио га, обавештење Ја не користим опет тип података. Не кажем Инт број износи 17 на друга линија кода, на пример. Само кажем број износи 17. Поново, поново прогласи променљиву после сте већ прогласили га може довести да неки чудан последица. Дакле, само будите опрезни тога. Ја сам Доуг Лојд. А ово је ЦС50.