>> [Музички]
Говорник: Во ред.
Па ајде да зборуваме за друга нешто што е вид на уникатен на C,
кој е типови на податоци и променливи.
Кога велам уникатни за Ц, јас навистина значи само во контекст на,
ако сте биле програмер веќе навистина долго време,
најверојатно не сме работел со податочни типови
ако сте користеле модерни програмски јазици.
Модерни јазици како PHP и JavaScript,
која ние, исто така, ќе видиме малку подоцна во текот на курсот,
не, всушност треба да се наведе тип на податоци на променлива
кога ќе ја користите.
>> Можете само да го пријават и да почнат да го користат.
Ако тоа е цел број, тоа Знам дека е цел број.
Ако тоа е лик, тоа е знае тоа е лик.
Ако тоа е еден збор, тоа го знае тоа е еден конец, т.н..
>> Но, во C, што е постари јазик, ние треба
да се специфицираат податоци видот на секоја променлива
дека ние создаваме прв пат дека ние ги користиме таа променлива.
Па C доаѓа со некои вграден типови на податоци.
И ајде да се запознаат со некои од нив.
А потоа и потоа, исто така, ќе се зборува малку за некои типови на податоци
дека ние сме напишани за тебе, за да можете да ги користите во CS50.
>> Првиот е Инт.
Тип int податоци се користи за променливи дека ќе ги чува целобројни вредности.
Па, 1, 2, 3, негативни 1, 2, 3, и така натаму.
Цели броеви, што е нешто што го треба да се има предвид за квизот,
секогаш да потрае четири бајти меморија, која е 32 бита.
Постојат осум битови во бајт.
>> Па тоа значи дека опсегот на вредности кои цел број може да се сместат
е ограничен од она што може да се вклопат во рамките 32 бита во вредност од информации.
Сега, како што излезе, тоа беше одамна одлучија
дека ќе се подели кои се движат од 32 бита
во негативни цели броеви и позитивни цели броеви,
секој добива половина од опсегот.
Така опсегот на вредности кои ги претставуваат со цел број во опсег од негативен 2
до 31 моќ на 2 до 31 моќ минус 1,
предизвика исто така ќе треба на самото место за 0.
>> Значи, во основа половина на можни вредности може да се вклопат во int се негативни,
а половина се позитивни.
А околу тука, ова е за негативните 2 милијарди на околу 2 милијарди позитивни.
Или дава да потрае неколку стотици милиони евра.
Значи тоа е она што може да се вклопат во целобројна променлива.
Сега ние, исто така, има нешто наречена една непотпишана цел број.
Сега непотпишана ints не се посебен тип на променлива.
Наместо тоа, непотпишана е она што се нарекува одредница.
Ја менува податоците тип на цел број малку.
>> И во овој случај, она што непотпишана means-- и исто така можете да
користете непотпишана други типови на податоци, цел број не е само еден.
Она што го прави е ефективно двојки позитивните опсег на вредности
дека цел број може да се земе на на на сметка на повеќе не дозволува
можете да ги преземе за негативни вредности.
Значи, ако имате броеви дека знаете ќе добијат повисоки од 2 милијарди, но помалку
од 4 милијарди долари, за example-- кој е од 2 до 32-та power--
можеби ќе сакате да го користите една непотпишана int ако
знаете вашата вредност никогаш нема да биде негативен.
>> Вие повремено ќе имаат користат за непотпишана променливи
во CS50, кој е зошто јас го спомене овде.
Но, повторно, опсегот на вредности кои ви може да се претстави со една непотпишана целобројна
како да т редовна цел број, се 0 за 2 до 32-от моќ минус 1,
или околу 0 за да се 4 милијарда.
Значи сте ефикасно двојно се позитивна опсег што ќе може да се вклопи,
но сте се откажале од сè на негативни вредности.
>> Сега како настрана, непотпишана не е единствената одредница
за да можеме да видиме за променлива типови на податоци.
Исто така, постојат нешта наречени кратки и долги и const.
Const ќе видиме малку малку подоцна во текот на курсот.
Кратки и долги, ние веројатно нема.
>> Но, само се знае дека постојат и други квалификациите.
Непотпишана не е само еден.
Но, тоа е само еден ние сме ќе зборуваме за тоа во моментов.
Па сите во право.
Значи ние сме опфатени цели броеви.
Што е следно?
>> Карактери.
Така знаци се користат за променливи дека ќе ги чува еден знаци.
Char е краток за карактер.
А понекогаш може да се слушне луѓе го изговараат како автомобил.
>> Па ликови секогаш се до еден бајт од меморија, која е само 8 бита.
Па тоа значи дека тие можат да одговараат само вредности во опсег од негативен 2
на седмата сила, или негативни 128, на 2 до 7-миот моќ минус 1, или 127.
>> Благодарение на ASCII, тоа беше одамна одлучи на начин
да карта тие позитивни броеви од 0-127 за различни карактери
дека сите постои на нашата тастатура.
Така како што ќе видиме подоцна во курсот, и најверојатно ќе
дојде да се запаметат во одреден точка, главниот град на еден, за example--
главниот лик A-- мапира на бројот 65.
А причина за тоа е затоа што тоа е она што е тоа е
се доделени од страна на стандард на ASCII.
>> Мали А изнесува 97.
Ликот 0 за кога ќе се всушност тип на карактер, не
претставува бројот нула, е 48.
Ќе дознаете неколку од овие, како и да одите.
И вие сигурно ќе дојде до потреба нив малку подоцна во CS50.
>> Следниот голем тип на податок е подвижна запирка броеви.
Па броеви со подвижна запирка се исто така познат како реални броеви.
Тие се во основа броеви кои имаат децимална точка во нив.
Подвижна запирка вредности како цели броеви, исто така,
содржани во рамките на 4 бајти меморија.
Сега нема шема тука.
Нема број линија, бидејќи опишувајќи го спектар на број со подвижна запирка
не е баш јасно или интуитивни.
>> Доволно е да се каже има 32 бита за работа со.
И ако имаш број како пи, која има
цел број во дел 3, и лебдат точка дел, или дел децимални 0,14159,
и така натаму, што треба да биде во можност да ги претставуваат сите на it--
целоброен дел и од децималниот дел.
>> Па што мислите дека би можело да значи?
Една работа е дека ако децималниот дел добива подолго и подолго,
ако имам многу голема цел број дел, јас не би можеле
да може да биде толку прецизна со децимален дел.
И тоа е навистина ограничување на број со подвижна запирка.
>> Плови има проблем со прецизност.
Имаме само 32 бита за да работат со, така што само можеме да
биде толку прецизно со нашите децимални дел.
Ние не може да мора да имаат децималниот дел прецизен за 100 или 200 броеви,
бидејќи имаме само 32 парчиња за работа со.
Па тоа е ограничување на број со подвижна запирка.
>> За среќа, тука е сега друг вид на податоци се нарекува
двојно, што на некој начин се занимава со овој проблем.
Двојно се зголемува, како плови, исто така се користат за да се чување на реални броеви, или подвижна запирка
вредности.
Разликата е во тоа двојки се двокреветни прецизност.
Тие може да се вклопат 64 бита податоци, или осум бајти.
Што значи тоа?
Па, тоа значи дека ние може да биде многу повеќе прецизни со децималната точка.
Наместо да има пи до седум места, можеби, со подвижна запирка,
можеби и ние може да се има 30 места.
Ако тоа е важно, можеби ќе сакате да се користи двојно наместо да се одржи.
Во суштина, ако сте работејќи на што каде
има навистина долго децимала и многу прецизност е важна,
веројатно сакате да користите двојно overfloat.
Сега за поголемиот дел од вашата работа во CS50, плови треба да бидат доволни.
Но знам дека постојат двојки како начин да се справи со нешто прецизност
проблем од страна ви дава дополнителни 32 битови да се работи со за вашите броеви.
>> Сега тоа не е тип на податоци.
Ова е еден вид.
И се вика неважечки.
И јас зборувам за тоа тука, бидејќи ние сме веројатно
го видел неколку пати веќе во CS50.
И може да се прашуваат она што е за сите.
>> Па празнина е тип.
Тоа не постои.
Но, тоа не е тип на податоци.
>> Ние не може да се создаде променлива од тип поништат и додели вредност на тоа.
Но, функции, на пример, може да има еден вид празнина враќање.
Во суштина, ако видите функција кој има тип неважечки враќање,
тоа значи дека не се врати на вредност.
Можете да мислам на заеднички функција која сум користел досега
во CS50 која не се врати на вредност?
>> Printf е еден.
Printf всушност не врати ништо за вас.
Тоа отпечатоци нешто на екран, и тоа е во основа
пропратен ефект на printf она што го прави тоа.
Но, тоа не ви даде вредност назад.
Не фати резултатот и продавница тоа во некои променлива за да го користите подоцна.
Тоа само нешто да се печати на екранот и ќе завршиш.
>> Па велиме дека printf е функција неважечки.
Го враќа ништо.
>> Листа на периметарот на еден функција, исто така може да бидат неважечки.
И ти исто така видовме дека сосема малку во CS50 премногу.
Int главната неважечки.
Прави тоа прстен ѕвоно?
Во суштина она што значи тоа е дека Главната не презема параметри.
Нема аргумент дека да се донесе во главниот.
Сега подоцна ќе видиме дека постои начин да се помине во главни аргументи,
но досега тоа што сме го види е int главната неважечки.
Главната само не презема никакви аргументи.
И така ние се каже дека со зборовите неважечки.
Ние сме само да се биде многу експлицитен за тоа
дека тоа не презема никакви аргументи.
>> Значи сега за сега, доволно е да се велат дека таа празнина во основа
треба само да послужи како случаеви за вас, како што се размислува за ништо.
Тоа не е навистина прават ништо.
Нема враќање вредност тука.
Нема параметри тука.
Тоа е неважечки.
Тоа е малку посложен од тоа.
Но ова треба да бидат доволни за поголем дел од курсот.
И се надевам дека сега ќе има малку малку повеќе од концепт за тоа што е неважечки.
>> Значи тоа се пет видови испишан средба што се вградува во В.
Но во CS50 имаме и библиотека.
Cs50.h, кој можете да го вклучите.
И кој ќе ви обезбеди со две дополнителни видови
дека најверојатно ќе биде во можност да го користите на вашите задачи,
или само работи генерално програмирање.
>> Првиот од овие е bool.
Па рационален тип на податоци, bool, се користи за променливи
дека ќе ги чува Булова вредност.
Ако некогаш сте слушнале овој термин пред тоа,
Може да знаете дека Булова вредноста е способен само
држи две различни различни вредности.
Вистински и лажни.
Сега ова се чини како доста фундаментални, нели?
Тоа е вид на изненадување дека овој не постои во С како што е вграден во.
И во многу современи јазици, се разбира, Booleans
се стандарден тип на податоци стандардно.
Но во C, тие всушност не се.
Но, ние сме го направивме за вас.
Значи, ако некогаш треба да се создаде променлива чиј тип е bool,
едноставно не заборавајте да # Include cs50.h на почетокот на вашата програма,
и ќе бидете во можност да се создаде променливи од типот на bool.
>> Ако сте заборавиле да # Include cs50.h, и ќе почнете со користење Булова тип променливи,
можете да се судрите со некои проблеми кога сте во составувањето на вашата програма.
Па само да се во потрага за тоа.
А можеби и вие само може да се поправат проблеми со фунтата вклучувајќи cs50.h.
>> Други големи типот податоци кои ги обезбеди за вас во библиотеката CS50
е стринг.
Значи она што е стринг?
Стрингови се навистина само зборови.
Тие се колекционери на карактери.
Тие се зборови.
Тие се казни.
Тие ставови.
Би можеле да бидат цели книги, па дури и.
>> Многу краток за многу долго серија на карактери.
Ако треба да се користат конци, на пример, за чување на еден збор,
само бидете сигурни дека за да го вклучите cs50.h на почетокот на вашата програма
за да можете да го користите стринг тип.
А потоа можете да креирате променливи чиј тип на податок е стринг.
Сега подоцна во текот на курсот, ние, исто така, ќе видите дека тоа е
не на целата приказна, или.
Ние ќе се судрите со работите наречен структури,
која ќе ви овозможи да се група што може да биде цел број и низа во една единица.
И ние да го користите дека за некои цел, кои би можеле да
да ни се најде подоцна во текот на курсот.
>> И ние исто така ќе научат за дефинирани типови,
која ќе ви овозможи да се создаде свој типови на податоци.
Ние не треба да се грижите за тоа за сега.
Но, само знам дека тоа е нешто на хоризонтот,
дека има многу повеќе на оваа целина Вид на работа отколку што јас сум ти го кажувам само
сега.
Па сега дека научивме малку за основните податоци
видови и типови на CS50 податоци, ајде зборува за тоа како да се работи со променливи
и да ги создаде со користење на овие типови на податоци во нашите програми.
Ако сакате да се создаде променлива, сите што треба да направите е да се две работи.
>> Прво, треба да го даде тип.
Втората работа што треба да направите е да го даде името.
Откако сте го направиле тоа и удира запирката на крајот на таа линија,
сте создадени еден променлива.
>> Па еве два примера.
Int број; знак писмо ;.
Што направив јас овде?
Јас направивме две променливи.
>> Првиот, на променливата Името е број.
И број е способен да држи цел број тип на вредности, бидејќи неговиот вид е Инт.
Писмо е уште една променлива кои може да се одржи карактери
бидејќи нејзиниот тип на податок е знак.
>> Прилично јасна, така?
Ако се наоѓате себеси во ситуација каде што
што треба да се создаде повеќе променливи од ист вид,
вие само треба да се определи име на видот еднаш.
Тогаш едноставно наведете колку променливи од тој тип како што треба.
>> Па можев да се на пример, тука во оваа трета линија код,
велат висина int ;, нова линија.
Int ширина ;.
И дека ќе работи исто така.
Би се уште се две променливи се нарекува висина и ширина, од кои секоја
е цел број.
Но, јас сум дозволено да, работите да C синтакса, ја консолидира во една линија.
Int висина, ширина; Тоа е иста работа.
Јас направивме две променливи, еден вика висина еден вика ширина, од кои и двете
се способни за држење целобројни вредности тип.
>> Слично на тоа тука, јас може да се создаде три подвижна запирка вредности одеднаш.
Можам да можеби се создаде променлива наречена квадратен корен од 2--
кои се претпоставува дека ќе крајот држете го лебдечки point--
дека застапеноста на плоштадот коренот на 2-- квадратен корен од 3, а пи.
Јас би можеле да имаат направено ова на три одделни линии.
Плови, квадратен корен 2; Плови квадратен корен 3; плови пи; и дека ќе работи исто така.
>> Но, повторно, јас само може да се консолидираат ова во една линија код.
Прави работите малку пократок, а не како clunky.
>> Сега, во принцип, тоа е добар дизајн на само декларирате променлива кога ви треба.
И ние ќе зборуваме малку малку повеќе за тоа дека
подоцна во текот кога ќе дискутираме за опсегот.
Па не мора да значи треба да се создаде сите на вашите променливи
на почетокот на програмата, која некои луѓе може да се направи во минатото,
или секако беше многу честа пред кодирање пракса многу години
кога се работи со Ц. вие само може да сакате да се создаде вистинскиот променлива кога
ви треба.
Во ред.
Па ние направивме променливи.
Како ние да ги користите?
Откако ќе се изјасни за променлива, што не ни треба
да се наведе типот податоци на таа променлива повеќе.
Всушност, ако го направите тоа, можеби ќе завршуваат со некои чудни последици
дека ние ќе вид на притајуваат за сега.
Но доволно е да се каже, чудни работи се случува
да почнат да се случуваат ако ненамерно повторно декларираат променливи со исто име
одново и одново.
>> Па еве јас имам четири линии на код.
И имам неколку коментари таму само што покажува
што се случува на секоја линија само за да им помогне на
ќе се наоѓа во она што се случува.
Па int број ;.
Видовте дека претходно.
Тоа е променлива декларација.
>> Јас сум сега направивме променлива повиканиот број кој е
способен за одржување вредности цел број-тип.
Сум го прогласи.
>> Следната линија сум доделување вредност на број.
Број е еднаков 17.
Што се случува таму?
Јас сум ставање на бројот 17 внатрешноста на таа променлива.
>> Значи, ако јас некогаш потоа печати од она што содржината на број се подоцна,
тие ќе ми каже дека е 17.
Па јас сум прогласена за променлива, и тогаш сум го доделени.
>> Можеме да го повтори овој процес повторно со знак писмо ;.
Тоа е изјава.
Писмо еднаква на капитал Х. Тоа е задача.
Прилично јасна, исто така.
>> Сега овој процес може да изгледа вид на глупо.
Зошто го правиме ова во две линии на код?
Дали постои подобар начин да го направите тоа?
Всушност, постои.
Понекогаш може да се види ова се нарекува иницијализација.
Тоа е кога ќе се декларирате променлива и додели вредност во исто време.
Ова е всушност прилично заедничка работа да се направи.
Кога ќе се создаде променлива, обично сакате да има некои основни вредност.
Дури и ако тоа е 0 или нешто.
Можете само да ви го даде вредност.
>> Можете да се иницијализира со променлива.
Int број еднаков на 17 е иста како и првите две линии на код горе.
Char букви еднаква h е иста како и на третиот и четвртиот линии на код погоре.
Најважните готова брза тука кога сме прогласување и доделување
променливи е откако ќе ја што е изнесено, огласот
Јас не сум се повторно со помош на типот податоци.
Не велам int број е еднаков на 17 втората линија код, на пример.
Јас само велам дека е еднаква на бројот 17.
>> Повторно, повторно прогласување на променлива по веќе сте го прогласи тоа може да доведе
до некои чудни последица.
Па само да се биде внимателен со тоа.
>> Јас сум Даг Лојд.
И ова е CS50.