DOUG LLOYD: Bütün hüququ.
Belə ki, indi bir həll edək həqiqətən böyük mövzu, fəaliyyət göstərir.
Bu günə qədər, əlbəttə, bütün biz yazılı olduğunuz proqramları
Əsas daxilində yazılmışdır.
Onlar olduqca sadə proqramları istəyirik.
Siz bütün bu var ehtiyac yoxdur filial və hər şeyi olur.
Biz yalnız bütün uyğun Əsas daxilində və
olduqca böyük almaq deyil.
Amma əlbəttə gedir kimi və Siz proqramları inkişaf etdirmək üçün başlamaq kimi
müstəqil, onlar yəqin ki, olacaq 10 daha çox almaq üçün başlamaq üçün
və ya 15 xətləri.
Siz yüzlərlə və ya minlərlə əldə edə bilər və ya onlarla kodu xətləri minlərlə.
Və həqiqətən deyil bir fikir ki, crazy.
Belə ki, yəqin ki, bir yaxşı bir fikir deyil Əsas daxilində hər şey saxlamaq üçün.
Bu tapmaq üçün bir az çətin əldə edə bilərsiniz nə siz bunu əgər arıyorsanız.
>> Xoşbəxtlikdən, C baxmayaraq ki, və olduqca çox hər proqramlaşdırma dili ki
ilə iş bilər, imkan verir ki, Bizə funksiyaları yazmaq üçün.
Mən yalnız gedirəm kənara Burada tez almaq
funksiyaları olduğunu qeyd etmək informatika bir sahəsi.
Və onları daha çox görürsünüz Əlbəttə ərzində müxtəlif bal
və davam edin.
Bir çox of var Eyni söz üçün eş.
Beləliklə, biz funksiyaları zəng.
Amma siz də onları eşitmək bilər prosedurları adlandırılacaq,
və ya üsulları, xüsusilə, siz var əgər heç hər hansı bir obyekt yönümlü proqramlaşdırma həyata
, əvvəl və narahat olmayın Siz deyil, varsa,
böyük deal-- lakin audit yönümlü languages
tez-tez adlanan üsulları var.
Bəzən onlar subroutines adlı edirik.
Lakin onlar, həqiqətən, bütün baxın eyni əsas fikir.
>> Ki fikir nə görmək edək.
Bir funksiyası nədir?
Yaxşı bir funksiyası həqiqətən qara qutu daha heç bir şey.
Sıfır bir sıra var A qara qutusu daha giriş və bir çıxış və ya.
Belə ki, məsələn, bu funksiyası ola bilər.
Bu func adlı bir funksiyası var.
Və bu üç giriş a, b və c edir.
Və qara qutu içərisində, biz bunu dəqiq nə bilmirəm,
lakin bu giriş emal bir şəkildə və sonra
Bu halda bir çıxış, z verir.
İndi bir az etmək az mücərrəd, biz
ki, bəlkə demək olar adlı funksiyası var
üç giriş a, b edir əlavə və c və bir şəkildə çıxış emal
qara qutu içərisində bir çıxış istehsal edir.
Bu halda, əgər belə əlavə 3, 6 və 7 edir.
Somewhere daxilində funksiyası əlavə, biz
gözlədiklərini onlara birlikdə əlavə etmək çıxış, istehsal olan
3 plus 6 plus 7 və ya 16.
>> Eynilə, siz adlı funksiyası var iki giriş, a və b edir mult,
bir şəkildə belə onları emal ki, funksiyası çıxış
iki giriş məhsuludur.
iki giriş birlikdə vurulur.
4 və 5, mult keçdi olunur bir şey, biz gözləyirik çıxış olur
20.
Niyə biz bir qara qutu zəng edirsiniz?
Yaxşı yazılı əgər , özümüzü fəaliyyət göstərən
biz bir qədər indiyə qədər CS50 etdik.
Biz, məsələn, çap f gördüm ki, biz yazmadım bir funksiyası var
özümüzü, lakin biz hər zaman istifadə edirsiniz.
Biz yazılı deyilsə funksiyaları özümüz,
bu necə həqiqətən bilmək lazım deyil həqiqətən başlıq altında həyata keçirilir.
>> Belə ki, məsələn qara qutu Mən yalnız vurma üçün təşəkkür göstərdi
bir Mult, b ola bilər müəyyən deyil və bu, yalnız var
bəzi pseudocode ola bilər çıxış dəfə b kimi müəyyən edilmişdir.
Bu mənada, doğru.
Biz adlı funksiyası varsa iki giriş edir mult.
Biz gözləmək olardı çıxış edəcəklərini ifadə ola iki giriş, birlikdə vurulur
bir dəfə b.
Amma mult də ola bilər Bu kimi həyata,
biz counter dəyişən var 0 mult daxilində müəyyən almaq.
Və sonra biz bu prosesi təkrar b dəfə counter əlavə.
Məsələn, biz tərəfindən 3A çoxaltmaq əgər 5b, biz 0 counter müəyyən demək bilər,
, beş dəfə təkrar counter 3 əlavə edin.
Beləliklə, biz 0 başlamaq və sonra biz Bu beş dəfə 3, 6, 9, 12, 15.
Bu eyni nəticə. Biz hələ almaq 3 dəfə 5 yalnız
həyata keçirilməsi fərqlidir.
>> Yəni biz demək nə var biz qara qutu deyəndə.
Bu yalnız biz, həqiqətən, qayğı yoxdur deməkdir Bu başlıq altında həyata necə
kimi uzun çıxış biz gözləmək nə kimi.
Əslində, həmin müqavilənin hissəsi xüsusilə, funksiyaları istifadə edərək
digər yazmaq funksiyaları.
davranış həmişə gedir gözlənilməz, tipik olmaq
funksiyası adı əsasında.
Bu, həqiqətən, nə ki, var mühüm funksiyaları yazmaq zaman
və ya digər insanlar yazmaq Siz istifadə edə bilər funksiyaları
bu funksiyaları var ki, aydın, nisbətən aşkar adları,
və sənədləşdirilir.
Hansı əlbəttə belədir print f kimi funksiya üçün.
>> Belə ki, niyə biz funksiyaları istifadə edə bilərəm?
Yaxşı mən biz yazmaq əgər əvvəllər dediyi kimi əsas şeyi daxilində bütün kodu
həqiqətən çətin əldə edə bilərsiniz və həqiqətən çətin.
Funksiyaları bizə imkanı verir şeyi təşkil və parçalamaq üçün
çox mürəkkəb problem daxil daha çox idarə sub hissələri.
Funksiyaları da bizə imkan verir kodlaşdırma prosesi asanlaşdırmaq.
Bu 10 debug üçün çox asandır 100 xətt qarşı line funksiyası
funksiyası və ya 1000 line funksiyası.
Biz yalnız debug varsa bir anda kiçik ədəd,
və ya, vaxt kiçik ədəd yazmaq ki, proqramlaşdırma təcrübə edir
bir çox daha yaxşı.
Ki, bir mənə etibar.
>> Nəhayət, biz funksiyaları yazmaq əgər biz o müxtəlif hissələri yenidən istifadə edə bilərsiniz.
Funksiyaları emal oluna bilər.
Onlar istifadə edilə bilər bir proqram və ya başqa.
Siz artıq yazdıq funksiyası, bütün
proqram demək nə etmək lazımdır harada funksiyası tapmaq üçün.
Biz təkrar və istifadə etdik 40 ildən çox f çap.
Amma bu yalnız bir dəfə yazılmışdır.
Pretty faydalı, doğru.
Oldu.
Belə ki, funksiyaları böyükdür.
Biz bilirik.
İndi onlara yazılı başlamaq edək.
Nin əldə başlamaq edək Onlara bizim proqramları.
Üçün, ilk bunu Biz nə şey funksiyası elan edir.
Bir funksiyası elan zaman nə əsasən edirik
compiler izah edir, hey, siz bilirsiniz ki,
Mən yazılı gedirəm sonra bir funksiyası
və burada kimi baxmaq neler var.
Bunun səbəbi derleyiciler çünki
bəzi qəribə şeylər onlar rəmzləri bir sıra görəcəksiniz
onlar ilə tanış deyilik ki.
Beləliklə, biz yalnız compiler a vermək başçılıq, mən bir funksiyası yaradılması alıram
və bunu olacaq.
Function bəyanatlar ümumiyyətlə əgər bir şəkildə kodu təşkil edirik
başqaları olacaq ki, anlamaq və istifadə etmək,
Siz ümumiyyətlə bütün qoymaq istəyirəm Sizin funksiyası bəyannamələrin
Sizin kodu çox üst, sağ Siz hətta əsas yazılı başlamaq əvvəl.
Və rahat var çox standart forma
hər funksiyası bəyannamə aşağıdakı.
Onlar bütün olduqca çox bu kimi görünür.
Üç hissədən bir funksiyası var bəyannamə, geri növü, adı,
və dəlil siyahısı.
>> İndi qaytarılması növü nə cür dəyişən funksiyası çıxış edəcək.
Belə ki, məsələn, əgər biz geri edirəm iki vurulması üçün bundan dəqiqə
nömrələri funksiyası, biz əgər nə gözləyirsiniz biz tam bir tam çoxaltmaq
çıxış olacaq yəqin ki, bir tam, doğru.
Vurulur iki integers birlikdə, bir tam almaq.
Ki qaytarılması növü So funksiyası int olacaq.
Adı istədiyiniz nə deyil Sizin funksiyası zəng etmək üçün.
Bu yəqin ki, ən azı vacibdir funksiyası bəyannamə hissəsi,
funksionallıq baxımından.
Amma əslində, yəqin ki, bir ən vacib hissələrindən
baxımından funksiyası bəyannamə bilmədən funksiyası həqiqətən nə
yoxdur.
Siz funksiyası f və ya g adı və ya h və ya sirr və ya kimi bir şey,
Siz yəqin ki, almaq olacaq bir az çalışır takıldım
bu funksiyaları nə unutmayın.
Belə ki, vermək vacibdir sizin funksiyasının mənalı adlar.
>> Nəhayət, dəlil siyahısı virgülle ayrılmış siyahısı
Sizin funksiyası bütün giriş, olan hər bir növü və bir adı var.
Belə ki, yalnız siz var dəyişən nə növü müəyyən
funksiyası çıxış edəcək, siz də ifadə etmək istəyirəm
hansı növü və dəyişənlərin növləri funksiyası giriş kimi qəbul olunacaq.
Belə ki, burada bir nümunə edək.
Yalnız bir nəzər salaq daha konkret biri.
Belə ki, burada bir funksiyası bir misal var Bir funksiyası üçün bəyannamə ki
birlikdə iki integers əlavə edəcək.
iki integers məbləği gedir bir tam, həm də ola biz kimi
müzakirə olunub.
Və belə qaytarılması növü, burada yaşıl, int olacaq.
Bu yalnız iki ints əlavə bizə deyir Günün sonunda, gedir,
çıxış, və ya geri tüpürmək bizə, tam.
Bu funksiya biz nə nəzərə alaraq bir mənalı ad vermək istəyirəm.
Iki ints görünür əlavə Uyğun, nəzərə
biz giriş kimi iki integers alaraq edirik və inşallah birlikdə onlara əlavə.
Bu çətin bir az ola bilər adı və səmimi bu funksiya
yəqin ki, lazım deyil biz əlavə çünki
operator, siz geri əgər bizim əvvəllər operatorların müzakirə.
Amma yalnız naminə deyək Bu funksiya faydalı olduğunu arqument
və biz bu iki ints əlavə zəng edəcəyik.
Nəhayət, bu funksiya iki giriş edir.
Hər biri bir tam deyil.
Beləliklə, biz bu vergül var vəsaitlərin ayrılmış siyahısı.
İndi biz ümumiyyətlə istəyirəm onların hər bir ad vermək
onlar istifadə edilə bilər ki, funksiyası ərzində.
adları olduqca əhəmiyyətli deyil.
>> Bu halda, biz mütləq deyil onlara əlavə bir mənası var.
Belə ki, biz yalnız bir və b onlara zəng edə bilərsiniz.
Ki, tamamilə gözəl var.
Lakin, siz tapmaq bir vəziyyətdə özünüzü
burada dəyişənlərin adları həqiqətən əhəmiyyətli ola bilər,
Əgər siz onları zəng etmək istəyirəm bilər bir və b başqa bir şey
onlara daha çox şey vermək simvolik mənalı.
Lakin bu halda, biz, həqiqətən, yoxdur funksiyası haqqında başqa bir şey bilirik.
Biz yalnız iki integers əlavə etmək istəyirəm.
Belə ki, biz yalnız zəng edəcəyik bu integers bir və b.
Ki, bir misal var.
>> Ikinci bir etmirlər Niyə bu barədə düşünmək,
necə bir funksiyası yazmaq olardı Bir funksiyası üçün bəyannamə ki
iki üzən point nömrələri artırır?
Siz nə yadda edirsiniz üzən point sayı?
Bu funksiya olardı bəyannamə kimi görünür?
Mən, həqiqətən, fasilə video gəlir burada və sizə lazım nə qədər vaxt alır.
Nə bu barədə düşünün funksiyası bəyannamə ola bilər?
Qaytarılması növü nə olardı?
Bir mənalı adı nə olardı?
Giriş nə olardı?
Beləliklə, nə siz burada video fasilə deyil və yazmaq-up funksiyası bəyannamə
çoxaltmaq ki, bir funksiyası üçün birlikdə iki üzən point nömrələri.
İnşallah video durduruldu.
>> Belə ki, bir misal nəzər salaq bir mümkün bəyannaməsinin.
Mult iki reals, float y x float float.
iki məhsul üzən point nömrələri,
olan xatırlayıram necə biz real nömrələri təmsil
və ya c decimal dəyərləri ilə nömrələri, üzən point sayı olacaq.
Bir çoxaltmaq zaman bir decimal ilə decimal,
Siz yəqin ki, bir decimal almaq olacaq.
Siz bir müvafiq ad vermək istəyirəm.
Iki reals çoxaltmaq gözəl görünür.
Amma həqiqətən zəng edə bilər mult iki üzüb gedirdi, ya mult üzüb gedirdi.
Bu kimi uzun kimi bir şey, bəzi faktiki mənası verdi nə
Bu qara qutu etmək niyyətində idi.
Və yenə, bu halda, biz deyil hər hansı bir məna əlavə var görünür
adları biz keçən edirik dəyişənlər,
belə ki, biz yalnız onlara x və y zəng.
Əgər bir şey onlara zəng İndi əgər başqa, ki, tamamilə gözəl var.
Əslində, siz əgər bu bəyannamə əvəzinə
əvəzinə iki dəfə istifadə Siz geri əgər, üzüb gedirdi
ikiqat fərqli bir var ki, yol daha dəqiq
real nömrələri daxil və ya point dəyişənlərin üzən.
Bu çox tamamilə gözəl var.
Ya o biri gözəl olardı.
Əslində, bir neçə var müxtəlif birləşmələri
yollarından bu funksiyanı elan.
Lakin bu iki olduqca yaxşı olanlardır.
Biz ki, böyük bir funksiyası elan etdik.
Biz nə compiler bildirib etdik , biz nə olacaq edir.
İndi həqiqətən funksiyası yazmaq imkan verir.
Nin bir tərif verək, belə ki, qara qutu içərisində
proqnozlaşdırıla bilən davranış olur.
Əslində, biz iki real vurulması olunur birlikdə nömrələri, və ya əlavə nömrələri
birlikdə, və ya hər nə ki, biz bunu bizim funksiyası istədi.
>> Əslində Belə ki, cəhd və müəyyən edək iki reals çoxaltmaq olan biz yalnız
ikinci əvvəl danışıb.
İndi başlanğıcı bir funksiyası müəyyən
demək olar ki, tam olaraq eyni görünür funksiyası bəyannamə kimi.
Mən burada onların hər ikisi var.
Üst funksiyası bəyannamə deyil, növü, adı, virgülle ayrılmış arqument
siyahısı, nöqtəli vergül.
nöqtəli vergül göstərir ki, ki, bir funksiyası elan edir.
funksiyası başlanğıcı müəyyən demək olar ki, dəqiq görünür
eyni tipli, adı, virgülle ayrılmış arqument siyahısı, heç bir nöqtəli vergül,
buruq brace açın.
açıq buruq brace, kimi biz əsas ilə bunu etdik
biz indi o deməkdir ki, müəyyən etmək üçün başlayan
nə qara qutu içərisində olur ki, biz mult iki reals zəng etmək qərarına gəlib etdik.
Burada onu həyata keçirmək üçün bir yoldur.
Biz yeni bir elan edə bilər, deyə bilər növü float adlı məhsulun dəyişən
ki, dəyişən təyin dəyəri x dəfə y.
Və sonra məhsul qayıtmaq.
Geri burada nə deməkdir.
Yaxşı qaytarılması yolu ki, necə göstərir
biz çıxış geri keçən edirik.
Belə ki, eyni şey qayıtmaq, bu qara qutusu çıxış edir.
Siz bunu necə ki, var.
Burada onu həyata keçirmək üçün başqa bir yoldur.
Biz yalnız y x dəfə qayıtmaq bilər.
x bir float edir.
y bir float edir.
Dəfə x belə y də float edir.
Biz hətta ehtiyac yoxdur başqa dəyişən yaradır.
Belə ki, fərqli bir şəkildə var eyni qara qutu həyata keçirir.
>> İndi bir an, yenidən fasilə video,
və iki ints əlavə cəhd və müəyyən olan digər funksiyası ki, biz
bir an əvvəl danışdıq.
Yenə burada, mən funksiyası qoymaq etdik bəyannamə, və nöqtəli vergül,
və açıq buruq brace və qapalı buruq
biz doldurmaq edəcək brace göstərir məzmunu, iki ints əlavə
biz xüsusi müəyyən ki, qara qutu içərisində davranış.
Belə ki, video fasilə.
Və daha çox vaxt Siz cəhd və müəyyən etmək lazımdır
bir təzahürüdür iki ints əlavə, belə ki, funksiyası bir dəyər nəticələr zaman,
əslində, yoxdur, qaytarılması iki giriş məbləği.
Belə ki, yalnız əvvəlki misal kimi, bir neçə müxtəlif yolları var
Siz həyata bilər ki, iki ints əlavə edin.
Burada biri.
Burada narıncı mən var yalnız bir ŞƏRHLƏR idi
Mən yalnız bir əlavə etdik şərh göstərir
nə kodu hər xəttində baş.
Mən bir dəyişən elan növü int məbləği çağırıb.
Mən məbləği plus b bərabərdir demək.
Biz, həqiqətən, yapýyorsun harada iş əlavə və birlikdə b.
Mən məbləğ geri.
Və ki, hissi, çünki edir məbləğ növü int dəyişən deyil.
Və məlumat bu ki, yazın nə var funksiyası çıxış olacaq mənə deyir?
Int.
Mən məbləğ qaytarılması alıram olan tam dəyişir.
Və mənada biz nə verilən edir elan və funksiyası müəyyən
etmək.
>> İndi siz də müəyyən edə bilərsiniz funksiyası bu şəkildə,
int məbləğ ki keçmək b-- bir plus bərabərdir step-- ilk və sonra, məbləği qayıtmaq.
İndi siz də ola bilər Bu, bu şəkildə həyata
Mən yüksək gəlir yoxdur.
Bu bir pis stili şey və həqiqətən pis dizayn,
lakin əslində, iş yoxdur.
Siz int bu kodu alsaq pis gürzə dot c əlavə və istifadə edin.
Bu, faktiki olaraq əlavə etməyib birlikdə iki integers.
Bu, çox pis həyata var bu davranış.
Amma işləyir.
Bu göstərmək üçün yalnız burada var Biz, həqiqətən, yoxdur point
daxili nə qayğı uzun qara qutusu,
biz gözləyirik çıxış var.
Bu zəif nəzərdə qara qutusu edir.
Amma sonunda gün, bunu hələ çıxış plus b məbləği.
Oldu.
Beləliklə, biz funksiyaları elan etdik.
Və biz funksiyası müəyyən etdik.
Belə ki, həqiqətən yaxşıdır.
İndi funksiyaları istifadə etmək başlamaq edək ki, biz bəyan etdik və biz müəyyən etdik.
Bu, həqiqətən bir funksiyası zəng etmək üçün Siz nə etmək lazımdır bütün olduqca easy--
müvafiq dəlilləri keçmək deyil, data növü dəlilləri
gözlədiyini ki, sonra geri təyin
ki, funksiyası dəyəri və şeylərdir bəhanə me--
ki, funksiyası qaytarılması dəyəri təyin düzgün növü bir şey.
>> Belə ki, bir nəzər salaq bir fayl bu təcrübə
adlı gürzə 1 dot c hansı Mən CS50 IDE var.
Belə ki, burada gürzə 1 dot c.
Əvvəlində mən görmək my daxildir, funt, daxil
standart IO və CS50 dot h.
Və sonra mən funksiyası bəyannamə var.
Mən burada Mən compiler izah
bir yazılı olacaq adlı funksiyası iki ints əlavə edin.
Bu çıxış an olacaq tam növü dəyişən.
Yəni bu hissəsi burada nə var.
Və sonra mən bu bir iki giriş var və b, hər biri bir tam deyil.
Əsas Inside, Mən istifadəçi xahiş deyərək giriş, mənə bir tam verir.
Onlar unutmaq istenir bir funksiyası var int ki,
CS50 kitabxana daxil edilir.
Və saxlanılır olur x, tam dəyişən.
>> Sonra başqa bir tam üçün onlara təklif.
Biz bir tam almaq və y ki saxlamayın.
Və sonra, burada xətt 28 edir biz funksiyası zəng.
Biz int z bərabər söyləyərək 2 ints x vergül y əlavə edin.
Bu mənada edir niyə görürsünüz?
x tam növü dəyişən və y bir tam növü dəyişir.
Belə ki, yaxşı.
Nə bizim funksiyası ilə mənada line 17-də bəyanat kimi görünür.
virgülle ayrılmış giriş siyahısı iki tam, A və B gözləyir.
Bu halda, biz zəng edə bilərsiniz Onlara nə istəyirik.
Bu, yalnız iki integers gözləyir.
Və x tam və y bir tam.
Ki, işləyir.
>> Və biz funksiyası gedir bilirik çıxış üçün integers həmçinin.
Və biz saxlanılması funksiyası çıxış,
tam növü, iki ints əlavə dəyişən, biz z zəng edirik.
Və sonra biz, məbləği demək olar faiz i və faiz i i faiz təşkil edir.
x, y və z müvafiq bu faiz i nin doldurulması.
Anlayışı nədir iki ints kimi baxmaq əlavə?
Bu olduqca sadə.
Bu isə biri biz yalnız bir ikinci əvvəl gördüm
int məbləği bir plus b geri məbləği bərabərdir.
Bu işləyir?
Nin faylı edək.
Və sonra aşağı burada mənim terminalında Mən gürzə 1 etmək gidiyorum
və mən ekran sil.
Mən bilirəm, çünki zoom gedirəm görmək üçün bir az çətindir.
>> Beləliklə, biz gürzə 1 kimi bu proqram tərtib edir.
Beləliklə, biz dot çizgi gürzə 1 edə bilərsiniz.
10 Mənə bir tam verir.
20 Mənə bir tam verir.
10 və 20 məbləği 30.
Beləliklə, biz bir uğurlu funksiyası zəng etdi.
Siz mənfi yenidən funksiyası çalıştırabilirsiniz 10, mənfi 10 və 17 17 məbləği 7.
Bu funksiya işləyir.
Bu davranış var biz bunu gözləyirik ki.
Və belə ki, biz uğurlu etdik funksiyası, müəyyən, bəyannamə,
və müvəffəqiyyətli bir funksiyası zəng.
Cütlük müxtəlif funksiyaları haqqında xal
bu bölmə bağlamaq əvvəl.
Geri bizim məlumat növləri müzakirəsi,
əvvəllər funksiyaları ki, bəzən heç bir giriş bilər.
Ki, işi varsa, biz funksiyası elan
bir etibarsız dəlil siyahısı olan kimi.
Siz nə xatırlayıram yoxdur Ən ümumi funksiyası
Biz bu günə qədər edir ki, gördüm bir etibarsız dəlil siyahısı?
Bu əsas var.
Bəzən də funksiyası Xatırladaq həqiqətən bir çıxış yoxdur.
Bu halda, biz funksiyası elan bir boşluq qaytarılması növü olan kimi.
Tərəfindən bu bölmə bağlamaq edək təcrübə problem həll.
>> Belə ki, burada salınan problem var.
Mən sizə bir funksiyası yazmaq istəyirəm etibarlı üçbucaq çağırıb.
Bu funksiya nə etməlidir üç real nömrələri iştirak edir
üç uzunluğu təmsil onun parametrləri kimi bir üçbucaq tərəflər,
və ya onun dəlilləri, və ya onun eş bir set inputs--
qarşılaşa bilər.
Bu funksiya olmalıdır çıxış ya doğru və ya yalan
asılı olaraq bu üç yola olub bir üçbucaq edilməsi mümkündür.
Siz data növü xatırlayıram ki, biz doğru və ya yalan qeyd etmək üçün istifadə?
İndi bu necə həyata edirsiniz?
Yaxşı bir neçə var bilirəm üçbucaq ilə bağlı qaydaları
həqiqətən bilmək faydalıdır.
A üçbucağı yalnız ola bilər müsbət uzunluğu tərəflər.
Ki, hissi verir.
Siz yəqin ki, duh deyərək edirik.
başqa şey qeyd etmək baxmayaraq ki, məbləğin ki
hər hansı bir uzunluğu üçbucaq iki tərəf
daha çox olmalıdır üçüncü tərəfin uzunluğu.
Bu, həqiqətən, doğru.
Siz tərəfdən 1-üçbucaq ola bilməz Məsələn 2 və 4, 1 plus 2 çünki
4-dən böyük deyil.
O Belə qaydaları var ki, müəyyən üç və ya
giriş conceivably bir üçbucaq təşkil edə bilərsiniz.
Belə ki, bir neçə dəqiqə almaq və bəyan və sonra müəyyən
etibarlı adlanan bu funksiya üçbucaq, belə ki, bu, həqiqətən,
Burada ifadə davranış var.
>> Bu çıxış edəcək doğru bu üç tərəfdən əgər , bir üçbucaq ibarət bilən
və saxta başqa Siz necə görmək üçün hazır edirsiniz?
Burada həyata var etibarlı üçbucağı.
Bu, yalnız bir deyil.
Yours qədər dəyişə bilər.
Amma bu bir əslində, var, yoxdur biz gözləyirik davranış.
Biz bizim funksiyası elan çox top, etibarlı üçbucaq bool
x float y float z float.
Belə ki, yenə, bu funksiya üç real nömrələri edir
onun dəlilləri kimi, üzən point dəyəri dəyişənlər,
və doğru və ya yalan nəticələr bir Boolean, geri dəyər.
Qaytarılması növü bool var nə ki, var.
Sonra biz funksiyası müəyyən edir.
Biz nə ilk şey əmin olun edir ki, tərəflər bütün müsbətdir.
X-dən az və ya bərabər olduqda 0 və ya y 0 bərabər olduqda,
və ya z, daha az və ya 0 bərabər olduqda bəlkə bir üçbucaq ola bilməz.
Onlar müsbət tərəfləri yoxdur.
Və belə ki, biz qayıda bilər ki, vəziyyət yalan.
Sonra, biz əmin olun ki, vəsaitlərin hər cüt
üçüncü bir daha böyükdür.
>> Belə ki, x plus y az olduqda z çox və ya bərabər,
və ya x plus z az olduqda y çox və ya bərabər,
və ya y plus z əgər daha az və ya bərabər x, bu da cari üçbucaq ola bilməz.
Yəni biz yenidən saxta qayıtmaq.
Etsək, biz çeklərin də keçdi baxmayaraq ki, biz doğru ola bilər.
Bu üç tərəfdən Çünki returning-- bilən
etibarlı üçbucaq yaratmaq.
Və bu.
İndi elan müəyyən etdik.
Və indi mümkün ola bilər istifadə və bu funksiyası zəng.
Əla işdir.
Mən Doug Lloyd edirəm.
Bu CS50 edir.