Podstawy programowania wykład III
Podstawowe typy danych: znakowe, łańcuchowe, liczby całkowite i liczby zmienno pozycyjne. Deklaracja stałych i zmiennych. Dyrektywa #define, modyfikator const.
Dane – informacje ładowane do komputera, następnie przez niego przetwarzane zgodnie z podanymi instrukcjami. W efekcie przetwarzania danych powstają informacje wyjściowe.
Przed wprowadzeniem danych w C/C++ należy określić ich typ:
Rezerwacja odpowiednich ilości pamięci do przechowywania danych (różne typy danych wymagają różnej ilości pamięci)
Nie można wykonać wszystkich funkcji języka C/C++ na wszystkich typach danych (np. wprowadzenie słowa w przypadku gdy wymagana jest liczba, spowoduje błąd)
Operacje matematyczne…
Dane znakowe:
Określane jako char
Mogą zawierać pojedyncze litery, cyfry lub inne znaki z klawiatury
Każda zmienna typu char zajmuje pojedynczą jednostkę (komórkę) pamięci
Różnica pomiędzy znakiem a cyfrą np. pomiędzy znakiem „5” a liczbą 5 – znak „”5” nie może zostać użyty w operacjach matematycznych, ale zajmuje w pamięci mniej miejsca niż liczba 5.
Łańcuchy (napisy):
Ciągi znaków (np. słowa, zdania)
W języku C – łańcuchy to ciągi, wartości typu char tzw. tablice (dokładniej o tablicach będzie później)
Mogą zawierać dowolną kombinację liter, cyfr, znaków interpunkcyjnych i kodów specjalnych, które mogą występować pojedynczo jako dane znakowe char
Różnica pomiędzy napisem w postaci ciągu cyfr a liczbą np. pomiędzy ciągiem znaków „567” (kombinacja znaków „5”, „6”, „7”) a liczbą 567 – napis „567” nie może być użyty w operacjach matematycznych.
UWAGA! Poznana już funkcja puts() wymaga jako parametru danej która jest łańcuchem znaków. Użycie parametru innego typu spowoduje błąd działania programu.
Liczby całkowite:
Nie mają miejsc dziesiętnych, mogą być dodatnie lub ujemne bądź wynosić 0
Wykorzystywane zazwyczaj do zliczania
Wykorzystywane zazwyczaj do zliczania
Rodzaje (pewne różnice w przyjmowanych wartościach w zależności od wykorzystywanego kompilatora):
int – liczba całkowita pomiędzy -32 768 a 32 767
short int – liczba całkowita pomiędzy 0 a 255
long int - liczba całkowita pomiędzy -2 147 483 648 a 2 147 483 648
unsigned long – dodatnia liczba całkowita pomiędzy 0 a 4 294 967 295
Liczby typu int zajmują dwie komórki pamięci, liczby typu long int (długie) i unsigned long (długie bez znaku) zajmują cztery komórki pamięci
Część kompilatorów nie rozpoznaje typu short int
Liczby dziesiętne (zmiennopozycyjne):
Mogą zawierać miejsca dziesiętne (separatorem dziesiętnym jest kropka)
Mogą być bardzo małe lub bardzo duże – często wyrażane jako liczby wykładnicze
2.5E+25 – przesuń kropkę dziesiętną o 25 miejsc w prawo
2.5E-25 – przesuń kropkę dziesiętną o 25 w lewo
Rodzaje (pewne różnice w przyjmowanych wartościach w zależności od wykorzystywanego kompilatora)
float – liczby pomiędzy 3.4E-38 a 3.4E+38
double – liczby pomiędzy 1.7E-308 a 1.7E+308
long double – liczba pomiędzy 3.4E-4932 a 1.1E+4932
Dokładność danych zależna od kompilatora np. liczba … mieści się w zakresie float, ale w systemie można ją przechowywać jedynie jako 5.98765 dane float (pojedynczej precyzji) – do 5 lub 6 miejsc dziesiętnych, dane double (podwójnej precyzji) – do 14 lub 15 miejsc dziesiętnych
Liczby typu float zajmują cztery komórki pamięci liczby typu double zajmują osiem komórek pamięci a liczby typu long double…
Stała – pozostaje taka sama w trakcie przebiegu programu. Stałe stosujemy gdy podczas pisania programu znamy wartość jakiejś danej i wiemy, że nie ulega ona zmianie w trakcie działania programu. Stałej nadaje się wartość w trakcie pisania programu, a nie w trakcie jego przebiegu (nie może ulec zmianie, dopóki nie zmieni się programu)
Zmienna – jej wartości może być inna przy ponownym uruchomieniu programu. Zmiennej przypisuje się wartości w trakcie przebiegu programu.
Nazwy stałych i zmiennych:
Najlepiej mówiące coś o przechowywanych w nich danych
Muszą zaczynać się od liter
Mogą zawierać wielkie i małe litery, znaki podkreślenia, liczby
Nie mogą zawierać SPACJI
Nie mogą być takie same jak w polecenia języka C
Konwencja: nazwy zmiennych piszemy tylko małymi literami, nazwy stałych dużymi literami
Deklarowanie stałych:
Wskazanie kompilatorowi nazwy stałej i jej wartości
Przed funkcją main()
Dyrektywa #define (bez średnika na końcu wiersza):
#define NAZWA WARTOŚĆ
Kompilator zastępuje każde wystąpienie nazwy stałej w programie jej wartością:
#define PI 3.14159
main()
{
…
}
Przykład: Program wyświetlający łańcuch zawarty w stałej IMIĘ:
#define IMIE „MICHAL”
main()
{
//Wyświetlenie wartości stałej IMIE puts (IMIE) ;
}
Inny sposób deklarowania stałych w C++ (oraz niektórych kompilatorach C):
Wskazanie kompilatorowi typu, nazwy i jej wartości
Wewnątrz funkcji main()
Modyfikator const (średnik na końcu wiersza)
const TYP NAZWA = WARTOŚĆ;
Deklarowanie zmiennych:
Wskazanie kompilatorowi typu i nazwy zmiennej:
TYP NAZWA;
Wewnątrz lub przed funkcją main()
Kilka zmiennych tego samego typu możemy zadeklarować w jednej linii (wewnątrz funkcji main())
Przypisywanie zmiennym wartości początkowej:
Przy deklarowaniu zmiennych:
main()
{
int liczba1=2;
float liczba2=2.25;
char znak=’X’;
…
}
Po zdeklarowaniu zmiennych:
liczba1=2;
liczba2=2.25
znak=’X’;