[Powered by Google Translate] DAVID J. MALAN: Bütün sağ, bu CS50 və bu deyil Həftə 1 son, belə ki, iş kartları ümumi sayı və Bu il ki, sinif yoldaşları 745-dir. Və biz belə zamanı siz çox üçün heyecanlandım edirik Bu dövr, lakin bu, əlbəttə, böyük olsa, kimi, Cümə nahar kimi bu şeylər var ki, həyata ofis saat, 15 nəfərlik bölmələr və s ki, həqiqətən bu daha çox intim yaratmaq üçün nəzərdə tutulub ətraf mühit. Beləliklə, biz burada, bir dəfə və ya iki dəfə bir həftə toplamaq baxmayaraq Sanders, bu kurs sizin təcrübə çox bilmək çox öz sinif yoldaşları ilə yanaşı, əlləri-olacaq və müəllim heyəti. Belə ki, burada 2012-Fall, gedin. Beləliklə, biz qeyd tarixdən keçən zaman geri sayı təmsil söhbət qeyri-dəqiqlik. Və biz də, baş verən uğursuzluqlar bir baxdı bu anlaşılmazlıq gəldiyi zaman real dünya, necə kompüter çalışır. Bəli, bu gün biz həmin ideyaları başqa bir yeniden olacaq həmçinin CS50 müştəri bizim müzakirə davam və C və nə proqramı həqiqətən deməkdir. Lakin ilk, qasırğa elanlar yalnız bir neçə. Bölmə bu bazar başlayacaq və ilk həftə həmişə bir sürətli start bit, biz yalnız var, çünki Sizin bölmə formaları. Biz indi, müəllim yoldaşları ilə, indi həmin edirik onlar öz proqramlarını bilirəm ki,, biz məqsədi edirik belə Şənbə səhər, sizin bölmə ilə qədər riayət tapşırıq və TF. Onlar növbəti gün başlamaq lazımdır ki, dərk, Bazar və ya bazar ertəsi və ya çərşənbə axşamı. Yarandıqları kimi, sonra bölmə dəyişikliklər məskunlaşacaq günlərdə gəlib. Office saat, eyni zamanda, yenə bu axşam, 11 8 PM var Annenberg, eləcə də sabah gecə kimi. Problem sets ümumiyyətlə cümə görə baxmayaraq günorta, siz sərf beş gec gün var həyata cümə axşamı ofis saat səbəbdən mövcudluğu əgər bu gec gün bir pul və beləliklə, təqdim Cümə günü bir şey. Mənə arasında, Not daha fun arasında olduğunu önerdiğimiz daha aşağı əsas problem dəsti. Mən yalnız, strateji, bu gec gün üzərinə asmaq olacaq həyat yolu almaq üçün başladığında sonra dövr üçün midterms və digər dərsləri. Problem Set 1, eyni zamanda, kurs üzrə dərc olunacaq haqqinda bu cümə kimi kurs nin gəzmək olacaq video vasitəsilə hansı Cümə günü 2:30 PM film olacaq və sonra növbəti gün online təqdim olunub. Belə ki, bazar ertəsi günü başa çatdı. Həqiqətən, bir burada qeyd - Mən istəyirəm. Çünki dərsləri - Sanders dəqiq borc deyil, çünki özü təsadüfi Q & A geri və irəli olduqca yaxşı, biz istəyirik qovuşdurmağımız bir az yeni bu il bir şey cəhd edir yalnız əl artırılması rahat deyilik və ya əgər daha bu kimi bir otaqda əl qaldırmaq deyil, biz tədris yoldaşları və CA'lar bəzi olacaq mühazirə zamanı cs50.net/discuss Manning. Mən tamamilə çünki bir sual varsa bir şey və ya haqqında aydın bəzi maraqlı olduğunuz mövzu, orada poçt çalışırıq. Lecture bir etiket ilə etiketleyin və biz əlimizdən gələni edəcəyik bu gün və gələn həftə - we'll bu cəhd edin - bu konusundaki ya elektron, online, və ya, əgər biz olmalıdır kimi hiss həqiqətən, kütləvi şəkildə tədris yoldaşları biri müraciət və ya CA'lar əl qaldırmaq və soruşacaq adınıza anonim. Beləliklə, biz bu cəhd və necə bu işləri görmək verəcəyik. Lakin, bütün vasitələrlə, istədiyiniz kimi əlləri qaldırmaq davam edir. Belə ki, son dəfə 10% və ya bir-onuncu deyil, ki, aşkar bir çox il əvvəl öyrədilirdi kimi faktı, 0.1. Bu kimi bir dəyər, əslində var. Lakin sağ, tam doğru deyil? Biz yalnız əgər, kompüter vasitəsi bu sıxıntı var yalnız məhdud yaddaş miqdarı, RAM və ya daha çox xüsusi bit, yaxşı, məhdud sayda yalnız var şeyi siz təmsil edə bilər. Məsələn, biz sayı sıfır var və əgər biz istəyirik , səkkiz bit istifadə edərək, ikili təmsil bir bit, yenə sıfır və ya bir, biz bilər 00000000 kimi təmsil edir. Və bir az lazımsız verbose var. Sadəcə, real dünyada decimal sistemi kimi Ümumiyyətlə, siz sayı 123 yazmaq istəyirsinizsə, biz insanlar yəqin ki, baxmayaraq 00000123 yazmaq deyil funksional, eyni sayı var. Biz yalnız belə danışmaq, aparıcı adet sıfır buraxın. Binar, biz eyni edə bilərsiniz. İkili və sıfır, sıfır və ikili yalnız sıfır. Siz yalnız bir bit lazımdır. Amma dünyada tədbirin yenidən, ən ümumi vahid kompüter bayt səkkiz bit edir. Yalnız bir bit, olduqca lazımsız çünki. Səkkiz bit, olduqca faydalı deyil, ən azı daha çox ölçü vahid çox faydalı. Belə ki, səkkiz bit ilə, biz adətən ikili təmsil edəcəyik. Belə ki, burada biz, sonra ədəd sıfır, bir, iki, və Nate son çərşənbə bizim video etdi, biz davam edə bilər səkkiz, yeddi qədər hesablanması. Və sonra biz daha çox bit istifadə, biz sonsuzluğa qədər saymaq olar. Yalnız bu bit məhdud sayda Lakin, kimi hətta hər hansı bir kompüter sistemi halda, və ya raket sistemi, yaxşı, həqiqətən, yalnız var dəqiq və məhdud məbləği. Yaxşı, 0,1 kimi sayı təmsil istəyirəm əgər, kompüter seçin və seçmək üçün var. Və yalnız bilər nömrələri sonlu sayı var təmsil yaxın sizin üçün 0.1 gələ bilər, ancaq bilməz mütləq siz istədiyiniz dəqiq dəyər verir. Və bu, yalnız kompüter çağırışlardan biridir başlıq altında, təşəkkürlə. Biz dövr uzaq hərəkət kimi, bu aşağı ətraflı daha az maraqlı olur, lakin əlbəttə ki, bu ideyaların tətbiqi çox real dünya ola bilər ramifications. Bir qədər eğlenceli. Siz çox gözəl film Office Space gördük? Əgər varsa, sizin qeyri-rəsmi deyil həftə üçün ev tapşırığı. Amma Office Space ki, film ildə yoldaşları almaq məhz bu fikir istifadə, lakin onlar həqiqətən stole bu ola bilər ki, bir film hətta il əvvəl, görüldü. Belə ki, mənə bu trailer bir neçə saniyə verək Bu gözəl film və bu çox deyil akademik müvafiq. [FİLM oynayır] Əslində mən böyüdülmə alıram. Mən rip bir virus proqramı edə bilər ki, böyük vaxt off qoyun. Yaxşı, necə işləyir? Faiz olduğu bir bank əməliyyatı var Hər dəfə hesablanmış, minlərlə bir gün var, kompüter başa bir faiz bu fraksiyaları ilə. Amma qanunsuz bir şey etmək fikrində deyiləm. Qanunsuz? Samir, bu, Amerika edir. Siz Allaha and var. Heç kim bu barədə bilir amma bizə, bütün sağ? Edin No ailə üzvləri, heç bir girlfriends, heç kəs. [Işitilemez]. Insan, mən ya hər kəs demək deyil, narahat olmayın. [FİLM XİTAM VERİLDİ] Bütün hüquqlar, belə ki, bəlkə mən ən çox bu film yaxşı tapıldı onlar ki, burada insanlar, lakin hər halda, virus yaratmağa çalışır - və film, istədiyiniz zaman, onlar bir şey virus zəng istədiyiniz faktiki adətən virus deyil. Bu, sadəcə kimsə nəsə yazdı ki, bir proqram. Və bu halda, uşaqlar bir proqram yazmaq çalışır ki Innotech nin adlı şirkət istifadə etdi hesablama sistemi də vasitəsi kompüter, hətta bu bilməz mütləq pul gəlir dəqiq pul təmsil edir. Sizin bank hesabınıza $ 0.10 ola bilər Belə ki, baxmayaraq 0.10, yaxşı, kompüter həqiqətən var ki, hesab bilər bank hesabınıza bu çox sent. Və nə bu uşaqlar etmək istəyən idi - və onlar fikir stole ki, harada, Superman III-dən çıxır Richard Pryor eyni şey idi - onlar mahiyyətcə idi də arxada bütün etmək üçün çalışırıq ki, yazılı proqramları nömrələri, və kiçik, kiçik, kiçik fraksiyaları bütün pennies və həmin off siphoning insanların yalnız fikir, oh, orada yalnız $ 0.10, lakin o, bütün arxada nömrələri nəhayət qədər əlavə edin. Gözəl bir fikir Belə və bu ki, xoşhallıqla tepti xüsusi film. Lakin real dünyada da, daha çox bağlı var şeylər bu cür nəticələri. Və səbəblərindən biri kompüter sahəsində daxil dalış elm, təkrar deyil, onun tətbiq edir mühəndislik elmləri tək deyil, yalnız digər sahələri kimi də. Beləliklə, bu yanlış getmək bilər, nə bir az lighthearted baxmaq, lakin o gəldikdə bu, zənnimcə, həmçinin olduqca göz açılış var dəqiq necə hər yerdə texnologiyaları kimi dərk kompüter və proqramlaşdırma və ya bu gün, proqram şəklində. Belə ki, bu növbəti clip, yalnız altı dəqiqə davam edir Biz keçən dəfə off sol, amma bizə bir az baxmaq üçün imkan verir yerləşir bu məsələlərin belə bir dərinliyi çox. Mənə biz off sol harada irəli keçmək edək, olan burada idi. Və biz burada altı dəqiqə, iki hissəsi iki var. [FİLM PLAY] Müasir raket texnologiyası mürəkkəbləşdirilir. 1991-ci ildə ilk Körfəz müharibəsi başlanandan ilə Patriot raket oxşar cür yaşadı sayı dönüşüm problem. Və nəticə olaraq, 20 nəfər, 20 Amerika əsgəri həlak olub ehtimal edilən Patriot vaxt, 100-ə yaxın digər yaralı daxil olan Scuds qarşı qorumaq üçün, bir raket yanğın bilmədi. İraq işğal zaman Küveyt və Amerika Desert başlayıb Erkən 1991-ci ildə Fırtına, Patriot raket batareyaları idi İraq olan Səudiyyə Ərəbistanı və İsrail qorumaq üçün səfərbər Scud raket hücumları. The Patriot, ABŞ orta mənzilli səthi-hava sistemi bu Raytheon şirkəti tərəfindən istehsal. Bu Patriot kesen özü ölçüsü, bu barədə təxminən 20 fut uzun və bu barədə 2,000 funt ağırlığında. Və bu barədə bir döyüş başlığı keçirir - Mən bunu kobud hesab 150 lirə. Və döyüş başlığı özü olan yüksək partlayıcı edir ətrafında fraqmentləri. The döyüş başlığı olan casing buckshot kimi hərəkət üçün nəzərdə tutulmuşdur. Bu raketlər konteyner başına dörd keçirilir və olunur yarı trailer ilə daşınıb. The Patriot anti-raket sistemi ən azı geri gedir Artıq 20 il. Bu, ilk bir raket kimi nəzərdə edildi ilk Körfəz müharibəsi, düşmən təyyarə aşağı Shoot. Ki, müharibə boyunca gələndə Ordu atmaq üçün istifadə etmək istəyirdi Scuds deyil, təyyarə aşağı. Hava İraq Force qədər bir problem deyil, Ordu Scuds narahat edilmişdir. Və onlar Patriot təkmilləşdirmək çalışdı. MACH 5 Səyahət düşmən raket gedirdi intercepting kifayət qədər çətin ola bilər. Amma Patriot xidmət soxulmuş zaman, Ordu onların ki, bir İraq modifikasiyası xəbərdar deyil Hit təxminən mümkün Scuds. Nə olan Scuds edir gələn qeyri-sabit idi. Onlar wobbling edilmişdir. Bunun səbəbi 600 almaq üçün, iraqlılar idi 300 kilometr mənzilli mərmi kilometr həyata götürüb ön döyüş başlığı çəkisi həyata və bu döyüş başlığı yüngül etdi. Belə ki, indi Patriot olan Scud gəlmək çalışır və çox oldu vaxt, zaman böyük əksəriyyəti, bu ki, yalnız Scud uçmaq. Bu Patriot sistemi operatorları Patriot həyata sonra onun hədəf buraxılmış, onlar Patriot döyüş başlığı partlatdı. Mümkün itki verməmək üçün icazə dağılmaq üçün. Yəni, səmada böyük fireballs kimi, insanların çoxu gördüm nə idi və Scud başlığı ilə tutduğunu kimi səhv. Gecə göy, Vətənpərvərlər ortaya çıxdı baxmayaraq, uğurla məhv Scuds, Dehran da, heç bir ola bilər fəaliyyət haqqında səhv. Ki, Patriot-nin radar sistemi track var itirilmiş Scud gələn və əlaqədar başladılan heç bir proqram qüsur etmək. Bu ilk kəşf edən israillilər ki, artıq sistemi daha çox vaxt fərq oldu olmuşdur sistemin kompüter daxil bir saat görə. Haqqında iki həftə Dehran, the faciə əvvəl İsrail Müdafiə Departamenti bildirib sistem vaxt itirirdi. Çalışan haqqında səkkiz saat sonra qeyd edir ki, sistemi xeyli az dəqiq olmaq edilib. Müdafiə Departamentinin bütün izah edərək cavab verdi bu Patriot batareyaları sistemləri tərk etmək uzun müddət üçün. Onlar uzun müddət idi nə dedi heç vaxt - 8 saat, 10 saat, 1000 saat. Heç kəs bilirdi. Vətənpərvər batareya Dehran ilə barak da konuşlu və flawed daxili saat ərzində 100 saat olmuşdur Fevral gecə 25. Bu ikinci bir onuncu haqqında bir dəqiqlik üçün vaxt izlenir. İndi ikinci bir onuncu maraqlı sayı çünki o deməkdir ki, məhz, ikili ifadə edilə bilməz o heç bir dəqiq ifadə edilə bilməz müasir digital kompüter. Bu iman çətindir. Amma nümunə kimi istifadə. Nin bir nömrəli üçüncü edək. Üçdə biri məhz decimal ifadə edilə bilməz. Üçdə biri 0,333 daimi üçün gedir. Decimal mütləq dəqiqliyi ilə bunu etmək üçün heç bir yolu yoxdur. Bu dəqiq baş verən problem eyni cür var bu Patriot. Bu artıq sistem pis vaxt səhv oldu, qaçdım. Əməliyyatın 100 saat sonra vaxt səhv idi ikinci təxminən üçdə. Amma MACH 5 səyahət bir raket hedefleme baxımından, üzərində 600 metr izleme səhv ilə nəticələndi. Bu Dehran olan əsgərlər üçün bir ölümcül səhv olardı. Nə oldu bir Scud başlamaq erkən xəbərdarlıq aşkar edilib peyk və onlar Scud onların gələn bilirdi ki ümumi istiqaməti. Bu gələn edildi Onlar bilmirdim. Bu Patriot olan radar komponent qədər artıq idi Bu track tapmaq və saxlamaq üçün sisteminin Dehran müdafiə gələn düşmən raket. Bu radar çox ağıllı idi. Siz, həqiqətən, sonra Scud mövqeyini track və olacaq yəqin ki, növbəti dəfə olacaq yerləşir proqnozlaşdırmaq radar bir zərbə göndərdi. Bu sıra qapısı adlanırdı. Sonra bir dəfə Patriot kifayət qədər vaxt getmək keçdi qərar geri və bu aşkar üçün növbəti yeri yoxlamaq obyekt, geri gedir. Belə ki, geri səhv yerdə getdi zaman, sonra heç görür etiraz və o, heç bir obyekt olduğunu qərara alır. Bu saxta aşkar idi və track düşər. Daxil olan Scud radar ekranında yox. Və saniyə sonra, bu barak daxil slammed. Bu Scud 28 şəhid zamanı atəş keçən biri idi ilk Körfəz müharibəsi. Faciəli, yenilənmiş proqram Dehran gəlib aşağıdakı gün. Və proqram qüsur bir fəsil bağlanması, müəyyən edilmiş bu Patriot raket çətinlikli tarixi. PATRIOT həqiqətən "mərhələli Array İzleme üçün bir kisaltmasidir Hədəf və tutulmasın. " Tamamilə Bütün sağ, belə ki, daha acınacaqlı nəticələri bu dünya dərk. Və paket, həqiqətən, film deyil ki, həll Sizin raket müdafiə sistemi reboot edilib isə hər dəfə. Və yenə bu əlbəttə məqsədlərindən biri, əlbəttə Bu applications daha məzlum miqyaslı etmək siz getmək dəqiq necə həqiqətən açıq hər kəsin gözləri edilməsi maşınları nə siz onlara nə istəyirik və necə getmək yol boyunca bunu isə haqqında doğru edir də, zərif və s. Və bu gün, bu daha çox bir az daxil dive edək, lakin belə ki, biz xüsusilə də az, çox sürətli getmək yoxdur biz faiz saxlaya bilərsiniz rahat, həm də ki, o daha rahat, bir az başlamaq yalnız tez edək bu fikirləri bəzi recap edir. Əgər varsa, yenə şəxsən və ya online, həm də üz xahiş sual biz eyni səhifə hər kəs saxlaya bilərsiniz. Belə ki, CS50 Aracı, geri sürətli addımdır öz sözləri nə? Bu sözləri hələ ola bilər nə heç bir fikrim yoxdur, əgər OK. [Işitilemez] OK, belə bir universal interface - biz bütün payı edə bilərsiniz ki,. Tamamilə. Belə ki, məsələn, bəzi getmək üçün sizə deyə bilər veb Mac OS üçün bu proqram download. Ilə konfiqurasiya, Windows üçün software Bu yolla və. Lakin reallıq biz saysız-hesabsız texniki daxil sonra deyil məsələlər dəstəkləyir. Və bu gün, server tərəfində hazırda görülən işlər, nə çox, kompüter dünyada, xüsusilə zaman gəlir web inkişaf və web-based applications, əslində tez-tez Unix və ya Linux kompüter görülən kimi fərqli Mac və ya Windows PC. Belə ki, upsides arasında, sonra bu şey istifadə çağırıb CS50 Aracı bütün eyni mühitdə olacaq edir. Belə ki, hər kəs eyni page hansı hardware heç bir məsələ var ilə kampus gəldi, həm də məhz ilə dabbling olunacaq sizə qarşı istifadə edə bilərsiniz ki, eyni mühitdə semestr sonuna kimi yaxşı web inkişaf, həmçinin də onun real dünya applications üçün gələcək. Belə ki, daha konkret olaraq, CS50 Aracı bir pulsuz parça başqa bir əməliyyat sistemi çalıştırmak üçün imkan verir ki, proqram təminatı, Linux, bu halda, öz kompüter, bir pəncərə. İndi yalnız cihaz download bilməz. Siz cihaz oynamaq və ya işləmək üçün bir proqram lazımdır. Və proqram ki, parça ümumiyyətlə kimi tanınır hypervisor. Hypervisors, VMware kimi məhsullar şəklində gəlmək Virtual Box, paralellər. Şirkətləri bütün növ proqram təminatı, pulsuz, həm də və eyni, kommersiya. Siz Problem də görürsünüz nə Set 1 necə üçün təlimatlar pulsuz proqram əldə olan ilə bu CS50 Aracı axır. Və bir dəfə, siz, sizin Mac və ya PC bir pəncərə, lazımdır yoxdur çox bu kimi bir masa üstü, ətraf mühit, Ü bu bir Başlat menyusundan kimi şey var sol alt küncündə. Bu üst sol, bir Ana qovluq, və ya Home directory var orada bir zibil bilər, və s. Belə ki, biz getmək kimi zəruri detalları ayrı dolaşmaq lazımdır. Amma indi C. daxil dalış başlamaq edək Belə ki, C ruhu, oxşar, bu proqramlaşdırma dili Scratch, lakin çox az qrafik, lakin istehzayana, uzaq siz bu fərasət almaq bir daha güclü. Belə ki, C, biz olan mənbə kodu yazmaqla proqramları yazmaq corabları oxşar bu ingilis kimi sintaksis, sizə imkan verir ki, son dəfə idi ki, nümayiş əgər düzgün dəqiq özünüzü ifadə arcanely, kompüter üçün. Beləliklə, siz həqiqətən məhsul proqram hansı lazımdır bizim əsasında, C kimi bir dil proqramları yazmaq Bazar ertəsi, söhbət? [Işitilemez] OK, yalnız bir mətn redaktoru lazımdır. Siz hər hansı bir xüsusi proqram ehtiyac yoxdur özlüyündə proqramları yazmaq. Siz yalnız Windows Notepad kimi bir mətn redaktoru, ehtiyac Mac TextEdit və ya dünyanın gedit deyilən bir şey, Burada istifadə bilərsiniz Linux. Və bu proqramlar yazmaq, bu. Amma yazılı tənlik yalnız yarısı var. Daha sonra onlara run lazımdır. Amma proqramları çalıştırmak üçün - Siz mənbə kodu run bilməz. Yerine ilk ona nə var? Bəli. DAVID J. MALAN: Siz lazımdır tərtib. Və başqası, mənbə kodu tərtib vasitələri - [Işitilemez] DAVID J. MALAN: Exactly. Adet sıfır və olanları üçün tərcüməsi. Hamımız bu gün CPU'lar ki, kompüter, çünki demək olar ki, o bütün Intel adlı şirkət tərəfindən, və Intel Inside, sizin bu beyin daxilində var deməkdir CPU kimi tanınan kompüter. Və beyin ki, hər kəs bilir ki, adet sıfır və olanları nümunələri anlamaq üçün necə. Bu bit model əlavə təmsil bilir nə naxış, subtractions təmsil hansı model bit çap və eşidilən səs yaradılması əks etdirir. Belə ki, qısa, əməliyyat sistemi ilə coupled CPU, olan CPU üst çalışır ki, proqram bir parça belə danışmaq. Birlikdə, bu iki ədəd proqramları çalıştırmak üçün necə biz insanlar yazın. Mən burada CS50 Aracı daxil Beləliklə, mən açmaq lazımdır bir mətn redaktoru və mən bu əldə edə bilərsiniz yolları bir neçə. Mən ya Menyu bilərsiniz, program, və sonra seçin - nope deyil, menyu edir. I Aksesuarlar getmək / açmaq üçün buraya gedit bilər mənim kiçik mətn redaktoru. Və ya daha çox sadəcə, mən aşağı bu kiçik icon basın sol küncündə. İndi burada bu mühitdə almaq. Yalnız ilə, sadə mətn redaktoru olduqca xatırladan var bir və ya iki fərqlər. Zirvəsində, kursor indi yanıb-sönən olduğu, bu harada Mən kodu yazılı başlaya bilərsiniz. Alt Bu şey terminal pəncərə adlanır. Və mən bu nə şeyi növ edə bilərsiniz terminal pəncərə deyilən? [Işitilemez] OK, belə ki, əmrləri run lazımdır. Biz bazar ertəsi qaçdı əmrləri bəzi kiçik idi siyahısı üçün sirli ilk, lakin ls, dəyişdirmək, kataloq cd, rm, aradan qaldırılması üçün. Belə ki, sizin naviqasiya bir köhnə məktəb yol növ var kompüter, yalnız klaviatura və mətn əmrləri istifadə edərək, deyil, ümumiyyətlə, bir siçan istifadə edərək. Amma biz uzun əvvəl, görürsünüz, bu həqiqətən bizə verir az daha çox güc və bir az daha dəqiq hansı ilə özümüzü bildirirəm. Və sonra burada sol üzərində, biz yalnız, görmək olacaq biz yazılı proqram, kiçik bir xülasə başlamaq kimi biz sol üst yazılı etdiyiniz proqramı. Amma biz uzun əvvəl bir daha görəcəksiniz. Belə ki, burada kifayət qədər sadə bir şey edək. Mənə ilk davam və, Fayl Saxla gedək, mən yalnız deyiləm sol ərzində burada jharvard basın gedən və jharvard, yenə mənim ev qovluq üçün ad mənim şəxsi faylları, mənə artıq olan John Harvard, siz bütün kimi tezliklə bu mühitdə John Harvard olacaq. O, s, My Documents bu Ana directory var və var da mən indi, saxlamaq istəyirəm ki, bu fayl Mən bu hello.c zəng etmək üçün gedirəm. Sonra getmək üçün gedirəm qabaqda və Saxla, indi nə mən burada bir sekmesi basın çox redaktoru bir növü kimi, hello.c çağırıb. Belə ki, indi mənə irəli getmək və bir proqram yazmağa başlayın bildirin. int əsas (void). Və sonra mən yalnız son dəfə idi, printf, çap biçimlendirilmiş üçün, ("Salam, dünya!" );. Demək olar ki, tam. Amma ətraflı məlumat bir neçə itkin alıram. Mən həqiqətən üçün lazım olan bu proqram əskik faktiki tərtib etmək? Bəli. [Işitilemez]? DAVID J. MALAN: Bəli, mən standart daxil etmək lazımdır I / O kitabxana. Bu ehtiyacları əsas yuxarıda getmək, mən yalnız gedirəm Belə orada bəzi otaq edir. Və mən # daxil etmək üçün gedirəm. Və orada bucaqlı mötərizə bilərsiniz. Və bir kənara kimi, gedit, əgər bir az istifadəçi dostu kömək etməyə çalışır ki, bəzən bir az confusing üçün gözləri nə ilə nə xətləri qədər bildiriş. Belə ki, mənim kursor bu bucaqlı hüququ növbəti olması bracket, bu digər bucaqlı vurğulayaraq necə görürsünüz bracket plus bu bir. Və yalnız bu fakt mənim diqqət cəlb ki, mən simmetriya var. Və proqramlaşdırma simmetriya ümumiyyətlə yaxşı bir şey deyil. Mən başa mənim hərəkət isə, qeyd necə qıvrım aşırma xətti, bəli, mən açıq bir var, göstərir ki, və qapalı biri, belə danışmaq. Bütün hüquqlar, mən başqa bir şey edə bilərsiniz. Demək, ciddi zəruridir, lakin yaxşı təcrübə deyil 0 qaytarın. Və qaytarılması 0 burada bizim üçün nə edir? Yoxsa nə bildirir? [Işitilemez] DAVID J. MALAN: Amma bir şey yanlış. Çox yanlış getmək və səmimi çətin deyil Bu qısa proqram. Mən yalnız bütün yaxşı ki, açıq-aydın super olan alıram. Mən insan, bu proqram çalıştırdığınızda, yəqin ki, heç vaxt ki 0 görürük. Ümumiyyətlə, bu nömrələri əsas döndü olunur yalnız insanlar üçün onların rəhbərləri paklıq zaman bir şey yanlış gedir. Və siz, deyərək sistem səhv up bir az pop almaq iki, üç, və ya hər hansı sayı idi ki, həqiqətən qaytarılmışdır. Bu başqa yanlış bir şey Belə ki? [Işitilemez] DAVID J. MALAN: Yəni bu qədər funksional səhv deyil lakin bir estetik biridir. Mən yəqin ki, orada bir newline xarakter qoymalıdır ki, biz həqiqətən üçün kursor bu simli sonuna hərəkət növbəti xətti və proqram yalnız bir az gözəlləşir görünür. Belə ki, indi mənim terminal pəncərə aşağı gedək geri daxil və zoom Burada bu şey, o, tez deyirlər. Bu, sadəcə, mən kim jharvard @ cihaz, burada mənə xatırladan edir ləvazımatlı mən deyiləm kompüter adıdır. Parantez bu tilde ki, squiggle simvolu olan nə təmsil? Auditoriya: Home directory. DAVID J. MALAN: Əsas directory. Siz var deyərək üçün bir steno notation edir ki, faylları bütün ismarıcları getmək harada sizin şəxsi qovluq. Belə ki, indi burada, mən siyahısı üçün ls edəbilərsiniz. Mən hazırda burada yeganə hello.c edir. Mən yalnız bu yazdı çünki ki, yaxşı. Mənə davam və salam edə bilərəm bildirin. Mən hello.c etmək yazaraq deyiləm bilərsiniz. Əksinə, mən yalnız salam, fayl bazasında adı yazaraq alıram. Biz bazar ertəsi gördüm kimi, etmək, yalnız mən istəyirəm ki, nəticə çıxarmaq edəcək edir. c faylı. Belə ki, indi mən salam etmək tipli etdik. İndi bu ədalətli uzun komanda oldu və davam edəcək təkrar bu görən. Amma aydın, cingilti, yalnız ortaya çıxdı sözü olmaq ki, faktiki compiler edir. Etmək yalnız bir build yardım edir. Bu da, yalnız mənə qənaət bir daha istifadəçi dostu proqram uzun uzun olduqca yorucu həyata yazın malik çalıştırmak bir kimi əmrləri. Belə ki, özünüz cingilti run bilər. Siz özünüz bütün yazın bilər. Yalnız çox yorucu olur. Və elə bir həyatımızı asanlaşdırır proqram və bizim üçün daha mürəkkəb əmrləri çalışır. Bütün hüquqlar, indi nə fayl mən olmalıdır Mənim cari kataloq? Yalnız hello.c, həm də salam deyil. Mən salam almaq istəyirsinizsə əgər, mən dot çizgi deyirlər ki, geri dot vasitələri cari qovluq, siz hər yerdə getmək yerləşir və sonra, indi, həqiqətən, salam adlı proqram run, və Mən salam dünya var. Bütün sağ iş üzrə hər hansı bir sualınız və ya sintaksis biz yalnız nə? Bütün hüquqlar, belə-nin daha bir pillə qədər şeylər götürək. Belə ki, bu yalnız bir proqram yazmaq underwhelming ki, yalnız heç hello, dünya deyir. Belə ki, biz, demək, hello, David Bazar ertəsi, o, dəyişdi. Bu bir az daha çox şəxsi, lakin kimi ağır kimi kodlu ilk versiyası. Belə ki, bütün çekici deyil. Amma yanaşı əlbəttə, C, funksiyaları var çap, siz istifadəçi girişi əldə edək ki, fəaliyyət göstərir. Və biz bunu yolu, digər gün, aşağıdakı kimi idi. Mən, həqiqətən, bir şey çap əvvəl, mən ilk əldə istifadəçi bir şey. Mənə yenə bunu bildirin. S burada yalnız bir ixtiyari adı, olduğu String s, simli, GetString bərabərdir. Belə ki, nə GetString idi? Bu açıq-aydın onun adı əsasında simli olur. Amma daha texniki, nədir? Bu funksiya var. Belə ki, özlüyündə C ilə deyil ki, bir funksiyası var. CS50 heyəti bu yazmışdır. Və bu istifadə etmək üçün, yalnız stdio.h içeremez Siz də nə daxil etmək lazımdır? Bəli. Yalnız bir fayl olan cs50.h Beləliklə, biz bir neçə il əvvəl yazmışdır. Biz yanaşı sizin üçün cihaz onu yüklü standart faylları bütün. Və sinif bu ilk bir neçə həftə, biz istifadə edəcəyik Bu yalnız çox əsas etməklə prosesi asanlaşdırmaq üçün şeylər əldə istifadəçi daxil istəyirəm. Çünki biz bir neçə həftə görəcəksiniz kimi, əldə istifadəçi girişi C kimi dil, həqiqətən təəccüblü kompleksi Siz necə, adətən, əvvəlcədən bilmirəm xüsusən çünki çox stuff istifadəçi daxil yazın gedir Və gözləmək nə qədər data bilmirəm zaman deyil ayırmaq nə qədər yaddaş bilirik. Və həqiqətən çalışırıq olan çəkişmə istifadəçi varsa, sistemi daxil hack, həmçinin, kompüter avariya ümumiyyətlə hücum birinci metodu mən etdiyiniz kimi, Bazar ertəsi, təsadüfi simvol bütün uzun ardıcıllıqla yazın Enter və fasilələri nə oldu. Ümumiyyətlə, proqram fasilələri əgər, ki, göstərişlər Çünki təhlükəsizlik qüsur, potensial. Əlbəttə ki, bir edərək, sizə proqramçı göstərişlər səhv, ancaq daha təhlükəli, sizi bilər bir təhlükəsizliklə əlaqədar səhv və ümumiyyətlə biz görəcəksiniz ki, maşın bu gün güzəşt necə ki, həm bu da web və proqramları dünyanın bu kimi command line. Bütün hüquqlar. Belə ki, simli s GetString bərabərdir. Belə ki, daha konkret, indi xətt 6 burada nə edir? Belə ki, sağ funksiyası, simli olur neçə dəlillər edir? Okay. Belə ki, heç biri. Bir az ağlı başında olma kontrol edin. Bir arqument yenə yalnız dəyişdirmək üçün bir funksiyası giriş edir bir şəkildə default davranış. Lakin bu halda, mən dəyişdirmək istəmirəm GetString davranışı. Mən yalnız bir string almaq istəyirdi. Mən parantez heç bir şey qoymaq, sonra bir qoymaq nöqtəli vergül kodu xəttin sonunda demarking. İndi, özlüyündə, bərabər demək deyil işarə edir. Bu tapşırıq deməkdir ki, bu olur nə qoymaq deməkdir sol nə hüququ daxilində outputted. Belə ki, sol, biz bəyan etmişik ki, bir string s çağırıb. Və daha konkret desək, biz daxili yaddaş ayrılan sonra biz bir ardıcıllıqla təmsil edən bit qoymaq bilərsiniz simvol. Amma bu gün üçün, biz ayrılmışdır və ya simli elan etdi. Bütün hüquqlar. Belə ki, indi mən bunu sonra, mən dəyəri plug istəyirəm s deyil, David dəyəri. Belə ki, bu niyə səhv edir? Belə ki, bu, yalnız sanki ağır kodlu s. Mən istəyirəm nə olan "hello, s," demək deyil. Mən bunu edə bilərsiniz. Faizi giriş tutucu, amma indi lazımdır İkinci arqument çap keçir. Funksiyaları arqumentlər ayrılır Xatırladaq ki, vergülləri, belə ki, burada növbəti vergül Mən bu məktubu s sonra qoydu. Və bu kontekstdə indi, s, printf dəyişən və bu iki giriş aldıqdan sonra - sağ və sol dəyişən adı s simli - bu, bizim üçün keçmiş daxil sonuncu plug, və yalnız olan gözəl gözəl simli çap biz daxil yazdığınız nə Belə ki, bu cəhd edək. Davam və geri Uzaklaştırmak gedən mənim terminal pəncərə. Burada alt zoom. Salam etmək köçürmək. Zınqıltı təkrar edilmişdir görünür. Mən yazın gedir. / Hello, daxil oldum. Heç hələ baş görünür, lakin bu sətirinə var Mən Nate kimi bir şey yazın ki, daxil edin, indi biz Salam, Nate. Mən s Rob ilə yenə bunu edə bilər. Mən niyyətində Belə ki, inşallah bu proqram davranır edir. İndi, bütün istifadəçi dostu deyil. Mən gözlənilən olunur nə heç bir fikir var. Belə ki, biz, əlbəttə, bir az bu təmiz olar. Məni burada geri edək və əvəzinə yalnız dalğıc və simli istifadəçi xahiş mənim aydın söyleyeyim Mən gözləyirdim alıram nə user. Belə printf ("simli daxil edin:" ); Burada heç bir dəyişənlər belə. No faiz əlamətləri. Yalnız sadə İngilis söz. Mənə indi burada alt getmək və proqram təkrar edək. Amma heç bir şey dəyişib görünür. Niyə? Mən bu derleyeceğiz var. Belə ki, asan səhv etmək. Amma fayl saxlamaq üçün nəinki var, ancaq proqram derleyeceğiz. Və mən yenidən run salam etmək istəyirsinizsə, artıq cingilti çalışır. İndi çalıştırabilirsiniz. / Salam. İndi "simli daxil edin:" baxın. Okay. İndi istifadəçi dostu bir az çoxdur. Nate, hello, Nate daxil edin. Yaxşı, gəlin yenə bu cəhd və düşüncə başlamaq bildirin künc barədə. Belə ki, ödəniş yalnız kimi, təşviq edirik və ya olunur cür getmək nə haqqında düşünmək spec dəstəklənməlidir yanlış Kullanıcı edə bilər, hər şeyi qabaqcadan yoxsa. Bugs, buna görə də true bilər. Belə bir simli daxil - burada bir küncündə halda nə var? Mən, proqramçı var, ola bilər ki, bir ssenari var gözlənilir? Bəli. Okay. Mən bu kimi bir sıra yazın nə olur? Bütün hüquqlar. Belə ki, hələ işləyir. Gramatically heç bir əhəmiyyət kəsb edir. Amma ən azı proqram işləyir. Başqa künc halda nədir? Mən gözləmirdim bir şey. Evet? Okay. Belə ki, biz, həqiqətən, həqiqətən, böyük sayı kimi bir şey ola bilər. Belə ki, burada bunu edək. Mənə bir ikinci kiçiltmək edək, mənə qeyd edək. Seçin və burada yapışdırıb bilməz. Bütün hüquqlar. Mən surəti və bu terminal pəncərə yapışdırıb bilməz, biz rəftar belə yalnız simülasyonu. Mənə bükmək gedən Uzaklaştırmak edək. Bu olmayacaq, çünki çox uzun üçün bu nə deyiləm həqiqətən, bu proqram ilə pozub. Amma bilər. Daxil edin. Amma bu olmadı. Bütün hüquqlar. Amma əsl künc halda var. Və doğru hərəkət edən yeganə səbəbi, belə etmək bu CS50 funksiyası GetString əslində çünki danışmaq deyil, biz bir neçə həftə görəcəksiniz kimi, başlıq altında nəzərdə avtomatik daha çox RAM, daha çox ayrılması əməliyyat sisteminin yaddaş, bu, həyata zaman, wow, həqiqətən, çox uzun bir şey çap etdik. İndi, bu, ağ yalandır bir az. Biz həqiqətən çox bir müddət durdurulmuş və mən çap edin klaviatura 5 milyard simvol kimi bir şey burada, və ya, həqiqətən, biz kifayət qədər bəlkə, surəti-yapışdırıb bir qədər təşkil edib çökmesine proqramı səbəb ola bilər. Bir az daha məhdud olan biclik etmək vaxt məbləği. Biz deneyebilirsiniz başqa künc halda nədir? Evet? Bəli. Belə ki, niyə biz heç bir şey cavab yoxdur? Belə ki, biz, həqiqətən, bəzi hərəkət etmək var, çünki başqa proqram bütün gün yanıb-sönən orada oturmaq olacaq. Amma yalnız hit əgər daxil edin - OK, indi, hələ də yanlış görünür. Qəza, lakin bəlkə imkan indi var etmədikmi daha ciddi proqramı həyata başlamaq əslində yoxlayır. Və əgər simli, cümlə, söz mən uzunluğu 0 malikdir çap, yaxşı, bəlkə də fəğan olmalıdır istifadəçi, ya ki, onu demək və ya onun yenidən simli daxil biz, həqiqətən, doğru davranış kimi görünür nə almaq və mənim hissəsində yalnız tam nəzarət. Geri sual? Ondalık sayı. Beləliklə, biz də ki, cəhd edə bilər. 1,10000005. Ki, yalnız həqiqətən tamam iş olacaq kimi görünür. Və həqiqətən gözlənilir. Biz tipli ola bilər baxmayaraq ki sayı, və ya bir böyük sayda əvvəl həyata ki, istifadəçi yazaraq olduğunuz zaman giriş və biz GetString funksiyası istifadə etdiyiniz deyil Mən yazaraq alıram nə əgər məsələ bir sıra kimi görünür. Xatırladaq ki, ASCII, sizin hər şeyi görə klaviatura bir eşlenen bilər ki, bir ədədi dəyəri xarakter, bir karakter. Belə ki, bu halda, hətta baxmayaraq ki, mən, bir sıra yazın bilər kompüter belə bir string kimi danışmaq üçün, hesab edir - ki, bir şey bir sıra kimi görünür, lakin deyil, əslində bir sıra. Amma indi biz, çünki həqiqətən mükəmməl segue var yazılı proqramları faktiki keçid ki, digər növləri istifadə edin. Belə ki, başqa Sandıqı istifadə edərək, və ya əksinə, əlavə strings istifadə edərək, biz həmçinin kimi C digər növləri var ki, həyata başqa dillərdə. A char, adı təklif kimi, yalnız bir karakter. A float üzən point dəyəri və bir xülya deyil bir real sayı deyərək yolu - a decimal ki, bir şey sol və / və ya sağ bəzi nömrələri ilə bu nöqtə. Bir int yalnız 123 kimi bir sıra olan bir tamsayı edir. İndi daha maraqlı ikiqat kimi şeylər. Biz ikiqat sonuncu dəfə nə? Bu doğru, 64 var. Belə ki, adətən isə bir float 32-bit - belə ki, yaddaşında uzun bu, bu 32 adet sıfır və olanları istifadə dəyərini əks - iki sözün iki dəfə ki, hansı ya böyük nömrələri təmsil edə bilər o deməkdir ki, ya siz daha dəqiq nömrələri təmsil edə bilər. Beləliklə, siz decimal nöqtədən sonra daha nömrələri var, ancaq bu fellow sadə bir şey, hətta video bildirib kimi konseptual 1/3 kimi bir tərəfindən dəqiq təmsil bilməz kompüter, nəhayət siz bit tökülmək və çünki Buna görə də yalnız .33333333 çox dəfə edə bilər siz yalnız mən təmsil həyata Ben demək nöqtə yer, yalnız bir gün zəng və onu təmsil etmək qədər imprecisely ki, istəyirəm. Və uzun uzun - kimi tanınan data növü var, çünki axmaq adı, lakin bu coincidentally tez-tez yalnız bir kimi 32 bit, olan C uzun int 32 bit, lakin bir uzun uzun ümumiyyətlə 64 bit. Belə ki, yalnız böyük təmsil deməkdir Bu daha nömrələri. Bütün hüquqlar. Biz, həqiqətən, biz əşyalar başlamaq istəyirəm əgər daha mürəkkəb növ lazımdır və ola bilər biz simli niyə ki. Belə ki, CS50 kitabxana ki, fayl cs50.h deyilən, biz var həqiqətən string adlanan belə danışmaq data type, elan lakin string həqiqətən mövcud deyil. Bu, yenidən, bu təbəqələrin bir biz peel olacaq geri bir həftə və ya iki və tullamaq və faktiki simli əslində nə başlıq altında baxmaq və necə təmsil edir. Biz də Boolean dəyərlər baxmaq olacaq. Belə Not kontekstində bir bool nə idi? Bu doğru və ya yalan var. Belə ki, bu, yalnız doğru və ya yalan olduğunu bir dəyəri və ya off, 1 və ya 0, lakin siz dünyada görmək istəyirik. Belə ki, C, bu CS50 kitabxana sayəsində hansı növbəsində başlıq altında başqa kitabxana, biz bool adlı bir veri növü üçün daxil verəcək sanki bizim dəyərlərə doğru və ya yalan təyin etməyə imkan verir bir proqram şeylər. Belə nin burada irəli getmək və bir az proqram yazmaq imkan əvəzinə nömrələr cəlb bir şey yoxdur. Mənə geri CS50 Aracı getmək qoy, məni irəli gedək və burada adlı yeni bir fayl yaratmaq - Gəlin yalnız math.c. kimi bir şey sadə demək Bütün hüquqlar. İndi mənim proqram üst qalxmaq, Ben adi nə - # Mən istifadə edə bilərsiniz ki, daxil printf, int əsas (void) - biz int nə deməkdir, nəhayət, geri qayıtmaq lazımdır burada etibarsız burada nə deməkdir, lakin indi üçün, yalnız bilirik ki, Bu kimi proqramlar başlamaq üçün. İndi bir az bir şey davam və demək gedirəm müxtəlif - printf ("Mənim bir sıra ver:" );. Sonra int n = GetInt etmək gedirəm, çünki GetInt çıxır ki, CS50 kitabxana başqa bir funksiyası GetString başqa. İndi sayəsində "kimi axmaq bir şey gedirəm % d üçün "üçün decimal tam, sonra vergül n, və sonra 0 qaytarın. Belə ki, yenə, 0 Ben sayı ilə heç bir əlaqəsi yoxdur qayıtmaq istifadəçi xahiş etmişdir. Məhz bütün ehtimalla, yaxşı ki, sonunda bildirir. Mənə burada terminal pəncərə aşağı gedək. Mənə daxil edin, riyaziyyat etmək yazın edək. Və bir şey yanlış. Riyaziyyat işləmədi olun. Burada səhv ilk deyil. Niyə? Bir az sirli, ancaq - Bəli. Belə cs50.h. Belə ki, yenə, xüsusilə erkən, siz ilk yazacaq bölmələrdə pset 1 proqram, ofis saat, və açıq, bəzən böyük olacaq nə bu şeylər həqiqətən söyləyərək. Amma onlar düşmək başlamaq çox tez dərk edəcəyik bu bir off tərk etdik deməkdir vasitəsi buketler daxil Bu # fayl üst daxildir. Və cingilti, bu compiler, bu sizə məlumat edir kəlamı deyil, fancifully, gizli bəyannamə funksiyası GetInt yanlışdır. Bütün hüquqlar. Belə ki, nə deməkdir? Bu yalnız dolayısı GetInt elan etdik deməkdir siz aşkar onu elan edən mənada. Aydın int bəyan etmək üçün, sizə öyrətmək üçün Ki, mövcud cingilti. Və üçün çox sadə həlli ilə öyrətməkdir bu digər fayl, cs50.h, o cümlədən fayl üst. Sanki nə # daxildir Çünki bu cingilti deyir olduqca çox cs50.h, surəti adlı fayl tapmaq getmək, Mənə mənim proqram üst avtomatik olaraq yapışdırıb və sonra adet sıfır və olanları kodunu çevirmək. Biz insanlar əgər Amma təbii ki, çox yorucu olardı bütün vaxt çıxarmaq və bu böyük faylları yapıştırdıktan getmək, belə # yalnız bütün olmadan avtomatik olaraq edir daxildir başqasının kitabxana ilə kodu muddying. Və kitabxana yalnız başqa funksiyaları olan fayl və başqası biz ki, yazılı ki, başqa şeylər öz naminə yararlanarak. Bütün hüquqlar. Nin daha cəhd edək. Riyaziyyat olun. Daxil edin. Yaxşı. Belə ki işləmişdir görünür. Belə ki, mənə indi riyaziyyat run olsun. / Math. Daxil edin, mənə bir sıra, 123 verir. Olan 123 üçün təşəkkür edirik. İndi bir künc halda edək. A string, çünki olduqca səxavətli bir simli bir şey ola bilər. Ədəd kimi baxmaq olar, kimi baxmaq simvol, söz kimi baxmaq. Amma int bir int edir. Belə ki, indi çətin istifadəçi oldum və mənə verin "deyərək əgər bir sıra "nə 0.1 kimi bir şey cəhd? Yaxşı ki, bir sıra var, və uyğun deyil qrammatika burada istifadə, ancaq başlıq altında, Mən oldum funksiyası GetInt istifadə kursu. Belə ki, nə görmək edək. Yeniden daxil edin. Bütün hüquqlar. Mənə çətin və yalnız yenə Enter olsun. Daxil edin. Belə ki, indi bu GetInt bir az daha görünür GetString çox güclü. Biz, işçi heyəti, biz hiss əgər ki, belə bir şəkildə həyata Bizə bir int verilmiş deyil - və bir int bir decimal sayı olan adet sıfır, olanlar, ikilər, üçlər, dörd ayaq, beşbir, allak, üst, səkkizinci, ya nines. Və bu. No decimal xal, heç bir simvol, heç bir durğu. Bu əməkdaşlıq var ki, görünür. Mənə dörd, beş, altı və vasitəsilə mənə əldə edək. Belə ki, həqiqətən, burada anal üçün, yəqin ki, mənə ver "demək lazımdır bir tam "istifadəçi çatdırmaq üçün məhz mən niyyətindəyik nə. İndi başlıq altında düşünməyə imkan verir. Biz cs50.h bu gün həyata necə baxmaq fikrində deyilik kitabxana. Lakin, yeniden, sınamaq, yeniden deyərək saxlayır əgər nə proqramlaşdırma Mən güman etmək başlıq altında istifadə edirəm tikintisi ki, həyata? Belə ki, yalnız bir loop, sağ? Biz Not gördüm ki, sadə ideyaların biri. Bu Forever təkrar tikintisi, tikintisi. Ehtimal ki, bu proqram, başlıq altında, hətta deyil danışıq C yazılı və edir, baxmayaraq ki, bunu edir istifadəçi yoxdur əgər bir şey əbədi ekvivalent adlanan bir tam çap ki, yeniden, sınamaq, yeniden retry, demək sonra nəhayət biz zaman sonra, bir tam almaq ki, loop çıxmaq. Belə ki, digər hansı funksiyaları biz CS50 kitabxana burada istifadə edə bilərəm? Yaxşı, aşkar olanları cür ən azı əsasında biz indi mövcud bilirik data növləri. Biz GetString, GetInt həyata, lakin ərzində müddəti ilk həftə, siz də GetFloat istifadə edə bilərsiniz Dəqiq almaq üçün GetDouble və GetLongLong istədiyiniz data növləri. Burada əsas detal bəzi languages ​​fərqli Çünki, siz mütləq yoxdur yerləşir Python və Ruby kimi bir değişken veri növü elan - Siz kompüter demək yoxdur stuff hansı Siz dəyişən daxil olacaq - C, siz heç belə dəqiq olmalıdır. Siz n adlı dəyişən, saxlanması bir yığın istəyirəm əgər bu halda, Konvensiyanın 32 bit olur ki, Bu bit olan kompüter demək üçün bir sıra saxlamaq niyyətindədir - bir xarakter, bir simli, bir float. Bu biz səmərəli sorunu giderir Ötən həftə qaçdı. Biz yalnız təmsil adet sıfır və olanları nömrələri istifadə edirsinizsə ədəd dünyada necə lakin kimi və pansiyonlar və Cs, bir kompüter bilmək gedən həqiqətən bit bu model kimi təmsil fərqli sayı 65, təmsil əsasən coincidentally məktub A,, Geri, ASCII, 65 bərabər idi? Belə ki, kompüter kontekstində təmin Bu data növləri Belə Bu bit kimi təfsir olunmalıdır, əgər bilir ki, int və ya bir string kimi. Hər hansı sual, sonra bu barədə? Evet? DAVID J. MALAN: Yaxşı sualdır. Biz stdio.h çıxarmaq, biz dosyayı - mənə terminal pəncərə enmək və riyaziyyat, zoom etmək run bildirin və daxil - Mən dolayısı Ben çünki indi fərqli bir səhv almaq indi fəaliyyət nə bəyan? Printf. Belə ki, indi onların həlli yeni bir problem, yaratdığınız mahiyyətcə eyni. Hesab edirəm ki, geri qoymaq lazımdır. Auditoriya: [işitilemez] DAVID J. MALAN: Oh. Mən almaq əgər - Okay, evet. Mən standart I / O kitabxana daxil qədər aradan əgər burada və sonra mən printf qurtarmaq, əgər almaq deyərək edirik printf xilas? Bəli. Whoops - Mən heç birini istifadə edərək artıq deyiləm, çünki bu, işləməlidir. Mən yalan mı? Oh, tamam. Bu yalnız təqdim yeni bir səhv üzündən işləməyəcək. Bu bir az daha çox özünü izahlı edir. Problemi nədir? Istifadə olunmamış dəyişən n. Belə ki, bu səhv bizim yapılandırılmış olan nəticəsidir həqiqətən də fəğan etmək, xüsusilə xırdaçı olmaq cihaz hər səhv üçün siz, hətta bu cür bu kimi qeyri-ölümcül səhv - bu həqiqətən belə bir böyük Mən int ayrılan məşğul, o, bir sıra qoymaq və yalnız bu heç nə idi? Belə ki, funksional, no. Bu proqram qırmaq niyyətində deyil. Bu axmaq, sağ yalnız növü var? Saxlanılır ki sayı xahiş edərək, heç bir dəyəri yoxdur bir dəyişən, əgər bir şey nə vaxt edirik ilə, bu, çap və ya saxlamaq olub. Belə ki, bu halda, cingilti kimi çox etiraf, və o istifadə olunmamış dəyişən n deyərək oldu. Biz həqiqətən istəyirsinizsə Belə ki, biz bu düzeltebilirsiniz. Ancaq yenə də, bu artıq yaxşı proqramlaşdırma deyil. Mən bunu yalnız bilər - burada enmək, mənə, ekran sil riyaziyyat edək. Bu işləyir. İndi mən, mənim riyaziyyat proqram run daxil edir bilər - yaxşı, pis idi. Daxil edir və bu halda, nə bütün. Yəni əslində, biri digər künc halda edək ki, əvvəllər hesab etməyib. Bu halda - burada üzrə olan bir geri gedək istifadəçi dostu az daha çox. Mənə burada geri yenidən riyaziyyat etmək run edək. Whoops, səhv nə idi? Daha geri roll var. Okay. İndi biz bütün, orijinal dövlət geri istəyirik inşallah yaxşı. Mən riyaziyyat run əgər İndi, 123 iş görünür. Amma bu yalnız demək, həqiqətən effektiv sübut deyil tamam ki, işləyir. 789 ki, işləyir. Təqdim Time. Burada digər künc hallarda var, çünki. A string həqiqətən yazaraq bizə çox narahatlıq vermədi bütün simvol var. Amma bu nə yazın əgər? - 1 nömrəli bütün çox, burada bütün çox vuruş bütün sağ, bir az darıxdırıcı əldə edir, mən gedirəm burada dayandırmaq, mən daxil olmaq üçün gedirəm. Yalnız nə cəhənnəm oldu? Beləliklə, bu, həqiqətən, izah edilə bilər. Belə ki, ikili kimi qəbul etdiniz? A yaxşı fikir, lakin, o, bunu etdi ki, deyil binar kimi, həqiqətən, çünki bir yalnız cür idi Təsadüfi. Biz bunu edə bilərsiniz. Belə ki, ikili sistem heç 2, var yəqin ki, kifayət qədər hər halda. Daxil edin. Belə ki, problem deyil. Nə? Exactly. Belə ki, bir int əslində nə geri edirəm. Bu kollektiv şərh olunan 32 bit var bir sıra. Siz 32 bit varsa ki, bit hər ola bilər bir 0 və ya 1, 0 və ya 1. Bu bit üçün iki imkanlar deməkdir ki, Bu iki imkanları, bu iki imkanları az - ki, 2 dəfə 2 dəfə belə - Belə ki, 32 güc 2-nin ümumi sayı adet sıfır və olanları permutations siz 32 varsa siz qarşısında placeholders, adet sıfır və ya olanları. Mən nə ki, riyazi, 32, 2 varsa? Belə ki, bir çox var. Bu vermək və ya almaq, 4 milyard var. Və 4 milyard burada çap olunub nə görünmür. Əslində, bu 2 milyard yaxın görünür. Amma bu bir təsadüf deyil. Kompüter mənim çox təhrif etmişdir ki, olanları və sonra ikilər mənim böyük ardıcıllığı, mənim böyük ardıcıllığı təxminən 2 milyard kimi, necə izah olunur? Bu int bir papaq var. Siz təmsil edə bilər ki, bir maksimum dəyəri əlbəttə var. Lakin sağ, adətən, 4 milyard var? 2, 32 halda təxminən 4 milyard ki, kimi görünür ən böyük sıra. Belə bir qalan, lakin yaxşı bir fikir. Mənfi nömrələri. Əgər siz 4 milyard mümkün şey varsa 32 0s bu müxtəlif permutations ilə təmsil 1s, yaxşı, biz insanlar istəyirəm bilər ki, səbəb dayanır yalnız müsbət tam ədədlər təmsil lakin mənfi integers. Və həqiqətən, C edir ki, ehtimal ki. Belə ki, 32 bit ilə, təxminən mənfi 2 təmsil edə bilər müsbət 2 milyard milyard bütün yolu. Və bu halda, nə biz, həqiqətən gördükdə yalnız bizim tam potensialının saçaq və biz belə var danışmaq, bir tam dolu. Biz, həqiqətən, uyğun çox daha çox bit CRAM cəhd etdik. Belə ki, son nəticədə biz mahiyyətcə bütün 1 bit var. Biz bit üzrə bütün Çevrilmiş sonra, biz təmsil denedim mümkün ən böyük sayı, ancaq təxminən aydın deyil Mən daxil tipli etdiyiniz iki şeyi təmsil etmək üçün kifayət qədər böyük Evet? Auditoriya: [işitilemez] DAVID J. MALAN: Yaxşı sualdır. Niyə biz yalnız mənfi təmsil bilməz yalnız bir simvol kimi imzalamaq? Belə ki, tamamilə ola bilər, və biz sonra xilas edə bilər əlavə bit. Amma hələ ki, tire təmsil etmək niyyətindədir və edirik ki, siz ən azı bir şey başa olacaq ehtimalla bir bit. Belə ki, bəli, biz sayı üçün istifadə 32 bit, lakin bilər indi biz tire üçün istifadə bir bit lazımdır simvolu eksi. Belə ki, indi biz bilər 33 bit dəyərlər, var, lakin bu yalnız yolu həyata deyil. Biz zəng il əvvəl bir qərar qəbul, 32 bit növ edir burada ölçü vahidi. Beləliklə, biz səmərəli o bit bir istifadə etmək olacaq mənfilik təmsil və sayı təmsil 31 bit. Digər suallar? Bütün hüquqlar. Bir çox var. Niyə biz irəliyə getmək və beş dəqiqəlik fasilə burada etmirlər? Bütün hüquqlar. Belə ki, yenə riyazi applications overemphasize deyil proqramlaşdırma, edək, bu bir nümunə off dərmək biz digər yapıları hərəkət əvvəl, yalnız çünki bəzi bir neçə ümumi büdrəmə xal nümayiş olunacaq əsasları yazılı proqramları gəldikdə. Bu halda, bir var ki, hesab ifadələr edir sözdizimini maraqlı alaka. Bu yalnız biz çevirə bilərsiniz olan bir formula edir Fahrenheit Selsi üçün olan temperatur. Siz geri deyilsə, bu yalnız formula edir. Biz olan 32 dərəcə Fahrenheit dəyəri ilə plug əgər dondurma ki, həqiqətən 32 minus 32 0 edir olacaq, və ki, Selsi 0 də donma deyil. Belə ki, tez ağlı başında olma var yoxlamaq - Bu tanış formula var. Mənə də, cihaz üzərində getmək və başlamaq edək f2c kimi adlı proqram yazılı, "Fahrenheit üçün Dot c Selsi ". Və burada üstündeki I # daxildir ilə başlamaq gedirəm stdio.h və mən int əsas (void) edəcəyimiz və alıram yenə biz int nə deməkdir kimi gələcəkdə geri gəlmək lazımdır və nə boşluq var deməkdir. İndi mənə irəli getmək və bir proqram həyata bildirin mahiyyətcə bizim üçün bu dönüşüm edir. Belə printf isə Fahrenheit ildə temperatur deyək. Və sonra məni irəli getmək və istifadəçi dəyəri almaq imkan verir. Mən istəyirsinizsə dəyəri nə mən istifadəçi almaq lazımdır onlara mənə Fahrenheit temperatur verməli? Evet? Siz nə təklif edərdiniz? Bəli. Belə ki, float olduqca ağlabatan hiss edir. Biz yenidən ki, bir neçə variantları biz belə uzaq gördüm. Biz, uzun uzun, char, double, float, int kimi şeylər var bool, simli. Belə ki, bu, float olduqca ağlabatan hiss edir. Biz həqiqətən istəyirsinizsə, çünki bir cüt, doğru istifadə edə bilər bir insan temperatur təmsil - 98,60000 - biz bunu 64 bit istifadə edə bilər, lakin bu kimi hiss edir temperatur üçün overkill. Belə nin float ilə getmək yalnız bildirin. İndi bir dəyişən lazımdır. Just şeyə sadə saxlamaq, mən f zəng etmək üçün gedir, amma alıram kimi düzgün temperatur zəng edə bilər, amma ya yaxşı. Belə ki, f = GetFloat float. İndi GetFloat istifadə etmək qərarına kimi, baxmayaraq ki, mən bir düzəliş etmək lazımdır. Bəli. Biz # daxil lazımdır, əgər compiler edir bizə fəğan gedir. İndi bir float ki, mənə irəli getmək və nə imkan dönüşüm. Belə ki, ilk, burada mənə də vərdiş halına imkan mənim kodu şərh. Belə ki, yenə bir comment ki, insan yalnız bir notation edir deyil se başına proqramı çərçivəsində, ancaq biri, sizə kömək edir bir sonrakı səhər nə başa düşmək, və ya növbəti ay, bu tədris fellow siz nə anlamaq kömək edir və ya, belə ki, nə sizin nə nəzərdə var ümumiyyətlə, çox yaxşı təcrübə. Kodu bir neçə xətləri, fikir özünüz və ya dos. Odur ki, deyirəm, gedirəm "temperatur üçün istifadəçi soruşun." Tam cümlə, yalnız qısa bir söz olmalıdır deyil. Lakin C şərh arxasında ideyası ki, hər bir demək, bir TF ya bir həmkarım və ya - şərh siz imkan olmalıdır - deyil, sizin proqram üzsüz və bunu dəqiq nə çox kodu oxu, amma şərh okuyarak olan qısa və aydın olmalıdır. Bütün hüquqlar, indi Convert "Mənə davam və deyək Fahrenheit üçün Selsi. "Mən, davam və nə üçün gedirəm c sal, deyək. Üzən point dəyər kimi Selsi davam edəcəyik. Və mənə bu bir bıçaq götürək. Bu formula burada, təkrar edir. 5/9 dəfə F minus 32. Belə ki, bunu edək. Belə ki, 5 9 bölünür, minus - whoops, mən artıq onu messed. Times. Belə ki, 5/9 dəfə F minus 32. Nöqtəli vergül, F minus 32 belə. İndi aşağı burada, mən davam gedirəm və demək nəticə çap. Və bu hissəsi asandır. Printf. Mən bu çap yaparsınız? Yaxşı, Mən "O sayı Selsi f \ n%-dir" deyə bilər yalnız bəzi estetik üçün. Və sonra printf kimi burada yerləşdirin nə dəyər istəyirəm İkinci arqument? Okay. Belə ki, yalnız c. Beləliklə, biz bu başlar və sonra yalnız 0 qaytarın. Yenə, bu, riyaziyyat ilə heç bir əlaqəsi yoxdur. Bu yalnız bütün yaxşı deməkdir. İndi, bu düzgün, bu proqram? Bütün hüquqlar. Mən bəzi səhvlər etdik. Əgər proqramlaşdırma nə heç bir fikrim yoxdur bile, sıralayabilirsiniz dərəcəli məktəb üçün nəticə çıxarmaq geri nə burada səhvlər ola bilər. Ilk bir ne? Auditoriya: [işitilemez] DAVID J. MALAN: Bəli. Beləliklə, biz parantez itkin edirik. Mən açılış ildə parantez ki qəsdən idi üçün bu anlayış həqiqətən var, çünki burada uçmaq əməliyyatlar, və ya üstün, əsasən müəyyən əməliyyatları - vurma - ali məcburi var, hər şeyi daha ali üstün əlavə və ya toplama işlemi kimi. Beləliklə, biz yalnız aydın dəqiq etmək ildir bu etdik nə riyazi əməliyyat ilk edilməlidir. Mən yəqin ki, məhz bu təqlid etməlidir. Əks halda, kompüter güman etmək üçün cəhd edir 9 uçurum 5 kimi bir şey, sonra çıxmaq, sonra F çoxaltmaq Bütün şey 32. Hansı etmək istəyirəm nə, əslində, deyil. Belə nin parenthesize bildirin. Nin burada mənim burada mötərizə, parantez əlavə edək. Nin burada bu qoyaq. Burada yalnız mən yol boyunca edilən bir səhv etdik. Evet? Auditoriya: [işitilemez] DAVID J. MALAN: Ah. Yaxşı. Yəni biz əslində eyni tam var əvvəl bölünməsi məsələsi. Mən simptom nə görmək edək ki, düzəltmək. Amma biz bir düzəltmək üçün olacaq burada digər səhv. Evet? Auditoriya: [işitilemez] DAVID J. MALAN: Bəli. Belə ki, axmaq səhv edirəm, lakin olduqca əhəmiyyətli. Kompüter bir göz yummaq və qoy etmək niyyətində deyil Mən, həqiqətən, dəyişən elan zaman mənə, kapital F istifadə kimi line 8 burada kiçik f. Mən, line 11 mənim kapitallaşma ilə düzəltmək üçün lazım olan bir an əvvəl səhv bir kapital F idi. Burada haqqında? Bu həmçinin kiçik olmalıdır? Bu olmalıdır, lakin bir təsadüf deyil. Yəni% f dəyişən ilə heç bir əlaqəsi yoxdur. Belə ki, yalnız burada aydın super olacaq, mənə irəli gedək və Bu, qısa, "temperatur." adını dəyişmək Mənə adını edək Bu "temperatur". Bu adını deyil edək. Çünki, yenə,% f qlobal deməkdir "point dəyər üzən". Mənim dəyişən ilə əlaqəsi var. Amma bütün yer üzərində "temperatur", yalnız bir az wordy edir Mən mənim kiçik "f" nın geri gedirəm. İndi mənə burada mənim pəncərə aşağı davam edək. F2c olun - ki, təkrar ixtiyari adı mən Bu faylı verdi. Tərtib görünür. Mənə f2c run edək. Daxil edin. Fahrenheit temperatur - asan nə edək. 32. OK, düzəltmək. Amma indi qaynar üçün 212 əgər - lənətləmək. Bütün hüquqlar. Sizin TF çalışır Belə ki, aydın, doğru deyil ən azı iki dəyərlər. Belə ki, problem burada nə var? Bəli, artıq məsələ nə sizin barmaq qoymaq. Amma nə halda ki? Burada, mən 9 bölünür 5-riyaziyyat edirəm zaman. Belə ki, konseptual ki, mükəmməl doğru deyil. Düsturu ilə tamamilə uyğundur. Lakin kompüter yalnız dəqiq nə siz bunu onlara deyirəm. Və nə biz səmərəli burada kompüter izah edirik ki, bu tam 9 ilə tam 5 bölmək və mənə nəticə verir. Siz bölmə data istifadə edərək, zaman problem olsa, bir növləri, çıxış giriş eyni data növüdür. Iki giriş həm ints, əgər belə, çıxış edir bir int olmalıdır. Və 9 bölünür 5 bal bir şeydir. Amma bir şey qeyd etmək ən yaxın tam nə var? Belə ki, həqiqətən 0 var. Decimal sonra bazar ertəsi müzakirə etdiyim kimi, hər şey point qaralar olur. Bu, yalnız üz atılır olur. Belə ki, bu tam bir səhv, mən bilər çünki həmçinin yalnız burada 0 hər şey çoxaltmaq. İndi yollar bir neçə bu düzeltebilirsiniz. Mən bunu edə bilər. 5.0 9.0 bölünür. Texniki, mən hətta bunu etmək lazım deyil. Bu yalnız nömrələri bir float biri etmək üçün kifayət edir - və ya ikiqat - burada decimal nöqtə qoyaraq. Siz bir tam bölmək nə zaman artıq olur, çünki bir float və ya ikiqat, kompüter həyata olacaq oh, o biri daha dəqiq deyil. Məni daha çox dəqiq verilməsi tərəfində səhv düşmək edək siz nəzərdə tutulmuşdur. Belə ki, nəticə çevirmək olacaq - bir üzən point dəyər, həmçinin nəticə qayıdacaqlar. Belə ki, iş olardı. Bu iş olardı. Və biz görmək lazımdır ki, başqa bir mexanizm var daha ətraflı gələn həftə. Siz, həqiqətən, proqramçı kimi, kompüter deyə bilərsiniz əslində bir veri növü kimi müalicə başqa baxmayaraq. Mən həqiqətən bunu edə bilər. Parantez, mən açıq kimi bir şey (float), demək olar paren, yaxın paren. Bu deyirlər nə "tökmə". Yenə daha Bu gələn həftə. Amma bu izah yalnız proqram yoludur kompüter, evet mən 9 bir tam və ya uzun bilirik. Mən bunu bir üzən point dəyər deyil bilirik. Amma hər halda kimi müalicə. Belə bir veri növü salmaq çevirmək deməkdir bir başqa. Açığı, bu, yalnız bir az çirkin, belə ki, mən getmək təklif edirəm yalnız konvertasiya orijinal təklif geri bunlar əl point dəyərləri üzən etmək. İndi nə sil yalnız super ve Çünki bu dağıtan ki, bütün deyil. Belə ki, indi mənim terminal pəncərə geri gedək. F2c olun. Mənə davam və bu run edək. Və bir kənara kimi, bu əmrləri yazaraq cansıxıcı almaq təkrar, burada Linux kimi, bu kompüter həyata olduqca ağıllı olur. Mən Up hit varsa, biz mənim bütün tarixi ilə getmək olar əmrləri, Up və Down. Belə ki, burada bu halda, yalnız f2c etmək run qədər davam edə bilər. Mən yalnız bir ikinci əvvəl etdi, çünki Mən də yelled olan alıram. Bu günə qədər artıq var. Belə ki, indi mən yenə f2c çalıştırabilirsiniz. 32 Fahrenheit cəhd edək. İndi 212 Fahrenheit edək. Phew. Iş görünür. İndi, bu yaxşıdır, amma bir az ixtiyari hiss Mən decimal bal sonra altı ədəd göstərən alıram. Sağ? Siz TV haqqında hava şəxs danışırsınızsa, bir doofus cür etdiyiniz sizə temperatur oxu edirsinizsə dəqiq, bu dərəcəsi. Belə ki, bu sadələşdirmək bildirin. Belə nin həqiqətən mənim printf üçün burada gedək. Və Bəli, mən üzmək istəyirəm. Amma indi dəqiq müəyyən etmək istəyirik. Mən bir az yığcam olacaq edirəm. Mən decimal yer sonra bir nöqtədə vermək demək gedirəm. Belə deyil,% f demək deyil, mən% .1 f demək gedirəm. Və bu yalnız mənə bir mövqe vermək deməkdir Bu kəsir sonra. Bütün hüquqlar. Nin daha cəhd edək. Mənə tərtib sonra yenidən run edək. İndi 32 yazın, mən geri almaq daha qısa dəyəri. Və mən, indi də 212 yazın və daha yığcam geri ala bilərsiniz dəyəri kimi də. Və printf ilə edə bilərsiniz başqa şeylər var. Siz, həqiqətən, sayı olmalıdır necə geniş belirtebilirsiniz. Siz onu padding etmək istəyirsinizsə, belə ki, sağ align ya sol-align nömrələri bütün və ya mərkəzi şeyi etməyə çalışırıq. Beləliklə, siz orada edə az tövsiyələr var bilirik. Lakin onlar yalnız format kodları aşağı qaynatmaq biz var kimi. Belə üstün bu məsələ baxımından. Bu şəkildə keçməsi üçün çox darıxdırıcı masa. Lakin C müəllifləri ilə gəlmişəm ki, həyata operatorlar ali olan belirttiğiniz qaydaları üstün, daha çox məcburi güc. Belə dərəcəli məktəb isə, biz ümumiyyətlə bilirdi ki, vurma və bölmə, sonra əlavə və toplama işlemi, sonra bəzi digər stuff. Proqramlaşdırma bir dünya, bir çox var şeyi uzun siyahısı. Bu indi ezberlemeye dəyər bir şey deyil. Siz uzun əvvəl onu acclimated almaq lazımdır. Amma yalnız dərəcəli məktəb kimi, parantez ümumiyyətlə həll ilə super aydın edərək üstün məsələləri, kompüter və nəzərdə nə eyni insan. Belə ki, bu bir az etmək hesabatı hesab edir. Lakin həmin məlumat ən biz bir müddət almaq olmaz. Bütün hüquqlar. İndi qurmaq qoy və bu silly az uzaqlaşmağa riyazi nümunələri. Hələ eyni əsasları istifadə, lakin başlamaq özümüzü Not kimi bir az daha ifadə. Belə ki, Scratch, biz bu Boolean ifadələr var idi. Və ingilis, bir Boolean ifadə nədir? Doğru və ya yalan. Bu doğru və ya yalan üçün qiymətləndirir ki, bir şey deyil. 1 və ya 0. On və ya off. Siz zəng etmək istəyirəm nə olursa olsun. İndi Scratch, bu puzzle ədəd bu kimi baxdı. Və üç, orada altındakı, birləşməsi var puzzle ədəd. Bir birlikdə - boş və boş ki, bir şey. Və sonra iki Boolean ifadələr onun içərisində. Beləliklə, siz daha almaq üçün yuva Boolean ifadələr bilər Boolean ifadələr mürəkkəbdir. Məsələn, şənbə və əgər gözəl hava, sonra kənarda. Kimi özbaşına və ya bir şey. Belə bir ilə gəlmək üçün Boolean ifadələr iştirak edə kimin cavab böyük həqiqət dəyəri əsasında kiçik olanlar haqqında. İndi, C, təşəkkürlə, bu mapping edir əslində olduqca sadə. Parantezler şeyi burada təmizləmək yardım. && Nə deməkdir "və". Belə ki, necə biz sıfırdan C. həmin blokları çevirmək olacaq Və şəraitə görə biz sol tərəfdən, Not gördüm x az olduqda orada yan, mən C. eynilə onlara dəstə bilər y daha sonra bunu. X y daha böyük Else, onda bunu. Else məntiqi onlar demək, bərabər olmalıdır onlar bərabər olan. Beləliklə, biz indi bu şeyi yaratmaq başlaya bilərsiniz. Belə bir misal nə edək. Mənə kurs veb ki, ki, bir fayl açmaq edək Mən əvvəlcədən yazmışdır. Bu nonswitch.c adlanır. Niyə yalnız bir anda və görəcəyik. Belə ki, bu fayl - nonswitch.c - ilk bütöv bir dəstə var ki, həyata üst comments. Bu yalnız nə, fayl adı izah edir edir və s. Və yəqin Boolean VƏ etməkdə istifadə göstərir - iki ifadələr conjoining. Belə ki, bu proqram necə işlədiyini görmək edək. Mən iki faylları, cs50.h və stdio.h daxildir. Mən aşağı diyirləyin, indi, proqram, bu bir az artıq var biz əvvəl yazılı, lakin olduqca oxunaqlı etdik çox. Mən ilk, line 18-də istifadəçi çap "Mənə 1 və 10 arasında bir tamsayı verin." Belə ki, sağ var. İndi tam almaq. Lakin GetInt həyata - olduqca sadə. Bu, sadəcə bir int olacaq. Bu heç bir int almaq deyil ki, təmin etmək üçün gedən və oldu simli və ya float. Lakin sərhəd yoxlama hər cür nə deyil. Bu ədəd arasında olacağı filtrelemek üçün gedən deyil müəyyən üçündür. Beləliklə, biz özümüzü ki, həyata var. Belə ki, yalnız mən bir birlikdə edə bilər, Not kimi iki ifadələr, mən aşağıdakı kimi C ki, edə bilərsiniz. N və ya daha çox 1-bərabər və n Əgər az və və ya 3 bərabər, çox özbaşına fərman gedirəm ki, kiçik olması nömrəsini. Yalnız bir bəyanat naminə. N 4 və 6 arasında başqa, əgər print "Siz orta seçilmiş "n 7 arasında və 10 Əgər Else, çap" nömrəsini. Siz seçilmiş böyük nömrəsi. Yanlış bir sıra seçin "Else çap". " Biz etdik, əgər məntiqi ki, aşağıdakı Çünki bizim üçündür canı. Beləliklə, biz və ya daha çox yazmaq necə bu tamamilə həyata riyaziyyat sinif bərabər. Sağ? Siz adətən altında xətti ilə, bu kimi cəlb edir. Amma klaviatura belə əsas yoxdur. Belə ki, daha çox ifadə C simvolu və ya bərabər iki simvol və az simvolu ya bərabər həmçinin iki simvol edir. Bütün hüquqlar. Bu proqram run Belə ki, siz yəqin ki, nə tahmin edə bilərsiniz etmək üçün gedir. Mən irəli getmək və nonswitch etsəniz, daxil edin. Və sonra nonswitch axır. Mənə 1 və 10 arasında bir sayı verin. Mən 11 vermək gedirəm. Mən yalnış sayı seçilmiş. Mənə sayı 3 cəhd edək. Mən kiçik bir seçilmiş. Orada Belə olduqca sadə. Mən bu proqram davranışı dəyişmək istəyirsinizsə, əvəzinə bir az fərqli bir şey var? Mənə davam və bu deyək. Mənə bütün bu xilas edək. Və mənə deyim əgər (n == 42). Və sonra irəli getmək və çap demək gedirəm "Siz seçilmiş doğru cavab ". Else biz irəli getmək və demək olacaq printf ("Siz seçilmiş səhv cavab ");. OK. Yalnız çünki. İndi, bir neçə xal biz burada edə bilərsiniz. Biri, mən hesab edirəm ki, simvolu yazın vermədi ən ağlabatan. Siz istifadə etməyin həyata mən bərabərlik yoxlamaq üçün istədiyiniz zaman çevrilir bərabər işarəsi. Yerine bərabər bərabər işarəsi istifadə edin. Və nə ki, yalnız daxilən, ola bilər? Bəli. Auditoriya: [işitilemez] DAVID J. MALAN: Normal. Bərabər işarəsi artıq təyin edilməsi üçün istifadə olunur. Bəziləri həqiqətən bu hesab etməyib. Və indi, bu bərabərlik test gəldikdə, biz var daha aydın olacaq və demək bərabərdir bərabərdir. Çox ümumi səhv bunu edir. Və ofis saat ya da gələn həftə və ya əgər iki həftə sonrakı Əgər belə bir şey yoxdur və 20 dəqiqə həyata rəqəm çalışır, 10 üçün mübarizə lənətləmək səhv, nə o biri olduğunu dərk bu səhv edən insanlar. Belə ki, etmək asan Super. Amma məqsəd bu səhv dəf etməkdir. Bu, həqiqətən, nə deyib, çünki bu, qiymətləndirmək olar? N 42 alır edin. Belə ki, fel nəfər ifadə etmək, şifahi, istifadə tapşırıq anlayışı "alır" dir. N 42 olur əgər. Belə ki n 42 təyin deməkdir. İndi, parantez bir Boolean ifadə var bu şərt daxilində olan dəyəri 42 edir. Sağ? Çünki daxilində həyata, ümumi onu qiymətləndirmək if cavab, indi 42-dir. Mən sizə sual Belə ki, əgər "(42), əgər" nə ki, həqiqətən dedi? Yaxşı, Boolean ifadələr yalnız doğru və ya yalan ola bilər. 1 və ya 0. On və ya off. Belə ki, biz elə bir bütün, burada bir küncündə işi üçün görünür "(42)" Əgər qəfil, mən deyən deyiləm. Bu Boolean dəyər deyil. Belə ki, kompüter nə olsa da, bu, mahiyyətcə bərabərdir edir 0 deyil ki, bir şey doğru şərh olunur. 1. Haqqında. Onlar bütün funksional ekvivalent istəyirik. Yalnız dəyər biz rəftar kimi 0, və ya yalan söz, nəticədə görmək, əslində yalan. Qeyri-sıfır Çünki "əgər (42)" həqiqətən, doğru olardı. Belə ki, burada daha dəqiq desək, bir Boolean dəyər həqiqətən belə deyil çox doğru və ya yalan, lakin bu halda, əgər 0 və ya qeyri-sıfır. Yalan Belə ki saxta və ya deyil. Və bizə daha çox əhatə etmək üçün imkan verir ki, bu ara ifadə imkanları. Beləliklə, biz bu demək, heç belə diqqətlə lazımdır - if (n == 42). Biz bərabərlik test, qeyd etmək lazımdır sadəcə çünki dəyəri olmayan bir tapşırıq. Burada diqqəti çəkir başqa nədir? Bu qıvrım aşırma həqiqətən zəruri deyil. Mən burada sirke-picky olmağa bunu etdik. Amma yalnız bir xətt var ki, bir şərt zaman kodu, asanlıq, proqramçılar istifadə etmək lazım deyil bu qıvrım aşırma. Bu, sadəcə estetik səbəblərdən indent kifayətdir və sonra kodu sizin line yazın. Üçün - siz kodu iki satır yazmaq üçün yalnız Məsələn, başqa printf ("Bye!"). Bunu etmək istəyirsinizsə ki, bu pozuldu. Siz istədiyiniz bütün indent bilər, amma siz ki, qıvrım aşırma istifadə etmədən kodu iki xətləri çap Bu proqram düzgün və ya güc axır ki vasitələri hətta düzgün tərtib deyil. Belə ki, indi üçün, vicdanlı olmaq, mən yaxşı vərdiş yalnız hesab bu qıvrım aşırma istifadə və onlar ki, tapa bilərsiniz super aydın neler. Həmçinin, bir kənara kimi - bu arasında etdiyiniz xüsusilə istifadə edən online tövsiyə kitab və ya resursları - stil bu anlayış var ki, dərk proqramlaşdırma. Və bəzi insanlar əslində buruq brace qoymaq üstünlük burada bir line. Bəzi insanlar, gülünc şeylər üstünlük burada onları qoymaq istəyirəm. O gəldiyi zaman heç bir səhv cavab var stil, lakin bu, səhvdir. Lakin bəzi insanlar bunu. [Gülüş] DAVID J. MALAN: Mən bu qeyd, sadəcə çünki kitab və ya online şeyi qədər oxumaq, almaq olacaq müxtəlif müxtəlif müəllimlərin mesajları və müxtəlif müəlliflər. Və yalnız funksional, onlar istəyirik ki, həyata ümumiyyətlə ekvivalent, lakin ardıcıl olmalıdır. Belə ki, bu halda, biz buruq haqqında standartlaşdırmaq lazımdır aşırma sol burada üzlənməsi. Bütün hüquqlar. Belə ki, indi irəli getmək və bu run bildirin, və nə görmək Bu proqram ilə. Nonswitch olun. Sonra nonswitch axır. Mənə 0 arasında tam ver, - belə ki, müvafiq deyil artıq, lakin mən yalnız özbaşına 42 demək gedirəm. Mən düzgün cavab seçilmiş. Yaxşı İndi həqiqətən fərqli bir istiqamətdə bu götürək. Digər bəzi sintaksis biz orada həyata çevirir bir proqram istifadə edə bilərsiniz. Burada funksional eyni olduğunu sintaksis yeni bir parça var ancaq özümüzü ifadə başqa bir yol təqdim edir. Belə ki, bu deyirlər nə "keçid bəyanatı". Və bir switch bəyanat aşağıdakı kimi fəaliyyət göstərir. Bu, parantez, siz istədiyiniz bir dəyər alır Haqqında "switch". Siz onun dəyəri əsasında fərqli davranmaq istəyirik. Belə ki, bu n dəyəri keçid deməkdir. Bu nə deməkdir? Yaxşı n 1 və ya 2 və ya 3, əgər, davam və "Siz çap bir çox "seçilmiş və sonra qırmaq. Fasilədən səbəbi C işləri yol olduğunu bu matçları bir halda tapır tez, bu, həyata başlayır aşağıdakı bütün kodu. Mən line 27-burada nə kimi I, kodu bir xətti Belə ki, bu icra olur. Mən burada başqa bir xətt əlavə, bu, icra edilir. Digər bir xətt, burada icra edilir. Bu proqram yalnız aşağıdakı nə executing dayandırır Mən aşkar zaman tətbiq işi bəyanat "pozub." demək Belə yanlış. Sağ, bu halda, nəticə kimi. Case 4 və ya 5 və ya 6, eynilə, gedir Mesaj çap. Bu halda, orta sayı. Fasilə. Case 7, 8, 9, 10, onu çap olacaq "Siz böyük bir seçilmiş nömrəsi. "Fasilə. Və sonra "default" deyilən bir söz sözün var ki, səmərəli tikintisi isə "başqa" kimi. Intellektual Beləliklə yeni sintaksis, lakin bütün yeni burada heç bir şey. Bu, yalnız Not kimi. Başqa, başqa if Əgər sort blokunun, əgər. Belə ki, bu proqramın işə versiyası var. Amma biz burada nömrələri ilə bunu görə bilərsiniz. Yalnız göstərmək üçün, mənə ikinci versiyası açmaq edək bir az daha konkret bir şey. Belə ki, burada biz əvəzinə notları var. Siz integers deyil yalnız açarları istifadə edə bilərsiniz çıxır, lakin simvol. Bütün məlumat növləri, lakin ən azı simvol. Odur ki, biz bir şey kimi ola bilər C dəyəri ki, istifadəçi bu GetChar funksiyası istifadə edərək, line 19, çap kapital A və ya bir kiçik, üzrə grade kimi şərh edək ki, və əla dərəcəli seçilmiş deyirlər. Və aşağı keçid bəyanat yanaşı, biz digər var "B"-nin və "C" s, və s üçün hallarda. Amma indi başqa bir şey ətrafında bildirin. Və yenə cür vasitəsilə uçan bu misallar bəzi. Amma biz onlara müraciət edə bilər ki, həqiqətən belə var - və ya, həqiqətən, yalnız indi onların tərcümə - C. etmək Mənə irəli getmək və bunu bildirin. Yeni bir fayl açmaq üçün gedirəm. Mən daxil etmək üçün gedirəm. Və sonra mən int əsas (void) etmək üçün gedirəm. Mənə bir loop.c. bu faylı edək Yalnız bir misal kimi. Mən irəli getmək və aşağıdakı gedirəm. Mən çox yorucu proqram yazmaq istəyirəm. 10 Beləliklə,. Bunu edək. 9. Bütün hüquqlar. Əgər proqramlaşdırma bunu başlamaq kimi, sen yəqin ki, səhv edir. Amma hər halda orada başlamaq lazımdır. Üzr istəyirik. Bu, həqiqətən, yanlış. 7. 6. 5. 4. Heç biz 0 almaq zaman nə olacaq. 3. 2. 1. Okay. 0. Silin. Bütün hüquqlar. Belə 0 qaytarın. Belə ki, bu proqram açıq-aydın nə çox nə olacaq maraqsız bunu olacaq deyir. O bütün çap olacaq üstdən-aşağı dəyərlər. Mənə loop etmək üçün imkan verir. Və sonra - whoops. Loop olun. Mən yanlış kataloqu idi. İndi mənə loop run bildirin. Daxil edin. Woohoo. Çox gözəl. Nice, uzun proqramı. Bütün hüquqlar, amma indi daha yaxşı bunu edək. Bir loop istifadə açılmış zaman Just, Not kimi tikintisi, yerine çıxarmaq və bütün sovuşdurmaq puzzle ədəd, mənə bu şey təqdim edək. Belə ki, C, müxtəlif loop yapıları var hansı biri bu kimi görünür. A "üçün" loop iki semicolons ayrılmış üç şey var. Daxilində loop orqanı və sonra, belə danışmaq - bu bu qıvrım aşırma haqqında stuff daxili - biz təkrar bir şey edə bilərsiniz. Mən ekranda burada nə, bu sözün yalnız bir comment. Bu / / Yorum gəlir burada deməkdir. Bu kod deyil. Bu mənə yalnız İngilis təsviri, insan deyil. Belə initializations, şərtləri və yenilikləri. Yaxşı, necə bu işləri görmək edək. Bu mənə aşağıdakı kimi bu proqram yeniden yazmaq üçün imkan verir. Üçün - belə ki, burada mənim loop gəlir - i int - burada "i" adlı dəyişən gəlir - 10 başlatılmış olur. Belə ki, mənim başlatma var. Mən belə uzun "i" və ya daha çox kimi bu loop etmək istəyirəm 0 bərabərdir. Bu loop hər iteration üzrə istəyirəm i nə -. Belə ki, bazar ertəsi + + gördüm. - Əks edir. Bu 1 dəyəri decrements. Bu loop Inside, Mən, həqiqətən, bir şey etmək istəyirəm. Mən printf kimi bir şey demək gedirəm. Bu açıq-aydın yalnız, çünki, indi 10 demək istəmirəm Eyni dəyər çap gedir. Mən əvəzinə, yəqin ki, çap üçün nə istəyirsiniz? Bəli. Belə ki, "i". Belə ki% d, i. Mən əvvəllər həmin ideyaları bir oğurlamaq gedirəm - format kodları üçün bu substitution - və sonra aşağı burada, alt, yalnız, 0 qayıtmaq lazımdır yaxşı tədbir üçün. Amma indi mən bir daha yığcam proqram var. Bu yalnız bir neçə xətləri var, və 10 və ya 11 satır. Mənə burada mənim tez gedək. Yeniden yapmak loop. Loop təkrar. Və eyni görünür. İndi, proqram çox maraqlıdır. Amma indi mən bu kimi bir şey edəbilərsiniz. Mən 100 Bu dəyişə bilərsiniz. Mən sonra mənim proqram derleyeceğiz bilər. Və sonra mən proqramı yenidən işə sala bilərsiniz. İndi bu gün kompüter super-sürətli gedir. Amma mən - və həqiqətən, mənim scrollback bufer deyil hətta uzaq getmək. Biz də gedin. Belə ki, orada biz bütün 100 var. Ancaq burada səhv etmək üçün asandır. Gözlənilən davranış olacaq nə varsa təsadüfən bunu? Belə ki, sonsuz kimi hiss edir. Belə ki, kompüter davranır əgər in görək. Mənə davam və loop edək. Və mənə loop run bildirin. Belə ki, yalnız bir an ki, qayıda bildirin. Biz run imkan olacaq. Çünki biz minimal, nə qədər saymaq lazımdır? Yəqin ki, ən azı 2 milyard, biz çox bit varsa, və biz müsbət dəyərlərini istifadə edirik. Belə nin burada geri jump edək. Loops bu cür Bundan başqa, biz isə deyilir nə var loops. Belə ki, yalnız Not kimi, siz Forever idi bloklar, və təkrar blokları var idi. Eynilə, C, yalnız digər yolları var özünüzü ifadə. Belə ki, sizə imkan verir ki, bir müddət loop bu anlayış var özünüzü fərqli bir az bildirirəm. Və sonra, bir do-isə loop deyilən bir şey var olan, habelə az fərqli fəaliyyət göstərir. Və biz artıq başqa bu dolaşmaq lazımdır. Amma nin burada bu son bir nəzər salaq. Biz getmək varsa - hələ çalışır. Bu olduqca sonsuz deyil. Mənə müsbət daxil bildirin, biz həqiqətən bilərsiniz göstərmək bir az daha səmərəli istifadəçi daxil idarə edir. Bu olduqca qısa proqram. Və burada əsas bir int n bəyannaməsində var. Mənə n adlı dəyişən verir. İndi sanki demək "Do". Və sonra mən açıq buruq var brace, yaxın buruq brace. Və sonra sağ sonra, qeyd, bu deyir isə n az 1-dir. Belə ki, qeyd edir ki, bu xətləri - 19 24 - kollektiv bir do-isə loop daxildir. Və yenə, yeni sintaksis, bir yeni fikir. Bu syntactically loop yalnız başqa yol var. Belə ki, bu nə edir? N 1-dən az olduğu halda aşağıdakı etməyin. Mən nə istəyirəm? Mənə bir müsbət tam vermək tələb edir. Mən, həqiqətən, istifadəçi bir tam almaq üçün çalışırıq. Amma burada əməliyyatları üçün baxımından, çünki vəziyyət burada isə mən yoxlamaq gedirəm, n 1-dən az? Belə ki, istifadəçi Güman - - Bu şəkildə tələb sonra dəyəri 0 növləri. Bu vəziyyət doğru və ya yalan olacaq? Bəli, həqiqətən doğru olacaq. N 0 və 0 az 1 Çünki. Belə ki, nə demək olur? Daha etməyin. Daha etməyin. Daha etməyin. Yalnız bir şərtlə ki yalan üçün qiymətləndirir. Mən 42 yazın edin. Heç bir yaxşı, 42-dən az 1 deyil. Ona görə də bu loop executing edilir. Və o nöqtədə, proqram üçün təşəkkür deyəcəklər Bu halda 42,. Özünüzü ifadə bu yol artıq - Biz başa bu gözləmək lazım deyil. Bəzi vaxt olacaq. Bəlkə də, növbəti dəfə davam edin. Amma indi, bir anlamaq üçün ümid etmək imkanı var turk yumor bit. Üzr. Bu kompüter yumor nümayəndəsi deyil dünya, lakin bu cute var. Qeyd haqqında [gülür] edək sonu. Biz bazar ertəsi görəcəksiniz. [Alqış]