Hello World

printf scanf C/C++

Witaj świecie! Czyli pierwszy program

Skoro masz już wybrany kompilator to możemy wziąć się za tworzenie programów chodź domyślnie zrobiłeś to już nieświadomie. Istnieje niepisana tradycja o tym żeby pierwszy program wyświetlał na ekranie „Hello Word” dlatego też wiele kompilatorów robi to domyślnie. Zależności od tego na jaki edytor tekstu się zdecydowałeś uruchamia się go inaczej (zazwyczaj jest to F5 lub inny klawisz funkcyjny ewentualnie przeznaczony do tego przycisk w interfejsie programu). Zanim zaczniemy powiem Ci jak będzie to wyglądać. Zawsze we fragmencie kodu będę starał się na bieżąco tłumaczyć daną linijkę. Będę do tego używać „komentarzy” czyli „//” Ty również możesz z nich korzystać podczas programowania. Następnie będę objaśniał bardziej szczegółowo pewne kwestie. Zaczynajmy przygodę z printf scanf c/c++

Instrukcje wejścia i wyjścia

Są to instrukcje przeznaczone do wypisania zawartości na ekranie (wyjście) i instrukcja wczytania z klawiatury (wejścia). Potrzebna będzie do tego biblioteka stdio.h spójrz na kod poniżej.

Instrukcja wyjścia printf();

#include <stdio.h> //biblioteka wejścia i wyjścia 

int main() //główna funkcja w programie 
{ 
printf("Hello World"); //wypisanie na ekranie napisu Hello World 

return 0; //zakończenie programu 
}

Pierwszą linijką w kodzie jest „podpięcie” biblioteki, odpowiada za nie słowo #include (z angielskiego przyłączenie). Każdy program zaczyna się od przyłączenia bibliotek które są potrzebne do jego funkcjonowania. Na razie nie ma potrzeby abyś zaprzątał sobie tym głowę, dowiesz się więcej o tym w DODATKU A.
Następnie możemy zauważyć „int main()„. Jest to główna funkcja naszego programu, to w jej „ciele” (czyli pomiędzy klamrami {…}) dzieje się magia programowania.  W języku C ważne jest aby każda funkcja miała klamrę otwierającą i zamykającą tak jak ma to miejsce w naszym programie. Pomaga to w zachowaniu czytelności i porządku.
Teraz możemy skupić się na „printf(„Hello World”);„. Jest to funkcja która należy do biblioteki stdio.h (teraz już wiesz po co ją przyłączyliśmy). Jak każda funkcja składa się z nazwy i nawiasów, chodź brzmi to skomplikowanie to nie przejmuj się. W okrągłych nawiasach zawsze wpisujemy argument/parametr funkcji w tym przypadku jest to Hello World. Napis jest w cudzysłowie po to aby komputer miał pewność gdzie się zaczyna i kończy. Funkcja printf() służy oczywiście do pisania na ekranie komputera.
Na końcu znajduje się tajemniczy zwrot „return 0;„. Znaczy to „zwróć 0” co dla komputera (jako maszyny zero jedynkowej) jest jasnym komunikatem aby skończyć działanie w tym przypadku funkcji głównej ponieważ to w jej ciele znajduje się ten zwrot.
Jak zauważyłeś każda linijka kodu kończy się ; jest to komunikat dla komputera że w tym miejscu kończy się linijka i należy przejść do kolejnej. Średnik jest wymagany w języku C i będzie on stanowił 90% błędów w kodzie (a w zasadzie jego brak). Wyjątkiem jest przyłączenie biblioteki i funkcja main.

Instrukcja wejścia scanf();

#include <stdio.h> 

int main() 
{ 
printf("Ile masz lat? "); //standardowe użycie printf 
int wiek; //tworzymy zmienną typu int o nazwie wiek 
scanf("%d", &wiek); //wczytujemy z klawiatury wartość liczbową do zmiennej wiek 
printf("Masz %d lat", wiek); //wypisujemy zdanie i zmienną wiek 

return 0; 
}

 

Jak widzisz w tym przykładzie pojawiło się wiele nowych rzeczy. To jak działa funkcja pirntf już wiesz, w jej pierwszym użyciu wypisała na ekranie „Ile masz lat?  „. Użycie takie same jak w poprzednim przykładzie tylko napis inny.
Następnie jest krótka instrukcja „int wiek;” w ten sposób tworzy się zmienne. Instrukcja składa się z dwóch słów pierwszym jest int czyli typ zmiennej (liczby całkowite od słowa integer) a potem nazwa zmiennej w tym przypadku jest to słowo wiek. Nazwa zmiennej może być dowolna (poza słowami kluczowymi dla danego języka programowania np float, dobule itp) to programista ją ustala. Oczywiście jest więcej typów zmiennych i każdy typ ma swoje własne zastosowanie.
Skupmy się  na „scanf(„%d”, &wiek);” jest to funkcja bardzo podobna do printf ale służy do wczytania danych z klawiatury. Jak już zauważyłeś ma ona dwa parametry. Pierwszy „%d” jest informacją dla komputera że wczytywana zmienna jest zapiana w systemie dziesiętnym (pierwsza litera od słowa decimal czyli dziesiętny). Drugi parametr wskazuje „miejsce” gdzie ma być zapisana podana wartość. Jak widać ma być ona zapisana w zmiennej wiek. Pamiętaj aby zawsze używać symboli %& są one nierozłączną częścią funkcji scanf(). Więcej o zmiennych i symbolach w DODATKU A.
Na końcu jest znowu printf zwróć uwagę na to że teraz ta funkcja ma dwa parametry. Pierwszym jest łańcuch znaków (czyli to wszystko co jest w cudzysłowie) a w nim „%d”. W tym przypadku oznacza miejsce w którym zmienna ma być wyświetlona. Po przecinku jako drugi parametr jest nazwa zmiennej, której to wartość będzie pokazana w miejsce „%d”. W efekcie na ekranie monitora widzimy „Masz (zmienna wprowadzona przez użytkownika) lat. Zachęcam Cię do wypróbowania tego i modernizacji tak aby przyswoić sobie wiedzę i nowe umiejętności. Dodam tylko że zarówno printf jak i scanf mogą mieć wiele argumentów.

