C++ kurs podstawy programowania. Zmienne. Typy danych.

Tworząc programy komputerowe często musimy zapisywać (zapamiętać) różne dane, które w dalszej części będziemy wykorzystywali do różnych celów np. proste równanie matematyczne a+b. Jak stworzylibyśmy program który dodaje dwie liczby do siebie? Na początku poprosilibyśmy użytkownika o podanie pierwszej liczby, później o podanie drugiej i na końcu dodalibyśmy obie wartości do siebie. Do dobrze, ale gdzie i jak komputer zapisze te wartości które poda użytkownik? Otóż komputer zapisuje te wartości w pamięci komputera pod nazwą którą poda mu programista, bo przecież my jako programiści jakoś do tej wartości później musimy się odwołać, jakoś ją zidentyfikować. My jako programiści nie musimy wiedzieć gdzie konkretnie ta wartość się w pamięci znajduje, wystarczy, że wiemy jak się do niej odwołać. To miejsce, o konkretnej nazwie, które będzie przechowywało jakąś wartość nazywamy zmienną. Można to przyrównać do wielkiej komody (pamięć komputera) z wieloma szufladami. Taką jedną pojedynczą szufladę będziemy nazywamy zmienną. Do naszej szuflady możemy „włożyć” jakąś wartość (określonego typu, o typach za chwilę). Szufladę musimy jakoś nazwać żebyśmy wiedzieli, którą szufladę w danym momencie chcemy otworzyć. Poniżej przykład deklaracji zmiennej, która będzie przechowywała liczbę całkowitą. Deklaracja to takie przygotowanie naszej szuflady na wrzucenie konkretnej wartości, ale jeszcze tej wartości do szuflady nie wrzucamy. Przygotowując tą szufladę musimy „powiedzieć” komputerowi dokładnie jakiego typu zmienne będzie tam można przechowywać, czyli określamy typ zmiennej. Jeżeli określimy, że do zmiennej (szuflady) możemy wrzucić liczbę całkowitą (typ int) to będziemy do niej mogli wrzucić tylko wartości tego typu i żadnej innej, nie wrzucimy tam np. jakiegoś tekstu bo ta szuflada przyjmie tylko liczbę całkowitą.

int liczba;

gdzie: int oznacza typ zmiennej, czyli typ przechowywanej wartości, a liczba to nazwa zmiennej.

Zauważ, że w tym momencie mamy już zdefiniowaną zmienną, czyli określiliśmy jakie wartości (jakiego typu) ta zmienna może przyjąć (przechowywać) i określiliśmy jej nazwę ale nie przypisaliśmy do tej zmiennej żadnej wartości. Przypisanie wartości do zmiennej nazywamy inicjalizacją, patrz kod poniżej.

liczba = 1;

Zobaczy, że deklaracja i inicjalizacja zajmują dwie linijki kodu. Czy można to zrobić szybciej? Tak. Poniżej przykład deklaracji i inicjalizacji zmiennej w jednej linijce.

int liczba = 1;

Powyższy zapis oznacza, że w pamięci komputera „siedzi” zmienna o nazwie liczba, która w tym momencie przechowuje wartość 1, czyli liczbę całkowitą. To, że w zmiennej liczba możemy zapisać tylko liczbę całkowita określa nam typ zmiennej przed jej nazwą, czyli int.

Do naszej zmiennej możemy w każdym momencie przypisać nową wartość np.

int liczba = 2;

W tym momencie nasza zmienna o nazwie liczba przechowuje już wartość 2. Czyli wartość 1 została zastąpiona wartością 2. Jeżeli odwołamy się w tym momencie do tej zmiennej np. będziemy ją chcieli wyświetlić na ekranie to wyświetlimy liczbę 2.

cout << liczba << endl;

Czyli cały nasz program przybierze formę.

#include <iostream>
using namespace std;
int main()
{
    int liczba = 1;
    liczba = 2;
    cout << liczba << endl;
    return 0;
}

 

A poniżej efekt uruchomienia naszego programu

