>> ROB BOWDEN: Bu daha rahat bölümünde
ama bu demek değildir eğer Eğer daha rahat değilsin gibi hissediyorum
Burada bir şeyler öğrenmek değil.
Yani başlayalım.
Eğer slaytlar var mı doğru şeyler girecek.
Ben yaklaşık sadece sağ şimdi almak muyum?
Dizüstü geçiş.
>> ALLISON: Sen istemiyorum Rob kendinizi tanıtmak?
>> ROB BOWDEN: Ah, ben Rob değilim.
Bu benim beşinci yıl TF-ing CS50 olduğunu.
>> Gabriel: Ben Gabriel değilim.
Ben CS50 baş TF değilim.
Geçen yıl ve bu yıl TF oldu.
ALLISON: Ve ben Alison değilim, ve bu benim ikinci yıl TF-ing CS50 olduğunu.
>> ROB BOWDEN: Pekala, Soldaki bu şey,
umarım daha önce gördüm.
Eğer sana değil çünkü Kendiniz için indir,
Eğer derste bunu görmeliydin.
Yani bu CS50 cihaz ve o biraz bunun bir açıklaması yaptılar
derste.
Ama temelde sadece sensin Bir işletim çalışan
senin işletme içinde sistem Sistem size verebilir böylece
gerek kalmadan programları oh bu, endişe
Her iki Windows çalışmak için gidiyor ve sizin Mac veya eğer bazı
Zaten, Linux Linux kullanıyorsunuz.
Sadece gerekiyordu ortak bir oyun olacak
alan herkesin sahip Aynı kesin ortam.
>> Yani eğer değil var zaten bu indirilen
sen çünkü sen, bunu yüklemeniz gerekir Sorun seti için ihtiyacınız olacak.
Ve bu iki gigabayt olduğunu bu süre alabilir, bu yüzden indirmek.
Harvard günü hızlı gidersiniz.
Yani CS50 cihaz.
>> Şimdi başlangıçta, biz gidiyoruz Komut satırından sadece bir demet hakkında konuşmak
şeyler, ve böylece, ben çalışmaya demek Burada bu küçük ortamda.
Ve tüm şeyler fark Ben şimdi burada söylemek
Eğer içinde iseniz işe gidiyoruz Cihazın içinde bir terminal olup,
ya içinde ise gedit terminal penceresi
Cihazın içinde.
Yani bu ortamlar aynıdır.
>> Ama ben üçüncü bir rota gidiyorum.
Ve burada bu aşağı fark Burada küçük bir IP adresi.
Yani gerek yok Bunu yapmak, ama bu IP
adresB şimdi hariç ben-- eğer Bu şey tarafından bloke oluyor.
Tamam, böylece IP adresi Bir terminal üzerinde
ötürü-- yüzden bu terminal üzerinde Burada benim Mac bir terminal.
Yani bu şu anda hiçbir şekilde tüm cihaz ile ilişkili.
Windows üzerinde iseniz, o zaman sen bir şey indirmek için ihtiyacınız olacak
özel olarak bunun için, özellikle İnsanlar Macun, P-U-T-T-Y kullanın eğilimindedir.
>> Peki ne yapacağım türü SSH ve daha sonra bu IP adresi.
Peki, o IP adresine jharvard.
Yani 192.168.24.220.
Bu korkutucu mesaj, onu görmezden.
Sadece evet yazın.
Bu kutuda CS50 olup.
Bu sizin şifre sorar.
>> Ve böylece bu bağlamlarda nerede bir sürü o [duyulamaz], şifre sorar.
Biz soruları nerede bir sürü var o aslında yazarak değil diyor.
Size karakterleri görünmüyor Şifre yazarken, eğer bir şey,
Bir güvenlik özelliği için, çünkü eğer Birisi omzuna arıyor
ve onlar yıldız yıldız görmek star, daha sonra
biliyoruz ki şifreniz Dört karakterdir.
Yani fikir sormak olacaktır şifrenizi yazın sizin için.
Bu göstermek için gitmiyor Eğer karakter,
ama aslında onları kabul ediyor.
Bu durumda, herhangi bir saatinde Hiç bir parola istemi bakın
Cihaz ile ilgili, Şifre kıpkırmızı olacak.
Yani kızıl.
>> Ve şimdi burada bu iç Benim Mac içinde pencere,
Ben temelde yaşıyorum Aynı kesin görünüm
Bir terminal içi gibi Cihazda.
Yani bunu yapmak zorunda değilsiniz.
Sen her şeyi yapabilirsiniz Cihazın içinde istiyorum.
Neredeyse aslında asla Cihazda bir şey.
Ben hemen hemen her zaman şimdi en aza indirmek ve Ben cihazın içine SSH çalışıyorum.
>> Eğer bir şey, eğer , yavaş bilgisayar var
Eğer bir fark olabilir.
Ben tercih çünkü bunu Bu terminal penceresi.
Bu gibi bazı özelliklere sahiptir Ben pencereyi ayırabilirsiniz,
ve şimdi ben SSH olabilir Cihazın içinden.
İki SSH seferde oluyor var.
Bilgisayarınız özellikle yavaşsa ve cihazın çalışıyoruz
ve bu fark Gerçekten laggy, ne olursa olsun.
Çok daha hızlı olma eğilimindedir Eğer SSH-ed iseniz.
Ama aksi takdirde iki şekilde çalışabilir.
>> İZLEYİCİ: SSH ne anlama geliyor?
>> ROB BOWDEN: Güvenli kabukları, böyle bir şey?
SSH ne demek?
Gabriel: Güvenli kabuk.
ALLISON: Sadece güvenli kabuk var.
ROB BOWDEN: Güvenli kabuk.
O bu siz-- bir protokol var Güvenli bir protokol, böylece şifreli.
İnsanlar ağı snoop olamaz ve Eğer bir şey söylüyorsun görmek
Eğer SSH-ed sensin.
Ve aslında, eski içinde CS50 gün, 2009 yılında yani
Ben bir çaylak, yol iken bu Eğer, CS50 sorunu setleri üzerinde çalıştı
Bazı sunucuya SSH-ed biz, size erişim verdi
ve orada çalıştı.
Yani bu yoktu grafiksel cihaz.
Sen gedit yoktu.
Tüm bunları yoktu Eğer noktayı görsel olarak ve tıklayın olabilir.
Bu arayüzde çalışmak zorunda.
Bu arayüzde çalışmayı tercih.
Biz gidiyoruz ne Yani parçası Şu anda üzerinde gidiyor gibi
bir demet yapmanız gerektiğini komutları
olarak tanımak için başlangıç Eğer ders birlikte gitmek.
Ve dürüst olmak gerekirse, size bir kez onlara alışmak, o
bu kadar hızlı Bu ortamda çalışmak
o bulucu ile çalışmak daha, sürükleyip şeyler tıklayarak.
>> Yani burada biz.
Şimdi sadece SSH-ed ve böylece Varsayılan sizi bulunduğu yerlerde
, sınıfta bu komutların bazılarını gördüm ama biz yine hepsini üzerine gidersiniz.
Biz konum varsayılan konumu ev dizini.
Ve dizin, sadece Klasör için başka bir kelime.
Yani biz ev dizininde konum.
Dosyaları listelemek, ls yazın Bu dizinde.
Besbelli ben daha önce bir blah.c yarattı.
Yani biz bir masaüstü dizin var.
Sen dizim fark?
açık mavi vurgulama gösterir Bir dizin ve düz beyaz
sadece düz bir dosyayı belirtir.
Yani orada olacak Gördüğünüz bazı diğer renkler.
Bir yürütülebilir dosya muhtemelen gidiyor Bu gibi yeşil falan olması.
Tamam, bu yüzden ev dizininde bulunmaktadır.
>> Şimdi farklı bir gitmek istiyorum Dizin, cd istediğim komutu.
Yani o dizini değiştirmek, ve dizinin adını geçmek
Eğer gitmek istediğiniz.
Yani burada biz dört seçeneğiniz vardır.
Ben indirme geçebiliriz, ve şimdi gördüğümüz Burada bu parantez güncellendi
Ben ~ / indirme olduğumu söylemek.
>> Peki Yaklaşık nedir?
Bunun için bir kestirme var Ev dizini.
Yani hemen her şeyi yapmak için gidiyor ev dizinine göre olabilir,
ve pwd sadece bir komut Ben yılda bir kez kullanan
Sadece Geçerli dizini yazdırır.
Ve böylece burada görmek ~ / Indirme gerçekten giderir
/ home / jharvard / indirmeleri.
Yani / home / jharvard benim ev dizini.
>> Bu yüzden cd nokta nokta olabilir.
Şimdi nokta nokta özel bir dizin olduğunu Her zaman bir dizin yukarı anlamına gelir.
Ben ~ / indirme kulüpler eğer, o zaman cd nokta Yani nokta Tilde beni getirmek için gidiyor.
Biz cd nokta nokta nedir sizce Şimdi beni getirmek için gidiyor?
Bu / home beni getireceğim.
Yani baskı çalışma dizini tilde, Ben şimdi / home / jharvard değilim.
bundan bir dizin yukarı, Şimdi ev / burada diyor.
>> Cd nokta nokta Şimdi.
Şimdi kök dizininde değilim, ve tekrar yapamazsınız.
Siz sadece kalacağım sonsuza kadar kök dizini.
Kök dizini bir sürü vardır Eğer içine bakmak istiyorsanız, işler,
yapabilirsiniz.
Örneğin, ben gidersem kutusu içine, o içeriyor
Böyle ls gibi tüm bu ikililer, ve cd ve tüm bu şeyler.
Peki bu komutlar gerekir sistemde bir yerde var,
ve / bin dizininde bulunuyor.
Ama yapmak neredeyse her şey ev dizini olacak.
Ve herhangi bir argüman olmadan cd Eğer cd ~, gerekmez söyleyebiliriz.
cd getirmek için gidiyor geri ev dizinine kopyalayın.
>> Bir sonuncusu.
cd - sizi geri getirmek için gidiyor Eğer vardı son dizin.
Yani sadece, arka arkaya iki kez cd'd yüzden benim Son rehberi ana dizini oldu.
Ben şimdi bin slash ve giderseniz en yukarı ve kullanıcı içine gidelim.
Kullanıcı payı.
Kullanıcı paylaşımına gidelim.
Şimdi kullanıcı payı şimdi değilim.
cd - geri bin.
Yani bu özellikle yararlıdır alır Eğer have-- ve ne zaman geçiş olacak.
Kullanıcı geri payı, bin, hisse bin Yani.
>> Peki bu yararlı olur.
Sen, kendinizi çok sahip bulabilirsiniz pek çok, pek iç içe dizin.
Ve bir şey yapmak istiyorum bir üst dizinde gerçek hızlı.
O dizine gidin, yapmak Böyle değişiklikler ve malzeme,
ve şimdi gitmek istiyorum geri nerede için.
cd -.
Ben her zaman sinirli değilim Ben gitmek için ne zaman
Bu dizin I iş yapmak istedim.
Ben yaptım ben hep sinirli olsun Bunun yerine, bir aşama iki aşamada da,
o cd gelir çünkü - gidiyor O ara konuma getirmek için
bunun yerine gitmek istediğiniz yerin.
>> Bu yüzden tüm liste dosyalarına bakın.
Biz bugüne kadar çevrede nasıl biliyorum.
Şimdi dosyalarını düzenleme hakkında konuşalım.
Bu derste Yani, sen neredeyse Her zaman gedit kullanmak bekleniyor.
Eğer isterseniz, bir sonraki adım atabilirsiniz ve bir komut satırı metin öğrenmeye başlamak
editör.
Yani çeşitli seçenekler mevcuttur.
Muhtemelen >> Ve olanlar Sizinle ilgili olacak,
biz Nano, Vim, Emacs ve var.
Yani Nano başlayanlar ise Komut satırı metin editörü.
Yani Nano üzerinde gidelim blah.c ben daha önce oluşturduğunuz.
Sadece bu standart C dosyası var.
Ve sen şeyler bir sürü görmek Ekranın alt kısmında oluyor,
ve görünüşe blah.c Bu C kodu içerir.
>> Bu özel editörü Yani, ne bottom-- de söylüyor
Şimdi bu şapka simgesi, Bu ^ G ^ X ^ O bkz.
Böylece hemen hemen tüm Gördüğünüz bağlam,
Eğer o şapka sembolü görebilirsiniz Yığın taşması online başka yerlerde,
böyle bir şey.
Bu hemen hemen her zaman kontrol eder.
Yani yapmak istediğiniz çıkmak için Kontrol X. Kontrolü X, çıkar.
Ve ben oku kullanabilirsiniz tuşları hareket etmek için.
Ben gelin ve kolayca tıklayın edemez dikkat edin.
Sen ok kullanmak gerekir tuşları hareket etmek için.
Bir ayar olabilir gelin ve tıklayın.
>> Ama bazı değişiklikler yapalım.
Şimdi Kontrolü X çıkmak gitmek için.
Bu modifiye tampon kaydetmek söyleyecek.
Şimdi evet istemi, y, n, hiçbir için.
Iptal için Kumanda C.
Ben sadece evet demek gerekir.
Yazmak için dosya adını.
Varsayılan dosya zaten olduğunu.
Enter tuşuna basın.
TAMAM MI.
Şimdi ben sadece bu dosyayı düzenlenebilir ettik, o kurtardı, ve değiştirilir.
>> Peki Nano en kolay metin editörü alışmak.
alternatifler Vim ve Emacs vardır.
Bu üst düzey metin editörleri vardır Bu çok dik bir öğrenme eğrisi vardır.
Yani benim kişisel tercihi Vim olduğunu.
Ve bu seçenekleri geniş bir çeşitlilik vardır.
Ve sen alışmak kez Bunun için, size asla anlayamayacağım
başka gitmek istiyorum metin editörü size çünkü sadece
o kadar çok şey var Bu sizin için kullanılabilir,
ama gerçekten alır Uzun zaman öğrenmek için.
Yani belki sadece zorlamak istiyorum Kendinizi hemen, ona alışması için
ama ben buna değer olduğunu söyleyebilirim.
Ama zor.
>> Sonra Emacs.
Ben her zaman Emacs mücadele çünkü Ben hiçbir şey yapmak için biliyorum.
Görünüşe göre Emacs varsayılan değil Cihazın üzerinde yüklü.
Biz muhtemelen katacak varsayılan kurulumları olarak.
Eğer birini öğrenmek kez Vim veya Emacs, orada
hiçbir zorlayıcı neden Hiç, diğer öğrenme
ama bu tamamen farklı bir tarzı var.
Tamam böylece metin dosyalarını düzenleme var.
>> İZLEYİCİ: Eğer sıkışmış olsaydı Vim şu anda nasıl biz--
>> ROB BOWDEN: var Vim birden modları
ve tüm orada Vim öğrenme öğreticiler.
Yani olmak olur sırayla ekleme modunda
hangi can, metin yazmak için çeşitli şekillerde girin,
Eğer ekleme moduna almak nasıl ama i.
Veya herhangi bir özel çıkmak Eğer konum modunda, sadece kaçış.
Ve sadece almak için Escape bash Herhangi bir iç içe modları için de dışarı.
Sadece Tamam, şimdi ben normal modda değilim.
>> Ve böylece normal modda, bir kolon.
Bunu alt kısmında görünür bkz.
Sonra q.
Eğer değişiklik yaptıysanız Yani q çıkılacak, hangi Ben-- değişiklikler yaptık?
Ben görünüşte değişiklikler yaptık.
Eğer değişiklik yaptıysanız, o olacak Yani Eğer bir ünlem işareti koyabilirsiniz söylüyorlar.
Ben bir patlama aramak için gidiyorum.
Yani yasak koyabilirsiniz sadece hiçbir şey yapmadan çıkmak,
veya kolon wq kaydetmek ve çıkmak olacaktır.
W genel Yani yazmaya.
Yani dosyası yazmak.
Ben yazmak ve çıkabilirsiniz.
Yoksa sadece olabilir qx slam, q patlama sadece
ne olursa olsun orada almak için Yaptığınız herhangi bir değişiklik.
>> Pekala, şimdi diyelim go-- biz dosyaları oluşturabilirsiniz.
Dosyalarını kaldırarak başlayalım.
Ve ben sadece bir atarım Hızlı Yeni komut, dokunmatik.
Yani foo dokunun.
Dokunmatik bar.
Baz dokunun.
Ben ls, şimdi biz görürseniz Bu dosyaların bulunduğunu.
Onlar tamamen boş olduğunu.
Yani dokunmatik sadece kolay bir birinin yolu, [inaudible].
İki teknik sadece devlete o, o zaman damgaları günceller.
Yani oluşturduğunuz herhangi bir dosya vardır Bir zaman damgası ile ilişkili.
Yani baz oluşturulmuş 16:21 de 14 Eylül.
Bu yüzden eğer, şimdi 16:22 var Ben yine Baz dokunma, biz
görmek baz olan en Son zamanlarda 16:22 modifiye.
Ama aksi takdirde ben hemen hemen hiç dosyalar üzerinde damgaları bak.
Dokunma Yani, burada ben sadece kullanıyorum bazı hızlı dosyaları oluşturmak için.
>> Pekala, şimdi rm olduğunu Burada umurumda komutu.
Ve biz boo rm edebilirsiniz.
Düzenli boş bir dosya boo kaldırmak söylüyorlar.
Ve biz y yazabilirsiniz, ve şimdi kaldırır var.
rm baz.
Düzenli boş bir dosya kaldır baz ve hiçbir için n yazın.
Şimdi kaldırıldı değil.
Yani bar ve baz hala var.
Foo gitti.
Gabriel: konuşmaya devam edin.
ROB BOWDEN: Büyük.
Can sıkıcı mesajın Yani Burada, düzenli empty-- kaldırmak
Orada ne yapıyorsun?
Düzenli boş bir dosya çıkarın.
Biz olmak istemiyorsanız Yani Bu mesajla rahatsız,
Bu -f atabilir bayrak ve böylece kuvvet var.
Ben -f rm Ve şimdi, bu gidiş değil Bu dosyayı kaldırmak istiyorum söylüyorlar.
Sadece bunu yapacağım.
Ve ls, ben artık orada bar görmek yok.
>> Şimdi bu potansiyel olduğunu Tehlikeli komut.
Çok kötü değil eğilimindedir.
Biz bir ikinci come back nasıl gerçekten tehlikeli alabilirsiniz.
Ve en bazı geçici dizini yapalım.
mkdir, başka bir komut.
Yani mkdir bir komut bir dizin oluşturur.
Ve şimdi ls biz bu güzel ışık görüyorum mavi temp dizinini vurguladı.
Ben temp içine cd yapabilirsiniz.
Ve ben foo mkdir olabilir.
foo içine cd. mkdir çubuğu.
çubuğuna cd.
>> Yani biz kolayca alabilirsiniz görmek bazı oldukça derin iç içe içine.
Şimdi nasıl bir dizin kaldırırım?
rmdir.
Yani sadece düz rm çalışırsanız, gibi biz normal bir dosya ile yaptım
rm çubuğu gidiyor çubuğunu kaldırmak olamaz söylüyorlar.
Bu bir dizin.
Özel bir komut için var tür, dizinleri kaldırarak.
Yani rmdir bar.
Şimdi çubuğu gitti.
>> Tamam, bu yüzden rmdir kullandığım hemen hemen hiç.
Şimdi gelelim being-- nedeni Burada normal bir dosya bar yapmak.
Yani rmdir boo.
rmdir.
Foo kaldırılamadı.
Dizin boş değil.
Yani bir üzerinde dir kaldırmak kullanmayın olabilir İçinde şeyler vardır dizin.
>> Yani bazı seçenekler var.
O dizine gidebilir, kaldırmak Her şey elle ve sonra çıkıp
ve dizin rmdir.
Bu tabii ki can sıkıcı geliyor.
Binlerce nedir varsa Orada dosyaların?
Peki, sen * rm olabilir.
Biz bir saniyede * hakkında konuşacağız.
Temelde her şeyi demektir.
Ama daha iyisi, bu yüzden rm -r.
Yani rm -r-- bir çok bağlamları, -r, özyinelemeli anlamına gelir
Biz bahsedeceğiz hangi ne Birkaç hafta içinde özyinelemeli anlamına gelir.
Ama temelde traversi demektir Bu dizinin tamamı
ve her şeyi kaldırın.
>> Peki rm -r foo söyleyecek Dizin foo iner?
Evet.
Düzenli boş bir dosya foo / bar kaldırılsın mı?
Evet.
Dizin foo kaldırılsın mı?
Evet.
Şimdi foo ve her şeyi içinde o kaldırıldı.
>> Şimdi özellikle can sıkıcı alabilirsiniz when-- en, 2 dokunma, 1 dokunun 3. dokunmasına izin.
Dosyaların bir sürü olabilir.
Ben isteseydim, yaratabilir Burada binlerce dosya.
Ve rm -r foo gidiyor oldukça can sıkıcı olmaya.
Evet, evet, evet, evet, evet, evet.
Bir çok daha fazla dosya ile hızlı kaç kez görmek
Evet yazın olurdu.
Peki, biz ne kadar biz önce gördüğümüz Evet -f yazın gerek kurtulmak.
Yani mkdir foo cd foo dokunmatik 1 2 3.
Tamam, bu yüzden rm -rf foo gidiyor körü körüne tamamen foo çıkarın.
Hiçbir istemi.
Hiçbir şey.
Foo gitti.
>> Yani bu kullanma eğiliminde her zaman komut.
Yani bir olduğunu söyledi çok tehlikeli bir komut,
Ben böyle bir şey yaparsam, çünkü Bu, o size sormaz.
Bu gitmiş olacak.
Ve bu, oldukça sık olur ve hatta daha yüksek düzeyde CS derslerde.
Bazen görürsünüz şey burada kimse
Ben yanlışlıkla bizim rm rf-ed benim evim diyor dizin ve benim P kümesinin tüm gitti.
Ve bu, yıkıcı değil ama hiçbir çöp tenekesi var.
Hiçbir şey yok hayır var Geri almak için.
Sadece gitti.
Olacağını da kötüsü rm -rf / 'gibi bir şey.
Yani biz sadece tartışılan Bu kök dizin.
Bu tüm tutar Sisteminizde dosyaları.
Şeyler oldukça dağınık almak eğilimindedir Eğer ls gibi şeyler kaldırdığınızda,
ve cd ve bunların hepsi.
>> İZLEYİCİ: ne fark var rm, rf ve rm * arasında
ROB BOWDEN: Yani rm * -
>> ALLISON: Soru ne oldu rm, rf ve rm * arasındaki fark.
>> ROB BOWDEN: * Yani rm.
Tüm genel yollarla Yıldız Bu dizinin içeriği.
Diğer düşünmeye çalışıyorum yıldız gösteren yolları.
Peki, genel olarak aslında yıldız Herhangi bir desenle eşleşen anlamına gelir.
Ben dog1 adında bir dosya var ise, CAT2 dokunun, cat1 dokunun dog2 dokunun.
Yani ls * 1 cat1 yazdırmak için gidiyor ve dog1, bu yıldız doldurulabilir için
bir tane olması gerekiyor Şarkı söylemeyi kes de, ama yıldız kedi veya köpek olabilir.
Bu vahşi kart var.
Ben arıyorum kelime.
Joker.
Yoksa köpek * ls, ve olabilir Ben, dog2 dog1 görmek lazım ediyorum.
Yani bu dosyaları listeleme o belirli bir desenle eşleşen.
Bu şekilde ls kullanabilirsiniz.
>> Ls * yıldız şey eşleşir.
Yani tüm yazdırmak için gidiyor Bu dizinin içeriği
Bunların hepsi beri maç.
Bir şey yazdırmak için gitmiyor Üst düzey dizinleri.
Ben varsa bir alt dizin, foo, ve dokunma 1 2 3-- şimdi rm * yıldızı ise,
cat1, CAT2, dog1, dog2 çıkarın.
Foo kaldırılamıyor.
Bu bir dizin.
>> Yani yıldız tüm genişler dizindeki dosyaları.
Yani teknik olarak rm * söyleyerek gibi rm cat1, CAT2, dog1, dog2, foo.
Rm-rf Oysa, teknik yıldızı olur ama rm -rf--, biz istediğimiz başarmak
Ben bu işe giderseniz Dizin, rm -rf geçici,
Bu temp içine gidecek ve ardışık her şeyi kaldırın.
>> Yani yıldız bu ayrı olduğunu bu yüzden bu şey by-- anlaşılmaktadır
Ben koşuyorum ki, bu şey Bu komutlar için bana sormadan olan
ve sonra yürütme ve yapıyor Onları, benim kabuk diyoruz.
Ve böylece bu kabuk kendisi bir programdır.
Ve ben, istedim olarak / bin / bash çalıştırabilir.
Kabuk bash denir.
Ve şimdi biz bir şey fark biraz değişti,
ve bunun için benim ayarları nedeniyle var Kabuk biraz farklıdır.
>> Ama şimdi teknik koşuyorum benim orijinal kabuk içinde bir kabuk,
ve ben şimdi bu kabuk çıkmak ve olabilir Ben geri üst düzey kabuk değilim.
diyerek amacı O yıldızı bu--.
Yani yıldız şey bash tarafından anlaşılan.
Yani rm-rf, rf bayrağı sadece rm tarafından anlaşılan.
Bu bilir size o Bir rf geçmek olduğunu
o özyinelemeli kaldırmak istiyorum sormadan tüm dosyaları.
Yıldız şey anlaşılır bash tarafından bu rm * derken,
bash söylemek için gitmiyor hey rm *, yıldız çıkarın.
Bash * rm söyleyecek cat1, CAT2, dog1, dog2 çıkarın.
Otomatik genişletmek için gidiyor dizindeki tüm dosyaları.
>> Ve benzer Yaklaşık başka bir şeydir Bash anlayan sembolü.
Eğer cd ~, bash genişletir derken ev dizinine söyledi.
Diğer sorular bugüne kadar?
Tamam bu yüzden hızlı gidiyor başlamak için gidiyoruz.
>> Sekme tamamlama.
Sadece orada dışarı atmak için.
Bir çok insan yok Bu var biliyoruz.
Yani cd dow yazarsanız, ben indirme gitmek istiyorum.
Ben nloads yazmanız gerekmez.
Ben sadece Tab vurabilir.
Bu nedenle kabul dow bir önek olduğunu
bir şey eşleşmiyor Bu dizinde başka,
bu yüzden sizin için tamamlayacak.
Şimdi girebilirsiniz.
>> Ben de ardışık bunu.
Yani mkdir foo.
En foo içine gidelim.
mkdir çubuğu.
Yani benim eve geri dönüyor Dizin, ben indirme görebilirsiniz.
Şimdi tekrar sekmesini isabet, otomatik foo doldurmak için gidiyoruz.
Sadece dizin var.
Otomatik tekrar sekmesini vurmak Barda doldurmak için gidiyoruz.
Yani şimdi ben (Dosyalar / foo / bar ~) değilim.
>> Peki bu sekme tamamlama, zaman ben, ofis saatleri var
ve ben üzerinde duruyorum Birinin omuz,
ve onlar rm gidiyoruz D-O-W-N-L-O-A-D-S, ben ölüyorum.
Hemen sekmesi, sekme, sekme, sekme.
Yani kesinlikle sekmesini kullanılır.
Ve benzer şekilde ve insanların aşağı, bir sürü
sadece oldu asla vurdu ve aşağı var.
Bir önceki aracılığıyla gidersiniz komutları, eğer öyleyse sadece bir şey koştu,
ve yeniden çalıştırmak istediğiniz, Eğer bunu almak kadar bekle.
TAMAM MI.
>> Yani hızlı, bazı başka şeyler.
En temp içine dönelim.
En bazı dosyaları yaratalım.
Burada Yani, ben sadece Bazı kelimeler listelemek için gidiyor.
Köpek, kedi, miyav.
En, balık köpek yapalım.
Şimdi temsilcisi çok olduğunu yararlı komutlar ki sen
boyunca aramak için kullanabileceğiniz Belirli bir metin dosyaları
ve teknik gerçekten yapabilirsiniz Bunun için karmaşık ifadeler eşleşecek.
>> Yani burada, ben grep eğer, ne Ben aramak istiyorsun?
Diyelim ki kediler Arıyorum diyelim, ve Ben tüm bu dosyaları aramak istiyorum.
Peki nasıl bu dosyaların tüm yaparsınız?
Yıldız.
Yani dosyada bir de, ben kedi var.
Herhalde olabilir bu iyi bir şey denir,
Bu gibi görünüyor, çünkü satır numaraları falan.
Ama dosyada tek ben kedi ile bir çizgi var.
Dosyasında iki ben kedi ile bir çizgi var.
Yani şimdi ben dosyası bir içine bakmak ve bakınız oh yeah, bu dosya kedi var mıydı.
Uyarı dosyası üç eşleşmediyse kedi değil çünkü.
Ben miyav için grep yapabilirsiniz.
Sadece iki miyav vardır dosya.
>> Yani birleştirebilirsiniz bu, yine ile r, burada
Daha önce söylediğim gibi Sık sık yinelemeli anlamına gelir.
Ve bu yüzden buraya kadar gelebilir, grep -r Herhangi bir örneği en düzenlemek izin of-- için
bu sadece orada bir kedi atmak için.
Yani herhangi bir örneği için -r grep Bu dizinde boyunca kedi.
Ve yinelemeli olacak Herhangi bir alt dizinleri arama.
Yani Baz, kedi var.
Temp / 2, kedi var.
Ve temp / kedi 1 var.
Yani dosyalar içinde arama var.
>> Şimdi de bulduğunuz yer kullanabilirsiniz.
Ve böylece özellikle ilgili bulmak verilen isimdeki dosyaları arıyor.
Yani biraz daha yapalım.
En yüklemeler içine gidelim.
Dog1 dokunun.
CAT2 dokunun.
Cat_dog dokunun.
Catcat dokunun.
>> Yani tüm bulmak istiyorum adı köpek ile dosyaları.
Yani bulmak ve uzun için Ben hiç anılmadığı zaman
nasıl bulmak nihayet ben kadar çalıştı o kadar açıkça bir şey okudum.
Yani otomatik özyinelemeli bulmak.
Sen -r geçmek gerekmez.
Yani nokta bulmak.
Biz henüz nokta hakkında konuştuk değil.
Her zaman nokta nokta ise Bir dizin yukarı anlamına gelir.
Nokta her zaman geçerli dizin anlamına gelir.
Yani ben -r nokta rm olabilir Aynı şekilde ben * rf rm edebilirsiniz.
Sonuçta onlar Aynı şeyi başarmak.
rm -rf nokta kaldırmak için gidiyor Tüm geçerli dizin.
Ben orada yapmak istemiyorum >> Tamam.
Ama nokta bulmak.
Yani ardışık güncel arama dizin ve şimdi her şey
Bundan sonra bayraklar bir demet olduğunu sen dönüş şeyleri dışlamak için kullanın.
Yani bulmak nokta her şeyi döndüren o Geçerli dizinden bulabilirsiniz.
Bunlar bütün dosyalar yinelemeli arama.
Biz bir saniyede olanların bazıları görürsünüz.
>> Ama durumda ben nasıl merak ediyorsanız o en azından Komutanlığı K, böylece
Mac benim terminalde siler.
Kontrol L, genel olarak temizler terminalin her tür için.
Ayrıca açık yazabilirsiniz.
Ve hiç olsun Bir garip scenario-- içine
Bana bir çift ne oldu seferinde-- nerede istemleri renkleri
Tüm size berbat, ya vardır bir şey görmek mümkün değildir
Eğer yazdığınız zaman, çünkü yazdığınız ediliyor bazen arka plan rengi ayarlanır gibi
ön plan rengi ile aynı ve şimdi yazı göremiyorum.
Sıfırlama sadece sıfırlar şey Varsayılan siyah arka plan Sizin,
beyaz ön, ya da her neyse Onları ayarlanır.
>> Peki nerede kalmıştık?
Nokta bulun.
Bu geçmiş Yani şimdi her şey nokta sonuçlarını kısıtlar
bir şey olduğunu maçlar Verilen desen.
Yani burada aramak istiyorum isim kedi ile her şeyi.
Ben hiçbir şey yok.
Neden böyledir?
Eh, ben sadece Arıyorum tam adı kedi ile bir şey.
Bir şey aramak istiyorsanız Bazı modeline sahip ve cat--
tırnak teknik, gerekli değildir ama orada onları atıyorum.
Yani şimdi catcat çünkü bulur tek şey olduğunu
Bazı keyfi vardır desen kedi izledi.
Ben şimdi kedi * koymak, ve olabilir , catcat, cat_dog, CAT2 bulmak
Bu çünkü kedi ile her şey vardır şey tarafından takip başında.
Bunu birleştirebilirsiniz.
Eğer tüm C dosyaları aramak istiyorsanız, Eğer varsa, sen * .c yapabilir.
Biz burada blah.c var.
Yani bu bir bulmak çalışmaları var.
Sen arama yapabilirsiniz.
Bu bayrak bir sürü vardır Daha fazla kısıtlamalar için.
Ve onlara bir, en -d diyelim.
Yani önerilmemektedir.
Oh, bu ne istiyorum değil.
-d Değil.
Tip ö.
Yani nokta bulmak - tipi ö.
Peki bu sadece yaptım Arıyorum olduğunu Geçerli dizindeki tüm dosyalar için
bir- d duruyor ile directory-- dizin türü.
Bu, tüm dizinleri döndürür Geçerli dizinde.
Ve F tipi tüm düzenli Dosyaları, olmayan tüm dizinleri.
Yani bu sadece bir başka yollar örnek
Diğer arama kısıtlayabilirsiniz dosyanın sadece adını daha.
>> 30 dakika oldu.
Hala gidiyor.
>> ALLISON: Ben esinti olacak.
Bu iyi olacak.
>> ROB BOWDEN: Yani bazı başka şeyler.
Şimdi, ünlem işareti patlama.
Yani, genel olarak means-- iyi, en bir örnek görelim.
Yani! F, ne yapmak için gidiyor?
Peki var gibi görünüyor Tekrarlanan bulmak nokta tipi f.
Ne! G hakkında?
Bu sadece * r kediyi grep.
Yani tekrarlamak için kullanabileceğiniz patlama Bir süre önce yapılan komut.
Ben yazarsanız Yani! Gre, bu yeniden çalıştırmak için gidiyor gre en başladı komutları
Son zamanlarda.
>> Ve tüm bu görebilirsiniz geçmişi ile emrediyor.
Yani tarih.
Bunların hepsi komutları Bugün koşuyoruz.
Ve de, tam anlamıyla değil Bugüne sınırlı,
ama ben sadece bu kullandım bugün itibariyle cihaz.
Bu sizin bütünlük bash kabuk tarihi,
o noktada keser hariç.
HEDEF KİTLE: Eğer yaparsanız ne olur Tarih [duyulamaz] komutu ve bir hata
Sonuç hala Şeyin basacaktır
>> ROB BOWDEN: Evet, bir varsa Bu commands-- birinde hata
böylece diyelim, bu bir olduğunu Hata komutu bulunamadı.
Yine tarihte görünür.
Tamam.
Şey Diğer sorular?
Yani patlama var.
>> Şimdi, gerçekten yararlı bir komut, dostum.
Bu size verir Yani Belirli bir komut için manuel.
Yani böylece, adamı ls diyelim Bu bana ls gösteriyor.
Bu dizin içeriğini listeler.
Bunu görmek Ve burası var mevcut bu çeşitli bayraklar vardır.
Yani biz -l var ls bkz biz eğer okumak için. ls -l
Bana bu tam listesini verir Dosyayı kime dizin,
dosya boyutu, modifiye zaman damgası.
Yani ls -a diğeri o sen might olduğunu aslında biraz sık sık kullanın.
Benim en yaygın bayrak bu geçmiş ls -al olduğunu.
>> Bir çok şey var Yani -a fark Sadece ls daha fazla dosya.
-a ls.
Tüm bu dosyaları ile ortak neler var?
Onlar bir nokta ile başlar.
Yani bu Linux bir kongre olduğunu Bir nokta ile başlayan dosyalar gizlidir.
Yani sadece anlamına gelir biz sadece düz ls,
ya da biz kullanarak bu dizini arıyoruz bulucu eşdeğeri, veya Windows
Explorer eşdeğer, biz bu Bu nokta dosyaları görmek istemiyorum.
Onlar sadece şeyler görünümünü kirletiyor.
Böylece gizli Sürece özellikle
-a gibi bir şey ile onları isteyin.
Yani .local içine cd can ve ben görmek Bu kendisi bir dizin ile olduğunu
paylaşılan bir dizin ve uygulamaları ve falan filan.
Yani, sadece gizli konum dosyaları nokta.
>> Tamam, diğer önemli olanları böylece.
Ben atlayabilirsiniz bir çift var.
Hakkında Sadece gerçek hızlı konuşalım Dosya yönlendirme şeyler.
Yani bir bütün kompleks dizi var şeyler bu yapabilirsiniz,
ama sadece onları görmek için, yankı, diyelim.
Başka bir komut.
Gerçekten aptal komutu.
Bütün yaptığı Ben bunu söylemek ne baskı olduğunu.
Yani merhaba yankı.
Sadece ekrana merhaba yankılandı.
Selam Dünya.
Yankılar merhaba dünya.
>> Yani tek bir komut veya bir Bash anlar sembolü
sembolü daha bu daha büyüktür, ve Bu dosya sembolüne çıkış.
Ben çıktı bu yüzden eğer foo, şimdi bir dosya var
foo adı içinde hangi merhaba dünya.
Yani yankı zaman fark merhaba foo içine dünya boru,
o merhaba dünya yankı vermedi.
Bunun yerine dosya foo girmiştir.
Ve başka bir komut sadece , size kedi atmak için.
Bu sadece tamamen için kolay bir yol var Dosyanın içeriğini listelemek
Ben açmak zorunda değilsiniz ki Bir metin editörü görüntülemek için.
Yani içeriği foo dosyası merhaba dünya vardır.
Ve ben kedi blah.c, olabilir içeriği bu vardır.
>> Yine, bu komutlar, yok ki vardır Onları tüm ezberlemiş bekliyoruz.
Fikir onları gördüm edilir.
Belki üzerinde çalışıyoruz şey, ve sen
gibi bu dosyayı açmadan bıktım.
Ben sadece bakmak isterdim gerçek hızlı içindekilere.
Daha sonra, bunu yapabilir geriye bakmak ve oh I say
gibi bir şey hatırlıyorum Bu var, ve kedi var.
>> Yani bir dosyaya gidiyor.
Şimdi gerçekten herhangi bir iyi yoktur Henüz bir dosyadan okuma örneği.
Alır bir şey nedir standart gelen bir şey mi?
Herhangi bir basit Linux komut?
Biz birkaç, ona olsun hafta piece-- de tüm,
Bu hafta bir parça nereye var kullanıcı girişi alarak başlayın.
Ve böylece genellikle yazın klavyeye o girdi.
Bunun yerine yazmaktan klavyeden girdi,
Bir dosyadan yapabilirsiniz yerine boru bunu yaptığınızda o Mario, ./mario, böylece
herhangi bir dosyadan boru ve Bu mario programı çalıştırmak için gidiyor.
En girişi beklemiyordum Klavye, bunun yerine var
sadece okumak için gidiyor foo dosyasından hatları.
>> Foo içine koyar daha Yani büyük foo dosyası ve en az foo
foo dosyasından malzeme alır ve kullanan bu programa girdi olarak.
Ve sadece onu görmek için, biz de yankı olabilir foo bar baz, ve sonra bir yerine
daha büyük, en foo içine iki yapalım.
Bu ne işe yarıyor?
Sadece dosyaya ekler.
Ben içine filan yankı yoksa Bunun yerine fark foo ve daha sonra kedi foo, sadece falan var.
Bir dosyaya Peki ne zaman çıktı, onu Tamamen o dosyanın üzerine yazar.
Sadece eklemek istiyorsanız, [çift? greyder. ?]
>> Ve son borudur.
Boru çok daha karmaşık, nerede alır o bir komutun çıktısını alır
ve bir sonraki komuta içine besler.
Yani bazı ortak şey, tarih.
Yani, öf, ben bu bakmak istemiyorum.
Bana tarihinin tüm komutları göster Ben grep-ed nerede şey.
Hayır, bu kafa karıştırıcı.
Bana bulmak tüm komutları göster.
Tüm şimdiye kadar koştu komutları bulabilirsiniz.
>> Yani tarih.
Şimdi tarih çıkışları komutların listesini ekran,
ama ben istemiyorum ekrana çıktı onu.
Bunun yerine grep içine boru buna gidiyorum.
Yani find tüm örnekleri için grep verelim.
Yani şimdi yerine grep alma giriş yerine of--
grep gibi input-- biz konum üstesinden gelebiliyor biraz farklı burada grep kullanarak.
Yani yerine listesini yazarak şeyler biz aramak istedim
ve grep girdi olarak alıyor dedi.
Yani sadece grep, onu bulmak yoksa Bana bir şeyler yazmanız için bekler.
Yani kedi merhaba bulmak.
Merhaba.
Bulun.
Ben bulmak yazın her zaman dikkat edin ben find yazdığınız farkındadır.
Yani bunun yerine, olacak bulmak için arama dosyaları.
>> Yani tarih şimdi gidiyor Çıktı tüm komutların bir listesi.
Biz çıkış koyuyorlar, ve biz bunu grep besliyorsun
ve bu yüzden dışarı tükürme var find tüm örnekleri.
nedeni ben kafa karıştırıcı söyledi hala kafa karıştırıcı ben- eğer olduğunu.
Ben grep için grep varsa.
Çok zaman güzel olduğunu fark komutu Ben gösteren sadece
Bu komutun nedeniyle koştu kendisi bunun içinde grep sahiptir.
>> Tamam, bir şey herhangi bir soru öyle mi?
Ve ben bu noktada bitti transfer edeceğiz.
Umarım bu bir güzel Tüm komutların bakış
Eğer olması gerekmez ezberlemiş, ancak bu makyaj
bir katı% 95 ne Komut satırında yapmak.
Ayrıca akılda tutmak komut satırı kendisi, bash, bir programlama dilidir
ve böylece sen, onu aşağı olsun Gerçekten karmaşık şeyler yapmak isteyebilirsiniz.
Ve böylece gibi şeyler vardır döngüler ve IFS, ve bu bütün
Eğer alışmak için gidiyoruz programlama dilleri ile.
Ama ötesinde Bu bölümün kapsamı.
Tamam, bu yüzden hiçbir soru?
ALLISON: Yok?
Gabriel: Eğer amaçlara yönelik gidiyorsun
ALLISON: Ben bunu yapabilirim mayın isterseniz.
Biz ne görebilirsiniz.
ROB BOWDEN: Allison Kapalı.
ALLISON: Woo.
Sen, Rob takip etmek zor bir hareket olduğunu.
Eğer seninle geçmek istiyor musunuz?
Yoksa Tamam, var.
Ben denemek ve gidiyorum Oldukça orada da uzun olabilir.
Şimdi bu irade olmadığını görelim Ben istediğiniz şekilde çalışır.
Olabilir?
Haha!
Evet.
>> Ben sadece çok hızlı gitmek için gidiyorum değişkenler, döngüler, koşullara bağlı aracılığıyla,
ve derleyici biraz.
En sorularınız varsa her zaman, beni lütfen dur.
Bu adamlar tekrar bana hatırlatacak Ben unutmak durumunda soru,
ama çok kötü olmamalıdır.
>> Değişkenler Yani, evet.
Biz kimse yok senin Burada Kazı adettir.
Ben eğer, size en eminim Eğer oyunun çeşit vardı
Eğer Scratch ile oluşturulan, sen vardı skor gibi bir şey izlemek için,
veya zaman, ya da onun gibi bir şey.
Bu parlak turuncu Yani Biz orada görmek adet
sadece Scratch şeklidir değişkenler ve kesinlikle olacak
değişkenleri kullanıyor programlarınız boyunca.
Eğer değilseniz, ben gerçekten değilim emin yapıyoruz.
>> Ama yine de, büyük bir şey, değişkenleri tanımlayan.
C ile her değişken vardır bir tür ilan edilmesi için,
bu yüzden sana bir çok verdi üstünde genel bir.
Yani olacak sizin yazın ve sonra ne olursa olsun
Eğer değişken aramaya karar.
Bu durumda, tip Yani değişken listesinde.
>> Biz üç örnek var.
Bazı sınıf Char, ne bir A,
Hepinizin istiyorum eminim Bu sınıfta almak için.
Sen birden tanımlayabilirsiniz bir satırda değişkenleri
sürece hepsi aynı tip konum olarak, Orada bizim ikinci örneği ise
Eğer üç sahip olduğu değişkenler, x, y ve z,.
Hepsi yüzen konum.
Ve sonra bu son olarak da yapabilirsiniz int puanı ve numarası ile örnek
ekipleri, yapabilirsiniz onları orada başlatılamıyor.
>> Nerede orta örnekte yüzden sadece x, y, ve z float
Bu henüz başlatılmış değildir.
Onlar hiçbir değeri yoktur.
Yoksa onlar çöp değerleri.
Ve sen denemek ve bunları kullanmak, derleyici sizin bağırma.
Sen hem bildirmek zorunda ve senin değişkenleri başlatılamadı.
Bu sonuncusu Yani, biz de yapıyoruz.
Biz değişkenleri bildirmek bir skor ve takımların sayısı,
ve biz onları başlatılıyor veriyoruz 7 ve 4 onların başlangıç ​​değerleri
sırasıyla.
Serin.
Herkes iyi?
Korku.
>> Tamam, bu yüzden bazı sözleşmeler.
Siz okudum tarzı 50 aracılığıyla, bu
biz istiyoruz, sadece şeyler Eğer tarzı uygulamak.
Yani anlamlı isimler.
Eğer bir şeyler aramaya başlayın ise sadece x, y ve z, özellikle
Eğer lengthier içine almak gibi programlar, sen
Muhtemelen gidiyor Kendinizi şaşırtmak ve olmak
gibi atıfta bu değişken nedir.
Ben bu ne anlama geldiğini hiçbir fikrim yok.
>> Bunu tutmak için pinti Yani eğer Bir puan, o puanı diyoruz.
Bazı cevabı tutmak anlamına eğer veya, neden ona böyle bir ad verin.
Döngüler, için hangi we will Bir sonraki slaytta içine almak,
Tek harf değişkenleri gayet iyi.
ROB BOWDEN: Ben, j, ve k döngüler için sadece sözleşmeler
herkes onları beklediğini j ve k, i çağrılacak.
Ben satır görmek them-- arayabilirsiniz sütun veya satır çağrısı bazen
İki iç içe döngüler, ve için bu da bir tür standart var.
Ama i ve j tamamen anlaşılmaktadır.
>> ALLISON: Evet, ben ve j tamamen iyiyiz.
Netlik uğruna benzeri K setleri bazı,
daha var mantıklı olabilir Orada sadece açıklayıcı şeyler
Bunun takip etmek.
Ama ben, j, ve bence k düşünüyorum Bize büyük çoğunluğu tüm kullanım.
>> ROB BOWDEN farklıdır: sözleşmeler, yani tarzı önemlidir.
Bu dört eksene biri Üzerinde kademeli konum,
ve sadece üzerinde gitmek çok kolay K sonunda belirlenen ve emin olun
üslup hataları var olmadığını.
Yani doğru sekme emin olun.
Senin değişkenler adlandırılır emin olun.
Bazı yorumlar bırakın.
Bu, bu puan almak çok kolaydır.
Sen düşünmek zorunda değilsiniz sırayla şey bu puan almak.
Sen bir şey anlamaya gerek yok.
Sadece o güzel bakmak yapıyor.
>> ALLISON: Aslında, , stil 50 sahip olan
Eğer karıştırmasını nereye anlatacağım Eğer stili karışıklık eğer kadar
ve size tam olarak ne size düzeltmek gerekiyor ve bunu nasıl düzeltebilirim gerekir.
Bu söz de sadece iyi o ders politikası
Ofiste iseniz o saat ve kod bir karmaşa,
biz yardım etmek reddedebilirsiniz Eğer güzel görünüyor kadar.
Yani şu işe başlamak, tutarlı tarzı tutmak,
Ayrıca sadece yapmak için gidiyoruz zaman hayatları bir sürü daha kolay
Eğer hata ayıklama geçmesi için çalışıyoruz.
Eğer anlamaya çalışıyorsanız Eğer bir küme ayracı eksik nereye
ve onlar sen, her yerde bitti sadece zor Kendi hayatını yapım.
Yani tarzı ile tutarlı olması.
Ben hayatınızı kolaylaştıracak söz veriyorum.
Bizim hayatımızı kolaylaştıracak olacak.
Herkes çok mutlu olacak.
Ve bu ne istediğinizi.
Gabriel: Sizin notu daha yüksek olacaktır.
ALLISON: Evet, ve sınıf.
TF senin gibi ise, olumlu olma eğilimindedir.
Pekala, ve sonra sadece Burada ikinci bir nokta.
Tutarlı başlatımı.
Gördüğümüz gibi Yani, ilan edebilir ve şeyleri başlatmak.
Aynı hat üzerinde birden çok değişkenler.
Size değil istiyorum bir şey yapmak için bazı değişkenleri bildirmek için
ve aynı onları başlatılamadı Başkalarına başlatılıyor hattı.
>> Yani durumda yapılan hiçbir anlamda,
Burada örnek var nerede ints ilan ediyoruz
mahallelerin değişkenleri Dimes ve peni,
ama mahalle ve peni Hiçbir başlangıç ​​değeri var.
Onları başlatıldı değil, ama orada ortasında
biz zaten Dimes 0 başlatıldı.
Yani ya dörtte, Dimes, pennies yapmak.
Ya da dörtte 0 eşit yapmak.
Dimes 0 eşit.
Peni 0 eşit, ya da ne olursa olsun Bu başlangıç ​​değerleridir.
>> Tarzı ile büyük şey, tutarlı olmak.
Şüpheye düşerseniz, tutarlı olmak.
Ama bizim de stil rehberi izleyin.
Serin.
Herkes orada iyi?
>> İZLEYİCİ: tarzı kılavuzu nerede?
ALLISON: tarzı kılavuzu Web sitesi ne on-- nedir?
>> Gabriel: Ben manual.cs50.net/-- olduğunu düşünüyorum
ALLISON: Stil?
>> Gabriel: Stil.
Evet.
>> ALLISON: Evet.
Stil 50 nerede olduğunu, soru.
manual.cs50.net/style.
Evet?
>> İZLEYİCİ: Biz tanımlayan ediyorsanız değişkenler, bu Tamam
Biz [duyulamaz] gibi koyarsanız gibi int puanı ve sonra int gol.
Yani şimdi biz ettik söyleyebilirim onları bir arada tanımlamak lazım?
>> ALLISON: Yani soru, gerektiği Eğer gereksiz kod var
ne zaman tanımlıyoruz int puanı gibi değişkenlerin ve
Bir sonraki satır int oyunu?
ROB BOWDEN: kesinlikle vardır gereksiz kod kötü durumda.
Ben düşünün olmaz Bu gereksiz kod.
Neredeyse birden ilan asla Hiç aynı satırda değişkenleri.
Eğer bir şey Ve, çünkü var Genellikle ben yorumun çeşit terk
Değişken için ne açıklayan.
Yani int puanı çizgi çizgi söyleyeceğim.
Ne olursa olsun kaydını tutar.
Toplam çizgi eğik çizgi olarak.
Yani bu şekilde çok grosser var Aynı satırda hepsini koymak.
Ben sadece aynı hat üzerinde onları koymak asla.
>> ALLISON: Ben hissediyorum bu kadar gibi Bu noktada kişisel tercihi.
>> İZLEYİCİ: bunun için gidiyor mu Çok döngüler ve şeyler için?
ROB BOWDEN: inside gibi mi?
Int gibi ben 0 virgül eşittir uzunluk şey eşittir?
Eğer bir seçim yok.
Döngüler için başlatma ile part-- böylece sadece görmüş olabilir
int i az 0 noktalı virgül eşittir ne olursa olsun noktalı virgül i artı artı daha.
O int i, 0 eşittir teknik de yapabilirsiniz
Daha önce gördüğümüz ne virgül sözdizimi ile.
int i 0 virgül j eşittir 3 virgül k 5 eşittir.
Sen bölmek için bir seçenek yok birden çok satır içine kadar,
ve bu standart.
Bunu görünce ince vardır.
ALLISON: Korku.
Peki, döngüler içine uygun segue.
Yani evet, burada bazı örnekler var size çocuklar Scratch içinde gördüğünü döngüler.
Ve tabii ki tüm bu Sadece C'de yeniden olabilir
Ve onlar temelde sizi izin kod bazı bölümünü tekrarlamak
Belirli bir durumda kadar hangi yaparız, bir araya geldi
konuştuktan sonra sağ içine almak hakkında koşullu döngüler.
>> Yani biz üç ana tipi vardır.
Ise, ve mutlaka süre, için, hangi Hepimizin şu anda geçer.
Yani ilk döngüler için.
Bazı durumda Yani, Bu kod bloğu çalıştırmanıza.
Biz bu serin biraz var altta burada diyagram.
Ama temelde var sizin için, ilk satırda ki,
Eğer gidiyoruz senin değişkenleri başlatılamadı.
Konuştuğumuz gibi Yani >> i 0 ya da i eşit 10'a eşittir.
Bunu ihtiyacınız ne olursa olsun değişkeni var olmak
Orada başlatıldı olacak, beyan ve bazı değerine başlatıldı.
Öyleyse bazı var Bu durum gidiyor
kontrol olmak bizim şeye karşı değişken.
Tipik durum nereye durumda Yani belki bu kod bölümünü istiyorum
beş kez çalıştırmak için.
Bu yüzden ben 0 eşittir int var, ve biz ediyorum Ben 5 daha az olduğu zaman olmak istiyorum.
Yani durum sadece bir Her zaman ki kontrol edecek.
Bu durumda ise true değerlendirir, bu kadar
tam olarak kod çalıştırmak için gidiyor Bu küçük diyagramı ne gösteriyor.
>> Ve bu yüzden onu çalıştırır.
Bir değişkeni günceller, Gördüğümüz ne olduğu
Bizim For son bölümünde Orada döngü başlatma.
Yani sadece bu yapmaya devam edeceğiz Bu koşul yerine getirilmediği kadar,
ve daha sonra kapanacak döngü devam
Programınızın geri kalanı ile hareket.
Herkes orada iyi?
Serin.
>> Yani burada, çok benzer bir örnek şey ben sadece konuştuk.
Yani biz sadece yazdırmak istiyorum Bu 10 katı CS50 olup.
Yani biz burada görmek Bizim için, ve sonra biz
değişkeni başlatmak Ben 0'a eşit olması.
Bizim durumu kontrol ediyor o 10 daha az olduğunu.
Ne zaman biz ilk çok doğru değerlendirmek başlatın ve sonra bizim değişkeni günceller
aslında yürütür her zaman ve bu dışarı yazdırır CS50 olduğunu.
Ve 10 kez sonlandırılacak.
Serin.
>> Döngüler yanında yukarı iken Yani.
Burada gördüğünüz gibi, biz sadece var Bazı bu condition-- soru ise?
>> İZLEYİCİ: Nasıl atlayabilir aslında sadece bir değil sayı,
ancak iki sayı [duyulamaz] Ben artı artı artı?
>> ALLISON: Peki soru nasıl olabilir oldu birden fazla tarafından değişkeni güncelleyin
Aynı anda.
Yani ben artı artı olacak biri her seferinde güncelleme.
Eğer bunu güncellemek istedim İki, i artı 2 eşittir yapabilirdi.
>> ROB BOWDEN: gördünüz mü artı henüz derste eşittir?
>> İZLEYİCİ: [duyulamaz].
>> ALLISON: Bu etkili bulunuyor Aynı şey i artı 2 eşittir gibi.
Yani onu almaya gidiyor ve ikişer kez bunu güncelleyin.
Ayrıca sadece bir şey eşittir Biz sözdizimsel şeker diyoruz.
ROB BOWDEN: Evet, o ana kadar hemen hemen tüm aritmetik operatörler.
Eşit Yani ben kere sayısını iki katına olacaktır.
j bölmek 3 aynı eşittir j 3 bölü j eşittir.
>> ALLISON: Ya eksi 2 olur eşittir ikişer Zaman i azaltma.
ROB BOWDEN: Hatta mod eşittir.
Sen bitsel operatörlerin görmedim ancak, şapka eşittir ve işareti eşittir
Bunların hepsi var.
>> ALLISON: Yani bir çok kez, özellikle P setleri ilk çift,
muhtemelen arttırılmış olacak bir, bu yüzden artı artı, j artı artı
Eğer gidiyoruz her şey vardır tipik kullanarak olmak.
Ama bu güncelleme durumdur tamamen sizin kontrolünüz dahilinde.
Sen ne artışlarla güncelleyebilirsiniz veya ne şekilde olursa olsun sen karar.
Belki sen bile olmak istiyorum Bazen bir rasgele sayı.
Ama evet, bir sürü şeyler o ile yapabilirsiniz.
Sen i artı artı sınırlı değil.
>> ROB BOWDEN: Sadece sizin yani o da, o var biliyorum
Başka bir formda mevcut artı artı.
Hiç online aradığın Yani ve görmek ne artı artı ben,
hemen hemen aynı şeyi ifade eder.
ALLISON: Serin.
İyi mi?
Korku.
While döngüleri Yani.
Çok benzer.
Bazı durum var.
Önemli olan fark Burada yerine sahip olduğunu
Üç farklı parçalar kurmak, biz bir tane var.
Biz sadece bazı durum var Bu kontrol ediliyor.
Ve aynı şekilde, sürece Bu koşul, true
kodunuzu çalıştırmak için gidiyor.
Ve yanlış ise, onu , hareket sona erer
Programınızın bir sonraki kısmına.
Yani bu tür ne da-- edilir kontrol iyi bir örnek
Bazı Normal durum için?
Gabriel: true iken.
ALLISON: true ise yapabilirdi.
O: 1 ile 1 eşittir.
>> ROB BOWDEN: Sen while-- yapabilirsiniz Sadece yerine döngü için kullanarak,
her zaman bir kodlayabiliriz Bir süre döngü döngü için,
bu yüzden daha büyük 0 veya Ben az 10 iken.
>> ALLISON: Başar.
Ve sonra yapmamız olan döngüler, hangi süre Kullanıcı doğrulama için harika
Eğer bir şey almak istiyorum geçerli eğer kullanıcı, bkz
ve oradan devam edin.
Yani bilmek şeylerden biri bir ile o yürütmek için gidiyor iken yapmak,
ve sonra yeniden çalıştırır Bu koşul yerine ise.
>> Yani muhtemelen en iyi yolu, bunu yapmak için Sadece burada bir örnek görmek için.
Biraz önce de bahsettiğim gibi, kullanıcı Yani doğrulama gerçekten useful-- olduğunu
ya da yapmak whiles gerçekten Kullanıcı doğrulama ile yararlı.
Yani bu sadece gidiyor Bazı kullanıcıyı yeniden soracak
Onlar pozitif bir sayı girinceye kadar, senin P kümesi için yararlı olabilir
bu hafta.
Ve böylece bu durumda, ne zaman biz Başlangıçta bu programı çalıştırın,
yazdırmak için gidiyor pozitif bir sayı girin.
Bazı almak için gidiyor kullanıcı giriş,
ve sonra kontrol etmek için gidiyor durumda karşı giriş
Bu bunun için kurdum.
>> Peki bu durumda kontrol etmek için gidiyor.
Bu, tamam, demek oluyor Bizim girişi negatiftir,
ya da 0 ya da negatif olduğu hangi geçersiz olacaktır.
Yani o zaman yeniden istemi olur.
Soru?
>> İZLEYİCİ: Bu gibi daha sonra aynı mı döngü sırasında sadece bu kodu kopyalanan eğer
ve [duyulamaz] döngü sırasında koymak?
>> ALLISON: Yani soru olur Bu sadece bir süre aynı olacak
döngü biz olsaydı sadece Yukarıdaki while döngüsü kopyalayın.
Yani bu durumda, sizin süre döngü İlk durumunu kontrol edecek.
Çalıştığımız bu durumda, yani eğer Sadece bir süre döngü olarak yazmak,
bu süre söyleyebilirim giriş az biridir.
Ama biz bunun için bir girişi yok.
>> İZLEYİCİ: Eğer [duyulamaz] döngü bu kod dahil ederken,
ama sonra kodu başa Ayrıca while döngüsü üzerinde.
Sadece bu kodu vardı [Duyulamaz] döngü sırasında.
ALLISON: Bu olurdu Aynı şey, evet.
Yani sadece write-- olabilir yerine sanıyor- evet sahip.
Gabriel: Ama bu daha zarif.
ALLISON: Evet, bu daha zarif.
Sen, tasarım ve etajer içine alabilirsiniz ama evet, tamamen bunu yapabilirsiniz.
Başka sorunuz var mı?
Serin, tamam.
>> Bu yüzden koşullar hakkında çok şey konuştuk Elimizdeki tüm bu döngüler ile,
bu yüzden aslında içine alıyoruz Boole ifadeleri koşullar.
Yine, C bunlar kullanın, böylece sadece tür geçiş
Daha fazla grafik arayüzden Aslında kodlama.
>> Serin, çok büyük bir, eğer.
Temelde sadece tanıtmak için bize izin verir Bizim program ve kontrol bazı mantık
Sys koşulları.
Bu durumda Yani, tamam, 0'dan N büyük?
Eğer bu idam böylece Evet, olduğunu.
Sadece bazı kontrol ediyor Eğer ettik durumu
Ben hepimizin olduğunu düşünüyorum, set koşulları kontrol ile rahat.
Serin.
Yani diğeri else if, Bu doğruysa eğer, tamam diyebiliriz
bu ilk şey.
Aksi takdirde ben istiyorum Varsayılan ve başka bir şey yapmak.
Bu durumda gibi, ya bir seçim pozitif sayı veya negatif bir sayı.
Sadece iki seçeneğiniz var.
Sen ne olursa olsun çalıştırmak gerekir Neyin kullanıcı girişi.
Yani, iyi diyebilirim o 0'dan büyüktür?
Serin.
Pozitif bir sayı yazdırın.
Değilse, negatif yazdırın.
Herkes iyi?
>> Ve sonra tanımak için bir şey eğer koşul karşılandığında eğer,
Başka da çalıştırmak asla.
Sadece bunlardan biri olacak Bir anda yürütmek.
Yani bir ticaret kapalı bulunuyor.
Sen ikisine de sahip alamadım.
Ya ilk durum var.
Ya eğer var ya da başka değil, hem de.
Sonra bir şeyler yapabilir Hangi daha karmaşık,
, eğer yapabilirsiniz, çünkü Başka, ve sonra başka.
Bu durumda Yani, biz Üç koşullarına sahip.
Ve yine, bu sadece biridir sonuna kadar gidiyor yürütülmektedir.
Yani merak olabilir iyi, sana ne varsa
bir şey var ki Bu iki karşılayabilir.
Belki girerek ne olursa olsun koşulu hem karşılar
için eğer ve else if.
Çalıştırmak için gidiyor tek şey
>> ALLISON: En kısa sürede bir şey bulur gibi bunun için şartı karşılamasıdır
true değerlendirir, bu ne var çalıştırmak ve başka bir şey için gidiyor.
Eğer olsaydı Yani bu sayıdır İlk biri için 0 ile 5 arasında,
ya da 3 arasındaki sayıdır ve else if bölümü için 5,
ve giriş number-- Ben 0 ve 5 ve- 4 söyledi.
İlk vurmak için gidiyor.
Tamam, bu demek oluyor sayı, 0 ve 5 arasındadır.
Yürütme ve bırakın.
Bu ikinci seçenek isabet asla.
Serin?
Korku.
>> Tamam biz de switch ifadeleri eğer var Eğer, hatta more-- veya üzgün almak istiyorum
Anahtar yanındadır.
Ben burada ileride kendimi alıyorum.
Yine, birden çok blok halinde Sadece nerede söylediğim gibi
en kısa sürede bir durum bulmak gibidir Bu bir araya geldi ve başka bir if else if var,
o bırakır.
Eğer kontrol etmek gerekirse Birden fazla şeyler, sen
Bunun nedeni kullanmak istediğiniz olacak Burada her zaman kontrol edecektir.
Yani bu yoluyla ve eğer çalışacak Bu, 90 ° daha büyük ya da buna eşit olduğunu
o yazdırmak için gidiyor.
Ve içinden çalışacak ve Bunların her birini işaretleyin.
>> İZLEYİCİ: Yani bu olurdu [duyulamaz] daha fazla adamcağız.
Bu [duyulamaz] gibi olurdu?
>> ALLISON: soru olacak olan hatalı ya da bu ne istediğinizi yapar.
Gerçekten ne bağlıdır Eğer program istiyorum.
>> İZLEYİCİ: Ben sen 90 koyarsanız gibi demek.
ALLISON: Eğer koyarsanız 90--
HEDEF KİTLE: [duyulamaz].
Gabriel: İki şeyi almak için gidiyoruz.
ALLISON: İki şeyi almak için gidiyoruz.
Evet, iki.
>> ROB BOWDEN: İki?
>> ALLISON: Hayır
>> ROB BOWDEN: Dört.
Eğer 90 koyarsanız, sizi söyleyecek , bir C var, bir B var, bir A var
Bir D. var
>> İZLEYİCİ: [duyulamaz].
ALLISON: Sağ.
Peki sana ne bağlıdır size programdan istiyorum.
Bazen gerekir Birden fazla şeyler kontrol.
Sen içine daha derin ne alırsınız Eğer ileri gitmek gibi iyi tasarım.
gereken önemli şey Fark, bu olmasıdır
Burada dört koşullarını kontrol edecektir.
Oysa bu bir else if else if olsaydı else if, bu, ilk davayı vurmak istiyorum
Eğer bir A var ve yapılması basacaktır.
>> ROB BOWDEN: Hatta biz eğer eğer bu değiştirmeye karar verdi
ve 90 eşit veya daha büyük, eğer ve 80 eşit veya daha büyük bir
ve daha az ya da 89 eşit ise n, 70 ile eşit ya da daha büyük,
ve n, daha az ya da buna eşit 79, böylece doğru olacaktır.
Yani bizim istediğimiz, ama olacak o hala her denetler.
>> İlk senaryoda ise, Yani biz Sadece else if else if ile 90 girin,
ve biz o, 90 girin düzeltmek için gidiyor.
İlk kontrol edecek bir, baskı sen, bir A var
her şeyi atlamak o çünkü Zaten çalışan bir tane buldum.
Tüm olgular dışlar eğer else if else if dayalı.
Bu yüzden idam edeceğiz İlk eğer, o zaman bitti.
Bu sonuna kadar gidersiniz.
>> Biz değiştirirseniz Oysa Bu ben ne olmak
89 eşit veya daha az olan söyleyerek.
İlk bir kontrol edecek.
Bu basalım.
İkinci bir kontrol edeceğiz.
Bu yazdırmak için gitmiyor.
Üçüncü bir kontrol edin.
Yazdırmak için gitmiyor.
Dördüncü bir kontrol edin.
Şimdi yazdırmak için gidiyoruz.
, Else if Yani bu durumda versiyon, çünkü bu durumlar
birbirini dışlayan, bu kadar vardır else if eğer daha iyi başka bir kullanım,
çünkü sahip oluyor koşullarının daha az kontrol
Bu sürüm daha.
ALLISON: Korku.
Yani başka bir şey olabilir yapmak switch ifadeleri olduğunu.
Temelde bir switch deyimi Bazı değişken alır,
bu durumda n, ve yürütmek için, bu durumda tespit eder.
Yani bu bir nerede durumlar da tür birbirini dışlayan olmalıdır.
Bu durumda, eğer öyleyse biz bir, bu kadar olsun
ne olursa olsun maç olacak n değişken-- ne değeri
Bu gibi durumlarda biri, yani 1, 2, ya da bir 3, ve ilgili çizgi çıktı.
>> Ve sonra burada fark ederseniz, biz de bir varsayılan var,
hangi Eğer başka şekilde düşünmek ait olabilir.
Eğer başka bir numara almak Yani eğer Bu durumda, 1, 2, ve 3 yanı sıra
sadece geçersiz yazdırmak için gidiyor.
Karşı IFS ne zaman kullanılacağı karar anahtarlar karşı elses eğer gidiyor
bir şey olmaya ki siz olacak Yazmaya başlamadan gibi bilge tasarım bkz
daha karmaşık bir program ve Hiçbir sert ve hızlı kurallar var
bir zaman bunları kullanmak için.
Bu gerçekten bağlamda bağlıdır.
>> ROB BOWDEN: Ve sadece Orada dışarı atmak için
daha rahat bölümdür beri.
Anahtarlar, onlar eğilimindedir göre-- böylece sınırlı konum
yollarla sayısında sen Bunları kullanabilir, IFS çünkü,
durum oldukça olabilir İstediğiniz kadar bir şey.
Ile vakaları anahtarları sayılar olmak zorunda,
ya da teknik olarak karakter olabilir, ancak göreceğiz gibi karakter, sadece rakamlar.
Böylece sayıları, ama anahtarları olmak zorunda eğer gerçekten daha verimli
else if, if bile çünkü before-- iyi örnek alarak,
sınıf örneği iyi görünüyor.
>> Peki bunun yerine yapmak, burada diyelim Bu bir else if gibi senaryo ise else if.
N eşitse 1 eşittir Yani Eğer düşük sayı aldı yazdırın.
N 2 eşittir else if Eğer Eğer orta numara aldı.
Eşittir 3 eşitse Else, yüksek.
Else geçersiz.
>> Yani bu bizim senaryo olduğunu diyelim.
Yani biz girmek diyelim 4, bu yüzden geçersiz bekliyoruz.
yol else if else if ki yaklaşım işe gidiyor eğer olduğunu
İlk durumunu denetler.
Bu tatmin değil.
Bu yüzden ikinci durumunu kontrol edin.
Bu tatmin değil.
Üçüncü durumunu kontrol ediniz.
Memnun değil.
Yani biz başka gitmek ve geçersiz yazdırabilirsiniz.
>> Yönlü tuş işleri aşağı derler olduğu
Biz gidiyoruz ne içine Bir atlama tablo aramak için.
Ana fikir varlık Eğer 4 girdiğinizde ki,
hemen varsayılan gidebilirsiniz.
Bu am Davayı 1 kontrol etmek gerekmez?
Hayır o değil.
Olgu 2?
Hayır.
Olgu 3?
Hayır.
Varsayılan.
Tamam, bu nerede olmalı istiyorum, ve o yürütmek.
Hayır, hemen varsayılan atlar.
Ya ben 2 girin o, bu kadar Hemen 2 gidecek
durumunda 1 geçmesi gerek kalmadan.
>> Bu şekilde Yani gerçekçi günümüzde olduğunu
Bir etkinlik kazanç o kadar değil.
Genellikle bilgisayarlar güzelsin hızlı ve o büyük değil.
Ama bu durumda olduğunu anahtarlar daha hızlı.
Eğer gerçekten çalışıyorsanız optimize etmek için, bir anahtar kullanın.
>> ALLISON: Serin.
Ve sonra üçlü operatörü var.
Yani daha önce bahsettiğim biliyorum kelimesi sözdizimsel şeker.
Yani bunu yapmak sadece şeyler var daha özlü kod.
Yani bu tür durumlarda biridir.
>> Yani üçlü operatör soru işareti Kolon biz çizgi dize gördüğünüz gibi
s 100 den N büyük eşittir soru işareti, yüksek kolon düşük.
Yani temelde bu nasıl çalıştığını olmasıdır 100'den fazla n bir durumdur.
Bu yüzden mantıklı düşünüyorum.
Bir soru soran gibi.
Bu ah n 100'den büyüktür söylüyor.
Kim bilir?
Ve değerlendirilirse Gerçek, size vermek için gidiyor
var ilk şey yüksek olan, burada listelenen.
Aksi takdirde düşük vermek için gidiyor.
Yani bu sadece gerçekten basit ve verimli bir şekilde bir else if gibi yapmak.
İşte tüm bu var.
>> Ve biz bu yazmak için , koşullu else if bir şekilde
n büyükse olurdu 100'den, yüksek dönüş.
Else, düşük dönüş.
Bu sadece bir çok daha fazla Bunu yazma özlü yolu.
>> ROB BOWDEN: Yani bu belirli örnek ne zaman bir şey yapıyoruz edilir
Bu gibi bu desen burada çok sık ve üçlü kullanın.
Bu yüzden, henüz kapsamı hakkında konuştuk değil ama string s noktalı virgül görmekten nefret ediyorum.
N büyük 100'den Eğer, s eşittir yüksek.
Else, s düşük eşittir.
Bu desen Yani, o beş satır zamanın kod anlamıyla% 100
ne aktarılabilir Orada bir üçlü oldu.
Yani üçlü, bir satır kod.
beş, else if.
Ben işaret bir örnek her zaman aşımı.
Bu olur harika bir yer Bir üçlü operatör için.
Çok temiz.
Ama insanlar bunu asla kullanmayın eğilimindedir.
>> ALLISON: Gabe onu götür.
>> Gabriel: Yani şimdi siz tüm Ders bu hafta öğrendim
Bir de her şeyin Bilgisayar doğru, ikili mi?
Sadece burada lambalar gibi.
Sen olmak ya da üzerinde ve kapalı olabilir.
Ve her şey, ben demek kelimenin tam anlamıyla her şeyi.
Bazı sayılar ve karakter ve dizeleri, ve hatta kod yazmak ne zaman ki
makineye derlenmiş Böyle kod ve malzeme,
bu nedenle tüm 0 ve 1 'aşağı kaynar.
>> Ve böylece biz uğraşıyoruz tamsayılar ile hangi
teknik olarak çok şey var Basit, biz şeyler yapmak gerekir
olan ekleyerek gibi basit şeylerden biri muhtemelen
doğru, iki tamsayılar için ne yapabilirim?
Yani toplama ve çıkarma sadece çalışır bu ondalık gösterimle çalışır gibi,
Burada dışında sağ, ikili değil mi?
Yani tabanı iki var.
Yani 1 artı 1 ekleyin.
Yani 0 verir, ve 1 üzerinde taşır.
Ve sadece Şimdi, bunu yaparken tutmak daha ilginç bir soru geliyor.
>> Hepimiz temsil etmek nasıl biliyor bilgisayar pozitif tamsayılar,
ama en bu bir egzersiz yapalım.
Siz 1960 veya hepsi Pretend şey, bir bilgisayar oluşturmak için çalışıyoruz
ve yukarı gelmek zorunda 1 eksi depolamanın bir yolu,
örneğin, ya da herhangi bir eksi bu konuda tamsayı.
Bunu nasıl yapardın?
Herhangi bir fikir?
Sadece bana bir şey atmak.
Evet?
>> İZLEYİCİ: [duyulamaz] adayı senin [duyulamaz] eğer bir özel.
>> Gabriel: Sen atayabilirsiniz bir 0 veya 1 olacak özel bit.
Pozitif ise en birini diyelim ve 0 negatif ise.
Bit Ve sonra geri kalanı sadece numarayı saklamak için bir.
Serin.
Yani çok iyi bir fikir.
Biz, bilmiyorum, 200 var.
Ve ilk bit ise açık, o zaman var artı 200.
Kapatılınca, bu 200 eksi.
Serin.
>> Sadece küçük bir tane var Bu sorun,
hangi biz şeyleri özetlemek çalışırsanız olduğunu.
Yani biz burada 11.111 var hayal, ve Biz 00.100 neyse bu toplanmasıyla ediyoruz.
Bu iki pozitif ise, bu iyi.
Ama sonra eğer biri Onları gibi, negatif ise
diyelim bu biraz burada ki sorumlu biri
for-- Ben bir separate-- yapmak için gidiyorum böylece bu, bu sayı terimi burada
olumlu.
Bu, bu demektir Burada sayı doğru, negatif mi?
>> Ama sonra sen ne zaman bunları topladığınızda gidiyor, sen
bir if deyimi gerekir Bu 0 ise oh diyerek
sonra benim toplamı olacak farklı bir şey, değil mi?
Yani biraz var yapmanın yolu daha zeki
ikinin tümleyeni denir ki.
Yani temelde ne yapmak, biz tanımlamak eksi 1
şey olması durumunda bu 1 Bizi 0 verir biz ekleyin.
Bunu tekrar edeyim.
Yani burada bu 1 olduğunu varsayalım.
Şey nedir ki doğal pozitif tamsayılar içinde
Bu eklenen bize 0 veriyor?
Bu sayıya eklemek için ne denerseniz?
Biz Tamam have--, o yüzden ekleyelim için gidiyoruz.
Biz 1 artı 1 zorunda gidiyoruz 0 ve sonra üzerinde taşır.
Ve sonra tekrar 0 almak için gidiyoruz.
Ben karıştı alıyorum.
Ve sen 0 almak için gidiyoruz ve 0, 0, 0, 0, 0.
0 yılların sürü.
>> Son bir anda, biz değiliz Bunu üzerine taşımak mümkün olacak,
izin çünkü biz sadece en uğraşıyoruz demek bir byte, bu yüzden sadece 8 bit.
Yani bilgisayar varsayılan ne sadece olduğunu [Inaudible] unutur
TAMAM MI?
Peki bu ne denir olduğunu ikinin tamamlayıcısı.
Olmak Biz sadece 1 eksi tanımlamak şey burada 1 eklemek eğer
Size 0 verecekti.
Ve bu oldukça serin biz gerçekten yok çünkü
uygulamak için geç gerekiyor Özetle farklı bir türü
bu olsun bağlı Negatif veya pozitif bir sayı.
Mantıklı mı?
Yaptığımız >> Yani bir şey Burada dönüştürmek için
pozitif ve negatif arasındaki tamsayı sonra, her şeyi çevirmek olduğunu
ve sonra bu numaraya 1 ekleyin.
Eğer kendiniz yapmak çalışırsanız bir kağıt parçası üzerine,
Eğer mantıklı görmek için gidiyoruz.
Ama bu numarayı almak durumunda Burada, bu beş.
Ben her şeyi çevirmek Yani Burada, bu nedenle 1, 1, 1, 1, 1.
, Flip, kapağı çevirin.
Ve sonra ben ona 1 ekleyin.
Ben tam olarak eksi 5 olması için gidiyorum.
TAMAM MI?
>> Bu tür mantıklı çünkü eğer Eğer sayı ile bu özetlemek çalışın
Daha önce vardı ki yine bu çevirmek izin Ben--.
0 en 101 ve çok oldu.
Bu eklemek için çalışırsanız birlikte iki sayı,
Eğer tam olarak 0 olması için gidiyoruz.
TAMAM MI.
Herhangi bir sorunuz?
>> İZLEYİCİ: [Duyulmaz]
>> Gabriel: Ne demek istiyorsun?
>> İZLEYİCİ: Negatif Pozitif [duyulamaz].
>> Gabriel: Hayır, sen çevirmek ve her zaman 1 ekleyin.
Evet.
Tamam, bu yüzden karakterler de ikili dosyaları kodlanmış.
Biz senin kadar, ASCII tablosu var Ayrıca sağ, derste gördüm?
Yani temelde şeyler bir eşleme var.
Ve burada yeterince vurgulamak değildir bir bilgisayar, a ve 65
kelimenin tam anlamıyla aynı şey.
Ben Char c gibi bir şey yazarsanız Yani Bir, ben aynı anda olabilir eşittir
sadece burada, 65 yazma, ve Tamam, tam olarak aynı olurdu?
Hiçbir fark yoktur.
>> Biz genellikle koymak eğilimindedir Çeşidi değişkenleri karakterler.
Char, değil onlar aslında çünkü Bunun için yapılmış, fakat
İnsan kongre.
Ama sadece tamsayılar ile başa çıkabilirim yerine char türünde değişkenler,
ve iyi olacak.
Sadece gerçek fark Bir karakter c ve bir int i arasında
int çoğunda dört bayta sahip olmasıdır sistemler, bir karakter, bir bayt sahipken.
Bunlar esas olarak konum veri bakımından aynı şey.
Peki burada basacaktır?
Burada printf kullanarak bir rakam yazdırırken Bir artı 1 ile ve sadece tamsayılar gibi,
karakter böylece özetlenebilir karakterler de özetlenebilir.
Yani bu tam 65 olduğunu.
Yani orada oluyor 66, ve burada var
65 artı küçük bir eksi büyük bir, olacak, ben gerçekten bilmiyorum.
Ama tam boşluk olacak harflerle arasında
ve ve küçük harfler, yani biz doğru, küçük a almak için gidiyoruz?
Evet.
Yani bu bir yazdırmak için gidiyor Tam bu biridir karakter.
İyi mi?
Herhangi bir sorunuz?
>> Burada farklı bir grup var Sayısal değişkenler için türleri.
Biz zaten int hakkında konuşmak.
Bu gerçekten amaçlara yönelik şamandıra sadece bir yoludur komik, ben ilk öğrendim çünkü ne zaman
gün geri programlamak için Python, ilk program şimdiye kadar
yazmaya çalıştım, ben bir olduğunu gördüm tipi olarak adlandırılan ve bir tür şamandıra denir.
Ve şamandıra tüm gerçek sayılar için oldu.
Öyleyse neden gerektiğini sordum Şimdiye kadar sonra int kullanmak?
Tüm kullanabilirsiniz çünkü eğer Bir şamandıra ile reel sayılar,
Ben sadece doğru, ints kullanarak durdurmak?
Gerçek sayılar Çünkü çok daha genel gibi.
>> Bu çıkıyor bilgisayarlarda böyle değil
onlar aslında çünkü farklı şeyler.
Tamsayılar ve yüzen Yani, işlemleri onlara yapmak
Çünkü aslında farklı onlar saklanır şekilde, tamam mı?
Biz biraz konuşmak için gidiyoruz Bir saniyede bu konuda daha fazla bit.
>> Yani çift sadece daha büyük bir şamandıra olduğunu.
Genellikle en sistemlerde, bir şamandıra sadece bir int gibi, dört bayt.
Ve çift sekiz bayt.
Uzun uzun aslında sadece bir semboldür Eğer int gibi bir tür eklemek olduğunu.
Uzun Böyle int uzun söylüyorlar.
Uzun uzun int x artık bunu yapmak için.
Yani çoğu sistemlerde, bu verecek yerine her zamanki dört sekiz bayt.
Ve aslında düşebilir olarak, sadece uzun uzun söyleyebilirim böylece,
ve bu Tamam, çok çalışıyor?
Ayrıca gibi diğer şeyler yapabilirsiniz unsigned int, ya da yine sadece imzasız
Ayrıca işe.
Ve o x değişken yapacak Her şey olumlu gibi,
bu yüzden gerçekten negatif olamaz biz buraya gördüğümüz şekilde numaralar.
Çok harika Aşağıdaki nokta ve hassasiyet kayan.
Bu nedenlerden biri neden sen yerine yüzen ints kullanmak istiyorsanız,
ints% 100 kesin, doğru çünkü?
Tam bu sayı bu.
Kayan nokta için, eğer Cevap 1 10-- üzerinde eşit söylüyorlar
Ben tam bu var ne Burada program float.c.
Yani 20 ondalık basamağa yazdırır.
1 10 bölü, ve o Genellikle doğru, 0.1?
Ama burada biz yaparsanız yüzer ve sonra bunu çalıştırın,
biz tam 0.1 olmadığını görüyoruz.
Bu 0.149 şey.
>> Ve neden?
Eğer gerçekten her temsil edemez çünkü bellekte tek olası reel sayı
çünkü Bunların uncountably fazla.
Bu yüzden teknik olarak sadece güçlü konum Bunlardan bir sonlu miktarını temsil
veri sınırlı miktarda.
Ama gerçekten ilginç.
Şimdi bu yalvarır sorusu nasıl olur
temsil hakkında gitmek bit ile bu, değil mi?
Peki nasıl yüzer saklanır?
Tamsayılar sayesinde kolay oldu.
Ama yüzen ile istediğiniz aralığını maksimize etmek,
ve temsil edebilmek olmak istiyorum Büyük sayılar ve benzeri çok küçük sayılar
Aynı zamanda 0,000001.
Yani yine aynı oyun.
Nasıl olabilir herkes bir fikrin var mı bellekte şamandıra temsil gitmek?
Sadece bir şey atmak.
Evet, lütfen.
>> İZLEYİCİ: [duyulamaz] olarak iki int ve bir olsaydı
olmak [duyulamaz] ve bir varlık ondalık noktadan sonra her şey.
Gabriel: Tamam, güzel.
Bu nedenle, iki farklı tamsayılardır.
Sen 12,45 olabilir, böylece 12 ve 45 var.
Güzel.
Ne diyecektim ere?
Aynı şey?
Evet?
>> İZLEYİCİ: [duyulamaz] notasyonu nereye tabanı ayrı.
>> Gabriel: Bilimsel gösterim, evet bu ne genellikle bu.
Yani bu mantis denir budur.
Yani aslında ne numarası ve ardından üs
Doğru, virgül sadece nerede?
Yani bu şey olacak formunda, 1, 2, 3, 4, 5 kez 10
eksi 4.
Ben sadece tam olarak, evet ki- gerçekleşmiştir.
Sonra eksi 4, bu 10 Virgül nerede Tamam, tanımlamak gidiyor?
Brezilya'da biz virgül kullanın.
Burada siz bir nokta kullanın.
Yani bir nokta.
>> Ve bu çünkü o yapabilirsiniz, serin Bu adam senin bit sürü odak
Burada, mantis üzerine, ve o var Gerçek hassas olacak.
Ve ondalık ya bunu yapabilirsiniz veya ikili temelli bir sistemde bu.
Farklı vardır yolları uygulamak için.
Sorular?
Evet?
HEDEF KİTLE: Kaç yerler ondalık [duyulamaz] sonra?
>> Gabriel: Bu karmaşık bir soru, asla gerçekten% 100 kesin, çünkü
Burada, için gördüğünüz gibi çünkü Bazı rakamlar% 100 kesin.
Burada 0.5 koyarsanız ben, inanıyorum % 100 kesin olacak.
Bu 0.500000 olacak.
Yani bu durumda, mükemmel.
Ancak diğer durumlarda, çok az mükemmel.
Benim tecrübeme göre, dört kadar olduğu gibi, Beş ondalık oldukça hassas.
Eğer bir çift kullanırsanız, o gidiyor Tamam, bu şekilde daha hassas olabilir mi?
>> ROB BOWDEN: Yani sadece atmak için yüzmeleri biraz daha bağlam,
Ben% 100 nasıl hatırlıyorum asla yüzen spec aslında işleri
ama ben her zaman hatırlıyorum Bu yüzen dağınık başlıyorsun.
Yani fikir, gerçekten olsun ki gerçekten büyük sayılar ya da gerçekten, gerçekten
küçük numaralar, başlıyoruz gittikçe kötüleşiyor
ayırt de İki yakın yüzen arasında.
>> Yani olduğunu düşünmek istiyorum nasıl kayan nokta imprecision ile,
iki gevşek iplik olduğu Ben onları belirtmek denerseniz
C, aslında buna rağmen farklı sayıda konum
onlar için gidiyoruz Aynı sayı olarak yorumlanır,
biz farklı saklayabilirsiniz çünkü.
Aynı bit kullanmak gerekir.
Ve böylece biz olsun Gerçekten, gerçekten büyük sayılar,
300 veya 10 gibi konuşuyor şey, o noktada bulunuyor
Bu 10-300 veya 300 5 kat 10
ayırt edilemez 300 7 kat 10 den.
Yani oldukça büyük bir fark var İki sayı arasındaki.
>> Ama sonra sen aşağı olsun normal aralık şeyler,
Eğer güzel olma eğilimindedir ayırt iyi.
Ve sonra, gerçekten küçük aşağı olsun Ayrıca yine oldukça kötü alıyoruz.
Bir sürü gibi Yani 0.0000, oldukça kötü olur.
Gabriel: Evet, bu yüzden hızlı bir not.
Bunu asla.
Asla karşılaştırmak için çalışın eşittir eşittir kullanarak yüzer,
neredeyse olsanız bile, çünkü Aynı, hemen hemen aynı aynı değildir.
Peki genellikle do you çıkarmak olduğunu Onları, bu mutlak değerini alır,
Bu küçükse ve görmek Böyle 0.0001 falan, tamam mı?
Ve serin.
Ben bir sürü insan var biliyorum Java bazı arka plan,
yaptım özellikle olanlar AP bilgisayar bilimleri, değil mi?
Ve Java bir dildir çoğunlukla C dayalı,
Bir ikiliye çok büyük farklılıklar vardır.
Ama böyle döngüler ve IFS, ve şeyler için Bu, hepsi aynı sözdizimi sensin.
Ben bu göstermek için burada birkaç program var.
>> Yani, örneğin, basit bir merhaba dünya.
Bu C, hello dünya size hangi çocuklar, ile kesinlikle tanıdık
ve bu ve bu bir Java olduğunu.
Java Bu böylece public class, merhaba dünya,
ve public static void Ana ve dize args.
dize args gidiyor Çok kısa bir süre C görünmesini.
Ama henüz girmeyelim.
Şu anda, yani burada geçersiz var ana argüman değil.
Ve sonra biz System.out.println, bu da
printf için eşdeğer tür.
İşte biz gerçekten ters eğik çizgi ihtiyacımız yok n baskı ln sizin için yapar çünkü.
Bu ters eğik ekler satırın sonundaki n.
>> Ama giderseniz A gibi bir şey, sen
onlar olduğunu görebilirsiniz hemen hemen aynı şey.
Yani başlatma ve durum ve güncelleme
Bu-- Ben onlar konum ötürü-- bir boşluk cevapsız Java dışında hemen hemen aynı şey,
birkaç üst düzey malzeme olarak vardır.
Burada yapabileceğimiz artı ve Java otomatik olacak
hangi, ben burada bu hale Bir tamsayı, bir dizeye,
ve daha sonra ekleme birlikte iki dizeleri.
Burada C biz &% d yapmanız gerekir.
Burada çizgi, için aynı görünüyor.
>> Ve biz bakmak eğer IFS, eğer Ayrıca sağ, tam olarak aynı görünüyor?
Yani gerçekten büyük farklar vardır Burada gördüğünüz şeyler.
Kamu statik geçersiz ve Daha sonra public class eğer.
Peki Java ne var Bir sanal makine denir.
Ve çok ağır ne dayanır Nesne yönelimli programlama denir,
Bir çok yaygın olan Günümüzde programlama paradigması.
Ve bu sınıf şey, gördüğünüz ne nesne yönelimi gelen şey,
size daha sonra bir sınıf oluşturmak ve o sınıfın nesneleri elde edebilirsiniz.
Biz de konuşmak için gidiyoruz değil CS50 bu konuda çok,
ama bu kesinlikle var gerçekten harika bir şey,
Eğer gitmek istiyorum özellikle daha sofistike web geliştirme
Dersin sonunda, gibi son proje teslim
ve bazı güzel çerçeveler ve malzeme.
>> Yani temelde fikir sen misin şey yeniden uygulamak istemiyorum,
böylece bir şeyi yaratmak çok genel, şekli gibi,
ve ardından oluşturmak ondan farklı şekiller,
ve daha sonra her birinden Bu şekiller, oluşturmak
Üç bazı daha özel şekiller boyutlar veya böyle bir şey.
Ve bu hiyerarşiyi sahip oldukları bu yüzden, diğerlerinden miras
tüm fonksiyonlar ve diğer tüm değişkenler ki Büyük şekli burada, tüm bu sahip
olacak ve tüm bu olan vardır ve benzeri ve benzeri olacak.
Yani temel fikir.
>> C ++ ki var, ancak C değil özelliği bu tür var.
Ve Java ağır etkilenir nesne yönelimi ile,
Gördüğünüz neden bu kadar işte Burada sınıf her zaman.
Ve başka bir şey Bu Java sanal makine.
Yani bu, bence, çok akıllı bir fikir.
Peki millet kim icat java yaptım
onlar istemedi iki kez kendi kodunu derlemek
onlar Windows çalıştırmak için olsaydı, veya Mac veya Linux, bu yüzden ne
onlar tam anlamıyla çalıştırmak Cihazın gibi bir şey,
ama sen gerçekten oluyor görmüyorum.
Yani bir sanal makine çalıştırmak Bilgisayarınızda, içinde hangi
benzer bir temelde Mini işletim sistemi.
Ve bu çalışma hayatta sistemin amacı
sadece bayt kod denir çalıştırmaktır.
>> Peki yerine C, yolu biz-cekti Bu eğer yapmak derlemek ve sonra çalıştırın
./if.
Ben ters eğik unuttum.
Java, ilk yapardın C Java derlemek için, if.c.
C. It nokta java değil.
Ve sonra ./ değil çalıştırmak zorunda.
Bu yeni bir dosya olsun if.class, ama sen yapamazsın gerçekten
şimdi if.class koşmak gibi daha önce yaptığımız.
Bu bir yürütülebilir değil.
Sen çalıştırmak zorunda.
Sen içine beslemek zorunda Java adında bir program,
ve bu program sanal makine, ve sonra if.class, ya yapmalı.
Evet.
Ve sonra çalışır.
Tamam bu yüzden bu tür sanal makine oluyor.
Ben olsaydı yani C, bu yok Windows makinede bu programı koymak,
o yapar Java C işe yaramaz.
Sorular?
Serin.
Bu bugün için süper bölüm için eğer var.