Informatyka I Wykład 3

Post on 08-Jan-2016

53 views 0 download

description

Informatyka I Wykład 3. -Nazwy -Typy i rozmiary danych -Zakłócenia numeryczne -Stałe. Jerzy Kotowski Politechnika Wrocławska. NAZWY. Nazwy mają: dane, funkcje, etykiety, etc. Ala = ma(_kota); Nazwy tworzy się z liter, cyfr oraz znaku podkreślenia. Dopuszczalne nazwy zmiennych: - PowerPoint PPT Presentation

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