Wykłady 3-5. Typy danych w Pascalu. Skalarne typy danych. Działania na typach skalarnych. Funkcje standardowe. Funkcje standardowe

Podobne dokumenty
typ zakres sposob zapamietania shortint integer bajty (z bitem znaku) longint byte word

Pascal typy danych. Typy pascalowe. Zmienna i typ. Podział typów danych:

Wykład II PASCAL - podstawy składni i zmienne, - instrukcje wyboru, - iteracja, - liczby losowe

Wykład 15. Literatura. Kompilatory. Elementarne różnice. Preprocesor. Słowa kluczowe

Wykład II PASCAL - podstawy składni i zmienne, - instrukcje wyboru, - iteracja cz. 1

Wstęp do programowania. Różne różności

Programowanie Delphi obliczenia, schematy blokowe

Programowanie strukturalne. Opis ogólny programu w Turbo Pascalu

Informatyka I. Typy danych. Operacje arytmetyczne. Konwersje typów. Zmienne. Wczytywanie danych z klawiatury. dr hab. inż. Andrzej Czerepicki

PASCAL Kompendium. Środowisko TURBO PASCAL Skróty klawiaturowe. Edycja kodu Pomoc spis treści. Skopiowanie zaznaczonego bloku do schowka

Podstawy programowania

Algorytmy i struktury danych

Informatyka 1. Przetwarzanie tekstów

Instrukcje podsumowanie. Proste: - przypisania - wejścia-wyjścia (read, readln, write, writeln) - pusta - po prostu ; (średnik) Strukturalne:

Przykład programu Rozwiązanie równania postaci:

PLIKI TEKSTOWE F C E 30 0D 0A 42 6F 72 6C 61 6E 64 1A T U R B O _ P A S C A L _ 7. 0

Algorytmy i struktury danych. wykład 1

INSTRUKCJA PUSTA. Nie składa się z żadnych znaków i symboli, niczego nie robi. for i := 1 to 10 do {tu nic nie ma};

Język programowania PASCAL

Biblioteka standardowa - operacje wejścia/wyjścia

Zasady Programowania Strukturalnego

Pascal - wprowadzenie

Podstawy języka C++ Marek Pudełko

Wstęp do programowania. Pliki. Piotr Chrząstowski-Wachtel

DIAGRAMY SYNTAKTYCZNE JĘZYKA TURBO PASCAL 6.0

20. Pascal i łączenie podprogramów Pascala z programem napisanym w C

Pliki. Ze względu na typ zawartych w nich danych rozróżnia się trzy podstawowe rodzaje plików:

Wykład IV PASCAL - łańcuch znaków, - procedury i funkcje, - sortowanie bąbelkowe

Ćwiczenie 2 Wczytywanie i zapisywanie do plików tekstowych

Programowanie RAD Delphi

PoniŜej znajdują się pytania z egzaminów zawodowych teoretycznych. Jest to materiał poglądowy.

Podstawy Informatyki. Metalurgia, I rok. Wykład 3 Liczby w komputerze

P R OGRA M OW A N I E KOMPUTERÓW Ćwiczenia laboratoryjne

Kompendium wiedzy z Pascala

Programowanie. programowania. Klasa 3 Lekcja 9 PASCAL & C++

Komunikacja człowiek-komputer

Java Podstawy. Michał Bereta

Informatyka 1. Wyrażenia i instrukcje cd., ręczna symulacja, operacje wejścia/wyjścia

Podstawy programowania

Wstęp do programowania 2

Języki i metodyka programowania. Typy, operatory, wyrażenia. Wejście i wyjście.

PLIKI. Składnia deklaracji zmiennej plikowej: file of <typ>

Wstęp do programowania

OPERACJE NA PLIKACH. Podstawowe pojęcia:

DOSTAWA KONCENTRATORÓW SIECIOWYCH ORAZ URZĄDZENIA IPAD NA POTRZEBY SĄDU OKRĘGOWEGO W SZCZECINIE

Reprezentacja symboli w komputerze. Znaki alfabetu i łańcuchy znakowe. Programowanie Proceduralne 1

