>> [MÜZİK OYUN]
>> Doug LLOYD: Merhaba, bu nedenle atalım C. operatörleri hakkında konuşmak
Yani, biz zaten bir tane gördüm, aslında, atama operatörü eşittir.
Bu bize sadece koymak için izin verir Bir değişkene bir değer.
Bu atama var Operatör, tek eşittir işareti.
Işlemek amacıyla ve çalışmada C büyüklüklerle birlikte
Biz operatörleri bir dizi var Bizim emrinde biz kullanabilirsiniz.
En az bir göz atalım Ortak olanlardan bazıları
aritmetik operatörleri ile başlayan.
Tahmin edebileceğiniz gibi, biz yapabiliriz C. oldukça temel matematik işlemleri
Biz, ekleme çıkarma, çarpma ve olabilir artı kullanarak bölmek numaraları, eksi, yıldız,
sırasıyla, eğik çizgi.
İşte satır bir çift var Kod içinde biz bunu.
Yani, biz int x y artı 1 eşittir var.
En yerlerde olduğunu varsayalım Bu kod satırı üzerinde yukarı
Biz int y 10 eşit demişti.
X değeri I sonra neler var Bu kod ilk satırı çalıştırmak?
Eğer 11 dedin?
Haklısınız ediyorum.
Neden?
Peki, y 10 idi.
Bazıları diyorum int x 10 artı 1 eşittir.
10 artı 1 11 olduğunu.
Yani, değer 11 olur değişken x saklanır.
Çok kötü değil, değil mi?
>> Nasıl bu sonraki satırda hakkında Kod? x x kez 5 eşittir.
Peki, daha önce biz idam bu kod satırı, x 11 idi.
Yani, değeri nedir x Bu kod satırından sonra?
Bir saniye sürer.
Yani, x x kez 5 eşittir.
x 11 oldu.
Yani, x 11 kez 5 eşittir.
Ya da 55.
Eğer 55 dersem Yani, haklı olurdunuz.
>> Şimdi, biraz kafa karıştırıcı olabilir, ama Bu atama C çalışır yolu ile
Sağdaki değer alır olduğunu Soldaki değeri atanır.
Yani, ilk önce x kez 5 değerlendirir.
Yani, 11 kez 5 55 olduğunu.
Ve sonra olan x değeri depolamak.
Orada 11 daha önce şimdi üzerine yazılır.
Yani x'in değeri şimdi 55 olduğunu.
Umarım bu oldukça basittir.
>> Eğer ettik başka bir operatör var Muhtemelen mutlaka duymamış
Bu denir, ama sen ettik kesinlikle geçmişte çalışmış
Eğer uzun günlerini hatırlıyorum eğer geri ilkokuldayken bölünme yolu.
Bu modül operatörü denir.
Ne modül yapar öyle Size kalanı verir
Birlikte iki sayı bölmek zaman.
Diyorum Yani, 13 bölü 4, kalan ne?
Ve bu değer hesaplanabilir olacağını modülü operatör tarafından.
>> Yani, ben bir kod satırı var Burada, int m 13 mod 4 eşittir.
Ve ben bir yorumda burada söylemek O m değeri artık 1 olduğunu.
Neden böyle söylüyorsun?
Eh, uzun bölünmesini yapmak senin Kafa bir saniye benimle, ayı eğer.
Yani, 4 13 bölü var.
4 13 üç kez gider 1 Bir kalanı.
Yani, temelde, bütün modülü operatör yapar
Seni ne zaman size söyler olduğunu bölmek, sen kalanı olsun.
Bunu aslında düşündüğünüzden değil korkunç faydalı bir şey,
ancak, aslında, şaşıracaksınız ne sıklıkta o modülü ile
Operatör kullanışlı gelebilir.
>> Sorunları bir çift var Biz onunla başa CS50 yapacağız.
Aynı zamanda yapmak için iyi rasgele sayı gibi şeyler.
Yani, örneğin, hiç yasiyorsaniz Bir rasgele sayı üreteci duydum,
Bu sana bir numara vermek için gidiyor 0'dan bazı büyük sayıya.
Ama belki sadece gerçekten 0 ile 20 numara gerekir.
Eğer modül operatörünü kullanırsanız Bu dev sayı o
tarafından oluşturulan alır rasgele sayı üreteci,
almak için gidiyoruz ne olursa olsun o kocaman değer, 20 bölün
ve geri kalanı olsun.
Kalan can sadece 0 ile 19 arasında bir değer olması.
Yani, modül operatörünü kullanın Bu çok sayıda almak
ve aşağı bir şey haline eritmek onu Biraz daha anlamlı.
Senin olacağım eminim Bunların her ikisi de kullanmak mümkün
CS50 gelecekte bir noktada.
>> Yani, C de bize bir yol verir Bir aritmetik uygulamak
tek bir değişken operatör Biraz daha kestirme bir şekilde.
Yani, bir önceki slaytta, Biz x x 5 katı eşittir gördüm.
Bu çalıştı.
x kez 5 x ile geri depolanır.
Bunu yapmak için daha kısa bir yol düşünce, yok, ve sözdizimi x kez 5 eşittir var.
Bu aynı kesin şey diyerek x x kez 5 eşittir.
Sadece biraz var bunu yapmak için daha kısa bir yol.
Ve bazı görünce Dağıtım kodu veya
Bazı örnek kod görmek Bu gibi şeyler yapar,
sadece aşina olmak sözdizimi ne demek.
Kesinlikle yok bunu yaparsanız kullanmak, ancak,
sizin kodu yapmak olabilir Biraz yagmurlugun görünüyorsun.
Ve ayrıca herhangi birini kullanabilirsiniz biliyorum farklı operatörler zaten var
önce yerine kez görüldü.
X artı 5, eksi eşittir söyleyebiliriz 5 kez, bölme ve mod eşittir.
Bu eserin tamamı.
>> Bir şey de var o C çok yaygın olduğunu
biz karar verdik Hatta bundan başka rafine.
1 ile bir değişkeni artırma veya 1 bir değişkenin değerini
Böyle bir ortak thing--, özellikle bir Biz konuşurken yaklaşık biraz sonra döngüler
on-- biz yerine karar verdik x artı gibi bir şey 1'e eşit söyleyerek
veya x x artı 1 eşittir, biz bile ettik Kısacası bu x artı artı teslim.
Yani x x artı 1, x eşittir artı 1 eşittir, ve x artı artı hepsi aynı şeyi yaparlar.
Onlar, 1 bütün artım x.
Ama bu artan ve 1 ile azaltma
Elimizdeki o kadar yaygındır artı ve eksi eksi artı
bu bizi steno izin daha da bu.
>> Yani, saniye vites geçiş izin ve Boole ifadeleri hakkında konuşmak.
Ayrıca tür olan tüm düşmek operatörlerin genel kategorisi.
Ama Boole ifadeleri, Aritmetik operatörler aksine,
verilerin karşılaştırılması için kullanılır.
C Yani, yine, tüm Boole ifadeleri iki olası değerlerden biri değerlendirmek,
anımsıyorum.
Doğru ya da yanlış.
O sadece iki değeri olduğunu Boolean değişkeni alabilir.
Biz Sonuçları kullanabilirsiniz Boolean ifadenin
programlama yollarla bir çok.
Aslında, olacak Bu oldukça bir sürü yapıyor.
>> Örneğin, biz karar verebilir, Evet, bazı koşul doğruysa,
belki bu alacağım Benim kodunu şube.
Bir koşullu, tabiri caizse.
Biz çok yakında o öğreneceksiniz.
Ya da belki, sürece Bu benim istediğim doğrudur,
Bunu yaparken tutmak üzerinde ve tekrar ve tekrar.
Bir döngü.
Her iki durumda da, biz kullanıyor olduğunuzu biliyorum doğru ya da yanlış bir Boolean ifadesi,
olup olmadığına karar için Belirli bir yol almaya.
Bazen biz çalışıyoruz Boole ifadeleri ile,
Biz tipi Bool değişkenleri kullanır.
Sen ilan olabilir Bir Bool, değişken yazdığınız
ve kullanacağınız sizin Boole ifadesi.
Ama her zaman yapmak zorunda değilsiniz.
O, C, olmayan her 0 çıkıyor Değer true söyleyerek aynıdır.
Eğer beyan olsaydı bir tipi Boolean değişken,
ve işte, gerçek o değeri atanır arasında bir tamsayıyı ilan aynı
ve bu değer atama 1, 2, 3, ya da gerçekten herhangi bir değer
0'dan farklı olursa olsun.
C Çünkü olmayan her 0 değeri doğrudur.
0, diğer taraftan, yanlıştır.
Bu gelebilir bilmek sonra kullanışlı,
ama sadece bir şey akılda tutmak için.
Biz her zaman kullanmak zorunda değilsiniz Boolean türü değişkenleri zaman biz
Boole ifadeleri ile çalışıyoruz.
>> Boolean iki ana türü vardır biz çalışacağız ifadeleri.
Mantıksal operatörler ve ilişkisel operatörler.
Orada dili korkunç önemli değil.
Ben onları gruplama ediyorum ne kadar gerçekten.
Ve kesinlikle olacak, çabuk, bence Bir ilişkisel operatör ne fark
dayalı bunlar nelerdir zaman biz Bir saniyede onlar hakkında konuşmak.
Ama ille de dert etmeyin terim mantıksal operatörü ezberlemeye
veya ilişkisel operatör.
Ben sadece grubuna istimal Onları mantıklı bir şekilde.
>> Yani, bir göz atalım üç mantıksal operatörler
biz oldukça görürsünüz CS50 programlama bit
ve programlama daha genel olarak.
Mantıksal AND, doğruysa ve Sadece iki işlenen doğruysa.
Aksi halde yanlış.
Nerede demek?
Yani, ben yaşıyorum diyelim Ben benim kod işaret
iki değişken, x ve y.
Ve ben karar vermek istiyorum benim kod bir şeyler yapmak
x doğrudur ve y doğruysa dayalı.
Ben sadece bunu yapmak istiyorum her ikisi de doğruysa,
Aksi takdirde bunu aşağı gitmek istemiyorum yol bana yardım gitmiyor çünkü.
Ne diyebilirim x & eğer y.
Bu mantıklı bir Boolean olacak sentezleme karşılaştırırken x ve y
ve belli bir yol alarak Onların değerleri ne dayalı.
X doğrudur ve eğer öyleyse, y doğrudur Burada bu doğruluk tablosu dayalı,
Sadece o zaman o yolda gidecek.
X & y & edin.
Sadece true-- ve sadece var x doğrudur ve y doğrudur doğruysa.
Ikisinden biri yanlış ise, Biz doğruluk tablosunu görmek kadar,
ve x ve y her ikisi de doğru değildir.
Ve böylece, x ve y yanlıştır.
>> Mantıksal VEYA ancak ve ancak gerçek En az bir işlenen doğruysa.
Aksi halde yanlış.
Yani mantıksal VE gerekli x ve y her ikisi de doğru olması için.
Mantıksal VEYA doğru ya da y olmasını gerektirir x doğru olması için ya da her iki x ve y doğru olduğu.
Yani, yine, biz tür bulmak Bir durumla karşı karşıya
Bizim kod nereye gittiğini, ve biz yolda bir çatal ulaştı.
Ve biz aşağı gitmek istiyorum Özellikle yol x doğruysa
ya da Y, doğru, ancak eğer ille de her ikisi de doğrudur.
Ama muhtemelen eğer her ikisi de doğrudur.
X doğrudur ve eğer öyleyse y Gerçek, biz bu yolda gideceğiz.
x doğrudur.
Bunlardan biri sağ, doğru mu?
X doğrudur ve y doğru ise.
X doğrudur, ve y, yanlış ise, Bunlardan biri hala geçerlidir.
Yani, x veya y halen geçerlidir.
X yanlış, ve y doğru ise, Bunlardan biri sağ, hâlâ doğrudur?
y, bu durumda doğrudur.
Yani, x veya y doğrudur doğrudur.
X yanlış ve y false Sadece eğer biz bu yolda gitmez,
x ne y ne doğrudur, çünkü.
Şimdi, arıyorsanız Ekranın sağ şimdi
ne o merak Sembol mantıksal OR için,
dikey çubuk denir.
Ve eğer klavyenizdeki bakarak Bir dakika, ben şimdi yapıyorum olarak,
Sadece yukarıdaki genellikle var Enter tuşuna, çoğu klavyelerde,
ters eğik çizgi aynı tuş üzerinde.
Ayrıca genellikle doğru köşeli parantez yanında.
Yani, bir anahtar olabileceğini sana Geçmişte çok yazdığınız değil.
Ama, hiç yapıyoruz mantıksal karşılaştırmalar,
Biz yapıyor olacak şekilde derste çok, bu kadar
faydalı olacak Bu anahtarı bulmak ve kullanmak.
Yani, aynı tuş üzerinde genellikle var ters eğik çizgi olarak sadece yukarıdaki girin.
>> Nihai mantıksal operatör değil.
Ve DEĞİL oldukça basittir.
Onun işlenen değerini tersine çevirir.
X doğruysa, o zaman değil x yanlıştır.
X yanlış ise, o değil x doğrudur.
Bazen bu sembol duyarsınız patlama veya ünlem olarak telaffuz
veya değil.
Oldukça fazla hepsi aynı şey.
Eğer bu sözlü duymak ve Eğer, bunun ne anlama geldiğini emin değiliz
Sadece ünlem var point, ama bazen var
Bir kaç farklı şeyler aradı.
Pekala, o alır Mantıksal operatörler önemsiyorum.
Yani, hakkında konuşalım ilişkisel operatörler.
Yine, bu aşina iseniz geri ilkokulda aritmetik,
muhtemelen tanıdık ile bunların nasıl iş zaten.
Beklediğiniz gibi Bunlar tam davranır.
Yani az çok bu, doğru daha Örnek, x ve y daha az ise.
X 4 ve eğer öyleyse, y 6, x ve y daha azdır.
Bu doğru.
Küçüktür veya eşittir Oldukça benzer şekilde çalışır.
X 4 ve y, daha sonra 4 ise x ve y daha az ya da eşittir.
Daha harika. x ve y daha büyüktür.
Ve daha büyük ya da, X eşittir y den büyük veya buna eşittir.
Bu doğru ise, o zaman olacak Bu ifadeyi geçmek
ve aşağı gidersiniz Yolda o yolu.
X y büyükse, bir varsa, ve x, aslında, y daha büyüktür olup,
sen ne yapacağım şartıyla.
>> Biz yok edin daha az tek karakter
ya da eşit, gibi olabilir matematik ders kitaplarından aşina.
Yani, biz, sembol az olması bir eşittir işareti izledi.
İşte biz temsil nasıl veya eşit az.
Ve aynı şekilde, bunu yapmak daha büyük veya eşit için.
>> Son iki ilişkisel önemli olan operatörler
Eşitlik ve eşitsizlik için test ediyoruz.
Yani x eşitse, y eşittir doğrudur x ve y değeri aynı ise.
X 10, y, daha sonra 10 ise x eşittir y doğrudur eşittir.
X 10 arasındadır ve y x 11 ise, y doğru değildir eşittir.
Biz de kullanarak eşitsizlik için test edebilirsiniz ünlem ya da patlama veya DEĞİL,
Tekrar.
Eğer, x, y eşit değildir Bu, biz burada kullanmakta olduğunuz sınav var
biz gitmek için iyi olurdu.
Bu yüzden, x, eşit değilse y o yolda gidersiniz.
>> Burada gerçekten dikkatli olun.
Bu gerçekten ortak mistake-- var ve bir ben kesinlikle yapılmış oldukça çok zaman
Ben started-- başlamıştı yanlışlıkla hata için
Atama operatörü, tek eşittir, eşitlik karşılaştırma operatörü için,
çift ​​eşittir.
Bazı garip yol olacak kodunuzu davranış,
ve genellikle derleyici olacak Eğer çalıştığınızda bu konuda sizi uyarır
ve kodunuzu derlemek, ama bazen Eğer bunu gizlice mümkün olabilir.
Mutlaka iyi bir şey değil Eğer bunu gizlice olduğunu, ancak.
Sadece yapıyorsun eğer öyleyse Bir eşitsizlik testi,
Eğer iki olup olmadığını denetleme eğer Farklı değişkenler aynı değere sahip
Bunların içinde, kullandığınızdan emin olun eşittir, ve tek eşittir eşittir.
Ve bu şekilde program olacak Eğer düşündüğünüz davranışı var.
Ben Doug Lloyd yaşıyorum ve bu CS50 olduğunu.