[MUSIC PLAYING] DAVID J. MALAN: Bütün hüququ. Bu CS50 və bu Həftə 2 başlanğıc. Və ki, artıq geri olacaq həftə son bir neçə, biz kompüter təqdim etdik elm və, öz növbəsində, proqramlaşdırma. Və biz yolu ilə hekayə başladı Scratch ki, qrafik dil MİT-in Media Lab. Və sonra ən son, Keçən həftə biz etdi bir higher-- a təqdim aşağı səviyyəli dil tanınan C, sırf mətn bir şey kimi. Və həqiqətən, son dəfə biz ki, daxilində tədqiq anlayışlar bir sıra. Bu, geri, çox idi ilk proqramı baxdı. Bu proqram, sadəcə, "Hello, dünya." Çap Amma çox var zahiri sehrli olur. Bu # daxildir var bu bucaq mötərizədə ilə. int var. (Void) var. parantez, qıvrım aşırma var, yarı colons, və çox daha çox. Və belə ki, geri biz Not təqdim Biz ideal, keçmiş oldu ki, ki sintaksis, həqiqətən deyil stuff bütün intellektual maraqlı, lakin erkən Tamamilə bir az çətin deyil fikrinizi ətrafında kesmek. Və həqiqətən, ən ümumi bir erkən bir proqramlaşdırma sinif şeyi, xüsusilə az rahat, ilə incidir almaq üçün və müəyyən sintaktik tərəfindən takıldım səhvlər, məntiqi səhvlər qeyd etmək deyil. Və belə ki, bizim hədəflərimizdən arasında Bu gün, həqiqətən, iradə bir ilə təchiz etmək necə problem həll üsulları yaxşı problemləri özləri həll etmək ayıklama şəklində. Və siz də geri ki, lazımdır biz təqdim mühit son dəfə CS50 IDE adlanırdı. Bu web-based proqram ki, Siz bulud proqram imkan verir, bütün tutarken, belə ki, danışmaq üçün biz yenə bu gün bir araya faylları. Və biz geri Burada bu mövzu yenidən, Onların arasında funksiyaları və loops, və dəyişənlərin və Boolean ifadələr, və şərtləri. Və biz, həqiqətən, bir neçə Not dünyanın tərcümə C. dünya Amma fundamental tikinti blokları, belə ki, danışmaq həqiqətən hələ də eyni ötən həftə idi. Əslində, biz, həqiqətən, yalnız idi müxtəlif puzzle parça, siz olacaq. Əvəzində ki bənövşəyi blok saxlamaq, biz əvəzinə ki, printf etdi C bu funksiya ki Əgər bir şey çap imkan verir və ekranda format. Biz CS50 təqdim Library, harada Sizin ixtiyarınızdadır get_char indi var, və get_int və get_string, və bir neçə digər funksiyaları kimi yaxşı, hansı vasitəsilə daxil əldə edə bilərsiniz istifadəçi öz klaviatura. Və biz də, hər şeyi bir nəzər etdi these- bool və char kimi, və ikiqat, float, int, long_long string. Və C. hətta digər məlumat növləri var Siz bəyan Başqa sözlə, dəyişən bir dəyər saxlamaq üçün, və ya bir funksiyası həyata zaman bəzi dəyər qaytarır, Siz nə daxil edə bilərsiniz edir dəyər növü. bir string kimi, deyil simvol ardıcıllıqla? bir tam kimi, bir sıra mı? Bu üzən Point dəyəri, və ya kimi? Belə ki, C, Not fərqli olaraq, biz, həqiqətən, məlumatların nə cür müəyyən başladı biz qaytarılması və ya istifadə. Ancaq əlbəttə, biz də qaçdı kompüter bəzi fundamental məhdudiyyətlər. Və xüsusilə, bu dil C, geri biz bir nəzər etdi ki, tam daşqın, reallıq Yalnız bir var ki, əgər yaddaş məhdud məbləği və ya xüsusi bir sonlu sayı bit, yalnız belə yüksək saymaq olar. Və belə ki, biz burada bu nümunə baxdı vasitəsi bir təyyarə bir counter, həqiqətən, kifayət qədər uzun əgər olardı çalışan daşqın və bir proqram ilə nəticələnəcək faktiki fiziki potensial səhv. Biz də üzən baxdı point qeyri-dəqiqlik, reallıq yalnız məhdud sayda bit, 32 və ya 64 olsun, Siz yalnız çox nömrələri daxil edə bilərsiniz bir bu kəsir, sonra sonra siz qeyri-dəqiq almaq üçün başlayır. məsələn, bir üçüncü So Burada dünya, insan dünyada, biz yalnız sonsuz sayı bilirik bu kəsir sonra 3s. Amma kompüter mütləq bilməz nömrələri sonsuz sayı təmsil Yalnız imkan əgər bəzi informasiya məhdud məbləği. Belə ki, yalnız biz təchiz etdi baxımından böyük enerji ilə Siz özünüzü ifadə edə bilər necə proqramlaşdırma baxımından bir klaviatura, biz də məhdud nə Siz, həqiqətən, bunu edə bilərsiniz. And olsun ki, bugs və səhvlər edə bilərsiniz məsələlər bu cür yaranır. Həqiqətən, mövzular arasında bu gün ayıklama kimi mövzular olacaq və həqiqətən başlıq altında axtarır hər şeyi təqdim edilmişdir necə son həftə həqiqətən həyata keçirilir daha yaxşı ki, anlamaq, həm də imkanları və C. kimi bir dil məhdudiyyətlər Və əslində, biz qat geri soymaq lazımdır data strukturu sadə, bir sıra deyilən bir şey olan Scratch bir zəng etmək olur "siyahısı". Bu bir az var Bu kontekstdə müxtəlif. Və sonra biz də bir təqdim edəcəyik Bizim domain xüsusi problemlərin ilk CS50, dünya Kriptoqrafiya, Scrambling sənəti və ya belə məlumatlar ciphering Siz gizli mesajları göndərə bilərsiniz ki, və gizli mesaj deşifre iki nəfər, A və B. arasında Belə ki, biz keçid əvvəl yeni dünyaya, Bəzi ilə təchiz edək texnika ilə siz aradan qaldırmaq olar və ya ən azı bir azaltmaq frustrations Siz yəqin ki, rast ki, Təkcə son həftə ərzində. Əslində, irəlidə sizin bəzi such-- olunur C. və bahis ilk problemlər var Siz mənim kimi değilseniz, first time bir proqram yazın üçün cəhd edin, Siz məntiqi düşünmək, hətta proqramı olduqca sadədir çox yaxşı bir divar hit, və ola bilər compiler əməkdaşlıq etmək niyyətində deyil. Etmək və ya cingilti niyyətində deyil həqiqətən, sizin teklif etmək üçün. Və nə ola bilər? Bəli, nin bir nəzər salaq bəlkə də, bir sadə proqram. Mən irəli getmək və bu saxlamaq üçün gedirəm qəsdən buggy0.c adlı bir fayl, Mən bunu bilirəm, çünki əvvəlcədən flawed bilər. Amma bu həyata bilər birinci və ya ikinci və ya üçüncü proqram Mən, həqiqətən, özüm qəbul edirəm. Mən irəli getmək üçün gedirəm və , Int əsas (void) yazın. Və sonra mənim qıvrım aşırma daxilində, salam, vücuda ( "Çox tanış backslash n ") - və yarı kolon. Mən fayl xilas etdik. İndi aşağı getmək üçün gedirəm Mənim terminal pəncərə və növü etmək buggy0, çünki, yenə fayl adı bu gün buggy0.c edir. Mən daxil edin buggy0 etmək yazın. Və oh, hay Allah, son dəfə xatırlayıram heç bir səhv ki, yaxşı bir şey deyil. Belə ki, heç bir çıxış yaxşı bir şey deyil. Amma burada aydın var səhvlər bəzi nömrəsi. çıxdı ilk xətt So buggy0 etmək yazaraq sonra, geri, Cingilti nin kifayət qədər verbose çıxış edir. başlıq altında, CS50 IDE yapılandırılmış bütün dəstə istifadə etmək bu compiler ilə variantları belə ki, yoxdur ki, onlar haqqında düşünmək. Və bütün ki, ilk xətt var Cingilti ilə başlayır deməkdir. Amma bundan sonra problemlər onların görünüşü etmək başlayır. line 3 xarakter Buggy0.c 5, böyük, qırmızı səhv var. ki, nədir? Dolayısı kitabxana funksiyası elan növü int (const char * ilə printf, ...) [-Werror]. Mən çox tez demək çox gizli olur. Və əlbəttə ki, ilk nəzər, biz ki Siz anlamaq üçün gözləmək ki, mesaj bütövlükdə. dərslər və belə bir bu gün gedir üçün qeyd etmək cəhd ola nümunələri, və ya oxşar şeylər, səhvlər ola bilər Keçmişdə qarşılaşdı. Belə ki, yalnız ayrı tease edək tanış bu sözlər. böyük, qırmızı səhv aydın bir şey simvolik yanlış olan. dolayısı elan kitabxana funksiyası printf. Mən başa düşmürəm, hətta nə dolayısı kitabxana funksiyası elan vasitələri, şübhəsiz ki, problem birtəhər printf aiddir. Və məsələnin mənbə elan ilə bağlıdır. bir funksiyası elan ilk dəfə qeyd. Və biz ötən həftə terminologiya istifadə bir funksiyasının prototip elan, ya üst bir xətt ilə sizin öz fayl və ya qondarma header fayl. Və nə fayl biz demək idi Keçən həftə printf quote ki, dırnağı bağlamaq elan? nə fayl onun prototip deyil? Belə ki, siz ilk şey Mən xatırlayıram tipli, demək olar ki, hər bir proqram son sýrada və təsadüfən bir an əvvəl başladı özüm yazaraq bu burada idi hash # daxildir