[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.
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ış]