>> [Přehrávání hudby]
SPEAKER: Dobře.
Tak pojďme mluvit o další věc, která je druh jedinečné C,
což je datové typy a proměnné.
Když říkám, že jedinečné C, opravdu znamenat jen v kontextu,
Pokud jste byli programátor pro opravdu dlouhou dobu,
pravděpodobně jste ne pracoval s datovými typy
pokud jste použili moderní programovací jazyky.
Moderní jazyky, jako je PHP a JavaScript,
který budeme také vidět trochu později v průběhu,
nemáte skutečně nutné zadat datový typ proměnné
když ji použijete.
>> Právě jste deklarovat to, a začít používat.
Pokud je to celé číslo, to vím, že je to celé číslo.
Pokud je to postava, to je ví, že je to postava.
Pokud je to slovo, to ví to je řetězec, tak-zvané.
>> Ale v C, což je starší jazyka, potřebujeme
specifikovat data typ každé proměnné
že vytvoříme poprvé že použijeme této proměnné.
Takže C je dodáván s některými vestavěných datových typů.
A pojďme se seznámit s některými z nich.
A pak poté budeme také mluvit Něco málo o některých datových typů
že psali jsme pro vás, takže je můžete použít v CS50.
>> První z nich je int.
Typ int data jsou použita pro proměnné že bude ukládat celočíselné hodnoty.
So 1, 2, 3, negativní 1, 2, 3, a tak dále.
Celá čísla, což je něco, co by měly mít na paměti, pro kvízu,
vždy zabírají čtyři bajty paměti, což je 32 bitů.
Existuje osm bitů byte.
>> Takže to znamená, že rozsah oceňuje, že celé číslo lze uložit
je omezen tím, co se vejde do 32 bitů v hodnotě informací.
Teď, jak to dopadá, to bylo dávno rozhodnuto
že bychom rozdělili že rozsah 32 bitů
do záporných čísel a kladná celá čísla,
každá dostává polovinu rozsahu.
Takže rozsah hodnot, které zastupujeme s celočíselnou rozmezí od negativního 2
k 31. výkonu na 2 až 31. síla minus 1,
způsobit, že také potřebují místo pro 0.
>> Takže v podstatě polovina možných hodnot se vejde do int, jsou negativní,
a polovina je pozitivní.
A zhruba tady, to je o negativní 2000000000 až o pozitivním 2 miliardy.
Dejte nebo trvat několik set milionů.
Takže to je to, co se vejde v celočíselné proměnné.
Nyní máme také něco volal celé číslo bez znaménka.
Nyní nepodepsané ints nejsou samostatný typ proměnné.
Spíše je nepodepsaný co se nazývá kvalifikace.
To upraví údaje typ integer mírně.
>> A v tomto případě to, co nepodepsaný means-- a můžete také
použít nepodepsané jiné datové typy, integer to není jediný.
Co to ve skutečnosti dělá, je čtyřhra pozitivní rozsah hodnot
že číslo může přijmout na na úkor již umožňuje
vás vzít na záporných hodnot.
Takže pokud máte čísla, které znáte budou mít vyšší než 2 miliardy, ale méně
než 4 miliardy, pro example-- což je o 2 až 32. power--
možná budete chtít použít unsigned int pokud máte
víte, že vaše hodnota bude nikdy být negativní.
>> Budete příležitostně používá pro nepodepsané proměnné
ve CS50, což je důvod, proč jsem tady o něm zmínit.
Ale opět, rozsah hodnot, které jste může představovat s celé číslo bez znaménka
as t pravidelné celé číslo, jsou 0 na 2 až 32. síle minus 1,
nebo přibližně 0 až 4 miliardy.
Takže jste skutečně na dvojnásobek Pozitivní oblast, která se vejde,
ale vy jste vzdali všechny záporné hodnoty.
>> Nyní jako stranou, nepodepsaný není jediným kvalifikátor
že bychom mohli vidět proměnných datové typy.
Tam jsou také věci, zvané krátký a dlouhý a const.
Const uvidíme trochu něco později v kurzu.
Krátká a dlouhá, my asi nebude.
>> Ale vím, že tam jsou další kvalifikátory.
Unsigned není jediný.
Ale je to jediný, my jsme bude hovořit o právě teď.
Takže v pořádku.
Proto jsme se vztahuje celá čísla.
Co bude dál?
>> Znaků.
Tak znaky se používají pro proměnné že bude ukládat jednotlivé znaky.
Char je zkratka pro charakter.
A někdy můžete slyšet lidé vyslovují to jako auto.
>> Takže postavy vždy tvoří jednu byte paměti, což je pouhých 8 bitů.
Takže to znamená, že se vejde jen hodnoty v rozsahu od negativní 2
do sedmé výkonu, nebo negativní 128, na 2 až 7. síle minus 1, nebo 127.
>> Díky ASCII, to bylo dávno rozhodl cestu
zmapovat ty pozitivní čísla z 0-127 do různých postav
že všechny existují na naší klávesnici.
Takže jak uvidíme později v kurz, a budete pravděpodobně
přijít k zapamatování na některé bod, kapitál A, pro example--
charakter kapitál je-- mapuje na číslo 65.
A důvod pro to je protože to je to, co je to
přiděluje normě ASCII.
>> Malá písmena A je 97.
Znak 0, když vás vlastně zadejte znak, nikoli
představující číslo nula, je 48.
Naučíte se pár z nich as you go.
A budete určitě přijde potřebovat je o něco později v CS50.
>> Příští hlavní datový typ plovoucí desetinnou čárkou.
Takže desetinných čísel jsou také známý jako reálná čísla.
Jsou to v podstatě, že čísla mají desetinnou čárku v nich.
S plovoucí desetinnou čárkou hodnoty stejně jako celá čísla jsou také
obsažené 4 bajtů paměti.
Nyní je tu žádný graf sem.
Neexistuje žádné číslo linky, protože popisující rozsah plováku
Není zcela jasné, nebo intuitivní.
>> Postačí, když říkáte mají 32 bitů pracovat.
A pokud máte číslo jako pi, který má
celé číslo část 3, a plovoucí bod části, nebo desetinná část 0,14159,
a tak dále, musíte být schopen reprezentovat všechny to--
celá část a desetinnou část.
>> Takže to, co si myslíte, že by to mohlo znamenat?
Jedna věc je, že pokud od desetinné čárky díl dostane delší a delší,
pokud mám velmi velký celá část, možná bych to
moci být co nejpřesnější s desetinnou částí.
A to je opravdu omezení plováku.
>> Plováky mít přesnost problém.
Máme jen 32 bitů na pracovat, tak jen můžeme
bylo natolik přesné, s naší desetinnou část.
Nemůžeme mít nutně desetinné část přesný k 100 nebo 200 číslic,
protože máme jen 32 bitů pro práci s.
Takže to je omezení plováku.
>> Teď naštěstí je tu jiný datový typ nazvaný
double, což poněkud společnosti s tímto problémem.
Čtyřhra, stejně jako plováky, jsou také používány pro ukládání reálných čísel, nebo s plovoucí řádovou čárkou
hodnoty.
Rozdíl je v tom, že dvoulůžkových jsou double precision.
Se mohly vejít 64 bitů data, nebo osm bajtů.
Co to znamená?
No, to znamená, že můžeme být mnohem přesné s desetinnou čárkou.
Místo toho, aby pi na sedm míst možná, s plovákem,
můžeme možná mít až 30 míst.
Pokud je to důležité, možná budete chtít používat dvojí místo plováku.
V podstatě, pokud jste Pracuješ na něčem kde
má opravdu dlouho desetinné místo a hodně přesnost je důležitá,
pravděpodobně budete chtít používají dvojí overfloat.
Nyní pro většinu své práce v CS50, plovák by mělo stačit.
Ale vím, že existují jako dvoulůžkové způsob, jak se vypořádat s poněkud přesností
Problém tím, že vám navíc 32 bitů pro práci s pro vaše čísla.
>> Teď to není typ dat.
Jedná se o typ.
A je to jen neplatné.
A já mluvím o tom tady proto, že jsme pravděpodobně
Viděl ji několikrát již v CS50.
A můžete se zeptat co je to všechno kolem.
>> Takže void je typ.
To neexistuje.
Ale není to typ dat.
>> Nemůžeme vytvořit proměnnou typu ruší a přiřadit hodnotu.
Ale funkce, například, může mít návratový typ void.
V podstatě, když vidíte funkci který má návratový typ void,
to znamená, že nevrací hodnotu.
Dokážete si myslíte, že společný funkce, kterou jsme dosud použit
V CS50, že nevrací hodnotu?
>> Printf je jeden.
Printf není ve skutečnosti vrátit vám něco.
Je to něco, co vytiskne na obrazovky, a je to v podstatě
vedlejší účinek toho, co dělá printf.
Ale to nedává vám hodnotu zpět.
Nemusíte zachytit výsledek a obchod že v některých proměnné ji použít později.
Je to prostě něco, co vytiskne obrazovky a máte hotovo.
>> Proto říkáme, že printf je funkce neplatné.
Vrací nic.
>> Seznam Obvod funkce může být také neplatné.
A vy jste také vidět, že dost na CS50 taky.
Int main neplatné.
Znamená to, že neříká?
V podstatě, co to znamená, že je Hlavní nebere žádné parametry.
Neexistuje žádný argument, že dostat prošel do hlavní.
Nyní později budeme vidět, že existuje způsob, jak předat argumenty do hlavní,
ale zatím to, co máme Viděl je int main neplatné.
Hlavní prostě nebere žádné argumenty.
A tak jsme určit, že tím, že říká neplatné.
Jsme jen být velmi explicitní o tom,
že to nebude trvat žádné argumenty.
>> Takže teď, stačí říci, že v podstatě void
měl prostě sloužit jako zástupný symbol pro vás jako myslet jako nic.
Není to opravdu něco dělat.
Neexistuje žádná návratová hodnota zde.
K dispozici je zde žádné parametry.
To je neplatné.
Je to trochu složitější, než to.
Ale to by mělo stačit pro lepší část kurzu.
A doufejme, že teď budete mít trochu trochu víc o pojetí toho, co je neplatné.
>> Takže to jsou pět typů budete Setkání, které jsou vestavěné do C.
Ale v CS50 máme také knihovnu.
CS50.h, které si můžete zahrnout.
A který vám poskytne s dalšími dvěma typy
že budete pravděpodobně moci pro použití na svých úkolů,
nebo jen pracovní obecně programování.
>> Prvním z nich je bool.
Takže Boolean datový typ, bool, se používá pro proměnné
který bude ukládat logickou hodnotu.
Pokud jste někdy slyšeli Tento termín předtím, vás
Možná víte, že Boolean hodnota je schopen jen
drží dvě různé odlišné hodnoty.
True a false.
Nyní to vypadá docela fundamentální, že jo?
Je to tak trochu překvapením, že tento neexistuje v C, jak je to vestavěné.
A v mnoha moderních jazycích, Samozřejmě, že Booleans
jsou standardní výchozí typ dat.
Ale v C, jsou to ve skutečnosti není.
Ale my jsme vytvořili pro vás.
Takže pokud budete někdy potřebovat vytvořit proměnná, jejíž typ je bool,
jen se ujistěte, #include CS50.h na začátku programu,
a budete moci vytvářet proměnné typu BOOL.
>> Pokud zapomenete #include CS50.h, a začnete proměnné typu Boolean,
se mohou vyskytnout nějaké problémy když jste kompilaci programu.
Takže prostě být na pozoru, že.
A možná si můžete jen opravit Problémy podle libru včetně CS50.h.
>> Jiný hlavní typ dat, které jsme Zajistíme pro Vás v knihovně CS50
je řetězec.
Takže to, co je řetězec?
Řetězce jsou opravdu jen slova.
Jsou sbírky postav.
Jsou to slova.
Jsou věty.
Jsou to body.
Může být celé knihy, a to i.
>> Velmi krátká na velmi dlouhé řada znaků.
Pokud potřebujete použít řetězce, Například, pro uložení slovo,
Jen nezapomeňte uvést CS50.h na začátku svého programu
takže můžete použít typ řetězec.
A pak si můžete vytvořit proměnné jehož datový typ je řetězec.
Nyní později v průběhu, budeme také vidět, že to je
nikoliv celý příběh, a to buď.
Budeme setkáváme věci tzv struktury,
který vám umožní skupině, co může být celé číslo a řetězec do jednoho celku.
A můžeme používat pro nějaký účel, který by mohl
hodit později v kurzu.
>> A budeme také naučit o definovaných typů,
který vám umožní vytvořit Vaše vlastní datové typy.
Nepotřebujeme se obávat o tom teď.
Ale vím, že to je něco na obzoru,
že je tu mnohem více k tomuto celku Typ věc, než jsem ti jen
teď.
Takže teď, když jsme se dozvěděli Něco málo o přístup k základním údajům
typy a typy dat CS50, pojďme mluvit o tom, jak pracovat s proměnnými
a vytvořte je pomocí těchto datové typy v našich programech.
Chcete-li vytvořit proměnnou, vše, co potřebujete udělat, je dvě věci.
>> Za prvé, je třeba, aby to typ.
Druhá věc, kterou potřebujete udělat, je dát mu jméno.
Poté, co jste udělal, že a plácl středník na konci této linie,
jste vytvořili proměnnou.
>> Tak tady je dva příklady.
Číslo Int; char letter ;.
Co tady jsem to udělal?
Vytvořil jsem dvě proměnné.
>> První z nich, proměnné Jmenuje se číslo.
A číslo je schopna pojmout celé číslo zadejte hodnoty, protože jeho typ je int.
Dopis je další proměnná které mohou držet znaky
protože její datový typ je char.
>> Docela jednoduché, ne?
Pokud se ocitnete v situaci, kdy
musíte vytvořit více proměnné stejného typu,
stačí pouze zadat je název typu jednou.
Pak už stačí jen vypsat tolik proměnných tohoto typu, jak budete potřebovat.
>> Tak jsem mohl například zde V této třetí řádek kódu,
říkají, výška int ;, nový řádek.
Šířka Int ;.
A to by fungovat také.
Já bych ještě dostat dvě proměnné s názvem výška a šířka, přičemž každý z nich
je celé číslo.
Ale já dovoleno, věci syntaxe C, konsolidaci do jediného řádku.
Int výška, šířka; Je to stejná věc.
Vytvořil jsem dvě proměnné, jeden s názvem výška jeden s názvem šířka, v obou případech
jsou schopné udržet celočíselné hodnoty typu.
>> Stejně tak zde, mohu vytvořit tři plovoucí čárkou najednou.
Mohu snad vytvořit proměnnou volal odmocnina 2--
který pravděpodobně bude nakonec držet plovoucí point--
že zastoupení náměstí kořen 2-- odmocniny 3, a pí.
Mohl jsem to udělal na tři samostatné řádky.
Float, odmocnina 2; Float odmocninu 3; float pi; a že bude fungovat také.
>> Ale na druhou stranu, já si jen konsolidovat to do jednoho řádku kódu.
Dělá věci trochu kratší, ne jako neohrabaný.
>> Nyní obecně, je to dobrý návrh, aby pouze deklarovat proměnnou, když ji potřebujete.
A budeme mluvit trochu trochu víc o tom, že
později v průběhu když budeme diskutovat o obor.
Takže se nemusíte nutně vytvořit všechny vaše proměnné
na začátku programu, který Někteří lidé by mohli udělat minulost,
nebo to byl jistě velmi časté Před mnoha lety praxe kódování
Při práci s C. můžete jen Chcete vytvořit variabilní pravdu, když
ji budete potřebovat.
Dobře.
Proto jsme vytvořili proměnné.
Jak bychom je používat?
Poté, co jsme prohlásit variabilní, nepotřebujeme
určit typ dat té proměnné ještě.
Ve skutečnosti, pokud tak učiníte, můžete skončit s některými podivnými důsledky
že budeme trochu zakrýt nyní.
Ale stačí říct, divné věci jdou
spustit děje Pokud omylem znovu deklarovat proměnné se stejným názvem
znovu a znovu.
>> Tak tady mám čtyři řádky kódu.
A mám pár Komentáře Momentálně zde jen naznačují,
co se děje na Každá linka jen pomoci
dostanete nachází v tom, co se děje.
Takže int číslo ;.
Jste viděli, že dříve.
To je deklarace proměnných.
>> Já jsem teď vytvořili proměnnou volané číslo, které je
schopné udržet hodnoty integer typu.
Já jsem deklaroval to.
>> Další řádek jsem přiřazení hodnota, která má číslo.
Číslo se rovná 17.
Co se tam děje?
Dávám číslo 17 uvnitř této proměnné.
>> Takže když jsem někdy pak vytisknout co obsah čísla jsou později,
oni mi, řeknu, že je to 17.
Takže jsem deklaroval proměnnou, a pak jsem přidělen to.
>> Můžeme proces opakovat opět s char písmenem ;.
To je prohlášení.
Dopis se rovná kapitál H. To je úkol.
Docela jednoduché, taky.
>> Nyní tento proces může Zdá se to tak hloupé.
Proč to děláme ve dvou řádků kódu?
Existuje lepší způsob, jak to udělat?
Ve skutečnosti, tam je.
Někdy můžete vidět Tento tzv inicializaci.
Je to, když je deklarovat proměnnou a přiřazení hodnoty ve stejnou dobu.
To je vlastně docela běžná věc dělat.
Když vytvoříte proměnnou, obvykle chci to mít některé základní hodnotu.
I když je to 0 nebo tak něco.
Jenom ti, že to dát hodnotu.
>> Můžete inicializovat proměnné.
Int číslo se rovná 17, je stejný, jako první dva řádky kódu up výše.
Char letter rovná h je stejná jako Třetí a čtvrtý řádků kódu výše.
Nejdůležitější stánek s jídlem zde když jsme deklarování a přiřazování
proměnné je poté, co jsme prohlášen za to, oznámení
Nejsem pomocí typ dat znovu.
Neříkám, že počet int se rovná 17 na druhý řádek kódu, například.
Jen říkám, že číslo se rovná 17.
>> Opět platí, že re-deklarování proměnné po už jste prohlásil, že může vést
na nějaké podivné důsledek.
Tak jen pozor na to.
>> Jsem Doug Lloyd.
A to je CS50.