1011z wdprog ww08

background image

Tablice jednowymiarowe - cd

Zadania

Tablice wielowymiarowe

Wstęp do programowania

wykład 8

Agata Półrola

Wydział Matematyki i Informatyki UŁ

sem. zimowy 2010/2011

Agata Półrola Wydział Matematyki i Informatyki UŁ

Wstęp do programowania

background image

Tablice jednowymiarowe - cd

Zadania

Tablice wielowymiarowe

Podtablice

Można odwoływać się do fragmentów tablic (tzw.

podtablic

)

Podtablicę wyznaczamy pisząc
nazwa zmiennej tablicowej(zakres indeksu podtablicy)

Przykłady

temperatury(sty..lut):=(1.0,2.0);
a(2..4):=(others=>0);

Agata Półrola Wydział Matematyki i Informatyki UŁ

Wstęp do programowania

background image

Tablice jednowymiarowe - cd

Zadania

Tablice wielowymiarowe

Operacje na tablicach

Jeśli tablice (podtablice) należą do tego samego typu, to można na
nich wykonywać następujące operacje:

podstawianie

(jeśli są równej długości)

porównywanie

za pomocą operatorów

=

i

/=

łączenie

za pomocą operatora

&

jeśli składowe tablic są typu dyskretnego, to można
wykonywać również

porównywanie

tablic za pomocą

operatorów

<, <=, >=, >

Agata Półrola Wydział Matematyki i Informatyki UŁ

Wstęp do programowania

background image

Tablice jednowymiarowe - cd

Zadania

Tablice wielowymiarowe

Przykład (Operacje na podtablicach)

w i t h ada . t e x t i o ,

ada . i n t e g e r t e x t i o ;

u s e ada . t e x t i o ,

ada . i n t e g e r t e x t i o ;

p r o c e d u r e

w 0 8 p o d t a b l i c e

i s

t y p e t a b

i s

a r r a y

( i n t e g e r

r a n g e

1 . . 1 0 )

o f

i n t e g e r ;

a , b :

t a b ;

b e g i n

a : = ( o t h e r s => 1 ) ;

f o r

i

i n b ’ r a n g e l o o p

b ( i ):=2∗ i ; end l o o p ;

−− p o d s t a w i a n i e

p o d t a b l i c

a ( 1 . . 3 ) : = b ( 4 . . 6 ) ;

f o r

i

i n a ’ r a n g e l o o p

p u t ( a ( i ) , 3 ) ; end l o o p ;

n e w l i n e ;

−− p o r o w n y w a n i e p o d t a b l i c

i f

a ( 1 . . 3 ) = a ( 8 . . 1 0 )

t h e n

p u t l i n e ( ” r o w n e f r a g m e n t y p o c z

i

kon ” ) ;

e l s e

p u t l i n e ( ” p o c z a t e k

r o z n y od k o n c a ” ) ;

end

i f ;

i f

a ( 1 . . 3 ) > a ( 8 . . 1 0 )

t h e n

p u t l i n e ( ” p o c z a t e k

w i e k s z y ” ) ;

e l s e

p u t l i n e ( ” k o n i e c

w i e k s z y

l u b row ny ” ) ;

end

i f ;

−− k o n k a t e n a c j a

p o d t a b l i c

a := b ( 1 . . 5 ) & a ( 6 . . 1 0 ) ;

f o r

i

i n a ’ r a n g e l o o p

p u t ( a ( i ) , 3 ) ; end l o o p ;

n e w l i n e ;

end w 0 8 p o d t a b l i c e ;

Agata Półrola Wydział Matematyki i Informatyki UŁ

Wstęp do programowania

background image

Tablice jednowymiarowe - cd

Zadania

Tablice wielowymiarowe

Wektory boolowskie

Szczególnym przypadkiem tablic są

wektory boolowskie

(jednowymiarowe tablice złożone z elementów typu logicznego)
Poza standardowymi operacjami na tablicach jednowymiarowych
można na nich wykonywać

operacje logiczne

, używając operatorów

not, and, or i xor

w przypadku operatorów dwuargumentowych
wektory-argumenty muszą być tej samej długości

wynikiem jest agregat tablicy powstały poprzez wykonanie
danej operacji logicznej na poszczególnych elementach
wektora/wektorów

Agata Półrola Wydział Matematyki i Informatyki UŁ

Wstęp do programowania

background image

Tablice jednowymiarowe - cd

Zadania

Tablice wielowymiarowe

Przykład (Wektory boolowskie)

w i t h ada . t e x t i o , ada . i n t e g e r t e x t i o ;

u s e ada . t e x t i o , ada . i n t e g e r t e x t i o ;

p r o c e d u r e

w 0 8 w e k t o r l o g

i s

p a c k a g e

b i o

i s new ada . t e x t i o . e n u m e r a t i o n i o ( b o o l e a n ) ;

