Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Kurs programowania C/C++. Część 1.0 - Start w języku C

jankol-el 11 Paź 2013 20:05 18498 4
  • Kurs programowania C/C++. Część 1.0 - Start w języku C


    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

    Witam Elektrodowiczów, zarówno stałych bywalców, jak również nowych użytkowników i gości! Pragnę tworzyć i rozwijać kurs języka C/C++. Na początku poznamy podstawy języka ANSI C, ale najpierw trochę historii...

    Pod koniec lat czterdziestych ubiegłego wieku trzej naukowcy z Bell Telephone Laboratories - Walter Brattain, William Shockley, oraz John Bardeen - stworzyli pierwszy tranzystor, dzięki czemu skonstruowano pierwszy komputer oparty wyłącznie na tranzystorach: TX-O (rok 1956), potem nie było już daleko do skonstruowania przez Jacka Kilbya z Texas Instruments układu scalonego w 1958 roku. Może to się wydawać nieprawdopodobne. ale zanim powstał pierwszy układ scalony, istniał już pierwszy język wysokiego poziomu. Fortran (Formula Translator) - powstały w 1954 roku, zapoczątkował napisanie dwa lata później języka Fortran I, którego następcami były języki takie jak:
    -Algol 58 - Algorithmic Language w 1958 r.
    -Algol 60 (1960)
    -CPL - Combined Programming Language (1963)
    -BCPL - Basic CPL (1967)
    -B (1969)
    i omawiany przez nas C, który opierał się o B z 1970 roku, którego twórcą był Ken Thompson z Bell Labs. B był przeznaczony dla systemów UNIXowych, natomiast kilka z obecnie stosowanych systemów operacyjnych takich jak Linux, Microsoft Windows zostało napisanych w języku C. W 1978 roku Brian Kernighan i Dennis Ritchie opublikowali dokumentację języka C Programming Language (wydanie polskie: Język ANSI C).
    Na tym kończę historyczny wstęp. Resztę informacji można znaleźć w podanej przeze mnie literaturze.




    Zacznijmy więc! :)

    Od czego zaczniemy? Przecież gdzieś trzeba pisać programy i czymś trzeba kompilować!
    Zależy jaki system operacyjny mamy do dyspozycji. Skupię się głównie na systemie Microsoft Windows, dla systemów Linux polecam GNU g++ do którego odsyłam na gcc.gnu.org. Jeśli chodzi o użytkowników Mac OSX
    którzy pragną także rozpocząć naukę C/C++ odsyłam na stronę Eclipsa Eclipse for Mac OSX. Zaznaczę tu, że pod Windowsem także można programować w C/C++. Proszę w celu uzyskania szczegółów z instalacją, konfiguracją i uruchomieniem przeszukać sieć, jest masa stron, poradników, instrukcji. Jeśli jednak będzie taka potrzeba rozszerzę kurs o te dodatkowe informacje.
    Wracając jednak do systemu MS Windows na którym raczej większość z nas pracuje, przygodę z C/C++ zaczynałem na DevC++, którego można pobraż stąd: Dev-C++ 5.0 beta 9.2 (4.9.9.2) (9.0 MB) with Mingw/GCC 3.4.2, a oficjalna strona bloodshed.net. Sam jednak polecam gorąco Code::Blocks, należy jednak pamiętać, by pobrać środowisko wraz z kompilatorem, ale by nie szukać można stąd pobrać środowisko i kompilator (codeblocks-10.05mingw-setup.exe). Można także pobrać dla innych platform Code::Blocks, ale tego nie sprawdzałem niestety. Ja ten kurs będę opierał jednak o Code::Blocks i DevC++.
    Gdy mamy już wszystko co potrzebne, by programować zapraszam dalej!

    Jak to już w programowaniu jest, rozpoczniemy od standardowego przedstawienia programu w formie "Hello World!" (ang. Witaj Świecie!). Żeby nieco odbić od normy, pozwolę sobie tę formę zamienić na "Witaj Elektrodo!".
    Uruchamiamy nasze środowisko i tworzymy nowy projekt, po czym wybieramy "Console application", ponieważ przygodę z programowaniem rozpoczniemy pisząc aplikacje konsolowe. Ważne, by zaznaczyć, że chodzi o język C, więc odznaczamy odpowiednią pozycję. Wpisujemy nazwę, np. "Pierwszy_program", albo "Witaj_elektrodo". Mała dygresja dla tych niecierpliwych, żądnych pisania wspaniałych aplikacji okienkowych lub gier 2D/3D, otóż mam złe wieści. Musicie przejść przez "konsolę".

    Kod: c
    Zaloguj się, aby zobaczyć kod

    Niewiele może to mówić, zwłaszcza tym kompletnie początkującym, więc spieszę z wyjaśnieniami!

    Kod: c
    Zaloguj się, aby zobaczyć kod

    Ta linia kodu załącza (bo include z ang. oznacza załączać, uwzględniać) standardową bibliotekę wejścia/wyjścia stdio, dzięki której możemy wyświetlić coś na ekranie, bądź pobrać jakieś dane z klawiatury. Spokojnie, wszystko w swoim czasie, wszystko wyjaśnię i przybliżę niedługo.
    Kod: c
    Zaloguj się, aby zobaczyć kod

    W tej linii umieściłem tzw. główną funkcję programu - main (ang. główny). Wewnątrz tej funkcji mamy nawiasy klamrowe { i } które mówią kompilatorowi od kiedy do kiedy działa to co wewnątrz tej funkcji umieścimy. Właśnie! Co ja umieściłem w naszej głównej funkcji? Kolejną funkcję, która ma konkretne zadanie, czyli wypisać na ekranie zadany tekst (Witaj Elektrodo!).
    Kod: c
    Zaloguj się, aby zobaczyć kod

    To już jest instrukcją, a każda instrukcja w języku C kończona MUSI być średnikiem! To bardzo ważne!!! Jeszcze raz przypomnę -->;<--!

    Pora program skompilować, w przypadku zarówno Code::Blocks i DevC++ możemy posłużyć się menu kontekstowym i wybrać "Build and Run", bądź wcisnąć F9. Na dole mamy informacje kompilatora, jeśli prawidłowo wpisaliśmy powyższy kod, nie powinien komunikować błędów. Po procesie kompilacji ukazuje nam się okno konsoli na ułamek sekundy. Program wykonał się!
    Zaraz, zaraz! Przecież chcieliśmy, zęby wyświetlony został napis "Witaj Elektrodo!". Zapewniam, że tak się stało, ale bardzo szybko, że mogliśmy tego nie zauważyć nawet. Dlatego pozwolę sobie dodać jedną bibliotekę i pewną funkcję:

    Kod: c
    Zaloguj się, aby zobaczyć kod


    Efekt działania takiego programu:

    Kurs programowania C/C++. Część 1.0 - Start w języku C


    Spieszę się z wytłumaczeniem wdrożonych zmian! Dodałem bibliotekę conio, ale na razie wstrzymam się z wyjaśnianiem do czego ona służy, powiem tylko tyle, że w naszym przykładzie pozwala na użycie funkcji getch(), którą poznamy niebawem. W skrócie użyta tutaj jest do zatrzymania naszego ekranu dopóki nie wciśniemy jakiegokolwiek przycisku na klawiaturze. We wspomnianym przeze mnie Code::Blocks nie jest to wymagane, ponieważ na koniec wykonanego programu jest informacja która wymaga naciśnięcia dowolnego klawisza, natomiast w DevC++ w domyślnym szkielecie programu mamy do czynienia z takim oto kodem:

    Kod: c
    Zaloguj się, aby zobaczyć kod

    Dodatkowo zwróćmy uwagę na:
    Kod: c
    Zaloguj się, aby zobaczyć kod

    To co jest wewnątrz nawiasów, czyli "int argc, char *argv[]", jest nam na tym etapie kompletnie nie jasne. DevC++, automatycznie nam to wstawia. To oczywiste, ale po prostu nie skupiajmy się na tym póki co. Wracając jednak do tematu, taki program korzystając z biblioteki stdlib pozwala na korzystanie z komend wiersza poleceń systemu Windows. Dla eksperymentu proszę odpalić konsolę systemową (Wiersz poleceń) i wpisać PAUSE. Efekt będzie ten sam. Kto zna i pamięta komendy może wewnątrz funkcji system() wpisać w cudzysłowie komendę. Tutaj akurat wyświetli się tekst Aby kontynuować, naciśnij dowolny klawisz.... Co w tym przypadku pozwala na zatrzymanie ekranu do momentu wciśnięcia dowolnego klawisza. W takim przypadku wystarczy dodać wcześniej wspomnianą funkcję printf() i w cudzysłowie zawarty tekst "Witaj Elektrodo!", by uzyskać wspomniany napis na ekranie.

    Po pierwszym zetknięciu z programowaniem przyjrzyjmy się jego szkieletowi:

    Code:
    CZĘŚĆ DEKLARACJI
    
    #Deklaracja bibliotek
    #Deklaracje tzw. globalne
    #Deklaracja stałych
    #Deklaracje typów
    #Deklaracja funkcji

    CZĘŚĆ FUNKCJI / PROGRAMU GŁÓWNEGO
    typ main(typ)
    {
      TREŚĆ PROGRAMU
    }


    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
    Potrafisz napisać podobny artykuł? Wyślij do mnie a otrzymasz kartę SD 64GB.
    O autorze
    jankol-el
    Poziom 20  
    Offline 
    Specjalizuje się w: elektronika & komputery
    jankol-el napisał 549 postów o ocenie 12, pomógł 24 razy. Mieszka w mieście Okolice Zielonej Góry. Jest z nami od 2006 roku.
  • #3
    memlon
    Poziom 10  
    Przypomniały mi się moje początki z programowaniem w tym języku :) Była to absolutna podstawa ale gdy zadziałało sprawiało to niesamowitą radochę. Wkręciłem się w to i kupiłem sobie takie coś Link. Do tego trochę książek z Allegro no i oczywiście strony i blogi na temat tego języka. Powiem tyle opłaciło się, bo to co zainwestowałem zwróciło się z nawiązką.
  • #4
    damianox40
    Poziom 9  
    Witam ja mam problem ze startem ponieważ wpisując te komendy które podajecie a nawet je kopiując wyskakuje mi błąd i program nie chce wystartowac

    Dodano po 2 [minuty]:

    Kurs programowania C/C++. Część 1.0 - Start w języku C
  • #5
    autoservice
    Poziom 20  
    ANSI C - S. Prata .... a nie jakies dyrdymaly amatorow (w stosunku do ksiazki) na elektrodzie :)