cpp c++ kurs programowania podstawy zmienne typy danych

Teraz przejdziemy do tematu typów danych. Już poznałeś typ int, który mówi nam, że możemy do zmiennej zapisać tylko liczbę całkowitą. No ale my, do tworzenia naszego programu, potrzebujemy zapisywać inne wartości np. liczby zmiennoprzecinkowe, ciągu znaków itd. Spokojnie i takie dane możemy zapisywać w zmiennych wykorzystując odpowiedni typ. Wykaz najpopularniejszych typów danych przedstawiam Ci poniżej.

cpp c++ kurs programowania podstawy zmienne typy danych

 

Dla przykładu, jeżeli będziemy chcieli zapisać a później wyświetlić jakiś ciąg znaków nasz kod będzie wyglądał tak.

#include <iostream>

using namespace std;

int main()
{
    string tekst; // deklaracja zmiennej o nazwie tekst i typie string
    tekst = "Ala ma kota"; // przypisanie zmiennej tekst wartości, czyli zdania  „Ala ma kota”.
    cout << tekst << endl; // wyświetlenie zawartości zmiennej tekst na ekranie
    return 0;
}

Efekt uruchomienia programu poniżej.

cpp c++ kurs programowania podstawy zmienne typy danych

 

Myślę, że jesteś już gotowy na samodzielne napisanie swojego pierwszego programu. Poniżej opis.

Zadanie.

Firma wypracowała w danym roku zysk, którym chce się podzielić z wszystkimi pracownikami. 80% zysku zostanie przeznaczona na premie dla wszystkich pracowników (po równo dla każdego), kolejne 15 % przeznaczone będzie wyłącznie dla kadry kierowniczej a dodatkowe 5% dla prezesa. Jaką premię otrzyma każdy z pracowników firmy (pracownik produkcji, kierownik, prezes)? Zakładamy, że prezes jest jeden a liczbę pracowników produkcji i kadry kierowniczej podaje użytkownik.

Przy założeniu, że kwota zysku to 10000 zł, liczba pracowników produkcji to 10 osób, liczba kierowników to 3 osoby i prezesie, premie rozkładają się następująco:

  • Premia dla pracownika produkcji: 571,429 zł
  • Premia dla członka kadry kierowniczej: 946,429 zł
  • Premia dla Prezesa: 2017,86 zł

Poniżej kod programu.

#include <iostream>

using namespace std;

int liczbaPracownikow, liczbaKierownikow;
float zysk, zyskPracownicy, zyskKierownicy, zyskPrezes;
float premiaPracownik, premiaKierownik, premiaPrezes;

int main()
{
    cout << "Jaki zysk wypracowala firma: ";
    cin >> zysk;

    cout << "Podaj liczbe pracownikow dzialu produkcji: ";
    cin >> liczbaPracownikow;

    cout << "Podaj liczbe czlonkow kadry kierowniczej: ";
    cin >> liczbaKierownikow;

    premiaPracownik = zysk*0.8/(liczbaPracownikow+liczbaKierownikow+1);
    premiaKierownik = zysk*0.15/ (liczbaKierownikow + 1) + premiaPracownik;
    premiaPrezes = zysk*0.05 + premiaPracownik + premiaKierownik;

    cout << "Premia dla pracownika produkcji: " << premiaPracownik << endl;
    cout << "Premia dla czlonka kadry kierowniczej: " << premiaKierownik << endl;
    cout << "Premia dla Prezesa: " << premiaPrezes << endl;

    return 0;
}

Zwróć uwagę na kilka haczyków. Pierwszy haczyk jest taki, że to 80% musimy rozdzielić pomiędzy wszystkich pracowników firmy, czyli pomiędzy pracowników produkcji ale także między kierowników i prezesa, bo oni także są pracownikami firmy. Drugi haczyk jest taki, że prezes to także członek kadry kierowniczej, czyli 15% zysku przeznaczone dla kadry kierowniczej musimy podzielić przez liczbę kierowników + prezes. I stąd te wyniki.

 


 

c++ kurs programowania obiektowego spis treści