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.

Slides:



Advertisements
Podobne prezentacje
Tablice 1. Deklaracja tablicy
Advertisements

Katarzyna Szafrańska kl. II ti
Język C/C++ Funkcje.
Programowanie obiektowe PO PO - LAB 4 Wojciech Pieprzyca.
Programowanie obiektowe
PASCAL (3) dr Anna Kwiatkowska.
PROGRAMOWANIE STRUKTURALNE
PROGRAMOWANIE STRUKTURALNE
WYKŁAD 2 SYSTEMY EKSPERTOWE cz.2.
OBJECT PASCAL Marzena Szałas.
Instrukcje warunkowe Zajęcia 5.
ZŁOŻONOŚĆ OBLICZENIOWA
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ęść 4: Wyrażenia i operatory. Podstawowe instrukcje języka.
Programowanie imperatywne i język C Copyright, 2004 © Jerzy R. Nawrocki Wprowadzenie.
Programowanie imperatywne i język C
Programowanie imperatywne i język C Copyright, 2004 © Jerzy R. Nawrocki Wprowadzenie.
Katarzyna Szafrańska kl. II TI
Struktury.
Tablice.
PODSTAWY JĘZYKA PHP 1. czym jest 2. składnia 3. wersje 4. bazy danych
Tablice jednowymiarowe 1
Typy danych – podstawy 1 W Adzie wszystkie dane muszą być określonego typu. Definicja Typ danych (data type) jest to zbiór wartości i operacji, które można.
Typy prywatne 1 Typy prywatne W Adzie typy prywatne (private types) służą do bezpiecznego udostępniania danych zdefiniowanych w pakiecie, z którego korzysta.
Wykład 2 struktura programu elementy języka typy zmienne
Wstęp do programowania obiektowego
PASCAL Dr Anna Kwiatkowska.
PASCAL (2) 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
Podprogramy.
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ć
PROGRAMOWANIE STRUKTURALNE
PROGRAMOWANIE STRUKTURALNE WYKŁAD 2
Schemat Hornera Mgr inż. Michał Szucki.
Programowanie w języku Fortran 95
Programowanie imperatywne i język C Copyright, 2006 © Jerzy R. Nawrocki Wstęp do.
Podstawy układów logicznych
Podstawy informatyki (4)
Podstawy programowania
Programowanie strukturalne i obiektowe
Funkcje w Pascalu Przypomnienie wiadomości o procedurach Prowadzący: Anna Kaleta Piotr Chojnacki.
Metodyka nauczania Informatyki
Wyrażenia w Turbo Pascalu.
Procedury i funkcje.
Wykład 5 – typy – stałe – tablice – elementy grafiki.
Podstawy programowania w języku C i C++
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 KOMPUTERÓW
Informatyka MPZI Wykład 4 Podprogramy Pliki Typ zbiorowy Rekurencja.
Programowanie baz danych
Visual Basic for Applications Poziom podstawowy Zajęcia 2
Wykład 10 typ zbiorowy rekurencja.
Kurs języka C++ – wykład 9 ( )
Projektowanie stron WWW
Programowanie strukturalne i obiektowe C++
Algorytmika.
Model obiektowy bazy danych
Temat 4: Typy danych.
Informatyka +.
Podstawowe struktury danych. Typy danych.
Typy danych, klucz podstawowy, klucz obcy
Programowanie imperatywne i język C Copyright, 2007 © Jerzy R. Nawrocki Wstęp do.
P ASCAL Definicje, deklaracje, podstawowe instrukcje 1.
Typy wyliczeniowe, kolekcje
Programowanie Obiektowe – Wykład 2
Zapis prezentacji:

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 typów. Instrukcja wyboru © Jan Kaczmarek

Przypomnienie o typach danych ! Określenie typu danych to określenie, jaki jest zbiór wartości, które może przyjmować dany obiekt. Z typem związany jest ponadto zbiór operacji, jakie można wykonać na jego wartościach. Najprostsze typy danych w Pascalu to typy standardowe (predefiniowane): - całkowite (integer, shortint, smallint, longint, byte, word) - rzeczywiste (real, single, double, extended) - logiczny (Boolean) - znakowy (char) - łańcuchowe (string, string[zakres]) Programista może sam określać (opisywać) bardziej złożone typy, może też definiować identyfikatory odpowiadające tym opisom.

Typy porządkowe Typy całkowite, typ logiczny i typ znakowy tworzą specjalny rodzaj typów nazywanych typami porządkowymi. Do typów porządkowych nie zaliczamy jednak typów rzeczywistych i łańcuchowych. Elementy typów porządkowych są ustawione w określonej kolejności. Każdy element, z wyjątkiem pierwszego, ma swój poprzednik (poprzedni element). Każdy element, z wyjątkiem ostatniego, ma swój następnik (następny element). Każdy element ma też swój numer porządkowy w typie, który jest wartością funkcji standardowej ord(x), gdzie x jest argumentem typu porządkowego. Pierwszy element ma numer 0, drugi 1 itd.(z wyjątkiem typów całkowitych, dla których ord(x)=x).

