Opis
Kolejnym z elementów języków programistycznych są zmienne oraz stałe. Wartości zmienne są zmieniane przez program podczas ich wykorzystania. Stałe zaś są tylko wykorzystywane przez program. W celu przypisania wartości do zmiennych / stałych, należy użyć pojedynczego operatora równania. Mechanizm odczytywania danych z klawiatury nazywamy mechanizmem wejścia, zaś mechanizm wyświetlania danych nazywamy mechanizmem wyjścia.
Obliczanie pola trójkąta:
Zdefiniuj zmienne int a, h; Zdefiniuj stałą int DZIELNIK = 2; Przeczytaj a; // wejście Przeczytaj h; Wypisz sumę liczb a i h podziel przez DZIELNIK; // wyjście
Wartości w wielu językach programowania dzielą się na wartości stałoprzecinkowe, zmiennoprzecinkowe (o różnych długościach) oraz na wartości typu logicznego, które zwracają jedynie wartość prawda lub fałsz (czyli 1 lub 0). Pojedynczy znak równania = oznacza przypisanie wartości do zmiennej. Definicją zmiennych nazywamy ustalenie ich typu, a deklarowaniem – proces definiowania i przypisania wartości.
Deklarowanie zmiennych:
int a = 1; // wartość typu stałoprzecinkowego float b = 1.0; // wartość typu zmiennoprzecinkowego
/* wartości ułamkowe są zwykle zapisywane po KROPCE, nie po przecinku tak więc jeśli float b = 1, to i tak zostanie wypisane b = 1.0 */
boolean warunek = (a == 1); // wartość typu logicznego string tekst = "Hejka naklejka"; // wartość typu tekstowego
W wielu językach programowania, obliczenia wykonujemy używając standardowych znaków matematycznych, takich jak: +, -, *, / oraz % (operator reszty). Tutaj uwaga – znak : wcale nie oznacza dzielenia.
Obliczanie pola kwadratu:
int bok_a, pole, reszta; // definiowanie zmiennych bok_a = 5; // przypisanie wartości pole = bok_a * bok_a; // obliczanie pola kwadratu;
Obliczanie wysokości z pola trójkąta:
int bok_a, wysokosc, pole, DZIELNIK; // definiowanie zmiennych bok_a = 5; pole = 50; DZIELNIK = 2; // inicjacja wartości wysokosc = pole / (bok_a * DZIELNIK); // obliczanie wysokości
Często mamy możliwość przeprowadzenia konwersji z jednego typu na drugi, tak zwanego rzutowania. Każdy język może inaczej traktować pewne czynności wykonywane za pośrednictwem kodu.
Konwersja
Konwersja zmiennych:
int Zmienna = 1; Wypisz (float) Zmienna; // wypisuje rzutowanie Zmienna, czyli 1.0;
Często podczas pisania programów będziemy korzystać ze skróconych wyrażeń działań, inkrementacji (podnoszenia liczby o jeden) oraz dekrementacji (obniżania liczby o jeden). Występują one w dwóch formach, wykonywanych po operacji właściwej z przedrostkiem post- oraz wykonywanych przed operacją właściwą – z przedrostkiem pre-.
Działania na zmiennych:
int a = 5; int b = 5; // definiujemy zmienne
a += 2; // skrócona wersja a = a + 2; a == 7 b -= 2; // skrócona wersja b = b - 2; b == 3
a *= 1; // skrócona wersja a = a * 1; a == 7 b /= 3; // skrócona wersja b = b / 3; b == 1 b %= 2; // skrócona wersja b = b % 2; b == 1
a++; // postinkrementacja a = a + 1; a == 8 b--; // postdekrementacja b = b - 1; b == 0 ++a; // preinkrementacja a = a + 1; a == 9 --b; // predekrementacja b = b - 1; b == -1
Zagadnienie działań przed i po na podstawie programu w Java:
W schemacie blokowym, wpisanie/wypisanie wartości przedstawiamy za pomocą bloku wejścia/wyjścia, który jest zobrazowany równoległobokiem. Blok odpowiadający za operacje ilustrujemy za pomocą prostokąta.
Przykładowa struktura programu na obliczanie pola kwadratu:
Charakterystyka przykładowych wartości:
int a = 1; long b = 1;
/* Wartości liczbowe które określają liczby stałoprzecinkowe, czyli takie, które nie mają rozwinięcia dziesiętnego. Inaczej typ całkowity */
float c = 1.0; double d = 1.0;
/* Wartości liczbowe które określają liczby zmiennoprzecinkowe, czyli takie, które mają rozwinięcie dziesiętne. Inaczej typ rzeczywisty. */
char e = ‘a’; // znaki zapisujemy w apostrofie
/* Wartość typu znakowego, która określa znaki literowe. */
string tekst = "wartosc typu lancuchowego";
/* Wartość typu łańcuchowego, która określa szereg znaków. */
boolean f = x < y // g == 1 jeśli x < y, inaczej g == 0;
/* Wartość typu logicznego, która określa czy dany warunek jest, bądź nie jest spełniony (przyjmuje 0 dla fałszu lub 1 dla prawdy). */
unsigned int g = 1; unsigned float h = 1.0;
/* Wartości nie posiadające znaku zapisujemy z unsigned przed nazwą wartości. Deklarowanie wartości bez znakowych przydaje się wtedy, kiedy musimy użyć większego niż domyślnie przedziału pamięci oraz możemy założyć, że liczba będzie wyłącznie dodatnia. */
int* j = &a;
/* Jeśli chcemy odczytać miejsce które zajmuje zmienna / stała się znajduje, używamy typu wskaźnikowego, który zwraca miejsce w postaci kodu szesnastkowego - głównie w C++ */
Autor tekstu: Jacek Woźniak