[Powered by Google Translate] [Həftə 7]
[David J. Malan - Harvard Universiteti]
[Bu CS50 edir. - CS50.TV]
Bütün hüquqlar. Geri gəlmisiniz. Bu CS50, bu həftə 7 başlanğıc.
Az elanlar Bir neçə:
Pset5, tərəqqi indi, və ya tezliklə olmalıdır
və kifayət qədər vicdanla, mənə deyək, bu, daha çətin arasında olur deyil
zamanı problem dəstləri, bu artıq mənim qeyd edək
Bu həftə çox heç gözləmək yoxdur ki, çərşənbə gecə, demək
və ya Cümə axşamı gecə daxil dalış
Bu mütləq bir maraqlı pset edir. Biz bunu əyləncə hesab edirəm.
Həqiqətən tam doğru almaq və sonra qondarma Big Board meydan bilər,
Siz əlbəttə heyəti bəzi fikir uyğun bir imkan olacaq
və sinif yoldaşları bəzi.
Nə Böyük heyəti deyil, bir dəfə sizin yazım checker iş var
Bir komanda çalışan sonra cs50.net getmək üçün bilərsiniz
sırf məbləği zaman və RAM miqdarı və daha sonra üstünlük və
Sizin həyata istifadə edən kurs ana səhifə burada sərgilənəcək.
Siz burada bu insanlar bütün dəstə kadr kimi listelenen görəcəksiniz
həftə sonu bəri heyət hər bir digər geçmek üçün cəhd əyləncə olacağını düşündüm.
Belə ki, burada məqsəd heyəti geçmek deyil bilirik.
Hətta sayı 13 yalnız buradayam.
Purely katılmayı, lakin görmək imkanı yalnız nə qədər az RAM
və necə bir neçə CPU saniyə sizin sinif yoldaşları ilə qarşı-qarşıya bəzi istifadə edə bilərsiniz.
>> Mən ki, Kevin Michael Schmid, qəbul edəcəyik
Hal-hazırda TFS biri kimi sayı 1 mövqeyi,
bu mümkün deyil zəng bir təzahürüdür
o loading üçün demək olar ki 0 RAM və demək olar ki 0 seconds istifadə ki verilir.
Beləliklə, biz Kevin offline qayğı lazımdır. [Gülüş]
Kevin burada test qoyulması edir ki, müəyyən bacarıqları var.
Biz istədiyiniz fikir şeylərdən biri də CS50x tərəqqi bir həftə artıq
və uşaqlar kimi çox o tələbə kimi bu təcrübə bir hissəsidir.
Biz Not layihə təqdim eyni idi, onların pset0 hissəsi kimi onlara xahiş etdik
onlara maraq - bir oyun, sənət interaktiv parça, bir animasiya, və ya kimi -
1 - onlar dünyaya merhaba deyən və kim istəyirsinizsə 2 dəqiqəlik video, onlar həqiqətən var.
Mən sizə bu günə qədər təqdim olunmuş video bir neçə bölüşmək istədiyiniz fikir
bizim üçün, heyət ən azı, həqiqətən maraqlı olmuşdur, çünki
və bütün dünyada bu insanlar görmək üçün ruhlandırıcı - bütün dünyada ölkələr -
İnternet bir kompüter kursu, hər şeyi də tuning,
onlar öz tədqiqatları davam etdirmək istəyirik Çünki, istər
onlar, yeni bir istiqamətdə öz karyeralarını etmək istəyirəm
Onlar öz bilik boşluqları doldurmaq istəyirəm
uşaqlar bəlkə burada olmuşdur ki, eyni səbəblərdən bəzi belə.
>> Mən burada belə bir tələbə verir. Siz həcmi yalnız bir az qaldırmaq bilər.
Burada tələbə 1-dəqiqə təqdim biridir.
Salam, dünya. Mən Malaga, İspaniya burada sənaye engineering tələbə edirəm.
Mən kompüter sevgi, çünki mən həqiqətən bu online kurs heyecan edirəm
və mən həqiqətən mən bunu araşdırmaq almaq üçün təşəkkür edirik.
Mən sizə uşaqlar hər şeyi eyni öyrənə bilərsiniz ki,
ancaq mən Malaga am Harvard olan ki, necə zəhmli edir?
Bəli, mən Fernando am, və bu CS50 edir. Uşaqlar baxın.
[Gülüş] xüsusən kimi digər clip, bu centlmen ingilis qədər güclü deyil ki, tapa bilərsiniz.
O maşın tərcümə idi kimi görünür, tərcümələr özlərini bir az qüsurlu belə
lakin bu günə qədər həm bizim favoritlərindən biri idi.
[♪ ♪]
Salam, dünya. [Yapon danışan]
[Mənim English çox etibarsız çünki Yapon salamlamaq lazımdır.]
[I Gifu şəhəri, Yaponiya sizə mesajı çatdırılıb.]
[I göründüyü kimi, 20 il ərzində ilk dəfə tələbə ola bilər.]
[Mənə bu imkan və edX verən Harvard Universiteti çox minnətdaram.]
[Golf bir gitara və mənim sevimli şey çalışır.] [Gülüş]
[♪ ♪]
[Niyə Mən cs50x iştirak etmək üçün çalışır düşünürsünüz.]
[Harvard Universiteti, mənim arzu edir.]
[Xüsusilə uzaq olması Yaponiya yaşayan am əgər.]
[Mən belə edX zaman. Mövcudluğu dərhal xəbərdar cəhd istəyirdilər]
[Siz I. öyrənmək yaş bağlı olmayan belə düşünmürəm]
[Cs50 mənim arzu edir. My name Kazu və bu cs50 edir.]
[♪ ♪] [alqış və təzahürat]
Bizim bir sevimli kimsə burada bu təqdim edib.
[♪ ♪] [Malan] Google bu meme ilə tanış edirsinizsə.
>> Və sonra nəhayət, bəlkə sitayişə layiq alın ki olunub oldu ki, digər bir neçə.
[Tələbələri] Aww! >> [Malan] Biz qulaq asmaq lazımdır. Bu qısa, belə yaxından qulaq asmaq.
[Qadın natiq] adınız nədir? >> Louie.
[Qadın natiq] Bu nədir? >> [Giggles] CS50. [Gülüş]
[Malan] O, baxmayaraq ki, edir iki idi.
Burada biz, son gedin.
My name Louie və bu CS50 edir.
[Gülüş] Bu sonra CS50x edir.
Evdə birlikdə aşağıdakı isə sizin bütün təşəkkür edirik
İndiyədək kim iştirak edilmişdir.
Bu gün biz, data strukturlarının bizim müzakirə bağlamaq
ən fundamental bəzi ən azı,
və sonra HTML və web proqramlaşdırma haqqında söhbət davam edir.
Həqiqətən, biz yeddi həftə proqramlaşdırma əsasları baxaraq son sərf etdik -
alqoritmlər data strukturları və kimi -
və indiyədək yaşamış bilər C,
mütləq dillərinin ən əlçatan deyil
olan bu fikir bir həyata keçirmək.
Belə ki, bu həftə və gələcək həftə başlayan və sonra aşağıdakı
nəhayət, biz adətən kifayət qədər aşağı səviyyədə dil kimi tanınan C, keçid edə bilərsiniz
şeyi ali onlara PHP, JavaScript arasında səviyyəsi, və kimi,
Biz son bir neçə həftə ərzində öyrəndim ki, eyni dərsləri yararlana göreceksiniz
amma siz tapa bilərsiniz ki, seriallarda və hash masalar kimi şeylər elan və axtarış və çeşidlənməsi
dillər özləri biz istifadə edəcəyik, çünki bu qədər asan ola
daha güclü olacaq.
Lakin ilk, ağacları bir proqram.
Bu məlumat kompres lazımdır bu gün çox ümumi edir.
Nə kontekstində digital informasiya bir növ kompres istəyirsiniz?
>> Bəli. >> [Tələbə] Web üzərində göndərmək üçün lazım olduqda.
Bəli, Web üzərində bir şey göndərmək istədiyiniz zaman.
Bir böyük fayl yüklemek istəyirsinizsə, bu, digər sonunda kimsə əgər ideal deyil
zip format və ya kimi bir şey istifadə edərək fayl sıxılmış edib
yoxsa ötürülən bilər az bit gönderiyorsanız ki.
Belə ki, necə məlumat kompres edirsiniz?
Default tələb az bit istifadə edərək, bütün sonunda aşağı.
Həftə 0 və 1 geri edirəm, çünki Lakin bu maraqlı şey növ
Biz ASCII və ikili danışıb və biz xüsusən haqqında ASCII söhbət zaman
əlifbası məktubları təmsil 8 bit istifadə
məktub A 65 ilə təmsil olunur ki, bir sıra 97 edir kiçik
və lakin siz 7 və ya 8 bit istifadə edirsinizsə, 65 və ya 97 təmsil edir.
Amma tutmaq ingilis əlifbası ilə bəzi məktublar var ki
başqaları kimi məşhur deyil.
Z, bütün populyar deyil Q ki, bütün populyar deyil, A və E məşhur super edir.
Və hələ bu məktubları bütün, default tərəfindən dünya yalnız 8 bit eyni sayda istifadə edir.
Belə ki, asan əgər əvəzinə hər hərf üçün 8 bit istifadə, olmazdı
hətta ən seyrek, Q və Z kimi istifadə
nə biz A və E və S və ən məşhur məktublar üçün az bit istifadə əgər
və daha az populyar məktublar üçün daha bit istifadə
ümumi halda edək optimize olan fikir,
ən baş neler optimize üçün çalışan kompüter bir mövzu deyil
və, evet, baş verə bilər ki, hər şeyi bir az daha çox vaxt, bir az daha çox yer sərf
lakin mütləq tez-tez kimi.
Belə nin nümunə götürək.
>> Biz kifayət qədər səmərəli məlumat kodlar istəyirəm ki, düşünək.
Siz, Morze əlifbası haqqında bir az bir şey bilmədən yetişdi bilər
və Oran, siz faktiki kodu bilmirdim var
ancaq nöqtə və tire ən azı bu seriyası ki, xatırlayıram bilər.
Məsələn, E - Bu kifayət qədər səmərəli coding, və bildiriş ən məşhur məktub -
beeps ən qısa edir.
Morze əlifbası bütün beep-beep-beep-beep-beep-beep və ton təşkil edir
ya vaxtında və ya uzun müddət qısa dövrlər üçün.
Kimi dot ilə qeydi E, super qısa beep, yalnız beep deyil ki, E. təmsil edəcək
Əksinə, T beep kimi, artıq beep olmaq [səs uzadır] ki,
və T. təmsil edəcək
Siz Z baxsaq, əksinə, çünki Lakin, hələ də olduqca qısa
Z bildirmək siz beep, beep [artıq səs], beep, beep [qısa səs] getmək olardı.
Az ümumi, çünki Belə ki, artıq var.
Amma burada gotcha Morze əlifbası bir az flawed ki,
ki, dərhal decodable deyil.
Məsələn, tel beep bəzi sonunda eşitmək güman [qısa] beep [uzun].
Mən nə mesaj alıram? A nöqtə və tire. Nə təmsil edir?
[Tələbə] A. >> [Malan] Bəlkə.
Bu da T. izlədi E ola bilər
Başqa sözlə, Morze əlifbası, bu künc halda optimize bu prinsipi, içki olsa
o, dərhal decodability özünü borc deyil.
Yəni bu nöqtə və tire eşitmə və ya qəbul edən insan
fasilələri məktubları arasında olduğu birtəhər, anlamaq üçün var
bu fasilələri olduğu siz bilmirsinizsə, siz ET ya əksinə üçün çaşdırmaq bilər çünki.
>> Beləliklə, siz nə ola bilər? Morze əlifbası Siz yalnız məktubları hər arasında duraklattıktan bilər.
Amma duraklatarak şeyi sürətləndirmək bütün point counter növüdür.
Bu pis vəziyyət yox idi biz bir kod ilə gəlib nə əvəzinə əgər
Ü E A Məsələn, bir prefiks deyil -
başqa sözlə, biz nümunələri məşhur məktublar üçün hələ qısa əmin olun bilər
az populyar məktublar üçün uzun, lakin mümkün qarışıqlıq var?
Huffman adı ilə bir adam il əvvəl Huffman coding adlanan bu sxem icad
əslində söhbət zaman bir az sərf etdiyiniz data strukturlarının bir içki
Bu ötən həftə xüsusi ağac, ikili ağac ki, -
2 uşaq çox olan ikili ağac mənası.
Bu bəlkə, bəlkə bir sağ uşaq sol uşaq var ki, bu.
Belə ki, kimsə bir mesaj göndərmək istəyir ki, yalnız müzakirə naminə güman
Bu kimi görünür. Bu tam cəfəngiyatdır, lakin bu kimi ibarət olub, BS, Cs, Ds və Es.
Və faktiki olaraq bütün qədər saymaq olarsa, BS, Cs, Ds və Es
və sonra, məktublar ümumi sayı bölmək
burada bu kiçik chart məktubları 45%-Es var 20% kimi olduğunu deyir
10% pansiyonlar, və s.
Belə ki, başqa sözlə, güman ki, orada sitat string
göndərmək istədiyiniz ki, bəzi göndərmək kifayətdir.
Bu, biz mümkün kimi bir neçə hərflərini kimi istifadə edə bilərsiniz, yalnız belə cəfəngiyyat olmaq olur
amma həqiqətən E ən populyar olaraq qalır halda, var
və B və C olan ən populyar, əlifba bu 5 məktublar ən azı.
Belə ki, necə ki, biz bir kodlama ilə gələn barədə gedə bilər
ikili encoding, bu məktubları hər 0s və 1s bir model
E qısa bir model və bəlkə B və C qədər uzun nümunələri var ki, belə bir şəkildə,
yenə fikir az bit, çox vaxt istifadə etmək istədiyiniz olan
və yalnız bir dəfə isə daha çox bit.
Huffman coding ki, ağacların meşə yarada bilərsiniz.
Bir hekayə line növ ağac və həmçinin onları tikinti prosesi daxildir ki, burada var.
Nin başlasın.
>> Mən sizə belə 5 ağacları, danışmaq, bu meşə ilə başlamaq ki, təklif
olan hər bir sevimli axmaq ağac.
Ağac kimi bir daire ilə burada təmsil yalnız bir node ibarətdir.
Belə ki, bu şeylər hər bir C struct ola bilər
və daxili C struct tezliyi sayı təmsil float ola bilər
və sonra bəlkə məktubu təmsil karakter.
Belə ki, indi, yüksək səviyyədə hər hansı bir köhnə C struct bu qovşaqlarının edirəm amma.
Bu 5 ağacları, yalnız bir node olan hər bir meşə var.
Huffman təklif biz o ağac birləşdirməyə başlayacaq ki, nə
qədər böyük ağac içinə kiçik tezlikli sayılır ki,
yeni kök node ilə birləşdirən.
Belə ki, burada məktubları arasında, rahatlığı üçün mən soldan sağa onlara sıralanır etdik ki, görürsünüz
ki, ciddi zəruri və bildiriş deyil, baxmayaraq ki, kiçik qovşaqlarının
Hal-hazırda 10% və 10% təşkil edir.
Belə Huffman yeni bir ağac o 2 kiçik qovşaqlarının daxil təklif
sonra yeni bir valideyn node tətbiqi və həmin valideyn sol uşaq və hüququ uşaq vermək
B özbaşına sol və C özbaşına hüququ yerləşir.
Və sonra Huffman daha edək indi yalnız sol uşaq hesab edirəm ki, təklif
Bu ağacların biri həmişə 0 təmsil olunur
və sağ uşaq həmişə sayı 1 ilə təmsil olunur.
>> Siz uzun sizin ardıcıl etdiyiniz kimi onlara çevirmek, əgər məsələ deyil.
Belə ki, indi biz bu meşə dörd ağacları var.
Mən demək sol dörd indi çünki ağac -
və bu qədər bu şəkildə artır mənada ki, bir ağac deyil
indi 0,2 iki uşaq valideyn növ olduğu bir ailə ağac kimi daha çox -
ki, valideyn, biz 0,2 tərtib etdik ki, görürsünüz.
Biz iki uşaq tezliyi sayar əlavə və yeni node ümumi məbləği təqdim etdik.
Belə ki, indi biz bu prosesi təkrar.
Iki kiçik qovşaqlarının tap və sonra yeni bir ağac onları qoşulmaq
və sonra da prosesi təkrar.
Hal-hazırda biz bir neçə namizəd, 20%, 15%, digər 20%-i var.
Bu halda, biz tie qırmaq lazımdır. Biz bunu özbaşına edə bilərsiniz.
Biz yalnız ardıcıl etməlidir.
Bu halda, mən özbaşına, sol bir ilə gedəcəyəm
və indi, mənə 35% adlanan yeni müəssisənin vermək 20% və 15% daxil
kimin doğru uşaq 1 və indi meşə yalnız üç ağac var 0, onun sol uşaq.
Siz bəlkə bu hara getdiyini görürük.
Biz bu bir neçə dəfə təkrar edin, biz yalnız bir böyük ağac var olacaq
onun kənarları 0s və 1s ilə etiketlenmiş bütün.
Yenə bunu edək.
35% ki, ağacın kökü. 20% və 45%, belə ki, biz 35% və 20% daxil olacaq.
İndi biz burada bu ağac var. Biz birlikdə o əlavə biz 55% var.
İndi meşə yalnız iki ağac var.
Bu bir son vaxt və ümid edirəm riyazi bütün tezliklərin qədər əlavə edin
onlar ildən biz onları hesablanır, çünki 100% əlavə almaq-gedin.
İndi biz bir ağac var.
Belə ki, bu Huffman coding ağac.
Bu cür şifahi orada almaq üçün bir müddət etdi, amma reallıq loop üçün ilə
və ya bir recursive funksiyası ilə, siz olduqca sürətli bu şey qurmaq bilər.
Belə ki, indi biz yeni bir node var və bu daxili qovşaqlarının bütün malloc'd edilmişdir
ehtimalla, yol boyunca.
Biz bir yol var Belə ki, indi bu ağac üst biz 100% var, amma artıq qeyd
Bu yeni böyük ulu grandparent olan böyük ulu nəvəsi bütün
yarpaqları bütün altındakı bütün yolu.
>> Biz indi nə olacaq, məktubda E təmsil etmək məqsədilə təklif edir
biz sadəcə 1 saylı istifadə edəcək. Niyə?
Biz E kimi tanınan yarpaq aşağı yekun kök Bu ağac axır əgər Çünki,
biz bir kənarında, sağ kənar edin və sağ 1 əlbəttə etiketli ki.
Belə Huffman üçün burada dolayısı ikili E kodlama yalnız 1 olmalıdır idi.
Və olduqca lənətləmək səmərəli deyil. Həqiqətən daha kiçik almaq bilməz.
Əksinə, A siz məntiqi edin əgər, təmsil edir
əvəzinə bit nə model tərəfindən? 01.
Belə ki, bir olmaq üçün, biz kök başlamaq və biz tərk getmək, sonra doğru getmək
hansı bir 0 təqib və sonra 1 deməkdir.
Beləliklə, biz bir model 0 və 1 ilə məktub təmsil edir.
İndi biz artıq dərhal decodability bir xüsusiyyəti qeyd
biz Morse kodu olmadığını.
Bu nümunələri də olduqca qısa baxmayaraq - E 1 bit, A 2 bit deyil -
onlar bir və ya bir başqa səhv ola bilməz ki, görürsünüz
Bir 1 görmək əgər siz görürsünüzsə, E olmaq lazımdır, çünki bir 0 sonra açıq-aydın bir A. olmaq üçün var 1
Eynilə, D var? 001.
C nədir? 0001.
Və B nədir? 0000.
Və yenə biz qayğı məktublar bütün yarpaqları var, çünki
və onlardan heç biri, kök yarpaq yolu middlemen növü var
2 məktub "müxtəlif kodlamalar conflating heç bir risk var
Bu bit nümunələri bütün deterministic çünki.
0000 həmişə B. olacaq
Siz digər bir məktub çaşdırmaq bilər ki, haradasa arasında heç bir node var.
Belə ki, burada dolayısı nə var?
>> Ən məşhur məktubu - bu halda E - qısa encoding əldə edib
A, növbəti qısa encoding əldə edib
biz ən məşhur almaq-getmək idi cür bilirdi olan və B, C,
10% tezlik hər, onlar uzun encoding kazanılmış.
Və nə bu artıq o deməkdir ki, siz sıxılmış olan bir mesaj göndərmək istəyirsinizsə,
İnternet üzərində və ya bir e-poçt və ya analoji olaraq,
çox standart ASCII istifadə daha bir Huffman kodlu mesaj göndərə bilərsiniz
Siz məktubu E göndərmək istəyirsinizsə vasitəsi, yalnız bir bit göndərin.
Bir A göndərmək istəyirsinizsə, siz 2 bit, 01, əvəzinə 8 bit göndərilməsi göndərmək
s başqa 8 bit və sonra başqa 8 bit izlədi.
Amma gotcha burada var.
Bu yalnız Alice olan Bob göndərilməsi başlamaq sonra bu ağac tikintisi və kifayət qədər deyil
qısa bit model, ASCII dən simli,
Alice də nə Bob məlumatlandırmaq, çünki
Bob onun sıxılmış oxumaq etmək üçün gedir?
[Işitilemez tələbə cavab] >> ki, nə var?
[Işitilemez tələbə cavab] ağac nə >>.
Və ya daha dəqiq desək, bu kodlamalar nə,
Bu hekayə ərzində biz bir nöqtəsində bir qərar zəng etmişdir xüsusilə ildən.
Biz 2 müxtəlif 20% qovşaqlarının arasında özbaşına seçin ki saxla?
Belə ki, Bob, alıcı, yalnız onun öz ağac yenidən qurulması bilər ki, işin deyil
bəlkə o heç belə az fərqli Alice olan ağac yaratmaq olacaq.
Bundan əlavə, Bob hətta orijinal mesajı nə deyil
Alice ona göndərir tək şey, əlbəttə, sıxılmış mesaj çünki.
>> Bu kimi sıxılma ilə catch ki, Belə ki, bəli, Alice bit bütün çox saxlaya bilərsiniz
s A E 1 və 01 göndərilməsi və,
lakin o da birdən məktubları və bit arasında nə Bob məlumat var
biz ASCII kullanmıyorsanız onlar aydın yalnız ASCII artıq etibar bilməz.
Belə ki, o da elə ona ağac göndərə bilərsiniz -
kimi ikili məlumatın və ya bir şey kimi saxlamaq, onu yazmaq -
və ya yalnız ona mappings göstərir ki, bir az istifadə etmək hesabatı, bir Excel fayl göndərə bilərsiniz.
Belə ki, sıxılma səmərəliliyini həqiqətən tutur ki göndərilməsi etdiyiniz mesajlar
, orta ən azı, olduqca böyük
bir super qısa mesaj göndərmək istəyirsinizsə, çünki
Siz yalnız mesaj BAD göndərmək istəyirsinizsə, ki, biz burada oxumaq olar bir söz olur
B-A-D, yəqin ki, az bit istifadə etmək olacaq,
siz də ağac nə Bob məlumat üçün ancaq tutmaq deyil
və ya bu kodlamalar nə, yəqin ki, qənaət bütün üstün olacaq
ilə başlamaq sıxılmış şeylər olan.
Belə ki, həqiqətən cəhd əgər kompressor ki, işin ola bilər
hətta zip və ya fayl formatları kimi bir şey ilə tanış ola bilər -
olduqca kiçik faylları, hətta boş fayllar -
bəzən bu faylları böyük və kiçik deyil əldə edə bilər.
Lakin real ki, yalnız kiçik fayl ölçüləri üçün baş
belə bir gigabyte fayl 2 gigabaytlık olmaq etmək niyyətində deyil;
biz həqiqətən bayt və ya bir neçə kilobayttan söhbət edirik.
>> Zip kimi bir sıra proqramları ki, həyata keçirilməsi üçün kifayət qədər ağıllı olur
"Bu kompressor daha bit sərf olacaq."
"Mənə bütün sizin üçün kompressor narahat edək."
Belə ki, bu mətn format kompressor sonra yalnız bir yoludur.
Biz C. bu kimi bir şey həyata bilər
Məsələn, burada biz bu ağac bir node təmsil bilər necə
biz rəmzi üçün char, tezlik üçün üzən dəyəri var
və biz digər strukturları, 2 göstəricilər ilə gördüm kimi
NULL ola bilər və ya olan sol uşaq, sağa 1-1,
lakin əgər, bir sol uşaq və sağ uşaq aiddir.
Belə ki, bu sonra Huffman coding və bu məlumat kompressor haqqında bilərsiniz ki, bir yol
və bu, əlbəttə həyata keçirilməsi üçün ən asan biri
keçən həftə data strukturları, demək, bu çərçivədə,
daha inkişaf etmiş alqoritmlər mövcud olsa
Sizin data daha təcrübəli mutasiyalar edə bilərsiniz.
Hər ağac, ikili ağacları, və ya mətn sıxılma sonra suallar?
[Tələbə] bəzi qeyri [işitilemez] split əgər kimi 01 dilinə, var,
sonra 011 birmənalı sağ olardı?
[Işitilemez] >> Yaxşı sual. Qeyri.
Burada bu şəkil istinad mənə yekunlaşdırmaq edək.
Çünki kompressor olunur simvol nümayəndələri,
Bu alqoritm müəyyənləşdirilməsinin həmişə yarpaqları qalır
siz təsadüfən bir çox məktublar prefiks üçün bit eyni model istifadə heç vaxt lazımdır.
Belə ki, başqa sözlə, siz narahat edirik ki, yaranan bir qeyri kimi səslənir
qovuşdurmağımız 001 B başlanğıc və ya C və ya kimi bir şey başlanğıc ola bilər.
Amma bu əlifbasının hərflərinin bütün biz kodlama edirik ki bildiriş işi ola bilməz
yarpaqları var.
>> Bu qeyri-müəyyənlik yalnız Morse kodu olduğu kimi, yarana bilər
əgər, məsələn, C kök B. yolu boyunca bir yerdə idi
[Tələbə] Sağ. Belə ki, bu halda, A 2 yarpaqları var deyirlər. >> A var De - daha söyləyin.
[Tələbə] A 2 yarpaq, F və G, və sonra G var De - >> OK. Amma bu mümkün deyil.
A özü bu məktubları çünki yarpaqları F və G ola bilməz F və G
özləri B sol və ya E. hüququna haradasa yarpağı olacaq
Belə ki, definition, onlar yarpaqları olmalıdır.
Əks halda, tam doğru danışırsınızsa, biz Morse kodu üzləşdiyi problem həll etdik.
Sual Yaxşı. Digər suallar? Bütün hüquqlar.
Biz enerji yaşadığınız həyata bit Bu anlayış, biz, həqiqətən, istifadə etdiyiniz bütün boyunca çevrilir
bu 0s və 1s manipulyasiya gələndə.
Biz erkən problem dəstdən birini bu barədə soruşdu:
yəni, siz böyük kiçik və ya əksinə çevrilməsi barədə necə getmək yoxdur?
Və ya, daha konkret, bu ilk psets biri xahiş
neçə bit həqiqətən bir və ya əksinə kiçik bir dəyişdirmək üçün çevirmek var?
Burada 65 və 97 ikili kimi baxmaq nə sürətli bir öyüd-nəsihət var.
Və hətta əgər bu suala növ, sizin yaddaş solğun edib
siz neçə bit Çevrilmiş lazımdır ki, burada yenə bilərsiniz
kapital dəyişdirmək üçün bir kiçik üçün? Yalnız bir.
>> Onlar yalnız bir yeri, sol üçüncü bit fərqlənir.
A 010, az var Halbuki bir 011 var.
Belə ki, elə-belə, biz yalnız ki, bit çevirmek lazımdır
və biz sonra kapitallaşdırmaq və ya məktublar kiçik bilər.
Biz həqiqətən istifadə edərək keçmiş bu etdik şərait əgər
və məktub kapital A və kapital Z arasında əgər yoxlanılması,
sonra A kimi çıxış - a + 26 və ya kimi bir şey.
Siz yəqin ki, əlifbası hərflərinin üçün hesab dəyişiklik etdi.
Amma biz yalnız bir bit nə flip bilər?
Necə 01000001 və 01100001 kimi belə bit, 8 bit bir bayt yetmeyecek alaraq haqqında getmək olar?
Siz bit bu nümunələri olsaydı, biz onlara yalnız bir dəyişən barədə necə getmək olar?
Burada sarı bit bu digər model təqdim ne?
Mən dəyişmək istədiyiniz bir bit istisna olmaqla bütün sarı sim 0s etsəniz
və sonra mən bir bitwise operator kimi tanınan yeni operator təqdim -
bu fərdi bit fəaliyyət mənada ki bitwise,
deyil, bütün bayt və ya dörd bayt bütün bir dəfə haqqında.
Sarı var Bu şaquli bar biz kapital nümayəndəliyinin A nə alsaq ki,
və bit sarı ardıcıllıqla bitwise ya bu?
Başqa sözlə, Not-ci Boolean ifadələr bizim müzakirə geri edirəm və sonra C.
>> Bir Boolean Doing ya doğru o deməkdir ki, ya ilk şey doğru olmalıdır
və ya, ikinci şey doğru və ya onların hər ikisi doğru olmalıdır
və sonra yaranan çıxış əsl özü edir.
Burada Bu halda, biz 0 ed nə 0 alsaq almaq "və ya" yoxdur? Saxta və ya yalan?
Bu hələ yalan var ki, kiçik bir gözlənildiyi kimi qalır belə.
Nə əvəzinə biz 1 və ya 0 əgər?
Bu indi 1 qalır, lakin burada baş haqqında nə görürsünüz.
Biz kapital A başlamaq və biz burada yapýyorsun kimi biz onun fərdi bit davam "və ya" varsa,
0 və ya sarı bir nə aşağı burada bizə verir? Bu, bizim 1 verir.
Əslində, biz kiçik və böyük versiyası həqiqətən nə bilmirdim güman edirlər.
Bu nə getmək edək. Mənə burada bu geri hərəkət edək.
Yenə bunu edək. 0 və ya 0 mənə 0 verir.
1 və ya 0 mənə 1 verir.
0 və ya 1 mənə 1 verir.
0 və ya 0 mənə 0 verir. Növbəti bir 0 ki, növbəti bir 0 ki, növbəti bir 0-dir.
1 və ya 0 mənə 1 verir.
Biz əvvəlcədən bilmirdim, hətta əgər, belə bir idi kiçik nə
sadəcə ing ilə "və ya" A biz sarı burada təqdim etdiyiniz bit bu model ilə
Əgər bit Flipping tərəfindən kapital kiçik bilər.
Biz ifadə həftə öncə bu istifadə: bir az Flipping.
Həqiqətən, necə program etməliyəm?
Siz ümumiyyətlə maskası bit bir ardıcıllıqla, deyirlər nə istifadə
ki, bu halda yalnız, belə ki, burada bu rəqəm kimi baxmaq olur
və sonra "və ya" birlikdə bu yeni C operator istifadə edərək,
deyil | |, bir istifadə | və çünki nə həqiqətən burada bu cavab almaq olar?
Bu 1s yeri, 2s yer, 8, 4s 16, 32s edir.
Belə ki, bir paytaxt məktubu əgər A və tam 32 bitwise ya bu çıxır
olan tam 32, çünki siz bit kimi baxdığımız zaman, bu kimi görünür
siz həqiqətən istədiyiniz qədər flip bilər deməkdir.
Və eyni - və biz yalnız bir anda kodu baxmaq lazımdır -
biz digər istiqamətdə getmək istəyirəm güman edirlər.
>> Siz kiçik bir kapital necə getmək yoxdur? Hansı bit dəyişdirmək lazımdır?
Eyni biri.
Biz 0, 1 ki, üçüncü bit dəyişdirmək istəyirik.
Və biz bunu edə bilər?
Necə bir az kapatabilirim? Bit nə model ilə biz bir az söndürmək olar?
Biz maskası invert növ əgər?
Əvvəl isə, biz bütün sarı maska ​​0s etdi
bir az istisna olmaqla, biz yandırmaq istədi
nə bu dəfə əgər, biz söndürmək istədiyiniz bit istisna olmaqla bütün maska ​​1s etmək
və sonra nə operator istifadə?
Biz "və" şey varsa? Bir nəzər salaq.
İndi bu flip varsa, daha bütün 1s ki, maska ​​yaratmaq güman
mən bağlamaq istəyirəm ki, bir az başqa
və sonra daha çox "və ya" Burada sarı aşağı nömrələri ilə üst qədər ağ nömrələri,
nə birlikdə mən əvəzinə "və" onlara əgər? Bu bitwise zəng edir.
Məntiqi, bir Boolean eyni şey var və.
Bu 0 & 1 0 mənə verir. Belə ki, yalan və doğru yalan.
True və əsl həqiqətdir.
Və burada sehrli: True və yalan artıq yalan deyil, belə ki, az söndürüldükdə etdik.
İndi hekayə qalan qədər sadə deyil.
Maskası qalan 1s Çünki, bu ədəd ağ nə əhəmiyyətli deyil.
Siz "və" doğru bir şey, onun dəyəri dəyişmək fikrində deyilik zaman.
Doğru deyil, bu, doğru olacaq. Bu yalan idi, bu, yalan olacaq.
>> Əgər doğru idi ki, bir şey almaq Lakin sehrli olur
saxta və sonra "və" bu.
Bu bit off dönüş təsiri var.
Orada belə bir az sirli.
Həqiqətən daha sirli ola bilər, hansı nin əslində bir kodu baxaq,
amma nin tolower burada bir nəzər salaq.
Mən tolower baxsaq, A, bir kiçik kapital gedən
biz bu proqramı həyata bilər necə edək.
Burada əsas var, və hər hansı bir komanda-line arguments qəbul deyil.
Mən istifadəçi kimi daxil yazın edir ki, məktub üçün xarakter c elan edirəm
Loop yalnız istifadəçi mütləq A mənə kapital verir ki, əmin zamanı sonra tanış do istifadə
və ya B və ya C. .. Z, onlar mənə A və Z. arasında bir şey vermək
İndi burada nə edirəm?
Ben "və ya" 0x20 ilə ing bu, ancaq faktiki olaraq eyni -
və biz bir anda bu qayıda bilərsiniz - 32.
Belə ki, yenə, 32 burada bit bu nümunəsidir. Niyə biz bu bilirik?
Just həftə 0 geri edirəm.
Bu 1s yeri, 2s yeri, 4s, 8, 16, 32s yerdir.
Belə ki, bu sarı sayı 32 olur.
Mən, sözün sayı 32, burada bitwise "və ya" bu char kimi bir məktub ala bilər
və nə geri alıram? Ki, char ən kiçik versiyası.
Bir an əvvəl, baxmayaraq ki, mən müxtəlif baza notation bu bildirdi.
Bu nə təmsil idi? >> [Tələbə] hexadecimal.
[Malan] Bu hexadecimal təmsil olur.
Biz bütün çox hexadecimal danışdı deyil
lakin bu kimi hallarda həqiqətən rahat edir.
>> Daha mürəkkəb görünür və olsa da, 20 və 32, kimi görünür baxmayaraq
bu hexadecimal həqiqətən super rahat notation edir çıxır ki,
hexadecimal ildə hər 0x sonra rəqəmli çünki - və bu heç bir şey deməkdir;
burada bir hexadecimal sayı gəlir deyir ki, yalnız insan konvensiya deyil -
Bu rəqəm hər, 2 və sonra 0, özlərini təmsil edə bilər
tam 4 bit ilə.
Bunu Belə ki, mənə burada bir mətn redaktoru açmaq qoy - qəribə AutoComplete -
biz burada bir az mətn redaktoru əgər, sayı 0x20 4 bits burada deməkdir, burada başqa 4 bit var.
Ilk rightmost 4 bits nə edək.
4 bit ilə təmsil zaman 0 nədir? Super asan. Məhz bütün 0s.
Belə 0s 4 bit.
Necə 2 təmsil edirsiniz? Biz bunu ildən isə idi, lakin 0100-nin oldu.
Bu 1s yer Belə ki, bu 2s yer, və sonra başqa yerlərdə nə əhəmiyyətli deyil.
Başqa sözlə, hexadecimal, siz, 0x20 deyə bilər
lakin sonra 2-nə haqqında düşünmək və necə ikili təmsil olunduğu halda,
nə 0 və necə ikili təmsil olunur,
bu suallara cavab olaraq, bu və bu var.
Belə ki, 0x20, 8 bit bu model təmsil olur
hansı dəqiq biz istəyirdik ki, maska ​​edir.
Belə ki, bu an üçün yalnız bir intellektual həyata edir
amma reallıq kodu bu kimi sabitləri yazmaq üçün adətən daha çox ümumi edir
hexadecimal sonra proqramçı bilərsiniz nisbətən asanlıqla, çünki
bəzi kağız və qələm tələb olsa da, bit ki, model nə anlamaq
yalnız kodu adətən 0s və 1s ifadə bilməz.
Siz 00010 getmək və s bilməz.
>> Siz decimal ya hexadecimal və ya octal və ya digər notlari seçin var.
Çoxu sadəcə hər rəqəmli 4 bits təmsil hexadecimal seçin edirlər
və bu sürətli math edə bilərsiniz.
Mən demək olar ki, eyni olan toupper, mənim əl dalğa bilərsiniz demək olar ki, eyni görünür.
Toupper deyil və ya operator deyil, bu oğlan və df istifadə olur.
Df nə təmsil edir? df? Hər kəs? >> [Tələbə] 255.
255? Deyil 255. Bu ff olardı.
Biz bir az həyata kimi bu tərk edəcəyik.
Siz 0-dan getmək Lakin əgər, sonra 1, 2, 3, 4, 5, 6, 7, 8, 9 və nə 9 sonra gəlir?
Biz decimal rəqəm həyata cür istəyirik, ancaq hexadecimal nə 9 sonra gəlir?
[Tələbə] a. >> Beləliklə a, b, c, d.
Siz d həqiqətən təmsil bit nə model həyata rəqəm bilər.
Biz riyaziyyat nə varsa, biz sizə geri alınması başa maskası bu eyni olduğunu görəcəksiniz.
Bu f, bütün 1s və bu d edir. Belə df ki, maska ​​təmsil edir. Bütün hüquqlar.
Və nəhayət, hər şeyi səs super, super texniki, etmək deyil
lakin biz bunu bir proqram yazmaq istədim güman edirlər.
Mənə davam və binary.c adlı fayl bir proqram olan ikili, etmək edək.
İndi mənə ikili run və mənə qeyri-mənfi tam verək.
Gəlin 0 asan və növü başlayın.
Bu indi onun ikili təmsil bir tam həyata yazdıran bir proqramdır.
Mən bu oyunu oynamaq və yalnız 1 yazın Belə ki, mən 1-32-bit təmsil lazımdır.
I 2 ilə yenidən bu halda, mən almaq lazımdır.
Mən 7 varsa, mən s sonunda bir neçə 1s almaq və olmalıdır.
Çünki bitwise əməliyyatları ilə bu qeyd həyata çevirir
həqiqətən, həmçinin başqa bir şey edə bilərsiniz.
Siz dinamik Bu maska ​​yarada bilərsiniz.
Bitwise əməliyyatları olan bu bir final Məsələn bir göz atın.
Burada kodu ilk hissəsi, bir çox istifadəçi təklif
və siz məni bir qeyri-mənfi tam verir ki, təkid.
Belə ki, köhnə məktəb heyəti növ var.
Amma burada maraqlı cür ki, bir şey.
>> Mən ikili bir sıra çap edə bilərəm?
Mən ilk nə nə təkrarlamaq?
Ən azı cihaz da, adətən, bir int həcmi nedir? >> [Tələbə] 4.
4 deyil. Belə ki, 4 * 8 32 - 1 31.
Mən 31-dən saymaq başlayan alıram Beləliklə, əgər ki, olur, təmsil
yalnız konseptual, buraya bu oğlan olan 31 bit və ya yüksək üçün bit,
Bu bit 0 olacaq halbuki.
Beləliklə, bu bit 01 bit deyil ... 31.
Belə ki, bu kodu nə edir?
Bu sirli görünür baxmayaraq, yalnız aşağı 31 0 iterating olunur, loop üçün bildirək. Vəssalam.
Belə ki, maraqlı hissəsi indi burada bu 5 xətt olmalıdır.
Bu istiqamətdə bir dəyişən adlı maska ​​bəyan edirəm edək ki,
Bu sarı ədəd bizim hekayə uyğun olmalıdır.
Və bu nə edir?
Bu, əvvəl çox güman görmədim sonra başqa bitwise operatorudur.
Bu sol shift operator var.
Bu operator bu yoxdur.
Burada 1 nömrəli, və əgər i shift, sol shift sol
Əgər fərdi 1 etdiyini təsiri var ki, nə düşünürsünüz?
Sanki artıq dəyişir.
Sayı 1 sol var nə və 31-i başlatılıyor ilə başlamaq əgər
ki, nə olacaq? Bu sayı 1 almaq və burada 31 yerlərdən keçmək olacaq.
Və bunun arxasında açıq-aydın başqa heç bir rəqəm var, çünki
o ismarıcları 0s ilə əvəz olunacaq.
Belə ki, əlbəttə, bu kimi görünür hansı sayı 1, həyata başlamaq lazımdır -
və mənə mərkəzində burada artıq cəlb edək.
Siz sol şeyi keçmək kimi, sonra bu oğlan mahiyyətcə bu yolla gedir.
Amma tezliklə Bunu kimi, 0 doldurulması olur
Siz onu ikinci dəfə keçmək varsa, bu yol gedir və başqa 0 doldurulması olur
>> Siz daha keçmək və sonra başqa bir 0 doldurulması olur
Siz 1 << i 31 yerlərdən bu şey Belə ki, bir maska ​​əldə sona
ki, uzun bir 1 olduğu leftmost bir 32 karakterden
qalan bütün bir 0 yerləşirsiniz.
Və bu kimi sola bir sıra keçid, bir kənara kimi, çıxır
də təsadüfən, bəzən rahat,
ki sayı nə təsiri var? >> [Tələbə] bu katlama.
Bu katlama çünki sütun hər bir - Bu 1s yeri, 2s yeri, 4s yeri,
8 yer, 16 yer - Siz sol getmək kimi bütün misli they're.
Daha doğrusu, siz 1s keçmək zaman sayını dəyəri misli qədər olacaq.
Siz rəqəm maraqlı dəyişikliklər etdiyini başa bilər
2 səlahiyyətləri bu şəkildə hər şey üzərində keçid ilə.
Belə ki, necə bu iş?
Bu, sonra mənə istədiyiniz dəqiq yerdə 1 olmaqla bütün 0s ki, maska ​​verir
toupper.c oğurlanmış olan və bu ifadə,
sadəcə istifadəçi yazdığınız n sayı almaq deyib,
"Və" bu maska ​​ilə, və nə üçün gedir?
Siz maskalı yeri bir 1 olduqda 1 almaq olacaq,
ya yoxdur, əgər 0 almaq olacaq.
Və bütün bu proqram səmərəli, bir loop var deyil
və o, burada bir 1, sonra buraya, sonra burada 1 ilə 1 maska ​​yaradır
və burada istifadəçi daxil a 1 bit var demək üçün bu bitwise VƏ oyun istifadə edir?
>> Burada istifadəçinin daxil 1 bit var? Və əgər, sözün 0 çap başqa, 1 çap.
Yerine 8-32 bit edirik səbəbdən yalnız, çünki ints Bu edirik
lakin biz sonra təqdim etdik bu bitwise VƏ, bu bitwise OR, deyil
tez-tez olduqca faydalı olmayan və bu sol shift operator,
onlar ola bilər həyata lakin bu çevrilir.
Əslində, əgər Booleans bir sıra kimi bir şey təmsil idi
yalnız doğru və ya yalan təmsil etmək üçün, və ya track saxlamaq istəyirdi Güman
300 tələbə tam bir oda, mövcud
siz 300 bools almaq, belə ki, bool tipli həcmi 300 bir sıra bəyan edə bilər
kimsə burada yalan başqa varsa, və siz doğru hər bir bilərsiniz.
Niyə data structure ki, təmsil səmərəsiz edir?
Nə data strukturu, 300 bools bir sıra layihə haqqında pis?
Başlıq altında, əslində, bir bool nədir?
Bu da tanış ola bilər bir şeydir.
Heç bir bool var həyata çevirir.
Biz növ yaradılmış saxla ki cs50.h fayl ilə,
olan özü standart bool daxildir.
Bu bool gəldikdə C, baxmayaraq ki, mehriban lal edir.
Bu, hər bool təmsil 8 bit istifadə edir, hansı tamamilə israfçı edir
Aydındır ki, siz bir bool təmsil neçə bit lazımdır çünki? Yalnız 1.
Belə ki, həyata çevirir ki, indi bitwise operatorları ilə qabiliyyəti varsa,
hətta bir byte hətta char fərdi bit manipulyasiya,
Əgər axmaq bir şey təmsil tələb olunan yaddaş azaltmaq bilər həyata çevrilir
8 amil tərəfindən daxil olmayıb səpkili data strukturu kimi.
Əvəzində doğru və ya yalan təmsil səkkiz bit istifadə, siz sözün bir istifadə edə bilər
sinfində hər səkkiz tələbələr üçün bir byte istifadə
və aşağı səviyyəli tövsiyələr bu cür istifadə edərək 0 1 fərdi bit-dən toggling.
Bu, həqiqətən, enerji son qoydu. Bitwise əməliyyatları haqqında suallarınız var mı?
>> Bəli. >> [Tələbə] orada xüsusi və ya operator mı?
Bəli. Bu kimi görünür ki, xüsusi və ya operator, ^, kök simvol var
yalnız ilk şey və ya ikinci şey 1 olmaq çıxış üçün 1 ola bilər deməkdir.
Siz həmçinin 1 və ya əksinə bir 0 ters imkan verəcək ~, var da bir deyil.
Və biz gördüm bir əks olan sağ shift operator, >> də var.
Bütün hüquqlar. Üzrə yüksək səviyyədə artıq şeylər edək.
Biz mətn söhbət tərəfindən açılmış və o, kompressor
və bit az nömrələri ilə mətn təmsil olunması;
biz indi bitwise səviyyədə şeyi manipulyasiya başlaya bilərsiniz haqqında bir az danışdıq.
Gəlin indi təmsil qədər 10,000 fut geri zoom
qrafik kimi daha mürəkkəb şeyi.
Burada Almaniya bir bayrağı vardır, biz burada Fransa biri var.
Məsələn gifs - Bu Bildiyiniz fayl formatları təmsil bilər.
Heç. Gif başa ki, Web bir şəkil gördüm varsa,
Bu qrafik mübadiləsi format edir.
Növ burada Bu iki bayraqları sıxılma özlərini borc
bəlkə Aşkar nə səbəbdən? >> [Işitilemez tələbə cavab]
Təkrar bir çox hüququ var?
Almaniya bayrağı göndərmək üçün, ekranda bir şəkil kimi bu hesab
Sizin Not gün geri.
Siz bir şəkil tərtib ki, fərdi piksel və ya nöqtələr olduğunu xatırlayıram bilər.
>> Qara nöqtələr və qara nöqtələr başqa bütün cərgə bütün sıra var.
Biz, həqiqətən də zoomed əgər biz görürük ki, qara nöqtələr sıralarında bir dəstə var
biz Photoshop Rob üzünü üzrə zoomed zaman çox istəyirəm.
Biz daha dərin və şəkil daxil dərin və daha dərin var, kimi
siz bu halda onun göz ibarətdir ki, meydanların bütün bu pixelation görən başladı.
Burada eyni iş. Biz kifayət qədər bit zoomed, siz fərdi nöqtələr görmək olardı.
Bəli, bu bit bir tullantıların növüdür.
Bayrağı üçüncü bir qara və bayrağı üçüncü sarı və s varsa,
niyə biz elə bu bayraq kompres edə bilər?
Model bir az fərqli olsa və hətta Fransa bayrağı sıxılmış bilər.
Bu, GIF formatında bir itkisiz sıxılma formatı edir çıxır
siz burada alman bayrağı kimi bir şəkil bilər deməkdir
siz keyfiyyət ödün olmadan onun bit bir çox tullamaq olar.
Bu, JPEGs kimi bir şey fərqli edir
Bizi ən çox yəqin ki, daha çox tanış olan.
Facebook şəkillər və Flickr photos və kimi
onlar qəbul etdiyiniz zaman demək olar ki, həmişə JPEGs kimi qeyd olunur,
kayıplı - - Siz bit tullamaq etməyin vasitəsi format lakin JPEGs bir kayıplı edir
lakin siz də keyfiyyət tullamaq.
Və belə Photoshop ilə photos kompres və ya Facebook onları bərpa əgər
və ya, həqiqətən, pis gündə telefon onları almaq
Siz şəkil çox splotchy və pixelated almaq başlayır bilirik ki,
bu kompüter və ya telefon ilə sıxılmış olunur, çünki və ki
ilə sanki üz məlumat atma.
Amma GIF bu ismarıcları bilər daha az bit istifadə edə bilərsiniz ki, gözəl
hər hansı bir məlumat itirmədən.
>> Və əsasən aşağıdakı kimi belə yoxdur.
Əksinə bir BMP kimi bir fayl mağaza çox qara, qara, qara, qara üçün RGB üçqat ki,
qara, qara, qara, qara, qara, qara, qara və s,
Əksinə, GIF formatında, "Qara", deyə davam edir
və sonra, "bu 100 dəfə təkrarlayın" və ya kimi bir şey.
"Qara deyil, bu 100 dəfə deyirəm, qara Bu 100 dəfə təkrar ..."
"Sarı, bu 100 dəfə təkrar edin."
Və bu leftmost pixel, mahiyyətcə, xatırlayır
və sonra birtəhər təkrar ki, pixel təkrar anlayışı kodlar.
Belə gifs sonra hər hansı bir məlumat itirmədən özləri kompres bilər.
Amma siz istifadə gifs ki, alqoritm, əgər tahmin olsaydı,
onlar ölçüsü eyni baxmaq baxmayaraq bu bayraqları olan,
bir GIF kimi disk saxlanan zaman kiçik olacaq? >> [Tələbə] Almaniya.
Almaniya kiçik olacaq? Niyə?
[Tələbə] Siz təkrar Çünki bir çox dəfə yatay
və sonra bir dəfə təkrar edin. Məhz >>.
GIF icad edən insanlar yalnız cür özbaşına qərar Çünki
təkrar yatay və yan leveraged olunacaq.
Fransız bayrağı çox alman bayrağı yana burada daha çox təkrar var.
Biz, həqiqətən, bu gifs var ki, sabit bir qovluq açmaq əgər,
həqiqətən burada Almaniya bayrağı 2 kilobayt və Fransız bir 4 kilobayttan olduğunu görə bilərsiniz.
O, bir-iki dəfə başqa bir təsadüf ola olur
lakin əslində Fransız bayrağı daha böyük olduğu halda var.
>> Biz qrafik haqqında burada söhbət edirik baxmayaraq, eyni ideyalar müraciət edə bilər
bir az daha kompleks olduğunu bayraqları lakin images kimi deyil şeylər.
Bir alma bir şəkil alsaq, şübhəsiz ki, təkrarlanması bir çox orada var
belə ki, biz birtəhər default fonunda mavi olduğunu unutmayın bilər
və sağ şəkil, təklif kimi
Bu şəkil hər pixel rəngini yadda var.
Beləliklə, biz məlumat itirmədən oraya bit atmaq olar.
Apple yenə də yalnız həmin görünür.
Burada Məsələn, bir film nə görə bilərsiniz.
Bu köhnə məktəb film makaraları vasitəsi orada üst image təmsil
bir ev, son bir RV sürücülük və bir ağac var.
Ki van soldan sağa keçmiş sürücüler kimi, nə açıq-aydın dəyişən deyil?
Ev yerdə niyyətində deyil və ağac yerdə niyyətində deyil.
Hərəkət ki, yalnız bu halda van edir.
Dəyişməz Background təklif etdiyim kimi, siz kino nə edə
eyni yalnız çərçivələri arasında dəyişmir məlumat tullamaq edir.
Bu adətən interframe sıxılma kimi tanınır
elə bu çərçivəsində bu demək olar ki, eyni görünür, əgər
Gəlin disk haqqında eyni məlumat hər hansı saxlanılması narahat deyil
Bu aralıq çərçivəsində də, yalnız bir müddət bir əsas çərçivəsində istifadə edək
əslində bir az ağlı başında olma kontrol redundantly kimi məlumat saxlamaq.
>> Əksinə, kompressor video üçün başqa bir yanaşma, burada bu ikinci və aşağı Məsələn edir
çox mağaza daha 30 kare, niyə yalnız əvəzinə 15 çərçivəsində ikinci saxlamayın harada?
Əksinə gözəl, mükəmməl axan film cür çox,
bir az bir az köhnə məktəb, kekemelik edir kimi görünə bilər
lakin xalis təsiri başqa zəruri ola bilər çox daha az bit istifadə etmək olacaq.
Belə ki, bu sonra bizi tərk edir?
Bu, sıxılma ilə getmək bilər başqa bir kənara bir az idi.
Ki, daha çox üçün, burada CS175 kimi bir sinif edir.
Burada video başqa bir misal var.
Arı hərəkət yalnız bir şey varsa,
həqiqətən o orta çərçivəsində informasiya tullamaq olar
gül və göy və yarpaqları dəyişən, çünki.
Amma indi son bir şey hesab edək.
Növbəti 5 dəqiqə biz mühazirə əbədi arxasında C tərk edirsiniz? Bəli. Deyil psets də olsa.
Son C haqqında hekayə və sonra biz çox sexy stuff almaq
HTML və Web və woo-hoo cəlb. Bütün hüquqlar.
Burada getmək. Yəni motivasiya var.
Bu biz cingilti run proqramları yazılı edilmişdir zaman bütün bu dəfə çıxır.
Və cingilti, biz olduqca çox ilk həftədən etibarən deyib sonra, mənbə kodu edir
və obyekt kodu dönüştürür.
Bu C alır və 0s və 1s dönüştürür.
Bu kimi çox kimi sadə deyil çünki cür bir neçə həftə üçün sizə yalançı etdik.
>> Siz cingilti kimi bir proqram çalıştırdığınızda başlıq altında gedən daha çox var.
Əslində, bir proqram tərtib prosesi həqiqətən ümumiləşdirmək olar,
siz derleyiciler haqqında Rob-nin video xatırlayıram bilər,
bu 4 addımlar daxil: pre-emal, özü tərtib quraşdırma və əlaqələndirilməsi.
Amma sinif biz və dünyada ən insanlar adətən bu addımlar bütün ümumiləşdirmək
kimi yalnız "tərtib".
Amma bu kimi mənbə kodu ilə başlamaq, bu, bəlkə də sadə C proqram geri
biz tərtib zaman bu kimi axtarır başa Xatırladaq ki, bu günə qədər yazdıq.
Lakin aralıq addım həqiqətən var və bu addımlar aşağıdakılardır.
Birinci bu şey, bu və proqramlarının ən çox üst var
# Daxildir
# Bizim üçün nə daxil deyil?
Mənim fayla Bu olduqca çox nüsxə və pastalar stdio.h məzmunu ki, niyə?
Niyə stdio.h məzmunu haqqında qayğı yoxdur? Maraq var nə var?
Derleyiciyi sonra nə demək bilir ki Printf bəyannaməsi, onun prototipi,
Mən printf bu funksiyanı qeyd edir.
Belə ki, tərtib 1-addım əvvəlcədən emal vasitəsi cingilti kimi bir proqram
və ya cingilti ilə gəlir ki, bəzi köməkçi proqramı, alt üçün üst kodu oxuyur
sağ və bu # rəmzi görür istənilən vaxt, include kimi bir söz sonra
o çıxarmaq və fayl bu halda stdio.h ilə sovuşdurmaq ki, əməliyyat həyata keçirir.
Bu addım 1 var.
Sonra çünki böyük surəti oldu ki yapışdırıb iş daha böyük C fayl var.
>> Addım 2 indi tərtib edilir.
Amma tərtib belə görünür ki, mənbə kodu edir çıxır
və bu kimi görünür ki, bir şey daxil çevrilir
olan tanış üçün adlanır? >> [Tələbə] Məclisi. >> Assambleyasının dili.
Bu, həqiqətən, daha çox ətraflı daxil dalış lazımdır siz CS61 əgər bir şeydir.
Bu yalnız 0s və 1s özünüzü yazılı əldə edə bilərsiniz kimi haqqında kimi yaxın
lakin hələ mənada ən azı bir az edir ki, belə bir şəkildə şeylər yazmaq.
Bu maşın təlimatlar, biz burada əsas funksiyası aşağı diyirləyin əgər
bu push göstərişi olduğunu qeyd, təlimat hərəkət təlimatı çıxmaq,
təlimat zəng və s.
Siz kompüter Intel daxilində var ki, eşidəndə
sizin Mac və ya PC bir Intel CPU var ki, nə deməkdir?
A CPU Intel müəyyən təlimat anlaşma kimi şirkətlər tərəfindən inşa minir.
Onlar heç bir svop kimi funksiyaları nə fikir və ya əsas olunur özlüyündə var
amma onlar kimi çox aşağı səviyyədə göstəriş əlavə nə çıxmaq, təkan yoxdur
hərəkət, zəng və s var.
Belə ki, sərbəst toplaşmaq dilinə C kodu tərtib edərkən,
çox istifadəçi dostu görünüşlü kodu, bu kimi görünür ki, bir şey çevrilir
ki, sözün və CPU həyata belə kiçik ədəd ətrafında bayt və ya 4 bayt hərəkət edir.
Amma nəhayət, zaman cingilti proqram bu təmsil etmək üçün hazır
0s və 1s, sonra montaj adlı addım olur daxil,
zınqıltı çalışan zaman bu daha bütün bir göz blink baş verir.
Biz burada başlamaq, bu kimi bir fayl çıxışlar, sonra bu 0s və 1s onu çevirir.
Və bir anda geri getmək və faktiki fəaliyyət görmək istəyirsinizsə,
- Mən daxil hello1.c-biz baxdı ilk proqramları biridir getmək əgər
adətən biz cingilti hello1.c bu tərtib edəcək və bu, bizə a.out verəcək.
Yerine bu-S bayrağı vermək əksinə varsa, nə almaq lazımdır hello1.s edir
və həqiqətən montaj dil görəcəksiniz.
>> Mən çox qısa bir proqram üçün bunu, amma alıram siz Scramble geri getmək əgər
və ya bərpa və ya yazılı sonra hər hansı bir proqram və yalnız həyata maraq
, əslində CPU daxil qidalanır olunur nə kimi faktiki görünür nə görmək istəyirəm
siz cingilti ilə-S bayrağı istifadə edə bilərsiniz.
Amma sonra nəhayət, bir gotcha hələ var.
Burada hello, dünya mənim həyata təmsil edən 0s və 1s var.
Amma mənim proqram başqasının funksiyası istifadə olunur.
Belə ki, proses olmuşdur baxmayaraq, mən hello.c almaq
o toplaşmaq kodu daxil tərtib edilir, sonra o, 0s və 1s daxil yığılmış olur
vaxt bu nöqtədə outputted ki 0s yalnız və 1s
olanları mənim kodu ki nəticəsidir.
Amma printf yazan şəxs, onlar 20 il əvvəl onların kodu tərtib
və indi, cihaz haqqında haradasa yüklü
belə ki, biz birtəhər, mənim 0s və 1s ilə onun 0s və 1s daxil etmək
və keçid kimi tanınan tərtib 4-cü və son addım bizə gətirir.
Belə ki, sol tərəfdən biz əvvəlki kimi tam olaraq eyni şəkil var:
hello.c toplaşmaq kodu 0s və 1s olur olur.
Amma, mən kodu standart I / O kitabxana istifadə geri
və stdio.c adlı bir fayl var haradasa kompüter deməkdir
və ya ən azı tərtib version onların çünki bir neçə il əvvəl kimsə
toplaşmaq kodu daxil stdio.c tərtib və sonra 0s və 1s bütün dəstə.
Bu statik və ya dinamik kitabxana kimi tanınan nə edir.
Bu cihaz yerə oturan bir fayl var.
>> Amma nəhayət, mən 0s və 1s etmək və şəxsin 0s və 1s
və birtəhər, onlara birlikdə link sözün birləşdirmək o 0s və 1s
a.out ya hello1 və ya hər hansı adlı bir fayl Mən proqram çağırıb
Sonda nəticə 1s və proqram tərtib ki 0s bütün var ki.
Siz cingilti istifadə etdiyiniz zaman bütün bu vaxt bu dövr Beləliklə
və daha yaxınlarda cingilti çalıştırmak üçün etmək çalışan
bu addımlar bütün dərhal növ olur, lakin çox şüurlu edilmişdir.
Və belə ki, məhz CS61, kompüter elm davam əgər
Bu peel geri off davam edəcəyik ki, lay
səmərəlilik, təhlükəsizlik nəticələri və bu aşağı detallarını kimi söhbət.
Amma ki, biz geridə C tərk etmək haqqında istəyirik.
Nin davam və indi 5 dəqiqə fasilə edək,
və biz geri gəldikləri zaman: İnternet.
Bütün hüquqlar. Biz geri.
Gördüyünüz kimi, çünki biz, HTML deyil yalnız bizim göz başlamaq
HTML özü əslində olduqca sadə
amma həqiqətən web proqramlaşdırma daha çox, ümumiyyətlə, daha ümumi şəbəkə,
və bu texnologiyaların birlikdə necə gəlib
bizə Internet üstün daha çox inkişaf etmiş proqramları yaratmaq üçün imkan
İndiyədək daha bu qara və ağ Windows edə bilərsiniz.
Həqiqətən, semestr bu nöqtədə biz nisbətən az vaxt sərf edəcək, baxmayaraq ki,
PHP, HTML, CSS, JavaScript, SQL və daha çox,
ən tələbələr web-based ki, son layihələr bunu sonuna qədər nə
görürsünüz kimi, fon İndi C, çünki
Bu yüksək səviyyəli dillər tətbiq çox deyil.
>> Və, son layihə haqqında düşünür başlamaq kimi
ki, çox Problem Set 0 kimi, təşviq edildi
Not sizə maraq çox şey etmək,
yekun layihə C ilə newfound bilik və fərasət etmək üçün imkan
və ya PHP və ya JavaScript və ya bir spin üçün istəyirəm
və görmək üçün dünya üçün proqram öz parça yaradın.
Və ideyaları ilə toxum sizin üçün, siz burada rəhbərlik edə bilər ki, projects.cs50.net bilirik.
Hər il biz kampus fakültə və heyət ideyaları və tələbə qrupları iddiasını
yalnız kompüter istifadə edərək həll edilə bilər ki, maraqlı şeylər üçün öz ideyalarını təqdim
, internet istifadə proqram istifadə edərək.
Siz, öz fikri ilə gəlmək üçün mübarizə edirik əgər
bütün vasitələrlə bu il və son oradan ideyaları vasitəsilə hərəkət edir.
Bu əvvəl həll edilmişdir ki, layihə həlli üçün mükəmməl tamam.
Biz kampus camaşırxana statusu görən bir çox apps gördük
yemək zalı menyu naviqasiya üçün bir çox apps,
Kursun kataloq və kimi gezinmek üçün çox apps.
Və həqiqətən, gələcək mühazirə və gələcək seminarlarda,
biz kommersiya mövcud, həm də bəzi açıq API ilə tanış edəcək
Məlumat əldə etmək imkanı, eləcə də burada mövcud kampus CS50 ki, belə
və sonra bu maraqlı şeylər edə bilərsiniz.
Biz dəqiqləşdirilməsi azad bir neçə gün yekun layihələr üzrə daha çox,
indi üçün, bir-iki dostları ilə solo iş və ya bilir
siz maraq ən istənilən layihənin üzərində.
İnternet.
Siz irəli getmək və dizüstü çıxarmaq, siz ilk dəfə facebook.com getmək
son daxil və hit daxil olan deyil. Dəqiq nə olur?
>> Addımlar bilgisayarınızda daxil edin hit zaman, bütün dəstə
magically baş növ başlamaq.
Belə ki, Facebook kimi sol, web server burada, sagdaki burada
və elə siz HTTP, Hypertext Transfer Protocol adlanan bu dil istifadə edirik.
HTTP bir proqramlaşdırma dili deyil. Bu protokol çoxdur.
Bu intercommunicating zaman web browser və web server istifadə edən konvensiyalar müəyyən edilir.
Və nə deməkdir belədir.
Çox real dünya kimi, biz bu konvensiyalar var
yerləşir, burada mənə humoring ağla deyil, əgər, ilk dəfə bir insan cavab əgər,
Mən sizə gəlib, demək olar ki "Salam, mənim ad David edir." >> Salam, David. My name Sammy edir.
"Salam, David. My name Sammy edir."
Belə ki, indi biz yalnız silly insan protokol bu cür məşğul ola
Mən protokol təşəbbüsü olduğu, Sammy, cavab verdi
biz əlində sarsılmış sonra, və əməliyyatı tamamlandı.
HTTP ruhunda çox oxşardır.
Web browser sorğu www.facebook.com zaman,
nə brauzerinizin həqiqətən edir, belə ki, danışmaq, onun əl genişləndirir
server və bu mesaj var.
Sizin üçün nə istəyirsiniz - Və Mesaj adətən almaq kimi bir şeydir? -
Mənə adətən URL sonunda bir çizgi tərəfindən qeydi olan ev səhifə almaq.
Və yalnız belə mən danışan deyiləm nə dil bilir, mən browser sizə gedirəm
Mən, HTTP versiyası 1.1 danışan edirəm ki,
Həmçinin yaxşı tədbir üçün, mən sizə demək gedirəm ki, mən ev səhifə istəyirəm ki, ev sahibi
facebook.com edir.
Adətən, sizə unbeknownst bir web browser,, insan,
sadəcə, www.facebook.com yazın zaman İnternet vasitəsilə bu mesaj göndərir
>> Brauzerinizin daxil edin.
Nə Facebook ilə cavab verir?
Bəzi oxşar görünüşlü sirli ətraflı həm də çox daha çox cavab verir.
Mənə burada Facebook-un ana səhifəsinə davam edək.
Bu, her zaman daxil qalmaq əgər bizim ən yəqin görmək heç də ekran
lakin bu, həqiqətən onların ev səhifə.
Biz Chrome bunu etsəniz, bu kiçik çərçivədə menyular qoparmaq bilər ki, qeyd.
Chrome istifadə edərək, Mac OS, Windows, Linux, və ya kimi üzərində olub,
klik və ya sol klik nəzarət varsa, adətən, bu kimi görünür ki, menyu qoparmaq bilər
bir neçə variantları gözləyir yerləşir, hansı biri View Page Source edir.
Siz həmçinin adətən View menyusundan və ətrafında poking bu şeylər əldə edə bilərsiniz.
Məsələn, burada View altında Developer eyni şeydir.
Mən irəli getmək və View Page Source baxmaq gedirəm.
Nə görürsünüz Mark facebook.com təmsil yazılı ki, HTML.
Burada tam mess, lakin biz uzun əvvəl bu bir az daha anlamlı görəcəksiniz.
Amma burada bəzi nümunələri var. Bu kimi məhsulları aşağı diyirləyin edək.
Bir insan bucaqlı mötərizə bu model oxumaq, lakin olduğunu qeyd etmək üçün çətindir
seçim dəyər kimi açar sözlər, bəzi sitat strings kimi açar.
Bu harada, siz doğum il nə ifadə ilk dəfə bağlayıb zaman.
Dəğum il açılan menudan elə burada kodlanmış edir
HTML, Hypertext Markup Language adlanan bu dildə.
Başqa sözlə, brauzerinizin bir web səhifə xahiş zaman,
bu HTTP adlanan bu Konvensiyanın danışır.
Amma facebook.com ilə tələb nə cavab verir?
>> Biz bir anda görəcəksiniz ki, bu sirli mesaj bəzi cavab verir.
Amma onun cavabı ən HTML, Hypertext Markup Language şəklində deyil.
Bu web page yazılı olan faktiki dil var.
Və bir web browser həqiqətən, sonra bu kimi görünür ki, bir şey alınandan sonra nə deyil
o sağ, aşağı üst oxuyur və istənilən vaxt bu bucaqlı mötərizə biri görür
seçim kimi bir söz sonra, o, müvafiq şəkildə biçimlendirme dili gösterir.
Bu halda, bu il açılan menyu göstərmək olar.
Ancaq yenə də, bu baxmaq üçün tam bir mess edir.
Facebook developers Məsələn, stil üçün 5 0 büruzə çünki bu deyil.
Onlar yazmaq ki kodu ən çünki bu, əslində, gözəl yazılıb
, yaxşı, şərh qəşəng indented və kimi
ancaq maşın, kompüter, tarayıcılar həqiqətən bir lənətləmək vermir
kodunuzu yaxşı səpkili olub.
Və əslində, bu nişanı əsas bütün bu dəfə hit tamamilə israfçı var
və kodu bütün şərh qoymaq və həqiqətən təsviri dəyişən adları seçmək
Brauzer qayğı olmadıqda, çünki günün sonunda edirik bütün bayt israf edilir.
>> Belə ki, baxmayaraq facebook.com üçün kodu mənbəyi nə ən saytları nə edir çıxır
İnternet cs50.net və digər saytları bütün
adətən yaxşı yazılı və şərh və qəşəng indented və kimi edilir,
veb İnternet üzərində qoyulur adətən əvvəl, kodu minified ki,
vasitəsi HTML və CSS - biz tezliklə görəcəksiniz başqa bir şey -
biz tezliklə görəcəksiniz JavaScript kodu sıxdı,
uzun dəyişən adları olmaq vasitəsi X və Y və Z,
və hər şey belə oxunaqlı baxmaq edir ki, ağ bütün bütün üz atılır
- Siz bu yolu hesab, Facebook bir milyard səhifə gün xit olur, çünki
kimi dəli bir şey - belə nə bir proqramçı yalnız anal əgər
yalnız heç belə daha kodu bir line indent üçün yer bar bir əlavə vaxt edib?
Facebook qoruyur əgər dolayısı hansı ki, ağ
bu bytes bütün onlar İnternet insanların geri göndərmək?
Yer bar çarpan bir dəfə sizin fayl əlavə byte verir.
Və əgər bir milyard insanın, sonra o gün ev səhifə yükləmək üçün davam
İnternet üzərində nə qədər çox data ötürülən var?
Heç bir yaxşı səbəb üçün gigabyte.
Və verilmiş, web sites bir çox bu, belə bir ölçeklenebilir məsələ deyil
lakin Facebook, Google üçün ən populyar saytları bəzi
böyük stimul sizin kodu mess kimi baxmaq üçün maliyyə var
Əgər o kompressor əlavə mümkün qədər az bytes kimi istifadə edirsinizsə ki,
zip kimi bir şey istifadə edərək, alqoritm, gzip adlı
brauzer sizin üçün avtomatik olaraq ki. Amma bu dəhşətli deyil.
Biz digər insanların saytları haqqında bir şey öyrənmək heç vaxt lazımdır və web pages dizayn necə
biz bu kimi baxmaq var.
>> Belə ki, xoşbəxtlikdən, Chrome və IE və Firefox kimi brauzerlərdə bu gün
adətən daxili geliştirici alətləri ilə gəlmək.
Mən Element ya Inspect burada enmək əgər Əslində, mən, Developer bax getmək
və aydın Developer Tools getmək
mənim ekranın altındakı bu pəncərə indi açılır.
Tanımadığı Nişanlar çox burada var, çünki ilk bir az qorxuducu deyil
amma alt sol elementləri bütün yol basın varsa,
Chrome açıq-aydın olduqca ağıllı deyil. Bu bütün kodu şərh bilir.
Və Chrome nə o Facebook HTML bütün up təmizləyir edir.
Ağ orada deyil baxmayaraq, abzas, orada deyil
İndi bütün daha hiyerarşik bu web page getmək başlaya bilər ki, görürsünüz.
Bu HTML5 adlı dilində yazılmış hər web page, bu ilə başlamaq lazımdır çıxır ki,
bu DOCTYPE bəyanat, belə ki, danışmaq üçün: <! DOCTYPE html>
Bu yüngül və boz orada növü var, ancaq bu fayl kodu ilk xətt var
və yalnız "Hey, burada HTML5 gəlir. Burada bir web page gəlir.", brauzerinizin deyir
Ki, kənarda ilk açıq bracket bu şey, açıq bracket HTML tag, olmaq olur
Mən dərin dalış əgər, sonra - bu oxlar tamamilə mənasız edir;
yalnız təqdimat xatirinə, onlar fayl həqiqətən deyildir -
Facebook HTML tag ki, daxili, açıq bracket ilə başlayır ki, bir şey qeyd
və sonra bir söz tag adlanır etmişdir.
Belə ki, HTML tag daxilində baş tag və bədən tag yəqin edir.
Baş tag Inside indi Facebook üçün bütün mess edir
onlar marketinq və reklam üçün metadata və digər çox şey var.
>> Biz aşağı diyirləyin Lakin, aşağı, aşağı, aşağı, olduğu nin görək. Burada deyil.
Bu, bir azı qədər tanış deyil.
Facebook ana səhifə adı, heç title bar nişanı baxmaq əgər,
Facebook xoş gəlmisiniz - Up ol və ya daha çox məlumat, Giriş.
Ki, Chrome adı bar görmək nə var
və bu kodu təmsil ne var.
Biz baş başqa hər şey ignore varsa, veb səhifə içalat ən çox orqan var
və Facebook kodu daha kompleks baxmaq gedir çıxır ki,
çox şey çox biz, bu il ərzində inşa edilmişdir yalnız ilkin yazacaq
lakin script tags bütün çox, JavaScript kodu, var
ki, web çox interaktiv edir:
dərhal JavaScript kimi dillərindən istifadə statusu yenilikləri görüb.
Bir səhifə bir bölmə olan div deyilən bir şey var.
Ancaq biz ətraflı almaq əvvəl, kiçiltmək üçün cəhd edək
və belə danışmaq, Facebook 1.0 sadə versiyası oldu.
Burada web pages hello, dünya.
Bu çox üst ki, DOCTYPE bəyannamə var
hansı başqa hər şey bir az fərqlidir.
Biz bir web page yazmaq başqa bir şey <başlamaq üçün gedir! ki, xətt istisna olmaqla, orada
və HTML şərh deyilən bir şey istisna olmaqla.
Amma çox hissəsi üçün, bir web page hər şeyi açıq bracket, söz, yaxın bracket edir.
>> Bu halda mümkün web pages sadə bilərsiniz.
, HTML tag baş tag var və bu orqan tag şey
lakin tags başlayaraq dayandırılması bu anlayış olduğunu görürük.
Bu HTML üçün başlanğıc etiketi, bu yaxın tag və ya son tag edir.
Onlar mənada opposites növ olduğunu bildirək ki, yaxın tag və ya son tag
bu irəli özü daxilində zərbə olmuşdur.
Eyni zamanda, burada açıq baş tag və burada yaxın baş tag var.
>> Açıq adı və yaxın adı tag burada var.
Mən sırf ixtiyari bir xətt üzrə adı gətirdik ki.
Bir line gözəl uyğun olardı kimi yalnız baxdı, mən bir neçə dəfə daxil edin vuruş narahat etmədi.
Eyni zamanda, mən bədənin yalnız heç belə aydın ola indent.
HTML olduqca lal dili edək ki,.
Əslində, geri gün WYSIWYG redaktorları var idi əvvəl
və siz deyə bilərsiniz Microsoft Word "bu cəsarətli olun, bu italik etmək"
həqiqətən, 20 + il əvvəl oçerklər az komutları yazın ki,
deyəcəksiniz vasitəsi, "Bu mətn qalın edilməsi başlayın. bu mətn qalın edilməsi dayandırmaq."
"Bu mətn kursiv edilməsi başlayın. Bu mətn kursiv edilməsi dayandırmaq."
>> Bu HTML və ya hər hansı biçimlendirme dili budur.
Bu ilk tag "Hey, brauzerinizin. Burada bəzi HTML gəlir." Deyir
Növbəti tag "Hey, brauzerinizin. Burada baş, mənim web page mövzu gəlir." Deyir
"Hey, brauzerinizin. Burada adı gəlir."
Və sonra burada, "Hey, brauzerinizin. Bu başlığı üçün."
Belə ki, bu dünyada, brauzerinizin salam daha çox simvol Profilə artıq bilir necə
mövzu çubuğunda.
Eyni zamanda, bu deyir, "Bu baş üçün."
Bu, "Burada bədən gəlir Burada faktiki orqanıdır." Deyir - hello, dünya, sanki söz.
Və burada deyir ki, "Bu bədən üçün bu. HTML üçün var."
Belə brauzerlər olduqca lallardır.
Onlar yalnız sağ alt üst bu məhsulları, oxumaq və məhz onlar bunu izah nə.
Əslində burada bir az Məsələn nə edək.
Mənə TextEdit məhz burada, mənim Mac proqramlarının sadə açmaq edək.
Windows siz Notepad.exe istifadə edə bilər.
Lakin bu web pages edilməsi başlamaq üçün lazım olan bütün edir.
Mən irəli getmək və yalnız bu fayla bu kodu seçin və yapışdırıb gedirəm.
I, davam və mənim masa üstü saxlamaq üçün gedirəm
və mən hello.html kimi saxlamaq üçün gedirəm
və indi fayl hello.html adlanır.
Burada mənim masa üstü edir.
Mənə indi bir browser daxil və brauzerinizin daxil fayl sürükleyin edək.
Və voiture, burada mənim ilk web page edir.
Sekmesini adı salam edək ki, adı tag üzrə dünya,
hello, dünya mənim web page orqanı olduğunu və bildiriş
və woo-hoo, mən İnternet edirəm.
>> Bu fayl İnternet deyil, çünki mən, həqiqətən, doğru deyiləm.
Bu, mənim yerli sabit xüsusi yol üzərində olur.
Amma fikir eyni deyil. Indi biz lazım olan yüklemek üçün bir web server edir.
Amma ilk nin əslində bir az daha mürəkkəb və bir az daha stilləşdirmə təqdim etsinlər.
Bu sadə, əgər qazma, web səhifə.
Biz istifadə edə bilərsiniz tags digər növləri var həyata çevirir.
Məsələn, burada sarı I 2 yeni tags təqdim etdik.
Biz bu gün çox oynayır, lakin qeyd edir ki link tag
birtəhər başqa hər şey fərqli görünür.
Link tag, funksiyalar deyilir nə edir
və bir özellik bir tag davranış düzəliş bir şeydir.
Bu halda bu, adları, link ən yaxşı seçim deyil, çünki bu cür mənasız və
lakin bu link tag mənim web page daxilində styles.css adlı fayl daxildir, mahiyyətcə, deyir.
Siz C-nin # direktiv daxil etmək üçün bu kimi oxşar hesab edə bilər.
Styles.css, bu gün oynamaq deyil ki, tamamilə müxtəlif dil istinad
lakin bu estetika üçün var: font ölçüləri, rənglər, padding, abzas, qıraq,
və estetik ətraflı belə bütün.
Bu vaxt, script tag, funksional oxşar
lakin daxil CSS ki, dil çox, başqa bir dil, JavaScript daxildir.
Belə ki, başqa sözlə, bu 2 tags Mən nəhayət mənim öz web page yazmaq olacaq
həm də mən və ya bir başqası yazılı ki kodu çəkin
biz başqa insanların üzərinə durmaq bilər ki, biz yaxşı dizayn təcrübə edə bilərsiniz
ümumi kodunu faktorinq.
Mən 10 müxtəlif web pages var, bu o deməkdir ki, mənim estetik bəzi
çox # bir ayrı fayla daxil kimi factored ola bilər.
Belə ki, biz orada əldə edirik.
Amma nin əslində ilk bu fayl ilə daha maraqlı bir şey edək.
>> Yenə, bu, yalnız TextEdit edir. Mən hələ İnternet texniki deyiləm, lakin orada almaq lazımdır.
Mən bunu daha hello, dünya bir az bolder etmək istərdim.
Belə ki, hello, in özbaşına qalın deyək.
Yenə hekayə eyni: hello, vergül, bu qalın edilməsi başlamaq
sonra dünya qalın çap, bu qalın, bu çap dayandırmaq deməkdir olur.
Mənə davam və mənim fayl saxlamaq, Chrome geri edək, yalnız belə ki, biz daha yaxşı görə bilərsiniz zoom olacaq
və yenidən, və dünyanın qalın indi görürsünüz.
Web bütün hiperlink haqqında, belə ki, in irəli getmək və bunu edək:
mənim sevimli haqqinda, youtube.com, deyək.
Yeniden Saxla. Okay. İndi web iğrençlik yanaşı bir neçə problemlər var.
1, mən burada Enter olduqca əminəm. Mən etdim.
Ki, biz stil haqqında vəz olduğunuz nə təcrübə, mən də indented, Enter yalnız
lakin mənim dünya hüququ yanında.
Belə ki, niyə bu? Reytinqdə yalnız onlara nə demək nə.
Mən "burada Break satır. Daxil paraqraf burada qırmaq". Brauzer bildirib deyil
Mən qayıt 30 dəfə hit əgər brauzer Belə ki, bu, vacib deyil
hələ də dünyaya gələn mənim sağ qoymaq olacaq.
Mən, həqiqətən, burada nə var, bir şey kimi demək xətti fasilə daxil edilir.
>> Və həqiqətən, bir xətt fasilə bir qəribə şey növ
Əgər həqiqətən bir xətt hərəkət başlamaq bilməz, çünki, sonra bir şey
və sonra yeni bir xətt hərəkət dayandırmaq. Bu atom əməliyyat növü var.
Ya bunu ya yox. Siz Enter və ya deyil.
Belə br müxtəlif tag bir az, və mən də açıq sort və yaxın lazımdır
bütün bir dəfə.
Ki üçün sintaksis bu.
Texniki, siz HTML bəzi versiyalarında bu kimi bir şey edə
bir şey başlamaq və dayandırmaq üçün heç bir səbəb yoxdur, çünki bu yalnız axmaq deyil
yerine bir dəfə bütün edə bilər.
Ki, HTML5 ciddi, bu çizgi tələb etmir həyata
belə ki, bu, yoxdur ki, dərslik və online qaynaqları görəcəksiniz
lakin yaxşı tədbir üçün biz belə uzaq gördüm ki, simmetriya təcrübə imkan verir.
Bu tag həm açdı və qapalı deməkdir.
İndi məni buraya geri getmək, mənim faylı bildirin.
OK, belə ki, mən bilirəm, Web istisna olmaqla, yaxşı baxmaq başlayan, mehriban tıklanabilir edir
və hələ burada youtube bir şey səbəb görünmür.
Bir link kimi görünür olsa da, çünki ki, brauzer ki, özlüyündə bilmir
Mən bu bir link ki browser demək lazımdır.
>> Bu yol bir anker tag istifadə edir:
<A link deyərək köhnə məktəb yolu olan hiper istinad, üçün href,
= "Http://www.youtube.com">
və bir az daha oxunaqlı deyil mənə yalnız bir yeni xətt bu hərəkət imkan
Mən font ölçüsü shrink olacaq.
Mən hələ həyata Am? No bu dichotomy olmalıdır olacaq.
Bu tag, lövbəri tag, həqiqətən, bir özellik sürer
onun davranış düzəliş və atribut dəyəri yəqin YouTube URL deyil.
Amma dichotomy qeyd edir ki, siz davam olduğunuz URL görə ki,
ki, siz qeyd və bir link edirik ki, söz olmalıdır ki, demək deyil.
Əksinə, bu kimi bir şey ola bilər.
Mən bu söz yaxın lövbər tag istifadə edərək, bir köprü edilməsi dayandırmaq demək lazımdır.
Mən bunu deyiləm edək.
1, bu, yalnız hər kəsin bir zaman tullantıları olacaq və lazım deyil.
>> Bir tag bağlamaq, yalnız daha tag adını.
Siz atributları heç bir qeyd yoxdur.
Belə ki, geri ki, saxlamaq imkan verir. OK, voiture, indi mavi və köprü var.
Mən bunu basın, Mən, həqiqətən, YouTube getmək yoxdur.
Web səhifə İnternet deyil, baxmayaraq Belə ki, ən azı HTML
biz İnternet tutmaq imkan və biz, həqiqətən, youtube.com burada sona olardı.
Mən geri gedə bilər və burada mənim web page var. Amma bu bildiriş.
Əgər spam və ya bir phishing kazanılmış varsa,
İndi eyni şeyi yalnız beş dəqiqə sonra imkanı var.
Biz www.badguy.com kimi bir şey burada getmək və nə edə bilər
və ya hər hansı yarım yamalak veb, sonra sizin PayPal hesabı doğrulamak demək olar.
[Gülüş] İndi bu mən basın gitmiyorum olan badguy.com, getmək gedir
Hesab edirəm ki, səbəb olduğu heç bir fikrim yoxdur, çünki. [Gülüş]
>> Ancaq biz indi, həqiqətən, orada sonuna qədər imkanı var.
Belə ki, biz, həqiqətən, yalnız səthi danışıq başlayaraq edirik.
Biz özlüyündə proqramlaşdırma deyilik, biz biçimlendirme dili yazıyoruz.
Amma tezliklə biz, HTML bizim lüğət top kimi
biz PHP, faktiki proqramlaşdırma dili ilə tanış olacaq
ki, avtomatik CSS yaratmaq, bizim avtomatik HTML yaratmaq imkan verir
biz ki, həyata keçirilməsi üçün çərşənbə günü başlaya bilər ki,
öz axtarışı və daha çox.
Bir neçə gün ki, lakin daha çox. Biz sonra görəcəksiniz.
>> [CS50.TV]