Typy złożone, case, stałe. Typ zbiorowy type typ_zb = set of typ_podstawowy; Typem podstawowym może być tylko typ porządkowy. Typem podstawowym może być

Slides:



Advertisements
Podobne prezentacje
Tablice 1. Deklaracja tablicy
Advertisements

Katarzyna Szafrańska kl. II ti
PRAM.
PASCAL (3) dr Anna Kwiatkowska.
PROGRAMOWANIE STRUKTURALNE
PROGRAMOWANIE STRUKTURALNE
OBJECT PASCAL Marzena Szałas.
Współprogramy III Ten wykład ma na celu pokazanie kolejnej ciekawej możliwości, którą oferują współprogramy. Wspólprogramy reprezentujące wyrażenia regularne.
ZŁOŻONOŚĆ OBLICZENIOWA
Turbo pascal – instrukcje warunkowe, iteracyjne,…
Materiały do zajęć z przedmiotu: Narzędzia i języki programowania Programowanie w języku PASCAL Część 3: Podstawowe elementy języka.
Materiały do zajęć z przedmiotu: Narzędzia i języki programowania Programowanie w języku PASCAL Część 7: Procedury i funkcje © Jan Kaczmarek.
Materiały do zajęć z przedmiotu: Narzędzia i języki programowania Programowanie w języku PASCAL Część 8: Wykorzystanie procedur i funkcji © Jan Kaczmarek.
Materiały do zajęć z przedmiotu: Narzędzia i języki programowania Programowanie w języku PASCAL Część 6: Tablice, rekordy, zbiory.
Materiały do zajęć z przedmiotu: Narzędzia i języki programowania Programowanie w języku PASCAL Część 5: Typy porządkowe, wyliczeniowe i okrojone. Definiowanie.
Rekurencja Copyright, 2000 © Jerzy R. Nawrocki Wprowadzenie do informatyki Wykład.
Imperatywne modele obliczeń Copyright, 2001 © Jerzy R. Nawrocki Wprowadzenie do.
Rekurencja Copyright, 2001 © Jerzy R. Nawrocki Wprowadzenie do informatyki Wykład.
Imperatywne modele obliczeń Copyright, 2003 © Jerzy R. Nawrocki Teoretyczne podstawy.
Programowanie imperatywne i granice obliczalności Copyright, 2004 © Jerzy R. Nawrocki
Rekursja Copyright, 2004 © Jerzy R. Nawrocki Teoretyczne podstawy informatyki.
Kurs Pascala – spis treści
WYZWALACZE (TRIGGERY) Wyzwalacz jest specjalnym rodzajem procedury składowanej, która może być wykonana w odpowiedzi na jedną z trzech sytuacji: UPDATE.
Pakiety i ATD 1 Definicja. Pakietem albo jednostką programową nazywamy grupę logicznie powiązanych elementów, które mogą być typami, podtypami, obiektami.
Rekordy 1 Definicja Typ strukturalny nazywamy typem rekordowym, jeżeli zawiera pewną liczbę nazwanych składowych, które mogą być różnych typów. Dostęp.
Wykład 2 struktura programu elementy języka typy zmienne
PASCAL Dr Anna Kwiatkowska.
Wprowadzenie do programowania w języku Turbo Pascal
Pliki. Pliki Pliki jako pamięć nieulotna Pliki jako pamięć nieulotna Nazwy, atrybuty i prawa dostępu Nazwy, atrybuty i prawa dostępu atrybuty atrybuty.
Typy wyrażenia, schematy blokowe, writeln, readln, if, pętle
Typy wskaźnikowe, dynamiczne struktury danych
Podprogramy.
PROGRAMOWANIE STRUKTURALNE
PROGRAMOWANIE STRUKTURALNE WYKŁAD 2
Schemat Hornera Mgr inż. Michał Szucki.
Słowa kluczowe oraz nazwy obiektów i klas rozpoczynaj od dużej litery np. Loop, Dim, FileStream Rozpoczynaj nazwę zmiennej od małej litery stosując styl.
Język PASCAL – podstawy Turbo Pascal: procedury, funkcje
Pliki tekstowe. Operacje na plikach. mgr inż. Agata Pacek.
Andrzej Jędryczkowski Nie da się napisać większego programu bez podziału go na części zwane podprogramami. Podprogram to wyróżniona część programu.
Algorytmy z przykładami w Turbo Pascal 7.0
© A. Jędryczkowski – 2006 r. © A. Jędryczkowski – 2006 r.
Pierwsze programy.
Wyrażenia w Turbo Pascalu.
Procedury i funkcje.
Wykład 5 – typy – stałe – tablice – elementy grafiki.
1. Język ObjectPascal - typ tablicowy (array)
Podstawy programowania
Pliki Pojęcie i rodzaje plików Definicja typu plikowego Operacje wykonywane na plikach elementowych.
1 Wykład 8 Podprogramy. 2 Pojęcie i istota stosowania dzielenie programu na części (logicznie spójne) - nazwane - niezależne od pozostałych części - z.
Programowanie strukturalne i obiektowe
Zbiory i rekordy mgr inż. Agata Pacek. Deklaracja typu zbiorowego (określa ilość elementów w zbiorze) type biegi=set of 0..6; Definiowanie zmiennej typu.
Programowanie strukturalne i obiektowe
Instrukcja warunkowa i wyboru
Informatyka MPZI Wykład 4 Podprogramy Pliki Typ zbiorowy Rekurencja.
Programowanie baz danych
Informatyka MZT1 Wykład 6 Iteracje while i repeat Tablice Rekordy
Wykład 10 typ zbiorowy rekurencja.
Składnia instrukcji warunkowej if…
1 Wykład 7 sortowanie BitButton format tekstu rysunki typ rekordowy.
Ogólna struktura programu w TP
Podstawy języka Instrukcje - wprowadzenie
Informatyka 2 MPDI Wykład 9 Delphi tablice, rekordy.
Informatyka MPDI2 Wykład 10 DELPHI cd. - zmienne tablicowe,
Instrukcje wyboru.
Podstawowe struktury danych. Typy danych.
Podsumowanie wiedzy MPDI2 sem.3 INFORMATYKA. tworzenie nowego pliku i katalogu, nawigacja po katalogach, listowanie zawartości katalogu, zmiana nazw,
Wstęp do programowania Wykład 2 Dane, instrukcje, program.
P ASCAL Definicje, deklaracje, podstawowe instrukcje 1.
Wykład 1 Informatyka II MPZI2 sem.letni. Tablice Tablice deklarujemy array [ lista typów indeksów ] of typ bazowy (składowych) np. var t1,t2:array [1..5,
Zapis prezentacji:

Typy złożone, case, stałe

Typ zbiorowy type typ_zb = set of typ_podstawowy; Typem podstawowym może być tylko typ porządkowy. Typem podstawowym może być tylko typ porządkowy. W TP tylko typ okrojony o granicach należących do przedziału albo typ wyliczeniowy o liczbie elementów nie większej niż 256. W TP tylko typ okrojony o granicach należących do przedziału albo typ wyliczeniowy o liczbie elementów nie większej niż 256. Reprezentacja zbiorów w pamięci Reprezentacja zbiorów w pamięci

Typ zbiorowy type tok=0..20; var a:set of tok; { 21 potencjalnych elementów } i:tok; i:tok;begin a := [4,9]; { 4 9 } a := [4,9]; { 4 9 } a := a + [1,4,5]; { suma zbiorów } { } a := a + [1,4,5]; { suma zbiorów } { } a := a * [1,2,9]; { przecięcie } { 1 9 } a := a * [1,2,9]; { przecięcie } { 1 9 } a := a - [3,9]; { różnica } { 1 } a := a - [3,9]; { różnica } { 1 } for i:=0 to 20 do for i:=0 to 20 do if i in a then writeln(i,': należy'); { tylko 1 } if i in a then writeln(i,': należy'); { tylko 1 } writeln(sizeof(a)); { 3 (bajty) } writeln(sizeof(a)); { 3 (bajty) } end.

Typ rekordowy type t_rek = record record nazwa_pola1: typ_1; nazwa_pola1: typ_1; nazwa_pola2, nazwa_pola3: typ_2; nazwa_pola2, nazwa_pola3: typ_2; { można wymienić kilka nazw pól } { można wymienić kilka nazw pól } { po przecinkach } { po przecinkach } nazwa_polan: typ_n nazwa_polan: typ_n end; end; reprezentacja rekordów w pamięci reprezentacja rekordów w pamięci

Typ rekordowy type tr = record record zx: real; zx: real; nazwa: string; nazwa: string; j,k: integer j,k: integer end; end;var r: tr; r: tr;begin r.nazwa := Łańcuch; r.nazwa := Łańcuch; r.j := 19; r.j := 19; r.zx := 4.445; r.zx := 4.445; writeln(3*r.j); { 57 } writeln(3*r.j); { 57 } writeln(sizeof(r)) {266} writeln(sizeof(r)) {266}end.

Typ rekordowy – instrukcja with uznawana za potencjalne źródło błędów uznawana za potencjalne źródło błędów przysłanianie nazw przez pola rekordu przysłanianie nazw przez pola rekordu (... początek jak poprzednio) begin with r do with r do begin begin nazwa := Łańcuch; nazwa := Łańcuch; j := 19; j := 19; zx := 4.445; zx := 4.445; writeln(3*j) writeln(3*j) end; end;end.

Typ rekordowy – instrukcja with with r1, r2, r3,..., rn do instrukcja; instrukcja; jest równoważne: with r1 do with r2 do with r2 do with rn do with rn do instrukcja; instrukcja;

Typ rekordowy z wariantami type tr = record record p1: real; p1: real; p2,p3: integer; p2,p3: integer; case p4: boolean of { p4: opcjonalne } case p4: boolean of { p4: opcjonalne } false: (k:integer; s:string); false: (k:integer; s:string); true: (t: array [1..10] of real) true: (t: array [1..10] of real)end; reprezentacja pamięciowa rekordu z wariantami reprezentacja pamięciowa rekordu z wariantami

Typ rekordowy z wariantami programista odpowiada za poprawną obsługę rekordu programista odpowiada za poprawną obsługę rekordu wszystkie identyfikatory muszą być unikalne wszystkie identyfikatory muszą być unikalne kolejność: najpierw część stała, później zmienna (na jej końcu może być kolejna zmienna, itd.) kolejność: najpierw część stała, później zmienna (na jej końcu może być kolejna zmienna, itd.)

Instrukcja wyboru case słowo kluczowe takie samo jak w rekordzie z wariantami. słowo kluczowe takie samo jak w rekordzie z wariantami.

Instrukcja wyboru case case wyrażenie of przypadek1: instrukcja1; przypadek1: instrukcja1; przypadekn: instrukcjan; przypadekn: instrukcjan; else{opcjonalne} instrukcja instrukcjaend

Instrukcja wyboru case case wyrażenie of przypadek1: instrukcja1; przypadek1: instrukcja1; przypadekn: instrukcjan; przypadekn: instrukcjan; else{opcjonalne} instrukcja instrukcjaend przypadek to lista wartości takiego typu, jak wyrażenie, (musi to być jeden z typów porządkowych), oddzielonych przecinkami. przypadek to lista wartości takiego typu, jak wyrażenie, (musi to być jeden z typów porządkowych), oddzielonych przecinkami.

Instrukcja wyboru case program przyk_case; var Ch: char; begin readln(Ch); readln(Ch); case Ch of case Ch of 'A'..'Z', 'a'..'z': WriteLn('Litera'); 'A'..'Z', 'a'..'z': WriteLn('Litera'); '0'..'9': WriteLn('Cyfra'); '0'..'9': WriteLn('Cyfra'); '+', '-', '*', '/': WriteLn('Operator'); '+', '-', '*', '/': WriteLn('Operator'); else else WriteLn('Znak specjalny'); WriteLn('Znak specjalny'); end; end; end.

Stałe Po co nam stałe? Po co nam stałe? jak je deklarujemy? jak je deklarujemy? const nazwa_stałej = wyrażenie; const MaxData = 1024 * ; MaxData = 1024 * ; NumChars = Ord('Z') - Ord('A') + 1; NumChars = Ord('Z') - Ord('A') + 1; Message = 'Hello world...'; Message = 'Hello world...';

Zmienne inicjowane TP umożliwia deklarowanie zmiennych z jednoczesnym nadaniem im początkowej wartości TP umożliwia deklarowanie zmiennych z jednoczesnym nadaniem im początkowej wartości Uwaga: składnia jest myląca! Uwaga: składnia jest myląca! Uwaga: To nie są stałe! Uwaga: To nie są stałe! const nazwa_zmiennej: typ_zmiennej = wartość_początkowa; wartość_początkowa;

Zmienne inicjowane const x: real = ; x: real = ; r: integer = 1999; r: integer = 1999; s: string = 'Halo'; s: string = 'Halo'; t: array[1..5] of integer = ( 2, 3, 5, 7, 11); t: array[1..5] of integer = ( 2, 3, 5, 7, 11); d: array['x'..'y',0..3] of char = (('a','b','c','d'), d: array['x'..'y',0..3] of char = (('a','b','c','d'), ('e','f','g','h')); ('e','f','g','h')); k: record x,y:real; n:integer end = (x:1.2; y:3.4; n:5); k: record x,y:real; n:integer end = (x:1.2; y:3.4; n:5); tr: array [1..3] of record n,m:integer; t:array[6..7] of char end = tr: array [1..3] of record n,m:integer; t:array[6..7] of char end = ( (n:3; m:5; t:('q','w')), (n:3; m:5; t:('q','w')), (n:8; m:4; t:('e','r')), (n:8; m:4; t:('e','r')), (n:7; m:1; t:('t','y')) (n:7; m:1; t:('t','y')) ); );