Programowanie obiektowe

Ada 95 #1/5 - typy. Typy skalarne. Hierarchia typów w Adzie. Typ znakowy. Typy dyskretne. Plan wykładu

Wprowadzenie Tablica jednowymiarowa Tablice wielowymiarowe Algorytmy Rekordy Pliki Zadania Bibliografia

Elementy Pascala Konstrukcja programu w Pascalu Typy danych

PODSTAWY PROGRAMOWANIA

Tablice. TYPE identyfikator tablicy = ARRAY [Indeksl,..., Indeksn] OF Typ; Dany identyfikator_ tablicy można wykorzystać w deklaracji VAR:

Instrukcja standardowa Writeln

Pracownia Komputerowa wyk ad VII

Funkcje w PL/SQL Funkcja to nazwany blok języka PL/SQL. Jest przechowywana w bazie i musi zwracać wynik. Z reguły, funkcji utworzonych w PL/SQL-u

Model warstwowy i architektura sieci komputerowej

Programowanie w języku Pascal

Wprowadzenie do języka Java

Pascal. 1. Pliki tekstowe. Przykład 1.1. Zapis do pliku tekstowego

Typy danych, zmienne i tablice. Tomasz Borzyszkowski

Kodowanie informacji. Przygotował: Ryszard Kijanka

#7 P r o g r a m... Rys Struktura zmiennej typu string

Programowanie w C++ Wykład 2. Katarzyna Grzelak. 5 marca K.Grzelak (Wykład 1) Programowanie w C++ 1 / 41

dr inż. Paweł Myszkowski

Definicja: Algorytmami sortowania zewnętrznego nazywamy takie algorytmy, które sortują dane umieszczone w pamięci zewnętrznej.

Elżbieta Kula - wprowadzenie do Turbo Pascala i algorytmiki

Visual Basic for Application (VBA)

Podstawy Programowania ELEMENTY PROGRAMU i TYPY DANYCH

Właściwości i metody obiektu Comment Właściwości

METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE. Wykład 02

Kurs programowania. Wykład 1. Wojciech Macyna. 3 marca 2016

Pracownia komputerowa. Dariusz Wardecki, wyk. VIII

Kiedy i czy konieczne?

Programowanie. Projektowanie funkcje programu tworzenie algorytmu i struktur danych. Programowanie implementacja algorytmu kompilacja programu

Podstawy programowania C. dr. Krystyna Łapin

Jerzy Nawrocki, Wprowadzenie do informatyki

Informatyka 1. Wyrażenia i instrukcje, złożoność obliczeniowa

2 Przygotował: mgr inż. Maciej Lasota

Powtórka algorytmów. Wprowadzenie do języka Java.

Podstawy programowania skrót z wykładów:

Tablice, funkcje - wprowadzenie

Programowanie proceduralne INP001210WL rok akademicki 2018/19 semestr letni. Wykład 6. Karol Tarnowski A-1 p.

Kody liczbowe - Naturalny Kod Binarny (NKB) Kody liczbowe - Kod BCD. Kody liczbowe - Przechowywanie liczb w kodzie BCD

WIADOMOŚCI WSTĘPNE WPROWADZENIE DO JĘZYKA TURBO PASCAL. Klawisze skrótów. {to jest właśnie komentarz, moŝna tu umieścić dowolny opis}

Kodowanie liczb. Kodowanie znaków. Reprezentacja liczb w systemach komputerowych Reprezentacja stałoprzecinkowa. dr inŝ.

Język ludzki kod maszynowy

Programowanie w C++ Wykład 2. Katarzyna Grzelak. 4 marca K.Grzelak (Wykład 1) Programowanie w C++ 1 / 44

MATERIAŁY DO ZAJĘĆ II

2.Sprawdzanie czy podana liczba naturalna jest pierwsza Liczba pierwsza to liczba podzielna tylko przez 1 i przez siebie.

Kurs Turbo Pascal 7.0

Visual Basic for Application (VBA)

Reprezentacja symboli w komputerze.

