Teoria programowania: Zmienne, stałe oraz działania na liczbach

article-thumbnail

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