Lekcja 3. Zmienne i typy danych w C#
PodstawowyPo co się tego uczymy?
Każdy program, nawet najprostszy, musi gdzieś przechowywać dane — wiek ucznia, cenę produktu, imię klienta. Zmienne to pudełka, w których program trzyma te informacje, żeby mógł ich użyć później. Bez zmiennych nie da się napisać niczego sensownego — ani kalkulatora, ani aplikacji z bazą danych.
Teoria
Zmienna to nazwane miejsce w pamięci komputera, w którym przechowujesz jedną wartość określonego typu. W C# każda zmienna ma typ, który mówi, jakiego rodzaju dane może przechowywać: int — liczby całkowite, double — liczby z częścią dziesiętną, string — tekst, bool — wartość prawda/fałsz (true/false), char — pojedynczy znak.
Zanim użyjesz zmiennej, musisz ją zadeklarować, czyli podać jej typ i nazwę, np. int wiek;. Możesz od razu nadać jej wartość: int wiek = 17;. C# jest językiem silnie typowanym — raz zadeklarowana jako int zmienna nie przyjmie potem tekstu.
Przykład z życia
Wyobraź sobie system rezerwacji biletów do kina. Program musi pamiętać: ile lat ma widz (int wiek), ile kosztuje bilet (double cena), czy widz ma zniżkę studencką (bool jestStudentem) i jak się nazywa film (string tytul). Każda z tych informacji to osobna zmienna innego typu — i dopiero razem pozwalają programowi policzyć, ile widz ma zapłacić.
Kod (C#)
using System;
class Program
{
static void Main()
{
string tytulFilmu = "Diuna: Część Trzecia";
int wiekWidza = 17;
double cenaBiletu = 24.50;
bool jestStudentem = false;
if (jestStudentem)
{
cenaBiletu = cenaBiletu * 0.8;
}
Console.WriteLine("Film: " + tytulFilmu);
Console.WriteLine("Wiek widza: " + wiekWidza);
Console.WriteLine("Cena biletu: " + cenaBiletu + " zł");
}
}
Komentarz i wyjaśnienie kodu
Na górze deklarujemy cztery zmienne różnych typów — to jest właśnie ten moment, w którym program „zapamiętuje” dane o widzu i filmie. Zwróć uwagę na cenaBiletu — to double, a nie int, bo cena ma grosze (24.50, nie 24).
W instrukcji if sprawdzamy, czy jestStudentem ma wartość true — jeśli tak, obniżamy cenę o 20%. Na końcu Console.WriteLine wypisuje wynik na ekranie, łącząc tekst ze zmiennymi znakiem +.
Ćwiczenie samodzielne
Zmień wartości zmiennych tak, żeby widz był studentem (jestStudentem = true) i uruchom program ponownie. Sprawdź, czy cena faktycznie się zmniejszyła o 20%. Potem dodaj piątą zmienną int liczbaMiejsc i wypisz ją razem z resztą danych.
Plac zabaw — wypróbuj online
Poniższy kod wykonuje się od razu w Twojej przeglądarce — nic nie trzeba instalować. Zmień kod i kliknij „Uruchom”.
Zadania do pracy własnej
Napisz program, który przechowuje w zmiennych: imię ucznia (string), jego ocenę z informatyki (double) i informację, czy zdał (bool). Wypisz te dane na ekranie w czytelnej formie.
Napisz program obliczający cenę zamówienia w pizzerii: cena pizzy (double), liczba sztuk (int) oraz informacja, czy klient ma kupon rabatowy 10% (bool). Program ma wypisać cenę końcową.
Stwórz program symulujący prosty bilet parkingowy: godzina wjazdu i wyjazdu (int, w formacie 24h, np. 14 i 17), stawka za godzinę (double) oraz informacja, czy to pojazd elektryczny (bool — wtedy opłata wynosi 0 zł niezależnie od czasu). Program ma obliczyć i wypisać kwotę do zapłaty. To zadanie łączy kilka typów danych i jedną instrukcję warunkową — dokładnie tak, jak w typowym zadaniu na egzaminie.
Typowe błędy
Najczęstszy błąd to próba wpisania tekstu do zmiennej typu int, np. int wiek = "siedemnaście"; — C# od razu zgłosi błąd kompilacji, bo tekst i liczba to różne typy. Drugi częsty błąd to pomylenie int z double przy cenach — jeśli zadeklarujesz cenę jako int, C# obetnie grosze (24.50 zamieni się na 24). Trzeci błąd to zapomnienie średnika na końcu linijki.
Nawiązanie do egzaminu zawodowego
Na egzaminie INF.04 zmienne i typy danych pojawiają się w każdym niemal zadaniu — czy to aplikacja konsolowa, formularz WPF, czy strona webowa. Egzaminator bardzo często sprawdza, czy potrafisz dobrać właściwy typ do danych (np. double do cen, a nie int) oraz czy Twój kod się w ogóle kompiluje — literówka w typie zmiennej to jeden z najczęstszych powodów utraty punktów.