Witam i witam ponownie.
Porozmawiajmy o podstawy programu.
Ponieważ to jest początek zajęcia z programowania,
o których będziemy rozmawiać C, zanim będziesz mógł zrozumieć
nawet język programowania, potrzebujesz aby zrozumieć, czym jest program.
Dlatego chcę opisać podstawowe, podstawowe pojęcia, zanim przejdziemy
do szczegółów C.
Komputery to bardzo głupie maszyny.
Jestem pewien, że jesteście więcej niż więcej niż nieznajomość
tego, co komputer potrafi i co robi.
A konkretnie pod maską i co się dzieje, kiedy klikasz
w przeglądarce, kiedy klikasz różne aplikacje, z których korzystasz, co się dzieje
pod maską czy jest jakiś program, który
jest uruchomiony i ten program jest mówienie komputerowi, co ma robić.
Komputery są naprawdę głupie.
Robią tylko to, co im każą.
Więc podstawowe operacje pliku komputer utworzy tak zwany
zestaw instrukcji komputera.
Zestaw instrukcji, jeśli możesz pomyśl o tym, chodzi o to, jak
to coś zrobi. Więc musimy
powiedzieć temu komputerowi jak to zrobi.
Robimy to w formie pliku program na jeszcze niższym poziomie.
Każdy komputer ma to, co jest nazywany zestawem instrukcji.
Zestaw instrukcji to w zasadzie instrukcje na CPU,
procesor komputera.
Aby rozwiązać problem za pomocą komputera mówiąc ci, co masz zrobić,
zapewniasz to rozwiązanie, wysyłając je instrukcje do zestawu instrukcji.
Więc tak właśnie się
dzieje, kiedy piszesz program komputerowy, czy wysyłasz konkretne instrukcje rozwiązać konkretny
problem za pomocą poleceń wysyłanych do CPU, procesora.
I to podejście lub metoda jest używany do rozwiązania problemu jest
znany jako algorytm.
Więc dla was, którzy rozumieją matematyka, algorytm to sposób, w jaki
rozwiązujesz problem.
Na przykład, gdybyś miał tworzy cały program i wszystko,
co robi, to sprawdzenie, czy plik użytkownik wprowadza liczbę nieparzystą lub parzystą.
Co można by opisać jako sam algorytm jest testem, niezależnie od tego, czy liczba
jest parzysta, czy nie lub dziwne, taki jest algorytm.
Stwierdzenia rozwiązujące problem w całości staje się programem.
I omówimy to koncepcja i algorytm.
Algorytm jest równy bardziej rodzaj relacji - dotyczy programowania
modułów.
Więc porozmawiamy o tym, kiedy będziemy porozmawiaj o szczegółach, aby zobaczyć.
Ale znowu chcę ci pozwolić zrozumieć, co robisz, kiedy
piszesz kod.
Co się dzieje na bardzo, bardzo najniższa warstwa.
Będziesz pisać te
algorytmy, które są zawarte w programie.
Więc aby napisać program, jesteś
będzie musiał poprawnie napisać instrukcje zaimplementować algorytm.
Te instrukcje można wyrazić w wszelkiego rodzaju wypowiedziach
określonego języka programowania.
Więc skupimy się na c na te zajęcia, ale jestem pewien,
że słyszałeś o innych programach języki takie jak java,
c ++, cel c używane w aplikacjach na iOS, ale obecnie bardziej, używany jest język Swift.
Ale jest całe to programowanie języki, których
możesz się nauczyć i które w zasadzie na to pozwolą wysyłać instrukcje do
CPU w postaci algorytmów i instrukcji.
Chciałbym też o niektórych porozmawiać podstawowa terminologia, procesor,
jednostka centralna.
To jest mózg komputera.
To jest, gdy większość praca jest wykonywana.
To jest gdzie instrukcje są wykonywane.
Pamięć, często usłyszeć tę pamięć terminów.
A studenci często mają pamięć bardzo zdezorientowany z dyskiem twardym.
Pamięć to nie to samo jako dysk twardy.
Pamięć jest często określana jako ram, czyli pamięć o dostępie swobodnym.
Wszystkie dane przechowywane w pamięci
to osobny komponent sprzętowy.
To nie jest rzeczywisty dysk.
Wszystkie dane w programie jest przechowywany w pamięci, oddzielnym
komponencie sprzętowym.
Więc przechowuje dane program podczas jego działania.
I będziemy o tym rozmawiać zmienne i ich znaczenie.
Ale program musi mieć dane w celu wykonania
obliczeń w celu wykonania algorytmów.
Te dane będą przechowywane w pamięci RAM.
Powód, dla którego przechowujemy to w pamięci w przeciwieństwie do przechowywania go
na dysku twardym to właśnie ta pamięć jest znacznie szybszy, pozwala
na znacznie szybsze działanie programu.
Ale zazwyczaj jest też pamięć nie trwałe po ponownym uruchomieniu
innego rodzaju wyjaśnienia.
Ale powinieneś zrozumieć tylko ten termin RAM.
To oznacza pamięć.
To zmienne i dane w sam program, w którym jest przechowywany.
Oddzielny sprzęt następnie dysk twardy.
Dysk sprzętowy to coś kupujesz, gdy komputer - to
stała pamięć.
Zwykle jest to naprawdę duże. To zawiera gigabajty, terabajty danych.
To przechowuje pliki, które mogą być zasobami programu.
A kiedy włączysz komputer wyłączyć i włączyć ponownie, te pliki
nadal tam są.
Po włączeniu komputera wyłączanie i włączanie programu, program faktycznie przestaje
wykonywać i nie ma nic w baranie.
Więc zrozum różnicę między pamięcią RAM a dyskiem twardym.
To ważna koncepcja.
Ponownie pomyśl o baranie jako o pokrewnym do programowania, ponieważ dysk
twardy jest powiązany
z pamięcią trwałą i zwykle umieszczamy tam zasoby.
Będziemy mieć wszystkie pliki systemu operacyjnego różne rodzaje zasobów programowych.
Opracowano system operacyjny zasadniczo ułatwiają sobie życie, gdy chcesz korzystać
z komputera.
Ponieważ na bardzo niskim poziomie a komputer robi tylko
to, co mu każą, i to tylko instrukcje za pomocą zestawu instrukcji.
To byłoby bardzo trudne do użycia, gdybyś musiał
zrozumieć wszystkie te instrukcje.
Jest więc program o nazwie system operacyjny
ułatwiający użytkownikowi korzystanie z komputera.
Kontroluje całą operację komputera, obsługuje wszystkie wejścia i wyjścia
za pośrednictwem sprzętu, tzw rozumie, jak współdziałać
z klawiaturą, myszą, monitorem.
Zarządza również plikami komputera zasobów, obsługuje wykonywanie
różnych aplikacji.
System operacyjny to całkowicie oddzielna klasa.
Jest dużo w to system operacyjny, ale
poznaj jego podstawy.
Po prostu pozwala ci używać komputer w łatwiejszy sposób.
Kilka przykładów bardzo powszechne systemy operacyjne to takie rzeczy
jak Windows, prawda.
Wszyscy używają systemu Windows.
Windows 10,
Windows XP, niezależnie od przypadku.
Linux, UNIX, które będziemy porozmawiajmy więcej
o historii C.
Android to system operacyjny na urządzenia mobilne, iOS.
To są specyficzne programy są bardzo duże i mogą zawierać wiele różnych programów,
które mogą ze sobą współdziałać, znacznie ułatw sobie życie dzięki
interakcji z komputerem.
Cykl wykonywania pobierania.
To jest procesor cyklu życia.
Wspominam o tym tylko dlatego, znowu
opisujemy tylko podstawową terminologię.
W ten sposób wysyłasz instrukcje do komputera, procesora, to, co się
właściwie dzieje, to ty pobieranie instrukcji z pamięci,
bo to jest program.
A potem to zrobisz wykonaj to na procesorze, a to taki
rodzaj pętli robiąc to w kółko.
Powtarzasz to.
A jeśli kiedykolwiek słyszałeś o termin gigaherc, procesor gigahercowy może zrobić
około miliarda razy na sekundę, miliard instrukcji na sekundę.
Więc możesz sobie wyobrazić co się
dzieje, gdy używasz tego komputera cykl życia wykonania pobierania.
A oto mała ilustracja który wziąłem z obrazu w
Internecie, który pokazuje te efekty cykl wykonania jest nieco jaśniejszy.
Co się dzieje, kiedy wchodzisz
w interakcję z procesorem i tymi instrukcjami.
To, co się dzieje, jest chwytasz od barana.
I baranie, pamiętaj, zawiera dane programów.
Pobierasz dane tam po instrukcje.
I ciągle dekodujesz plik dane, które są przechowywane w rejestrach i pamięci
RAM, a następnie na nich wykonywane różne części CPU, jednostka
sterująca lub ALU.
To jednak pętla.
Po prostu się powtarza i w kółko.
I znowu dla dzisiejszych procesorów miliard razy na sekundę.
Więc kiedy mówimy o programach c i pisząc programy c, na bardzo
niskim poziomie, pod wszystkim, jesteśmy po prostu współdziałanie z procesorem za pośrednictwem naszego
języka programowania wyższego poziomu.
A więc wyższy poziom język programowania.
Języki programowania wyższego poziomu ułatwiają pisanie programów.
Teraz, gdybyśmy musieli ponownie, zrozum wszystkie te
instrukcje dotyczące procesora, to by być bardzo trudne do napisania.
I zrozumieć wszystkie instrukcje, co zwykle oznacza, że jest to
język asemblera.
Jeśli kiedykolwiek słyszałeś termin zgromadzenie języka, oznacza to po prostu,
że piszesz program na bardzo niskim poziomie gdzie jest to tak niski poziom,
że rozumiesz zestaw instrukcji.
I możesz sobie to wyobrazić, jeśli ty mieli napisać wszystkie
twoje programy z tymi wszystkimi instrukcjami, to byłoby bardzo nieefektywne
i bardzo trudne do napisania programu.
A więc programowanie na wyższym poziomie język jest
przeciwieństwem języka asemblera.
To znacznie wyższy poziom.
Przykładem jest c.
C to wyższy poziom język programowania.
Opisuje działania, które program będzie działał w znacznie
bardziej abstrakcyjny sposób.
Nie musisz zapamiętywać instrukcje dotyczące procesora.
Po prostu rozumiesz język i rozwiązujesz problemy za pomocą
tych algorytmów.
Wygląda o wiele bardziej jak język angielski.
O wiele łatwiej jest to zrozumieć.
Gdybyś spojrzał na plik język
asemblera, zobaczysz polecenia ruchu z rejestrami, z liczbami, w zasadzie
tylko liczbowymi instrukcjami.
I używając wyższego poziomu język taki jak c, nie musisz
się tym martwić.
Nie musisz się martwić o zestawie instrukcji.
Nie musisz się o to martwić instrukcje języka asemblera.
Więc jest znacznie bardziej wydajne i znacznie łatwiej
jest wykonywać i rozwiązywać problemy.
Więc zamierzamy uczyć się c jako naszego języki
programowania wyższego poziomu, ale inne przykłady to java, cel c, rzeczy, o których wspomniałem.
Są to programy wysokiego poziomu języki, które znacznie ułatwiają
i usprawniają życie.
Oprócz tych wyższego poziomu języki programowania, jeśli masz bardziej abstrakcyjny
język, musisz być w stanie wziąć ten język,
a następnie uruchomić go na procesorze.
Musisz go zasadniczo przekonwertować na instrukcje zrozumiałe dla procesora.
A więc tutaj jest kompilator wchodzi do gry.
Często podczas pisania kodu w programowania, będziesz używać kompilatora,
który tłumaczy ten język wysokiego poziomu, kod źródłowy
do szczegółowego instrukcje języka maszynowego, w zasadzie
język asemblera.
Więc napiszesz program, który będzie
wykonywał bardziej abstrakcyjne myślenie na wyższym poziomie.
A potem kompilator działa aby wygenerować wszystkie
miliony instrukcji, które trafiają do CPU na zestawie instrukcji.
Więc użyjemy kompilatora w tej klasie zrobić dokładnie to.
Będziemy pisać kod źródłowy w abstrakcyjna forma znacznie wyższego poziomu.
A potem przeprowadzimy program wywołał kompilator,
aby przekonwertować ten kod na coś zrozumiałe dla procesora.
A teraz kolejna rzecz o kompilatorach czy będą też sprawdzać,
czy Twój program ma prawidłową składnię.
Więc kiedy piszesz kod, Ty musisz przestrzegać
zasad języka.
Zasady języka są zasadniczo składnia, niezależnie od tego,
czy masz średnik w koniec instrukcji, niezależnie od tego,
czy używasz określonych słów kluczowych.
Jeśli robisz te rzeczy niepoprawnie, nie będziesz
w stanie uruchomić programu.
Więc kompilator znajdzie wszystkie te błędy, a poinformuje Cię
o tym i poda raport ty i powiedz,
hej, nie napisałeś poprawnie swojego
kodu, musisz napraw je, zanim faktycznie przekonwertujemy te rzeczy na instrukcja ustawiona na CPU.
Więc zaznajomimy się z kompilatorami
w sensie ogólnym, jak ich używać, jak rozumiem, co nam mówią.
Języki wysokiego poziomu to dużo łatwiejsze do nauczenia, dużo łatwiejsze w
programowaniu niż języki maszynowe.
To jest istota tego slajdu teraz jest to, że używając języka takiego jak
c, będzie znacznie bardziej wydajne i łatwiejsze.
Kiedy piszemy program, jesteśmy ma zamiar wykonać wiele,
wiele kroków.
I znalazłem tę ilustrację który naprawdę
ładnie opisuje poszczególne kroki.
Więc wziąłem to z książki.
To podstawowy zestaw kroków, kiedy piszesz dowolny program.
Od pierwszego kroku definiowania cele programu, zrozumienie
wymagań, utrzymanie i modyfikowanie programu.
Po prostu przejdźmy przez to kroki naprawdę szybko i
przekonasz się, że robisz - idziesz robić to w tej klasie.
Kiedy zaczynasz pisać program, masz zamiar
wykonać wszystkie te kroki.
Pierwszym krokiem będzie zdefiniować cele programu.
To jest miejsce, do którego się wybierasz zrozumieć wymagania.
Nie możesz zacząć pisać kodu, chyba że rozumiesz, co musisz zrobić.
Musisz więc uzyskać jasne wyobrażenie o tym, co
chcesz osiągnąć na tym etapie.
Po zrozumieniu wymagań, zaczniesz
projektować kod.
Projektując kod, w ten sposób kod będzie
spełniał wymagania.
Jaki jest interfejs użytkownika wyglądać, jeśli jest to wymagane.
Jak zamierzasz zorganizować swój program, czy
zamierzasz tworzyć różne funkcje i próbować tworzyć różne algorytmy i tak dalej.
Wtedy to zrobisz rozpocząć wdrażanie kodu.
Tutaj właśnie piszesz plik kod i umieść go w edytorze
w zintegrowanym środowisku programistycznym.
Tłumaczysz projekt na składnia języka programowania, w tym przypadku
c, rozumiem zasady języka c.
Możesz więc użyć dowolnego edytora tekstu.
Mamy zamiar użyć coś, co nazywa się zimnymi blokami.
Zazwyczaj będziesz chciał czegoś użyć więcej niż edytor tekstu, coś, co nazywa
się IDE, o którym będziemy mówić.
Gdy skończysz pisać kod, musisz go
skompilować, ponieważ musi przekonwertować go na źródło kod do języka niskiego poziomu.
Już o tym rozmawialiśmy, więc jest to dość podstawowy krok.
A potem uruchamiasz program. Uruchomienie programu to
jego wykonanie, użycie go.
A potem to się dzieje być piątym krokiem.
Po uruchomieniu programu jesteś nie zrobione, ponieważ mimo że
napisałeś kod i może on spełniać wymagań języka, może nie działać zgodnie z przeznaczeniem,
więc musisz go przetestować
i tak się stało aby znaleźć i naprawić swoje błędy.
Więc tylko dlatego, że program jest bieganie, nie oznacza, że działa.
Mam wielu studentów powiedz, hej, skompilowane, gotowe. Nie.
Musisz się o to upewnić kiedy go uruchomisz,
spełnia wymagania i robi co myślisz, że to wystarczy.
Musisz więc nieustannie testować.
I będziesz wykonywać pierwszy krok przez sześć w
kółko. Będziesz stwierdzenie,
że będziesz pisać kod, testować, pisać kod testowanie, pisanie kodu, testowanie.
I zazwyczaj, kiedy to robisz, ty chcę to zrobić w bardzo małych kawałkach.
Chcesz napisać dwa wiersze kod, test. Kolejne dwie linijki kodu, test
i tak dalej.
Musisz więc przetestować i debugować.
Debugowanie to inna koncepcja.
Będziemy mieć wiele wykładów debugowanie, ale dzieje się tak, gdy znajdujesz
i naprawiasz błędy programistyczne.
Istnieją pewne techniki może zrobić, pewne narzędzia, których możesz użyć, aby pomóc Ci
znaleźć te błędy.
Wiele się nauczysz, testując i debugowanie, ponieważ zawsze możesz się
bardzo dużo nauczyć informacje poprzez popełnianie błędów.
I to będzie normalne.
Zamierzasz skompilować i program nie
zrobi tego, co powiedziałeś, i nauczysz się z tego.
I tym właśnie jesteśmy do zrobienia w tej klasie.
Nie mam zamiaru tylko ci tego pokazać właściwy sposób robienia rzeczy.
Pokażę ci błąd sposób robienia rzeczy, a wtedy zobaczysz,
dlaczego to jest złe.
Ostatnim krokiem jest konserwacja.
To wtedy są programy wydany, a następnie używany przez
wiele osób, ale nadal może zawierać błędy.
Na przykład, gdy Windows 10 jest wydany, zauważysz, że nadal zawiera błędy
lub nadal się zawiesza.
A więc ciągle jesteś pobieranie aktualizacji.
A kiedy otrzymasz te aktualizacje, nazywa się to utrzymaniem programu.
Więc tylko dlatego, że skończyłeś pisząc kod i
udostępniając go publicznie, tak się nie dzieje oznacza, że skończyłeś go konserwować.
Konserwacja jest często najbardziej rozległa faza, najbardziej rozległy krok, ponieważ kiedy
wypuścić program, który mógłby tam być przez pięć
lub dziesięć lat.
Będziesz musiał to naprawić błędy, aby Twoi klienci byli zadowoleni.
Możesz także dodać nowe funkcje aby była aktualna na rynku.
Więc konserwacja jest naprawdę również ważne.
Konserwacja ma miejsce po tobie wydać produkt klientowi.
Więc dla wszystkich tych kroków możesz skacz dookoła, wykonuj kroki w
różnej kolejności, w zależności od tego, co metodologia programowania, to też
zupełnie inny wykład.
Nie zawsze będzie to konieczne wykonaj te kroki w podejściu kaskadowym, w którym zaczynasz
od początku i zakończyć na - koniec na ostatnim kroku.
Możesz projektować, a potem wracać i robić testy, a potem
wracać i przeprojektowywanie i tak dalej.
Więc będziesz skakał dookoła, w zależności od
tego, co jest najbardziej praktyczne.
Z mojego doświadczenia wiele nowych programiści na
wielu zajęciach w udemy ignorują kroki pierwszy i drugi i przechodząc bezpośrednio
do pisania kodu.
Pokazują ci, jak pisać kod, ale nie
pokazują, dlaczego piszesz kod.
Więc to jest duży błąd.
Kiedy zaczynasz pisać kod, ty musisz zrozumieć pojęcia,
musisz zrozumieć wymagania.
I możesz to ujść na sucho w naprawdę małych
programach, ale przy większych programach tak się stanie trzeba w pełni skupić się na projektowaniu.
Więc im większy i więcej skomplikowany program,
tym więcej wymaga planowania.
Powinieneś rozwinąć ten nawyk planowania przed kodowaniem.
Nie zanurzaj się i lecisz aby zauważyć z wykładów w
tej klasie, że dużo planuję.
Powiem ci w wyzwania, gdy zaczynasz pisać kod, który
jest potrzebny zrobić i jak to zaprojektować.
Ponieważ to się uda łatwiej jest faktycznie zaimplementować
kod, czyli krok trzeci.
Więc miej to na uwadze często może sadzić rzeczy, zapisując je
na papierze.
Jest wiele fajnych dokumentacja projektująca języki i rzeczy, których
możesz użyć.
Ale ty zawsze tego chcesz w zasadzie efektywnie planować.
A potem, kiedy ty kodujesz, ja wspomniałem
o tym wcześniej, ale to jest kolejna bardzo, bardzo ważna
koncepcja, zawsze chcesz pracować małymi krokami, dzielić i zwyciężać chcesz stale testować.
Nie chcesz pisać 100 wiersze kodu, a następnie powiedz: och,
gotowe, pozwól mi przejść test.
Bo teraz, jeśli nie działa, może wystąpić błąd w dowolnych
100 wierszach kodu.
Będzie znacznie trudniej aby rozwiązać ten problem.
Ale jeśli napiszesz kod w niewielkich ilościach fragmentów, pięć wierszy kodu, przetestuj go,
a następnie napisz kolejne pięć wierszy kodu kodu, przetestuj go, znacznie
łatwiej będzie znaleźć i naprawić błędy.
Skoncentrujmy się więc na dzieleniu i podbijaniu kiedy piszemy nasz kod w tej klasie.
Mam nadzieję, że to pomogło.
Ponownie, to tylko kilka podstaw.
Chciałem to zapewnić podstawowa terminologia.
Wielu z was może już wiedzieć wiele z tych informacji.
Ale kiedy uczysz się język programowania, musisz
zrozumieć te podstawy.
Dziękuję Ci.