u s e

b i o ;

t y p e

w e k t o r l o g i c z n y

i s

a r r a y ( 1 . . 4 )

o f

b o o l e a n ;

p , q , w and , w o r , w x o r , w n o t : w e k t o r l o g i c z n y ;
k : p o s i t i v e c o u n t ;

b e g i n

p : = ( o t h e r s=>t r u e ) ;

p u t l i n e ( ” P o d a j w e k t o r q − m o z l i w e

w a r t o s c i

j e g o

s k l a d o w y c h t o TRUE i FALSE” ) ;

f o r

i

i n q ’ r a n g e l o o p

p u t ( ” q ( ” ) ; p u t ( i , 0 ) ; p u t ( ”)= ” ) ;

g e t ( q ( i ) ) ;

end l o o p ;

w and := p and q ;

w o r := p o r q ;

w x o r := p x o r q ;

w n o t := n o t q ;

p u t l i n e ( ”A o t o

w y n i k i

d z i a l a n na w e k t o r a c h : ” ) ;

p u t ( ” w e k t o r ” ” p ” ” : ” ) ;

k : = 1 3 ;

f o r

i

i n p ’ r a n g e l o o p k := k +7;

s e t c o l ( k ) ;

p u t ( p ( i ) ) ;

end l o o p ;

n e w l i n e ;

p u t ( ” w e k t o r ” ” q ” ” : ” ) ; k : = 1 3 ;

f o r

i

i n q ’ r a n g e l o o p k := k +7;

s e t c o l ( k ) ;

p u t ( q ( i ) ) ; end l o o p ;

n e w l i n e ;

p u t ( ” w e k t o r ” ” n o t q ” ” : ” ) ; k : = 1 3 ;

f o r

i

i n q ’ r a n g e l o o p k := k +7;

s e t c o l ( k ) ;

p u t ( w n o t ( i ) ) ; end l o o p ;

n e w l i n e ;

p u t ( ” w e k t o r ” ” p and q ” ” : ” ) ; k : = 1 3 ;

f o r

i

i n w and ’ r a n g e l o o p k := k +7;

s e t c o l ( k ) ;

p u t ( w and ( i ) ) ; end l o o p ;

n e w l i n e ;

p u t ( ” w e k t o r ” ” p o r q ” ” : ” ) ; k : = 1 3 ;

f o r

i

i n w o r ’ r a n g e l o o p k := k +7;

s e t c o l ( k ) ;

p u t ( w o r ( i ) ) ; end l o o p ;

n e w l i n e ;

p u t ( ” w e k t o r ” ” p x o r q ” ” : ” ) ; k : = 1 3 ;

f o r

i

i n

w x o r ’ r a n g e l o o p k := k +7;

s e t c o l ( k ) ;

p u t ( w x o r ( i ) ) ; end l o o p ;

end w 0 8 w e k t o r l o g ;

Agata Półrola Wydział Matematyki i Informatyki UŁ

Wstęp do programowania

background image

Tablice jednowymiarowe - cd

Zadania

Tablice wielowymiarowe

Tablice anonimowe

Tablice anonimowe (anonimowy typ tablicowy) mają pewne
ograniczenia:

każda zmienna będąca tablicą anonimową jest traktowana
jako będąca innego typu (nawet jeśli zadeklarujemy je naraz,
np. A,B: array (1..5) of float;) - takich tablic nie
można sobie nawzajem przypisywać ani porównywać

istnieją deklaracje w których może wystąpić tablica, ale nie
może wystąpić tablica anonimowa

(omówimy poźniej)

Agata Półrola Wydział Matematyki i Informatyki UŁ

Wstęp do programowania

background image

Tablice jednowymiarowe - cd

Zadania

Tablice wielowymiarowe

Jednowymiarowe tablice dynamiczne

Rozmiar standardowo zadeklarowanej tablicy określamy w czasie
pisania programu - czyli jest on znany w momencie kompilacji

Tablice dynamiczne

to takie tablice, których rozmiar jest znany

dopiero w czasie uruchomienia programu (i przy każdym
uruchomieniu ten rozmiar może być inny)

Agata Półrola Wydział Matematyki i Informatyki UŁ

Wstęp do programowania

background image

Tablice jednowymiarowe - cd

Zadania

Tablice wielowymiarowe

Jednowymiarowe tablice dynamiczne

Rozmiar standardowo zadeklarowanej tablicy określamy w czasie
pisania programu - czyli jest on znany w momencie kompilacji

Tablice dynamiczne

to takie tablice, których rozmiar jest znany

dopiero w czasie uruchomienia programu (i przy każdym
uruchomieniu ten rozmiar może być inny)

Agata Półrola Wydział Matematyki i Informatyki UŁ

Wstęp do programowania

background image

