Zmienne, typy zmiennych, komentarze, instrukcje wejścia/wyjścia
Zmienna to niejako "szufladka" w pamięci, w której przechowujemy dane określonego typu. Na przykład liczbę całkowitą, rzeczywistą, napis (łańcuch), lub wartość logiczną. Zmienną w C++ definiujemy używając następującego schematu: typ_zmiennej nazwa; Na przykład możemy zapisać coś takiego: int liczba;
Taki zapis to informacja dla kompilatora: zarezerwuj w pamięci miejsce o nazwie "liczba", gdzie będzie przechowywana liczba całkowita. Od tego momentu wszędzie gdzie kompilator napotka słowo "liczba", będzie w domyśle pracował na tym obszarze pamięci. Poznajmy teraz typy zmiennych wbudowane w C++.
int4 bajty, zakres: -2147483648 .. 2147483647unsigned int4 bajty, zakres: 0 .. 4294967295long4 bajty, zakres: -2147483648 .. 2147483647unsigned long4 bajty, zakres: 0 .. 4294967295long long8 bajtów, zakres: -9223372036854775808 .. 9223372036854775807unsigned long long8 bajtów, zakres:0 .. 18446744073709551615 float4 bajty, zakres: 3.4e +/- 38double8 bajtów, zakres: 1.7e +/- 308long double8 bajtów, zakres: 1.7e +/- 308bool1 bajt, true / falsechar1 bajt, zakres: -128 .. 127unsigned char1 bajt, zakres: 0 .. 255short2 bajty, zakres: -32768 .. 32767unsigned short2 bajty, zakres: 0 .. 65535Zapis naukowy liczb
A cóż to za dziwny, matematyczny zapis wielkich liczb znalazł się na liście powyżej? Mowa o zapisie z użyciem litery
e? Otóż jest to tzw. zapis naukowy, w którymeoznacza exponent, czyli wykładnik. I stąde+oznacza przesunięcie przecinka o zadaną liczbę miejsc w prawo... zaśe-oznacza przesunięcie go o zadaną liczbę miejsc w lewo. I tak na przykład2.3e+2to inaczej liczba230, zaś2.3e-3to inaczej0.0023. Proste, prawda?Słowo kluczowe unsigned
Przy niektórych typach zmiennych zauważamy także obecność słowa kluczowego
unsignedco oznacza z angielskiego "bez znaku". W praktyce chodzi o to, iż całą dostępną pamięć (wyrażoną w bajtach) przeznaczamy na zapis liczby dodatniej. Weźmy na przykład zmienną typuchar, zajmującą w pamięci komputera 1 bajt, czyli osiem bitów. Na ośmiu bitach możemy zapisać maksymalnie 256 liczb (od 0 do 255). Standardowo jednak cały zakres dzielimy na pół, aby móc obsłużyć liczby ujemne - i stąd ostateczny zakres typucharto -128..127 (na końcu jest 127, a nie 128 gdyż jeden slot zużyliśmy dla wartości zero). Dopisanie słowa kluczowegounsignedpowoduje porzucenie wartości ujemnych, po to aby cały zakres 1 bajta można było przeznaczyć na wartości 0..255.Zasięg (widoczność) zmiennych
W naszych pierwszych aplikacjach, tworzyć będziemy każdą zmienną jako tzw. zmienną globalną, to znaczy widzianą w całym programie. Zatem deklaracje zmiennych umieszczać będziemy pomiędzy
using namespace std;a rozpoczęciem funkcji głównejint main(). Gdyby zmienną zapisać wewnątrz klamer jakiejś funkcji, to byłaby widoczna tylko pomiędzy tymi klamrami (tzw. zmienna lokalna). Póki co nie musisz sobie jeszcze zawracać głowy zasięgami widoczności zmiennych - bardzo wiele na ten temat zostanie powiedziane przy okazji tworzenia tzw. własnych funkcji. To wtedy zasięgi zmiennych rzeczywiście mają zastosowanie - nasze pierwsze programy posiadać będą tylko jedną funkcję głównąint main()- miejsce deklaracji nie jest wówczas bardzo istotne.#include <iostream>
using namespace std;
int liczba; //tutaj wstawimy zmienne globalne
string imie; //uzywane w pierwszych programach
int main()
{
cout << "Hello world!" << endl;
return 0;
}W liniach z definicjami zmiennych użyto także na końcu tzw. komentarza – jest to tekst poprzedzony znakami:
//. Komentarze są ignorowane przez kompilator – wstawiamy je tylko dla naszej informacji, aby wiedzieć co robi dana zmienna czy funkcja. Łatwiej wtedy wrócić do własnego kodu po upływie dłuższego czasu (własny kod szybko się zapomina - po pewnym czasie mamy autentyczne wrażenie, że napisał go ktoś inny). Edytor oznacza komentarze szarym kolorem, aby dodatkowo wizualnie podkreślić, iż nie biorą one udziału w wykonaniu programu.Nadawanie wartości zmiennej
Przypisanie początkowej wartości do zmiennej to inaczej tzw. inicjalizacja (inicjować znaczy "wzbudzać", "rozpoczynać", "czynić pełnowartościowym"). Zmiennej możemy nadawać wartość już na etapie tworzenia:
string imie="Jan";
int x = 67; // x to liczba cukierków
int y = 31; // y to liczba uczniowlub wewnątrz funkcji
main(), lecz po wcześniejszym zadeklarowaniu jej typu w sposób już nam znany. Uwaga! Każda definicja zmiennej jest jednocześnie deklaracją (ale nie odwrotnie).#include <iostream>
using namespace std;
int liczba; //deklaracja
string imie="Robert"; //definicja
int main()
{
liczba = 42; //inicjalizacja (poprzedzona deklaracją)
return 0;
}Instrukcje wejścia/wyjścia
W zmiennych przechowujemy dane wprowadzane przez użytkownika. Aby wczytać do zmiennej wartość podaną z klawiatury, używamy instrukcji wejścia/wyjścia. Na przykład aby pobrać imię użytkownika:
#include <iostream>
using namespace std;
string imie;
int main()
{
cout << endl << "Podaj imie: ";
cin >> imie;
cout << "Podano imie:" << imie;
return 0;
}Analogicznie wczytujemy liczbę, wystarczy jedynie zmienić typ danych deklarowanej zmiennej na liczbowy.
Zobacz także
Daj się zaskoczyć! Poniżej wylosowałem dla Ciebie pięć wpisów z innych kategorii blogowych aniżeli ta, którą właśnie przeglądasz:
- 05. Umysł | Wojownik - Poeta
- Polecenia systemowe w terminalu | Kurs Linuxa
- 04. Początki przygody z komputerami | Q&A - Pytania Widzów
- 03. Typografia, edycja obrazów, tekstów, list | Kurs Bootstrapa
- Listy nienumerowane <ul> i numerowane <ol> | HTML - Tworzenie stron
Kody zniżkowe - kup taniej
Mamy fajne rabaty dla widzów naszego kanału YouTube - otóż można zamówić dwa tomy książek "Wprowadzenie do bezpieczeństwa IT" (15% taniej) oraz książkę "Twierdza Linux. Bezpieczeństwo dla dociekliwych" (10% taniej) - użyjcie odpowiedniego kodu, wpisując go w specjalne pole w koszyku:
Pomóż dzieciom
Polska Akcja Humanitarna od wielu lat dożywia dzieci. Proszę, poświęć teraz dosłownie chwilę i pomóż klikając w oznaczony strzałką zielony brzuszek Pajacyka. Dziękuję!
Kategorie wpisów
- Programowanie w C++
- Odcinki video
- 00. Intro kursu. Instalacja CodeBlocks
- 01. Pierwszy program, pliki projektu
- 02. Instrukcja warunkowa if
- 03. Pętle: for, while, do..while
- 04. Liczby losowe (w praktyce pseudolosowe)
- 05. Tablice w języku C++
- 06. Instrukcja switch case. Menu główne
- 07. Pliki tekstowe. Zapis i odczyt z pliku
- 08. Łańcuchy. Typ string, tablice char, ASCII
- 09. Własne funkcje. Podejście proceduralne
- 10. Wskaźniki. Dynamiczne alokowanie pamięci
- 11. Znajdowanie największej liczby z trzech podanych
- 12. Polski SPOJ. Zadanie próbne
- 13. Rekurencja (rekursja)
- 14. Sortowanie. Złożoność algorytmów
- 15. Polskie znaki w konsoli: Windows, Linux, MacOS
- 16. Struktury danych: stos, kolejka, lista, drzewo binarne
- 17. Funkcje matematyczne w C++
- 18. C++ w Visual Studio Code - jak kompilować i debugować, opis narzędzi: MinGW, GCC, MSYS2, GDB, UCRT
- Artykuły
- Losowanie bez powtórzeń w PHP i C++. Gra Milionerzy
- Podstawowe pojęcia, pierwszy kod C++
- Zmienne, typy zmiennych, komentarze, instrukcje wejścia/wyjścia
- Instrukcja warunkowa if
- Operatory w C++
- Rodzaje pętli w C++
- Community Quiz - gra tekstowa w konsoli
- Testy
- Sprawdzian ze struktur danych (stos, kolejka, lista, drzewo binarne)
- Podejście obiektowe
- HTML - Tworzenie stron
- CSS - Arkusze stylów
- JavaScript (front-end)
- PHP (back-end)
- Bazy danych MySQL
- Kurs Bootstrapa
- Seria hakerska CTF
- Informatyka ogólna
- Nauka, matematyka, logika
- Shorty: Krótkie tutoriale
- Kurs Linuxa
- Wojownik - Poeta
- Wyprawa do wnętrza ego
- Przemyślenia, felietony
- Filozofia Mr. Robot
- Technikalia, YouTube
- Q&A - Pytania Widzów
- Wywiady, rozmowy
- Warsztat kodera
- Użyteczny Python
- Gra w szachy
- Zapisy live
- Kod produktywności




Komentarze
Czy macie jakieś pytania, sugestie, uwagi? A może zauważyliście literówkę albo błąd? Dajcie koniecznie znać: kontakt@pasja-informatyki.pl. Dziękujemy za poświęcony czas - to dzięki Wam serwis staje się coraz lepszy!