Typy porządkowe Na argumentach typu porządkowego określone są funkcje standardowe: pred(x)wartością jest poprzednik argumentu x succ(x)wartością jest następnik argumentu x odd(x)wartością jest TRUE, gdy x (typu całkowitego) jest nieparzyste, a FALSE, gdy x jest parzyste Na argumentach typu porządkowego możemy wykonać dwie standardowe operacje: dec(x)równoważne x := pred(x)(dekrementacja) inc(x)równoważne x := succ(x)(inkrementacja) Do typów porządkowych zaliczamy także dwa rodzaje typów, które nie są predefiniowane: - typy wyliczeniowe - typy okrojone

Typy wyliczeniowe Typ wyliczeniowy nie jest predefiniowany, tzn. wymaga opisu. Opis typu wyliczeniowego ma następującą postać: (lista-identyfikatorów) gdzie lista-identyfikatorów zawiera identyfikatory tworzące zbiór wartości danego typu, oddzielone przecinkami. Obiekty, które są danego typu wyliczeniowego mogą przyjmować wartości, które są z tego zbioru. Typ wyliczeniowy stosuje się dla zbiorów o niewielkiej liczbie elementów (maksymalna ilość elementów wynosi 256), na których nie wykonuje się operacji arytmetycznych. * Identyfikatory na liście muszą być różne. * Ten sam identyfikator nie może wystąpić w dwóch różnych typach. * Porządek w typie wyliczeniowym jest zgodny z kolejnością na liście. * Wartości zmiennych tego typu nie można wypisać instrukcją write (writeln). Przykłady: type barwa = (bialy, czerwony, zielony, niebieski, czarny); kolor = (trefl, karo, kier, pik, bez_atu); waluta = (jen, korona, zloty, dolar, euro, funt);

Typy okrojone Typ okrojony nie jest predefiniowany, tzn. wymaga opisu. Opis typu okrojonego ma następującą postać: stala-1.. stala-2 gdzie stala-1 i stala-2 są stałymi tego samego typu porządkowego, nazywanego typem bazowym dla danego typu okrojonego, przy czym ord(stala-1) <= ord(stala-2). Obiekty, które są danego typu okrojonego mogą przyjmować wartości, które są ze zbioru ograniczonego wartościami podanych stałych. Porządek w typie okrojonym jest zgodny z porządkiem w typie bazowym. Przykłady: type zakres = ;{typ bazowy integer} liczba_lat = ;{typ bazowy byte} cyfra = 0.. 9;{typ bazowy char} znaki = !.. +;{typ bazowy char} silna_waluta = dolar.. funt;{typ bazowy waluta}

Definiowanie typów Definicja typów ma postać: type sekwencja-definicji-typów gdzie każdy element sekwencji-definicji-typów ma postać: identyfikator-typu = opis-typu; identyfikator-typu to identyfikator, a opis-typu to inny identyfikator lub opis typu, który jest niestandardowy. Definicja typów powinna wystąpić w części {definicje i deklaracje} po deklaracjach modułów i stałych, a przed deklaracjami zmiennych. Przykład: type marka = (fiat, opel, honda, bmw, porsche, jaguar); zakres = ; duza_litera = A.. Z;

Typy porządkowe w instrukcji dla (for...) Instrukcja dla ma jedną z dwóch postaci: for z:=w1 to w2 do instrukcja; for z:=w1 downto w2 do instrukcja; gdzie w ogólnym przypadku z jest zmienną typu porządkowego (tzw. zmienną sterującą), a w1 i w2 to wyrażenia typu porządkowego, wyliczane na początku wykonania instrukcji dla jeden raz. Wykonanie instrukcji dla w ogólnym przypadku ilustrują następujące fragmenty schematu blokowego:

z:= w1 z := succ(z)z <= w2 instrukcja TAK NIE z:= w1 z := pred(z)z >= w2 instrukcja TAK NIE for z:=w1 to w2 do instrukcja; for z:=w1 downto w2 do instrukcja;

Instrukcja wyboru (case …) case selektor of case selektor of sekwencja-instrukcji-wyboru sekwencja-instrukcji-wyboru end; else instrukcja end; selektor to dowolne wyrażenie typu porządkowego sekwencja-instrukcji-wyboru to lista instrukcji, z których każda poprzedzona jest stałą wyboru typu porządkowego, postaci: stała lub stała.. stała bądź listą stałych tej postaci oddzielonych przecinkami. Wykonanie instrukcji wyboru polega na wyznaczeniu wartości selektora i wykonaniu tylko tej z instrukcji wewnętrznych, która jest poprzedzona stałą równą obliczonej wartości selektora. Jeśli żadna z instrukcji wewnętrznych nie jest poprzedzona stałą równą obliczonej wartości selektora, to wykonywana jest instrukcja występująca po else (o ile występuje) lub nic się nie wykonuje.

program wybor; {program ilustruje wykonanie instrukcji case} {$APPTYPE CONSOLE} uses SysUtils; var x, y : integer; begin readln (x); readln (y); case x-y of 0: writeln (roznica liczb wynosi zero'); , 1..4: writeln (roznica liczb jest miedzy -4 a -1 lub miedzy 1 a 4'); , 5..9: writeln(roznica liczb jest miedzy -9 a -5 lub miedzy 5 a 9'); else writeln ('roznica liczb poza przedzialem'); end; end.