004 konspekt typy趎ych w Paskalu


Konspekt z przedmiotu Programowanie strukturalne

Temat: Typy danych w Pascalu.

Prowadz膮cy: in偶. Marek Pude艂ko

Klasa I SP, specjalno艣膰 technik Informatyk

Lekcja odby艂a si臋

Czas zaj臋膰: 2 x 45 minut.

Cele dydaktyczne:

Cele operacyjne:

Po zaj臋ciach s艂uchacze powinni:

艢rodki dydaktyczne: komputer z edytorem Turbo Pascal 7.0, tablica, karteczki z programem.

Metody: wyk艂ad, praca z komputerem, praca z tablic膮, praca samodzielna.

Formy: praca z zespo艂em klasowym, praca indywidualna s艂uchacza

Przebieg lekcji:

1) Cz臋艣膰 wst臋pna:

2) Lekcja w艂a艣ciwa:

Deklarujemy je w nag艂贸wku poprzedzaj膮c s艂owem kluczowym var (od variable) - zmienna.

Przyk艂adowa deklaracja.

0x08 graphic
var x : integer:

0x08 graphic
0x08 graphic

deklaracja nazwa zmiennej : typ zmiennej;

Ten typ danych odpowiada kodowaniu warto艣ci ca艂kowitych w naturalnym kodzie dw贸jkowym.

1-bajtowa liczba ca艂kowita bez znaku (8 bit贸w).

Zakres od 0 do 28 - 1 (255).

2-bajtowa liczba ca艂kowita bez znaku (16 bit贸w).

Zakres od 0 do 216 - 1 (65535).

Ten typ danych odpowiada kodowaniu warto艣ci ca艂kowitych w kodzie uzupe艂nieniowym do 2 - U2.

1-bajtowa liczba ca艂kowita ze znakiem w kodzie U2 (8 bit贸w).

Zakres od -27 (-128) do 27 - 1 (127).

2-bajtowa liczba ca艂kowita ze znakiem w kodzie U2 (32 bity).

Zakres od -215 (-32768) do 215 - 1 (32767)

4-bajtowa liczba ca艂kowita ze znakiem w kodzie U2 (32 bity).

Zakres od -231 (-2147483648) do 231 - 1 (2147483647)

Typy ca艂kowite - zestawienie (dla wszystkich j臋zyk贸w Pascal)

bez znaku - NBC

Zakres

ze znakiem - U2

Zakres

byte

8b - 1B

0...28-1

shortint

8b - 1B

-27...27-1

word

16b - 2B

0...216-1

smallint

16b - 2B

-215...215-1

longword

32b - 4B

0...232-1

longint

32b - 4B

-231...231-1

int64

64b - 8B

-263...-1

cardinal

32b - 4B

0...232-1

integer

32b - 4B

-231...231-1

program zakres_liczb;

var a,b:integer;

c:integer;

d: longint;

e: shortint;

f: byte;

g: word;

begin

writeln ('Program demonstrujacy bledy w obliczaniu zakresu liczb ');

writeln ('podaj pierwsza liczbe do dodania: ');

readln(a);

writeln ('podaj druga liczbe do dodania: ');

readln(b);

c:=a+b;

d:=a+b;

e:=a+b;

f:=a+b;

g:=a+b;

writeln ('Suma wynosi : ',c,' (typ integer - zakres -32768 .. 32767)');

writeln ('Suma wynosi : ',d,' (typ longint)');

writeln ('Suma wynosi : ',e,' (typ shortint zakres -128 .. 127)');

writeln ('Suma wynosi : ',f,' (typ byte - zakres 0 .. 255)');

writeln ('Suma wynosi : ',g,' (typ word - zakres 0 .. 65535)');

readln;

end.

Sprawdzaj膮, jak dla kolejnych zakres贸w liczb, nast臋puje przekroczenie zakresu i jak to zaburza wyniki oblicze艅.

64-bitowa liczba zmiennoprzecinkowa o podw贸jnej precyzji w standardzie IEEE 754 (8 bajt贸w).

Zakres od - 1,8 10308 do 1,8 10308. Precyzja oko艂o 15...16 cyfr znacz膮cych.

32-bitowa liczba zmiennoprzecinkowa o pojedynczej precyzji w standardzie IEEE 754 (4 bajty).

Zakres od - 3,4 1038 do 3,4 1038. Precyzja oko艂o 7 cyfr znacz膮cych.

64-bitowa liczba zmiennoprzecinkowa o podw贸jnej precyzji w standardzie IEEE 754 (8 bajt贸w).

Zakres od - 1,8 10308 do 1,8 10308. Precyzja oko艂o 15...16 cyfr znacz膮cych.

32-bitowa liczba

Ten typ jest typem po艣rednim pomi臋dzy liczbami ca艂kowitymi a liczbami zmiennoprzecinkowymi. Liczba typu comp traktowana jest przez koprocesor jak liczby zmiennoprzecinkowa ca艂kowita bez wyk艂adnika.