Rozbudowany przykład użycia printf i scanf

#include <stdio.h>

int main()
{
    int bokA, bokB; //tworzymy dwie zmienne typu int bokA i bokB
    printf("Podaj dlugosc bokow prostokata: ");
    scanf("%d %d", &bokA, &bokB); //od razu pobieramy dwie zmienne
    printf("Pierwszy bok wynosi %d", bokA); //wypisujemy jedną zmienną
    printf("\nDrugi bok wynosi %d", bokB); //robimy do jeszcze raz 
    int pole = bokA*bokB; //tworzymy zmienną pole typu int i nadajemy jej wartosc
    printf("\nA ich pole rowna sie: %d * %d czyli %d", bokA,bokB,pole); //wypisujemy 3 zmienne jednoczesnie
    

    return 0;
}

Na zakończenie troszeczkę bardziej rozbudowany przykład. Pierwsze co robimy to tworzymy dwie zmienne typu int o nazwach bokA i bokB. Jak widzisz możemy tworzyć kilka zmiennych za jednym zamachem, nic nas nie ogranicza. Pamiętaj aby ich nazwy oddzielić przecinkiem.
Później jest standardowa instrukcja printf a następnie scanf. Tym razem posiada ona więcej argumentów. „%d %d” jest to informacja dla komputera żeby spodziewać się dwóch liczb oddzielonych od siebie spacją. Jeżeli zapis wyglądałby tak „%d@%d” liczby należałoby podać w taki sposób 10@5 (przykładowe wartości). Oczywiście nie należy tego robić a jeżeli jest to już konieczne warto poinformować o tym użytkownika. Korzystając oczywiście z instrukcji printf. Następnie po przecinku są „adresy” gdzie podane przez użytkownika wartości mają zostać zapisane. Pamiętaj że do tego służy wcześniej wspomniany symbol &.
Następnie znowu korzystamy z funkcji printf. Tak jak to miało miejsce w poprzednim fragmencie kodu. Pod spodem jest bardzo podobna instrukcja. Jednak tym razem na samym początku jest symbol \n. Komputer nie wypisuje go na ekranie jest to informacja aby przejść do nowej linii przed wypisaniem treści. Warto korzystać z tego ponieważ dzięki temu komunikaty które wypisujemy na ekranie są czytelne. Te dwie linijki kodu wypisały na ekranie ile wynosi długość bokA oraz bokB.
Tutaj pojawia się pewna nowość. Tworzymy zmienną typu int o nazwie pole i od razu nadajemy jej wartość a właściwie to obliczamy. Korzystając ze znaku dzielenia czyli oczywiście możemy korzystać również z innych znaków arytmetycznych. Poniżej lista podstawowych

Dodawanie +
Odejmowanie
Mnożenie *
Dzielenie /
Reszta z dzielenia %

Na koniec wypisanie 3 zmiennych w jednym printf zwróć uwagę na „%d” oraz kolejność nazw zmiennych po przecinku. Ma to znaczenie. Mam nadzieję że ten natłok informacji nie zniechęcił Cię do dalszego działania. Prześpij się z tym i przyswój sobie wszystkie informacje na spokojnie. Stopniowo będzie wdrażać nowe rzeczy a te które poznałeś dziś cały czas będziemy utrwalać.

Podsumowanie

Pamiętaj że zaczynając przygodę z programowanie kompilator wciąż będzie zwracał Ci uwagę że popełniłeś błąd. Nie zniechęcaj się tym język C jest naprawdę trudnym wyborem i wymaga dużego skupienia. Popełnione błędy najprawdopodobniej wynikają z faktu że zapomniałeś dać średnika na końcu instrukcji. Korzystając z printf używaj cudzysłowia jak chcesz wypisać łańcuch znaków (zdanie mówiąc potocznie). Korzystając z scanf pamiętaj że % poprzedza typ zmiennej w naszym przypadku było to „%d” on również jest w cudzysłowie. Wczytując zmienną używaj & przed jej nazwą jest to konieczne. Nie zapominaj o klamrach funkcji main i o tym że ostatnią linijką programu powinna być instrukcja return 0. Korzystaj z podanych fragmentów kodu to własnej analizy aby łatwiej przyswoić sobie zdobytą wiedzę. Powodzenia!