Informatyka I Wykład 3
description
Transcript of Informatyka I Wykład 3
Informatyka IWykład 3
Jerzy Kotowski
Politechnika Wrocławska
-- NazwyNazwy-- Typy i rozmiary danychTypy i rozmiary danych-- Zakłócenia numeryczneZakłócenia numeryczne-- StałeStałe
NAZWY
Nazwy mają: dane, funkcje, etykiety, etc.
Ala = ma(_kota); Nazwy tworzy się z liter, cyfr oraz znaku podkreślenia. Dopuszczalne nazwy zmiennych:
Cx_1 a_1_2 Ala_ma_kotaLiczba_zmiennych xyz xYz XyZ
Uwaga!! Język C prawie wszędzie odróżnia małe litery od dużych => wszystkie wymienione powyżej nazwy są różne!!
NAZWY c.d.NAZWY c.d.OgraniczeniaOgraniczenia
Pierwszy znak nie może być cyfrą
1Ala ERROR!!! Pierwszy znak może być znakiem podkreślenia Po znakach podkreślenia na początku nazwy nie
może być cyfra
_1Ala ERROR!!! ___Ala OK!!! Nazwa zmiennej (identifier) może mieć dowolną
długość. Język C odróżnia zmienne po określonej liczbie pierwszych znaków (w produktach Borlanda jest to standardowo 32 - identifier length)
TYPY I ROZMIARY DANYCH Podstawowe typy danych
char int float double Kwalifikatory
short long signed unsigned Przykład (deklaracji zmiennej)
unsigned char Ala; Operator jednoargumentowy sizeof
long double Ula;
int x = sizeof(long double);
x = sizeof(Ula);
ZAKRESY WARTOŚCI ZMIENNYCHdla implementacji TURBO C++ 1.0
Typy Wartości sizeof()charsigned char
-128 ... 127-2
7 ... 27-1
1
unsigned char 0 ... 255 1shortsigned shortintsigned int
-32768 ... 32767-2
15 ... 2
15-1
2
unsigned shortunsignedunsigned int
0 ... 655350 ... 2
16-1
2
longsigned long
-2147483648 ... 2147483647-2
31 ... 2
31-1
4
unsigned long 0 ... 4 294 967 295 (232 - 1) 4
ZAKRESY WARTOŚCI ZMIENNYCHdla implementacji TURBO C++ 1.0
Obiekty typu rzeczywistego
Typy Wartości sizeof()float -3.4e-38 ... 3.4e38 4double -1.7e-308 ... 1.7e308 8long double -3.4e-4932 ... 3.4e4932 10
Przykładchar i;for(i=0;i<200;i++)
printf("\n%d",i);
To jest nieskończona pętla
ZAKŁÓCENIA NUMERYCZNE Skończona precyzja zapisu może doprowadzić do
następującej sytuacji
1.e6 + 1.e-6 - 1.e6 = 0
1.e6 - 1.e6 +1.e-6 = 1.e-6
Czyli:
1. komputer źle liczy
2. dodawanie w komputerze nie jest przemienne Zjawisko nosi nazwę szumów numerycznych (zakłócenia
numeryczne) i jest bardzo trudne do uniknięcia. Przy analizie złożonych algorytmów obliczeniowych sprawdza się w szczególności , czy szumy się kumulują czy też się wytłumiają.
STAŁESTAŁE
Stałe są to napisy reprezentujące dane, z których zapisu (w ramach ustalonej interpretacji wynikają wszystkie własności danych, w tym ich wartości.
Stałe dzielimy na: liczbowe, znakowe i łańcuchowe. Stałe liczbowe mogą być dwóch typów:
- całkowitoliczbowego lub - zmiennopozycyjnego.
Stałe całkowitoliczbowe dzielimy na: - dziesiętne, - ósemkowe, - szesnastkowe i- długie.
STAŁE CAŁKOWITOLICZBOWESTAŁE CAŁKOWITOLICZBOWEy=128; stała typu dziesiętnego
y=0377; ósemkowego
y=0xFF; szesnastkowego
y=0XFF; x może być duże lub małe
y=0xFFL; stała długa, zapisana tak jak liczba typu long.
CIEKAWOSTKI y=0128; ERROR!!! Ile to jest?: y=50/8;
dokładnie 6. Ile to jest?: y=100/010; y=12y=12