[Powered by Google Translate] DAVID MALAN: Bu CS50, bu həftə 1 başlanğıc edir. Biz istədiyiniz nə düşündüyü bu gün geri nəzər edir bir çox şey yəqin ki, bəzi keçmiş getdin vaxt və bir az tanış ola bilər. Burada Bu şey, əlbəttə, bu deyil - Auditoriya: Elm. DAVID MALAN: Elm mərkəzi. Beləliklə, bu, həqiqətən, ən kompüter biridir 1940-cı ildən geri. Bu ilk elektromexaniki kompüter biri idi ki, xüsusilə uzun qadir özünü davamlı hesablamalarında və nə biz, həqiqətən, görmək elm mərkəzi yalnız bu şey bir az parça. Nə biz sonra nə istədiyiniz fikir bir video geri nəzər edir Bu tətbiq, bir müddət əvvəl qəbul edilib dünyaya şey. Və siz musiqi və həqiqətən səs həmin görürsünüz çox xoşbəxt dəfə olmuşdur. [Video playback] -A və riyaziyyat bacarıq təntənəsi bu Harvard Universitetinin böyük yeni avtomatik kalkulyator. Riyaziyyat mürəkkəb problemləri, keçirtmək tape haqqında kodlu şəklində maşın, dəqiq bir həll edilir vaxt dəqiqə fraksiyası insan üçün tələb hesablanması. Bütün formalarının sürətləndirmək üçün nəzərdə riyazi və elmi tədqiqat, nəhəng mexaniki beyin Birləşmiş işləyəcək Müharibə sonuna qədər States Navy. DAVID MALAN: Yəni nə bilmirəm bilər o idi ki, biz bütün indi olduqca çox almaq bir müddət bu eyni cihaz verilən bir səhv ki, coined edilib. Belə ki, mühəndislər bu kompüter iş sözün nəticələnən maşın kiçik pərvanə tapıldı bəzi səhv hesablamalar. Hekayə gedir kimi Və güvə bu giriş üçün itiuclu edilib burada jurnalı, geri 1940-şey Sentyabr 9, və beləliklə, dünya üçün termini "səhv" anadan olmuşdur. Belə ki, bundan sonra biz hataları səhvlər hər hansı hesab proqramları, süni və ya olmadığını, bu halda, həşərat. Bir neçə elanlar Belə ki, biz davam etdirilir. Belə ki, CS50 haqqında növ nahar təklif ənənəsi var biz 30 bulunduğu semestr ərzində ən Cümə 40 Yanğın tələbə və təsadüfi üçün Meydanında Ice chitchat, kompüter elm haqqında danışmaq gələcək haqqında danışmaq. Biz chat sənayesi məzunların və dostları dəvət tələbələr həmçinin. Həqiqətən, kifayət qədər böyük bir sinif nə edilməsi üçün sonuna bütün daha çox intim, ən azı bir dəfə üçün isə tələbə alt. Bu cümə bizə qoşulmaq istəyirəm əgər, 1:15 PM, getmək RSVP üçün CS50.net/lunch. Siz değilseniz və biz recurringly bu edəcəyik, belə ki, narahat deyil ilk 30 və ya bu həftə arasında. Mirzə qeyd edir. İndi mövcud olan başlayacaq olan resursları söz sinfində tələbələr. Başınızı mühazirə zamanı aşağı ola lazımdır ki, Mən biz nə, s demək və hər şey aşağı not əvəzinə tədris heyəti təmin edilir Notların canonical dəsti. Belə ki, bizim tədris yoldaşları biri Andrew Sellergren var edən, sonra hər həftə aşağı oturur video təhlil və biz kifayət qədər hesab edirəm nə yazır Notların nüfuzlu dəsti. Və snarky Dipnot qoyulması da Andrew in sevən, alt. Belə ki, inşallah bir kitab kimi seveceksiniz imkanı nəzərdən kimi əyləncə, həmçinin, zaman viktorina gəlib fərdi mühazirələr nə baş verib. Belə ki, bu məruzələr səhifə bağlıdır. Problem set 0, eyni zamanda, deyil. Və mövcud resursları baxımından - bu gözden geçirmek. Milo cümə günü ilk çıxardı. Bu çəkmişdir idi, şənbə online qoydu. Siz başlamaq üçün harada həqiqətən əmin değilseniz və belə, həyata bu və ya p-dəsti gələcək üçün, həmişə ilk çevirmək gözden geçirmek və ya video onun. Sectioning davam edir; cs50.net/section siz burada Əgər varsa, arzularım təqdim etməlidir artıq bu gün. Bölmələr bu gələn Bazar, Bazar ertəsi, başlamaq Çünki və Çərşənbə axşamı. Biz hər həftə, bu üç gün bölmələr etmək hissəsi dövr. Və biz də, yenə müxtəlif yolları təqdim edirik. Belə ki, bu sectioning formada istenir əgər bu az arasında istəyirsinizsə, artıq görmədim rahat, daha rahat, və ya bir yerdə arasında. Və siz hasarın haqqında növ istəyirsinizsə, ümumiyyətlə yerdə arasında ən tələbələri yoxlanılması başa budur. Office saat axşam başlayır. Belə Not kifayət qədər təbii ki, baxmayaraq ki, kifayət qədər aşağı əsas müxtəlif hatalar daxil, və ya necə etmək qeyri-müəyyən ola bir şey həyata keçirir. Beləliklə, biz bu həftə ofis saat başlayacaq bilirik. Onlar Annenberg Bazar ertəsi, Çərşənbə, Çərşənbə olacaq Cümə axşamı, 8:00 PM-dən beyin fasilə zamanı 11:00 PM. Yuxarı classmen almaq və siz heç çətinlik əgər əldə edə bilərsiniz onlar swiping olacaq, çünki qapı, yalnız yol danışmaq və izah siz CS50 ilə edirik. Adətən heyəti bizə 20 30 yardım olacaq bir bir. Gəldikdən sonra fikir budur: Sizin laptop gətirmək lazımdır, sizin adapter lazımdır ki, əlavə enerji halatlar lazımdır xüsusilə Annenberg cənub divarı boyunca yerləşir elektrik prizi çox var. Və ofis saat Q & A əsas giriş nöqtəsi getmək cs50.net/discuss və göndərmək üçün orada sual. Və pset 0 və ya pset 1 ilə etiketlemek üçün nə həftə olması baş verə bilər. Və sonra nə edəcəyik tədris yoldaşları bir masa var adətən 8 və ya bizim 10 və ya və əlbəttə köməkçiləri, vasitəsilə davam şurası bir ayıq göz saxlanılması, və həqiqətən tez biz kimi suallar off Yolma, bu tapılmadı əgər əlaqədar ismarışları sizə aid müvafiq olaraq özünüzü, online istinadlar. Və sonra problemlər var, kimi qaçılmaz əgər , və ya yalnız bir bir oturub daha anlamlı olacaq kimsə ilə problemləri çalışır. Və ya sadəcə həqiqətən ofis saat minir ki zehniyyət ehtiyacı. Siz, elektron forması vasitəsilə getmək istəmirəm həqiqətən kimsə ilə görüşmək istəyirəm. Bizə ünsiyyət və nə edəcək zaman sual bir heyət üzvü tərəfindən görüldü, və edilmişdir biz , Yup müəyyən, bu 20 və ya biri göndərilib edilməlidir Yerli burada 30 komanda üzvləri, siz üst görəcəksiniz bu yazmayıblar bu Queue düyməsini az edin / cs50.net haqqında flashing başlayır müzakirə edir. Bu indi belə dəvət edilmişdir ki, danışanlardan Növbədə daxil etmək üçün danışmaq. Və 'düyməsinə tıklayarak, sizin adı sonra görünür bu CS50 greeter, kurs nin rəhbərləri biri olacaq ki, bir iPad edən, sonra Annenberg və giriş yaxın olacaq keçirilməsi olunacaq bağlı sualları olan kimi burada təsvir görürük, tələbələr sol, sağ mövcud olan heyət üzvləri. Və sol və sağ bir klik ilə web browser olacaq Professor McGonnagal Məsələn, kimi flashing başlamaq Annenberg xüsusi masa görmək hazırdır. Belə ki, bu keçən il bəzi etdi. Biz ofis saat və rebooted sonra proqram çox yenidən həyata keçirilir. Belə ki, bu həftə istilənmək olacaq bilirik. Lakin siz eşitmişəm bilər, keçmiş illərdə də həyata dostlar, ofis saat həqiqətən 50 idi Bir dəfə 150 ​​tələbələr. Bizim idarə etmək üçün sadəcə mümkün deyil səmərəli, axşam ərzində bir, bir. Və nə biz, həqiqətən, bu il etmək üçün cəhd olacaq ki, suallar çox olmasına kapitallaşdırmaq tez-tez suallar və tez-tez yaxşı cavab ola bilər asynchronously. Belə ki, heyət cavab vasitəsilə düşünürəm sıralayabilirsiniz və biz qızğın olmadan, kodu vasitəsilə hesab edə bilər mütləq mübarizə təzyiq tərəfindən vasitəsilə yan. Beləliklə, biz hesablamaq ki, suallar təxminən üçdə bir və ya yarım şəxs göndəriləcək, və biz off dərmək çalışacağıq daha elektron yarım və ya, kimi bir çox ofis saat ərzində. Və biz müzakirə istifadə davam edəcəyik həftə ərzində həmçinin. Və nəhayət, bu kurs uğursuz / keçmək alına bilər bilirik. Siz hasar var və ya sadəcə həqiqətən olduğunu hesab əgər bu sizin üçün dünya əgər əmin və ya bu həqiqətən deyil siz çox xarici, bu gözəl yol olduğunu dərk daxil addım olan bəzi etimad qədər əldə sinif, mən səmimi olduğu kimi, il əvvəl. Və sonra beş həftə rəqəm arıtlamaq üçün siz uğursuz / keçmək qalmaq istəyirsinizsə özünüzü bir məktub keçmək dərəcəli, və ya kimi. Və adətən uğursuz / keçmək, mən hesab edirəm ki, tələbələr üçün nə deyil ki, 10 saat, 20 saat, nə bu qoymaq əgər bəzi problemlər ola bilər, və baş tarpıltı edirik divar qarşı və həqiqətən yalnız bir şey aşağı təqib və siz edə bilməz vicdanla, Siz belə bir çox başqa şeylər var, nə mən edir uğursuz / keçmək hesab edirəm ki, bunun kənarında off edir kimi hallar. Harada şey yolunda 90% qəbul etdik. Siz kifayət qədər mükəmməl deyil, bilirik. Amma buna baxmayaraq, o, həyata bir çox var. Belə ki, siz verilməsi kimi uğursuz / keçmək hesab ruhi model, bəlkə də. Bütün hüquqlar, belə ki, ötən həftə biz Not daxil göyərçin və biz kifayət qədər yüksək qrafik səviyyədə proqramlaşdırma haqqında danışdı. Bu gün biz bir dil keçid etmək C, üst aşağı səviyyəli proqramlaşdırma dili çağırıb çox müasir languages ​​indi bəzi, o cümlədən inşa edilir olanları biz müddətli sonuna doğru istifadə edəcəyik. Və syntactically, onlar kimi nə baxmaq bütün çox oxşardır. Belə ki, burada bu keçid etmək başlamaq edək. Belə ki, bu proqram ki, sadə ötən həftə idi dünya proqramları salam. Bu, sadəcə bir ilə, ekran salam dünyaya çap az çıxış bubble pişik həyata gəlir. Yaxşı, biz başqa bu tərcümə indi başlamaq əgər dil, həyata ki, fikir bu gün Çərşənbə eyni, lakin sintaksis dəyişməyə başlayır. Keçən həftə biz idi, halbuki Belə ki, yaşıl bayraq tıklandığında, demək dünya salam. Bu gün biz int, əsas, etibarsız, printf var olacaq həmçinin orada bəzi digər sintaksis ilə geri. Buruq aşırma və parantez və quotes, və etajer. Amma, burada ideya əsasını çap olduğunu dərk və nəhayət əsas indi gedir ki, ola bir proqram başlamaq ilə sinonimidir. Ana yaşıl bayrağı şeyi başlayıb yerləşir olacaq. Belə ki, indi-nin burada bloklar bəzi ayrı tease bildirin biz bəzi konkret nümunələr daxil dalış əvvəl. Yalnız var qovuşdurmağımız Beləliklə, biz, bu bəyanat keçən həftə çağırıb göstəriş. Bunu - bu halda, hello dünya deyirlər. Biz yalnız xətt baxsaq yaxşı C, biz istəyirik necə xüsusi puzzle parça ifadə başlamaq niyyətindədir: printf ("salam dünya");. İndi biz, zamanla bu ayrı daha dolaşmaq lazımdır lakin bir model var ki, bilirik. Bir sözlə, biz olan printf adlanan bu şey var, sözü mahiyyətcə oxşar söyləyin. Yəni bunu nə var. Printf, burada f "biçimli" deməkdir. Belə ki, yalnız daxil edə bilərsiniz deməkdir müxtəlif estetik ətraflı. Belə quote dırnağı bağlamaq biz olacaq nə başlanğıcıdır simli zəng başlamaq üçün. Bir söz, bir söz, bir cümlə. Bir proqramlaşdırma dili bir string sıfır bir ardıcıllıqla deyil simvol və ya daha çox. , H-e-l-l-o, vergül Beləliklə, və s-dir quote dırnağı bağlamaq, bir string. İndi backslash n, bir az syntactically tək, lakin biz artıq nə deməkdir ki, ötən həftə müəyyən? Bu, sadəcə bir yeni xətt var. Siz istədiyiniz kompüter ötürülməsi yalnız bir yolu , orada Enter'a bərabər, lakin deyil həqiqətən daxil edin və buna görə də bütün mess hit istəyirəm haqq proqram format. İndi parantez, bu simli əlavə açıq paren və yaxın paren və daxili ki, simli edir. C, digər proqramlaşdırma çünki ki, çünki Dil şeyi printf arqumentlər almaq və ya almaq kimi parametrləri. Belə ki, kimi bu bənövşəyi Say blokunun indi düşünür başlamaq prosedur kimi funksiyası metodu kimi. Siz, həqiqətən, indi üçün, istədiyiniz nə zəng, ancaq yalnız bir ki, bir miniatür proqram növ var bir xətt yoxdur, az şey. Belə printf biz bir zəng başlamaq olacaq nə də bu halda - funksiyası, və funksiyaları bir şey ekrana bir biçimlendirilmiş string görüntüler - lakin funksiyaları arqumentlər və ya parametrləri edir. Və dəlilləri və ya parametrləri ilə, təşəkkür edirəm, biz demək onların davranış siz keçmək nə təsir edə bilər ki, parantez daxilində. Belə ki, bu halda, printf ehtiyacları çap nə deyib, və biz yalnız burada ikiqat quotes, bu simli keçir ki, biz həqiqətən çap etmək istəyirəm. Bu xətt çox sonuna üzrə nöqtəli vergül yalnız bir tarixi narahatlıq vasitəsi kodu ən xətləri sonunda, Siz kompüter super aydın etmək üçün bir nöqtəli vergül qoymaq kodu bu xətt burada bitir ki. Proqramları daha çox almaq kimi, biz görəcəksiniz çünki İndi bu yaxşı kompleksi, nöqtəli vergül super bizə aydın insanlar edəcək həmçinin kompüter, Ü kodu başlanğıc və son xətləri. Bəzi dillərdə bəzi yoxdur ki, həyata bu eyni məlumat. Və əslində, JavaScript, siz həmişə bir şey lazım deyil də nöqtəli vergül kimi. Amma daha ki gəlib. Belə ilmə. Biz, aşkar, çox daxilən, bu kimi bir şey var idi bir şey təkrar və yenidən. Corab üzərinə qoyaraq, və ya bu halda, merhaba deyən kimi. Yaxşı, C, bu gün başlayaraq, biz bu Scratch ifadə edə isə kimi blok (doğru) printf ("salam dünya"). Biz sanki puzzle qurmaq başlayaraq olduğunuz Belə ki, qeyd əvvəl parça. Eyni bənövşəyi blok var, lakin bu daxilində var mötərizəyə Forever blok və tərcümə etmək üçün ən yaxşı yol C belədir. Heç bir Forever söz var. Siz yalnız C. f-o-r-e-v-e-r yazın bilməz Belə ki, yaxın analog isə edir. Dəyəri çünki İndi, (doğru) bir az axmaq görünür isə doğru heç dəyişiklik? Ehtimal deyil. Doğru isə O, isə, bir müddət deyən kimi. Bu, bütün eyni şey, doğru həmişə belədir. Beləliklə, bu loop həqiqətən loop hansı fahişəliyə cəlb edilməsi maddələri edir? Just sonsuz loop, doğru. A Forever loop və ya biz, ötən həftə deyilən yalnız sonsuz loop. Belə ki, bəzən pis var. Siz niyə Bəzən bir səhv var, bəzən ki iplik çimərlik top və ya hourglass və ya kimi. Lakin bu halda, biz qəsdən, nə üçün səbəbi, yenə eyni şey çap etmək istədi və təkrar. Və ya bir saat kimi halda, siz mənə bir şey təkrar və yenidən. Belə ki, sonsuz loops mənada edə bilər. Bu C biz kodu Forever tərcümə bilər necə. Belə ki, indi bu bir az daha xüsusi edir. Biz 10 dəfə aşağıdakı bəyanatı təkrar etmişdir. Doğrudur çünki (doğru) olduqca, orada işləmək etmir həmişə doğru. Biz əvəzinə C versiyası baxmaq Belə ki, indi sintaksis bir olur az daha sirli. Amma bu görmək başlamaq bir vicdanlı olmaq, bütün alır tez olduqca tanış. Beləliklə, bu loop üçün deyirlər edir. Loop üçün bir şey etmək üçün kompüter demək gedir təkrar və yenidən kimi uzun kimi bunlar doğru. İndi biz tərəfindən nə deməkdir? Bəli, orada loop üçün üç hissədən, və biz olacaq faktiki kontekstində bu qayıda bir anda nümunələri. Kifayət qədər bütün bir dəfə endirmək deyil Belə ki, narahat etmir. Amma int i = 0 mənə vermək deyərək, qısa, uzun hekayə dəyişən növü tam var ki, mənə bir sıra i adlanır və 0 onu başlamaq. Yəni cəbri dəyişən x kimi mənə vermək və 0 onu başlamaq. Amma bu halda biz bu i çağırıb. Sonra orta, bu i az 10 edir. Belə uzun aşağıdakı məhsulları kompüter yoxdur izah edir ki, i az 10 kimi. Və təbii ki, bu az 10 çünki başlayır o 0 başlayır. Sonra nəhayət, bəlkə nə i + + vasitəsilə tahmin edə bilərsiniz. Bu, sadəcə i arttırmayı deməkdir ki, sintaksis bir az var. Belə ki, təkrar-təkrar, i, 1 əlavə edin. Biz bu loop görəcəksiniz kimi, belə ki, bu sintaksis, daha doğrusu, həyata keçirir dəqiq eyni şey, səmimi, Not yalnız belə idi çox ifadə etmək asandır. 10 təkrar və siz tamamlayın. C, ən proqramlaşdırma dilləri, biz bir olmalıdır həqiqətən az daha kompüter üçün ibrətamiz və bu kimi bir şey daxil. Amma biz bu və digər sintaksis qayıda bilərsiniz. Nə dəyişənlər haqqında? Not biz bu narıncı blokları kimi bir şey idi harada dəyişən bəyan edə bilər. Gəlin özbaşına bu counter çağırırıq. Nin 0 onu başlamaq edək, sonra bir şey əbədi edək. Bu halda Not I əks dedi alıram, belə ki, pişik danışan ki, bir az çıxış bubble üçün gedir Bu dəyişən ki sayı. Və sonra biz 1 dəyişiklik counter var. Belə ki, bütün bu bir Forever kilid daxilində bükülür. Beləliklə, biz artıq ilə C tikinti blokları var Bu tərcümə edir. Ki, ola bilər bir yolu bu. Mənə tam verin, bu counter çağırırıq. 0 onu başlamaq orada ilk xətti. (Doğru), mən bir an ki, ideya oğurluq alıram baxmayaraq əvvəl, davam və aşağıdakı. Əks çap və sonra counter arttırmayı, yenidən və yenidən və yenidən. Və ya, yenə + + yalnız bir şey üçün 1 əlavə deməkdir. Amma sintaksis yeni bir parça burada var. Kimi bizim əvvəlki nümunələri arasında nə jumping var? Bəli, bu% d. Beləliklə, siz bəlkə əsasən, səmimi, bu nə nəticə çıxarmaq olar nə dair Not blok edir. Amma yenə C, biz bir az daha xüsusi olmalıdır bu özümüzü ifadə gəldikdə. Belə printf ("% d \ n"). Yaxşı tanış kimi tullamaq olar ki, ən çox. Bu quotes yalnız simli deməkdir, backslash n yeni bir xəttidir. Belə ki, yalnız yeni bir şey burada% d dir. Və bütün bir yer tutucuyla edir. % D bir decimal sayı işarə edir. Və% d vasitəsilə kompüter, burada decimal nömrəsi qoydu. Yaxşı, siz orada qoymaq nə sayı istəyirsiniz? Bəlkə nəticə çıxarmaq olar, eləcə də vergül sonra biz demək counter, biz elan və ya bir dəyişən adı ki bir neçə xətləri əvvəl yaratmışdır. Bu, yalnız bir dəyişən sayede C yolu edir dinamik string. Əksinə Çünki, mən əvəzinə kimi bir şey idi, Bu, printf ("əks"), nə ki, proqram əvəzinə güman edirlər? Bu sözün "əks" çap edəcəyik. Hansı mən istəyirəm ki, təsiri deyil. Mən bəzi rəqəmli dəyəri əvəz etmək lazımdır. Beləliklə, biz printf kimi, o funksiyaları görürsünüz deyil, edə bilər kimi yalnız tək arqumentlər "Salam dünya". Onlar bir neçə dəyişənlərin sonra quote dırnağı bağlamaq vergül almaq olar Biz əvvəlki string görəcəksiniz ki, daxil takıldığından almaq Bu% Bürc placeholders ilə. Yaxşı nə Boolean ifadələr haqqında? Boolean ifadələr doğru və ya yalan bu dəyərləri idi. Bəli və ya yoxdur. 1 və ya 0. On və ya off. Belə ki, Scratch, onlar bu kimi baxmaq və qeyd edir ki, burada alt blok həqiqətən birlikdə deyil iki kiçik blokları. Mən cür sürüklənəcəklər və üç puzzle ədəd azalıb birlikdə belə var ki, artıq puzzle parça etmək ki, Mən x y-dən az və olmaq istəyirəm fikri çatdırmaq bilər y z daha az olacaq. Və mən aşağıdakı kimi bu iki ayrı-ayrı xətləri tərcümə edə bilərsiniz. Üst bir çox trivially, C tərcümə edilə bilər yalnız x ildə yalnız deyərək bizim yoldur daxildir C, mənə başqası yazdı funksiyaları daxil verir. Mən printf istəyirəm, çünki bu halda mən qayğı. İndi biz int əsas (void) almaq. Belə ki, bu səmimi, bu şeyi biridir ki, gün 0 haqqında yalnız çünki olduqca çox mən, zona həyata cür var maraqlı deyil intellektual, sözdizimini bəzi. Amma indi başqa cür tanınan funksiyaları bilmək prosedurları, və ya metodları, ümumiyyətlə, bəzi dəyəri istehsal edir. Onlar bir şey yoxdur. Onlar bir cavab gəlib. Onlar çıxış istehsal edir. Belə ki, int əsas yanında deyərək yalnız bizim stenoqrafiya yolu bu funksiya, bu prosedur, nəticədə gedir bir sıra geri vermək. Və nə ki, biz geri gəlmək lazımdır. Ana yalnız default üçün u mənim dünya standart bir C proqramının həyata almaq olacaq ki, funksiya siz çalıştırın. Ləğv yalnız bu şey deməkdir, əsas, heç edir bu halda dəlilləri. Mən açıq super olan alıram. Orada heç bir strings var, heç bir virgül var. Ləğv əsas üçün dəlillər yoxdur deməkdir. İndi nəhayət, təşəkkürlə, son iki xətləri tanışdır. Bu qıvrım aşırma Inside biz printf var və biz bir dönüş var. Və qaytarılması biz ki cür uğursuz bu halda bütün bunu deyil, çünki orada qoymaq faiz çox. Amma bir kompüter proqramı ilə, bir funksiyası, 0 qaytarır bütün yaxşı deməkdir. Heç bir şey yanlış getdi. Əksinə, funksiyanı və ya 1, ya mənfi 1, geri əgər mənfi 1.337, və ya kimi bir təsadüfi nömrələri ki, ümumiyyətlə səhv həqiqətən baş vermiş deməkdir. Əgər gördüm olsanız, sizin Mac və ya PC etdiyiniz əgər Sizin kompüter və ya qəzaya çünki bəzi annoying mesaj dondurulmuş və bir sirli səhv mesaj var və sonra bir kod kimi sistem kodu 1,2,3,4, bəzi sayı, ki, ümumiyyətlə, demək gərəksiz detal Bookmark insanların ən, ancaq nə bir funksiyası və ya bəzi proqram həqiqətən, qeyri-sıfır dəyəri qayıdıb. Bu xeyrinə 0 bütün habelə deməkdir ki, və sonra mahiyyətcə şeyi sonsuz sayda yanlış getmək bilər. Onlar yaxşı 0 seçdi və qeyri-sıfır dəyəri nə olan pis, biz tezliklə görəcəksiniz. Belə nin irəli getmək və bu yazmaq imkan verir. Belə ki, digər gün bir açmaq mənim Mac istifadə geri terminal pəncərə, sonra kimi, mətn proqramı açıldı TextEdit və mən bəzi kodu yazmağa başlamışdır. Yaxşı ki, gözəl var. Lakin təcrübə Mac müxtəlif olacaq, ya bir Solaris kompüter, Linux kompüter haqqında hər hansı əməliyyat sistem istifadə üçün baş. Və əlbəttə, biz əvəzinə istifadə şeydir bu CS50 Aracı çağırıb. Belə ki, CS50 Aracı proqram indirilebilir bir parça ki, Linux adlı əməliyyat sistemi çalıştırmak üçün imkan verir öz Mac və ya PC xüsusi Fedora Linux. Və siz bir hypervisor deyilən bir şey indirerek edirik. Belə ki, bütün bu problem set 1 sənədləşdiriləcək. Və siz download lazımdır nə qarşı yönlendirileceksiniz. Lakin son nəticədə, bir Mac və ya PC olub, siz bir pulsuz proqram download. Daha sonra CS50 Aracı download, və demək pulsuz proqram - bu hypervisor - bilgisayarınızda bir pəncərədə CS50 Aracı çalıştırmak üçün. Və nə olar bu. Mən indi burada qeyd etmişəm, nə bir masa üstü görünür ətraf mühit. Və mənə həqiqətən bu vahid pəncərə shrink bildirin. Belə ki, indi burada bir az pəncərə ilə, mənim Mac və daxili bu pəncərə tamamilə olmaq olur müxtəlif əməliyyat sistemi. Həqiqətən bu start menyu xatırladan aşağı burada var O cümlədən sub menyular bütün dəstə var ki, Windows, bu CS50 dərslik, Dropbox və kimi bir link. Bu mühit artıq bir standart ətraf mühitə nə hamımız indi istifadə edə bilərsiniz, belə ki, nə olursa olsun, sizin kompüter, siz onu yüklü nə nə version siz yayınlıyorsanız Mac OS və Windows, biz bütün indi var eyni mühit. İndi bu mühitdə bəzi kodu yazılı başlaya bilərsiniz. Mən irəli getmək və gedit adlı proqram açmaq üçün gedirəm. Bu Notepad.exe müqayisə, və ya Bir Mac TextEdit. Və bu yalnız bir super sadə mətn redaktə proqram ki, ilk baxışdan bu kimi görünür. İndi çox üst, mən altında, bir ağ palitrası var jharvard @ cihaz deyir ki, bu qara pəncərə var. Biz istifadəçi hesabı əvvəlcədən yaradılan, çünki o hər kəs üçün John Harvard adlanır. O faylları bütün getmək üçün gedir bir qovluq var, bəzi kodu yazmağa başlayın bilərsiniz burada. Mənə burada davam və yalnız bir az zoom imkan və Mən edəcəyimiz # , int əsas (void) daxildir, və sonra ("salam dünya") printf etmək gedirəm ; 0 qaytarın. İndi bütün bu olduqca qara və ağ. Mənə davam və mən nə gedit öyrətmək üçün bir şey edək həqiqətən edir. Mənə Saxla gedək. Mən jharvard burada sol tərəfində seçmək gedirəm. Belə ki, daha, siz səmimi əvvəl Linux istifadə heç etdik, hətta bu gün onların hamısı mahiyyətcə daxil devolving olunur interface eyni tipi - Mac OS, Windows, və Linux. Mən burada jharvard ev qovluq seçdi. Mən bu fayl hello.c kimi saxlamaq üçün gedirəm. Belə ki, çox üst, mən hello.c tipli; C adlandırma edir. c uzadılması proqram ümumi təcrübə budur. Mən Qazanc edib. İndi gözəl nə, mən səmərəli gedit tədris etdik ki, Bu C proqram edir. Mənim ağ-qara mətn indi kodlu rəng edək ki,, və ya yalnız mənim diqqət çəkir edən sintaksis qeyd Proqramın müxtəlif semantik hissələri. Üst mənim proqramları daha mürəkkəb almaq kimi, Ben, orada tərk Mən yazılı olan hər şeyi bir xülasə üçün gedir. Belə ki, orada qalmışdır. Belə ki, mənə indi həyata zoom və bu terminal pəncərə aşağı gedək. Belə ki, bu bəlkə bir çox insanlar üçün yeni. Bir command line mühit istifadə heç varsa, siz heç vaxt var DOS istifadə və ya Linux istifadə heç etdik, və ya açılan heç etdik Mac OS terminal pəncərə, siz çox şey var belə işarə edərək, və tıklayarak kimi GUI, ilə, və ola bilər sürükleyerek və bırakarak və kimi, lakin ümumiyyətlə - əlbəttə kompüter elm dünyasında - sizin siçan yoxdur bir command line istifadə edərək, ümumiyyətlə, yalnız klaviatura, həqiqətən, bir çox interfeys daha güclü, bir dəfə ilə acclimated almaq müxtəlif əmrləri. Və qeyd etmək ehtiyacı pulsuz özünüz sort və basın hər şey. Belə ki, gedit, biz hər iki dünyanın ən yaxşı var düzmək lazımdır. Bu məzmun sürükle bilər, bunu görə bilərik gözəl və rəng kodlu. Lakin bu proqram çalıştırmak üçün vaxt gəldikdə, biz bəzən rəftar yalnız burada bu kiçik pəncərə istifadə edin. Mən irəli getmək və bunu gedirəm. Alt ağ-qara pəncərə, mən davam gedirəm və cingilti yazın. Və cingilti bir compiler adı. Bu, mənim kodunu çevirir bir proqram daxil ki, obyekt kodu. Keçən həftə qısa gördüm ki 0s və 1s. Keçən həftə Xatırladaq ki, biz getdiklərini vəd bu kimi bir şey getmək - biz olmaq üçün lazım bu kimi bir şey - və bu, əlbəttə, bir insan olur ki, bir şey deyil əl etmək. Belə ki, əvəzinə biz bir proqramı istifadə etmək niyyətindədir və bu proqramı edirik Bu halda cingilti adlanır. Və proqram adı hello.c edir. Daxil mənbə kodu əldə hello.c tərtib Belə üçün obyekt kodu, və ya 0s və 1s, bunu yalnız üçün kifayət olmalıdır bu və hit daxil edin. OK, heç bir şey kimi görünür. Amma ki, u mənim adı, indi, ötən həftə bilirik C yazılı bir proqram, gic-gic a.out adlanır. Ən maraqsız adı ilə gəlmək bilər. A əlifbanın ilk hərf, həyata nə outputted, amma belə olmalıdır. Bu, mənim proqram, və indi dot çizgi, biz görəcəksiniz kimi, təhlükəsizlik xüsusiyyət həqiqətən yalnız bir növ, çünki a.out mən yazdığı bir proqramdır. Bu, mənim kompüter gəlmədi, bu deyil Program Files. Bu Mac OS Proqramlar qovluğunda deyil. Mən kompüter super aydın olmalıdır, və demək Bu proqram, a.out, cari qovluqda edir cari kataloq. Və belə bir mühitdə bu təmsil yol dot Daxil hazırda hansı qovluq təmsil is Və belə. / Just run a.out deməkdir Cari qovluq. Mən daxil edin və voiture, mənim ilk proqram ilə bu axır. Indi mənə geri addım götürək. Bu pəncərə bir az kiçik və həyata ki, alt burada cihaz sol digər icon edir. Biri, bir web olduqca tanış olmalıdır, Chrome is Aracın daxili brauzerinizin. Bu ağ-qara icon yalnız bir böyük terminal pəncərəsi. Bu sort üçün bir az annoying edir Belə ki, əgər yalnız var qarşılıqlı olan bir pəncərə bu kiçik kiçik dilim proqramları, yerine, bunu edə bilərsiniz. İndi mənə bir neçə tezliklə yazmağa başlamaq bildirin tanış əmrləri olmalıdır. ls. Belə ls liste üçün əmr edir. Belə ki, bir Mac OS və Windows, siz ümumiyyətlə cüt basın ki, qovluq və sonra, geçmiş, siz müxtəlif faylları bütün bax və qovluq. Yalnız yazın bir command line mühitdə əmrləri və ya mətn, ls ekvivalent edir. Belə ki, bu kataloq var nə mənə göstər. İndi məhsullarının bir dəstə bir az həm ki, burada var tanış və bir az müəmmalı. Lakin bildiriş ki, yalnız Windows və Mac OS, jharvard kimi bir masa üstü qovluq var. Mənim masa üstü hər hansı bir nişanlar baş Beləliklə bu qovluqda olmalıdır. Bir yüklənmə qovluğu stuff ki, var Chrome orada qoymaq bilər. Dropbox. Belə ki, cihaz Dropbox üçün daxili dəstəyi ilə gəlir Belə ki, dövr ərzində sizin Dropbox ilə eşzamanlayabilirim hesab edir ki, belə proqramları bütün yedeklenir. Onlar digər kompüter əldə edirik. Bir şey heç cihaz ilə yanlış gedərsə, siz çox asanlıqla Dropbox dən bərpa. Belə ki qovluq üçün var. Hello.c - Mən ki, iki faylları var və a.out. Və sonra sağ bəzi digər qovluq var payment rəftar edirik ki, web ilə semestr sonuna doğru almaq proqramlaşdırma. Deyərək ki, Mən bunu. / A.out daxil edin getmək dizinde Mən cari kataloqu, Ben və çalıştırmak proqram orada a.out çağırıb. Bütün hüquqlar, belə ki, gözəl və yaxşı, ancaq ki, bütün deyil a.out kömək adlı proqram yazmaq üçün çekici. Belə ki, biz, həqiqətən, bu fərqli bir az edə bilərsiniz. Yerine çalışan cingilti Belə ki, hello.c isə əlavə edək bir command line argument deyirlər nə. Belə bir command line arqument və ya bu halda bir keçid, yalnız sonra bir sətirinə yazın ki, bir söz və ya söz Yayınladığınız istədiyiniz proqramı. Belə ki, bu halda, cingilti mən qaçmaq istəyirəm proqram,-o vasitəsilə çıxış artıq a.out adlı bir fayl. Çıxış fayl salam deyilən və tərtib bunu xətt üzərində son sözü hello.c. Belə ki, qısa, bu elə çox marjinal yaxşılaşdırılması əvəzinə bu gic adlı fayl a.out olan, İndi cingilti-o salam, sonra hello.c etmək olar sonra Enter düyməsini basın. Heç bir şey görünür, lakin daha çox 0 istəyirəm - zaman heç bir şey yanlış heç bir şey deməkdir ki, baş görünür - Mən indi həqiqətən daxil edin, indi ls nə edək və bir salam proqram var. İndi salam yazın əgər, komanda tapılmadı. OK. /. Belə ki, məhz hüququ. Belə ki, bu proqram çünki mən yazdım, və bu gəlmədi kompüter,. / hello, daxil edin, deməkdir İndi salam çalışan alıram. Belə ki, var. İndi nəhayət daha command line almaq lazımdır nə Bizə daha çox imkan verir ki, arqumentlər, ancaq yalnız üçün Bu köhnə papaq ola bilər kimə, mənə həqiqətən getmək bildirin directory burada və yalnız necə başqa biz bir iltifat vermək salam dünya həyata haqqında getmək bilər. Mənə bura daxil edək və mən onu açmaq üçün gedirəm. Belə ki, həqiqətən, Mən yapýyorum nə izah gedirəm, belə bu faydalıdır. Məni geri edək. Mən bu uzun müddət bunu etdik. Belə ki, sağ üzərində qeyd bir neçə var işin source1m və source1w adına ki, rehberler. Bu istifadə yalnız silly konvensiya deyil. Kaynak yalnız mənbə kodu deməkdir 1 Bu həftə biri deməkdir və m o Bazar ertəsi, və w bunu çərşənbə deməkdir deməkdir. Orada sirli Belə bir şey yoxdur. Bu yalnız stenoqrafiya notation edir. Bu mavi şey başqa kimi tanınan qovluq var rehberler. İndi o qovluğa getmək istəyirəm, və normal kompüter Mən yalnız bir qovluq simgesini cüt basın və bilər Bütün fayllar var. Amma bir command line mühit, mən olduqca edə bilməz ki, əvəzinə, mən əl rehberler dəyişdirmək lazımdır. Mən cd və source1m yazın əgər, daxil edin, qeyd edir ki, mənim dərhal, sol ağ şey, yalnız dəyişdi. Və həqiqətən, yalnız sonra mötərizədə və dedi yalnız Mən demək ki, az squiggle ki, tilde simvolu John Harvard ana kataloq, onun Belgelerim, şəxsi faylları. Amma indi parantez bu ~ / source1m deyir. Bu yalnız mən source1m adlı qovluq Ben deməkdir John Harvard ev qovluğuna ki. İndi asan, bu qovluq faylları siyahısını istədiyiniz Belə ki, əgər sual, mən yalnız ls yazın. İndi mən bu gün üçün əvvəl yaratdığı bütün faylları bax mühazirə, və ya, baş əksəriyyəti olan . c sona. Belə ki, mənə indi davam və deyilən proqramı gedit run bildirin bəzi təsadüfi hacker tərəfindən yazılmış olan holloway.c, İnternet ki, bu kimi bir az görünür. Və biz heç bu biri ilə getmək niyyətində deyil ətraflı, lakin o daha rahat üçün, xüsusilə, əgər Bu proqram burada nə kimi bir tahmin etmək istəyirəm. İstirahət, daha az və ya daha çox rahat olsanız, əmin biz hətta sonuna şey bu cür almaq deyilik Bu dövr. Bu obfuscated C müsabiqəsi bir misal nə olan vasitəsilə siz bəlkə ən sirli axtarır proqram yazmaq digər Ağıllı insanlar ötüb keçmək bilər, eyni olan şeylər yazmaq və yazmaq olar ki, off göstərmək üçün çalışırıq Siz daha çox sirli şeylər. Belə ki, bu bir yaxşı yazılmış proqram bir nümunə deyil üslub baxımından, bu bir proqram nümunəsi insanlar üçün çalışır, bir müsabiqə qalib qeyri-müəyyən və mücərrəd olacaq. Biz bu şey run əgər Belə ki, mənim terminal pəncərə daxil bildirin belə danışmaq. Belə ki, bu qara və ağ mühit adlanır ümumiyyətlə terminal pəncərəsi. Mənə davam və tərtib edək. Bu proqram, çünki cingilti istifadə etmək niyyətində deyiləm bir az sirli və fərqli bir ehtiyacı compiler, GCC adlı bir. Amma eyni şey deyil. Bu obyekt kodu kodunu edir. İndi a.out ki, proqram run əgər yalnız bunu gördüm. Ki, fellow Belə ki, il qalib. Afərin, biz bu istiqamətdə, hər se gedən deyilik. Belə nin əslində indi biz nə edə ayrı tease edək bu əsas bloklar ilə daha çox etmək maraqlı proqramları. Biz bir proqram yazdıq Belə ki, bir proqram run etdik. İndi biz, həqiqətən, sadələşdirmək bilər və artıq yazmaq üçün tez də söz cingilti. Bu, bizim proqramları daha sirli almaq kimi olur, biz, və ya daha mürəkkəb deyil, biz, həqiqətən, bu komanda çalışır. Belə ki, mənim ana qovluğu geri bildirin, belə danışmaq, mənə bildirin aradan qaldırılması - rm də aradan qaldırılması əmr edir - Ben aradan gedir fayl a.out adlanır və salam. İndi çox kimi bir command line mühitdə qeyd GUI, siz istenir almaq. I baxmayaraq düyməsini basın bilməz; mən bəli üçün, bəli üçün y y yazın var. İndi yenə xəbərdarlıq ls yazın əgər o yaşıl ki, proqramları - a.out və salam - getdi. Rm çəkinin. Sürükleyerek yalnız siz kimi pis şeylər edə bilərsiniz sizin zibil şeylər. Belə ki, indi-nin irəli gedək - və mən bunu bilər - cingilti-o salam, hello - Mən artıq əmr yazaraq cansıxıcı alıram. Mən tez bir az tipli baxmayaraq. Belə ki, əvəzinə salam etmək edə bilərsiniz. Belə bir compiler deyil olun. Bu da, yalnız Linux ilə gəlir ki, bir dost proqram halda - əməliyyat sistemi - proqramları tərtib prosesi avtomatik. Belə ki, əvəzinə cingilti-o fayl və xatırlayaraq sonra s, xüsusilə bir dəfə o xətləri uzun almaq və artıq, yalnız etmək yaza bilərsiniz. Və bu stuff ki, bütöv bir dəstə həyata tüpürmək gedir biz nəhayət bu dövr görəcəksiniz. Amma indi görürsünüz, mən növü ls, hello mənim kataloq geri edir. Və həqiqətən Mən çalıştırabilirsiniz. / Salam. Belə ki, yalnız nə çalışan prosesi avtomatik etmək, bu halda, çox daha uzun, daha kompleks komanda. Beləliklə, biz bir çox yalnız, çünki markası istifadə etmək olacaq dostluq daha çox istifadəçi. Amma indi üzrə daha maraqlı proqram bunu bildirin yalnız salam demək. Belə ki, proqramları, biz bu günə qədər əsas var yazdıq. Bu yalnız hər şey off kicks ki default şey. Amma digər funksiyaları həyata orada həmçinin, və stdio.h biz başında gördüm ki, budur fayl əvvəl və standart kitabxana kimi tanınan nə var. Standart kitabxana Inside funksiyaları bütün dəstə edir başqa kimsə yazdı və bu istifadə edə bilərsiniz funksiyaları daha yazmaq maraqlı proqramları özümüzü. Mənə geri avadanlığına gedək. Mən bu terminal pəncərə yaxın gedirəm. Mən daha əvvəl yazdığı şeylər yaxın olacaq və yalnız getmək alıram hello.c daxil, indi hiss edirəm ki, aşağıdakı edə bilərsiniz. Salam dünya bütün maraqlı deyil, mən istərdim özüm üçün bu proqram kişiselleştirmek. Əvəzinə dünya deyərək Belə ki, mən gedirəm davam və demək - Mən David yazın bilər - lakin bu, həqiqətən sort edir əsaslı eyni. Amma bu tutucu fikir edək. Daha printf olaraq, C Xatırladaq ki, biz bu idi placeholders, orada yalnız% d çoxdur. % D Beləliklə, tez ağlı başında olma çek idi. Okay, bu decimal sıra. Ondalık rəqəm, bütün var. % C Beləliklə, qarşılaşma kimi, bir simvol olacaq. Z vasitəsilə burada bir xarakter qoyun, bir məktub, durğu simvolu və ya. Bir xarakter,% f, digər dillərdə hər kəs bilirsinizmi? Üzən point dəyəri belə. A real sayı. Belə bir decimal sayı - bu həqiqətən bir real sayı ilə kəsir və sol rəqəm bir sıra və doğru edir. % S, simli. Biz tez-tez görmək olacaq bir. A simli, yenə, bir sözü, bir söz, bir ardıcıllıqla deyil fərdi simvol. Və nəhayət, lld? Beləliklə, bu küncdən işi çoxdur. Uzun, uzun decimal. Bu böyük, siz ki, yalnız bir sıra deyil, istədiyiniz Belə ki, əgər daha böyük bir sayı istəyirsinizsə, sizə müəyyən etmək olacaq müəyyən bir ölçüsü olan kompüter. Belə ki, bu bir az çimdik imkan verir. Əksinə David yalnız ağır kodu dən, mənə bir az qoy dinamik% s deyirlər. Belə bir string üçün tutucu olan, burada% s qoydu. Sonra burada "David", sonra mənə vergül bunu bildirin, və. İndi bu, bütün intellektual maraqlı deyil İndi etdiyiniz bütün həqiqətən daha çox iş yaratmaq, çünki kompüter. Bu da bir kompüter yoxdur demək deyil, mən indi oldum Bunu və nəticədə vergül burada bir simli daxil deyərək, Burada simli edir. Belə ki, bu daha yaxşı təkmilləşdirilməsi deyil, ən azı bu daha maraqlı proqram doğru bir addımdır. Çünki, mənə irəli getmək və bu pəncərə bir az edək böyük, mənə irəli getmək və salam etmək run bildirin. Və indi. / A.out iş deyil, niyə? Bütün hüquqlar, indi salam deyirlər. Belə ki, təkrar etmək, həmçinin bir-o ilə cingilti ki, adını proqram daha maraqlı bir şey olacaq. Və voiture: indi salam David deyir. Bütün hüquqlar, hələ bir axmaq proqramı. Belə ki, indi-nin əslində burada geri anlayışı tətbiq edək bir değişken. Mən bir dəyişən elan bilər gözəl olmaz string kimin növü? Və dəyişən dəyəri faktiki istifadəçi gəlir onu ya özü. Belə ki, özbaşına, mən olan mənim dəyişən s, zəng etmək üçün gedirəm Bir dəyişən zaman yalnız bir ümumi konvensiya adlı simli. Mən bərabər işarəsi etmək gedirəm, və sonra bir zəng etmək üçün gedirəm funksiyası GetString çağırıb. Belə GetString C. Bu daxil gelen şey deyil bu CS50 kadr həqiqətən yalnız üçün yazdığı bir funksiyası prosesi asanlaşdırmaq həftə bu ilk neçə istifadəçi girişi almaq və formada istifadəçi girişi əldə ip, və ya nömrələri və belə. Belə GetString printf kimi, ancaq açıq-aydın deyil, onun adı deyir nə olacaq çap simli almaq. Amma GetString istifadə etmək üçün, biz bir dəyişiklik etmək olacaq burada, bu kənarda. Belə ki, daxilən bu proqram ümid edirəm ki, elə gedir istifadəçi bir string almaq, sonra nə etmək olacaq ki, simli ilə, s adlı? Bu, sadəcə, sağ çap olacaq? Hələ bir stimullaşdırıcı Çünki gedən bütün etmək Ü% s o dəyəri plug getmək lazımdır deyir. Ən azı bu aksiyada görmək belə edək. Mənə saxlamaq və kiçiltmək edək. İndi terminal pəncərə aşağı burada, bir kiçik dilim, salam etmək mənə daha nə edək. OK, və ah, lənətləmək, mən səhvlər bütün dəstə var. Mənə diyirləyin və biz ilk görək - belə ki, həqiqətən belə bir daha böyük pəncərə bunu edək Mən berbat necə pis ola - belə salam olun. OK, doğru, bir fəlakət var? Mən kodu üç xətt yazılı və sonra mənə 12 səhvlərin verilmiş oldu. Belə ki, niyə bu? Belə ki, xoşbəxtlikdən, görürsünüz oftentimes zaman bir çox səhvlər siz var çünki bir dəfə həyata spitting, həqiqətən yalnız var burada kompüter qədər qarışdı. Və burada aşağı olur zaman səhv olaraq qalır. Və yalnız açma və büdrəmə başlayır və daha qorxudan stuff həyata spitting çox həqiqətən tətbiq edilir. Belə ki, ümumiyyətlə, həmişə üst bir ilə başlayın. Belə ki, qırmızı ki, çox üst ən instansiya hata beledir bu. Mən bəyan identifikator simli idi istifadə edin standart deməkdir? Mən etdim. Mən string nəzərdə, lakin bu, çox, çünki söz dizesidir Mən şifahi həqiqətən istifadə saxlamaq ya C mövcud deyil. Bu yalnız ilk həftə və ya iki istifadə edəcəyik şey burada, lakin cs50.h. adlı bir fayl var Beləliklə, bu digər kitabxana var ki, bilirik ki, kadr yazıb, belə ki, son zamanlar çox yazılı edilmişdir stdio.h. Lakin daxili cs50.h ki, bir sinonimi bir tərifi növ ki, bu söz string yaradır. Belə ki, indi mənim terminal pəncərə geri imkan verir. Mən Ctrl-L bu bütün mess təmizləmək üçün gedirəm. Biz yalnız rəftar hər şey təmiz silmək və mən davam etmək gedirəm salam yenidən daxil edin. Belə ki, indi nə baş verib? İndi bu səhvlər bütün getdi. Mən həqiqətən nə edib? Mən yalnız simli mövcud olan kompüter tədris etdik və bu cs50.h. adlı fayl Belə ki, tapmaq üçün harada İndi siz bilirsiniz, çünki şikayət dayandırmaq ki funksiyasının bəyannamə belə danışmaq. Dünyada mövcud yerləşir. Belə ki, indi mən irəli getmək və salam çalıştırmak üçün gedirəm. Mən sonsuz loop, heç nin baş var görünür. Mən burada bir şey yazın lazımdır. Mənim proqram kodu ilk xətt GetString edilib. Mənə bir string almaq üçün Belə ki, sözün gözləmə var. Belə ki mənada bəli, bu sonsuz loop edir. Göründüyü GetString defolt davranış olduğunu biz yazıb - heyət - ki, yalnız gözləmək və gözləyin və gözləmək və gözləyin və gözləmək deyir istifadəçi daxil bir şey yazaraq bir string verir qədər I-d daxil edin - Mənə davam və D-a-v tipli bildirin. Və orada David salam edir. Yalnız akt var kimi İndi bu görünür edir? Mənə davam və Tommy yazın edək. Tamam daxil edin, iş görünür. Rob, Zamyla üçün işlər üçün işlər üçün çalışır - tamam. Belə ki, çox güman ki, iş olacaq. Belə ki, biz həqiqətən vermək nə çap etməlidir və biz burada bir az çətin ola bilər. Biz salam kimi bir şey əgər in nəzər salaq. Burada edə bilərsiniz, surəti, pastası bax edək. Hesab edirəm ki, bir neçə dəfə buraya yapışdırıb etmək niyyətində deyiləm. Pastası, tamam, + Ctrl + V. Shift Belə ki, nə ola bilər burada pis ki, nə? OK, belə ki, segfaults. Belə ki, bəzi əvvəl fonları ilə bilirik ki, onlar olduğunuzda, ümumiyyətlə, kompüter giriş çox verilməsi pis - yəqin ki, bu kimi uzun adları almaq üçün nəzərdə deyil şeylər. Həqiqətən, web dünyada da, bu, bir qədər olur siz olduğunuz bir veb dizayn edirik vasitəsi zaman layihələndirilməsi Facebook, siz özbaşına qərarlar qəbul etmək necə uzun olacaq kiminsə kimi ön, Facebook istifadəçi adı olacaq? Və ya necə uzun kiminsə adı olacaq? Necə uzun kimsə telefon nömrəsi və bu kimi olacaq. Proqramçılar pis fərziyyələr etmək Əgər, proqramlar qırmaq siz onlara daha input daha çıxış verilməsi cəhd çünki əksinə, onlar yaddaş çox. Və ya RAM, mən Enter İndi əgər onun üçün ayrılmış və biz kitabxana, çünki proqram həqiqətən, çalışıb və biz, həqiqətən, bu halda edirdim. Amma şübhəsiz ki, bu dövr, ən azı bir yazacaq Bu sözləri demək ki proqram. İndi bu həftə saxla, bəlkə indi iki gün. Segmentasyon günah pis bir şey deyil. Bu sizin bunu bir şey kompüter müraciət edəcək təxmin etməyib. Siz və bu halda, proqramçı, təxmin etməyib. Çox corab bu xovlu, müxtəlif var idi nə kimi künc hallarda biz rast bilərdi. Eyni proqramları necə uzun təxmin olmayan kimsə adı olacaq. Yoxsa nə mən pis niyetli bir istifadəçi var və onun adı, əgər həqiqətən olduqca qısa, lakin onlar yalnız çalışdığınız Mənimlə mess üçün? Ne proqramı davranış olacaq? Yaxşı, bu halda, bir şey həqiqətən qəza bilər. Belə ki, bunu edək. 90 dəqiqə, bu dəhşətli uzun vaxt informatika etmək. Niyə biz bir beş dəqiqə alaraq vərdiş halına deyil burada qırmaq və biz geri gələndə, biz bəzi daxil dalış lazımdır daha mürəkkəb və məcburedici proqramlar? Beş dəqiqə. Bütün hüquqlar. Belə ki, bir tez comment. Hesab edirəm ki, bu əvvəl ekranda olsa, nə deyib am mənim ağız çıxdı cs50.net/rsvp idi. Bu doğru deyil. cs50.net/lunch. Belə ki, indi siz / nahar da bu RSVPing cəhd edə bilərsiniz. Amma indi bunu edək. Belə ki, bu insanlar bir çox üçün super sürətli, super yeni olmuşdur. Bəzi insanlar üçün Köhnə papaq. Belə ki, yalnız bir an geri bildirin, biz var necə yalnız bir an əvvəl bu salam dünya çıxdı. Belə ki, ilk növbədə, bu CS50 Aracı var. Yenə, proqram təminatı, problem parça 1 qurmaq demək olacaq download olduğu necə basın nə, bu, download və s. Bu təlimatlara əməl dəfə və sonra, siz edə bilərsiniz Sizin pəncərə artırmaq üçün, və Mac və ya PC bir baxmaq bu kimi az bir şey. A qara fon, bütün üst bir ev qovluq faylları, bir zibil üst sol bilərsiniz, getmək alt menyu. Belə ki, yenə, Mac OS və ya Windows ruhu olduqca oxşar, bu Linux olmaq olur olsa belə. Belə ki, biz gələn nə oldu? Yaxşı, biz proqramlar yazmağa başlamışdır. Və bütün bir yazmaq edir ki, ötən həftə geri proqram, sadə mətn redaktoru Notepad və ya TextEdit kimi. Açığı, Microsoft Word istifadə belə olar. Bir çox var, çünki pis şeylər nəticədə baş verəcək əzazil bir proqram yazmaq üçün həll, üstəgəl bu rəftar bu yanlış formatında edin. Amma ki, bütün, yalnız bir mətn redaktoru, bir söz işlemci Əsas bir proqram yazmaq lazımdır. Belə ki, CS50 Aracı, biz bir sadə şəkildə bunu edə bilərsiniz. Biz yalnız sol alt Bu icon basın. Və yenə problem 1 Bu sizə məsləhət və voiture edəcək dəsti - biz başlaya bilərsiniz bu qara və ağ interface almaq kodu yazmaq. Belə ki, yenə bir super sadə proqram yazmağa başlayın edək. Mən Fayl Saxla qalxmaq gedirəm, mən zəng gedirəm Bu, hello2.c, deyək. Mən yalnız jharvard tıklayarak bu deyirəm, bu qoymaq onun ev kataloqu, mən, həqiqətən, qayğı yoxdur Bu gedir yerləşir. Və sonra edin. İndi mənim proqram yazılı başlaya bilərsiniz. Mən əvvəllər mən int yazmaq lazımdır ki, xatırlayıram əsas (void). Üst sol böyüdün. Və sonra printf demək istəyirəm ki, iki edirlər. İndi bir newline, yaxın quote, yaxın parantez, nöqtəli vergül. Və sonra mən ki, mənim terminal pəncərə burada enmək yalnız rahatlığı üçün, gedit ilə əlaqədar. Və mən irəli getmək və salam etmək yazmaq üçün gedir, amma alıram tək hello2 salam. Belə ki, mənim fayl hello2.c deyirlər. Buna görə də mənim fayl bu halda, hello2 adlı edilməlidir. Dammit, I yanlış nə idi? Siz geri əgər bütün sağ, mən aydın bir xətt çıxarılmışdır nə əvvəlki proqramların bənzəyirlər. Amma biz başqa bu tease halda nin görək. Təəssüf ki, insanların çoxu proqramları yazan olan biz proqramlarının bütün yaxşı şeylər asanlaşdırmaq yoxdur yazın. Beləliklə, biz çox nə etmir artıq üzsüz növü var burada hiss və biz yanlış nə həyata rəqəm bilər baxın. Dolayısı C elan orada çox ilk deyir növü int ilə printf kitabxana fəaliyyət göstərir. OK, mən hissəsi başa düşülür. Amma printf istifadə ki alluding görünür səhv, birtəhər. Və nə mənada səhv? Mən yalnız bir fayl ki, kompüter öyrətmək etməyib stdio.h çağırıb. İndi mən yalnız indi printf ki alarkən stdio.h və həqiqətən digər orada olacaq biz istifadə almaq lazımdır ki, eyni fayl funksiyaları. Belə ki, indi mənə irəli getmək və Ctrl-L yalnız təmizləmək üçün təşkil edək ki, üz, hello2 etmək təkrar və voiture. Və biz yenidən, daha kompleks bu funksiyanı izah edəcəyik çox bugünkü məqsədləri. Amma cingilti run idi, və cingilti mənbə kodu edir və 0s və 1s həyata spits. Və bu halda 0s və 1s o nə deyilir? OK, kodu etiraz. Onlar istəyirik ki, fayl, belə adlanır bu halda hello2. Mənim mətn faylı hello2.c, çünki daxil edin. İndi iki ünlem, nida almaq var point, ünlem. Bütün hüquqlar, biz indi strings almaq imkanı var belə yəqin. Yaxşı, biz istifadəçilər başqa nə ola bilər? Yaxşı CS50 kitabxana, digər funksiyaları var ki, Bu ilk bir neçə gün həyatımızı asanlaşdırmaq üçün gedir. GetChar, GetDouble, GetFloat, GetInt, GetLongLong, GetString. Yaxşı, bu ilk asan off dərmək edək. GetString sözün ki, yoxdur. Bu, sadəcə, bir şey yazın istifadəçi üçün gözləmə, orada oturur və tezliklə mən bir şey yazın və bunu Enter kimi ki, dəyəri bir şey yoxdur. Belə nin dəqiq nə ki, məsələn geri bildirin GetString edirdi. Mənə davam və gedit, hello.c qədər açmaq edək və geri biz off sol harada ki, sağ fasilə əvvəl bu. Belə ki, indi bir az daha ətraflı başqa bu tease bildirin. Belə ki, xətt 6-iki şey var hazırda baş. Bərabər işarəsi ilk yarısında və ikinci yarısında ayıran olunur. Beləliklə bərabər Qeydiyyat sol tərəfində, biz istəyirik string s etdi. Və sonra, yalnız layman nin şərtləri, simli s nə etməklə, sizcə? Bu nə yaratmaq var? Belə ki, s adlı simli yaradılması oldu. İndi həqiqətən nə deməkdir? Bəli, bu s adlı simli üçün yer sifariş edir. Bu çox doğru deyil. Bu nə edir? Bildiyiniz kimi Yaxşı kompüter, sabit diskler var; olduğu var faylları saxlanılır. Kompüter RAM var və proqramlar yüklənmiş olduğu ki onlar çalışan edilir. Belə ki, zaman bir icon və Microsoft Word açır cüt basın qədər, Microsoft Word olan, RAM, belə danışmaq üçün çalışan kompüter elektron hissəsidir. Iplik ki, deyil, fiziki, mexaniki hissəsi olduğu data ümumiyyətlə uzun müddət saxlanılır. Belə ki, simli s olduqca çox kompüter mənə vermək danışanlardan kifayət qədər simli uyğun qoç. Çünki İndi ki, bir oversimplification bir az var simli necə böyük olacaq? Yaxşı həqiqətən gəlib belə həftə, hələ bilmirəm biz, həqiqətən, simli olduğunu qat geri çəkin və bilərsiniz biz həqiqətən nə deyim. String, indi üçün, yalnız bizim dünyanın gözəl asan olur. Amma string s indi, s adlı simli bəyan edir. Simli bəyan edir. Bu istifadəçi simli üçün RAM yer tutar yazın haqqında. İndi eyni giriş hüququ ilə baxaq. Belə GetString () deyir. Və bir az ağlı başında olma kontrol edin. Parantez daxilində heç bir şey yoxdur ki, GetString haqqında nə deməkdir? Bu arqumentlər heç edir. Yəni, hər hansı bir şəkildə davranış təsir edə bilməz. Siz onu istifadə hər zaman, bu simli olacaq və bu. Əksinə, printf, inşallah öz davranışı edir hər dəfə dəyişir. Əks halda, bu olduqca yararsız çap funksiyası əgər eyni şey deyil. Həmişə David və ya bir şey çap edin ixtiyari bütün vaxt, zaman. Belə printf bir arqument var hissi verir. Mən istədim, çünki GetString, həqiqətən, mübahisə lazım deyil istifadəçi bir string almaq və olacaq olan istifadəçi var etmək müxtəlif məktublar yazaraq dinamizmi təmin klaviatura hər vaxt. Belə ki, son nəticədə nə GetString edir? Bu kiçik qara qutusu olaraq düşünün. Bu qara qutu heç bir daxil edir, lakin zaman bang haqqında ki, bu istifadəçi daxil tipli bir string həyata spits Və bərabər işarəsi var ki, orada almaq deməkdir hüququnu həyata tüpürmək və daxili saxlamaq nə sol budur. Burada Beləliklə bərabər işarəsi, faktiki demək deyil bərabərlik, bu, daha çox texniki tapşırıq deməkdir. Sağ dəyəri götür və onu qoymaq sol dəyişən. Belə ki, bütün orada baş verən deyil. İndi line 7, biz printf zəng edirik. Belə printf inşallah indi bir az darıxdırıcı olur. Belə bir biçimlendirilmiş string çap. Nə string? Çap, "h-e-l-l-o,% s ! \ N ". Bütün hüquqlar, mən% s üçün plug-nə istəyirsiniz? Sanki, nə s saxlanılır. Belə ki, bu halda, az ağlı başında olma çeki, neçə arqumentlər yoxdur printf almaq? OK, bir eşitdim. Mən bir eşitdim. İki, mən iki eşitdim. Və necə üç? OK, üç? Əla. Üç mümkün cavab, onlardan yalnız biri doğru deyil. Belə ki, dəlilləri yenidən funksiyasının davranış təsir göstərir. Keçmişdə printf yalnız bir arqument almaq idi. "Salam dünya" bir dəlil idi. Bu vergül olduğu Ancaq indi görürük. Bu vergül deməkdir quote / dırnağı bağlamaq, kənarda deyil hey printf, burada ikinci bir dəlil gəlir. Belə ki, ən çox proqramlaşdırma dillərində vergülləri ayrı-ayrı bir çox dəlilləri. Belə ki, cavab burada, çünki mütləq bir deyil bu vergül var. Belə ki, minimal, printf yəqin iki edir arqumentləri bu dəfə. Amma burada bir oyun sual üçün imkan nə bu vergül haqqında? Bu üç dəlilləri həqiqətən olduğunu demək mi? Bu, bu və bu. Belə ki, heç bir ki, vergül quotes daxilində, çünki hansı həqiqətən İngilis yalnız estetik deməkdir. Bu sayı ilə əlaqəsi var Bu proqram dəlilləri. Beləliklə, bu vergül ikiqat quotes kənarda deyil. Və sonra 0 qaytarın. İndi baxaq yalnız növ üçün iman bu bir almaq bu gün və yalnız funksiyaları həyata zaman həyata bilirik ki, kodu xətləri, ümumiyyətlə bəzi dəyəri qaytarmalıdır. Bu halda, yalnız əsas, bir int qayıtmalıdırlar çünki yalnız dil C işləri yoludur. Heç bir şey yanlış getdi, çünki bu proqram kimi hiss gözəl, yalnız ağır qaytarılması 0 kodlu. Amma əksinə, mən yalançı kodu bu yazmaq gedirəm biz sock etdi zaman, indi çox Joseph kimi etdi Məsələn keçən həftə. Bir şey yanlış getdi varsa - bu faktiki kodu deyil - getdi yanlış, sonra edək ki, 1 qayıtmaq. Else 0 qaytarın. Belə ki, bu biz bu olacaq yerdir. Bu, yalnız pseudocode faktiki C kodu deyil. Ancaq bu geri bilər necə müxtəlif mümkün dəyərlər. Amma indi mən yalnız irəli getmək və 0 qayıtmaq üçün gedirəm. Bütün hüquqlar, indiyədək sintaksis, funksionallıq hər hansı sual, və ya kimi? Bəli, geri. Auditoriya: [işitilemez] DAVID MALAN: Siz Qaraçuxurlu bir az danışmaq olarmı? Nə üçün bu proqram qaytarılması 0 idi, və? Auditoriya: [işitilemez] DAVID MALAN: Mən tənbəl var, çünki Oh, o, sorry. No yaxşı akademik cavab, 0 qayıtmaq. Əsas əgər cür texniki C deyərək, bu xilas mən bilər açıq-aşkar bir dəyər qayıtmaq deyil, 0 qaytarılacaq sizin üçün avtomatik olaraq. Doğru olan, yalnız əhatə edən deyiləm. Amma, mən bu yolu həyata olmalıdır. Mənim səhv çox başqa çox maraqlı paket. Evet? Auditoriya: Adətən siz etibarsız yazın zaman ki, siz deməkdir bir şey yoxdu. DAVID MALAN: Normal. Əvəzinə, siz, bir funksiyası adı əvvəl müəyyən sonra burada Məsələn, etibarsız, funksiyası bir şey geri deyil. Ona görə də mən yalnız, geri və ya heç bir şey demək ki, və ardıcıl olacaq. Biz ki, geri qayıtmaq lazımdır. Və yalnız Bilginize, öyrənmə ilə olarsınız biri kitab yüzlərlə var ki, dünyada proqramlaşdırma və orada saytları yüzlərlə siz daim olacaq müxtəlif kitablar müxtəlif sintaksis bax müxtəlif insanlar tərəfindən. Biz olmaq bölmələr və mühazirələr bizim gələni edəcəyik həyata ardıcıl. Amma bəzən ziddiyyətli sintaksis görəcəksiniz. Belə ki, şübhə, yalnız xahiş zaman. Ümumiyyətlə, biz mühazirə və bölmələr üçün qayğı lazımdır demək olar ki, həmişə düzgün şəkildə təqdim edir. Point halda, çünki mən demək olar ki, həmişə deyirlər. Digər suallar? Auditoriya:% s Aracın kənarda varmı? DAVID MALAN:% s Aracın kənarda varmı? Bəli. S C. ilə biz onu istifadə ki, nə var% Beləliklə Aracın əsaslı ilə heç bir əlaqəsi yoxdur biz istifadə etdiyiniz dil xüsusiyyətləri. Həqiqətən, keçən həftə mənim Mac istifadə edərkən, mən yazdı Mənim Mac C kodu. Mən Mac% s istifadə edə, siz istifadə edə bilər Windows kompüter bir compiler yüklerseniz kimi Microsoft Visual Studio. % S edir. Biz bu gün bu pəncərə daxilində yapýyorsun hər şey var ilə etmək C. və əsaslı heç nə ilə sual sistemi fəaliyyət göstərir. Əksinə olaraq, qara və ağ terminal pəncərə - zaman Mən ls kimi şeylər yazmaq və rm, və cd alıram - ki, əməliyyat sistemi ilə və var ətrafında naviqasiya. Bəli. Auditoriya: Mən CS50 kitabxana kitabxana idi. DAVID MALAN: OK, söz string demək belə ki, yalnız doğru olan CS50 kitabxana mövcuddur. C özlüyündə mövcud deyil, həqiqətən, bir neçə həftə biz CS50 kitabxana tullamaq və başlayacaq belə danışmaq, danışıq özümüzü olan şeylər edir. Digər suallar? Bəli. Auditoriya: [işitilemez] DAVID MALAN: Yaxşı sualdır. Əmrləri halda həssas edirsiniz? Və mənə burada bir fərq etmək edək. Belə əmrləri ümumiyyətlə biz də yazmaq lazımdır şey terminal pəncərə pəncərə alt. Burada bir bəyanat və ya C kodu olardı. Amma hər iki halda, cavab, eyni bəli. , C üst kodu və bu mühitlərdə hər iki də əməliyyat sistemi command line alt halda həssasdır. Belə ki, kapital G ilə GetString kapitallaşdırmaq olmalıdır kapital S. Siz bütün kiçik ildə printf yazmaq lazımdır. Siz bütün kiçik ildə ls yazmalısınız. Beləliklə, demək olar ki, hər vəziyyətdə Bu dövr halda, iradə Əslində, məsələ. Bəli. Auditoriya: [işitilemez] DAVID MALAN: Ah, tamam, belə ki, biz bir fayl nə olsa hello.d çağırıb. Belə ki, D bir proqramlaşdırma dilidir çıxır. Və, bəzi hallarda biz, həqiqətən bir proqram yazmaq bilər bu moda ki, fayl və tərtib etdik. Biz, həqiqətən, qısa cavab, mən bilmirəm. Beləliklə, biz bu olacaq. Mənə irəli getmək və yeni bir fayl yaratmaq edək. Və burada spin, vicdanla, ümumiyyətlə, her zaman hər hansı şübhə Bu dövr, sizin cihaz və ya kompüter açmaq, davam və bir şey keçir. Mən hello.d adlı bir fayl saxlamaq üçün gedirəm. Bu edin. Mən daxil edin salam etmək çalıştırmak üçün gedirəm. Bu c çox güman ki, nəticə çıxarmaq görünürdü d çox, bu halda. Digər suallar. Bəli. Auditoriya: [işitilemez] DAVID MALAN: OK, bir daha demək. Auditoriya: [işitilemez] DAVID MALAN necə ki, diaqnostikası və ya haqqında gedəcəyini sorun ki? Onlar müxtəlif dillərdə edirik, belə ki, çox güman ki, çünki çox güman ki, siz tamamilə almaq müxtəlif proqram outputted. Siz tamamilə müxtəlif səhv messages almaq olardı. Həmçinin yalnız dizayn baxımından, bu, arguably bir olacaq yoxsul dizayn qərar iki müxtəlif yazı üçün demək olar ki, eyni adlı faylları ilə dildə bir istifadə edərək dəqiq eyni directory, etmək kimi avtomatik vasitədir. Mən də, geri itələmək və bunu 15 il demək olar ki, səhvə yol heç vaxt. Ola bilər. Amma mən hesab edirəm ki, yalnız müxtəlif var yerdə maddi-texniki müdafiə. Plus true ki, səhv mesajları, ki, ki, nəhayət, bu məsələ nə göstərir. Amma mümkün künc halda. Bütün hüquqlar, belə ki, digər bir neçə tanış edək xüsusiyyətləri burada, indi biz daha qədər tikinti başlaya bilər və daha mürəkkəb proqramı. Belə ki, ilk növbədə riyaziyyat. Belə ki, riyaziyyat nümunələri ilk həftəsində asan yalnız növ var. Bu proqramlaşdırma haqqında olduğunu demək deyil riyaziyyat. Əlbəttə, müxtəlif xüsusiyyətləri anlaşma riyaziyyat, cəbr, xüsusilə deyil burada olduqca müvafiq. Yüksək CS dərsləri, xətti cəbr, ildə hesablama və kimi. Amma bu dövr edəcəyik nə çox deyil azaldır həyata riyaziyyat və əlbəttə deyil hesab hər se, lakin həqiqətən yalnız məntiq və diqqətli düşüncə. Və kompüter uzun bu əlaqələr var idi ki, xüsusilə yüksək məktəb səviyyəsində, riyaziyyat ilə, bir az yanlış. Biz, həqiqətən, yazmaq lazımdır ki, proqramların ən Çünki həlli üzrə yüksək səviyyədə və diqqət sort ki, əmin, bəzi əlavə, toplama işlemi, və müxtəlif istifadə edə bilər riyazi düsturlar və ya kimi lakin gün sonunda, bu təfəkkür haqqında və yalnız bir TI kimi həyata ola bilər nə həyata yüksək məktəb kalkulyator. Bildirib ki, ilə Belə ki, artıq bu ilə bir şey edək biz səfər edə bilər ki, var ki, riyazi operatorları proqramlaşdırma əsas aspektləri bəzi və ya artıq bu CS50 kitabxana təklif kimi bu halda C. Belə ki, var, və bu gün biz yalnız GetString istifadə edirsinizsə - və bir anda bəlkə başqa bir funksiyası - lakin kompüter müxtəlif data növləri var. Günün sonunda, kompüter yalnız 0s və 1s bilirik. Amma keçən həftə biz ikili sistemi haqqında söhbət geri sayı 0 kimi nömrələri və 1, 2 təmsil, Nate video kimi 8-ə qədər bütün yol. Və sonra biz kimi daha çox arxalana bilər burada səhnəyə etdi. Amma nömrələri lakin məktublar yalnız təmsil etmək istəyirsinizsə, biz insanlar, bəzi əsassız ilə gəlmək üçün konvensiyalar, elə gün sonunda əgər bütün kompüter 0s və 1s, yaxşı, biz daha yaxşı had bildirmək imkanı var təmsil edən 0s və 1s nümunələri standartlaşdırılması başlamaq müxtəlif şeylər. Bir məktubu təmsil 0s və 1s bir model. Məktub z təmsil 0s və 1s nümunələri. Rəngi ​​mavi təmsil və ya 0s və 1s nümunələri qırmızı, və ya kimi. Biz özümüzü ifadə etmək, bu 0s və 1s bütün istifadə etmək lazımdır deyil ki, müxtəlif yollarla müxtəlif kontekstlərdə, mütləq rəqəmli. Belə ki, təmsilçilik baxımından, C, müxtəlif data növləri var və biz bu günə qədər bu bir gördüm. Biz int gördüm və ekranda bildiriş nə deyil İndi string edir. String, əslində, Yenə C. mövcud deyil, bu deyil sadələşdirilməsi biz ilk təqdim edirik həftə neçə. A char fərdi karakter. A float bir kəsir və nömrələri ilə real sayı sol və bu hüququ. A ikiqat geri qalmış fon olanlar üçün nə edir? Belə ki, iki dəfə bir şeydir. Çox dəqiq olaraq iki dəfə edər. Belə ki, bu nə deməkdir? Belə ki, bu halda hər bir dünya standart növ var neçə bit təmsil etmək üçün istifadə olunur bu şeylər hər. Siz hissəsi artıq Nate-nin ASCII video seyr etdik əgər pset 0 və ya daha sonra bu həftə, siz yəqin ki, bilirsiniz edəcək ki, ASCII - xarakter nümayəndəlikləri - neçə bit istifadə? Və hətta bizim demo nə keçən həftə xatırlayıram bilər bir çox insanlar səhnədə idi. Adətən, 7 Beləliklə, ya 8. Ümumiyyətlə 8 Beləliklə, və uzadıla adlanan bir şey var Bütün 8 bit, əvəzinə 7 istifadə ASCII. Lakin ümumiyyətlə, biz, bu halda, 2 səlahiyyətləri 8 danışmaq. Belə bir proqramlaşdırma dilində char adətən 8 bit edir. Belə ki, bir int ümumilikdə 32 bit edir. A float ümumilikdə 32 bit edir. A ikiqat ümumilikdə 64 bit edir. Və nə deməkdir? Bu böyük nömrələri təmsil edə bilər deməkdir, və ya halda real nömrələri, siz sonra bir çox nömrələr ola bilər decimal yer. Bu halda bir çox dəqiq. İndi uzun uzun təəssüf adlanır. Belə ki, 32 bit olan int var. , 32 bit nope olan uzun var. Və 64 bit olan uzun uzun. Lakin o, bəzi kontekstində həssas, bu asılıdır Siz kompüter nə cür. Belə ki, ümumiyyətlə, biz bir ev tapşırığı və ya Viktorinada belirtirsiniz zaman faktiki məsələləri. Amma baxımından bu müxtəlif bütün var ki, burada nümayəndəlikləri. Belə nin əslində bir proqram dalış bildirin. Sıfırdan Bu yazmaq deyil, mənə irəli gedək və bugünkü mənbə kodu qədər açmaq - bütün olan online - sizin online ətrafında misgər istəyirsinizsə, və ya geri Bilgisayarınızda cihaz ilə Çərşənbə, təlimat hansı kurs ana haqqında bağlanır. Burada bir super sadə proqram. Lakin top yeni bir az bir şey var ki, biz əvvəl yox idi. Mətn mavi xətləri A bütün çox. Belə ki, bu mavi xətləri şərh təmsil edir. Belə ki, yazmaq etmək üçün bir proqram çox faydalı özünüzü və ya həmkarları, və ya dostları və ya bəzi şərhlər tədris yoldaşları ki, sort-ci neler təsvir Bu fayl, lakin C kodu özü ilə heç bir əlaqəsi yoxdur. Funksional proqram ilə heç bir əlaqəsi, yalnız var estetika. Belə ki, C, bu nə yol ümumiyyətlə başlamaq sizin / * və siz ilə şərh ilə şərh başa * /. Və həqiqətən, anal və şəkillər sort çəkmək kimi danışırsınızsa, sonra ulduz bütün çox qoymaq istədiyiniz, bir etmək istədiyiniz bu kimi az qutusu. Məsələlər Amma heç biri. Ki, məsələ yalnız çox ilk və son. Bu çox-line comment adlı budur. Və tez-tez ulduz və qutusu bunu yalnız insan Konvensiyanın bu kimi şeyi siz pulsuz vaxt var. Bir şərh yazılan sonra Beləliklə, ümumiyyətlə, gələcək Proqramın faktiki içalat. Burada tanış # daxil deyil. Və yalnız tez, bu lazımi zəruri və ya deyil? Auditoriya: lazımdır. DAVID MALAN: Yəni bu, həqiqətən zəruri deyil. Beləliklə, nə olsa da, zəruri deyil? Belə ki, heç bir printf var. Həqiqətən. Biz bu proqramı edirik bütün riyaziyyat edir. Mən həqiqətən ki, silə bilərsiniz. Beləliklə, siz həmişə bir şey daxildir yoxdur bir proqram üst. Belə ki, bu bir az asanlaşdırmaq bildirin. Və indi bu proqram nə görürsünüz. Çox çox maraq. int x = 1. Bəli, bu nə edir? Bəli, əvvəl geri ruh model düşünürəm. Bu ifadə sol tərəfdən nə edir? Bir tam alan yaradın. Belə ki, necə çox yer? Bəli, biz bu 32 bit ki, indi bilmək olar. Əvvəllər bir string texniki 32 bit, lakin daha gələcəkdə ki. Amma int 32 bit edir. Burada sol bu ifadə Belə ki, int x yalnız hey deyir əməliyyat sistemi, mənə RAM 32 bit vermək - başqa RAM 4 bayt kimi tanınan - belə ki, mən ki, kosmosda bir tam bilər. Ne tam qoymaq istəyirəm idi? Bəli, yalnız 1 nömrəli. int y 2 olur, eyni şey deyil baxmayaraq sayı onun miqyası baxımından böyükdür. Sayı özü hələ yalnız 32 bit edir. Bu, sadəcə bit model var fərqlidir 1 qarşı 2 etdirir. int z, indi mənə bir 32 bit vermək o z zəng və qoymaq deyir orada 1 və 2 toplama. Indi z ehtimalla, dəyəri 3 saxlanılması belə ki, və sonra 0 qaytarın. İndi bu proqram, bu maraq heç bir şey yoxdur? Belə ki, əslində hər hansı maraqlı bir şey deyil mənada, çünki niyə? Bəzi riyaziyyat bunu edir. Lakin sağ, cavab qaytarılması deyil. Bu 0 qaytarılması oldu. Bu cavab çap deyil. Belə ki, bu proqram kimi, əsaslı yaramaz indi dayanır. Bəzi işlər var. Bəzi saniyə sayı, və ya microseconds, almaq olacaq run, lakin bu, həqiqətən bir şey etdiklərini deyil insan üçün faydalıdır. Belə nin əslində indi mən həqiqətən Ben yerləşir indi math2, açıq bildirin nəticəsində çap. Belə ki, bu da bizim əvvəlki nümunələri nəticə çıxarmaq olar. Mən bir neçə sadə riyaziyyat etmək istəyirsinizsə, int x = 1, y = 2. z indi 1 plus 2-dir. Bu açıq-aydın çap nə olacaq? Yalnız 3. Belə ki, tez ağlı başında olma kontrol edin. Bu kataloq hərəkət edək. Cd source1m belə. Mənə davam və math2 etmək yazın edək. No səhv mesajları gəldi, belə ki, mənə run imkan - Mənə math2 run a.out-qoy deyil. Daxil edin. Və həqiqətən, o, 3 çap. Yaxşı bu bir variant nəzər salaq. Math3.c, biz indi burada bu nümunə var. Beləliklə, maraqlı bu cür. Belə ki, burada bu bir, cavab, 10 1 bölünür almaq niyyətindədir və mən bir float kimi bəyan etdik bilərsiniz. Niyə bir float olmaq istəyirsiniz? Bəli, bu bir qismini var. Bu real sayı olacaq. Bu halda, 10% - Belə ki, inşallah 0.1, olacaq. Mən sonra çap üçün nə istəyirsiniz? Bəli, bu cavab. Yaxşı, bu ayrı ilk tease edək. Belə ki, sol tərəfdə, bir bəyan float, bu cavab çağırırıq. Sağ tərəfində 1 10 bölünür və qoymaq yoxdur dəyişən daxilində cavab. İndi, bu xətti bir az daha sirli görünür. Lakin bəzi tanış xüsusiyyətləri bildiriş. %-I gəlir burada deməkdir tutucu. f burada deməkdir yalnız bir real, üzən point dəyəri sayı, kəsir ilə bir şey. Nə 0.2 means? Hər kəs təcrübəsi bilirik? İki decimal yerləri. Beləliklə, biz əvvəl bu görmədim etdik, ancaq yalnız bir yolu bir az daha printf nəzarət və həyata deyərək kəsir sonra mənə 30 bal vermir əvəzinə mənə yalnız 2 verir. Və sonra-nin irəli getmək və bu run bildirin. Belə ki, riyaziyyat 3 etmək, indi daxil edin, mənə riyaziyyat 3 run bildirin. Və bu doğru deyil. Biz ilk orijinal səhv qarşılaşdıqları görünür. Bəli, bəlkə mən yalnız yaxın kifayət qədər axtarır deyiləm. Mənə burada gedək və qoy məni 20 decimal qoymaq orada nöqtə yerləri. Və mənə bu tərtib edək, run, math3 edir. Pretty əmin 10 bölünür 1 0 deyil. Belə ki, nə olub? Tamam Yaxşı, belə əslində bu nə yoxdur. Yaxşı bir fikir deyil. Bu, həqiqətən, yalnız bir təsadüf deyil biz bunu edirik ki,. Lakin yalnız bu deyil ki, sübut etmək üçün, mən rəftar təsadüfi bir şey geri. Yalnız yanlış, çünki evdə bunu etməyin. Amma math3 etmək mənə run bildirin. Mən qaytarılması alıram nə ilə əlaqəsi yoxdur, yalnız nə var Mən çap alıram nə ilə. Amma burada aşağı eşitdim. Nə? Auditoriya: Biz də nömrələri yazmaq lazımdır kimi bölgüsü - DAVID MALAN: OK yaxşı. Belə ki, biz iştirak nömrələri yazmaq lazımdır üzən point kimi burada bölgü özlərini qiymətləndirir. Yəni problem kimi burada əvvəl: C, bir çox kimi dil, müxtəlif data növləri var. Və həmin data növləri, məsələn, bu burada. Və burada, 1 yazın zaman və sonra bu məlumat növləri tipli 10, nə məlumat növləri yəqin ki, var? Belə ki, hüququ, yəqin ki, bir int var? Heç decimal var, çünki mütləq bir float deyil point və ya bu kimi bir şey. Belə ki, həqiqətən, mən int bölünür bir int var. Belə ki, riyaziyyat və kompüter haqqında maraqlı şey ki, - Siz integers istifadə bölmə edirik əgər 1 10 bölünür, bəli 0.1 edir. Lakin, tam bir tam ayırıcı etdiyiniz zaman, cavab da yalnız indi, çünki bir tamsayı olmalıdır. Və dolayısı sonra nə var? Bəli, cavab 1 10 bölünür əgər, 0,1 bərabərdir nə kompüter etməyə gedir mən necə heç bir fikrim var ki, üzən point dəyər deyil, çünki, 0.1 təmsil tam o, sonra hər şey kəsmək olacaq kəsir və yalnız əvvəlində 0 göstərir. Və bir üzən point kimi çap edir ki, dəyər, yalnız estetik bir şey. Mən kompüter kimi çap etməyə məcbur oldum, çünki ki, point dəyər üzən. Və həqiqətən bir float kimi elan etdik, lakin riyaziyyat deyil burada baş. Mənə həqiqətən bir olduqca asan bu düzeltmek bildirin. Niyə yalnız baxmayaraq, 10.0 və 1.0 etmirəm texniki Mən yalnız o biri bunu ilə üz əldə edə bilər. İndi mənə irəli getmək və math3 edək. Mənə davam və indi math3 run daxil edək. İndi oğlan oh. İndi biz tamamilə yeni bir problem var. Belə ki, hüququ, yaxşı, biz 0,1 yaxın istəyirik, ancaq aydın nə burada yanlış? Halda, biz düzgün il üçün sizə yalançı olduğunuz? 1, belə nə həqiqətən olduqca 0.1 10 bölünür həqiqətən burada? Yaxşı Bu vasitəsilə səbəb növ məntiqi bilərsiniz. Kompüter yalnız başlamaq RAM məhdud məbləği varsa ilə, həqiqətən, kompüter yalnız üçün 32 bit istifadə point dəyər üzən, bu bir ilə səbəb dayanır bu halda bit, 32-məhdud sayı, bəli, siz məhsulları bir çox təmsil edir. Bu, faktiki olaraq dörd milyard müxtəlif dəyərlər bilər 32 bit, 2, 32, amma hələ də məhdud deyil təmsil. Yəni problem real bir sonsuz sayda var ki, nömrələri, doğru. Mənə bir real sayı versələr, mən həmişə bir tapa bilərsiniz yalnız tweaking tərəfindən az az böyük Bu kəsir sonra ki nömrələri. Siz bit bir sonsuz sayı yoxdur, belə ki, əgər bəlkə bir sonsuz təmsil bilməz real nömrələri sayı. Belə ki, orada kompüterlər bu xas qeyri-dəqiqlik, və Bu hətta ən sadə bütün vaxt ərzində takıldım olur bu kimi proqramları. Amma həmçinin bir çox real dünya problemləri. Əslində isə yalnız bir nəzər bir an qoy həqiqətən reallıq baş verən bir şey. Sonra dəqiqə yalnız ilk bir neçə saat, və lazımdır Biz link online göndərmək lazımdır. Lakin bu olduqca yanlış getmək bilər yalnız nə kanıtıdır vicdanla, bir çox faciəli şəkildə bu şeylər olduqda yüksək qiymətləndirib və ya gəldiyi zaman yalnız biz insanlar səhv edə müasir kompüter həyata details bu cür. [VIDEO oynayan] -Biz müasir möcüzə mühəndis fəlakətlər qayıt. Kompüterlər. Biz bütün tez-tez sinir bozucu problemləri qəbul gəldiniz onlara ilə gedin. Bugs, virus və proqram glitches kiçik qiymətləri rahatlığı üçün ödəyirlər. Lakin yüksək texnologiyalı və yüksək sürətli hərbi və kosmik proqram proqramları, kiçik problem ola bilər fəlakət daxil ucaltdı. 4 iyun 1996-cı il, elm insansız başlamaq üçün hazır Ariane 5 raket. Bu üçün nəzərdə elmi peyklər aparan yaratmaq dəqiq necə yer maqnit sahəsində günəş küləkləri ilə qarşılıqlı. Raket Avropa Kosmik Agentliyi və inşa edilib Fransız Guyana sahilində onun harada off qaldırdı. -Hazırda uçuş daxil təxminən 37 saniyə, onlar ilk qeyd şey nozzle ki, səhv getdiyini onlar həqiqətən lazımdır şəkildə döner. Aydın uçuş daxil 40 seconds vasitə problem idi və onlar üçün qərar zaman ki onu məhv. Böyük içalat ilə bir sıra təhlükəsizlik zabit bərk bir ola bilər əvvəl düyməsini raket partladılıb ictimai təhlükəsizlik təhlükə. -Bu Ariane 5 reys idi və onun məhv çünki daxil bir qüsur yer aldı raket proqram. -Bu Ariane üzrə problem bir sıra var idi ki, bildirmək 64 bit tələb və onlar çevirmək istədi bir 16 bit sayı. Onlar sayı heç vaxt güman çox böyük olacaq ki, 64 bit sayı bu rəqəm ən 0s idi. Onlar yanlış idi. -Bu bir proqram bilməməsi qəbul etmək başqa tərəfindən nömrəsi cür kök idi bilməməsidir. Software inkişaf çox bahalı hissəsi olmuşdur yeni texnologiyası. Bu Ariane 4 raket çox uğurlu olmuşdur. Üçün yaradılmış proqram o qədər də istifadə edilmişdir bu Ariane 5. -Əsas problemi Ariane 5 sürətli idi ki, sürətli sürətləndirdi. Və proqram ki, uçota deyil. -Bu raket məhv böyük bir maliyyə idi fəlakət, bir dəqiqə proqram səhv nəticəsində bütün. Amma bu data conversion problemləri var idi, ilk dəfə idi müasir raket texnologiyası mürəkkəbləşdirilir. DAVID MALAN: Biz onu tərk edəcəyik. Ancaq bu vəsiyyətnamənin yalnız necə tətbiq hətta bəzi biz başlayıb etdik ki, bu ən aşağı səviyyəyə ətraflı bu gün araşdırmaq. Siz bəzi bəlkə çevirirsən bir az almaq Belə ki, hətta sözdizimini və burada arcaneness, həyata ki, üzərində müddətli biz yalnız bu necə tətbiq diqqət olacaq uzaq CS kənarda aləmlərin. Biz Çərşənbə günü görəcəksiniz.