
Kurs:
Część 1.0 - Start w języku C
Część 1.1 - Typy danych i zmienne
Część 1.2 - Tablice i wskaźniki
Część 1.3 - Operatory
Część 1.4 - Instrukcje i pętle
W tej części przechodzimy do typów danych, oraz zmiennych. Komputer musi wiedzieć z czym ma do czynienia. Jeśli nam ktoś poda jakąś liczbę, literę, słowo jakoś je sobie kwalifikujemy. Jeśli ktoś każe nam zapamiętać jakąś literę, albo podać następną z jakiegoś wyrazu to tak też uczynimy. Nie podamy cyfry, jeśli ktoś pytał nas o literę. Typy zmiennych to jakby takie metki do danych, by komputer mógł rozróżnić z czym ma do czynienia i pomiędzy jakie miejsca w pamięci ma je umieścić.
W C mamy typy:
-podstawowe: typy znakowe, całkowite i rzeczywiste
-pochodne: wskaźnikowe, tablice, struktury, unie.
Typy i zmienne całkowite
Rozmiary zmiennych danego typu
Użycie powyższych typów w połączeniu z signed, unsigneddaje, short i long daje nam różne możliwości
Typy i zmienne rzeczywiste
Pisząc program deklarujemy sobie zmienną wybranego typu, nazywamy ją jak chcemy z pewnym "ale". Nasz język ma zarezerwowane słowa kluczowe, oto one:
Kod: C / C++
Nazwy zmiennych nie mogą zaczynać się od cyfr i nie mogą mieć nazwy takiej jak słowa kluczowe powyżej. Wielkość liter ma znaczenie, bo gdyby napisać któreś ze słów powyżej zaczynając od wielkiej litery, kompilator nie zaprotestuje.
Podczas pisania programu możemy chcieć zaznaczyć sobie kila rzeczy, opisać, skomentować, czyli wstawić komentarz. Komentarz wygląda tak:
Kod: C / C++
Czyli używając połączenia /*, czyli slasha (slesza) i gwiazdki rozpoczynamy komentarz, a */, czyli gwiazdką i slashem kończymy. Jest jeszcze jedna możliwość komentowania kodu, która nie wchodzi w skład standardu ANSI, ale z powodzeniem można go używać, mianowicie //, czyli dwa slashe. Ta metoda pozwala na skomentowanie jednej linijki, dlatego nie kończymy jej, bo od momentu wstawienia jej w tekst kodu do końca tej linijki kompilator nie bierze stamtąd nic pod uwagę.
Kod: C / C++
Znając już tyle rzeczy, możemy zrobić coś więcej. Spróbujmy więc napisać prosty program, który zapyta o coś użytkownika, ten odpowie, po czym program wyświetli wszystko na ekranie.
Kod: C / C++
Zwracam tutaj uwagę, że komentarze można zamiennie pisać obiema metodami. Z tym, że jak na tym przykładzie widać, duża ilość komentarzy strasznie wpływa na czytelność, a przecież niby po to istnieje możliwość pisania komentarzy, by wyjaśniać co, gdzie i jak! Jednak warto po prostu czytelnie pisać program, by nie używać zbyt wiele komentarzy. Pojawiają się tu kolejne nowości, które już wyjaśniam, tylko sprawię, by tekst był bardziej przejrzysty.
Kod: C / C++
Sprawa ma się tak:
1. Tutaj zdefiniowaliśmy zmienną (sprawiliśmy, że coś co nazywa się wiek, ma swoje miejsce w pamięci i jest traktowane jako liczba całkowita)
2. Tu już wcześniej poznana funkcja która wyświetla nam treść na ekranie, ale z pewną nowością, czyli "\n". Jest to tzw. stała znakowa. Ta konkretnie odpowiedzialna jest za tworzenie nowej linii. Wszystko co jest po "/n" wyświetla się od nowej linijki. Przykłady takich specjałów:
\n - nowa linia
\t - tabulator poziomy (zwykły)
\b - backspace
\r - powrót karetki
\v - tabulator pionowy
\a - sygnał alarmu (zwykle systemowy buzzer, ale u mnie w laptopie dźwięk wydobywa się z głośników)
\f - nowa strona
%% - wypisanie znaku % (wyjątkowo nie /%, jest to wyjątek)
\' - apostrof
\" - cudzysłów
\? - znak ?
\\ - znak \
Poniższe jeszcze będą rozjaśniane:
\x - kod ASCI w systemie szesnastkowym
\o - kod ASCI w systemie ósemkowym
3. Kolejne "cuda". Nic strasznego. Jest to funkcja pobierająca dane z klawiatury. Wewnątrz niej (w nawiasie), mamy w cudzysłowie zawarte "%d". Jest to informacja dla programu, jakiego typu danych wprowadzanych ma się spodziewać. W tym przypadku typu całkowitego.
Po takim kodzie, zamykamy cudzysłów i po przecinku wypisujemy zmienne, które poprzedza taki "&" znaczek, jest to tzw. ampersand. Jest to operator (o tym wkrótce) który ma za zadanie wyciągnąć adres zmiennej. Tak jakby zapytał zmienną, gdzie jest usadowiona w pamięci, by to co użytkownik podał można było w te miejsce wstawić. Trzeba o tym pamiętać. Więc zapamiętajmy schemat funkcji scanf()
Kod: C / C++
Radzę sprawdzić co stanie się i pominąć &. Tak dla testu, może się przydać taka próba, gdy kiedyś jednak zapomnimy i będziemy buszować w kodzie, by znaleźć gdzie wdarł się błąd. Mi na początku też zdarzało się zapomnieć i czasem stracić kilka minut na szukanie błędu.
4. Tu wyświetlamy tekst i wpisaną przez nas wartość. Powinno być już jasne po co jest tutaj "%d". Określa w którym miejscu w tekstu ma być wyświetlona liczba dziesiętna (%d - int). Po przecinku już bez ampersanda mamy nazwę naszej zmiennej. Gdy wpiszemy jednak & przed nazwą zmiennej, nasz komputer nie wybuchnie. Otrzymamy tajemniczy kod, który niestety nie jest tajnym kodem zdradzającym pozycję skarbu templariuszy. Jest to zwyczajnie adres naszej zmiennej o którym już wspominałem.
5. Też jest znana ta linia kodu, ale przypominam. To zatrzyma nasz ekran do momentu naciśnięcia dowolnego przycisku, trzeba pamiętać, że MUSI być zadeklarowana biblioteka "stdlib.h", bez tego... Tu też polecam sprawdzić co będzie nam mówił kompilator, dzięki temu, gdy zapomnimy jednak o tym, będziemy pamiętali co i jak po takim eksperymencie.
Kod: C / C++
Ważną kwestią są takie pojęcia jak deklaracja, definicja i inicjalizacja.
Deklaracja to mówiąc prosto i zrozumiale dla wszystkich, informacja dla kompilatora, że zmienna o jakiejś podanej przez programistę nazwie już istnieje i nie pozwala nam na tworzenie dubli. Natomiast nie istnieje jeszcze w pamięci komputera, ale znana jest jej nazwa, oraz typ. Definicja jest to z kolei rezerwacja miejsca w pamięci na naszą zmienną, która wcześniej musiała być zadeklarowana. Inicjalizacja to po prostu nadanie tej zmiennej konkretnej wartości.
To na tyle w tej części. Radzę czasem zaglądać w przeczytane już materiały, bo kurs rozwija się na bieżąco. Dodaję niekiedy jakieś szczegóły, poprawiam drobne błędy.
Literatura:
-Język ANSI C. Programowanie. Wydanie II
Autorzy: Brian W. Kernighan, Dennis M. Ritchie
-Symfonia C++ Standard. Tom 1-2. Wydanie III
Autor: Jerzy Grębosz
-Czysty kod. Podręcznik dobrego programisty
Autor: Robert C. Martin
Fajne? Ranking DIY