Najcz臋艣ciej typ ten stosujemy do przechowywania du偶ych warto艣ci ca艂kowitych, takich jak sumy pieni臋偶ne. W tym przypadku suma jest wyra偶ona w groszach. Aby uzyska膰 warto艣膰 w z艂ot贸wkach, dzielimy j膮 przez 100.

64-bitowa liczba ca艂kowita ze znakiem w kodzie U2. Odpowiada typowi int64.

Zakres od -263 (-9223372036854775808) do 263 - 1 (9223372036854775807).

Jest to wewn臋trzny tym reprezentacji liczb zmiennoprzecinkowych w koprocesorze arytmetycznym. Aby zminimalizowa膰 b艂臋dy obliczeniowe koprocesor wykonuje wewn臋trznie obliczenia na rozszerzonym formacie do 80-bit贸w. Dzi臋ki temu wzrasta zakres oraz precyzja przetwarzanych liczb. Koprocesor po wykonaniu oblicze艅 automatycznie przelicza wynik z typu extended na typ single lub double.

80-bitowa liczba zmiennoprzecinkowa o rozszerzonej precyzji w standardzie IEEE 754 (10-bajt贸w).

Zakres od -1,1 104932 do 1,1 104932. Precyzja oko艂o 19...20 cyfr znacz膮cych.

Typy zmiennoprzecinkowe - zestawienie (dla wszystkich j臋zyk贸w Pascal)

Zakres

Precyzja

single

32b - 4B

卤3,4 1038

7...8 cyfr

double

64b - 8B

卤1,8 10308

15...16 cyfr

extended

80b - 10B

卤1,1 104932

19...20cyfr

comp

64b - 8B

-263 do 263 - 1

Liczba dok艂adna

real

64b - 8B

卤1,8 10308

15...16 cyfr

Przyjmuje dwie warto艣ci logiczne: TRUE (prawda, tak) i FALSE (fa艂sz, Nie).

Zmienna 8-bitowa (1 bajt).

Je艣li wszystkie bity s膮 ustawione na 0, to przedstawia warto艣膰 logiczn膮 FALSE. Je艣li chocia偶 jeden z bit贸w ma warto艣膰 1, to przedstawia warto艣膰 logiczn膮 TRUE. Standardowo wyra偶enia logiczne zmieniaj膮 zawarto艣膰 najm艂odszego bitu - pozosta艂e przyjmuj膮 zawsze warto艣膰 0:

00000000(BOOLEAN) = FALSE (fa艂sz)

00000001(BOOLEAN) = TRUE (prawda)

Znaki przechowywane s膮 w pami臋ci komputera w postaci kod贸w ASCII (8 bit贸w) lub Unicode (16 bit贸w). Kod znaku jest liczb膮 ca艂kowit膮 w naturalnym kodzie binarnym.

Dana 1-znakowa. Zmienna tego typu przechowuje jeden znak ASCII (8-bit贸w, 1 bajt). Kod znaku zawiera si臋 w granicach od 0 do 255.

Znaki o kodach mniejszych od 32 s膮 zwykle tzw. znakami steruj膮cymi, kt贸rych celem nie jest prezentacja znak贸w, lecz wykonanie okre艣lonych dzia艂a艅. Na przyk艂ad znak NL o kodzie 10 powoduje przej艣cie z wydrukiem do nowego wiersza. Znak CR o kodzie 13 ustawia kursor na pocz膮tku wiersza.

Dana typu string jest 256 elementow膮 tablic膮 znakow膮 i mo偶e przechowywa膰 ci膮g znak贸w. Dost臋p do poszczeg贸lnych literek przechowywanego tekstu uzyskuje si臋 za pomoc膮 indeksu. Element o indeksie 0 zawiera informacj臋 o ilo艣ci przechowywanych znak贸w. Kolejne elementy zawieraj膮 poszczeg贸lne znaki tekstu. Ilo艣膰 znak贸w jest zatem ograniczona do 255.

W zmiennej s umieszczamy napis Janusz.

Zawarto艣膰 zmiennej typu string

s[0]

s[1]

s[2]

s[3]

s[4]

s[5]

s[6]

s[7]

\0

J

a

n

u

s

z

?

Zawarto艣膰 kom贸rek zmiennej s poza obszarem tekstu (s[7]...s[255]) jest niezdefiniowana, tzn. mog膮 tam by膰 dowolne znaki pochodz膮ce z poprzednich dzia艂a艅 nad t膮 zmienn膮 lub obszarem pami臋ci przez ni膮 zajmowanym.

type pora_roku = (wiosna, lato, jesien, zima);

type Dni_robocze = (poniedzia艂ek,.....pi膮tek);

type znaki = set of Char;

male_litery = set of 'a'..'z';

type wektor = array[0...50] of Integer;

type data = file of record

rok : Integer;

mies : 1..12;

dzien : 1..31;

end;

type karta_pracownika = record

numer : ShortInt;

pers : record

naz_imie : record

naz : string [20];

imie : string [15]

end;

end;

type wskaznik = ^zapis;

zapis = record

naglowek : Char;

tekst : string [50];

liczba : Integer

end;

type nazwa = procedure;

type nazwa = function;

type punkt = obiect

x,y : Integer;

end;

Typ

