>> [MUSIC PLAYING]
HOPARLÖR: Bütün hüququ.
Belə ki, başqa haqqında danışmaq edək C cür unikal bir şey,
olan data növləri və dəyişənlər var.
Mən demək unikal C, Mən, həqiqətən, yalnız kontekstində demək,
Bir proqramçı olduğunuz halda həqiqətən uzun müddət,
Siz yəqin ki, var məlumat növləri ilə işləyib
Müasir istifadə etdiyiniz halda proqramlaşdırma dilləri.
Kimi müasir languages PHP və JavaScript,
biz də bir az görmək lazımdır ki, Sonra əlbəttə,
Siz, həqiqətən, müəyyən yoxdur dəyişən data type
Siz onu istifadə zaman.
>> Siz yalnız elan və istifadə başlayın.
Bu tam varsa, onu Bu tam bilirik.
Bu bir xarakter varsa, bu bu bir xarakter bilir.
Bir söz varsa, bilir Bu sözdə bir simli var.
>> Lakin C, olan bir older dil, biz lazım
məlumat müəyyən etmək üçün hər dəyişən növü
biz ilk dəfə yaratmaq ki, dəyişən istifadə.
Belə ki, C bəzi gəlir daxili data növləri.
Və tanış edək o bəzi.
Və sonra sonra biz də danışmaq lazımdır məlumat növləri bəzi az
Biz sizin üçün yazdıq ki, belə ki, CS50 istifadə edə bilərsiniz.
>> ilk int edir.
int data type dəyişənlər üçün istifadə olunur ki, tam dəyərlər saxlamaq olacaq.
Belə ki, 1, 2, 3, mənfi 1, 2, 3, və s.
Bir şey deyil Integers, viktorina üçün yadda saxlamaq lazımdır,
həmişə dörd bytes qədər yaddaş olan 32 bit edir.
Bir byte səkkiz bit var.
>> Belə ki, bu sıra o deməkdir ki, bir tam bilərsiniz ki qiymətləndirir
çərçivəsində uyğun bilər nə ilə məhdudlaşır Məlumat dəyərində 32 bit.
İndi çıxır kimi, Bu çoxdan qərar verildi
biz parçalamaq ki, 32 bit ki, sıra
mənfi integers daxil və müsbət integers,
sıra hər əldə yarısı.
Təmsil dəyərlər sıra belə mənfi 2 tam sıra
2 31 hakimiyyətə etmək 31 güc mənfi 1,
siz də 0 üçün bir ləkə lazımdır səbəb olur.
>> Mümkün dəyərlər Belə ki, əsasən yarım Əgər mənfi bir int uyğun
və yarım müsbət.
Və təxminən burada, bu mənfi haqqında 2 milyard müsbət 2 milyard haqqında.
Vermək və ya bir neçə yüz milyon almaq.
Belə ki, siz uyğun nə tam dəyişən.
İndi biz də bir şey var imzasız tam çağırıb.
İndi imzasız ints bir var dəyişən ayrı-ayrı növü.
Əksinə, imzasız edir nə seçmələrində deyirlər.
Bu data modifikasiya qədər tam növü.
>> Və bu halda, nə imzasız means-- və siz də edə bilərsiniz
imzasız digər məlumatlar növləri istifadə, tam yalnız bir deyil.
Nə səmərəli yoxdur ikiqat edir dəyərlərin müsbət sıra
tam da bilər ki, artıq imkan xərc
mənfi dəyərlərə etmək.
Bildiyiniz nömrələri varsa daha yüksək 2 milyard lakin az olacaq
4 milyard daha misal üçün olan 32 üçün 2 power--
Siz istifadə edə bilərsiniz Əgər imzasız int
Sizin dəyər mənfi heç vaxt bilirik.
>> Siz bəzən lazımdır imzasız dəyişənlər üçün istifadə
Mən burada qeyd niyə CS50, olan.
Amma dəyərlərin yenidən sıra ki, bir imzasız tam ilə təmsil edə bilər
müntəzəm tam t kimi, 0 var 32-ci hakimiyyətə mənfi 1 2,
və ya təxminən 0 4 milyard.
Belə ki, səmərəli iki dəfə etdik Siz uyğun müsbət üçündür,
lakin bütün imtina etdik mənfi dəyərləri.
>> İndi bir kənara, imzasız kimi yalnız seçmə deyil
biz görə bilərsiniz ki, dəyişən data növləri.
Adlı şeylər də var qısa və uzun və const.
Const bir az görürsünüz az sonra kurs.
Qısa və uzun, biz yəqin ki, olmayacaq.
>> Amma ki, yalnız var bilirik digər seçmələri var.
İmzasız yalnız bir deyil.
Amma biz istəyirik yalnız biri İndi haqqında danışmaq olacaq.
Belə ki, bütün hüququ.
Beləliklə, biz integers əhatə etdik.
Nə gələn var?
>> Chars.
Belə ki, chars dəyişənlər üçün istifadə olunur ki, bir simvol saxlamaq olacaq.
Char xarakter üçün qısa.
Və bəzən eşitmək bilər insanlar avtomobil kimi tələffüz.
>> Simvol həmişə bir qədər almaq, belə ki, yalnız 8 bit yaddaş byte.
Belə ki, bu yalnız uyğun o deməkdir ki, Mənfi 2 aralığında dəyərlər
yeddinci güc, və ya mənfi 128, 2 7 hakimiyyəti 1 və ya 127 minus üçün.
>> ASCII sayəsində, o çoxdan bir yol qərar
həmin müsbət nömrələri xəritəsi Müxtəlif simvol 0 127
bütün klaviatura mövcud.
Biz sonra görəcəksiniz kimi, belə ki, Əlbəttə ki, və yəqin ki, lazımdır
bəzi alarkən gəlib point, kapital A, misal üçün
karakter paytaxtı A-- sayı 65 xəritələri.
Və səbəbi ki, çünki bu nə var
ASCII standart tərəfindən təyin edilmişdir.
>> Kiçik A 97 edir.
siz üçün xarakter 0 həqiqətən, xarakter deyil yazın
sayı sıfır təmsil edən 48.
Siz bir neçə öyrənmək lazımdır bu siz getmək kimi.
Və əlbəttə ki, ehtiyac gəlmək lazımdır onlara bir az sonra CS50.
>> növbəti əsas data type point nömrələri üzən olunur.
Belə ki, üzən point nömrələri də real nömrələri kimi tanınır.
Onlar əsasən ədəd olduğunu onlara bir decimal point var.
Üzən point dəyərləri integers kimi də
Yaddaş 4 bayt içində.
İndi burada heç bir chart var.
Heç bir nömrə line çünki var bir float sıra izah
tam aydın və ya intuitiv deyil.
>> Siz onu demək kifayətdir ilə işləmək üçün 32 bit var.
Və bir sıra varsa var kimi pi,
tam part 3 və üzən point hissəsi, və ya decimal hissəsi 0,14159,
və s, siz olmaq lazımdır pseudocode bütün təmsil edə
tam hissəsi decimal hissəsidir.
>> Beləliklə, nə siz ki, demək bilər?
Bir şey ki ondalık əgər hissəsi, uzun və daha uzun olur
Mən çox böyük varsa tam hissəsi, mən bilər
kimi dəqiq ola bilər bu hissəsi ilə.
Və həqiqətən bir float məhdudlaşdırılması.
>> Floats dəqiq problem var.
Biz yalnız 32 bit var ilə işləmək, belə ki, biz yalnız bilərsiniz
Bizim decimal hissəsi ilə belə dəqiq olmalıdır.
Biz mütləq decimal ola bilməz 100 və ya 200 rəqəm dəqiq hissəsi,
biz yalnız, çünki 32 bit ilə işləmək üçün.
Belə ki, bir float bir məhdudiyyət var.
>> İndi xoşbəxtlikdən var adlı bir veri növü
ikiqat olan qədər bu problem ilə məşğul olur.
Çiftler, üzüb gedirdi kimi də istifadə olunur real nömrələri, və ya üzən point saxlamaq
dəyərləri.
fərq edir double double dəqiq var.
Onlar 64 bit uyğun data, və ya səkkiz bytes.
Bunun mənası nədir?
Bəli, biz ola bilər deməkdir daha çox bu kəsir dəqiq.
Bunun əvəzinə yeddi pi olan bir float ilə bəlkə yerləri,
biz bəlkə 30 yerlərinə ola bilər.
Ki, vacibdir, siz istədiyiniz bilər əvəzinə float ikiqat istifadə etmək.
Ümumiyyətlə, siz değilseniz bir şey olduğu üzərində işləyir
həqiqətən uzun decimal yerə sahib və dəqiq bir çox vacibdir
Siz yəqin ki, istəyirəm ikiqat overfloat istifadə edin.
İndi sizin iş üçün ən CS50, bir float kifayət olmalıdır.
Amma iki dəfə kimi mövcud olduğunu bilirik qədər dəqiqliyi ilə məşğul yol
32 əlavə verərək problem bit nömrələri ilə işləmək üçün.
>> İndi bu veri növü deyil.
Bu bir növüdür.
Və etibarsız deyirlər.
Və mən bu barədə söhbət alıram Burada biz yəqin ki, var, çünki
Artıq bir neçə dəfə CS50 Göründüyü.
Və merak bilər nə bütün haqqında.
>> Belə ki, etibarsız bir növüdür.
Bu mövcuddur.
Amma bir veri növü deyil.
>> Biz tipli dəyişən yarada bilməz ləğv, bir dəyər təyin.
Amma funksiyaları, məsələn, bir etibarsız qaytarılması növü ola bilər.
Ümumiyyətlə, siz bir funksiyası görmək əgər ki, etibarsız qaytarılması növü var,
bu bir dəyər qayıtmaq deyil deməkdir.
Siz ümumi hesab edə bilər Biz bu günə qədər istifadə etdiyiniz funksiyası
CS50 bir dəyər qayıtmaq deyil ki?
>> Printf biridir.
Printf həqiqətən deyil sizə bir şey qayıtmaq.
Bu bir şey yazdıran ekran, və əsasən
printf nə bir yan təsiri.
Amma bu, bir dəyər geri vermir.
Siz nəticə və mağaza tutmaq deyil Bəzi dəyişən sonra onu istifadə etmək.
Bu, sadəcə bir şey yazdıran ekran və siz tamamlayın.
>> Beləliklə, biz printf ki, demək bir boşluq funksiyası var.
Bu heç bir şey qaytarır.
>> bir perimetri siyahısı funksiyası da etibarsız ola bilər.
Və siz də gördüm çox CS50 bir qədər.
Int əsas void.
Bir zəng çalmaq ki, yoxdur?
Əsasən nə deməkdir ki, Əsas hər hansı parametrləri daşımır.
Heç bir dəlil yoxdur ki, Əsas keçdi almaq.
İndi sonra biz olduğunu görəcəksiniz bir yol, əsas daxil dəlilləri keçmək
lakin bu günə qədər biz nə int əsas etibarsız görülür.
Main yalnız hər hansı bir dəlilləri daşımır.
Və belə ki, biz etibarsız söyləyərək daxil.
Biz yalnız çox olan edirik bu barədə açıq
hər hansı arqumentlər deyil ki.
>> Indi üçün Belə ki, kifayətdir əsasən ki, etibarsız demək
Yalnız bir tutucu kimi xidmət etməlidir Sizin üçün bir şey kimi haqqında düşünür kimi.
Bu, həqiqətən bir şey bunu deyil.
Burada heç bir qaytarılması dəyəri var.
Burada heç bir parametrləri var.
Bu boşluq var.
Bu bir az daha kompleks var.
Amma bu kifayət olmalıdır Kursun yaxşı hissəsi.
Və inşallah indi bir az var etibarsız nə bir anlayış daha çox bit.
>> O belə beş növ will var inşa olunur C. qarşılaşma
Amma CS50 biz də bir kitabxana var.
Siz daxil ola bilər CS50.h.
Və təmin edəcək iki əlavə növləri ilə
Siz yəqin ki, edə bilərsiniz ki, Sizin tapşırıqları istifadə etmək,
və ya yalnız adətən iş proqramlaşdırma.
>> Bunlardan birincisi bool edir.
Belə ki, Boolean data növü, bool, dəyişənlər üçün istifadə olunur
ki, bir Boolean dəyər saxlamaq olacaq.
Əgər eşitdim varsa bu müddət əvvəl, siz
boolean ki, bilirik bilər dəyəri yalnız qadirdir
iki fərqli fərqli dəyərlər keçirilməsi.
True və yalan.
İndi bu olduqca görünür fundamental, sağ?
Bu ki, bir sürpriz növü var Bu daxili kimi C mövcud deyil.
Və bir çox müasir dildə, əlbəttə, Booleans
Standart default data növü var.
Lakin C, onlar həqiqətən deyilik.
Amma biz sizin üçün yaratdıq.
Əgər yaratmaq lazımdır Belə ki kimin növü bool bir dəyişən,
yalnız CS50.h # daxil əmin olun proqram əvvəlində,
və yaratmaq edə bilərsiniz bool tipli dəyişənlər.
>> Siz CS50.h # daxil etmək unutmaq və əgər Siz Boolean tipli dəyişənlər istifadə edərək başlamaq
Siz bəzi problemlər qarşılaşa bilər zaman sizin proqram tərtib edirik.
Belə ki, yalnız üçün gözetleme olmaq.
Və bəlkə siz yalnız düzeltebilirsiniz cs50.h. daxil olmaqla, funt problemləri
>> digər böyük data type ki, biz CS50 kitabxana sizin üçün təmin
simli edir.
Belə bir string nədir?
Strings, həqiqətən, yalnız sözlər var.
Onlar simvol kolleksiyaları istəyirik.
Onlar sözləri istəyirik.
Onlar cümlələri istəyirik.
Onlar ci maddələrdə istəyirik.
Hətta, bütün kitab ola bilər.
>> Çox uzun üçün çox qısa simvol seriyası.
Siz strings istifadə etmək lazımdır, Məsələn, bir söz saxlamaq üçün,
yalnız CS50.h daxil olun proqram əvvəlində
belə ki, simli növü istifadə edə bilərsiniz.
Və sonra dəyişənlər yaratmaq bilər kimin data type simli edir.
İndi sonra əlbəttə, biz də ki, görürsünüz
ya deyil, bütün hekayə.
Biz hər şeyi qarşılaşa bilərsiniz adlı strukturları,
ola bilər nə qrup sizə imkan verir ki, bir tam və vahid bir string.
Və biz istifadə edə bilərsiniz bir məqsəd, güc
kurs sonra lazımlı olur.
>> Və biz də öyrənmək lazımdır müəyyən növləri haqqında,
siz yaratmaq imkan verir Öz data növləri.
Biz narahat ehtiyac yoxdur indi bu barədə.
Amma ki, yalnız var bilirik ki, üfüqdə bir şey,
bu bütün daha çox var ki, Mən yalnız sizə deyirəm çox növü şey
indi.
Belə ki, indi biz bir öyrəndim ki, əsas məlumatların az
növləri və CS50 data növləri, edək dəyişənlərin ilə işləmək üçün necə haqqında danışmaq
və bu istifadə edərək, onları yaratmaq Bizim proqramlarında data növləri.
Bir dəyişən yaratmaq istəyirsinizsə, Siz nə etmək lazımdır bütün iki şeyi edir.
>> Birincisi, siz bir növü vermək lazımdır.
Sizə lazım olan ikinci şey etmək üçün bir ad verir.
Ki, görülən və yumruq atdı sonra bir ki, xəttin sonunda nöqtəli vergül,
Bir dəyişən yaratdıq.
>> Belə ki, burada iki misal var.
Int nömrəsi; char məktub ;.
Mən burada nə var?
Mən iki dəyişənlərin yaratdıq.
>> dəyişən nin ilk adı nömrəsini.
Və sayı tam keçirilməsi qadirdir onun növü int çünki dəyərlər yazın.
Letter başqa dəyişən ki, simvol aça bilər
onun data növü char çünki.
>> Pretty sadə, sağ?
Siz özünüzü tapmaq varsa bir vəziyyət
birdən çox yaratmaq lazımdır Eyni tipli dəyişənlər,
Yalnız müəyyən etmək lazımdır bir növü adı.
Sonra bir çox dəyişənlər siyahısı ki növü sizə lazım kimi.
>> Beləliklə, mən, məsələn, burada bilər kodu bu üçüncü xətt,
int hündürlük ;, yeni deyirlər.
Int eni ;.
Və çox iş olardı.
Mən hələ iki dəyişənlərin adlı almaq istədiyiniz hündürlüyü və eni, hər hansı
tam deyil.
Amma, C sintaksis şeyi icazə alıram bir xətt onu gücləndirmək.
Int hündürlüyü, eni; Bu eyni şey.
Mən adlı iki dəyişənlərin bir yaratdıq width adlı boyu bir hər ikisi
holdinqin bilən tam növü dəyərlər.
>> Eynilə burada, mən üç yarada bir dəfə point dəyərləri üzən.
Mən bəlkə bir dəyişən yarada 2-- kvadrat kök adlı
olan ehtimalla nəhayət olacaq üzən point keçirilməsi
Meydanın ki nümayəndəliyi 2-- kvadrat 3 kök, və pi kök.
Mən bu həyata bilər var üç ayrı-ayrı xətləri.
Float, kvadrat kök 2; Kvadrat kök Float 3; pi float; və çox iş olardı.
>> Ancaq yenə də, mən yalnız birləşdirmək olar kodun bir xətt bu.
Şeyi bir az edir qısa, kimi clunky deyil.
>> İndi ümumiyyətlə, yalnız yaxşı dizayn Siz lazım bir dəyişən elan.
Və biz bir az danışmaq lazımdır bu barədə az daha
sonra kurs zaman çərçivəsində müzakirə.
Belə ki, mütləq lazım deyil Sizin dəyişənlərin bütün yaratmaq
Proqramın başında olan Bəzi insanlar, keçmiş görmüşük bilər
və ya, əlbəttə, bir çox ortaq oldu kodlaşdırma təcrübə bir çox il əvvəl
C. ilə iş zaman Siz yalnız bilər bir dəyişən hüququ yaratmaq istəyirik
Siz lazım.
Oldu.
Beləliklə, biz dəyişənlərin yaratdıq.
Necə ki, biz onlardan istifadə edə bilərəm?
Biz bəyan sonra dəyişən, biz lazım deyil
data növü müəyyən etmək üçün ki, dəyişən artıq.
Bunu əgər Əslində, siz bilər bəzi qəribə nəticələri ilə son
biz növ indi ötürməyə lazımdır ki.
Amma demək kifayətdir, qəribə şeylər gedir
sehven əgər baş başlamaq üçün Eyni adı ilə dəyişənlərin-elan yenidən
üzərində.
>> Belə ki, burada Mən kodu dörd xətləri var.
Mən bir neçə var yalnız ifadə var şərhlər
Nə baş Hər line yalnız kömək etmək
Siz neler yerləşən almaq.
Belə ki, int sayı ;.
Siz əvvəl gördüm.
Ki, bir dəyişən elan var.
>> İndi bir dəyişən yaratdıq adlı sayı
tam tipli dəyərlər keçirilməsi qadir.
Mən bunu elan etdik.
>> Mən təyin alıram növbəti line nömrəsinə dəyəri.
Number 17 bərabərdir.
Orada nə baş verir?
Mən sayı 17 qoyulması alıram ki, dəyişən daxilində.
>> Mən heç sonra çap əgər Belə ki, nə sıra məzmunu sonra var,
onlar 17 mənə deyim.
Mən bir dəyişən elan etdik, və sonra mən onu təyin etdik.
>> Biz prosesi təkrar edə bilərsiniz daha char hərfi ilə ;.
Ki, bir bəyannamə var.
Letter paytaxtı bərabərdir H. Bu bir tapşırıq var.
Pretty sadə, çox.
>> İndi bu proses bilər cür silly görünür.
Niyə biz bunu edirik kodu iki xətləri?
Bunu daha yaxşı bir yolu var mı?
Əslində, var.
Bəzən görə bilərsiniz Bu başlatma çağırıb.
Bir dəyişən elan zaman var və eyni zamanda bir dəyər təyin.
Bu, həqiqətən, olduqca deyil ümumi şey.
Bir dəyişən, siz adətən yaratmaq zaman Bəzi əsas dəyər olsun.
Hətta 0 və ya bir şey varsa.
Siz yalnız bir dəyər verir.
>> Siz dəyişən başlamaq bilər.
17 bərabərdir sayı int kimi eyni yuxarıda kodu ilk iki xətləri.
Char məktub h kimi eyni bərabərdir Yuxarıda kodu üçüncü və dördüncü xətləri.
Burada ən əhəmiyyətli paket biz elan və təyin etdiyiniz zaman
biz sonra dəyişənlərin var onu elan bildiriş
Mən yenə data növü istifadə edərək deyiləm.
Mən int sayı 17 bərabərdir demirəm Məsələn, ikinci xətt kodu.
Mən yalnız sayı 17 bərabərdir deyirəm.
>> Yenə bir dəyişən sonra yenidən elan Əgər siz artıq bu çıxara bilər bəyan etdik
bəzi qəribə nəticəsi üçün.
Belə ki, yalnız ki, ehtiyatlı olun.
>> Mən Doug Lloyd edirəm.
Bu CS50 edir.