Programowanie w języku Pascal

Oferta Filos Logos. kursy językowe tłumaczenia. C entru m J ę z yków Obcych Filo s Logos. Z mi ł o ś c i do j ę z yków

Wstęp do programowania INP003203L rok akademicki 2018/19 semestr zimowy. Laboratorium 2. Karol Tarnowski A-1 p.

Zadanie 04 Ktory z ponizszych typow danych w jezyku ANSI C jest typem zmiennoprzecinkowym pojedynczej precyzji?

Ćwiczenie nr 6. Poprawne deklaracje takich zmiennych tekstowych mogą wyglądać tak:

1. System pozycyjny zapisu liczb

Microsoft IT Academy kurs programowania

Wprowadzenie do języka Pascal

Transkrypt:

Wykłady 3-5 Typy danych w Pascalu Typy skalarne Typy strukturalne Skalarne Strukturalne Wskaźnikowe Typy danych w Pascalu Typy skalarne - uporządkowane i skończone zbiory wartości. Typ skalarny w Pascalu to typ prosty albo typ real Typy proste: 1. Typy elementarne - integer, char, Boolean, wyliczeniowy 2. Typy okrojone - ograniczenie zakresu typu elementarnego Skalarne typy danych typy numeryczne całkowite (integer, word, longint, short, byte) rzeczywiste (real, single, double, extended) typ znakowy (char) typ logiczny (boolean) Działania na typach skalarnych typ całkowity (integer, word, longint, short, byte) 12-21 + * div mod = <> < <= > >= typ rzeczywisty (real, single, double, extended) 12.3 2e-23 + * / = <> < <= > >= typ znakowy (char) a b #123 = <> < <= > >= typ logiczny (boolean) true false not or and = <> Funkcje standardowe abs(x) integer integer sqr(x) real real sin(x) cos(x) arctan(x) real real exp(x) ln(x) sqrt(x) Funkcje standardowe odd(i) true dla nieparzystych trunc(x) trunc(2.7)=2 trunc(-2.7)=-2 round(x) ord(z) char integer chr(i) integer char succ(i) pred(i) trunc(x+0.5) dla x>=0 trunc(x-0.5) dla x<0 1

