>> HOPARLÖR 1: Yaxşı.
Geri xoş gəlmisiniz.
Bu CS50 Həftəsi iki və biz İndiyədək ancaq funksiyaları istifadə
verilən üçün əsasən onlara götürülmüşdür.
Biz olan printf istifadə etdiyiniz çap yan təsiri
ekranda şeylər.
Biz get-int istifadə etdiyiniz, float almaq.
>> Amma həqiqətən yaratmaq üçün nə istəyirsinizsə, öz funksiyaları, bəzi kimi
Əgər siz artıq başlayıb bilər Problem müəyyən bir olsa nə
ciddi tələb?
Yaxşı, ki, irəli getmək və yenidən bildirin yalnız üçün istifadəçi xahiş problemi
haqqında öz adı və çap şey ekran, lakin bəzi Factor cəhd
biz etdik ki, ümumiliyi və Bu günə qədər bizim kodu görüldü.
Belə ki, Mən aşağıdakı tuturam.
>> Mən irəli getmək və yaratmaq üçün gidiyorum yeni bir proqram, yalnız zəng
o zamanki kimi hello.c.
Mən irəli getmək və özümü verəcəyəm üst standart io.h daxildir.
Mən də özümü verəcəyəm preemptively ki, CS50 kitabxana ki,
Mən compiler tərəfindən də yelled deyil.
İndi isə irəli getmək gidiyorum və int, əsas, etibarsız elan.
>> Mən istədiyiniz Və sonra burada, bu funksionallığı Outsource başlayacaq
Mən özüm edirəm ki, digər funksiyası yazmaq niyyətində lakin o deyil
Hal-hazırda mövcuddur.
Məsələn, mən istəyirdim ki, güman mənə imkan verir ki, bir funksiyası yazmaq
hello, vergül çap və sonra bir istifadəçi adı.
Printf bunu davam daha çox hello,% s, əgər gözəl ola bilməz
adlı funksiyası yalnız var idi printf lakin çap adı deyil?
>> Belə ki, başqa sözlə, mən etmək istəyirəm bir az ki, bir proqram yazmaq
bu kimi bir şey.
Birincisi, mən printf demək gidiyorum üçün adı, bununla istifadəçi isteyen
Mən sonra mənə onun adı vermək, üçün tanış string s istifadə etmək niyyətindədir
bir simli bəyan edir.
, Mənə tipli simli dəyişən ver ki, s zəng və mağaza
string almaq çağıran nəticəsində.
Amma indi son həftə, mən var ki, qədər maraqsız həyata hello,% s / n.
>> Və başqa sözlə, biz bu gördük dəfə Məsələn bir dəstə və bu, bir
yalnız bir var, çünki misal mənasız kodu line belə həqiqətən deyil
böyük yenidən yazaraq saxlamaq.
Amma güman kodu xətti həqiqətən bir yük olmaq, və edilmişdir
bu kodu bir xətt deyil, lakin 10 var kodu xətləri artıq bir neçə həftə,
və yalnız yorğun əldə etdiyiniz çıxarmaq və yapıştırma və ya
Eyni kodu retyping.
Əvəzinə bunu gözəl olmaz printf hello,% s və s,
yalnız var idi əgər gözəl ola bilməz print ad adlı bir funksiyası
bir dəlil edir -
Başqa sözlə, o, daxil edir -
və sonra nöqtəli vergül.
Belə ki funksiyası, bu verməyəcəklərini mövcud ki, əgər gözəl?
Sonra narahat olmazdı printf nə, nə% s və bütün
ki, bu çətinliklər bütün maraqlı.
Onlar faydalıdır.
>> Belə ki, çap adı, təəssüf ki, deyil, 40 plus il əvvəl bir icad.
Heç kəs yazmaq üçün düşündüm.
Amma bir olan gözəlliyi var yalnız kimi proqramlaşdırma dili
Not belə, xüsusi blokları müəyyən edə bilərsiniz C və ən hər hansı bir dil, siz
öz funksionallığı müəyyən edə bilərsiniz öz funksiyaları müəyyən edir.
Biz əsas əldə Belə ki, baxmayaraq ki, avtomatik pulsuz, biz elan edə bilər
öz funksiyaları.
>> Belə ki, mən burada bir neçə otaq etmək gidiyorum qədər top və mən bəyan etmək gidiyorum mənim
bir baxmaq üçün gedir ki, öz funksiyası az ilk qəribə lakin biz gələcəyik!
geri əvvəl uzun.
Mən bununla, etibarsız demək gidiyorum Bu funksiya ifadə edir
bir şey, bir yan təsiri var, lakin də mənə bir şey qayıtmaq deyil
və ya int almaq eyni şəkildə özü edir string almaq.
Və mən bu funksiyası vermək gidiyorum Çap adı adı, və mən gidiyorum
Bu adam gedir ki, müəyyən simli, mən ki, zəng etmək gidiyorum
string adı.
Mən istəyirəm bir şey zəng, lakin bilər mən Mənim kodu özünü sənədləşdirilməsi olmaq istəyirəm.
Başqa sözlə, siz əgər biri idi Bu faylı açmaq və oxumaq, siz ola bilər
ki, adı nəticə çıxarmaq növ oynamaq üçün ehtimal hansı rolu girdi.
>> İndi ki, aşağıda, mən açıq gedirəm buruq burğu və qapalı buruq brace,
və mən eyni təqib etdik qeyd xətləri yeddi vasitəsilə dörd kimi model
Yaxşı bir həftə plus üçün aşağıdakı olduğunuz İndi xətləri doqquz, demək arasında
Əsas təşkil edən 14.
Başqa sözlə, adı çap bir funksiyası var.
İndi compiler bilmək niyyətində deyil avtomatik olaraq bu şey zəng etmək üçün
Mən sözün yalnız icad, çünki lakin bu əsas zəng hələ biləcəklər
avtomatik, sonra əlbəttə line 13, mən öz funksiyası zəng edirəm.
Və çünki mən bəyan etdik ki, funksiyası up əsas əvvəl xətt dörd,
Bu compiler öyrətmək üçün gedir nə quote, dırnağı bağlamaq, "print adı"
deməkdir və bunu nə.
Mən yeni bir xüsusi verilməsi növ Ben cızın demək, kontekstində blok.
>> Belə ki, burada, mən çox ümumi qoya bilər Mən saxlamaq kodu və ya təkrarlanan model
sinif yazı, printf % S hello,% s / n ", -
Burada qoymaq nə istəyirlər?
S?
Mən bu kontekstdə ad qoymaq istəyirik.
Belə ki, burada bir dichotomy bir qədər bilərsiniz.
Mən öz funksiyası bəyan edirəm Çünki və mən bir qədər özbaşına çağırıb
bu adı çap və mən var, çünki parantez göstərilən bu
funksiyası bir dəlil, növü edir bir string - belə bir söz var
və ya söz və ya bir şey kimi - və Mən ki, dəlil adı zəng alıram
var ki, yalnız dəyişən deməkdir daxilində, belə demək olarsa, adıdır.
>> S nə yalnız iki arasında mövcud buruq aşırma, əlbəttə?
Həqiqətən, yalnız xətt 10 kimi vasitəsilə Yaxşı 14, belə ki, yalnız bazar ertəsi günü kimi istifadə edə bilməz
S, lakin nə edə bilərəm keçmək edilir Çap adını S.
Çap adı məhz belə vermək olur bir alias, sinonimi, bir ləqəb,
bu adı zəng və indi bu istiqamətdə istifadə.
Belə ki, indi Uzaklaştırmak, məni saxla bildirin.
>> Mənə davam və salam edək.
Yaxşı görünür.
Hər hansı bir səhv tüpürmək etməyib. . / Daxil edin salam.
Mənim adı nedir?
David.
Davud salam.
Belə ki, bütün maraqlı deyil, ancaq indi düşünürəm.
İndi həmin tərkib hissəsi var biz Not olduğu kimi
öz funksiyaları edir.
>> Lakin Gotcha bir qədər var.
Mən, həqiqətən, fikir deyil ki, Güman Bu, faktiki vasitəsilə və mən olmadan
həqiqətən bu barədə düşünürük yazdı burada funksiyası aşağı.
Mükəmməl ağlabatan hiss edir.
Not heç bir anlayışı yoxdur Sizin yazıları yer.
Siz bir, burada, burada bir qədər qoymaq bilər bir qədər burada və bu başlaya bilər
Əgər deyilsə bir az messy baxmaq bu səliqəli yerinə qoymaq, lakin o, deyil
fiziki scripts yerləşir Fərq ekranda idi.
Təəssüf ki, C - bu fərqli Java və Python kimi dillər
və tanış ola bilər ki, başqaları təəssüf C, sifariş edir - ilə
watch nə çünki Fərq İndi nə olacaq.
>> Gedir ki default funksiyası icra etmək, əlbəttə, əsas deyil.
Ana çap adı zəng gedir line səkkiz, amma təəssüf ki,
compiler hətta çap adını bilmək olmaz bu xətt 11 olur qədər mövcud
olan təəssüf ki çox gec olacaq.
Belə ki, salam etmək Agentliyi edək.
İndi lənətləmək, iki səhvlər yaradılan.
Belə ki, indi mənə çox qədər diyirləyin bildirin Birincisi, biz həmişə etmək və lazım
mənə böyle oldu fark, Funksiyası "gizli bəyannaməsi
adını yazdırın. "
>> Beləliklə, biz bu mesajı əvvəl gördüm, funksiyasının örtülü bəyannamə.
Biz səhv belə görmüşəm?
Mən kitabxana daxil etməyib zaman.
Mən cs50.h unutdu və əgər mən almaq istəyirəm string almaq və ya int almaq üçün at yelled.
Amma bu halda, bu funksiya çap ad hüququ, kitabxana deyil?
Belə, Bu faylda sözün var nə həqiqətən problem var?
>> Yaxşı təəssüf C, o, sizi belə olduqca sözün ki, əgər siz
Çap adı adlı bir funksiyası istəyirəm var, ya həyata keçirilməsi üçün
Sizin çox üst funksiyası kodunu aşağı əlçatan var ki,
funksiyaları, lakin səmimi ki, olur çox tez sloppy.
Şəxsən, mən ilk əsas qoyulması kimi o, çox nə aydın, çünki
proqram ilk baxışdan edir.
Və üstəgəl, siz qəribə küncə əldə edə bilərsiniz x zəng etmək istəyirsə hallarda
y lakin y siz x yalnız zəng edə bilər fiziki həqiqətən bir qoymaq bilməz
digər yuxarıda.
>> Amma bu, C edə bilər çıxır çox sadəcə bu həll.
Mən yer bir az qoymaq gidiyorum burada və mən yalnız gidiyorum
preemptively olsa qədər redundantly ki, tədris etmək fikrinizdə
funksiyası mövcuddur compiler çap adını, bir simli edir
və mən zəng etmək gidiyorum bu nöqtəli vergül adı.
>> Indi line dörd belə hansı əvvəl görmədim, bir bəyannamə deyil
funksiyası çap adı, lakin o, yalnız Bu funksiya olacaq bir söz
nəhayət nəticədə, müəyyən həyata keçiriləcək.
İndi mən tək tərk edə bilər, çünki İndi bu tərifi deyil,
son mil həyata keçirilməsi, sort bu həyata keçirilməsi
xüsusi fəaliyyət göstərir.
Belə səmimi bu axmaq, o, annoying var lakin bu C yol və bu
çox sözün götürür çünki və kompüter səmimi, olduğu kimi,
yalnız ona deyir dəqiq nə etmək, və düzəldikdən vacibdir ki,.
>> Belə ki, nəzərə ki, saxlamaq və yenidən başlamaq nümunələri təkrarlanma bilərsiniz.
Əgər varsa Oran, siz var artıq mesajlar qarşılaşmağa başlayır
bu kimi ilk baxışdan görünür tamamilə sirli, ancaq başlamaq əgər
kimi bu açar sözlər axtarmaq üçün Bir "gizli bəyannamə" qeyd
Bu halda funksiyası - səmimi və siz bəzən hətta bir az yaşıl almaq
burada deyir ki, kök simvol məsələ yəqin ki, -
Siz vasitəsilə yol iş başlaya bilər hələ görünməmiş səhv messages.
Yazma haqqında hər hansı bir sualınız üçün Bu yolla öz funksiyası?
>> Bir ki, bir şey edək az daha çekici.
Ki, bir şey yalnız daha çox çap bir yan təsiri, getməmə
irəli və yeni fayl saxlamaq və biz edəcəyik O, baxmayaraq ki, bu positive.c zəng
bir az fərqli olacaq son dəfə qarşı.
Və bu zaman, mən yenidən həyata istəyirəm son zamanların positive.C Məsələn, hansı
istifadəçi verməyə məcbur edir Mənə bir müsbət tam.
Amma mən int son dəfə almaq istifadə etmək idi.
Var idi, əgər gözəl olmazdı funksiyası müsbət int almaq çağırıb
Mən yalnız bu Outsource bilər ki, funksionallığı parçası?
Burada fərq biz edəcəyik edir müsbət int almaq həyata, lakin fərqli
bir yan təsiri olan çap ad - bu kimi mənə bir şey vermədi
nömrə və ya simli -
müsbət int, əlbəttə, gedir almaq ümid edirəm ki, müsbət int qaytarın.
>> Belə ki, bunu edək.
Cs50.h əlavə, standart io.h. daxil
Əsas etibarsız Int.
İndi burada, mən irəli getmək gidiyorum və edək int demək, n zəng, bərabərdir
müsbət int almaq.
Və kimi int artıq mövcuddur almaq heyəti bunu yazdı, çünki gedirəm
ki bu an üçün güman müsbət int var, indi gedirəm
davam və printf demək, ki,% i / n ", n üçün təşəkkür edirik.
>> Bu proqram tərtib İndi əgər, nə mənim terminal baş gedir
Ekranın altındakı pəncərə?
Mən yəqin ki, almaq üçün gidiyorum əvvəlki kimi eyni səhvi.
Belə ki, bu cəhd edək.
Müsbət olun.
Və yenə örtülü bəyannamə funksiyası, müsbət int almaq.
Beləliklə, biz bu həll edə bilər yolları bir neçə.
Mən yalnız bu sadə və saxlamaq gidiyorum Burada bəyannaməsi qoymaq və almaq
müsbət int.
Mən qondarma imza lazımdır.
İmza yalnız istinad ki, estetikasını
Proqramın birinci xətt.
Beləliklə, nə müsbət almaq lazımdır geri int?
>> Belə ki int.
Mən ideal demək, geri ki, müsbət int kimi bir şey, ancaq ki,
mövcud deyil.
Biz görmürsənmi olduğunuz veri arasında növləri, biz ilə məşğul olmaq
biz çox az var ki, əslində məlumat növləri ilə işləmək üçün.
Amma biz int və yalnız qayıda bilər müsbət olacaq güvənirəm.
Bu adlı olacaq müsbət int almaq.
>> İndi necə, onun dəlilləri haqqında?
Hər hansı bir daxil lazımdır?
Hər hansı bir daxil ehtiyac varmı?
Belə ki, bilmək lazım deyil əvvəlcədən bir şey.
Simli, int deyil almaq deyil alın.
Printf edir - bəzi olmalıdır input bu keçdi - və çap adı
Bəzi giriş lazım, amma almaq müsbət int deyil.
Beləliklə, mən açıq-aydın gidiyorum compiler etibarsız demək.
Etibarsız başqa bir şey olmamasıdır.
Belə etibarsız vasitələri heç bir şey daxilində gedir o parantez ki, nöqtəli vergül.
>> İndi mənim fayl altındakı - və anal yenidən, mən yalnız olan alıram cür
burada üst əsas qoyaraq, hansı yaxşı təcrübə bu şəkildə, çünki,
Siz və ya başqası zaman Sizin faylını açır
funksionallığı hüququ var.
Siz kvadrat bir dalış edə bilərsiniz.
Belə ki, indi ki, bu cüt üçün gidiyorum müsbət int void almaq, ancaq mən deyiləm
İndi bir nöqtəli vergül edib gedir.
Mən buruq aşırma açmaq üçün gidiyorum və indi borc lazımdır
Bazar ertəsi bəzi fikirlər.
>> Siz geri etdiyim kimi, biz bir şey idi Aşağıdakı isə nə kimi
şey doğru idi.
Və nə idi?
Mən vermək kimi bir şey idi Mənə bir müsbət tam,
tez az bit.
Mən istəyirəm hər hansı bir söz istifadə edə bilər.
Və sonra mən nə istifadə?
Int n, int almaq bərabərdir bu arqumentlər yoxdur.
>> Və fark.
Istifadə zaman, funksiyanı zəng zaman Funksiyanı, siz boşluq qoymaq deyil.
Bir elan zaman yalnız bunu funksiyası compiler tədris nə
bunu gözləmək lazımdır.
Beləliklə, siz qoymaq lazım deyil orada özünüzü ləğv.
>> İndi mənim vəziyyət nə idi?
Yaxşı, n, müsbət bərabər deyil lakin yalnız yalançı kodu var.
Belə ki, necə daha çox pakizə bu ifadə edirsiniz?
Belə ki, daha az və ya sıfıra bərabərdir.
Belə ki, təkrar edə bilərsiniz qeyd daha az və ya bərabərdir.
Ayrı-ayrı iki belə olsa simvollar, siz bunu edə bilər
kimi sizin klaviatura.
>> Amma ki, bir səhv hələ də var Mən keçən dəfə qədər berbat.
Mən bəyan var -
dəqiq.
Mən kənarda elan var loop edir.
Ona görə də mən burada n qoymaq lazımdır və mən deyil Burada yenidən bəyan etmək istəyirəm
deyə yeni bir dəyişən almaq.
Mən burada bir dəyər təyin etmək istəyirik.
>> İndi Mən burada aparılan deyiləm.
Mənə qabaqda özümü imkan və mən bitirdim iddia.
Müsbət olun, və indi yeni bir səhv var.
Nəzarət sonu çatıb qeyri-boşluq fəaliyyət göstərir.
Yeni hata beledir Belə ki, lakin, əgər cür sözləri hər ayrı tease, o,
yəqin yanlış nə göstərişlər.
>> Nəzarət.
Control yalnız sifariş etmək deməkdir bir proqram əməliyyatları.
Kompüter nəzarət və bir şey yanlış getdi.
Belə ki, ilin sonuna çatır qeyri-boşluq fəaliyyət göstərir.
Nə funksiyası Şübhəlinin istinad?
Nə funksiyası qeyri-etibarsız edir?
Belə ki, müsbət int almaq və bir az ki, yaxşı qarıxdırıcı,
olmadığına görə qüvvədən düşmüş növü var.
Onun üçün etibarsız bir dəqiqləşdirilməsi var mübahisələri, lakin onun çıxış etmək niyyətindədir
tipli n olmaq.
Belə ki, sol sözü olan geri növü deyilən.
Burada daxili söz sıfır və ya daha çox arqumentlər
funksiyası edir ki,.
>> Beləliklə, mən nə etməliyəm?
Mənim kodu Bu baxımdan line 21 yerləşir hazırda Sayrışma tez İndi ki,
müsbət int daxilində var n adlı dəyişən.
Nasıl əsas geri verə bilərəm?
Sözün.
N nöqtəli vergül qayıt.
>> Belə ki, yalnız kimi Colton bir parça döndü düşmə mənə bir cavab kağız
kiçik qara kağız ki, parça da bunu müzakirə qutusu,
kodu, sözün yalnız qayıtmaq yazmaq Colton sanki n, və bu
mənə bir şey fiziki geri verilməsi.
Bu halda, neler əldə edilir müsbət int geri əl gedir
nə ehtimalla müsbət var kimə tam?
Ki, dəyəri harada son edir?
Bu n, bu dəyişən bitir, və sonra biz line doqquz davam.
>> Belə ki, başqa sözlə, qaydasında əməliyyatlar, bu proqram başlayır
, icra və compiler həyata keçirir oh, siz kitabxana istəyirsiniz?
Mənə grab içerisinde nə gidelim.
Oh, Siz standart IO kitabxana istəyirsiniz?
Mənə grab içerisinde nə gidelim.
Compiler özü üçün nə deyir bu xətt dörd xit zaman?
Oh, siz həyata keçirilməsi üçün vəd funksiyası müsbət almaq adlanır, lakin
biz sonra o geri almaq lazımdır bu xətt bir şey.
>> Int əsas boşluq yalnız burada vasitələri mənim proqramının içalat.
Line yeddi yalnız bir buruq brace edir.
Line səkkiz vermək, sol deyib bir tamsayı üçün mənə 32 bit, bu n deyirik.
Sağ tərəfində, bu müsbət int almaq etdi.
İndi gələk fasilə ki, hekayə indi, çünki Mən kursor aşağı hərəkət saxlamaq yoxdur.
Mənim kursor indi burada qalır, çünki İndi müsbət int həyata almaq.
Int n elan edilir.
Aşağıdakı etməyin.
Printf Mənə bir müsbət tam verir.
>> , Istifadəçi bir int alın n onu saxlamaq, və bəlkə təkrar edirik.
Bu loop bu kodu bilər o deməkdir ki, daha bu kimi icra və aşağı
və yenidən, ancaq istifadəçi zaman nəhayət əməkdaşlıq və mənə müsbət verir
int, Mən məqam da, xətt 21 hit nömrə geri təhvil olan və biri
İndi qeyd etmək lazımdır?
Nine.
Nəzarət, necə deyərlər, qaytarır doqquz girdi.
Məsul indi ki, xətt var.
>> Belə ki, bütün baş vermişdir nə var Bu başlıq altında, lakin
biz printf kimi funksiyaları istifadə etdiyiniz zaman və ya hətta simli almaq başqası
Sizin üçün yazdığı, nəzarət təqdim edilmişdir off başqasının code line
xətti ilə xətti ilə.
Bu, sadəcə biz bunu görürük və biz bilmədi oldu həqiqətən bu onu tam təsvir etməyə bilər
bəzi digər Proqramı çünki sabit fayl
bizə unbeknownst.
Elə əslində tərtib edək və indi bu axır.
>> Müsbət olun.
Tərəqqi ki, tərtib edir.
. / Müsbət.
Mənə bir müsbət tam verin.
Çətin olsun.
1 Mənfi.
Zero.
Nin 50 verim.
50 üçün təşəkkür edirik, və nəzarət İndi qayıdıb.
Hər hansı sual, sonra, ki?
Bəli?
>> [Işitilemez].
>> Bir daha demək.
Oh, yaxşı sualdır.
Belə ki, burada paralel bilərsiniz ki, Mən bir küncündə kəsici cür edirəm.
Line 12, mən deyən alıram, müsbət int almaq bir int qaytarır, lakin eyni ilə
məntiq, indi səbəb dayanır ki, line altı, mən deyən alıram əsas qaytarır
bir int, lakin biz heç vaxt proqramlar hər hansı idi?
Biz qeyd heç vaxt etdik Bu açar sözü qayıt.
>> Belə ki, ən azı, C çıxır ki, Biz istifadə etdiyiniz bu versiyası
1999-cu ildə edilən, texniki, bu sizin üçün avtomatik olaraq baş.
Dunya bir proqram və həyata keçirilməsi əsas adlı funksiyası həyata
ki, funksiya sıfır qayıdacaqlar default yoxsa demək yoxsa,
və sıfır yalnız bir konqres edir.
Dünya bununla da sıfır qaytarır bütün yaxşı olduğunu ifadə edən
səmərəli bizə tərk dörd milyard getmək mümkün şeylər
yanlış ki, biz bir qayıtmaq, əgər ki, Bu o deməkdir ki, bir kod demek bilər
şey yanlış getdi.
Biz o deməkdir ki, iki qayıtmaq bilər Bu başqa bir şey yanlış getdi.
Biz dörd milyard qayıtmaq bilər Bu başqa bir şey yanlış getdi deməkdir.
>> Və indi öz haqqında düşünüyorsanız PC və ya Mac, siz geri bilər ki,
bəzən sirli hata mesajları almaq Əgər olduğunu proqram
istifadə edərək, və bəzən bir insan var dostluq təsviri, lakin var
tez-tez kodu və ya bir neçə Ekranda?
Bu ağla deyil, yalnız bunun üçün bir göz tutun.
Bu adətən nə bu kodları istinad edilir.
Onlar və Microsoft Word daxil olduğunuz digər proqramlar ki, siz bir fayl əgər
şirkəti ilə səhv hesabat, siz onlara, oh, mən səhv sayı 45 var.
Və şirkətin bəzi proqramçı geri ki arayabilirsiniz onun
Mən etdi, çünki kodu və demək, oh, ki Bu səhv və nə istifadəçi
bu mesajı almışdır.
>> Amma səmimi, yalnız bir az var yayındırır və bir az yorucu
ən azı bizim ki, bağlamaq ilk bir neçə proqramları, biz var belə
bu omitting edilmişdir.
Sizin Lakin bütün bu zaman hər bir funksiyaları əsas gizli bu olmuşdur
xətti avtomatik olaraq sizin üçün əlavə etmək üçün compiler, sadəcə Konvensiyanı
Bir müddət edin.
>> [Işitilemez].
>> Siz əsas daxil etmək lazım deyil.
Bu gözəl.
Siz olsaydı daxil lazımdır bu kimi bir funksiyanı həyata keçirir.
Əks halda funksiyası düz iş deyil.
Amma əsas, bu lazım deyil.
Bir həftə və ya iki, biz əldə başlarsınız ki, vərdiş halına bir dəfə biz başlamaq istəyirəm
səhvlər signifying.
Sual Həqiqətən yaxşı.
>> Qeyd etmək üçün sürətli şifahi fasilə ki, bu cümə, biz nahar malik olmayacaq
ilə per se, ancaq nahar malik olacaq tələbə və heyəti bəzi.
Siz bizə qoşulmaq istəyirsinizsə, hiss cs50.net/rsvp getmək üçün pulsuz.
Bu cümə PM 6:00.
Space, həmişə olduğu kimi, məhdud, lakin biz edəcəyik təxminən bu bunu davam
həftəlik əsasında kosmik əgər bu həftə həyata çalışır.
>> Beləliklə, biz off tərk cliffhanger Bazar ertəsi strings həqiqətən ki idi
daxil dizine olan yalnız sizin deməkdir ki, ilk xarakter əldə edə bilərsiniz
İkinci xarakteri, üçüncü karakter və s, siz, çünki
səmərəli kimi simli hesab hello, bu halda olan beş
qutuları daxilində məktublar.
Və o hər əldə edə bilərsiniz nə sintaksis etdi qutuları ilə biz
Bazar ertəsi bilərlərmi?
Bu kvadrat mötərizədə klavyenizdeki.
Yalnız yeri sıfır getmək deməkdir ki,.
>> Biz sıfır hesablanması başlamaq, belə ki, bracket sıfır h, bracket bir bildirir
e bildirir, və s.
Biz olduğunuz zaman belə bütün vaxt, zaman "Salam" da strings istifadə və yazmağa
və "dünya" və başqa şeylər haqqında ekran, bu saxlanılır edilmişdir
bu kimi qutuları.
Və bir tahmin edir.
Hər qutusu fiziki nədir təmsil etmir Sizin kompüter daxilində?
>> [Işitilemez].
>> Üzr istəyirik?
>> Simvol.
>> Halda əlbəttə ki, bir karakter Belə ki, strings və xarakter sadəcə
səkkiz bit və ya bir byte.
Beləliklə, siz yəqin ki, ən azı yayğın var onunla tanış ki,
kompüter yaddaş var.
Bu yaddaş iki növ azı var.
Bir siz saxlamaq, sabit disk deyil daimi mövzusu və var
Siz film ola bilər, adətən, böyük belə və musiqi və s.
>> Sonra siz yaddaş bir növü var RAM R-A-M, Random Access adlı
Yaddaş və bu yaddaş növü Sizin kompüter zaman istifadə olunur ki,
Əgər güc itirmək və ya əgər çalışan batareya ştampların, saxlanılır ki, bir şey
Əgər güc itirmək əgər RAM yox bu deyil, ümumiyyətlə, çünki
israrlı.
Siz adətən, bu gün var bu konsert, bəlkə daha iki gigs.
Və RAM ayaq çox var ki, sabit disk daha çox daha sürətli
və ya hətta bərk dövlət, bu gün sürücüler lakin o, adətən daha bahalı, belə
onu az.
>> Bu gün söhbət həqiqətən istinad Belə ki, RAM, yaddaş bu cür ki,
güc var ki, yalnız var bilgisayarınıza daxil qidalanır olunur.
Belə ki, H-E-L-L-O yazın zaman, Enter klaviatura, H bir gedir
RAM byte, E gedir RAM bir byte, kimi
Sözün istirahət.
Beləliklə, biz bacardıq nə geri son dəfə bunu bu idi.
Mənə davam və faylı açmaq edək biz string.c adlanır və Xatırladaq ki,
bir az baxdı ki, bu kimi bir şey.
Mənə həqiqətən geri roll və dəyişdirmək imkan o, bu kimi baxdı dəqiq nə
s simli uzunluğu.
>> Belə ki, burada proqram oldu.
Biz CS50 kitabxana belə daxildir biz string almaq istifadə edə bilərsiniz.
Biz standart io.h daxildir biz printf istifadə edə bilərsiniz.
Niyə biz string.h daxil idi?
Bu barədə bazar ertəsi yeni idi.
Beləliklə, biz simli uzunluğu istədi.
Str Leng.
İnsanlar il əvvəl qərar ədalətli qısa olsun.
Bunun əvəzinə "string uzunluğu," zəng edək ki, "küç Leng" zəng və imkan
out, və ki, ki, dünya rəqəm biz string.h ilə əldə nə.
>> Bu tanış edir.
Bu tanış edir.
Bu, bir az yeni.
Line 22 - və biz geri gəlmək lazımdır Bu, indi bilirəm -
və yalnız olan bu bilirik ki, sənədlərin və ya oxumaq
Əgər siz artıq C bilirdi -
string bəzən qıymaq bilər almaq.
Istifadəçi həqiqətən çəkişmə və ya əgər uncooperative və o, yalnız
klaviatura bir şey yazın və ya deyil klaviatura belə çox növləri ki,
o, kompüter yaddaşında overwhelms nəzəriyyəsi, simli qayıtmaq bilər almaq
bir başqa bir şey simvol simli.
Bu adlı xüsusi dəyər qayıtmaq bilər Bütün caps, N-U-L-L, və bu edir NULL
yalnız bir qondarma sentinel dəyəri.
Bu bildirir ki, xüsusi bir dəyəri var pis bir şey bu halda baş verib.
Bu simli olmamasıdır.
>> Belə ki, mən sadəcə belə ki kontrol alıram null uzun sözün qısası küçəsi Leng və
C ilə gəlib ki, digər funksiyaları, əgər onlar bir simli gözləmək ancaq onları keçmək
bir simli olmaması, siz keçmək əgər onlara, kompüter və ya proqram null
yalnız açıq qəza edəcək.
Bu asmaq olacaq.
Bəzi səhv mesaj qədər atmaq edəcək.
Bad şeylər olacaq.
Bu hələ belə olsa yaxşı müəyyən deyil -
bu həftə daha məntiqli ya da iki - line 22, bu, yalnız bir deyil
özünü müdafiə səhv yoxlanılması misal yalnız halda bir dəfə həyata
bir milyon bir şey, yanlış gedir az mənim proqram qəza deyil.
>> S deyil Belə ki, pis bir şey bərabərdir Mən loop bu var və bu idi
biz digər olduğu sintaksis yeni parça.
Mən iterating loop üçün var sıfır s uzunluğu haqqında.
Və sonra burada, mən s həyata çap edilib bracket i, lakin nə mən bütün% c istifadə etməyib
əvəzinə% s ani bir belə s bir simli olsa?
Bu, doğru bir xarakteri var?
S, simli, lakin s bracket bir şey i sıfır olduğu s bracket i
bir və ya bir iki, bir fərdin simli xarakterli və belə
ki, printf məlumat lazımdır ki, həqiqətən gözləmək bir karakter var.
>> Və sonra geri çağırır, bu nə idi proqram həqiqətən nə?
>> Sütunlar onu çap.
>> Bəli, məhz.
Bu, sadəcə mən yazın söz çap bir sütun, satır başına bir xarakter.
Belə ki, bu bir daha nəzər salaq.
Belə ki, simli edir.
OK tərtib. . / String.
Mənə H-E-L-L-O yazın edək daxil edin və Həqiqətən mən, satır başına bir onu almaq.
>> Mənə burada bir optimallaşdırma edək.
Siz xüsusilə də əgər, bu barədə düşünüyorsanız Sizdən əvvəl var proqramlaşdırılmış sonra
line 24 arguably bir təsirsizlik.
Başqa sözlə, bu, mütləq deyil ən yaxşı dizayn.
Sadə, ən azı bir dəfə str Leng nə unutmayın, lakin bu
potensial lal bir şey edir.
Nə ola bilər?
>> [Işitilemez].
>> Eynilə elə.
Bu s uzunluğu kontrol oldu hər bir zaman olsa da,
H-E-L-L-O həmişə gedir beş simvol olmalıdır.
Bu loop vasitəsilə hər vaxt, Beş dəyişən deyil.
Mən incrementing, lakin nə edilə bilər hər üzrə s uzunluğu
Bu loop iteration?
Bu beş deyil, beş deyil, beş deyil, və lakin mən yenə bu xahiş edirəm
təkrar və təkrar sual.
İndi səmimi, kompüter belə lənətləmək edir sürətli, heç bir fərq olacaq
Bu halda fərq, lakin bu cür yoxsul dizayn qərarları bilər
compiler özü qədər əlavə edin başlayacaq sizin üçün düzeltmek üçün cəhd vermir
bu adətən da, verməyəcəklərini Aracın ən.
>> Beləliklə, mən bunu gedirəm.
Mən sonra vergül əlavə etmək gidiyorum mənim ilk dəyişən, i.
Mən özümü başqa verəcəyəm dəyişən, yalnız, bu zəng n
sonra nömrələri üçün konvensiya və Ben simli dəyəri N təyin etmək niyyətindədir
s uzunluğu.
Və sonra dəyişdirmək gidiyorum mənim vəziyyəti nə olacaq?
Mən vəziyyəti dəyişdirmək üçün gidiyorum i n daha az müddət.
>> Belə ki, indi, mən neçə dəfə am s uzunluğu yoxlanılması?
Sonra, lakin ona qarşı i yoxlamaq üçün OK n təkrar o indi, çünki
dəyərlər əslində dəyişən deyil.
İndi artıq, yalnız bilirik ki, siz istənilən vaxt funksiyası zəng, bir az var
Siz mane yerüstü çatmadı, həqiqətən olan heç funksiyaları istifadə edərək, lakin
kod xətti var əlbəttə zaman belə - və xətləri olacaq
uzun əvvəl daha maraqlı - yerləşir əgər düşünmək imkanı var mən
Bu kodu yazın, nə qədər bu dəfə icra edəcək?
Siz vaxt ərzində görmeye başlarsınız proqramları icrası bilər
həqiqətən dəyişir.
>> Əslində problem biri var edir illər ərzində görülmüş keçmiş cəlb
sizə geri bilər, tətbiq həftə sıfır, bir yazım checker, lakin
yardım üçün nəzərdə tutulmuşdur ki, checker oxumaq Bir 150,000 lüğət plus
biz uşaqlar verir ki, söz.
Siz kodu yazmaq lazımdır ki, yük RAM o sözləri, belə ki, daxil
biz kimi qutuları ekranda an gördüm siz əvvəl və sonra kimi sürətli
bilər, bir cavab lazımdır şəklindəki sualına, bu söz
misspelled?
Bu söz misspelled mı?
>> Və biz etdik nə kimi bir şey illər ərzində görülmüş keçmiş, onu açıq
bir opt-in isteğe əsasında, A olsa növ rəqabət vasitəsi olan
daha az RAM və daha az istifadə edən tələbələr vaxt, az CPU dövründən son
bir az üst qədər burda lider board və ya biz qoymaq ki, sıralama
biz var kimi əlbəttə ana son illər ərzində görülmüş.
Belə ki, yenə tamamilə isteğe, lakin bu dizayn imkanları danışır
bir dəfə irəlidə biz başlamaq ki, bu bəzi üstün tikinti
əsas bloklar.
>> Belə ki, mənim üçün bu diaqram geri gidelim yalnız bir an və bir az aşkar
bir şey daha.
Bu, həqiqətən bir simli və biz qəbul etdik bir neçə kitabxana üstünlüyü,
olan var standart io.h -
>> Printf.
>> Printf, digər şeylər arasında.
int almaq və simli almaq olan cs50.h, və s, string.h, hansı
str Leng idi.
Başqa hələ var həyata Lakin bu çevrilir.
Açığı, çox və header çox var funksiyaları bəyan fayllar
kitabxanalar üçün, lakin bu ctype.h edir həqiqətən qədər olacaq
gedirəm, çünki əlverişli irəli getmək və bir həyata keçirilməsi üçün
burada digər proqram.
>> Mənə irəli getmək və bir şey açmaq edək Mən adlı əvvəlcədən yazıb
capitalize.c, və bir-qoy necə bu işləri bir göz.
Mən bu versiyası istifadə alıram Qeyd edək ki, bu, üç tanış faylları.
Line 18, Ben Qeyd edək ki, mətn xətti alınması.
Line 21 Notice, mən iddia edirəm ki, aşağıdakı kodu gedir
istifadəçi tipli nə olursa olsun, s kapitallaşdırmalıdır və necə ki, bunu edirəm?
Yaxşı, mən alaraq alıram -
dərs keçən zaman öyrəndim -
Mən və N elan və iterating alıram dizeyi olan simvol artıq.
Və sonra bu blok nə 27 vasitəsilə line 24 kod
layman nin baxımından bunu?
>> Geri məktubu kiçik.
>> Eynilə elə.
Əgər s bracket i - əgər i-ci s xarakteri, spesifik deyil
simli ilə char, daha böyükdür və ya bərabər kiçik və -
ki, ikiqat işareti Xatırladaq demek və -
və eyni xarakter, s bracket i ki, z kiçik az və ya bərabər,
o, bir və ya b və ya c və ya deməkdir ki, nöqtə, nöqtə, nöqtə və ya deməkdir z,
bu kiçik var.
Mən bu halda nə etmək istəyirsiniz?
Yaxşı, mən bir qədər bu edə bilərsiniz cryptically, lakin
nin Bundan tease bildirin.
>> Mən printf zəng gedirəm,% c yazdıran Mən bu nəşr etmək istəyirəm, çünki
ekranda xarakter.
Mən o s bracket i, etmək gidiyorum i-ci s xarakterli, sonra niyə
Mən burada bu kiçik oyun edirəm eksi kapitalı kiçik?
Ki, vermək nə gedir mənə, ümumiyyətlə?
>> [Işitilemez].
>> Eynilə elə.
Mən, həqiqətən, xatırlamıram -
bu kapitalın A. 65 Mən, həqiqətən deyil idi bir kiçik, nə xatırlayıram,
lakin heç bir məsələ.
Kompüter bilir.
Belə deyərək, bir minus kiçik kapital A, onu qəribə
başqa bir char çıxarılaraq, lakin başlıq altında chars nə var?
Onlar yalnız ədəd istəyirik.
Bu ədəd hər hansı Belə ki, kompüter xatırlayıram bildirin
insan deyil, məndən.
>> Belə bir bir minus kapital kiçik Mənə bir fərq verəcəyəm.
Bu 32 olmaq olur ki, olacaq kiçik b və kapital B işi
və s.
Bu təşəkkürlə, ardıcıl qalır.
Mən mahiyyətcə deyən alıram Beləliklə, almaq məktub kiçik ki, off çıxmaq
standart fərq ki, səmərəli dəyişikliklər s bracket I
böyük, əlbəttə ki, kiçik, Mənim həqiqətən düşünmək olmadan
və ya Unutmayın, bu nə idi zaman səkkiz danışdıq nömrələri
könüllü səhnəsinə gəldi?
Bu deyil indi vaxt, başqa, əgər müəyyən bir kiçik məktub
line 24, yalnız çap.
Mən yalnız toxunmaq istəyirəm ki, simvol
əslində ilk kiçik.
>> Belə ki, bu nəzər salaq.
Kapitallaşdırmaq olun.
Tərtib olunmuş, OK.
. / Kapitallaşdırmaq.
Və mənə H-E-L-L-O yazın bildirin kiçik olaraq, daxil edin.
Və bu valyutaya çevrilmişdir fark böyük daxil.
Mənə daha bu nə edək fərqli bir söz.
Necə D-A-V-I-D haqqında ilk D bir ad olaraq kapitallaşdırılır adətən var?
Daxil edin.
Hələ doğru bildiriş.
Bu, sadəcə ilk D dəyişməz outputted başqa tikintisi vasitəsilə.
>> Belə bir, sonra, unutmayın burada şeyi cüt.
Əgər iki yoxlamaq istəyirsinizsə biri, bir şəraiti, siz və onlara
biz proqnozlaşdırılan birlikdə.
Bu şəkildə simvol müqayisə edə bilərsiniz və səmərəli simvol kimi müalicə
nömrələri, lakin səmimi, bu belə lənətləmək edir sirli Yadımdadır gedən heç alıram
sıfırdan bu ilə gəlmək üçün necə çox üçün vasitəsilə əsaslandırma olmadan
vaxt bir az.
>> Gözəl olmazdı əgər kimsə həyata adlı bir funksiyası var yazdı
ya doğru mənə cavab bilər aşağı saxta, bu xarakterli kiçik deyil?
Yaxşı təşəkkürlə, kim yazdı ctype.h dəqiq etdi.
Məni bura qalxmaq və c ctype əlavə edək növləri, və indi mənə burada enmək imkan və
bu xətti aşağıdakı kimi yenidən yazmaq.
>> Bu deyirlər Belə aşağı, mən iddia, s bracket i, sonra silmək üçün gidiyorum
ümumiyyətlə bu iki satır.
Belə ki, indi başqası, mən ümid edirəm yazdı adlı funksiyası aşağıdır və bu,
etdilər və onlar elan növbə həyata bu ctype.h daxilində.
İndi line 27 tərk etmək gidiyorum tək, mən line 31 tərk etmək gidiyorum
tək, amma sonra nə qədər fərq Mənim kodu up dartılmış.
İndi təmiz deyil.
Bu nəzərdən az çətindir İndi funksiyası, üstəlik, çünki
belə gözəl yalnız adına deyir nə.
>> Belə ki, indi bu saxlamaq üçün gedirəm.
Mən Uzaklaştırmak gedirəm.
Və ola bilər yalnız Not kimi Booleans, Boolean dəyərlər doğru və ya
yalan ki, dəqiq nə edir səmərəli yekunları aşağı.
Mənə derleyeceğiz edək.
Mənə yenidən run edək.
İndi isə daha edək H-E-L-L-O, daxil edin.
Ki, olduqca yaxşı.
Və daha cəhd, mən əmin olun bir şey qıymaq etməyib.
Bu həmçinin kapitallaşdırılır.
>> Amma bu kifayət qədər yaxşı deyil, çünki Mən gedən heç alıram ki, başqa şey
Mən, həqiqətən, onun vasitəsilə iş halda xatırlayıram diqqətlə üzərində, demək, kağız deyil
Bu lənətləmək xətt.
Olsaydı, gözəl olmaz üst adlı bir funksiyası?
Yaxşı orada çıxır həmçinin ctype.h edir.
Mən irəli getmək və yazın gidiyorum -
mənə line geri gətirmək imkan verir.
Əvəzində bu burada, mənim irəli gedək və demək% c üçün əvəz
Bu funksiya zəng nəticəsində s i-ci xarakterinə yuxarı.
İndi onu əldə bildiriş bir az balanslı.
Mən nə qədər takip var Mən açdı və qapalı etdik parantez.
>> Belə ki, indi hətta təmiz deyil.
İndi bu proqram yaxşı oxuyan və bu, çünki daha yaxşı arguably nəzərdə
çox, daha çox oxunaqlı, lakin heç doğru edək.
Kapitallaşdırmaq olun.
. / Kapitallaşdırmaq.
H-E-L-L-O. Gəlin, bir daha çalıştırın D-A-V-I-D. OK, belə ki, biz hələ də istəyirik
forma olduqca yaxşı.
>> Amma indi üst.
Mən bir daha var ki, təklif zəriflik biz olacaqdıq edə bilər
həqiqətən bərkidin bilər ki, həqiqətən gözəl Bu kodu və həqiqətən bizə beş vermək
Məsələn dizayn beş, həyata.
Qurtarmaq üçün gözəl nə olardı?
Yaxşı, necə lənətləmək uzun bu blok baxmaq kod sadə bir şey etmək kifayətdir.
>> İndi bir kənara, siz ola bilər kimi bu ilin super bölmədə görüldü
həftə sonu, siz ciddi ehtiyac yoxdur buruq aşırma yalnız bir zaman
biz təklif olsa belə kod xətti çox edir ki, saxlamaq
Not U-formalı olduğu kimi, daha aydın blokları, filial daxilində budur.
Üst Amma əgər bu, gözəl olmazdı , giriş verilmiş, o çevrilib
bu deyil, əgər böyük və nə ki, əks halda gözəl olsa
artıq böyük var?
Sadəcə vasitəsilə keçmək və tək buraxın.
>> Belə ki, bəlkə ki, yoxdur.
Mən cəhd və yalnız ümid edə bilər , lakin mənə bildirin ki,
başqa bir şey tanıdacaq.
Əvəzində bu daxili terminal istifadə pəncərəsini aşağı burada Xatırladaq ki,
bu meydanda qara icon siz verir mən tam bilər ki, böyük terminal pəncərə
Mən istəyirəm əgər ekrana?
Belə ki, onlar növ işin istəyirik çıxır adlı, lakin deyilən bu şeyi var
man pages, manual pages, qısa üçün insan, və mən bu ilə daxil ola bilərsiniz
yazaraq Man -
Ne tür istəyirsiniz?
Üst Man.
>> Bir var, əgər artıq qeyd ilə, kompüter daxilində fəaliyyət
Bu halda yalnız olan cihaz əməliyyat sistemi Linux, o gedir
Mənə bir qədər sirli set vermək çıxış, ancaq zamanla tapa bilərsiniz ki,
həmişə olduqca çox formatlanması Eyni belə ki, istifadə almaq üçün başlayın.
Üst üst bildiriş və yəqin eyni sənədləri edir
aşağı üçün.
Bəzi kəsici edilib Kim yazdı guşələrindən və bir səhifə bütün qoydu.
Bunlar "məqsədi həyat çevirmək üçün
yuxarı və ya kiçik məktub.
>> Adam səhifə Sinopsis altında edək ki, Mən nə fayl mənə dərs deyir
Bu şey istifadə etmək üçün daxil.
Bu mənim bu üçün imza verən oldu funksiyaları, onların hər ikisi, hətta
biz indi yalnız olsa bir qayğı.
Burada indi təsviri deyil.
Üst məktubu çevirir mümkün olduqda c böyük etmək.
>> Hələ ibrətamiz, amma mənə bildirin ki, indi geri dəyərinin altında şey baxmaq
geri təhvil oldu.
Belə ki, geri dəyəri edir ki, bu valyutaya çevrilmişdir məktub və ya c əgər
dönüşüm mümkün deyildi.
C nədir?
>> Orijinal xarakter.
>> Orijinal xarakteri və biz bilirik tərəfindən yenə də qədər davam edir ki,
referat və kim bu yazmışdır funksiyası yalnız qərara aldı ki, giriş
yuxarı və aşağı sadəcə özbaşına c adlandırmaq gedir.
Onlar ən çox bir şey çağırıb bilər istədikləri, lakin onlar bu saxlanılır
c kimi sadə.
Mən adam səhifə müraciət etdik.
Bu cümlə mənə reassures ki, əgər bir kiçik məktub deyil, bu,
yalnız C, mənə geri verir Mən xilas edə bilərsiniz deməkdir mükəmməl,
mənim başqa vəziyyəti.
>> Mənə gedit geri bildirin, İndi mənə yalnız bunu bildirin.
Mən printf bəyanat surəti gedirəm.
Mən qabaqda və sağ daxili getmək gidiyorum loop çap üçün həyata və almaq
tikinti əgər indi bu bütün xilas.
Pis bir fikir deyil və bu, çox idi çox düzgün və uyğun
biz təbliğ etdik hər şey ancaq lazım deyil.
Ən qısa zamanda bir neçə kitabxana həyata kimi funksiyası başqa kimsə var
yazmış, və ya bəlkə başqa yerdə yazdı fayl, həqiqətən, istifadə edə bilərsiniz
kodu kısaltın başlayın.
>> Və mən yaxşı stil kimi şeylər deyəndə, Bu şəxs adlanır ki,
edir əvvəllər yuxarı və ya fəaliyyət aşağı gözəl faydalıdır, çünki
onlar çox təsviri istəyirik.
Siz funksiyaları zəng etmək istəmirəm olan x və y və z,
çox, çox az mənası.
Ki, seriyası Sualınız irəliləyişlər?
>> Belə ki, biri demək kifayətdir takeaways hətta öz problem kimi
dəsti - bəlkə problem müəyyən bir, lakin əlbəttə P hətta iki və irəli qurmaq
Onlar doğru olduğunuzda mütləq deyil onlar yalnız mükəmməl demək
hələ və ya xüsusilə yaxşı dizayn.
Yəni digər ox var haqqında fikirləşməliyik.
Belə ki, bu bir simli içərisində Bir var kompüter yaddaş, lakin əgər
H-E-L-L-O kimi simvol bütün dəstə RAM daxilində və güman
Siz proqram string almaq zəng Belə ki, neçə dəfə
Əgər bir string almaq zəng yenidən string almaq çağırırıq.
Yaxşı, nə olacaq zamanla baş?
>> Başqa sözlə, siz bir xətt varsa kimi kontekstdə kodu olsa yerinə,
string s olur -
bunu edək.
String adı string almaq bərabərdir.
Belə kodu ki, xətti deməkdir Güman onun adı üçün istifadəçi xahiş.
Kodu Bu yeni xətt soruşmaq üçün nəzərdə tutulur onun və ya onun məktəb üçün istifadəçi, və
Bu yeni xətti və s.
Biz xahiş saxlamaq Güman başqa üçün istifadəçi və
bir və digər simli.
Onlar yaddaş qalmaq olacaq eyni zamanda.
Bir başqa döymək niyyətində deyil.
School digər üzerine deyil.
Amma onlar bütün yerləşir etmək yaddaş başa?
>> Yaxşı, biz ekranda çəkmək başlamaq əgər, biz bu şey istifadə edə bilərsiniz
burada Kara Tahta kimi bu qara əgər düzbucaqlı mənim kompüter təmsil
yaddaş, mən özbaşına başlamaq üçün gidiyorum az kvadratlar daxil qədər ayırıcı,
hər təmsil edən və yaddaş bir byte.
Açığı, siz RAM bir gigabyte varsa bu gün, bir milyard bayt var
kompüter yaddaş, belə ki, Bu meydanların bir milyard.
Beləliklə, bu, demək kifayətdir miqyaslı həqiqətən deyil.
>> Ancaq biz bütün bu rəsm davam edə bilər aydın meydanların miqyasını və bu deyil
kollektiv təmsil mənim kompüter yaddaş.
İndi nöqtə, nöqtə, nöqtə olduğu edəcəyik.
Belə ki, başqa sözlə, mən indi təklif get simli istifadəçi mənə vermək
simli, nə olar?
Əgər "salam" olduğunu başa istifadəçi növləri qədər H-E-L-L-O. Amma güman
istifadəçi sonra növləri -
Əslində, mən görmüşük lazım deyil salam biz xahiş edirik, çünki
onların adları onlara.
Beləliklə, mən bunu edə bilər, əgər geri gidelim.
>> Belə ki, mənim ad üçün D-A-V-I-D I növü, əgər lakin Xatırladaq ki, ikinci xətt
kodu yenidən string almaq edildi onların məktəb almaq üçün.
Söz harada ki, istifadəçi növbəti getmək davam növləri?
Bəli, bəlkə daxil olacaq H-A-R-V-A-R-D. Mən var Belə ki, hətta
iki satır kimi tərtib, bu yalnız Sizin bayt bütün dəstə
kompüter RAM.
İndi mən, çünki bir problem indi var Bu çox ağlabatan ildə RAM istifadə
lakin sadəlövh şəkildə sort, nə edə bilərsiniz yəqin ayırmaq deyil?
Bir başlayır və harada bir başa, sağ?
Onlar birlikdə blurring cür istəyirik.
>> Belə ki, kompüter çıxır Bunu deyil.
Mənə həqiqətən vaxt geri hərəkət edək bir neçə simvol və yerinə Harvard
istifadəçi adı dərhal sonra gedir, istifadəçi həqiqətən arxasında olur
pərdə xüsusi bir xarakter tərəfindən daxil
onun üçün kompüter.
/ 0, əks halda nul xarakter kimi tanınan annoyingly N-U-L adlı deyil,
N-U-L-L, ancaq kimi / 0 yazın.
Bu, yalnız bütün sıfır bit var bir marker edir ilk sözü arasında olan istifadəçi
tipli və ikinci.
>> Harvard həqiqətən artıq bitir Belə ki, simvolların Bu ardıcıllığı kimi
və bir daha / 0.
Bu olan, başqa sözlə, tərəfindən Sentinel dəyərlər, səkkiz bitişik sıfır
bit, indi ayırmaq başlaya bilər bir-bir xarakter.
Belə ki, "salam" dır nə bütün bu vaxt həqiqətən, a / 0 ilə "salam" və
eyni zamanda, orada güc çox yaxşı çox bir az daha çox RAM olmaq
kompüter daxilində.
>> Mənə indi başqa bir şey edək.
O çıxır ki, bu meydanların bütün biz, onlar, bəli, rəsm olduğunuz
strings, lakin ümumiyyətlə, bu şeyləri seriallarda var.
Bir sıra yalnız yaddaş yığın edir ki, geri geri geri geri
və adətən yolu ilə bir sıra istifadə Bu kvadrat mötərizə notation edir.
Belə ki, biz bu bir qədər görmək olacaq zamanla, lakin mənə davam imkan və
açmaq, İT yaş zəng edək.
Və biz nə edə biləcəyimizi qeyd həmin tövsiyələr, bir az
Burada az daha sintaksis.
>> Belə ki, bu proqramın xətti 17 - həqiqətən, mənə ilk proqram run edək
belə ki, biz bu şey nə görə bilərsiniz.
Mənə əsrlər etmək zəng edək Bu proqram tərtib edir.
. / Əsrlər.
Otaqda neçə adam var?
Üç çağırın.
Ilk şəxs yaşı?
18, 19, və 20.
İndi bir qədər ridiculously, yalnız bir proqram əsrlərdə həmin etmişdir
üç nəfər.
>> Belə ki, imkanı aydın var Burada bəzi əyləncə hesab üçün.
Təşəkkürlə, riyaziyyat doğrudur.
18 getdi 19 19 getdi 20 və s.
Amma nə həqiqətən olmaq üçün nəzərdə oldu illüstrativ burada saxlanılması edirik necə
bu üç xalq yaş.
Mənə nə Yakınlaştırmak edək burada gedir.
>> Belə ki, birinci, bu ilk bir neçə xətləri olmalıdır olduqca tanış edilməlidir.
Mən yalnız üçün istifadəçi isteyen alıram oda insanların sayı.
Sonra istifadə int almaq və nə alıram isə təkrar və təkrar edirik.
Biz əvvəl model gördük, amma sonra line 27 yeni və həqiqətən olduqca
faydalı və olacaq getdikcə faydalı.
Nə line 27 fərqli Qeyd edək ki, Mən elan görünür ki,
adlı yaş int, lakin gözləyin.
Bu, sadəcə int yaş deyil.
Bu kvadrat mötərizədə var olan daxili n.
>> Bu çərçivədə Belə ki, bracket n deyil, Amma burada bir printf bəyanat daxilində
Bu yeganə line 27 bu xətt , mənə n ints vermək deyərkən, hər biri
növü int edir.
Beləliklə, bu, bu, necə deyərlər, bir vedrə deyil bu halda, üç integers geri
Geri ki, mən səmərəli üç dəyişənlər var.
Alternativ olmaq aydın, bu olardı.
>> Mən istəyirdim Əgər ilk tələbə yaş, Mən bunu bilər.
Mən istəyirdim Əgər ikinci tələbə yaş Mən bunu bilər.
Mən istəyirdim Əgər üçüncü tələbə yaş, Mən bunu bilər.
Və Allah qorusun, biz hər kəsin ehtiyac Bu otaqda yaş -
Mən demək, bu surəti bir çox bir heck ki, təkrar və yenidən yapışdırıb.
Və üstəgəl bir dəfə mən bu proqram tərtib başqa bir tələbə həyata üzərində gedən əgər
ki, qapı, indi mənim nömrəsi dəyişənlərin düzgün deyil.
>> Belə ki, nə bir sıra haqqında gözəl olduğu kimi özünüz hiss başlamaq tezliklə
çıxarmaq və yapıştırma, bahis ki var ən yaxşı yanaşma.
Bir sıra potensial dinamikdir.
Mən əvvəlcədən neçə nəfər bilmirəm , oda olacaq
lakin mən onların n lazım bilmirəm və mən lazımdır Zamanı gəlincə n anlamaq.
Kodu Bu xətt indi deməkdir, mənə ver Bu kimi görünür ki, yaddaş yığın
burada ekranda qutuları sayı n tamamilə asılı olduğunu
istifadəçi kimi daxil tipli
>> Belə ki, indi bu proqramın qalan nə biz, həqiqətən, olduqca oxşar
yalnız simvol ilə idi.
Mən loop üçün var bildiriş line 30 başlayır.
Mən array almaq hüququ sonra, mən y n üçün sıfır qədər bərabər olan təkrarlamaq.
Mən yalnız bu ibrətamiz printf var məktub deyərək mənə yaş vermək
şəxs #% i, belə ki, bir nömrəli, iki nömrəli, sayı üç.
Və mən niyə belə etdiniz?
Açığı, insanlar bir saymaq üstünlük verirlər kompüter alimləri isə up haqqında,
up sıfır.
kompüter elm deyilik Bu cür proqram istifadə ki, biz istəyirik
yalnız hesablama başlamaq niyyətindəyik normal insanlar kimi bir at.
>> İndi line 33, bir az fərq syntax müxtəlif parça.
Tipli dəyişən I-ci yaş array bir int almaq üçün gedir.
İndi nəhayət, bu yalnız Burada hesab aşağı.
Mən iddia ayrı bir loop qərar bir müddət bu indi keçir,
ayrı-ayrı loop, bu xətlər icra.
>> , Nəfər Mən indi bir il olacaq dək təvəllüd, amma bu xəbər deyil
i Dəyişən.
İndi% int i edir.
Ilk tutucu kimi bildiriş, mən i plus 1 plug, belə ki, biz kimi saymaq
normal şəxs.
Və sonra onların yaş dəyəri üçün i dək təvəllüd, mən yaş bracket almaq
i - və nə mən burada bir plus edirəm?
Onlar yalnız yaşlı.
O, proqramlar mənim axmaq seçimi var.
Onlar yalnız bir il yaşlı.
Mən hər hansı bir sayı yazın bilər Mən, həqiqətən, orada istəyirəm.
>> Beləliklə, nə həqiqətən bütün var burada aktuallığını?
Yaxşı, mənə, həqiqətən, geri hərəkət edək burada və şəkil çəkmək
irəli yalan nə.
Biz sonrakı məşğul olacaq nə Problem Set iki ildə dabbling edir
Kriptoqrafiya dünya.
Beləliklə, bu simvol bir simli, belə bir çox chars ardıcıllığı, və nə
Bu nə deyir?
Bu online versiya deyil slaytların.
>> Mən bir, bu bərabərdir ki, iddia bir çox ildən axmaq reklam
əvvəl həqiqətən xatırlayıram bilər ki, mənşəyinə biri.
Beləliklə, bu şifreleme bir nümunəsidir və ya Kriptoqrafiya.
Əgər istəyirsinizsə ki, çıxır faktiki informasiya və ya pay göndər
təhlükəsiz kimsə ilə məlumat bu kimi bir mesajı kimi, siz
məktublar dırmaşma.
Lakin adətən sözlər təsadüfi Pişmiş deyil.
Onlar bir şəkildə permuted və ya dəyişdirilə edirik bir şəkildə ki - oops.
Ki, növbəti dəfə əyləncə spoyler var.
>> Belə ki, yəqin nə eşleyebilirsiniz Ki baxımı B. Diqqət O
kapitallaşma-müdrik.
Göründüyü r e olur.
Göründüyü F-H-E-R S-U-R-E olur. Belə bir Xəritəçəkmə var çıxır, və
bu halda olduqca axmaq var hər kəs bunu həyata fiqurlu əgər birdən?
Bu adlı bir şeydir Rot 13, 13 qayıt.
Bu şifreleme stupidest edir mexanizmlər sözün yalnız çünki
, məktubları hər biri 13 edər mənada axmaq ki, yalnız əgər
əllərinizi pulsuz vaxt bir az var və qələm, və ya yalnız düşünmək
Sizin rəhbəri ilə, siz cəhd edə bilər bütün mümkün əlavələr - bir, iki,
üç nöqtə, yalnız nöqtə, nöqtə, 25 bütün əlifbası döndürme ve
Nəhayət, siz anlamaq lazımdır nə bu mesaj.
Əgər bu kimi bir şey idi əgər Sizin mesaj keçər məktəb
ən yaxşı dostu, sizin grade məktəb əgər müəllim sadəcə oxuyun
mesajı və kobud, həlli məcbur siz kazanılmış ola bilər
ki, bir cavab.
>> İndi əlbəttə, real dünyada, Kriptoqrafiya daha inkişaf etmiş.
Bu, mətn parçasını edir istifadəçi adı və ki, kompüter sistemi
parol, demək olar ki, bizim bütün etmək, və Bu nə Parolu güc deyil
sabit saxlanılır əgər kimi baxmaq ancaq şifrəli olaraq sürücü.
Bu məktubların yalnız bir rotasiya deyil Bir B və B Bu C. edir
daha çox inkişaf etmiş, lakin istifadə ümumiyyətlə gizli əsas kimi tanınan nə
Kriptoqrafiya.
Bu şəkil aşağıdakı deyir bir neçə nişanlar hekayə.
>> Sol, biz nə biz düz mətn zəng edəcəyik.
Kriptoqrafiya, düz dünya mətn yalnız orijinal mesaj
İngilis və ya Fransız yazılı və ya heç bir dil.
Siz onu şifrelemek etmək istəyirsinizsə, biz keçmək lazımdır bu pictorially bir asma kilit ilə, belə ki,
alqoritm bəzi növ, bəzi funksiyası Kimsə yazırdı ki, ya proqram
məktubları inşallah ki scrambles daha dolaşıq yalnız 13 əlavə
onların hər birinə.
>> Siz ki, prosesi çıxmaq nə orta orada cyphertext adlanır.
Bir sexy söz cür.
Bu, yalnız bu şifrəli vasitələri düz mətn versiyası.
Və həmin gizli olduğu zaman 13 və ya mənfi 13, sizə edə bilərlər
kimi decrypt bir mesaj.
>> Belə ki, problem şeylər arasında, iki Set Siz Hacker əgər edəcəyik
Edition, siz kodu yazmaq lazımdır figuring bu parol çat
nə onlar idi və necə idi Biz nə olsa şifrelenmiş, siz bir az vermək
yol boyunca rəhbərliyi.
Standard Edition, biz təqdim ciphers bir neçə şifreleme
mexanizmlər, bir Sezar, bir adlı Vigenere adlı ki, hələ də
A olur yerləşir fırlanma ciphers bir şey, B bir şey olur, lakin
program bunu etmək lazımdır həqiqətən bir sirr var olacaq, çünki
adətən bir sıra olan cəlb düyməsi və ya bir söz ki, yalnız
göndərən və bu alan messages anlamalıdır.
>> İndi, bu həqiqətən incarnations var real dünyada.
Bu, məsələn, kiçik yetim edir Annie gizli decoder ring, və
həqiqətən, bu həyata keçirə bilər fırlanma ciphers -
A bir şey olur, B olur bir şey - Seyyar bir neçə ilə,
xarici bir, içəridə bir belə ki, siz təkər dönüşümlü və ya
üzük, siz həqiqətən sıralamaq bilər müxtəlif hərflərlə məktublar,
gizli kodu əldə.
Bu gün üçün cliffhanger kimi, nə mən nə istədiyiniz düşündüm bir az
throwback ki, siz TV döndərsələr dekabrın 24-də, siz izləyə bilərsiniz
üçün film reklam nauseum Ard-arda 24 saat.
Amma bu gün üçün, burada açmaq lazımdır və bizə yalnız iki dəqiqə vermək
pedaqoji müvafiq Christmas Story Ralphie adlı bir adamcıq ilə.
>> [Video playback]
>> -Ola bütün və çeşitli ki, məlum Ralph Parker bununla təyin olunur bir
Kiçik yetim Annie gizli üzvü dairə və bütün etmək hüququna malikdir
fərqlənmə və faydaları ona baş.
>> , Little Yetim Annie-imzalanmışdır.
Mürəkkəblə, Pierre Andre Countersigned.
Onur və faydaları artıq doqquz yaşında.
>> [RADİO ÜZRƏ qışqırır]
>> Hadi ilə əldə edək.
Mən bütün caz lazım deyil qaçaqçı və Pirates.
>> Üçün sabah gecə dinlə qara bağlanması macəra
pirat gəmi.
İndi Annie gizli üçün vaxt Əgər üzvləri üçün mesaj
gizli dairənin.
, Uşaq unutmayın.
Annie gizli Circle Yalnız üzvlər Annie gizli mesaj deşifre bilər.
Unutmayın, Annie siz asılı olaraq.
B2 üçün sancaqlar seçin.
Burada bir mesaj.
12, 11, 2 -
>> -Mən ilk gizli görüş edirəm.
>> -25, 14, 11, 18, 16 -
>> -Pierre böyük səs gecə idi.
Hesab edirəm ki, bu gecə mesaj deyə bilər həqiqətən çox əhəmiyyətli idi.
>> -3, 25.
Bu Annie özü bir mesaj var.
Unutmayın, hər kəs demək deyil.
>> -90 Saniyə sonra, mən yalnız otaq Ben evin olduğu doqquz bir oğlan
gizlilik və deşifre oturmaq bilər.
Aha, B. Mən növbəti getdi.
E. ilk sözü "ola" dir. S. İndi daha asan gəlirdi.
U. 25.
Ki, R. var
>> , Ralphie on-Hadi.
I go gerek.
>> -I'll, sağ aşağı Ma ola bilər.
Gee harika.
>> -T. O. əmin olun.
Nə əmin olun?
Little Yetim nə idi Annie demək çalışır?
Nə əmin olun?
>> -Ralphie, Randy getmək üçün var.
Siz çıxmaq xahiş edəcək?
>> -Bütün sağ, Ma.
Mən doğru olacaq.
>> -I yaxın artıq əldə edilmişdir.
Gərginlik dəhşətli idi.
Bu nə idi?
Planetin taleyi bilər balansında asmaq.
>> -Ralphie, Randy nin gerek gedin.
>> -I'll üçün sağ çıxmaq yüksək səslə ağlayır.
>> -Demək olar ki, var.
Mənim barmaqları uçdu.
Mənim fikir bir polad tələ idi.
Hər pore vibrasiyaya.
Demək olar ki, aydın idi.
Bəli, bəli, bəli, bəli, bəli.
>> Sizin Ovaltine içmək əmin-olun.
Ovaltine?
A crummy kommersiya?
Köpək oğlu.
>> [END video playback]
>> HOPARLÖR 1: Bu CS50 olduğunu, Problem Set iki olacaq.
Növbəti həftə baxın.
>> HOPARLÖR 2: növbəti CS50, bu olur.
>> HOPARLÖR 1: biz belə bir mövzu Beləliklə, uzaq baxdı
funksiyası göstəricilərinə ki.
İndi bir funksiyası pointer yalnız ictimai üçün ünvan
lakin çox kimi funksiyası -
bir oğlu -