Cześć i witaj.
Rozpoczynamy nową sekcję.
Nasza sekcja opiera się na funkcjach.
Więc o niektórych porozmawiamy podstaw funkcji.
Funkcja jest samodzielna jednostka kodu programu
przeznaczona do wykonania określonego zadania, to jest rozdzielczość wysokiego poziomu.
Zasadniczo funkcja będzie coś, co możesz wywołać, co
pomaga zmniejszyć powielanie kodu.
Ale to, co robi, to jest
samowystarczalny wewnątrz samego kodu i ma tylko kilka zadań że to się uda.
Reguły składni będą zdefiniować strukturę funkcji
i sposób jej użycia.
Więc w zależności od tego, jakie programowanie język, którego używasz, funkcje
mogą być definiowane w różny sposób.
W przypadku c będziemy rozmawiać o szczególnych zasadach dotyczących c.
Obsługuje większość języków programowania tę koncepcję funkcji, a opowiem ci o
zaletach i dlaczego są obsługiwane.
Funkcja w c jest taka sama jak podprogramy lub procedury w
innych językach programowania.
Więc często to słyszysz terminy podprogramy i procedury, to
samo co funkcja.
Samodzielna jednostka, która wykonuje jakiś kod, który możesz zadzwonić.
Niektóre funkcje powodują błąd działanie, które ma nastąpić.
Więc znamy parę funkcjonuje do tego momentu.
Przestudiowaliśmy printf funkcja, która wyświetla dane wyjściowe
na ekranie, która przyjmuje plik działanie, zrobi coś dla Ciebie.
A potem wynik, który również sprawdziliśmy przy funkcji scanf, która pobiera
dane wejściowe z klawiatury.
Znowu robi coś innego.
Jednak inne funkcje w rzeczywistości może po prostu znaleźć
wartość do użycia przez program.
Na przykład, kiedy uczymy się strun i tablice znaków, przyjrzymy się
funkcjom ciągów znaków manipulacja i zmiana rzeczy.
W szczególności jest funkcja nazywana długością mieszania, a to powie programiście,
jak to zrobić długi jest pewien ciąg.
Nie wykonuje jej działania po prostu przekazuje informacje z powrotem.
Więc funkcje będą działać zadania w zależności od zadania, które
musisz wykonać w swoim program,
albo spowoduje akcję, albo zmodyfikuje plik wartość programu lub zwrócić wartość lub przekazać pewne informacje
o statusie.
Zalety funkcji.
Będziemy używać funkcji ponieważ mają mnóstwo zalet.
Funkcje pozwalają na Dziel i podbijaj strategię.
Więc jeśli miałbyś zapisać i idź i napisz program średniej
wielkości lub duży program, tak będzie być naprawdę, bardzo trudnym w utrzymaniu.
Trudno będzie to przetestować, debuguj, znajdź i napraw wszelkie błędy, jeśli masz
jedną dużą funkcję.
Więc załamanie i robienie tego podział strategii podboju
znacznie to ułatwi znajdź i napraw błędy w swoim kodzie.
Czy możesz sobie wyobrazić pojedynczy program c że wszystko, co miałem, to główna funkcja i
było w niej 5000 wierszy.
Nie mielibyśmy pojęcia, jak to zrobić zaatakować ten problem.
To naprawdę kiepska organizacja.
Nie masz żadnej spójności i po prostu nurkujesz tam, aby
spróbować rozwiązać problem.
Więc zamierzamy użyć funkcji.
Zasadniczo dziel i zwyciężaj że zadania można podzielić na kilka
niezależnych podzadań.
Zmniejsza ogólną złożoność kodu.
Możesz tworzyć osobne funkcje dla każdego podzadania, a następnie
możesz nawet utworzyć więcej funkcji do podzielenia podzadanie na mniejsze podzadania.
Za każdym razem, gdy tworzysz te dodatkowe funkcje, zmniejsza złożoność.
Twoim celem powinno być, kiedy jesteś tworzenie tych
funkcji i używanie dziel i zwyciężaj Strategia polega na tym, aby
Twoje funkcje były jak najbardziej spójne.
A to oznacza pewność każda funkcja wykonuje tylko jedno zadanie, nie ma funkcji do wykonania
5 różne zadania lub 10 różnych zadań.
Jeśli napiszesz funkcję, która czyta wejście z klawiatury, niech odczyta
dane wejściowe z klawiatury, nie rób tego niech sprawdzi łańcuch, wyjście wyświetlacza lub
coś w tym rodzaju.
Funkcje muszą być małe i muszą być bardzo spójne.
Ale dziel i zwyciężaj strategia jest naprawdę fajna, ponieważ
zmniejsza tę złożoność.
Zamiast pełnić główną funkcję z 5000 liniami kodu możesz mieć
wiele, wiele funkcji wykonujesz określone zadania i możesz
je bardzo szybko zidentyfikować.
Więc funkcje będą zmniejszyć powielanie kodu.
A kiedy ograniczysz powielanie kodu, pozwoli to zaoszczędzić czas
podczas pisania, testowania i debugowanie tego kodu.
To też się zmniejszy rozmiar kodu źródłowego.
I dlaczego funkcje się zmniejszają powielanie kodu,
ponieważ zamiast tego masz zadanie zadanie w kółko i ciągłe
pisanie tego samego kodu i znowu, zamykasz to zadanie w
funkcji i po prostu wywołaj funkcję, a funkcja zrobi to za
Ciebie za każdym razem nie ma tam żadnych duplikatów.
Jeśli musisz wykonać określone zadanie kilka
razy w programie wystarczy napisać odpowiedni plik działać raz,
tak jak wspomniałem. Nie musisz napisz ten kod wiele razy.
Więc program może użyć które działają zawsze, gdy jest to potrzebne.
Możesz także użyć tego samego funkcjonują w różnych programach i
to właśnie tworzy bibliotekę.
Robiliśmy to, używaliśmy funkcji
printf, która pochodzi z Biblioteka standardowych wejść i wyjść.
I to jest napisane tylko raz i przywołujemy to w kółko.
Gdyby ta funkcja nie istniała, bylibyśmy musimy wziąć
implementację tej funkcji i umieścić ją w naszym program i po prostu powtarzaj go.
Funkcje mogą więc dużo zaoszczędzić czasu
i mogą zredukować kod źródłowy, a Ty możesz używać ich wielokrotnie.
Więc to także oprogramowanie technika ponownego wykorzystania.
Pomaga również w czytelności.
Kiedy modulujesz swój program co robisz podczas
tworzenia tych oddzielnych funkcji w programie wykonywać określone zadania, program staje
się znacznie lepiej zorganizowany.
Jak wspomniałem, gdybyś miał main rutyna, główna funkcja i zawiera
mnóstwo kodu znacznie trudniejsze do wykonania niż główna
procedura, która wywołuje 5 funkcji i funkcje te wykonują określone zadania.
Pomaga więc w organizacji programu.
Pomaga w utrzymaniu programu.
Jest dużo łatwiejszy do odczytania i łatwiejszy zmienić lub naprawić dowolny kod źródłowy.
I pamiętaj o konserwacji to najdroższa faza cyklu życia
oprogramowania to miejsce, w którym naprawiasz swoje
błędy, program został wydany i gdzie dodajesz nowe funkcje.
Im lepiej zorganizowany jest tym łatwiejszy
w utrzymaniu.
Więc ta organizacja, to czytelność, to możliwość śledzenia tego, co
się dzieje Twój kod źródłowy jest bardzo ważny,
a funkcje bardzo pomagają.
Podejście dziel i zwyciężaj umożliwia
także rozwijanie i testowanie części programu i debugowane niezależnie.
Kiedy wyjdziesz tam w rzeczywistości świat
i zaczniesz pracować nad kodem, zauważysz to programy są naprawdę duże.
Jest wielu ludzi pracując nad tymi programami,
setkami, może nawet tysiącami.
Kiedy masz wszystkich tych ludzi, pracuj w programie, o wiele łatwiej będzie pracować
nad tym programem, jeśli ty zrób to dzieląc podejście, jeśli masz małe
zadania, które ludzie to robią i to jest niezależne.
Nie dotykasz tego samego kod źródłowy i możesz
znacznie łatwiej wdrażać zadania.
A kiedy to robisz i masz nad projektem pracuje
wiele osób, może to zmniejszyć ogólny rozwój czas, który ponownie
zmniejsza koszty utrzymania, zmniejsza koszty rozwoju.
Funkcje można również wykorzystać ponownie co znowu skróci czas.
I znowu robimy to z printf, użyj tego ponownie.
Ale ty, kiedy piszesz własnego użytkownika zdefiniowanych funkcji, możesz ich
używać wielokrotnie w programie.
Dlatego ponowne wykorzystanie oprogramowania jest dużym problemem duża zaleta funkcji.
Kiedy myślisz o tych funkcjach.
Inna fajna rzecz w projektowaniu Twój program dotyczący funkcji chcesz myśleć o
nim jak o czarnej skrzynce.
Co to znaczy, kiedy ty, kiedy ty myśl o tym jak o czarnej skrzynce,
jedyne o czym myślisz to dane wejściowe do funkcji i wyjścia.
A kiedy skupisz się tylko na wejście w dane wyjściowe, pozwala
spojrzeć na projekt jako całość zanim zaczniesz wdrażać.
I tak ogólnie będzie funkcjonować wprowadzi Cię w tego typu myślenie, w którym
możesz skupić się na projektowaniu.
Wspomniałem, że projekt jest ważny.
Projektowanie jest wtedy, gdy zaczynasz planować swój program, jak
zamierzasz go zorganizować, jak masz zamiar napisać kod.
Planowanie jest ważne jeszcze przed rozpoczęciem implementacji, która polega na
pisaniu kodu.
Myśląc o funkcjach a myśląc tylko o danych wejściowych
i wyjściowych, możesz pomyśleć o tym, jak program ma być zorganizowany i
jakie funkcje należy utworzyć.
Więc nie musisz się o to martwić po prostu realizacja w szczegółach.
Jest to ważne, ponieważ plik pierwszą rzeczą, którą
chcesz zrobić przed napisaniem kodu, jest po prostu pomyśleć o projektowaniu, nie chcesz
myśleć o wdrożeniu.
Wiele problemów, które studenci kiedy piszą kod po raz pierwszy, to
właśnie oni po prostu rozpocznij wdrażanie.
Nawet nie myślą o problem, nie
myślą, jak go rozwiązać, po prostu zaczynają pisać kod.
Nigdy nie jest to dobre podejście.
Kiedy myślisz o pisaniu kod i funkcje, myśl
o tym jak o wejściach i wyjściach funkcji i pomoże
Ci w projektowaniu.
Spójrzmy więc na kilka przykładów.
Wykorzystaliśmy wbudowane funkcje, takie jak jako printf i scanf, jak wspomniałem.
Te są w standardzie biblioteka danych wejściowych udostępniana przez
język programowania c.
Więc jesteśmy trochę zaznajomieni z czym funkcja jest taka, że jej używaliśmy,
ale nie przeszliśmy przez karę szczegółowe informacje o tym,
jak definiujesz funkcję lub jak faktycznie ją zdajesz dane do funkcji, nic takiego.
Ale dzięki funkcji printf powinieneś zauważyć,
że pobiera dane.
Możesz przekazać dane do funkcji.
Dane to argumenty między nawiasami po
nazwie funkcji.
Będziemy mieć całość inny wykład na temat argumentów
i parametrów, aby lepiej je wyjaśnić.
Ale na wysokim poziomie to zrozum możesz przekazać dane do funkcji.
I zrozum to patrząc w funkcji printf.
Pierwszy argument do printf funkcja, która jest danymi,
które do niej przekazujemy, była łańcuchem dosłownie, to było wszystko, co te
wszystkie znaki w podwójnych cudzysłowach.
A potem mieliśmy też kłótnie, które mogło być 0 lub wiele było zmiennych
argumentów, którymi były seria zmiennych lub wyrażeń, których wartości
miały zostać wyświetlone.
Więc pamiętaj, gdybyśmy mieli jakiś format specyfikatory w
pierwszym argumencie, w którym mielibyśmy zmienne to w kolejnych argumentach.
Więc byłeś w stanie przejść dane do funkcji printf.
Powinieneś także zauważyć, jak ty może otrzymać informacje zwrotne z funkcji,
dane mogą zostać zwrócone do Ciebie.
W funkcji scanf jeden argumentów dotyczy tego, w jaki sposób zamierzasz
przechowywać dane.
A więc zdasz to zmienna i ta zmienna miałaby
jakąkolwiek wartość użytkownik wpisał na klawiaturze.
Więc można o tym pomyśleć jako wartość zwracana w funkcji.
Funkcje są więc bardzo cenne, ponieważ mogą zabrać do siebie dane, a
następnie mogą je zwrócić.
A więc przykład kodowania funkcji a to byłaby po prostu funkcja, którą
zamierzamy wywołać, ale to jest główna funkcja.
Znamy główne funkcje, punkt
wejścia programu.
Ale spójrz, jakie to miłe.
Wołamy funkcje czytaj sortowanie listy i średnia.
Mamy tylko 3 linie kodu.
Musimy je wdrożyć funkcje, ale sprawia, że program jest bardziej zorganizowany,
ponieważ od razu wiedzieć, co robi ten program.
Ten program będzie czytać listę, potem posortuje
listę, a potem posortuje wyświetlić średnią z listy, a
lista zawiera liczby zmiennoprzecinkowe.
Więc jest bardzo czytelny, idzie być bardzo łatwe w utrzymaniu.
Jeśli mamy jakieś błędy w program, natychmiast dowiemy się, jak
znaleźć lub wyizolować ten błąd.
Jeśli błąd nie sortuje, my można przejść do funkcji sortowania.
Jeśli błąd jest w uśrednianiu, możemy przejść do średniej funkcji,
bardzo łatwo wyodrębnić błędy.
Więc kiedy wdrażamy te funkcje na poprzednim slajdzie,
po prostu je nazywaliśmy.
Aby faktycznie zaimplementować funkcje, musisz napisać kod w
treści funkcji.
Możesz użyć funkcji, które są implementowane przez język c, taki jak
printf lub możesz utworzyć własne funkcje zdefiniowane przez użytkownika.
Nie musisz implementować printf lub dowolna z
funkcji w bibliotece, ty wdrażaj tylko własne funkcje.
Więc w tym poprzednim przykładzie z sortowanie listy przeczytanych i średnia,
musielibyśmy iść i zrobilibyśmy muszą zaimplementować tę funkcję.
Musielibyśmy zapewnić funkcję nagłówek, treść funkcji, która
faktycznie odczytuje lista, sortowanie listy
i uśrednianie listy.
Nie skończyliśmy tylko na definiowaniu funkcji, musimy je zaimplementować.
A kiedy zaimplementujesz funkcji, zawsze chcesz
używać opisowych nazw funkcji aby było jasne, co robi program i
jak jest zorganizowany.
W poprzednim przykładzie mieliśmy plik funkcja o nazwie read list, całkiem jasne, co
to robi, sortowanie nazwy funkcji.
Nie nazwaliśmy funkcji x y ani z.
Opisaliśmy tę funkcję.
To jest to samo, kiedy opisujesz
lub tworzysz zmienne, znaczące nazwy.
A także jeśli tworzysz te funkcje gdzie są wystarczająco ogólne,
gdzie faktycznie coś robią i pobierają ogólne dane, tak naprawdę byś
to mógł użyj ich ponownie w innych programach,
tak jak funkcji biblioteki.
Ponownie, wspieranie ponownego wykorzystania oprogramowania.
Dlatego w nadchodzących wykładach porozmawiamy o tym, jak
możemy zdefiniować funkcję, plik specyficzna składnia, jak możemy wywołać i wywołać
funkcję i jak to zrobić przekazywać i zwracać od nich dane.
Na tym się skupimy w nadchodzących wykładach.
Ja też chciałem o tym wspomnieć nasza główna
rutyna, którą widzieliśmy w kółko Program c, to jest funkcja.
Główną funkcją jest specjalnie rozpoznawana nazwa w
systemie c, wskazuje, gdzie program ma rozpocząć wykonywanie.
Wszystkie programy C zawsze mają plik main.
Główna funkcja może przyjąć dane, kiedy do niego
przekazujesz, argumenty wiersza poleceń lub to nie musi pobierać danych.
Ma również opcjonalne dane, które może zwrócić.
Zauważysz, że używamy główne funkcje, które zwracają 0.
Zwykle jest to używane, gdy ty chcesz zwrócić kody błędów.
Ale użyliśmy określonych funkcji już i najważniejszą
funkcją jest ta główna funkcja i to znowu pomaga uporządkować kod.
Zawsze wiemy, gdzie program się uruchamia, ponieważ musimy
tylko znaleźć plik main.
To jest opis wysokiego poziomu funkcji rodzaj identyfikacji zalet funkcji
i czym dokładnie jest funkcja.
Teraz chcemy porozmawiać o wdrożeniu.
Dziękuję Ci.