Tablice jednowymiarowe - cd

Zadania

Tablice wielowymiarowe

Tworzenie tablic dynamicznych

Można zdefiniować zarówno anonimową tablicę dynamiczną,
jak i odpowiedni nowy typ tablicowy

W obu przypadkach używamy do tego celu bloku z częścią
declare

uwagi:

zadeklarowana tablica i ew. zdefiniowany typ są widoczne
tylko wewnątrz danego bloku
rozmiar tablicy musi być podany przed jej zadeklarowaniem

Agata Półrola Wydział Matematyki i Informatyki UŁ

Wstęp do programowania

background image

Tablice jednowymiarowe - cd

Zadania

Tablice wielowymiarowe

Tworzenie tablic dynamicznych

Można zdefiniować zarówno anonimową tablicę dynamiczną,
jak i odpowiedni nowy typ tablicowy

W obu przypadkach używamy do tego celu bloku z częścią
declare

uwagi:

zadeklarowana tablica i ew. zdefiniowany typ są widoczne
tylko wewnątrz danego bloku
rozmiar tablicy musi być podany przed jej zadeklarowaniem

Agata Półrola Wydział Matematyki i Informatyki UŁ

Wstęp do programowania

background image

Tablice jednowymiarowe - cd

Zadania

Tablice wielowymiarowe

Przykład (Tworzenie tablicy dynamicznej)

w i t h ada . t e x t i o ,

ada . i n t e g e r t e x t i o ;

u s e ada . t e x t i o ,

ada . i n t e g e r t e x t i o ;

p r o c e d u r e w 0 8 t a b d y n

i s

i l o s c :

p o s i t i v e ;

b e g i n

p u t ( ” i l e

l i c z b

b e d z i e s z

c h c i a l

z a p a m i e t a c ? ” ) ;

g e t ( i l o s c ) ;

d e c l a r e

t y p e t a b

i s

a r r a y

( i n t e g e r

r a n g e

1 . . i l o s c ) o f

i n t e g e r ;

t :

t a b ;

b e g i n

p u t l i n e ( ” p o d a j

t e r a z

t e

l i c z b y : ” ) ;

f o r

i

i n t ’ r a n g e l o o p

p u t ( ” l i c z b a ” ) ;

p u t ( i , 0 ) ;

p u t ( ” : ” ) ;

g e t ( t ( i ) ) ;

end l o o p ;

n e w l i n e ( 2 ) ;
p u t l i n e ( ” Twoje

l i c z b y : ” ) ;

f o r

i

i n t ’ r a n g e l o o p

p u t ( t ( i ) ) ;

end l o o p ;

end ;

end w 0 8 t a b d y n ;

Agata Półrola Wydział Matematyki i Informatyki UŁ

Wstęp do programowania

background image

Tablice jednowymiarowe - cd

Zadania

Tablice wielowymiarowe

Zadania

Zadanie 1

Napisać program pobierający od użytkownika tablicę liczb
całkowitych o podanej przez niego długości, a następnie wypisujący
informację czy tablica zawiera dwa sąsiadujące z sobą elementy
dodatnie.

Agata Półrola Wydział Matematyki i Informatyki UŁ

Wstęp do programowania

background image

Tablice jednowymiarowe - cd

Zadania

Tablice wielowymiarowe

Zadanie 2

Napisać program pobierający od użytkownika tablicę liczb
całkowitych o podanej przez niego długości, a następnie wypisujący
wszystkie pary uporządkowane jakie można utworzyć z elementów
tej tablicy

Agata Półrola Wydział Matematyki i Informatyki UŁ

Wstęp do programowania

background image

Tablice jednowymiarowe - cd

Zadania

Tablice wielowymiarowe

Zadanie 3

Napisać program pobierający od użytkownika tablicę liczb
całkowitych o podanej przez niego długości, a następnie wypisujący
wszystkie dwójki (pary nieuporządkowane) różnych elementów tej
tablicy

Agata Półrola Wydział Matematyki i Informatyki UŁ

Wstęp do programowania

background image

Tablice jednowymiarowe - cd

Zadania

Tablice wielowymiarowe

Zadanie 4

Napisać program pobierający od użytkownika tablicę liczb
całkowitych o podanym przez niego zakresie indeksu, a następnie
wypisujący wszystkie liczby występujące w tablicy

Agata Półrola Wydział Matematyki i Informatyki UŁ

Wstęp do programowania


Document Outline


Wyszukiwarka

Podobne podstrony:
1011z wdprog ww07
1011z wdprog ww05
1011z wdprog w01
1011z wdprog ww06
1213z wdprog ww08
1011z wdprog ww03
1011z wdprog ww04
1011z wdprog w02
1011z wdprog ww09
1011z wdprog ww07
1011z wdprog ww05
1011z wdprog ww07

więcej podobnych podstron