Turbo Pascal Java Liczby całkowite typ zakres rozmiar shortint -128..127 1 integer -32768..32767 2 longint -2147483648..214748647 4 byte 0..255 1 word 0..65535 2 typ zakres rozmiar byte -128..127 1 short -32768..32767 2 int -2147483648..214748647 4 long -2^63..2^63-1 8 Turbo Pascal Java Liczby rzeczywiste typ zakres dokładność rozmiar real 2.9E-39.. 1.7E38 11-12 6 single 1.5E-45.. 3.4E38 7-8 4 double 5.0E-324.. 1.7E308 15-16 8 extended 3.4E-4932.. 1.1E4932 19-20 10 comp -9.2E18.. 9.2E18 19-20 8 typ zakres dokładność rozmiar float 1.5E-45.. 3.4E38 7-8 4 double 5.0E-324.. 1.7E308 15-16 8 Kod ASCII Kod Znak Kod Znak Kod Znak Kod Znak 0 Null 32 (spacja) 64 @ 96 ` 1 Start Of Heading 33! 65 A 97 a 2 Start of Text 34 66 B 98 b 3 End of Text 35 # 67 C 99 c 4 End Of Transmission 36 $ 68 D 100 d 5 Enquiry 37 % 69 E 101 e 6 Acknowledge 38 & 70 F 102 f 7 Bell 39 71 G 103 g 8 Backspace 40 ( 72 H 104 h 9 Horizontal Tab 41 ) 73 I 105 i 10 Line Feed 42 * 74 J 106 j 11 Vertical Tab 43 + 75 K 107 k 12 Form Feed 44, 76 L 108 l 13 Carriage Return 45-77 M 109 m 14 Shift Out 46. 78 N 110 n 15 Shift In 47 / 79 O 111 o 16 Data Link Escape 48 0 80 P 112 p 17 Device Control 1 (XON) 49 1 81 Q 113 q 18 Device Control 2 50 2 82 R 114 r 19 Device Control 3 (XOFF) 51 3 83 S 115 s 20 Device Control 4 52 4 84 T 116 t 21 Negative Acknowledge 53 5 85 U 117 u 22 Synchronous Idle 54 6 86 V 118 v 23 End of Transmission Block 55 7 87 W 119 w 24 Cancel 56 8 88 X 120 x 25 End of Medium 57 9 89 Y 121 y 26 Substitute 58 : 90 Z 122 z 27 Escape 59 ; 91 [ 123 { 28 File Separator 60 < 92 \ 124 29 Group Separator 61 = 93 ] 125 } 30 Record Separator 62 > 94 ^ 126 ~ 31 Unit Separator 63? 95 _ 127 (delete) Standard ISO-8859 Strona J zyki kodowa iso-8859-1 afrykanerski, alba ski, angielski, baskijski, du ski, fareski, fi ski, francuski, galicyjski, hiszpa ski, irlandzki, islandzki, katalo ski, niderlandzki, niemiecki, norweski, portugalski, szkocki, szwedzki, włoski iso-8859-2 chorwacki, czeski, polski, rumu ski, serbski, słowacki, słowe ski, w gierski iso-8859-3 esperanto, malta ski iso-8859-4 esto ski, grenlandzki, lapo ski, litewski, łotewski iso-8859-5 białoruski, bułgarski, macedo ski, rosyjski, serbski, ukrai ski iso-8859-6 arabski iso-8859-7 grecki iso-8859-8 hebrajski iso-8859-9 turecki iso-8859-10 eskimoski, lapo ski iso-8859-11 tajski iso-8859-13 litewski, łotewski iso-8859-14 breto ski, gaelicki, szkocki, walijski Unicode Jak wyświetlić tekst wielojęzyczny? Jak wyświetlić różne alfabety? (cyrylica, alfabety: hebrajski, chiński, japoński, koreański czy tajlandzki) Unicode - wspólny dla całego świata zestaw znaków. Unicode UTF-8 128 znaków (ASCII) kodowanych jest za pomocą 1 bajta. 1920 znaków (alfabety łaciński, grecki, armeński, hebrajski, arabski, koptyjski i cyrylica) kodowanych jest za pomocą 2 bajtów. 63488 znaków (m.in. alfabety chiński i japoński) kodowanych jest za pomocą 3 bajtów. Pozostałe 2147418112 znaki (jeszcze nie przypisane) można zakodować za pomocą 4, 5 lub 6 bajtów. UCS-2 Wszystkie znaki zapisywane są za pomocą 2 bajtów. Kodowanie to pozwala na zapisanie tylko 65536 początkowych znaków Unikodu. UCS-4 Wszystkie znaki zapisywane są za pomocą 4 bajtów. 2

Unicode (UTF-8) Kodowanie polskich znaków 00000000 0000007F: 0xxxxxxx 00000080 000007FF: 110xxxxx 10xxxxxx 00000800 0000FFFF: 1110xxxx 10xxxxxx 10xxxxxx 00010000 001FFFFF: 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx 00200000 03FFFFFF: 111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 04000000 7FFFFFFF: 1111110x 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx Znak ISO 8859-2 CP-1250 Unicode UTF-8 161 165 261 196 133 198 198 263 196 135 202 202 281 196 153 ł 163 163 322 197 130 209 209 324 197 132 ó 211 211 211 195 179 166 140 347 197 155 172 143 378 197 186 175 175 380 197 188 177 185 260 196 132 230 230 262 196 134 234 234 280 196 152 Ł 179 179 321 197 129 241 241 323 197 131 Ó 243 243 243 195 147 182 156 346 197 154 188 159 377 197 185 191 191 379 197 187 Typy strukturalne w Pascalu tablice (array) łańcuchy znaków (string) rekordy (record) pliki (file) zbiory (set) Typ tablicowy w Pascalu Definiowanie typów: type tab1=array[min..max] of T; tab2=array[1..max1] of array[1..max2] of T; tab3=array[1..max1] of tab1; tab4=array[1..max1,1..max2] of T; Deklarowanie zmiennych: t1,t2 : tab1; Odwołanie do elementów: t1[a+3]:=t1[a+4]; Cechy: statyczny rozmiar możliwość podstawiania zmiennych tablicowych Łańcuch znaków write( to jest tekst ); Pascal printf( to jest tekst ); Język C string; string[80]; string[255]; Przykład: string[10]; długość 1 2 3 4 5 6 7 8 9 10 Operacje na łańcuchach a,b : string[10]; Składanie: a:= jeden ; b:= dwa ; a:=b+b; Wczytywanie i wypisywanie: write(a); dwadwa write(b[2]); w read(a); Porównywanie: if a<>b then write( różne ); 3

Operacje na łańcuchach c.d. Przykładowe funkcje: length(s:string):integer pos(sub:string; s:string):byte concat(s1, [s2..sn]:string):string copy(s:string; ind:integer; count:integer):string Przykładowe procedury: insert(s1:string; s:string; ind:integer) delete( s:string; ind:integer; count:integer) Rekordy type zespolona=record re:real; im:real; z1,z2:zespolona; Nadawanie wartości: z1.re:=5; z1.im:=6; Podstawianie rekordów: z2:=z1; Definicje i deklaracje: Rekordy - przykład type data = record dzien : 1..31; miesiac : 1..12; rok : 0..3000; type osoba = record imie : string[20]; nazwisko : string[20]; urodziny : data; kobieta : boolean; rob : osoba; tab : array[1..100] of osoba; 1/2 Przypisania: Podstawienie rekordów: Dostęp: Rekordy - przykład rob.imie := Jola ; rob.urodziny.dzien := 7; rob.urodziny.miesiac := 6; rob.kobieta := true; tab[1] := rob; if tab[1].kobieta then write(tab[1].imie); 2/2 Pliki Operacje wykonywane na plikach Dostęp do pliku: sekwencyjny (taśmy) swobodny (dyski) file of T; file of integer; file of osoba; file of char; (text) Struktura o elementach tego samego typu eof Deklarowanie f : file of T; Procedury i funkcje: assign(f, nazwa); reset(f); rewrite(f); read(f, zm); write(f, zm); close(f); eof(f); seek(f, pos); (open, fopen) 4

Pliki tekstowe Kopiowanie pliku tekstowego Deklarownie: f : text; Procedury i funkcje: readln( ) writeln( ) eoln( ) Znak końca linii: DOS CR LF UNIX LF MacOS CR {file of char} assign(f1, plik1.txt ); assign(f2, plik2.txt ); reset(f1); rewrite(f2); while not eof(f1) do while not eoln(f1) do read(f1,ch); write(f2,ch) readln(f1); writeln(f2) close(f1); close(f2); Zbiory Zastosowanie zbiorów f : set of T; set of char; set of integer; T - typ prosty if (a<=3)and(a>=0)or(a>=10)and(a<=12) then... if a in [0..3, 10..12] then... Operacje na zbiorach: + - * suma, różnica, iloczyn in przynależność elementu do zbioru = <> równość, różność <= >= zawieranie się zbiorów := podstawianie sam : set of char; sam := [ a, e, i, o, u, y ]; if not (zn in sam) then write( spółgłoska ); Przykład wykorzystania zbiorów: Eratostenes (ur. 276 p.n.e. w Cyrenie, zm. 194 p.n.e.) Sito Eratostenesa 2 3 4 5 6 7 8 9 10 11 12 13 14 2 3 5 7 9 11 13 2 3 5 7 11 13 Sito Eratostenesa const n = 1000; sito,pierwsze : set of 2..n; next,j : integer; sito:=[2..n]; pierwsze:=[ ]; next:=2; repeat while not (next in sito) do next:=succ(next); pierwsze:=pierwsze+[next]; j:=next; while j<=n do sito:=sito-[j]; j:=j+next; until sito=[ ]; end. 5