ANDI PENG: Biz neredeyse Tüm psets aracılığıyla. Aslında, biz çoğunluk bitti En zor psets evi. Yani biz aslında sadece konum esinti tür gidiş Önümüzdeki birkaç hafta boyunca. Biz bahsediyoruz başlatmak için gidiyoruz bizim Nihai projeler, etkinlikler geliyor önümüzdeki birkaç hafta içinde. Ve hayat bir esinti olacak. Yani çok fazla bugün. Umarım, aslında esinti olacak Bugün için gündemde yoluyla, ve daha sonra buradan olmak yedek için biraz zaman. Ayrıca, özür dilemek istiyorum şeker eksikliği bugün. Ben neden bilmiyorum. Ama hafta içinde lider Cadılar Bayramı, ben şeker unutmak istiyorum. Yani aslında sadece büyük bir kulüpler Şu anda sizin için hayal kırıklığı. Ben tam anlamıyla şeker hatırlıyorum çünkü her sınıftan, ama Cadılar Bayramı için. Ama gelecek hafta, ben getirecek şeker miktarını iki katına hepiniz için, bu telafi etmek için. Harika olacak. Yani duyurular bir çift var Bazı zamanlama ile ilgili. Bazı zamanlama sorunları var. Sonra geçmek için gidiyoruz chmod ne denir hakkında konuşmak. Biz hakkında konuşmak için gidiyoruz hızlı TCP / IP, HTTP. Ve sonra kod gidiyoruz bizim HTML ve CSS kullanarak kendi web sitesi. Ve sonra ben aslında belki bırakacağım 20 dakika gibi pset6 hakkında konuşmak için. Pset6 aslında bir sürü Çünkü biz zaten daha önce gördüm şeyler, ama yenilemek istedim Bu bazı kavramları yanı sıra bir çift yeni işlevler öğretmek olarak. Güzel. Her şeyden önce, mola hoş geldin. Ben mola keyifli oldu umarım. Eğer mola için yaptın misiniz? HEDEF KİTLE: New York'a gitti. ANDI PENG: New York'a gitti? Ben yarım Okulumuzu düşünüyorum New York'a gitti. Her şey yolunda. Benim mola çoğunu Yatakta Netflixing içinde hareketsiz. Ve bu iyi bir zaman oldu. Ama biz geri geri şimdi oturumu geri şeylerin salıncak. Biz öğle saatlerinde bu Cuma nedeniyle pset var. Ben zaten ettik düşünüyorum evet, senin sınav aldı? Yani başkasının kim var değil, kendi sınavlar vardı gelip sınavlar olsun lütfen bölümün sonunda benden. Ya da kampüste beni izini. Ben bir yere benimle olacak. Bizim nihai proje ön teklifi de. Almamış bizler için öylesine daha önce bu sınıf, CS50 ve capstone çok bu sonuçlandı edilir Öğrenciler teklif büyük bir proje. Ve ön teklifi, sadece genel bir fikir biri için yapmak isteyebilirsiniz ne onların Proje, bu fikir, Pazartesi nedeniyle öğle saatlerinde Pazartesi sonraki. Yani hemen hemen, David Ben olacağını düşünüyorum konuşmasında bu konuda daha fazla konuşmak o zaten değil varsa. Ve sağlam sayfa var açıklayan sitemizde projenin tüm gereksinimleri. Ama esasen, pick Eğer ettik herhangi bir konu ilgilenen edilmiştir Burada zaman boyunca CS de, bu oyun olsun ya da Tasarım veya video ya da bir şey. Ve gerçekten bir tür can Şimdi derslerden bazılarını uygulamak merhaba CS50-- burada öğrendim, welcome-- iletken oldukça çok şey Seçtiğiniz bir final projesi. Tüm bu nedeniyle Pazartesi bulunuyor e-posta yoluyla sadece kısa bir cümle Benim için, hızlı bir cümle, hey gibi, Andi, Ben tasarımı gerçekten ilgileniyorum iOS için bunu yapan bir oyun. Güzel. Sadece bana kısa harfi izin son projeler için fikirler. Ve biz aracılığıyla konuşacağız olsun veya olmasın aslında iyi bir fikir ya da değil, Bir uygulanabilir bir fikir ya da değilse. Ama ön teklif önümüzdeki Pazartesi kaynaklanmaktadır. yanlış pset6, bizim güzel web--. Pset7? pset6? Bu doğru, pset6 değil mi? pset6, web sunucusu, nedeniyle Geç gün öğlen Cuma. Ofis saatleri Pazartesi normalde devam Perşembe 08:00 11:00 bu hafta. Ben Commons düşünüyorum Önümüzdeki üç gece. Güzel. Biz malzeme içine vardı önce, herkes yapar Herhangi bir sorunuz, şakalar, hikayeler var? Eğer sonbaharda mola için ne yaptın? İZLEYİCİ: Ben ne? ANDI PENG: Zaten aslında önce yaş var. Christabel New York'a gitti. Ben burada ve Netflixed kaldı. HEDEF KİTLE: Oh, evet ben buradaydım. ANDI PENG: Tamam, evet. İZLEYİCİ: Hatırlamıyorum özellikle ne. ANDI PENG: Bu Tamam. HEDEF KİTLE: Netflixing muhtemelen. ANDI PENG: Netflixing. Evet, bu iyi bir zaman. TAMAM. Pekala. Herhangi bir sorunuz önce Biz malzeme içine atlamak? Ayrıca, biz denemek için gidiyoruz bölüm bugün yoluyla hızlandırmak, karşılamak için çok fazla. Ve umarım, biz alırsınız Burada biraz erken. Ayrıca değil şeker, için üzgünüm. Ben bir hayal kırıklığı yaşıyorum Özellikle Cadılar Bayramı sırasında. Pekala. Güzel. Yani biz bahsediyoruz başlatmak için gidiyoruz Bir komut satırı argümanı chmod çağırdı. chmod, öyle hepsi sadece bir Unix sistemi Komut satırından yapılan çağrı Dosya izinlerini değiştirmek için. Yani, örneğin, biz ettik Bütün bir sayfa karşılaştı Böyle muhtemelen bazen de internet olmanın bizim ömrü Bizim web sunucusu olan kullanıcı, Bize Yasak yanlışlığını verilen. Sen, erişim izniniz yok vesaire, vesaire, vesaire, bu sunucu üzerinde. Tüm bu gerçekten anlamına gelir izinleri olduğunu Bu bağlanmıştır olursa olsun Sayfayı erişmeye çalıştığınız Size açık değildi. Yani hemen hemen, chmod yoludur Biz bu sistemi izinlerini değiştirebilirsiniz Herkesi vermek için, kullanıcı, grup, Dünya, ya da herhangi bir ya da Bu erişim kombinasyonu Belirli dosyaları, dizinleri, gerçekten bir şey, Sistemin herhangi bir tür üzerinde bir işletim sistemi. Adamlar herhangi birine sahipseniz Yani hissediyorum eğer bilgisayarlar Bugün benimle birlikte aşağıdaki gibi, Tamamen sadece şeyler yazın çekinmeyin içinde. Aksi takdirde, sadece takıl. Yani aslında çekmeye gidiyorum şu anda benim terminale kadar. Yani komuta çalıştırmak için chmod, ya da en azından sadece izinleri listelemek için senin dosya dizini, sadece ls-l. Gördüğünüz gibi, bir demet şeyler kadar çoğu çıkar üzerinde bizim için önemlidir Burada sol taraf. Siz rs, ws, 1 / 'bir demet görürsünüz. Evet. Bunlar sadece esas olarak Tüm dosya izinleri Ne belli dizin açıklamak ve sistem içinde dosyalar var. Yani en geri dönelim Burada güç noktası. Yani dosya adları yanı sıra Siz sağ tarafta gördüğünüz gibi, biz aslında görmek için arıyoruz Soldaki sadece kolon. Ek Yani sadece dosya adları, biz , dosyaların izinlerini görebilirsiniz onların sahibi grup, grup adı, tarih Dosyanın son oldu modifiye, vesaire. Sen chmod kullanarak bir çok şey görebilirsiniz. Bu yüzden chmod okumak yol olduğunu biz hoş çok görmezden ilk harfi Okuma izinleri açısından. Ilk harf sadece bize ne söyler sisteminin türü, biz erişiyorsunuz. d, bu durumda, a, klasör veya dizin. Bu yüzden şu anda Çalışma alanımı biliyorum bölüm yedi bir dizin oldu. Ve sonra üç bkz üçlüleri, aslında sadece Üç karakter üç set. Ve biraz her düşünebilirsiniz. Yani sadece üç set var üç bit, toplam dokuz bit. Siz üçlü gruplar halinde onları tedavi. Yani üç ilk grup her zaman kullanıcı izinleri. Üç İkinci grup her zaman grup izinleri. Ve üç üçüncü seti , her zaman dünya gibi Her yerde izinler. Yani kolay tahmin sormak için soru budur kullanıcı ve grup arasındaki fark. Temel fark kullanıcı ve grup arasında Bir kullanıcı kişisel sadece olduğunu şu anda ne olursa olsun erişmek. Birden varsa bir grup olabilir Örneğin bir bilgisayar kullanıcıları. Bunların hepsi bir grup olarak tedavi edilebilir. Ve sonra dünya Sadece dünyada, herkes. Nasıl biz bu yüzden biz daha sonra görebilirsiniz Farklı izinler içine o değiştirin. Yani hemen hemen, biz konum Hala duracağım solda, kısmında Dizin CS50 için biz drwx bkz r sadece anlamına nerede okunabilir. W sadece yazılabilir demektir. Ve sonra x sadece çalıştırılabilir demektir. Sen tür onu düşünürdüm bir anlam ifade etmiyor. Bu E olmalıdır. Ama biraz aslında x biraz daha iyi çalışır Daha iyi hatırlıyorum çünkü. Şeylerin Yani üç türleri yapabilir, ya bir dosyayı okuyabilir, Bir yazma iznine sahip olabilir dosya veya iznine sahip olabilir Bir dosyayı yürütmek için. Ve böylece yol olduğunu biz aslında bit olanlar temsil numaraları 4, 2 ve 1'dir. Yani okunabilir bir şey 4 sayısına göre temsil etti. Yazılabilir var şey 2 ile temsil edilmektedir. Çalıştırılabilir var ve bir şey olarak 1 ile temsil etti. Yani bu anlamda, biz de can Bu Numaraları temsil merhaba, farklı bir şekilde, hoş geldiniz. Üzgünüm. Herkes önce ben gidiyorum herkes adına özür diliyorum Şimdi sınıf giren. Bugün şeker unuttum. Ben bir başarısızlık üzgünüm Halloween bu hafta. Ben iki katı getirecek şeker bunu telafi etmek dahaki sefere. Ama neyse, üzgünüm Bu adamlar hakkında, üzgünüm. Yani yol biz girdi aslında can Bizim komutu üzerine argüman biz ise chmod grup çizgi izinlerini yapabilirsiniz nerede grup sadece ne olursa olsun bir grup biz değiştirmeye çalışıyorsun. Ve izinler vardır biz eklemek istediğiniz ne olursa olsun. Yani, örneğin, artı izinleri ekler, ve çıkarma izinleri alıp götürür. Ve grubun türleri bizim a sahip tüm u kullanıcılar için, gruplar için g veya başkaları için o. Şu an biraz soyut. Ama biz bir kaç örnek üzerinden gidersiniz Sadece bu gerçek hızlı göstermek için. Bu iyi Herkes slayt, bu yüzden hareket edebiliyorum? Güzel. Yani, örneğin, rwx. Biz neyi temsil ettiğini hakkında konuşmaya başlamadan önce, her şeyden önce rwx ne anlama geliyor? Bu kesin görürseniz Dosya, RWX izinlerini vardır Bu ne anlama geliyor kişinin yapmak mümkün olabilir? HEDEF KİTLE: Okuma, yazma ve yürütme. ANDI PENG: Evet, kesinlikle. Sen okuma yazma ve yürütebilirsiniz. Bunlardan üçü Çünkü karakterler mevcut. Biz konuşma devam edin ve eğer öyleyse bit açısından bu konuda, rwx ayrıca 700 olarak temsil edilebilir. Eğer herhangi bir de görebileceğiniz gibi çünkü Dosya dizin izninin tür Üç üçlüleri var. Bu durumda, sadece birinci üçlü orada bir şey vardır. Bu yüzden, bu durumda, r burada 4, w 2 ve x 1 'dir. Eğer birlikte bu eklerseniz, 7 var. Ve böylece dönüştürürseniz o 700 olduğunu, ikili için. 7 Çünkü ilk üçlüsü olduğunu. 0, bu bir şey yok İkinci triad olarak. Ve sonra, bu şey de yok Üçüncü üçlü, böylece başka 0 var. Yani üçlü aynı anlamda, bir demet sadece, sadece bitleri temsil edilebilir ikili hem de. Yani 700 aynısını olarak gelir izinleri açısından rwx ------. Herkes net? Güzel. Ve böylece chmod 111 verecekti dosyaya hangi izinler? Adamlar size birkaç ver saniye bu dönüştürmek. Birinci Ol Üçlü kullanıcı içindir. İkinci üçlüsü grubunda içindir. Ve üçüncü üçlüsü herkes içindir. Ve böylece chmod 111 verecekti ki izinleri ve kime türü? Bir kaç saniye sürebilir bunu düşünmek ve geri gel. Evet. HEDEF KİTLE: Yani herkes yürütebilirsiniz. ANDI PENG: Evet, kesinlikle. HEDEF KİTLE: Ama kimse okumak veya yazabilirsiniz. ANDI PENG: Ve çekinmeyin Herkese açıklamak nasıl bu sonuca vardık. HEDEF KİTLE: Peki, kullanıcı için, grup ve dünya, bu hepsi 1 var hangi yürütülebilir koddur. ANDI PENG: Evet, kesinlikle. Yani 1, bu durumda, bildiğimiz tek şey o yürütülebilir bir koddur. Okuma 4 olduğu için. Yazı 2 'dir. Ve yürütülebilir 1'dir. Yani her üç gizli suç şebekesi, 1 yönündedir edilir o dünyaya, kullanıcıya anlamı, ve gruba, onlar tüm yürütülebilir vardır. Bu iyi Herkes? TAMAM. Ve böylece ikinci yol biz aslında olabilir ki sen de bu bilgileri sadece chmod yapabileceği Bir plus x. Bir bütün veya herkesi anlamına gelir. Artı izinleri vermek demektir. Ve daha sonra x çalıştırılabilir anlamına gelir. Yani iki komut var Aslında aynıdır. Çalıştırmak istediğiniz Yani eğer senin terminalde bu, Eğer, adını 111 chmod yapmak dizin veya dosya. Ya da bir artı x chmod yapabilirsiniz, dizin dosyasının adı. Aynı şey, sadece daha kolay bir yolu, Belki bazı temsil veya değiştirmek için dosya izinleri. Chmod ile her biri OK Biz geçmeden önce? Güzel. Yani şimdi bir kafa için gidiyoruz çok soyut kavramların birkaç slayt Ben hemen hemen olduğumu esinti olacak. Ve eğer tamamen Tamam Her şeyi anlamıyorum. Şimdi bile, ben hala gerçekten yok Tamamen her şeyi anlıyorum. Ama getting daha var Üst düzey bir anlayış Bunlardan bazıları nasıl çalıştığını. Yani biz konuşacağız hızlı TCP / IP hakkında, hangi sadece Transmission Control olduğunu Protokol Internet Protokolü çizgi. Ders dan hatırlayın David, size öğretmek vermedi O geçerdi örnek Bir zarf içinde notlar konferans salonun üst sevmeye kadar? Hukuk fakültesi oditoryum Yani David esas gösterdi nasıl TCP / IP çalışır duygusu tüm bu bu verileri sağlamak için bir araç olduğunu Bir sunucuda teslim edildi ya da internette. Zarfın örneğin Yani ve mesaj, sonunda kullanıcı görebiliyordu, oh, gerekli Bilgi dört paketleri almak. Ama aslında sadece üç aldı. Ben bir tane eksik gerekir anlamına gelir. Ve bir teslim edilmedi. Ve böylece, TCP / IP internette, Bilgisayarınıza ve sunucu üzerinden, aynı şeyi yapar. Öyle Tüm belirtmek olduğunu çerçeve hangi bir kayıp veriler paketler resent ve alınabilir. Internet gibi çalışıyoruz Online dosyalara erişmek veya dosyaları göndermek için Arkadaşınızın ya da web bakmak tarayıcılar, binlerce ve binlerce Milyarlarca ve milyarlarca bilgisini bayt milisaniyelik başına aktarılır. Ve gerçekten, gerçekten kafa karıştırıcı. Ve bu zor gerçekten Aslında gönderildi neler olduğunu ve ne gönderilen değil. Ve böylece TCP / IP sadece belirler uyumlu bir çerçeve hangi web içinde Tarayıcı ve sunucu tür iletişim kurabilir birbirleri ile sadece paketlerin olduğundan emin olun hepsi burada ve hiçbir şey en kaybolan İstediğiniz ve tüm verileri aslında düzgün görüntülüyor. Sadece çok OK Herkes Kısaca yüksek seviyede anlıyor musun? Güzel. Öyleyse biz taşımak için gidiyoruz HTTP bahsediyoruz içine hangi Sadece Köprü Metni Aktarım Protokolü. HTTP, öyle hepsi ne herhangi sayfası veya dosya, web sitenizde erişilen Sunucu bir HTTP döndürür yanıt durum kodu isteği emin ya, oh, bu isteği geçti. Ve her şey düzgün görüntüleniyor. Ya da, oh, hayır, 404. Bir şeyler yanlış gitti. Ah, ben gösteremez. O Tüm neyse o Eğer, erişmeye çalıştığınız kullanıcı olarak kullanmak, erişmeye çalışıyor internet-- sadece emin Ya başarıyla var o ya da değil ne olursa olsun erişilen başarılı her neyse erişilen. Ve böylece HTTP durum Kod sadece sağlar olmadığını bilmek mümkün olan bir araç ya başarılı ya da değil. Yani, örneğin, bir örnek isteği. Sen bu kadar burada görebilirsiniz genellikle genellikle dört satır. Biz sadece bir GET HTTP 1.1, var yöntem isteği URL protokol versiyonu, alan adı, ve alanı değeri. Yani gerek yok tamamen Burada bir şey ezberlemek. Sadece bir tür oldum Bu nasıl baktığınıza kendinizi. Bu örnekte, yöntem, isteği URL sadece ne olursa olsun isteği sunucuyu gönderiyor. Hey, gibi, sunucu, ben gerçekten istiyorum erişim vesaire, vesaire, HTTP sayfası. Protokol sürümü sadece ne olursa olsun bir versiyon ev sahibi veya sunucu bilgilere erişmek için kullanıyor. Alan adı web sitesi ya da Erişmeye çalıştığınız URL Bu durumda, www.apple.com bölgesindeki. Ve alan değeri Sadece tipik değeri adlandırın. Ve bu kombinasyonu, herhangi bir tür olabilir harfler veya sayılar ya da her türlü. Bu nedenle, tipik bir isteği, yani Ne Bilgisayarınız aslında hey, diyor sunucuya gönderir, Eğer, ben bu görüntülenen ihtiyacın olduğunu biliyorum Bu istek tür aslında aldıkları. Ne bir örnek tepkisi Sunucu size geri göndermek istiyorsunuz hemen hemen aynı şey olurdu, üstünde bir durum koduyla hariç. Yani 200, 2 0 0 her zaman Tamam durum kodu. Gibi, tamam, bu isteği geçti. Sen erişebilir Doğru şeyi. Hayat güzeldir. Hayat gayet iyi. Her şey tamamen iyidir. Ve böylece bu sadece tarayıcınızı söyler Sunucu, hey, her şey iyi. Ben gereken tüm bilgiler var. Güzel. Ama sorun Bazen sorunlar gelip Eğer sanırım son have-- zaman Ben çiftleri hakkında konuştuk. Daha az iyi tepkiler var. Örneğin, 404 Yani Bulunamadı Sayfa olduğunu. Bazen Yasak erişimi vardır. Sen diğer çeşitli var Ben durum kodları sen ne zaman emin hepsini gördüm internette araştırma yapmaya çalışıyor. Ve tarayıcınız size verir hayır, erişemiyor. Ve sen bok, iyi, gibisin. Yani sadece oldukça fazla, orada Bazı oldukça yaygın durum kodları. Belki tanımak hangilerinin olanlardır. Komik bir o Ben şimdiye kadar duyduğum düşünüyorum of-- sen ne ise hepsi bakmak Online, nedense var aslında gerçek bir durum kodu Ben bir çaydanlık değilim 418 denir. Ben googled nerede Bu kökeni oldu. Ve görünüşe göre tek April Fools ' Önce günde birkaç yıl, Birisi komik olacağını düşündüm 418 adlı yeni bir durum kodu oluşturmak için Ben bir çaydanlık değilim. Meşru, bu ismi Kod ben bir çaydanlık olduğumu denir. Ne gerekeni sayfa unutmak Aslında bu ekran yapmak için gidin. Ama görünüşe göre, aslında can Ben bir durum kodu elde nasılsa bir çaydanlık bir şey yapıyor yoluyla. Yani orada yüzlerce ve durum kodları yüzlerce. Bazıları daha yapmak diğerlerinden daha duygusu. Ama hemen hemen sadece oldum En yaygın olanları kendinizi. İstenen varlık organıdır Görünüşe göre, kısa ve şişman. Yani bazen daha vardır benden daha korkutucu hatalar bir çaydanlık değilim. Ama bu sanırım biridir ne tür vurmak umuyoruz. Ama sanmıyorum. Sadece durumu hakkında iyi Herkes kodlar, istekleri, süreçler, yapma Emin bilgiler düzgün teslim edilir? Yani şimdi biz geçiş gidiyoruz bölümünün eğlenceli kısmı bugün içine nerede HTML hakkında biraz konuşabilir. HTML, hepsi bu HyperText olduğunu İşaretleme Dili. Sadece standart dil var Tüm web oluşturmak için kullanabilirsiniz internet sayfaları. Yani herhangi bir web sayfası, ne favori web sayfası? Favori web sayfası nedir? HEDEF KİTLE: [duyulamaz]. ANDI PENG: Üzgünüm? HEDEF KİTLE: Tumblr. ANDI PENG: Tumblr. Yani Tumblr HTML yazılmıştır. Ve böylece biz aslında aracılığıyla gidersiniz ve Bunlardan bazıları ile oynamak daha sonra. Hemen hemen her şey size bilmek, öğrenmek gerekir, HTML yazmak için muhtemelen yapabilirsiniz internet üzerinde sadece Google. HTML, o C gibi bir program değil, değişkenler oluşturmak ve bunu nerede onunla serin şeyler. O, oh bu nasıl, sadece daha var ben şeyler benim web sitesinde görünmesini istiyorum. Ve ben sadece koymak için gidiyorum. Ve bunu stil gidiyor. HTML Yani, bir anlamda, sadece gibi Bir biçimlendirme veya şablon dili. Bu çok kolay. Bu, öğrenmek için çok daha kolay çok daha kolay yazma tipik programlama daha çok kolay bir dil, derece kullanıcı erişilebilir ve dostu. Yani biz aslında oynayacağız etrafında, bugün kendi sayfaları yazın. Başlamadan önce, ben sadece istiyorum bazı kısa en iyi uygulamaları üzerine gitmek. HTML gibi kolay olduğundan dil ve hatta çünkü Eğer bir kaç şeyler yanlış yaparsanız, o, bazen fark olmayabilir biz olduğunuzdan emin olmak istiyorum aslında bizim en iyi uygulamalara bağlı kalarak emin olmak için şeyler o dolaşma olabilir ama Her zaman doğru gitme gidiş değildir Onlar en aza konum emin olun. Yani hemen hemen emin olun senin kapanış bütün etiketleri ne zaman HTML yazıyoruz. Eğer açılış ediyorsanız bir beden, emin misin olun Bir yerde vücudu ile yaklaşıyor. Sen emin olmak istiyorum senin Web sayfası kullanarak doğrular Ne W3 Validator denir. Sen, söz konusu çevrimiçi sadece Google'ı can ve buna bir bağlantı var. Ve sonra istediğiniz ayrı bir HTML, hangi senin biçimlendirme dili, senin tarzı olduğunu CSS dili hangi olduğunu David daha da konum olduğunu göstermiştir ders ile biraz oynayacağız. Güzel. Yani her zaman çalıştırmak istediğiniz CS50 cihazın HTML, Biz çalıştırmak için gidiyoruz Program, apache denir hangi tüm bu sadece bir inşa edilmiştir Web sunucusu bu CS50 herkes erişimi vardır. Biz sadece çünkü biz apache50 çağrı CS50 her şeyi 50 diyoruz. Yani CS50 web başlamak yolu sunucu komut üzerine yazarak olduğunu hat nokta başlatmak apache50. Ve herhangi bir zamanda bitirmek istiyorsanız sefer, apache50 hiçbir nokta son yoktur. Ve sadece Enter tuşuna basın. Ve yakında burada başlık olmalıdır. Aynen. Yani sadece hızlı gitmek için gidiyorum Gerçekten kısa bir web sayfasının bir örneği. Ve biz harcamak için gidiyoruz 10 gibi, 15 dakika oynarken etrafında kendi web sayfalarını yazmaya. TAMAM. Yani burada IDE-- içinde herkes bunu görebiliyor? Pek sayılmaz. İşte, ben yakınlaştırmak olacak. Ben sadece bu kısa şablonu var Burada o aslında hiçbir şey. Biz sadece hızlı yazmak için gidiyoruz HTML programı hangi biz sadece Dünyaya merhaba deyin. C gibi, şimdi sen Yani aynı şey Sadece HTML yapacağım. Herkes aslında sadece istiyor mu Bana ilk şey size vererek deneyin Bir HTML belgesi koymak zorunda kalacak? Evet. HEDEF KİTLE: parantez [inaudible]. ANDI PENG: Evet. Çok benzersiz Yani bir şey HTML biz genellikle geleneksel Diğer komuta karşılaşma yok hat seviyesi programlama dilleri biz aslında için dosya türünü belirtin Bu olacak ki Bizim kod üstündeki. Yani bu instance-- içinde bence Doğru, doğru komut değil mi? Aynen. Üst kısmında, sadece eklemek istediğiniz Parantez içindeki patlama DOCTYPE html sadece Bilgisayarınızı söylemek, hey, dışarı bakmak. Ve HTML belgesi geliyor. Ve sonra nasıl istiyoruz Bizim dosyayı başlamak için? Biz sadece merhaba demek istiyorsanız sahip dünyaya merhaba diyor web sayfası, nasıl bu bina gidiyorsun? Aslında, en Google'a dönelim. Ve biz aslında bunu yapabilirsiniz. Aynen. Oraya gidiyoruz. HTML Yani. Gördüğünüz gibi, benim tarayıcı aslında benim için otomatik olarak bu stil. C, sizi de aynı şey Açık küme ayracı oluşturmak, Tarayıcınız otomatik olarak yakın bir küme ayracı ekler. Neyse ki, bizim IDE seviyor bizim için de bunu. Yani şimdi biz tür yazabilirsiniz Bir etiketin başlangıcı, ve her zaman bize söyleyecek etiketinin sonuna yazmayı unutmayın. Ben bu harfle gerektiğini düşünüyorum. Ve sonra eklemek istediğiniz her zaman, bir kafa hangi başlık. Biz belki aramak istediğiniz Bu merhaba, ve daha sonra vücut. Ve oraya gitmek. Bu aslında bizim HTML belgedir. Yani yol herhangi bir HTML belgesi hep aynı şey açmayız tarz int main boşluğa sahip. Hep sahip olmak istiyorum Açık ve yakın bir etiketi HTML kodunuzu üst ve alt kısmındaki. Sen içinde bir kafa var istiyorum hangi sadece ne olursa olsun, başlığını içeren senin web sekmesini görüntülemek için gidiyor Sayfa ve bunların içinde daha sonra bir gövde Aslında içerik gösterecektir ne olursa olsun yapmak istediğiniz. Yani aslında çalıştırmak istedim Bu, ben geri Büyütmek için gidiyorum. Aslında başlayabilirsiniz nokta başlatmak apache50. Güzel. Ve şimdi, gördüğünüz gibi, böylece Bu linki attı etti. Sitenizde artık diyor Aşağıda bazı linkten ulaşabilirsiniz. Yani tüm IDE done-- vardır değil IDE, evet sorry--, yapmış bizim IDE web oluşturmak olduğunu Bağlantı Web sayfalarımızda hangi tüm üzerinde sunucu üzerinde erişilebilir. Yani burada bir göz atalım. En, bu tıklayın hello.html gidelim. Ve çok basit bakın merhaba dünya için web sayfası. TAMAM. Biz aslında gidiyoruz sadece evet herkes--, naber var? İZLEYİCİ: Ben temel bir soru var. ANDI PENG: Evet. HEDEF KİTLE: Nasıl tasarruf yapmak Bir HTML olarak dosya? ANDI PENG: Evet. Ben yeni bir dosya oluşturmak için olsaydı Yani, Ben Yeni Dosya yaparsanız, Untittle, ben yaparsam, section.html, boom, ben tüm yapmanız gereken bu. HEDEF KİTLE: [duyulamaz]? ANDI PENG: Hayır HEDEF KİTLE: [duyulamaz]. ANDI PENG: Hayır HEDEF KİTLE: [duyulamaz]. ANDI PENG: Evet. Oldukça fazla, uzatma IDE içinde olan dosya, o, bilgisayar söyler Tarayıcı, hey, dışarı bakmak söyler. Bu kod olacak Bu dilde yazılmış. Örneğin, Microsoft yüzden Word, Word belgeleri ne ne uzantısı ile biter? .doc veya .docx, değil mi? Yaptığı Herkese belirtir olduğunu senin işletim sistemi, hey, Eğer geliyor bir Word belgesi var. Word ile açın. PDF'leri ile aynı şey. O, oh ihtiyacım bilir, Bu dosyayı açmak için Adobe Reader veya Adobe Acrobat ile. Ve böylece uzantıları işletmek bilgisayarınızda aynı şekilde. Eğer kod sayfasını belirtirseniz için, o bilir, HTML adlandırılabilir oh, HTML kodunu var. Ben html kodu gibi davranın gidiyorum. Yani o anlamda süper akıllı. Yani herkes, en 10 dakika gibi alalım ve sadece kendi web siteleri oluşturmak. En güzel şeyler ekleyelim. İstediğini söylemek için çekinmeyin. Ben sadece emin olmak istiyorum Herkesin sunucuları düzgün çalışan Biz pset içine özgür önce. Çünkü senin sunucuları ise pset aday yok Bu gerçekten, gerçekten kötü olacak. Ben sadece etrafında yüzer gidiyorum ve Herkesin üzerinde çalışıyor neler olduğunu görmek. Nasıl gidiyor? İZLEYİCİ: Ben sadece benim bilgisayarda döndü. ANDI PENG: Bu Tamam. HEDEF KİTLE: [duyulamaz]. ANDI PENG: Sadece IDE. Evet. HEDEF KİTLE: [duyulamaz]. ANDI PENG: Tamam. HEDEF KİTLE: [duyulamaz]. ANDI PENG: Tamamen iyi. Herkes erişen mı kendi web sunucusu tamam mı? Apache50 Tamam çalışıyor mu? Ben bazı düşünüyorum Diğer bölümler biz insanlarla değil ile sorunları vardı sunucusuna erişmek için güçlü olmak. Evet. Yani sadece apache50 koşmak uzay dönemini başlatmak. HEDEF KİTLE: [duyulamaz]. ANDI PENG: Evet. İyi? HEDEF KİTLE: [duyulamaz]. ANDI PENG: Tamam, evet. Yani bir boşluk var zannediyorsunuz. Yani apache50-- İZLEYİCİ: ben yaptım. ANDI PENG: --start alan. HEDEF KİTLE: Oh, uzay nokta. ANDI PENG: Evet, uzay nokta. Orada sen gitmek. Öyleyse eğer varsa oluşturulan bir HTML sayfası, sonra sadece doğrudan gidebilirsiniz o belirten linke. Ve bunu erişmek gerekir. Herkes mümkün kendi web sayfaları tamam erişebilir? HEDEF KİTLE: [duyulamaz]. ANDI PENG: Ah, sorun değil. HEDEF KİTLE: [duyulamaz]. ANDI PENG: Evet. Ben aslında açabilirsiniz düşünüyorum Tarayıcınız, tarayıcı içinde o ve sadece IDE tarayıcı. Evet, ben kopyalayıp eğer düşünmek ve yapıştırın. HEDEF KİTLE: Ve sonra nasıl bunu kapatabilirim? [Duyulamaz] ANDI PENG: Evet, bunu apache50 hiçbir dönemi ile durdurun. Aynen. HEDEF KİTLE: [duyulamaz]. ANDI PENG: hayır dönem ile. Evet. Oraya gidiyoruz. Aynen. Biz kendi web sayfaları oluşturma ediyoruz. HEDEF KİTLE: Oh, serin. ANDI PENG: Evet. İZLEYİCİ: Bir sorum var. Yani apache 50-- ANDI PENG: 50, evet. HEDEF KİTLE: [duyulamaz]. ANDI PENG: ne olacak? Bu garip. Bak, bu konuda nazikti Daha önce oluyordu. TAMAM. Bölümünden sonra beni gör. Bazı yaşıyorsanız Çünkü sunucu ile sorunları. Ve yapmak istediğiniz Sunucu olduğundan emin pset başlamadan önce çalışan. Eğer ihtiyacınız olacak çünkü. Evet. Olmamıştır başka kimse var mı mümkün kendi sunucusu başlatmak için almak için? Eklemek istediğiniz olanlarınız için web sayfalarınıza ek stil, biz aslında ne yapabiliriz David de konferansta yaptığı hangi ek bir stil oluşturmak olduğunu Bir nokta CSS olan yaprak, Cascading Style Sheet ve aslında sadece bunu ekleyin. Yani, örneğin, ben sadece yarattım hemen hemen neredeyse tam aynı bir Davut konuşmasında yaptı. Hemen hemen sadece vücudu yapabilirsiniz. Etiketleri adlandırılan sahip olduğu ne olursa olsun bölümünü IDE başvurabilir içinizde istediğiniz senin HTML sayfası gerçek. Yani sayfanın gövde, sen Metin hizalama merkezini yapabilirsiniz. Ve sonra ben yaratıcı olacak içinde bir etiket olarak adlandırılan üst hangi ben bunları istiyorum Daha büyük bir piksel boyutunu atayın, ne yazı tipi için. Ben yazı ağırlığı kalın olmasını istiyorum. Ve ben renk istiyorum Sadece keyfi, mavi olacak Ben seçmeye karar değerler. Ben orta olarak adlandırılan başka bir etiket oluşturabilirsiniz. Yazı tipi boyutu, biraz daha küçük yapmak. Sonra başka bir etiket oluşturabilirsiniz Ben yazı tipi boyutunu istiyorum denilen alt Hala daha küçük olması. Ve böylece hemen hemen bu sadece bir örnek kaynak kodu veya kaynak stil sayfaları Sadece Google'a çok kolay olduğunu. Derseniz, oh, benim yazı istiyorum italik ve koyu yeşil olması, Eğer, Google muhtemelen can ve o size söyleyecektir Uygun etiketleri veya kimlikleri oluşturun. Ve böylece yol olduğunu aslında olur tür bir HTML belgesindeki bu var ya da elinizdeki olduğunu kullanın Burada yapılacak başındadır stil sayfasına bir bağlantı eklemek. Yani sadece href eşittir bağlayabilirsiniz stil sayfasının adı ne olursa olsun olduğunu. Ve sonra ilişki Bir stil sayfası olduğunu. Yani herhangi bir HTML belgesi içinde, sürece Bu nokta CSS sayfası dahil olarak, erişmek mümkün olmalıdır ve burada özelliklere sahiptir. Yani, örneğin, burada ben sadece ettik başka bir örnek web sayfası oluşturmak. Bu CS50 bölümüne hoş geldiniz 2:00 dan benimle 3:30 ile Salı. Sonra güzel bir görüntü eklediğiniz Biz potansiyel görmek gerekir. Yani burada bir göz atın eğer, Eğer style.html giderseniz, Biz yavru kedi ile bir web sayfası oluşturduk. Yavru Çünkü harika. Yani bir görüntü, sadece SRC bağlantısını img olduğunu sözlerine ekledi. Varsa, hemen hemen özelliği, herhangi bir tür Eğer eklemek istediğiniz senin website-- yüzden, diyelim ki Eğer bir menü eklemek istediğiniz ya da bir arama çubuğu veya benzeri Bir image-- sadece Google bunu nasıl. Ve sadece bu formatta plop. Ve yapabilirsiniz sadece güzel çok sadece ekleyin. Gerçekten, gerçekten çok kolay. Biz kendi yaratıyor web sayfaları şimdi. Eğer istersen-- HEDEF KİTLE: [duyulamaz] ANDI PENG: Üzgünüm? HEDEF KİTLE: [duyulamaz]. ANDI PENG: Oh, div sadece bir bölümüdür ah, ben, o bana denilen belli bir bölümü Orta İçinde başvuruyorum Benim CSS etiketi, ardından tabanı ile benim diğer bölümü. Yani sana söylüyor hepsi bu. O tutmak güzel çünkü sırayla düzgün şeyler böylece programın nasıl çalıştırılacağını tam olarak bilmiyor. Ve ben bu kopyalayıp yapıştırın düşünüyorum hem de benim gerçek tarayıcıya. Bu ince olmalıdır. Evet. Yay. Için herkesin istediği Yani eğer sadece Bir web sayfası oluşturmayı deneyin, biz başka iki ya da üç dakika sürer. Ben sadece emin olmak istiyorum Herkesin sunucuları çalıştıran ve herkes var bunu nasıl fikir. Siz isterseniz bilgisayarlarınızı çıkar. Hala çalışmıyor? İZLEYİCİ: Ben sadece [duyulamaz] değilim. ANDI PENG: Belki de 50 güncelleyin deneyin. Evet. HEDEF KİTLE: [duyulamaz]. ANDI PENG: Evet. Yani yeni bir yol başlamak IDE web sunucusu adildir apache50 uzay başlangıç ​​uzay nokta yok. Ben sadece emin olmak istedim Herkesin sunucuları Tamam çalışıyor. Burada, terminalde: İZLEYİCİ? ANDI PENG: Evet. HEDEF KİTLE: [duyulamaz]. ANDI PENG: Apache. Aslında, senin olduğunu düşünüyorum zaten bir şey çalışıyor. Evet, aslında sensin Farklı bir sunucu çalışan. Evet, sen iyisin. Sürece bu çalışıyor, sen iyisin. HEDEF KİTLE: Tamam. ANDI PENG: iki tane var yolları sunucuları çalıştırmak için. Yani sürece yollarından biri olarak çalışıyor, her şey yolunda. Biz başka bir dakika götüreceğiz sadece tür kadar bitirmek için ne olursa olsun son rötuşları web sayfası siz yapmak istedim. Herkes arada çalışıyor mu? Herkesin sunucuları Senin için yanında çalışan? Biz anlamaya edeceğiz. Ve HTML adlı oldukça basit. Yani hepimiz iyi olduğunu düşünüyorum. Evet. Geri geleceğim. HEDEF KİTLE: [duyulamaz]. ANDI PENG: Tamam. HEDEF KİTLE: Yani bu sadece kadar yük başladı. ANDI PENG: Endişeye gerek yok. HTML Yani, kaynak kodu var olduğunu bölümünden sonra online olacak. Ayrıca, David bir bütün var demet çevrimiçi hem de. Bunun üzerine sadece tür bakışta için HTML sayfaları nasıl yazılacağı bakın. Oldukça kolay. Her şey sen güzel, bilmiyorum çok adil Google ve iyisin. Ben sadece emin olmak istiyorum senin sunucuları yayınlanıyor. HEDEF KİTLE: genellikle bu yapar mı? ANDI PENG: Bana hiç olmadı. Ben bile kış uykusuna bilmiyordum. HEDEF KİTLE: [duyulamaz]. ANDI PENG: Bence Herkez benim daha önce hibernated olmamıştı. Ve ben nedenini bilmiyorum. Bu garip. HEDEF KİTLE: [duyulamaz]. ANDI PENG: senin kış uykusuna mı? HEDEF KİTLE: [duyulamaz]. ANDI PENG: Evet. HEDEF KİTLE: Tamam. Böylece bir kez açık. ANDI PENG: Tamam. Biz bazı sunucu ile uğraşmak gerekir bölümünden sonra sorunlar. Ince olmalıdır. , Sen emin olmak rağmen Ayrılmadan önce onları giderilmiş. Çünkü eğer sunucunuzun çalışmıyorsa, o zaman sen yapmak mümkün olacak değil pset PSET herhangi bir parçası gibi. Yani emin olmak o çalışıyor. Güzel. Pekala. Elveda yavru deyin. Aradığım uzun zaman geçirdim Bu yavru kedi resmi koymak. Yani, neyse. HEDEF KİTLE: [duyulamaz]. ANDI PENG: Üzgünüm? HEDEF KİTLE: [duyulamaz]. ANDI PENG: Ben Web sitesinde düşünüyorum. Spec gibi mi? HEDEF KİTLE: [duyulamaz]. Ben spec sadece olduğunu düşünüyorum Haftanın yedi online. Hatta, bu pset6 denir düşünüyorum Biz haftada yedi konum olsa hangi Bir bit bilgi işlem olduğunu. İZLEYİCİ: Ama ben demek eğer eğer at-- bakmak istiyorum Bizim sürümünü çıkarmak istiyorum Bizim sever web sitesi? Yani böyle server.c pset, değil mi? Bu bakmak istiyorsanız, gibi denetler nasıl? ANDI PENG: Ah, aslında çok pset, hepimiz yapıyoruz Burada, burada implementing-- olduğunu Bu kısaca üzerine gidersiniz. Sadece kazanılmış o herkes için çok bölümüne, siz şans vardır. Çok az malzeme vardır Aslında bugün kapsayacak. Ben sadece önümüzdeki geçirmek için gidiyorum Pset yardımı üzerinde gidiş 20 dakika. Bazı yararlı var çünkü hayatınızı yardımcı olacak fonksiyonları. Ve umarım, biz olacağız burada 20 dakika gibi içinde. TAMAM. Yani pset7 yanlıştır. Biz hafta konum olsa Yedi, aslında pset6 var. Bunu değiştirmek gerekir. Sonuçta biz pset6 içinde yapıyoruz bir web sunucusu yaratıyor. Bu süper korkutucu geliyor. Ve özellikle de ilişkin Senin kim zaten dağıtım koduna baktım kod bir sürü kod çok şey var. Ama tamamen Tamam. Işin cesur Çünkü aslında yaratma parçası Sunucu bizim tarafımızdan yapılır. Tüm gerçekten sorulur Bu pset yapmak sadece bazı dize işleme yapmak olduğunu dosya G / Ç. Aslında var oldukça basit gibi. Yani ilk ki- indirdiğinizde kim Burada aslında zaten indirdiği pset ve bir göz alınan? Pekala. Evet. Kod 500 hatları gibi var sizin gibi olmak için gidiyoruz, ne oluyor? Ve bu tamamen iyi. Eğer yürüyüş throughs izlemek emin olun. David ve- Çünkü bilmiyorum. Ben Zamyla kıyafetleri, bunu sanmıyorum. Ama diğer bazı düşünüyorum walk-through oldukça vardır açısından faydalı Sadece bildirerek ne kod iç gidiyor. Ve o tamamen Tamam. Çünkü sen dört işlevi uygulamak istedi aslında var Sıfır Gerçek sunucu ile yapmak. Yapmaları gereken tek şey sadece bir Farklı dizeleri ayrıştırma, dizeleri aracılığıyla arıyor, emin şeyler yapıyor olmak için ne zannediyorsunuz yapıyor. Bu yönde Yani, orada Bazı çok kullanışlı fonksiyonlar, Özellikle dize için manipülasyon, hepimiz gerektiğini Ben diye düşündüm o gidip Sizin için çok yararlı olabilir pset başlamadan önce öğrenmek için. Ve hepsi içerdiği konum senin string.h kütüphane içinde. Muhtemelen daha kullanışlı var Burada yer değil fonksiyonlar, Ben de bunları kullanmak asla çünkü ya belki de sadece onlar var bilmiyordum. Student.h aracılığıyla bakışta çekinmeyin. Bir sürü var oluyor çünkü fonksiyonları çok faydalı olduğu bulunmuştur. Yani altı Ben en çok kullanan benim Ben bu geçmiş hafta yapıyordu pset strtok, strchr, strrcher vardı strstr, strcasecmp ve strcpy. Ve böylece son iki görünebilir Çoğunuz için oldukça tanıdık. Str durumda öyle hepsi karşılaştırmak, karşılaştırmak dizeleri eşitlik için onları kontrol etmek, durum dahil. Ve strcpy sadece kopya Bir tampon içine tek dize. Ve böylece bu iki çok görünmeli Bu noktada adamlar tanıdık. Onlara çok kullanılan çünkü, Özellikle son psets için. Belki ama ilk dört Eğer şimdiye kadar görmedim. Ama sadece içlerinden yürümek için gidiyorum. Onlar sizin can yapmak için gidiyoruz çünkü Gerçekten kolay for-- değil gerçekten kolay, Bu yaklaşan pset ama çok daha kolay. TAMAM. * Strtok Yani Char, bu işlevi Bu işlev için tanım içeren Dize, h kitaplığı içinde. Eğer char bir girdi * verilirse Sadece bir dizedir dize, veya sabit bir karakter * deliminator, kısa Ayraç, Tüm daha büyük kırılıyor yapıyor dediğimiz bir dizi içine dize belirli bir değere ayrılmış belirteçleri. Yani bir anlamda, ben olsaydım vermek Bu bir dize, section.7.php. Ben geçmek olsaydı Yani olurdu Bu benim str, benim char * str, Benim deliminator nokta ise, bütün bu yapacağını dize ile arama motorudur. Ve ilk kez bir nokta görür, Sadece işaretçi dönecekti Bulunan son belirteç Bu daha önce dizesinde. Yani burada gider. Ve bu sadece bana 7.php verecekti. Ve ben aramak olsaydı bir kez daha işlev, bana sadece .php verecekti. Ve böylece tüm bu işlev yapıyor Daha büyük bir dize kesiliyor bağlı küçük dizeleri Aradığınız ne. Böylece örneğin, senin bakmak up fonksiyonu Eğer bakmak istiyorum ne olur bazı karakterler ortaya veya noktalar olur veya uzantıları olur, Bu fonksiyon oldukça yararlı olacaktır. Evet. Endişe etme. Bu, tüm göre-- evet, ne var ne yok olacak? HEDEF KİTLE: İlk satırda Yani Bu örneği kullanarak olsaydı, biz içine ne eklemek istiyorsunuz? ANDI PENG: Evet. Sen sadece bir arama ediyorum strtok dize virgül Ayraç. Ve dize section.7.php eşittir. Ve sonra Ayraç konum Sadece nokta eşit olabilir. HEDEF KİTLE: Tamam. ANDI PENG: Evet. Aynen böyle. Tüm bu fonksiyonlar oldukça vardır biz onları aracılığıyla benzer giderken. Onlar sadece biraz farklı şeyler. Ama hepsi için gidiyoruz hayatınızı çok kolaylaştıracak. İkinci fonksiyon, bu kişinin böyle Süper önemli süper süper,, tutun Şeyin olduğunu. Üzgünüz. Ilk kez strchr arama occurrence-- aslında, evet. Strchr fonksiyonu olduğunu Ben kesinlikle biraz üzerinde çıktı. Peki ne dedi görmezden İlk fonksiyonu için. Aslında strchr denir. Peki burada ne oldu olsaydı olduğunu Bir karakter c bir dize verildi Sadece verecekti Bunu her ne. Evet. Yani str olarak bunu düşünüyorum char olarak bir dize ve chr olduğunu. Yani yapmaya çalışıyoruz tüm arama olduğunu bir karakter, bir dize içinde olduğu. Ve böylece ilk arar karakter oluşumu string str c. HEDEF KİTLE: [duyulamaz]. ANDI PENG: Evet. Ve o zaman bulamadık eğer o, o NULL dönmek için gidiyor. Yani gidiyor bir şey çok olması pset yaparken sizin için yararlı , derseniz, bir aradılar Bir Word için bir .docx gibi uzantısı belge veya bir PDF belgesi için .pdf, ne tür bakmak için kullanabilirsiniz ne olursa olsun sonradan olan Her zaman doğru bir nokta görüyor musunuz? Ve çok hoş çok, eğer fonksiyonu sayesinde bu çalıştırın NULL dönerse, Sonra bildiğiniz öyle Bu demektir nokta bulamadık açıkça geçerli bir dosya uzantısı değil. Ya da dönerse bir şey, o zaman bilirsin ne olursa olsun 's dönmek için gidiyor Aslında uzatma sonra. Vardı o sizin kim yüzden arama yoluyla aramaya başladılar ve bu fonksiyon kıyafetleri, ayrıştırmak gidiş süper yararlı olabilmesi için. Yani biz aslında gidiyoruz Bu kullanarak göstermek için. Neden siz yazarken denemiyoruz bir fonksiyon bool cümle char * s bu s ise sadece true döndürür cümle ve aksi takdirde false. Yani gidiyoruz, ipucu Muhtemelen strchr kullanımı. Ya da sadece arama Belirli bir karakter dizesi. Ve böylece bir cümlede, ne bir cümle ayıran olmayan bir cümleden, hangi özel karakter? HEDEF KİTLE: Bir uzay. ANDI PENG: Bir uzay, değil mi? Ve ne yani biz muhtemelen giderek yok Burada bu fonksiyon içinde yapmak istiyor? HEDEF KİTLE: [duyulamaz]. ANDI PENG: Biz strchr istediğiniz gidiyoruz alan görünüm için dize. O zaman bir şey, dönerse Çünkü biz bu cümle olması gerektiğini biliyoruz. Yani biz gerekir anlamına gelir Bu dize bir boşluk var. Boşluk varsa, o zaman biz biliyoruz Bu, hey, bir dize değil sanırım. Muhtemelen sadece gerçekten uzun bir kelime. Yani adamlar sana bir çift vereceğim dakika bu fonksiyonu yazmak. Evet. HEDEF KİTLE: aldın kullanıcı bu dize? ANDI PENG: Evet. Yani bu sadece bir işlevdir. Yani ana işlevi içinde hayal Zaten burada gidelim have--. TAMAM. Yani bu programı nerede yazdım Benim ana işlevi nerede var Ben sadece iki dizeleri yarattık. İlki, Merhaba benim adım açıkça Andi--, bir cümledir. Benim ikinci sadece biridir Andi açıkça mahkum değil. Ve bu yüzden bu iki koşuyorum Bu fonksiyon sayesinde dizeleri. Sizlerin soğuk cümle yazmak istiyorum. Ve ben, bu değerleri depolamak ediyorum ve sonra sadece onları yazdırarak. Böylece kullanıcı olduğunu düşünüyorsanız bir dize geçmek gidiyor. Ve sonra aslında gidiyoruz Bir cümle ya da değilse anlamaya ve buna bağlı olarak doğru veya yanlış döndürür. Siz bir vermek istiyorsanız başparmak yukarıya ya da kafaları yukarı, kafa selam, olan herkes başlamaya hazır olduğunu Bu, iyi olurdu. Belki gibi 30 saniye daha? Pekala. Deneyebilirsiniz Bakalım Bu işlevi yazma. Ben sadece gidiyorum coding-- Yani sözde tür şimdi bu hakkın yürümek. Oldukça fazla, biz biliyoruz Biz kullanmanız gerekir işlevi. Biz o işlevi çağırmak için gidiyoruz Bizim dize ve bir boşluk arayışı. Bir şey dönerse, o zaman biz gerekir açıkça, bu bir cümle olduğunu biliyoruz. Çünkü boşluk var. Sonra gerçek dönmek için gidiyoruz. Else, biz return false gidiyoruz. Herkes vermek istiyor mu Beni kod ilk satırı biz aslında gidiyoruz Bu yazmak için kullanılır? Aslında zor bulunuyor kod satırı da. Evet. HEDEF KİTLE: Eğer strtok s- ANDI PENG: Sadece strchr. HEDEF KİTLE: [SESLER interposing] Uzay null eşit değildir. ANDI PENG: Serin. Kesinlikle doğru. Herkes ilk satırı anlıyor musun? Biz, strstr diyeceğiz arama bir fonksiyonu olan string s alan char. Onu bulursa Ve, o gidiyor Nerede olduğunu bir işaretçi döndürür. , Bunu bulamazsa NULL dönmek için gidiyor. O başka bir şey dönerse yüzden NULL, o zaman biz bir boşluk bulundu biliyorum. bu mantıklı mı? Güzel. Pekala. Bildiğimiz, eğer Yani bulduğunu bir uzay, ne yapmak istiyorsun? HEDEF KİTLE: true döndürür. ANDI PENG: Evet. Gerçek döndürür. Ve sonra, birisi istediğiniz Benim için fonksiyonu bitirmek? Evet. Else, sadece böyle. Ve bu derleme deneyin. Aynen. Siz gördüğünüz gibi Yani çıkışları, C Boolean hatırlıyorum Her zaman ikili olarak ifade edilmiştir. 1 doğrudur. 0 yanlıştır. Biz bu çalıştırmak olsaydı dize biri fonksiyon hangi Merhaba, benim adım Andi-- olduğunu Sonuç açıkça bir sentence-- doğrudur 1'e çıktısı. Sadece ikinci bir tane, bir kelime, dışarı basılmış sonuç 0, hangi yanlıştır. Nasıl herkes net bir tür Bu fonksiyon yazılmıştır? Evet. HEDEF KİTLE: biz de yerine, yapabilir hayır, 0 eşittir eşit değildir, böylece eşit mi? ANDI PENG: Hayır Strchr bir fonksiyonu olduğu için. Ben bu geri gidiyorum. Peki Dönüş türü ne Bizim strchr fonksiyonunun? HEDEF KİTLE: Tamam, evet. Ya da NULL. ANDI PENG: Evet. O bana söyler bir karakter * ne olursa olsun Bu işlev, geri dönmek için gidiyor Bir gösterici olacak. Ya işaretçi olacak onu buldum nereye işaret ederek, ya da geri gidiyor Bir işaretçi NULL. Her iki durumda, gidiyor bir şey için bir işaretçi dönmek için. Ve böylece eşit olsaydı Bu, 0, eşittir Eğer bir derleme hatası almak için gidiyoruz. Bir işaretçi geri gidiyor çünkü. Ve denemek için gidiyoruz tamsayı için bir işaretçi karşılaştırın. Ve bilgisayar değil böyle gidiyor. Evet, kesinlikle. Güzel. Herkes iyi? Ve ikincisi, biz gidiyoruz Bir işlev olarak adlandırılır strstr bitti. Bu ise Endişeye gerek yok fonksiyonları size kafa karıştırıcıdır. Beni karıştırıyorsun. Bunun gibi, siz görmüş olabilir, hepsi hemen hemen aynı ses. Sadece zaman kafan karıştı, string.h kütüphane yukarı çekin. Ve siz sıralayabilirsiniz hangisinin en geçtiği. Yani strstr, yaptığı tüm aramalar ise Bütün diğer bir dize için bir dize. Peki strchr sadece aramalar Tek bir karakter için, Bütün bir dize için strstr arar. Yani ben bakmak istedim, bilmiyorum biliyorum, Merhaba, benim adım Andi olduğunu. Ve benim en iyi arkadaşımın adı da Andi olduğunu. Ben bu bakmak isteseydi Andi tüm kelime için cümle, Benim iğne olurdu ne arıyorsanız. Ve ne olursa olsun samanlık ise Eğer bunun için arıyoruz. Yani sen arıyoruz Bir cümle içinde belirli bir kelime, o kelime senin iğne olacak. Ve sonra cümle kendisi senin samanlık olacak. Ve böylece sadece arar İlk olay Dize iğne dize samanlıkta. Bu gösterici döner ilk geçtiği için. Bu durumda unutmayın dışında, bu kadar Tüm dize ilk geçtiği Eğer aradığınız o için değil, sadece bir karakter. Ve böylece bu neredeyse fonksiyonu olarak aynı şey Biz sadece sadece birlikte yaptım biraz daha özgüllük. Aradığınız Çünkü Sadece bir karakterin daha fazla. Ve kullanımı tam olarak aynı olduğunu biz sadece yaptığımız biri olarak. Bu Tamam herkes? TAMAM. Biz gitmek için gidiyoruz Sonuncusu bitmedi, hangi strrchr olduğunu strstr veya strchr işlevine ile karıştırılmamalıdır. strrchr orada fazladan r vardır. Eğer yazarken dikkatli olun. Kendinizi dahil bulabilirsiniz Bir r dahil ekstra r ya da değil, ve sonra işlevi işe yaramayacak var olduğunu. Ve şaşkın olacaksın. Eğer yazım konum dikkatli olun Tüm bu fonksiyonlar doğru. Yani strrchr kesindir strchr işlevine aynı şey bu ilk değil arar hariç belirli bir karakter oluşumu, ama oldukça son olay. Ve böylece, bu anlamda, neredeyse aynı olduğunu. Ama onun yerine hareket Bir dizesinde iletmek Eğer hareket için gidiyoruz geriye bir dize. Tam aynı şey, sen sadece Farklı bir sırayla arama. Ve böylece bu süper olabilir senin arama için süper kullanışlı işlevi, birinci senin pset fonksiyon. Biz yazmak için gerekli en sayalım void uzatma fonksiyonu içinde biz Sabit char * dosya adını geçirir, Sadece bir dize, bir dosya adı, o isim ve baskılar sürüyor o dosyanın uzantısı dışında. I olan, örneğin, bu yüzden pset7.zip dizesinde geçmesi, Sadece yazdırmak için gidiyor .zip olan uzantısı. Ve bunun için çalışacak uzatma herhangi bir tür, PDF için Word veya .pdf için .docx dosya veya bir HTML dosyası için .html. Hemen hemen bir mal bunu yapabilir işlevi. Aslında gidiyorum IDE üzerinden geçiş. Orada load-- değil gidiyoruz. Yani burada yaptık hepsi Bir char *, birinci dize yarattı, pset7.zip denir. Ben yakınlaştırmak için gidiyorum. İkinci dize yarattık finalpaper.docx denir. Ve bana bir işlev yazarken o denilen sadece yazdırmak için gidiyor Dosya adı uzantıları. Belki düşünmek için bir kaç dakikanızı ayırın Bunu yapmak için gidiyoruz nasıl. Biraz daha zorlu sonuncusu daha, ancak kullanımı neredeyse tam olarak aynı. Evet. Yani bir işlevi çağrılır uzantı yazmak Bu, bir dosyanın sana ismini verirsen, Ben vermek olsaydı ben pset7.zip-- Sadece .zip yazdırmak istiyorum. Ben verirsen, finalpaper.docx gibi Sadece .docx çıktısını, ne olursa olsun dosyanın sadece uzantısı. Bu aslında sadece iki kod satırlarını alır. Yani eğer görmeye çalışalım o yapmak belki olabilir. Aslında, sadece bir kod satırı alır. Ancak iki satır muhtemelen daha standarttır. Ne işlevi biz muhtemelen aramak istediğiniz olacak? HEDEF KİTLE: strrchr. ANDI PENG: strrchr, doğru. Biz arıyoruz, çünkü Sağ sol kanattan. Sizi vermedim Böyle bir örnek, ama ben böyle bir örnek verirsem www.apple.com ve ben sadece istedim .com, bu bir örnek olurdu son örneğini aramak istediğiniz Dönemin ilk, doğru değil? Çağrı strchr olsaydı, onu Sana apple.com verdik. Eğer strrchr denilen, bunu Size com verirdi. Ve böylece hangi dikkatli olun benim örnekte ways--, muhtemelen olabilir olabilir Sadece strchr kullanarak yazılı, çünkü tek bir nokta var. Ama diğer durumlarda, bu durumda olmayabilir. Ve böylece her zaman tasarım deneyin evet kodunuzu iyi, bu yüzden ki--? HEDEF KİTLE: Yani örnek sadece dedi, Eğer strrchr ne zaman it would Eğer .com ya da sadece gel ver? ANDI PENG: Bu size .com verecekti. HEDEF KİTLE: Tamam. ANDI PENG: Evet. O buldum yere işaret ediyor. Evet. 30 saniye, belki? Evet. Herkes iyi ya da belki biraz daha fazla zaman? Elleri göster? Başkanları göster? Güzel. Herkes bana ilk vermek istiyorum Bu program için kod satırı? HEDEF KİTLE: [duyulamaz]. ANDI'nin PENG: her şeyden önce, en belki de bu yıkmak edelim. Yani strrchr dönüş türü nedir? Hadi geri dönelim. strrchr, dönüş türü nedir? HEDEF KİTLE: Char * ANDI PENG: Bir char *, değil mi? Hangi muhtemelen gidiyoruz demektir tür başka char * oluşturmak istediğiniz Mağazanın bu kadar zaman Doğru, dönen? Aramadan Çünkü eğer Fonksiyon strrchr, size bir işaretçi vermek için gidiyor her yerde o son dönemi bulduk, sağ? Ama istediğiniz gidiyoruz Doğru, o bir yerlerde saklamak? Ve böylece nasıl kod do Bizim programa bu? HEDEF KİTLE: Sen yapmak char * [duyulamaz]. ANDI PENG: Evet. HEDEF KİTLE: [duyulamaz]. ANDI PENG: strrchr. Evet. Oh, orada bir r kaçırdı. HEDEF KİTLE: Dosya Adı [duyulamaz]. Bu ne? Ah, sadece s oluyor. ANDI PENG: Oh, sadece s oluyor. Evet, üzgünüm. Benim hatam. Örnekler eşleşmedi. HEDEF KİTLE: Ve sonra nokta. ANDI PENG: Evet. Ne zaman siz dikkatli olun Burada mudur, bana yakınlaştırmak izin ver. Oraya gidiyoruz. Ne zaman siz dikkatli olun , özellikle yazarak Sadece bir char yapıyoruz. Bu yanlışlıkla sadece gerçekten çok kolay yerine tek daha çift tırnak yok. Bu işe yaramaz. Sizin derleyici şikayet gidiyor. Ve işlevi Sadece çalıştırmak için gitmiyorum. Ve böylece dikkatli olun Bir şeyler yapıyoruz karakter ile o tek tırnak olduğunu. Ve böylece bu hat yapar Kod herkese mantıklı? Biz bir char * işaretçi yaratıyoruz. Strrchr getirileri nedeniyle tipi işaretçi şey. Ve böylece biz strchr diyeceğiz s, hangi dize, dosya Biz geçen olduğunuzu, adlandırın. Ve son arıyoruz bir süre örneği Sadece tek tırnak tek tırnak nokta. Evet. HEDEF KİTLE: ne zaman biz çift tırnak kullanmak ve biz tek tırnak kullandığınızda musunuz? ANDI PENG: Evet. Yani çift tırnak vardır Her zaman sizi kullanılır Sadece bir fazla bir dizi vardır. Eğer strstr yapıyoruz Yani, hangisi olduğunu size dize için bir dize arama çift ​​tırnak içinde geçerdi. Ama her zaman bu sadece tek bir karakter, Tek tırnak yapmak istiyorum. Bu akılda tutmak için iyi bir şey. Yani şimdi bizim sahip olduğunu pointer, biz ne yapacağız? Ben sizi soruyorum Doğru, bunu yazdırmak? Yani [duyulamaz], istediğiniz Bana kod satırını verir? İZLEYİCİ: printf-- ANDI PENG: Evet. HEDEF KİTLE: --Sen bir yer tutucu gerekir. ANDI PENG: Evet. HEDEF KİTLE: yer tutucu yazdırın. Ne yer bilmiyorum Tutucu o noktaya ama. TAMAM. Şimdi o o geçelim. HEDEF KİTLE: Ve sonra comma-- ANDI PENG: Pointer, değil mi? HEDEF KİTLE: Pointer, evet. ANDI PENG: Yani bir tür hileli bir soru, işaretçiler ve dizeleri ile bir ilgisi yoktur biz tür zaten konuşmuştuk. Yer tutucu Ne tür biz bunu Bir char * için bir işaretçi için ihtiyacınız var? HEDEF KİTLE: [duyulamaz]. ANDI PENG: Evet. Bu adamlar olduğunu düşünüyorum daha kolay. HEDEF KİTLE: String? ANDI PENG: Tam, sadece bir dize var. Dizeleri hatırlıyorum çünkü Gerçekten yok. Bir char * kesindir bir dizge olarak aynı şey. Ve bu yüzden gerçekten bu s ne olduğunu boyunca kullanılmış olmalıdır. TAMAM. Biz bu çalıştırmayı deneyebilirsiniz eğer görelim. En make uzantısını yapalım. Güzel. Ben nasıl geçtiğini Siz bakın psset7.zip ve finalpaper.docx, ve sadece yazdırır .zip ve .docx? Mantıklı? Tamam Yani senin göz up düşünüyorum sen senin pset fonksiyonu sordu olacak Dize, belli bir sonu var Belirli bir hata kodu vermek zorunda. Ve böylece bu oldukça korkunç olacaktır. Eğer anlamaya Çünkü eğer uzantısı ne, Eğer o karşılaştırabilirsiniz o kadar uyuyorsa uzatma görmek için belirli bir uzantıya sahip. Ve sonra dönebilirsiniz Doğru bir hata mesajı,? Evet. HEDEF KİTLE: Yani yok 1 ya da bir şey eklemek zorunda? Işaretçi Şeyin gidecek ANDI PENG: Hayır. HEDEF KİTLE: ondan sonra --point. ANDI PENG: Evet. Tam olarak işaret nerede olay oldu. Yani burada, örneğin, biz konum dönemi için arıyor. Yani geri gidiyor döneme bir işaretçi. Ve sonra yazdırmak için gidiyor dışarı dönemde başlayan. Yani 1 eklemek gerekmez. Rağmen, eğer, tamamen gayet Eğer sadece tür için, hiç emin değilseniz kendinizi o dışarı test edin. Örnek bir program oluşturun. Kendinizi onu test ve bu baskı nerede görüyoruz. Bu da bunu yapmak için kötü bir yol değil. Güzel. Ve bu hemen hemen hepsi var Ben bugün sizin için vardı. Bugün pset bir sürü yaptım. Peki ne zaman şüphe gibi Ben her zaman bakmak, dedi Bu pset için string.h kütüphanesi. Bir sürü var oluyor Oradaki işlevi yararlı olabilir. Bazı yararlı olmayabilir. Ben gerçekten bilmiyorum. Içinden Wade, var Bunların bir sürü. strstr, strchr, strrchr vardır süper, süper yararlı, hem de strcpys ve strcasecmps biz zaten kullanmış olduğunuz. Bu ile karıştırmasını sadece çok var eşit iseniz dizeleri, belirlenmesi dizeleri üzerinden bir şeyler almak ve doğru dosyaları açmak için güçlü olmak. Bu dosya I / O bir çok şey. pset gerçekten o kadar kötü değil. Bir almaya gidiyoruz o indirmek bakmak, ve kod bir sürü bakın. Endişeye gerek yok, kodu aslında yazmak hiç de fena değil. Herkes ile ilgili sorunlar varsa, onların Sunucu, bölümünden sonra beni görmeye gel. Için bir kez daha bir kez Özür Cadılar Bayramı için şeker getiriyor. Benimle yanlış olduğunu bilmiyorum. Ama biz çift olacak şeker dahaki sefere. Senin pset ve iyi şanslar bu hafta. Aynen.