DOUG LLOYD: Wszystko w porządku.
Więc teraz, w tej akcji niech bardzo obszerny temat, funkcje.
Do tej pory w toku, wszystko programy, które byliśmy pisanie
zostały napisane wewnątrz główne.
Są one dość proste programy.
Nie trzeba mieć wszystko gałęzie i rzeczy dzieje.
Możemy po prostu zmieścić wszystko wewnątrz głównej i
nie dostaje strasznie przytłaczające.
Ale jak oczywiście długa jak zacząć rozwijać programy
niezależnie, są one prawdopodobnie będzie zacząć, aby uzyskać o wiele więcej niż 10
lub 15 linii.
Możesz dostać setki lub tysiące lub dziesiątki tysięcy linii kodu.
I to naprawdę nie jest że szalona myśl.
Jako takie, nie jest dobrym pomysłem aby wszystko wewnątrz z głównym.
To może być trochę trudne do znalezienia czego szukasz, jeśli to zrobisz.
>> Na szczęście, choć C, i prawie każdy inny język programowania, który
Może pracować, pozwala nam napisać funkcje.
A ja po prostu się wziąć szybki bok tutaj
wspomnieć, że funkcje są jeden obszar informatyki.
A zobaczysz dużo więcej z nich w różne punkty w trakcie trwania
i jeśli dalej.
Tam, gdzie jest dużo synonimy dla tego samego słowa.
Tak nazywamy funkcje.
Ale może również je usłyszeć dalej procedur
lub metod, szczególnie, jeśli kiedykolwiek zrobić żadnego programowania obiektowego
before-- i nie martw się jeśli nie, nie
duża deal-- ale w Języki audytu zorientowanych
są często nazywane metody.
Czasami nazywa się je podprogramów.
Ale tak naprawdę odnoszą do tej samej podstawowej idei.
>> Zobaczmy, co to pomysł jest.
Co to jest funkcja?
Cóż funkcją jest naprawdę nic więcej niż czarnej skrzynki.
Czarna skrzynka, która posiada zestaw zera lub większej liczby wejść i jedno wyjście.
Tak na przykład, może być funkcją.
Jest to funkcja o nazwie func.
I trwa trzy wejścia a, b oraz c.
A w środku tej czarnej skrzynki, mamy nie wiem dokładnie, co robi,
ale przetwarza wejść w pewien sposób, a następnie
daje pojedyncze wyjście, w tym przypadku, z.
Teraz, aby to trochę mniej abstrakcyjny, mamy
Można powiedzieć, że być może posiada funkcję o nazwie
dodać, że ma trzy wejścia A, B, i c i przetwarza dane wyjściowe w jakiś sposób
wewnątrz czarnej skrzynki do Produkujemy pojedyncze wyjście.
Tak więc w tym przypadku, jeżeli dodaj trwa 3, 6 i 7.
Gdzieś wewnątrz dodać funkcję, że będzie
spodziewamy się, że być sumowane w celu wytworzenia wyjścia, który
jest 3 oraz 6 oraz 7 lub 16.
>> Podobnie, masz funkcję o nazwie mult, że ma dwa wejścia, A i B,
przetwarza je w inny sposób tak że wyjście funkcji
Jest to produkt z dwóch wejść.
Dwa wejścia pomnożone razem.
4 i 5, są przekazywane do mult, coś się stanie, wyjście oczekujemy
20.
Dlaczego nazywamy to czarna skrzynka?
Cóż, jeśli nie są pisanie działa się, które
zrobiliśmy trochę tak daleko CS50.
Widzieliśmy druku f, na przykład, które Jest to funkcja, która nie pisaliśmy
sami, ale używam cały czas.
Jeśli nie piszemy funkcje siebie,
naprawdę nie trzeba wiedzieć, jak to jest faktycznie realizowane pod maską.
>> Tak na przykład czarna skrzynka I po prostu pokazałem mnożenia,
Mult a, b może być defined-- i to jest po prostu
niektóre pseudocode-- może być zdefiniowane jako wyjście a razy b.
To ma sens, prawda.
Jeśli mamy funkcję o nazwie mult, że ma dwa wejścia.
Oczekujemy, że wyjście będzie być dwa wejścia pomnożone razem,
a razy b.
Mult, ale może być również realizowane w ten sposób,
mamy zmienną licznika do przygotuj się wewnątrz mult 0.
A potem powtórzyć ten proces b czasy dodać do licznika.
Na przykład, jeśli pomnożyć 3a przez 5b, moglibyśmy powiedzieć, ustawić licznik na 0,
powtórzyć pięć razy, dodać 3 do licznika.
Więc zaczynamy od 0, a następnie robimy to pięć razy 3, 6, 9, 12, 15.
To jest ten sam wynik. My nadal się 3 razy 5 tylko
realizacja jest inna.
>> To, co mamy na myśli, kiedy mówimy czarną skrzynkę.
To po prostu oznacza, że ​​nie obchodzi jak to jest realizowane pod maską
pod warunkiem, że wyjściowy oczekujemy.
W rzeczywistości, jest to część umowy wykorzystywania funkcji, w szczególności
Funkcje, które inni piszą.
Zachowanie zawsze będzie być typowe, nieprzewidywalny
w oparciu o nazwę funkcji.
A to dlatego, że to naprawdę Pisząc ważne funkcje
lub gdy inni ludzie piszą Funkcje, które można użyć,
że te funkcje mają jasne, dość oczywiste nazwy,
i są dobrze udokumentowane.
Co jest z pewnością w przypadku dla funkcji, takich jak drukarki f.
>> Dlaczego więc używać funkcji?
Cóż, jak powiedziałem wcześniej, jeśli piszemy wszystkie nasze kodu wewnątrz głównych rzeczy
Można się naprawdę uciążliwe i bardzo skomplikowane.
Funkcje pozwalają nam możliwość zorganizować rzeczy i zerwać
bardzo skomplikowany problem w dużo łatwiejsze w zarządzaniu części sub.
Funkcje pozwalają nam także uproszczenie procesu kodowania.
Jest to o wiele łatwiejsze do debugowania 10 Funkcja linii w porównaniu z 100 linii
Funkcja lub funkcją 1000 linii.
Jeśli mamy tylko do debugowania małe kawałki na raz,
lub napisać małe kawałki w momencie, to sprawia, że ​​doświadczenie w programowaniu
dużo lepiej.
Zaufaj mi na jednym.
>> Wreszcie, jeśli piszemy funkcji mamy można ponownie wykorzystać te różne części.
Funkcje mogą być poddane recyklingowi.
Można je stosować w jeden program lub inny.
Masz już napisane funkcja, wszystko co
musisz zrobić, to powiedzieć, że program, gdzie znaleźć tę funkcję.
Byliśmy recyklingu i za pomocą drukowania f od ponad 40 lat.
Ale to było tylko napisane jeden raz.
Całkiem przydatne, prawda.
W porządku.
Więc funkcje są świetne.
Wiemy to.
Teraz zacznijmy je pisać.
Zacznijmy się je do naszych programów.
Aby to zrobić, pierwszy co możemy zrobić, to zadeklarować funkcję.
Kiedy deklarujesz funkcję co masz w zasadzie robi
mówi kompilatorowi, hej, tak wiesz,
Mam zamiar pisać funkcja później
i oto, co to będzie wyglądać.
Powodem tego jest to, ponieważ kompilatory mogą
zrobić jakieś dziwne rzeczy, jeśli widzą zbiór symboli
że nie są znane.
Więc po prostu dać kompilatora A kieruje, Tworzę funkcji
i to będzie to zrobić.
Deklaracje funkcji Generalnie, jeśli jesteś organizowania kodu w taki sposób,
inni będą mogli zrozumieć i wykorzystać,
generalnie chcą umieścić wszystkie swoich deklaracjach funkcji
na samym początku kodu, tuż przed rozpoczęciem pisania Głównym nawet.
I wygodnie, nie bardzo standardowy formularz
że każda deklaracja funkcji następuje.
Wszyscy prawie wyglądać.
Istnieją trzy części do funkcji oświadczenie, rodzaj powrotu, nazwa,
i lista jej argumentów.
>> Teraz zwracany typ, jaki rodzaj Zmienna wyjście funkcja.
Tak na przykład, jeśli myślimy z powrotem minutę temu do pomnożenia dwóch
Funkcja numery, czego się spodziewać, jeśli pomnożyć liczbę całkowitą przez liczbę całkowitą
wyjście będzie Prawdopodobnie liczbą całkowitą rację.
Pomnożone dwie liczby całkowite razem, masz całkowitą.
Więc typu zwracanej, że Funkcja będzie int.
Nazwa jest to, co chcesz aby połączyć się z funkcji.
To jest chyba najmniej istotne część deklaracji funkcji,
pod względem funkcjonalności.
Ale w rzeczywistości prawdopodobnie jednym z najważniejszych części
deklaracji funkcji w kategoriach wiedząc, co funkcja rzeczywiście
robi.
Jeśli nazwać funkcję f lub g lub h lub tajemnica czy coś takiego,
pewnie dostanie trochę potknął się stara
Pamiętasz, co zrobić, aby te funkcje.
Dlatego tak ważne jest, aby dać znaczące nazwy funkcji.
>> Wreszcie, lista jej argumentów lista oddzielonych przecinkami
wszystkich wejść do swojej funkcji, z których każdy ma rodzaj i nazwę.
Więc nie tylko masz do określić, jaki typ zmiennej
wyjście funkcji spowoduje, chcemy także, aby określić
jaki rodzaj i typy zmiennych w Funkcja będzie przyjmując jako wejścia.
Więc zróbmy tu przykład.
Miejmy tylko spojrzeć w bardziej konkretny jeden.
Więc oto przykład funkcji Deklaracja dla funkcji, które
by dodać dwie liczby całkowite razem.
Sumy dwóch liczb całkowitych ma być liczbą całkowitą, a także, jak to tylko
omówione.
I tak zwracany typ, tutaj na zielono, byłoby int.
To po prostu mówi nam, że dodanie dwóch ints ma na końcu dnia,
wyjście, albo pluć go z powrotem się do nas, liczbą całkowitą.
Biorąc pod uwagę to, co ta funkcja robi my chce dać mu nazwę.
Dodaj dwa ints wydaje właściwe, biorąc pod uwagę
Bierzemy dwie liczby całkowite, jak wejść i mam nadzieję, że ich pomnażania.
To może być trochę kłopotliwe Nazwa i szczerze mówiąc ta funkcja
Prawdopodobnie nie ma potrzeby ponieważ mamy dodawanie
Operator, jeśli pamiętam z naszej omówienie operatorów wcześniej.
Ale powiedzmy, że dla dobra Argument, że funkcja ta jest przydatna
i tak będziemy nazywać go dodać dwa ints.
Wreszcie, funkcja ta ma dwa wejścia.
Z których każdy jest liczbą całkowitą.
Więc mamy ten przecinek oddzielone lista wejść.
Teraz na ogół chcą nadanie nazwy każdego z nich
tak, że mogą być stosowane w funkcji.
Nazwy nie są strasznie ważne.
>> W tym przypadku, nie koniecznie ma żadnego znaczenia z nimi związane.
Tak więc możemy po prostu zadzwonić do nich a i b.
To jest całkowicie w porządku.
Jeżeli jednak znajdziesz się w sytuacji,
których nazwy zmiennych w rzeczywistości może być ważne,
możesz do nich zadzwonić coś innego niż aib
dać im coś więcej symboliczny sens.
Ale w tym przypadku naprawdę nie wiedzieć coś jeszcze o funkcji.
Chcemy tylko, aby dodać dwie liczby całkowite.
Więc po prostu zadzwonić te liczby całkowite a i b.
To jeden z przykładów.
>> Dlaczego nie wziąć drugi myśleć o tym jednym,
jak można napisać funkcję Deklaracja dla funkcji, które
mnoży dwie liczby zmiennoprzecinkowe?
Czy pamiętasz, co Liczba zmiennoprzecinkowa jest?
Co by ta funkcja Deklaracja wygląda?
I rzeczywiście polecam zatrzymać wideo tutaj i wziąć, ile czasu trzeba.
Pomyśl o tym, co to deklaracja funkcji będzie?
Co typ zwracany będzie?
Co taką nazwę będzie?
Co by wejść być?
Więc dlaczego nie można zatrzymać wideo tutaj i pisać-deklarację funkcji
dla funkcji, które pomnożyć dwóch liczb zmiennoprzecinkowych razem.
Mam nadzieję, że zatrzymał się film.
>> Warto więc spojrzeć na przykład jednej z możliwych deklaracji.
Float mult dwa reals unosić x, float y.
Produkt dwóch liczb zmiennoprzecinkowych,
które pamiętam to jak reprezentacji liczb rzeczywistych
lub numery z wartości dziesiętnych w C, będzie liczba zmiennoprzecinkowa.
Gdy pomnożyć dziesiętne przez przecinku,
pewnie dostanie po przecinku.
Chcesz, aby nadać mu odpowiednią nazwę.
Pomnożyć dwie Real wydaje się dobrze.
Ale można to nazwać mult dwa pływaki lub mult pływaki.
Coś w tym stylu, tak długo, jak to dał jakiś rzeczywisty sens tego, co
to czarna skrzynka zamierza zrobić.
I znowu, w tym przypadku, nie robimy wydają się mieć jakiekolwiek znaczenie dołączone
z nazwiskami zmienne jesteśmy przechodzące w,
więc po prostu zadzwonić im x i y.
Teraz, jeśli nazywają je coś indziej, to jest całkowicie w porządku.
W rzeczywistości, jeśli nie deklaracja ta, zamiast
za pomocą podwójnych zamiast od pływaków, jeśli przypomnieć
że podwaja to inna sposób dokładniej
określenie liczby rzeczywiste lub pływających zmiennych punkt.
To jest zupełnie w porządku.
Albo jeden z tych będzie dobrze.
W rzeczywistości, istnieje kilka Różne kombinacje
sposobów zadeklarować tę funkcję.
Ale to są dwie całkiem dobre.
Mamy oświadczył funkcję, to świetnie.
Powiedzieliśmy kompilator, co to jest, co będziemy robić.
Teraz właściwie napisać taką funkcję.
Dajmy jej definicję, tak że we wnętrzu czarnej skrzynki
przewidywalne zachowanie się dzieje.
W rzeczywistości, jesteśmy pomnożenie dwóch rzeczywistych numery razem, lub numery dodawanie
razem, lub robi cokolwiek to jest które poprosiliśmy naszą funkcję do zrobienia.
>> Faktycznie więc, spróbujmy zdefiniować pomnożyć dwa Reale, które po prostu
mówił o sekundę temu.
Teraz początek definicja funkcji
wygląda prawie dokładnie tak samo w deklaracji funkcji.
Mam oba tutaj.
Na górze jest deklaracja funkcji, Rodzaj, nazwa, oddzielonych przecinkami argumentem
lista, średnik.
Średnik oznacza, że że jest to deklaracja funkcji.
Początek funkcja Definicja wygląda niemal dokładnie
ten sam typ, nazwa, oddzielone przecinkiem Lista argumentów, nie średnik,
otworzyć nawias klamrowy.
Otwarty nawias klamrowy, tak jak robiliśmy z głównym,
Oznacza to, że teraz jesteśmy zaczynają definiować
co dzieje się wewnątrz czarnej skrzynki, która zdecydowaliśmy się zadzwonić Mult dwa Reale.
Oto jeden sposób na jego realizację.
Moglibyśmy powiedzieć, możemy zadeklarować nowy zmienna typu float o nazwie produktu
i przypisać tej zmiennej do wartości x razy y.
A następnie powrót produkt.
Co oznacza zwrot na myśli.
Dobrze jest droga powrotna wskazać, że to, jak
przekazujemy wyjście wycofać.
Tak więc powrót co jest taka sama jak Ten sygnał wyjściowy z czarnej skrzynki.
Tak, to w jaki sposób to zrobić.
Oto kolejny sposób na jego realizację.
Moglibyśmy wrócić x razy y.
x jest pływaka.
y jest pływak.
Więc x razy y jest także pływak.
Nie trzeba nawet tworzenie innej zmiennej.
Więc to jest inny sposób realizować dokładnie tę samą czarną skrzynkę.
>> Teraz poświęć chwilę, wstrzymać wideo
i spróbować zdefiniować dodać dwa ints, która jest inna funkcja to
mówił o chwilę temu.
Znowu tutaj, mam umieścić funkcję oświadczenie, i tak średnik,
oraz otwarty nawias klamrowy i zamknięty kręcone
nawiasów, aby wskazać, gdzie będziemy wypełniać w treści dodać dwa ints,
tak, że możemy zdefiniować konkretny Zachowanie wewnątrz czarnej skrzynki.
Więc zatrzymać wideo.
I wziąć tyle czasu, ile trzeba spróbować zdefiniować
implementacja dodać dwa ints, takie że gdy funkcja generuje wartości
tak jest, w rzeczywistości, powrót suma z dwóch wejść.
Tak jak w poprzednim przykładzie, istnieje kilka różnych sposobów
że można wdrożyć dodać dwa ints.
Oto jeden.
Tu w orange mam po prostu miał kilka comments--
Właśnie dodałem niektóre komentarze do wskazania
co dzieje się na każdej linii kodu.
Więc zadeklarować zmienną zwana suma typu int.
Mówię suma równa się PLUS B.
To miejsce, gdzie jesteśmy rzeczywiście robi praca dodawania A i B razem.
I wrócę sumę.
I to ma sens, ponieważ Suma kontrolna jest zmienna typu int.
A co to typ danych, które to Funkcja mówi mi, to będzie wyjście?
Int.
Więc wracam sumę, która jest zmienną całkowitą.
I to ma sens, biorąc pod uwagę to, co mamy zgłoszone i zdefiniowane naszą funkcję
do zrobienia.
>> Teraz możesz również zdefiniować Funkcja w ten sposób,
int suma równa plus B-- pominąć, że Pierwszy step-- a następnie powrócić sumę.
Teraz możesz mieć także realizowany jest w ten sposób,
co bardzo nie polecam.
To jest zły styl dla jednego sprawa i naprawdę zły projekt,
ale to robi, w rzeczywistości, w pracy.
Jeśli wziąć ten kod, który jest int dodaj złe żmija dot c, i używać go.
To rzeczywiście nie dodaje dwie liczby całkowite razem.
Jest to bardzo słaba realizacja w tym szczególnym zachowaniem.
Ale to nie działa.
To właśnie tutaj, w celu zilustrowania punkt, że tak naprawdę nie
obchodzi, co dzieje się wewnątrz czarna skrzynka, tak długo,
jak to ma wyjście, które spodziewamy.
To jest źle zaprojektowana czarna skrzynka.
Ale pod koniec dnia, to robi Wyjście jeszcze suma a plus b.
W porządku.
Więc mamy zadeklarowane funkcje.
I mamy funkcję zdefiniowane.
Więc to jest naprawdę dobry.
Teraz zacznijmy używać funkcji że mamy zadeklarowane i mamy zdefiniowane.
Aby połączyć się z function-- to faktycznie dość easy-- wszystko, co musisz zrobić,
jest przekazać ją odpowiednie argumenty, Argumenty typu danych
że oczekuje, i a następnie przypisać do zwrotu
Wartość tej funkcji i this-- usprawiedliwienia me--
przypisanie wartości zwracanej tej funkcji aby coś odpowiedniego typu.
>> Warto więc spojrzeć na to w praktyce, w pliku
zwany dodatek 1 kropka c, które Mam w moim CS50 IDE.
Więc tutaj jest żmija 1 punkt c.
Na początku widzisz mam moje obejmuje, funt to,
Standard IO i CS50 dot h.
A potem mam deklarację funkcji.
To jest, gdzie jestem mówi kompilator jestem
będzie pisanie Funkcja o nazwie dodać dwa ints.
To będzie wydawać typ całkowity zmienny.
To właśnie ta część jest tutaj.
A potem mam dwa wejścia do niej i b, z których każdy jest liczbą całkowitą.
Wewnątrz głównej, pytam użytkownika o Wejście mówiąc, dał mi całkowitą.
A oni się monit, aby zapomnieć int, która jest funkcją
znajduje się w bibliotece CS50.
I że zostanie zapisane w x, zmienna całkowita.
>> Następnie skłonić ich do innej liczby całkowitej.
Otrzymujemy kolejną liczbę całkowitą i zapisać, że w r.
A potem, tu, na linii 28, jest gdzie robimy nasz wywołanie funkcji.
Mówimy, int Z równych dodać 2 ints x przecinek y.
Czy widzisz, dlaczego to ma sens?
x jest zmienną typu całkowitego, y jest zmienną typu liczba całkowita.
Więc to jest dobre.
To ma sens z co nasi funkcji Deklaracja na linii 17 wygląda.
Lista wejście oddzielone przecinkami spodziewa się dwie liczby całkowite, a i b.
W tym przypadku, możemy wywołać im, co chcemy.
To właśnie spodziewa się dwie liczby całkowite.
A x oznacza liczbę całkowitą, a y jest liczbą całkowitą.
To działa.
>> I wiemy, że funkcja będzie do wyjścia an liczbami całkowitymi, jak również.
I tak jesteśmy przechowywania Wyjście funkcji
dodać dwa ints, w typu całkowitego Zmienna, której dzwonisz z.
I wtedy możemy powiedzieć, suma procent i oraz procent i jest procent i.
x, y i z, odpowiednio, wypełnienie tych procent i jest.
Co stanowi definicję dodać dwa int wygląda?
To bardzo proste.
To jeden z tych, które mamy Właśnie widziałem przed chwilą,
int suma równa sumę oraz b powrotną.
czy to działa?
Miejmy zapisać plik.
A potem tutaj na moim terminalu Mam zamiar zrobić sumator 1,
i wyczyścić ekran.
Mam zamiar powiększyć, bo wiem, jest to trochę trudne do zauważenia.
>> Więc musimy skompilować ten program jako żmija 1.
Tak więc możemy zrobić dot slash żmija 1.
Daj mi liczbę całkowitą, 10.
Daj mi jeszcze jedną liczbę całkowitą, 20.
Suma 10 i 20 30.
Tak zrobiliśmy pomyślnego wywołania funkcji.
Można ponownie uruchomić funkcję, negatywne 10, 17 suma ujemnego 10 i 17 wynosi 7.
Ta funkcja działa.
Ma zachowanie że oczekujemy go.
I tak zrobiliśmy sukces Funkcja, definicja, deklaracja,
i skuteczne wywołanie funkcji.
Para różne punkty o funkcjach
zanim zakończyć ten rozdział.
Przypomnijmy, od naszego omówienie typów danych,
Wcześniej, który funkcjonuje czasami może podjąć żadnych nakładów.
Jeśli tak jest, to zadeklarować funkcję
jako posiadające listę nieważne argumentów.
Pamiętasz, co się Najczęstszą funkcją
widzieliśmy do tej pory, że trwa lista argumentów nieważne jest?
Jego głównym.
Przypomnijmy także, że funkcję czasem w rzeczywistości nie mają wyjścia.
W tym przypadku, deklarujemy funkcję jako posiadające typ void powrotną.
Miejmy zakończyć ten rozdział przez rozwiązywanie problemu praktyk.
>> Więc tutaj jest problem rozplanowane.
Chcę, aby napisać funkcję nazywa ważna trójkąt.
Co powinien zrobić tej funkcji jest wykonanie trzech liczb rzeczywistych
które reprezentują długości trzech boki trójkąta jako jego parametrów,
lub jego argumenty, lub jej inputs-- inny zestaw synonimów
które mogą wystąpić.
Funkcja ta powinna albo wyjście prawda lub fałsz
w zależności od tego, czy te trzy długościach są zdolne do tworzenia trójkąta.
Czy pamiętasz, typ danych, które kiedyś wskazują, prawda czy fałsz?
Teraz jak można zaimplementować to?
Dobrze wiedzieć, że są parą zasad dotyczących trójkąty
które są rzeczywiście przydatne wiedzieć.
Trójkąt może mieć tylko Boki z dodatnim długości.
To ma sens.
Prawdopodobnie mówiąc, duh.
Inną rzeczą, aby pamiętać, jednak to, że suma
od długości dowolnego dwa boki trójkąta
musi być większa niż Długość trzeciej strony.
To rzeczywiście prawda.
Nie można mieć trójkąt stronach 1, 2 i 4, na przykład dlatego, że 1 plus 2
nie jest większa niż 4.
To są zasady, które ustalenie, czy trzy
Wejścia mogą niewykluczone tworzą trójkąt.
Więc potrwać kilka minut i oświadczam, a następnie zdefiniować
funkcja ta nazywa się ważne trójkąt, tak, że rzeczywiście
ma zachowanie określonego tutaj.
>> Będzie wyjście prawdziwe, jeśli tych trzech stron mogą zawierającej trójkąt
false w przeciwnym wypadku Gotowy, aby zobaczyć, jak to zrobiłeś?
Oto jedna z implementacji od ważne trójkąt.
To nie jest jedyny.
Pozdrawiam może się nieznacznie różnić.
Ale ten ma w rzeczywistości mieć zachowanie, które spodziewamy.
Deklarujemy naszą funkcję u bardzo góry, bool ważny trójkąt
unosić x pływaka r pływaka z.
Więc jeszcze raz, ta funkcja trwa trzy liczby rzeczywiste
jako jego argumenty, pływające Zmienne wartości punktowej,
i wyprowadza prawda lub fałsz Wartość, która jest logiczna, przypomnieć.
Więc dlatego typ zwracany jest bool.
Następnie definiujemy funkcję.
Pierwszą rzeczą, jaką możemy zrobić, to upewnij się, że wszystkie boki są dodatnie.
Jeśli x jest mniejsza niż lub równa 0, lub y jest równy 0,
lub jeśli Z jest mniejsze niż lub równe 0 ° C, które nie mogą być ewentualnie trójkąta.
Oni nie mają pozytywne strony.
I tak możemy wrócić fałszywe w tej sytuacji.
Następnie, upewnij się, że każda para wejść
jest większe niż trzeci.
>> Więc jeśli x oraz y jest mniejsza niż lub równy z,
lub jeśli x oraz z mniej lub równa y,
lub y oraz z wynosi mniej niż lub równa x, która również nie może być ważny trójkąt.
Więc wracamy znów fałszywe.
Zakładając, że minęliśmy obu kontroli choć, to możemy wrócić prawda.
Bo tych trzech stron mogą returning--
tworzyć prawidłową trójkąta.
I to wszystko.
Masz już zgłoszone i zdefiniowane.
A być może uda się teraz obsłudze i wywołać tę funkcję.
Dobra robota.
Jestem Doug Lloyd.
To CS50.