C to jeden ze starszych języków programowania. Został opracowany w latach 70-tych, ale wciąż jest bardzo potężny dzięki temu, jak niski jest jego poziom. Nauka C to świetny sposób na zapoznanie się również z bardziej złożonymi językami, a zdobyta wiedza będzie przydatna w prawie każdym języku programowania i może pomóc w tworzeniu aplikacji. Aby dowiedzieć się, jak rozpocząć programowanie w języku C, zobacz krok 1 poniżej.
Kroki
Część 1 z 6: Przygotowanie
Krok 1. Pobierz i zainstaluj kompilator
Kod C musi być skompilowany przez program, który interpretuje kod na sygnały zrozumiałe dla maszyny. Kompilatory są zwykle bezpłatne, a dla różnych systemów operacyjnych dostępne są różne kompilatory.
- W systemie Windows wypróbuj Microsoft Visual Studio Express lub MinGW.
- Dla komputerów Mac XCode jest jednym z najlepszych kompilatorów C.
- W Linuksie gcc jest jedną z najpopularniejszych opcji.
Krok 2. Zrozum podstawy
C jest jednym ze starszych języków programowania i może być bardzo potężny. Został zaprojektowany dla systemów operacyjnych Unix, ale został przeniesiony i rozszerzony dla prawie wszystkich systemów operacyjnych. Nowoczesna wersja C to C++.
C zasadniczo składa się z funkcji, aw tych funkcjach można używać zmiennych, instrukcji warunkowych, pętli do przechowywania i manipulowania danymi
Krok 3. Sprawdź podstawowy kod
Rzuć okiem na (bardzo) podstawowy program poniżej, aby mieć dobre pojęcie o tym, jak niektóre z różnych aspektów języka współpracują ze sobą i jak działają programy.
#include int main() { printf("Witaj świecie!\n"); getchar(); zwróć 0; }
- Polecenie #include występuje przed uruchomieniem programu i ładuje biblioteki zawierające potrzebne funkcje. W tym przykładzie stdio.h pozwala nam na użycie funkcji printf() i getchar().
- Polecenie int main() mówi kompilatorowi, że program uruchamia funkcję o nazwie „main” i że po jej zakończeniu zwróci liczbę całkowitą. Wszystkie programy w C uruchamiają "główną" funkcję.
- {} wskazuje, że wszystko w nich jest częścią funkcji. W tym przypadku oznaczają one, że wszystko w środku jest częścią funkcji „głównej”.
- Funkcja printf() wyświetla zawartość nawiasów na ekranie użytkownika. Cytaty zapewniają, że łańcuch wewnątrz jest drukowany dosłownie. Sekwencja \n mówi kompilatorowi, aby przeniósł kursor do następnej linii.
- Ten; oznacza koniec wiersza. Większość linii kodu C musi kończyć się średnikiem.
- Polecenie getchar() mówi kompilatorowi, aby przed przejściem dalej czekał na wciśnięcie klawisza. Jest to przydatne, ponieważ wiele kompilatorów uruchomi program i natychmiast zamknie okno. Dzięki temu program nie zostanie zakończony do momentu naciśnięcia klawisza.
- Polecenie return 0 wskazuje koniec funkcji. Zauważ, że funkcja "main" jest funkcją int. Oznacza to, że po zakończeniu programu będzie potrzebna liczba całkowita, która zostanie zwrócona. „0” oznacza, że program wykonał się poprawnie; każda inna liczba będzie oznaczać, że program napotkał błąd.
Krok 4. Spróbuj skompilować program
Wprowadź kod do edytora kodu i zapisz go jako plik "*.c". Skompiluj go w swoim kompilatorze, zwykle klikając przycisk Kompiluj lub Uruchom.
Krok 5. Zawsze komentuj swój kod
Komentarze są częścią kodu, który nie jest kompilowany, ale pozwala wyjaśnić, co się dzieje. Jest to przydatne do przypominania sobie, do czego służy Twój kod, i pomagania innym programistom, którzy mogą przeglądać Twój kod.
- Aby skomentować w C umieść /* na początku komentarza i */ na końcu.
- Skomentuj wszystkie oprócz najbardziej podstawowych części kodu.
- Komentarze mogą służyć do szybkiego usuwania części kodu bez ich usuwania. Po prostu umieść kod, który chcesz wykluczyć, tagami komentarza, a następnie skompiluj. Jeśli chcesz dodać kod z powrotem, usuń tagi.
Część 2 z 6: Używanie zmiennych
Krok 1. Zrozum funkcję zmiennych
Zmienne umożliwiają przechowywanie danych pochodzących z obliczeń w programie lub z danych wejściowych użytkownika. Zmienne należy zdefiniować, zanim będzie można ich użyć, a do wyboru jest kilka typów.
Niektóre z bardziej popularnych typów zmiennych to int, char i float. Każdy z nich przechowuje inny rodzaj danych
Krok 2. Dowiedz się, jak deklarowane są zmienne
Zmienne muszą zostać ustalone lub „zadeklarowane”, zanim będą mogły być używane przez program. Zmienną deklarujesz, wprowadzając typ danych, a następnie nazwę zmiennej. Na przykład, wszystkie poprawne deklaracje zmiennych są następujące:
pływak x; nazwa znaku; int a, b, c, d;
- Zauważ, że możesz zadeklarować wiele zmiennych w tym samym wierszu, o ile są tego samego typu. Po prostu oddziel nazwy zmiennych przecinkami.
- Jak wiele wierszy w C, każdy wiersz deklaracji zmiennej musi kończyć się średnikiem.
Krok 3. Dowiedz się, gdzie deklarować zmienne
Zmienne muszą być zadeklarowane na początku każdego bloku kodu (części kodu, które są ujęte w nawiasy {}). Jeśli spróbujesz zadeklarować zmienną w dalszej części bloku, program nie będzie działał poprawnie.
Krok 4. Użyj zmiennych do przechowywania danych wprowadzonych przez użytkownika
Teraz, gdy znasz już podstawy działania zmiennych, możesz napisać prosty program, który będzie przechowywał dane wejściowe użytkownika. Będziesz korzystać z innej funkcji w programie, zwanej scanf. Ta funkcja przeszukuje dane wejściowe pod kątem określonych wartości.
#include int main() { int x; printf("Wprowadź liczbę: "); scanf("%d", &x); printf("Wpisałeś %d", x); getchar(); zwróć 0; }
- Ciąg „%d” mówi scanf, aby szukał liczb całkowitych w danych wejściowych użytkownika.
- Znak & przed zmienną x mówi scanf, gdzie znaleźć zmienną, aby ją zmienić, i przechowuje liczbę całkowitą w zmiennej.
- Ostatnie polecenie printf odczytuje z powrotem wejściową liczbę całkowitą do użytkownika.
Krok 5. Manipuluj zmiennymi
Za pomocą wyrażeń matematycznych można manipulować danymi przechowywanymi w zmiennych. Najważniejszym rozróżnieniem, o którym należy pamiętać w przypadku wyrażeń matematycznych, jest to, że pojedyncza = ustawia wartość zmiennej, podczas gdy == porównuje wartości po obu stronach, aby sprawdzić, czy są równe.
x = 3 * 4; /* ustawia "x" na 3 * 4 lub 12 */ x = x + 3; /* dodaje 3 do pierwotnej wartości "x" i ustawia nową wartość jako zmienną */ x == 15; /* sprawdza, czy "x" równa się 15 */ x < 10; /* sprawdza czy wartość "x" jest mniejsza niż 10 */
Część 3 z 6: Używanie instrukcji warunkowych
Krok 1. Zrozum podstawy instrukcji warunkowych
Instrukcje warunkowe napędzają większość programów. Są to stwierdzenia, które są określane jako PRAWDA lub FAŁSZ, a następnie działają na podstawie wyniku. Najbardziej podstawowym ze stwierdzeń jest instrukcja if.
PRAWDA i FAŁSZ działają w C inaczej niż to, do czego jesteś przyzwyczajony. Instrukcje TRUE zawsze kończą się liczbą niezerową. Podczas wykonywania porównań, jeśli wynik jest PRAWDA, zwracana jest wartość „1”. Jeśli wynik jest FAŁSZ, zwracane jest „0”. Zrozumienie tego pomoże Ci zobaczyć, jak przetwarzane są instrukcje IF
Krok 2. Naucz się podstawowych operatorów warunkowych
Instrukcje warunkowe opierają się na użyciu operatorów matematycznych porównujących wartości. Poniższa lista zawiera najczęściej używane operatory warunkowe.
/* większe niż */ < /* mniejsze niż */ >= /* większe lub równe */ <= /* mniejsze lub równe */ == /* równe */ != /* nie równe do */
10 > 5 POPRAWDA 6 < 15 POPRAWDA 8 >= 8 POPRAWDA 4 <= 8 POPRAWDA 3 == 3 POPRAWDA 4 != 5 POPRAWDA
Krok 3. Napisz podstawową instrukcję IF
Za pomocą instrukcji JEŻELI można określić, co program powinien zrobić po ocenie instrukcji. Możesz później połączyć go z innymi instrukcjami warunkowymi, aby utworzyć wiele potężnych opcji, ale na razie napisz prostą, aby się do nich przyzwyczaić.
#include int main() { if (3 < 5) printf("3 to mniej niż 5"); getchar(); }
Krok 4. Użyj instrukcji ELSE/ELSE IF, aby rozwinąć swoje warunki
Możesz budować na instrukcjach JEŻELI, używając instrukcji ELSE i ELSE IF do obsługi różnych wyników. Instrukcje ELSE są uruchamiane, jeśli instrukcja IF ma wartość FALSE. Instrukcje ELSE IF umożliwiają uwzględnienie wielu instrukcji IF w jednym bloku kodu w celu obsługi różnych przypadków. Zobacz przykładowy program poniżej, aby zobaczyć, jak współdziałają.
#include int main() { int wiek; printf("Proszę podać swój obecny wiek: "); scanf("%d", &wiek); if (wiek <= 12) { printf("Jesteś tylko dzieckiem!\n"); } else if (wiek < 20) { printf("Bycie nastolatkiem jest całkiem fajne!\n"); } else if (wiek < 40) { printf("Wciąż jesteś młody duchem!\n"); } else { printf("Z wiekiem przychodzi mądrość.\n"); } zwróć 0; }
Program pobiera dane wejściowe od użytkownika i przeprowadza je przez instrukcje IF. Jeśli liczba spełnia pierwszą instrukcję, zwracana jest pierwsza instrukcja printf. Jeśli nie spełnia warunków pierwszej instrukcji, przechodzi przez każdą instrukcję ELSE IF, dopóki nie znajdzie takiej, która działa. Jeśli nie pasuje do żadnego z nich, przechodzi przez instrukcję ELSE na końcu
Część 4 z 6: Pętle uczenia się
Krok 1. Zrozum, jak działają pętle
Pętle są jednym z najważniejszych aspektów programowania, ponieważ pozwalają na powtarzanie bloków kodu, dopóki nie zostaną spełnione określone warunki. Może to sprawić, że powtarzające się akcje będą bardzo łatwe do zaimplementowania i nie będziesz musiał pisać nowych instrukcji warunkowych za każdym razem, gdy chcesz, aby coś się wydarzyło.
Istnieją trzy główne typy pętli: FOR, WHILE i DO…WHILE
Krok 2. Użyj pętli FOR
Jest to najpopularniejszy i najbardziej użyteczny typ pętli. Funkcja będzie działała do momentu spełnienia warunków ustawionych w pętli FOR. Pętle FOR wymagają trzech warunków: inicjowania zmiennej, warunku, który ma zostać spełniony, oraz sposobu aktualizacji zmiennej. Jeśli nie potrzebujesz wszystkich tych warunków, nadal będziesz musiał zostawić puste miejsce ze średnikiem, w przeciwnym razie pętla będzie działać w nieskończoność.
#include int main() { int y; for (y = 0; y < 15; y++;){ printf("%d\n", y); } getchar(); }
W powyższym programie y jest ustawione na 0, a pętla trwa tak długo, jak długo wartość y jest mniejsza niż 15. Za każdym razem, gdy wypisywana jest wartość y, do wartości y dodawane jest 1 i pętla się powtarza. Gdy y = 15, pętla się zerwie
Krok 3. Użyj pętli WHILE
Pętle WHILE są prostsze niż pętle FOR. Mają tylko jeden warunek, a pętla działa tak długo, jak ten warunek jest prawdziwy. Nie musisz inicjować ani aktualizować zmiennej, chociaż możesz to zrobić w głównej części pętli.
#include int main() { int y; while (y <= 15){ printf("%d\n", y); y++; } getchar(); }
Polecenie y++ dodaje 1 do zmiennej y za każdym razem, gdy wykonywana jest pętla. Gdy y osiągnie 16 (pamiętaj, że pętla działa tak długo, jak y jest mniejsze lub równe 15), pętla się kończy
Krok 4. Użyj DO
.. Podczas pętli.
Ta pętla jest bardzo przydatna w przypadku pętli, które chcesz zapewnić przynajmniej raz. W pętlach FOR i WHILE warunek jest sprawdzany na początku pętli, co oznacza, że nie może przejść i zawieść natychmiast. Pętle DO…WHILE sprawdzają warunki na końcu pętli, upewniając się, że pętla zostanie wykonana przynajmniej raz.
#include int main() { int y; y = 5; do { printf("Ta pętla działa!\n"); } while (y != 5); getchar(); }
- Ta pętla wyświetli komunikat, nawet jeśli warunek jest FALSE. Zmienna y jest ustawiona na 5, a pętla WHILE jest uruchamiana, gdy y nie jest równe 5, więc pętla się kończy. Wiadomość została już wydrukowana, ponieważ warunek nie jest sprawdzany do końca.
- Pętla WHILE w zestawie DO…WHILE musi być zakończona średnikiem. Jest to jedyny przypadek, w którym pętla kończy się średnikiem.
Część 5 z 6: Korzystanie z funkcji
Krok 1. Zrozum podstawy funkcji
Funkcje to samodzielne bloki kodu, które mogą być wywoływane przez inne części programu. Ułatwiają powtarzanie kodu i ułatwiają czytanie i zmianę programu. Funkcje mogą obejmować wszystkie wcześniej omówione techniki poznane w tym artykule, a nawet inne funkcje.
- Wiersz main() na początku wszystkich powyższych przykładów jest funkcją, podobnie jak getchar()
- Funkcje są niezbędne do wydajnego i łatwego do odczytania kodu. Dobrze wykorzystaj funkcje, aby usprawnić swój program.
Krok 2. Zacznij od konspektu
Funkcje najlepiej tworzy się, gdy nakreślasz, co chcesz, aby wykonały, zanim zaczniesz właściwe kodowanie. Podstawową składnią funkcji jest „nazwa typ_zwrotu (argument1, argument2 itd.);”. Na przykład, aby utworzyć funkcję, która dodaje dwie liczby:
int dodaj (int x, int y);
Spowoduje to utworzenie funkcji, która dodaje dwie liczby całkowite (x i y), a następnie zwraca sumę jako liczbę całkowitą
Krok 3. Dodaj funkcję do programu
Konspektu można użyć do stworzenia programu, który pobiera dwie liczby całkowite wprowadzone przez użytkownika, a następnie dodaje je do siebie. Program zdefiniuje sposób działania funkcji „dodaj” i użyje jej do manipulowania liczbami wejściowymi.
#include int dodaj (int x, int y); int main() { int x; int y; printf("Wprowadź dwie liczby do dodania: "); scanf("%d", &x); scanf("%d", &y); printf("Suma twoich liczb to %d\n", add(x, y)); getchar(); } int add (int x, int y) { return x + y; }
- Zauważ, że kontur nadal znajduje się na górze programu. Mówi to kompilatorowi, czego się spodziewać po wywołaniu funkcji i co zwróci. Jest to konieczne tylko wtedy, gdy chcesz zdefiniować funkcję później w programie. Możesz zdefiniować add() przed funkcją main(), a wynik byłby taki sam bez obrysu.
- Rzeczywista funkcjonalność funkcji jest zdefiniowana na dole programu. Funkcja main() zbiera liczby całkowite od użytkownika, a następnie wysyła je do przetworzenia funkcji add(). Funkcja add() następnie zwraca wyniki do main()
- Teraz funkcja add() została zdefiniowana, można ją wywołać w dowolnym miejscu programu.
Część 6 z 6: Kontynuacja nauki
Krok 1. Znajdź kilka książek o programowaniu w C
Ten artykuł obejmuje podstawy, ale tylko zarysowuje powierzchnię programowania w C i całą związaną z nim wiedzę. Dobra książka informacyjna pomoże Ci rozwiązać problemy i uchroni Cię przed wieloma bólami głowy w przyszłości.
Krok 2. Dołącz do niektórych społeczności
Istnieje wiele społeczności, zarówno internetowych, jak i rzeczywistych, poświęconych programowaniu i wszystkim związanym z tym językom. Znajdź kilku podobnie myślących programistów C, z którymi możesz wymienić kod i pomysły, a wkrótce przekonasz się, że dużo się nauczysz.
Weź udział w hack-a-thonach, jeśli to możliwe. Są to wydarzenia, w których zespoły i jednostki mają ograniczenia czasowe na opracowanie programów i rozwiązań, a często sprzyjają kreatywności. W ten sposób można spotkać wielu dobrych programistów, a hack-a-thony odbywają się regularnie na całym świecie
Krok 3. Weź udział w zajęciach
Nie musisz wracać do szkoły, aby uzyskać dyplom z informatyki, ale wzięcie kilku zajęć może zdziałać cuda w nauce. Nic nie przebije praktycznej pomocy osób dobrze obeznanych z językiem. Często można znaleźć zajęcia w lokalnych centrach społeczności i gimnazjach, a niektóre uniwersytety pozwalają na audyt ich programów informatycznych bez konieczności zapisywania się.
Krok 4. Rozważ naukę C++
Kiedy już opanujesz C, nie zaszkodzi zacząć przyglądać się C++. Jest to bardziej nowoczesna wersja C i zapewnia znacznie większą elastyczność. C++ został zaprojektowany z myślą o obsłudze obiektów, a znajomość C++ może umożliwić tworzenie potężnych programów dla praktycznie każdego systemu operacyjnego.
Porady
- Zawsze dodawaj komentarze do swoich programów. Pomaga to nie tylko innym osobom, które mogą przyjrzeć się jego kodowi źródłowemu, ale także pomaga zapamiętać, co piszesz i dlaczego. Możesz wiedzieć, co robisz w momencie pisania kodu, ale po dwóch lub trzech miesiącach niewiele będziesz pamiętał.
- Zawsze pamiętaj, aby zakończyć instrukcje takie jak printf(), scanf(), getch() itp. średnikiem (;), ale nigdy nie wstawiaj ich po instrukcjach sterujących, takich jak pętle „if”, „while” lub „for”.
- W przypadku napotkania błędu składni podczas kompilacji, jeśli masz problem, wyszukaj w Google (lub innej wyszukiwarce) otrzymany błąd. Możliwe, że ktoś już doświadczył tego samego problemu i opublikował rozwiązanie.
- Twój kod źródłowy musi mieć rozszerzenie *.c, aby twój kompilator mógł zrozumieć, że jest to plik źródłowy C.
- Zawsze pamiętaj, że praktyka czyni mistrza. Im więcej ćwiczysz w pisaniu programu, tym lepiej sobie z tym radzisz. Więc zacznij od prostych, krótkich programów, dopóki nie uzyskasz podstaw, a gdy będziesz już pewien, możesz przejść do bardziej złożonych.
- Spróbuj nauczyć się budowania logiki. Pomaga rozwiązywać różne problemy podczas pisania kodu.