Zakres

Rodzaj liczb...

integer

-32768...32767

Ca艂kowite

byte

0...255

Ca艂kowite

longint

-2147483648...2147483647

Ca艂kowite

shortint

-128...127

Ca艂kowite

word

0...65535

Ca艂kowite

real

5.0x10-324...1.7x10308

Rzeczywiste

double

5.0x10-324...1.7x10308

Rzeczywiste

extended

3.4x10-4932..1.1x104932

Rzeczywiste

comp

-9 223 372 036 854 775 808...9 223 372 036 854 775 807

Rzeczywiste

Char

Pojedynczy znak

Tekstowy

String

艁a艅cuch znak贸w

Tekstowy

3) Zaj臋cia ko艅cowe:

  1. powt贸rzenie materia艂u z lekcji:

  1. ocena pracy s艂uchaczy.

  2. Zadanie domowe: Uczniowie zmieniaj膮 typ integer na typ zmiennoprzecinkowy real i obserwuj膮 efekt zmian jego dzia艂ania.

program zakres_liczb;

var a,b:integer;

c:integer;

d: longint;

e: shortint;

f: byte;

g: word;

begin

writeln ('Program demonstrujacy bledy w obliczaniu zakresu liczb ');

writeln ('podaj pierwsza liczbe do dodania: ');

readln(a);

writeln ('podaj druga liczbe do dodania: ');

readln(b);

c:=a+b;

d:=a+b;

e:=a+b;

f:=a+b;

g:=a+b;

writeln ('Suma wynosi : ',c,' (typ integer - zakres -32768 .. 32767)');

writeln ('Suma wynosi : ',d,' (typ longint)');

writeln ('Suma wynosi : ',e,' (typ shortint zakres -128 .. 127)');

writeln ('Suma wynosi : ',f,' (typ byte - zakres 0 .. 255)');

writeln ('Suma wynosi : ',g,' (typ word - zakres 0 .. 65535)');

readln;

end.

program zakres_liczb;

var a,b:integer;

c:integer;

d: longint;

e: shortint;

f: byte;

g: word;

begin

writeln ('Program demonstrujacy bledy w obliczaniu zakresu liczb ');

writeln ('podaj pierwsza liczbe do dodania: ');

readln(a);

writeln ('podaj druga liczbe do dodania: ');

readln(b);

c:=a+b;

d:=a+b;

e:=a+b;

f:=a+b;

g:=a+b;

writeln ('Suma wynosi : ',c,' (typ integer - zakres -32768 .. 32767)');

writeln ('Suma wynosi : ',d,' (typ longint)');

writeln ('Suma wynosi : ',e,' (typ shortint zakres -128 .. 127)');

writeln ('Suma wynosi : ',f,' (typ byte - zakres 0 .. 255)');

writeln ('Suma wynosi : ',g,' (typ word - zakres 0 .. 65535)');

readln;

end.

Typ

Zakres

Rodzaj liczb...

integer

-32768...32767

Ca艂kowite

byte

0...255

Ca艂kowite

longint

-2147483648...2147483647

Ca艂kowite

shortint

-128...127

Ca艂kowite

word

0...65535

Ca艂kowite

real

5.0x10-324...1.7x10308

Rzeczywiste

double

5.0x10-324...1.7x10308

Rzeczywiste

extended

3.4x10-4932..1.1x104932

Rzeczywiste

comp

-9 223 372 036 854 775 808...9 223 372 036 854 775 807

Rzeczywiste

Char

Pojedynczy znak

Tekstowy

String

艁a艅cuch znak贸w

Tekstowy

Typ

Zakres

Rodzaj liczb...

integer

-32768...32767

Ca艂kowite

byte

0...255

Ca艂kowite

longint

-2147483648...2147483647

Ca艂kowite

shortint

-128...127

Ca艂kowite

word

0...65535

Ca艂kowite

real

5.0x10-324...1.7x10308

Rzeczywiste

double

5.0x10-324...1.7x10308

Rzeczywiste

extended

3.4x10-4932..1.1x104932

Rzeczywiste

comp

-9 223 372 036 854 775 808...9 223 372 036 854 775 807

Rzeczywiste

Char

Pojedynczy znak

Tekstowy

String

艁a艅cuch znak贸w

Tekstowy

6



Wyszukiwarka

Podobne podstrony:
001 konspekt Pierwszy program w Paskalu
Ekonomia konspekt1
004 relacyjne drzewo katalog贸w
BLS 2010 stom [konspekt]ppt
Ekonomia konspekt6
22 Choroby wlosow KONSPEKTid 29485 ppt
konspekt dzieci , 膰wicz
farmakoterapia w als, konspekt+RKO2011 farmakoterapia+[CPR+EU]
004 etyka europejskaid 2320 ppt
Ekonomia konspekt9
RKO farmakoterapia [konspekt
Ekonomia konspekt14
metodologia badan politologicznych konspekt
Konspekt; odejmowanie liczb wymiernych
0 konspekt wykladu PETid 1826 Nieznany
Konspekt projektu I cz臋艣膰 2013
konspekt2

wi臋cej podobnych podstron