>> [MÜZİK OYUN]
KONUŞMACI: Pekala.
Yani başka konuşalım C tür benzersiz olan şey,
Hangi veri türleri ve değişkenler olduğunu.
Ne zaman ki eşsiz C, gerçekten Sadece bağlamında demek
Eğer bir programcı oldum gerçekten uzun bir süre için,
muhtemelen değil ettik veri türleri ile çalıştı
modern kullandıysanız programlama dilleri.
Gibi modern diller PHP ve JavaScript,
biz de biraz göreceksiniz ki Daha sonra ders,
Aslında belirtmek zorunda değilsiniz Bir değişkenin veri türü
Eğer kullandığınız zaman.
>> Sadece bunu beyan ve kullanmaya başlayabilirsiniz.
Bir tamsayı ise, onu bir tamsayı olduğunu biliyorum.
Bir karakter varsa, bu kadar Bir karakter olduğunu biliyor.
Bir kelime varsa, o bilir sözde bir dize, var.
>> Ama C bölgesi olan bir Eski dil, ihtiyacımız
verileri belirtmek için Her değişkenin tipi
Biz ilk defa oluşturmak biz bu değişkeni kullanın söyledi.
Yani C bazı gelir yerleşik veri türleri.
Ve tanıdık başlayalım Bunlardan bazıları ile.
Ve sonra sonra biz de konuşacağız veri türlerinin bazıları hakkında biraz
Sizin için yazdım ki böylece CS50 bunları kullanabilirsiniz.
>> İlk int.
Int veri türü değişkenler için kullanılır Bu tamsayı değerler kaydedecektir.
Bu yüzden, 1, 2, 3, negatif 1, 2, 3, ve böyle devam eder.
Bir şey mi olduğunu Tamsayılar, sınav için akılda tutulması gereken,
Her zaman dört bayt sürebilir bellek, burada 32 bittir.
Bir bayt sekiz bit vardır.
>> Yani bu aralığında olduğu anlamına gelir bir tamsayı saklayabilirsiniz değerleri
sığacak ne ile sınırlıdır Bilgi değerinde 32 bit.
Şimdi çıkıyor, uzun zaman önce karar verildi
Biz ayrılalım ki 32 bitlik bu aralık
Negatif tamsayılar içine ve pozitif tamsayı,
aralığın her alıyorum yarısı.
Biz temsil değerler aralığında So Negatif 2 arasında bir tamsayıdır aralığı
2 31 güç için 31 güç eksi 1,
Ayrıca 0 bir nokta ihtiyacım neden olur.
>> Olası değerler Yani temelde yarısı Eğer negatif bir int sığabilecek
ve yarım olumludur.
Ve kabaca burada, bu olumsuz ilgili 2 milyar pozitif 2 milyar kadardır.
Ver ya da birkaç yüz milyon alır.
Yani sen sığabilecek ne bir tamsayı değişken olarak.
Şimdi biz de bir şey var işaretsiz bir tam sayı denir.
Şimdi imzasız ints değil vardır değişkenin ayrı türü.
Aksine, imzasız ne bir niteleyici denir.
Bu verileri değiştirir Biraz tamsayı türü.
>> Ve bu durumda ne işaretsiz means-- ve ayrıca can
imzasız diğer veri türlerini kullanmak, tamsayı tek değil.
Ne etkili yaptığı iki katına olduğunu değerleri pozitif aralığı
bir tamsayı de alabilir olduğunu artık izin gider
negatif değerler almaya.
Eğer bildiğiniz numaraları varsa yani daha yüksek 2 milyar ancak daha az alacak
4 milyar daha example-- için bu 32. 2 ila power--
Eğer kullanmak isteyebilirsiniz eğer bir unsigned int
senin değeri negatif olmayacak biliyorum.
>> Bazen gerekecek imzasız değişkenler için kullanılan
Burada söz neden CS50 içinde, hangi.
Ama değerler yine aralık olduğunu sen işaretsiz bir tamsayı ile temsil edebilir
Düzenli tamsayı t olarak 0, 32 güç eksi 1 ila 2,
ya da yaklaşık 0 4 milyar.
Yani etkili iki katına ettik Eğer sığabilecek olumlu aralık,
ancak tüm vazgeçtim negatif değerler.
>> Şimdi bir kenara, imzasız olarak tek eleme değil
biz görebilirsiniz olduğunu değişken veri türleri.
Denilen şeyler de vardır kısa ve uzun ve const.
İnş biz biraz görürsünüz Biraz sonra ders.
Kısa ve uzun, muhtemelen olmayacak.
>> Ama orada biliyorum Diğer elemeleri vardır.
İmzasız tek değildir.
Ama bu konum tek kişi Şu anda hakkında konuşacağım.
Yani tamam.
Bu yüzden tamsayılar kapalı ettik.
Sıradaki ne?
>> Karakter.
Böylece karakter değişkenler için kullanılan bu tek karakter depolar.
Char karakter için kısa.
Ve bazen duyabilir insanlar araba olarak ilan ediyorum.
>> Karakterleri her zaman bir almak So sadece 8 bit bellek bayt.
Yani bu sadece uyum anlamına gelir Negatif 2 arasındaki değerler
Yedinci güç veya negatif 128, 2 7 gücün 1 veya 127 eksi.
>> ASCII sayesinde oldu uzun zaman önce bir yol verdi
gelenler pozitif sayılar eşleştirmek için Çeşitli karakter 0-127
Tüm klavyede var olduğunu.
Biz daha sonra göreceğiniz gibi Yani Tabii ki, ve muhtemelen olacak
bazı ezberlemek gelmek nokta, sermaye A, example-- için
karakter sermaye A- numara 65 eşler.
Ve bunun nedeni çünkü o bu kadar ne
ASCII standardı tarafından atanmıştır.
>> Küçük Harf A 97 olduğunu.
Sizi karakter 0 Aslında, karakter değil yazın
sayı sıfır temsil 48'dir.
Bir çift öğreneceksiniz Bunların gittiğiniz gibi.
Ve kesinlikle ihtiyacınız geleceğiz Onları biraz sonra CS50 içinde.
>> Bir sonraki önemli veri türü kayan nokta sayıları olduğunu.
Yani kayan nokta numaraları aynı zamanda gerçek sayılar olarak da bilinir.
Bunlar temelde sayılar olduğunuzu Onlara bir ondalık noktası var.
Nokta değerleri Kayan tamsayılar gibi da
bellek 4 bayt içinde ihtiva etmiştir.
Şimdi, burada hiçbir grafiği var.
Hiçbir sayı çizgisi nedeni var, Bir şamandıra dizi açıklayan
Tam şeffaf veya sezgisel değildir.
>> Seni söylemekle yetinelim ile çalışmak 32 bit var.
Ve bir numara varsa varmış gibi pi,
bir tamsayı bölüm 3 ve yüzer nokta parçası veya ondalık kısım 0,14159,
ve bu yüzden, size gerekir bu-- tüm temsil edebilmek
tamsayı kısmı ve ondalık kısım.
>> Peki ne anlamına gelebilir düşünüyorsunuz?
Bir şey olduğu ondalık ise bölüm, daha uzun ve daha uzun olur
Ben çok büyük bir varsa tamsayı kısmı, ben olmayabilir
olarak hassas olması mümkün ondalık kısmı ile.
Ve bu gerçekten var Bir float sınırlama.
>> Şamandıralar hassas sorun var.
Biz sadece 32 bit var ile çalışmak, böylece biz sadece can
Bizim ondalık kısmı ile çok hassas olmak.
Biz mutlaka bir ondalık olamaz 100 veya 200 basamaklı hassas kısmı,
sadece, çünkü 32 bit ile çalışmak.
Yani bir float bir sınırlama var.
>> Şimdi neyse var olarak adlandırılan başka bir veri türü
çift ​​olan biraz Bu problemle ilgilenir.
Çiftler, yüzer gibi, ayrıca kullanılan Gerçek sayılar, ya da kayan nokta saklamak
değerler.
Fark olduğunu çiftler çift duyarlıklı.
Onlar 64 bit sığabilecek Veri, ya da sekiz bayt.
Bu ne anlama gelir?
Peki, biz olmak anlamına gelir çok daha fazla ondalık noktasının hassas.
Bunun yerine yedi pi sahip bir şamandıra ile belki yerler,
belki 30 yerlere buna sahip olabilir.
Bu önemli ise, isteyebilirsiniz yerine float çift kullanın.
Temel olarak, eğer bir şey nerede çalışıyor
gerçekten uzun bir ondalık yere sahip ve hassasiyet bir çok önemli
Muhtemelen istediğiniz Bir çift overfloat kullanın.
Şimdi de işinizin çoğu için CS50, bir şamandıra yeterli olacaktır.
Ama iki katına bir şekilde var olduğunu biliyor musunuz biraz hassasiyet ile başa çıkmak için bir yol
Sana 32 ekstra vererek sorunu bit sizin numaraları ile çalışmak.
>> Şimdi bu veri türü değildir.
Bu türüdür.
Ve bu boşluk denir.
Ve ben bu bahsediyorum Burada muhtemelen ettik çünkü
Zaten birkaç kez CS50 onu gördüm.
Ve merak olabilir Ne tüm hakkında.
>> Yani geçersiz bir türüdür.
Bu mevcut.
Ama bir veri türü değildir.
>> Biz türünde bir değişken oluşturmak mümkün değil geçersiz ve ona bir değer atamak.
Ancak alma fonksiyonları, örneğin, void dönüş türü olabilir.
Temelde, bir işlev görürseniz bir void dönüş türüne sahip,
o bir değer dönmez demektir.
Eğer ortak bir düşünebiliyor Şimdiye kadar kullandım fonksiyonu
CS50 bir değer döndürmez mi?
>> Printf biridir.
Printf aslında değil sana bir şey dönün.
Bu şey yazdırır Ekrana ve temelde
printf ne bir yan etkisi.
Ama sana bir değer geri vermez.
Sen sonuç ve mağaza yakalamak değil Bazı değişkende sonradan kullanmak.
Sadece bir şey yazdırır Ekran ve bitirdiniz.
>> Bu yüzden printf demek Bir boşluk fonksiyonudur.
Hiçbir şey geri döner.
>> Bir çevresi listesi fonksiyonu da geçersiz olabilir.
Ve ayrıca gördüm Çok CS50 içinde biraz.
Int main boşluk.
Bir zili olduğunu mu?
Temelde ne demektir olduğunu Ana herhangi bir parametre almaz.
Hiçbir argüman var ki Ana içine geçmiş olsun.
Şimdi daha sonra biz orada olduğunu görürsünüz Bir yol, ana içine argümanları geçmek
ama şimdiye kadar biz ettik Ne int void main görülür.
Ana herhangi argüman almaz.
Ve böylece biz hükümsüz söyleyerek belirtin.
Biz sadece çok oluyorsun gerçeği hakkında açık
herhangi bir argüman almaz.
>> Şimdi Yani, bunu yeterli temelde bu boşluğu demek
Sadece bir yer tutucu olarak hizmet etmeli Sizin için hiçbir şey düşünmek kadar.
Gerçekten hiçbir şey yapmıyor.
Burada dönüş değeri yok.
Burada parametre var.
Bu geçersiz olduğunu.
Bundan biraz daha karmaşık.
Ama bunun için yeterli olacaktır Elbette daha iyi bir parçası.
Ve umarım artık biraz var boşluk ne bir kavramın daha biraz.
>> Bu yüzden beş türleri olacak olan built-in C karşılaşma
Ama CS50 biz de bir kütüphane var.
Eğer içerebilir CS50.h.
Ve sağlayacaktır hangi İki ek tipleri ile
muhtemelen mümkün olacağını atamaları kullanmak,
ya da sadece genel çalışma programlama.
>> Bunlardan ilki bool.
Yani Boolean veri türü, BOOL değişkenler için kullanılan
Bu bir Boolean değeri saklar.
Hiç duydum varsa Bu terim daha önce size
Bir Boole olduğunu biliyor olabilir değeri sadece yeteneğine sahiptir
İki farklı farklı değerler tutan.
Doğru ve yanlış.
Şimdi bu oldukça görünüyor Temel, değil mi?
Bu bir sürpriz tür Bu yerleşik olduğu gibi C yoktur.
Ve birçok modern dilde, tabii ki, Boolean
Standart varsayılan veri türü vardır.
Ama C, aslında değil.
Ama biz sizin için bunu yarattık.
Hiç oluşturmanız gerekir Yani eğer kimin türü bool değişken,
Sadece CS50.h #include emin olun Programınızın başında,
ve oluşturmak mümkün olacak bool türü değişkenler.
>> Eğer CS50.h #include unutmak ve varsa Eğer, Boolean tipi değişkenleri kullanmaya başladığınızda
bazı sorunlarla karşılaşabilirsiniz ne zaman program derleme ediyoruz.
Yani sadece bunun için uyanık olmak.
Ve belki sadece çözebilirsiniz CS50.h. dahil pound sorunlar
>> Diğer önemli veri türü biz CS50 kütüphanesinde sizin için temin
dizedir.
Yani bir dize nedir?
Dizeler gerçekten sadece kelimelerdir.
Onlar karakter koleksiyonları konum.
Onlar kelimeler.
Onlar cümleler konum.
Onlar paragrafları konum.
Hatta, bütün kitaplar olabilir.
>> Çok uzun, çok kısa karakter dizisi.
Eğer dizeleri kullanmak gerekiyorsa, Örneğin, bir kelime saklamak için,
Sadece CS50.h eklemeyi unutmayın senin programın başında
böylece dize türü kullanabilirsiniz.
Ve sonra değişkenleri oluşturabilirsiniz kimin veri türü dizedir.
Şimdi daha sonra derste, biz de bu olduğunu göreceksiniz
ya da değil, tüm hikaye.
Bazı şeyleri karşılaşacağınız denilen yapılar,
ne olabilir grubuna sizi izin veren bir tamsayı ve tek bir birim halinde bir dize.
Ve biz onu kullanabilirsiniz Bazı amaç, olabilir
derste daha sonra kullanışlı.
>> Ve biz de öğreneceksiniz tanımlı türleri hakkında,
hangi oluşturmak için izin Kendi veri türleri.
Biz endişelenmenize gerek yok Şimdilik bu konuda.
Ama sadece olduğunu biliyorum Ufukta bir şey,
Bu bütüne çok daha fazla olduğunu Ben sadece söylüyorum daha tip bir şey
şimdi.
Yani şimdi bir öğrendim Temel veriler hakkında biraz
türleri ve CS50 veri tipleri, diyelim değişkenler ile nasıl çalışılacağı hakkında konuşmak
ve bu kullanarak bunları oluşturmak Bizim programlarda veri türleri.
Eğer bir değişken oluşturmak istiyorsanız, yapmanız gereken tüm iki şeydir.
>> İlk olarak, bunu bir tür vermek gerekir.
İhtiyacınız ikinci şey yapmak için bir ad vermek.
Bunu yapmış ve tokatladı sonra bir Bu satırın sonundaki noktalı virgül,
Eğer bir değişken yarattık.
>> Yani burada iki örnek var.
Int sayısı; Char mektup ;.
Burada ne yaptım?
Ben iki değişken yarattık.
>> Değişken kıyafetleri, ilk isim sayıdır.
Ve sayı tamsayı tutma kapasitesine sahiptir onun türü int, çünkü değerleri yazın.
Mektubu başka değişken Bu karakter tutabilir
veri türü karakter olduğundan.
>> Oldukça basit, değil mi?
Eğer kendinizi bulursanız nerede bir durumda
Birden oluşturmanız gerekir Aynı tip değişkenler,
Yalnızca belirtmeniz gerekir Bir kez türü adı.
Sonra sadece çok değişken listesi Bu Çeşidi ihtiyacınız olduğu.
>> Yani, örneğin, burada olabilir bu kod üçüncü satırında,
int yüksekliği ;, yeni bir satır söylüyorlar.
Int genişliği ;.
Ve bu da çalışmaya devam eder.
Hala iki değişken olarak adlandırılan olsun istiyorum yüksekliği ve genişliği, her biri
bir tamsayıdır.
Ama ben, C sözdizimi şeyler iznim var tek bir satır içine pekiştirmek.
Int yükseklik, genişlik; Aynı şey.
Ben adlandırılan iki değişken bir oluşturduk genişlik olarak adlandırılan yüksekliği on, her ikisi de
Holdingin yeteneğine sahiptir tamsayı değerleri girin.
>> Benzer burada, ben üç yaratabilirsiniz bir kerede nokta değerleri kayan.
Belki bir değişken oluşturabilirsiniz 2-- karekökü denir
hangi muhtemelen sonunda olacak Yüzen point-- tutun
Meydanın bu temsili 2-- kare 3 kökü ve pi kökü.
Ben bu yapmış olabilir Üç ayrı satırlarda.
Şamandıra, karekök 2; Karekök Float 3; pi yüzer; ve bu da çalışmaya devam eder.
>> Fakat yine de, ben sadece birleştirebilirsiniz tek bir kod satırında bu.
Şeyler biraz yapar daha kısa olarak aksak değildir.
>> Şimdi genel olarak, sadece iyi bir tasarım İhtiyacınız olduğunda bir değişken bildirmek.
Ve biz biraz konuşalım Bu konuda biraz daha
Daha sonra ders biz kapsamını tartışmak.
Yani mutlaka gerekmez senin tüm değişkenleri oluşturmak
Programın başında hangi Bazı insanlar, geçmişte yapmış olabilir
ya kesinlikle çok yaygın olduğunu uygulama kodlama yıllar önce
C ile çalışırken sadece belki ne zaman bir değişken hakkını oluşturmak istiyorum
ihtiyacın var.
Pekala.
Bu yüzden değişken yarattık.
Onları nasıl kullanabilirim?
Biz beyan sonra Değişken, biz ihtiyacımız yok
veri türünü belirlemek için Bu değişkenin artık.
Eğer bunu yaparsanız Aslında, sen belki bazı garip sonuçları ile sonuna kadar
biz tür şimdilik örtbas edeceğiz.
Ama yeterli söylemek, garip şeyler gidiyor
yanlışlıkla eğer oluyor başlatmak için Aynı adı taşıyan değişkenler-bildirmek yeniden
tekrar ve tekrar.
>> Yani burada kod dört hatları var.
Ve ben bir çift var Sadece belirten Orada yorumlar
Neler oluyor Her satır sadece yardım etmek
Eğer Neler yer olsun.
Yani int sayı ;.
Bunu daha önce gördün.
Bu değişken bildirimi var.
>> Ben şimdi bir değişken oluşturduk bu aranan numara
tamsayı tipi değerlerini tutabilen.
Bunu ilan ettik.
>> Ben atama yapıyorum sonraki satır numaraya bir değer.
Sayı 17 eşittir.
Orada neler oluyor?
Ben sayı 17 atıyorum Bu değişkenin içinde.
>> Şimdiye kadar sonra dışarı yazdırmak Peki numarasının içerik daha sonra Hangi,
onlar 17 söyle edeceğiz.
Yani bir değişken ilan ettik, ve sonra onu atadık.
>> Biz işlemini tekrarlayabilirsiniz Yine Char harfi ile ;.
Bu bir beyan var.
Mektubu sermaye eşittir H. Bu bir görev.
Oldukça basit, çok.
>> Şimdi bu süreç olabilir Biraz saçma görünebilir.
Neden bunu yapıyoruz iki kod hatlarında?
Bunu yapmak için daha iyi bir yolu var mı?
Aslında, vardır.
Bazen görebilirsiniz Bu başlatma denir.
Bir değişkeni bildirmek zaman var ve aynı zamanda bir değer atayın.
Bu aslında bir güzel ortak bir şey yapmak.
Eğer bir değişken, genellikle oluşturduğunuzda bazı temel değere sahip olmak istiyorum.
Hatta, 0 veya bir şey varsa.
Sadece bunu bir değer vermek.
>> Bir değişkeni başlatmak olabilir.
17 eşit sayı int aynıdır yukarı yukarıdaki kodun ilk iki satır.
Char mektup h aynıdır eşittir Yukarıdaki kod üçüncü ve dördüncü satırları.
Burada en önemli paket biz ilan ve atama yaparken
biz ettik sonra değişkenlerin Bunu ilan, duyuru
Yine veri türünü kullanarak değilim.
Ben int sayı 17'ye eşittir demiyorum Örneğin kod ikinci satırı.
Ben sadece sayı 17 eşit söylüyorum.
>> Yine, bir değişken sonra yeniden ilan Zaten o yol açabilir ilan ettik
bazı garip sonucu için.
Yani sadece dikkatli olun.
>> Ben Doug Lloyd değilim.
Bu CS50 olup.