cw09 pas3

background image

MPDI2 Informatyka – ćw.9

Programowanie Pascal (3)

Typ tablicowy array

Typ tablicowy jest typem strukturalnym (złożonym) stanowiącym skończony zbiór elemen-

tów tego samego typu, o położeniu określanym przez indeksy. Zmienna typu tablicowego od-
powiada tablicy (macierzy) w sensie matematycznym. Tablice posiadają wymiar zależny od
liczby indeksów (1, 2, 3-wymiarowe) oraz rozmiar zależny od zakresu określoności indeksu
w każdym wymiarze (np. rozmiar - 10 kolumn, 15 wierszy).

array [ lista_typów_indeksów ] of typ_składowych

Lista typów indeksów

określa wymiar tablicy i jej rozmiar w każdym wymiarze – najczę-

ś

ciej typu okrojonego całkowitego w postaci n..m. Przykładowo array[1..20, 1..30] of

typ_skladowych to tablica 2-wymiarowa o rozmiarach 20x30..

Typ składowych

jest dowolny

z wyjątkiem plikowego, a więc tablica może zawierać liczby, znaki, napisy, inne tablice, re-
kordy itp.

Przykładowe deklaracje tablic:

var

//wektor liczb całkowitych o rozmiarze 51

tab1: array [0..50] of integer;
//dwie tablice prostok

ą

tne(2-wymiarowe)

//zawieraj

ą

ce liczby rzeczywiste

tab2,tab3: array [1..20, 1..30] of real;
//91-elementowa tablica ła

ń

cuchów (napisów)

tab3: array [-40..50] of string[20];

Wykorzystanie elementu (indeksowanego) zmiennej tablicowej w części wykonawczej pro-

gramu – tak jak zmienna prosta (w zależności od typu):

zmienna_tablicowa

[

indeks(-y)

]

Indeksy mogą być stałymi lub wyrażeniami zgodnymi co do liczby, kolejności i typu jak w

definicji. Oczywiście zawartość elementu zmiennej tablicowej też musi być zgodna co do typu
z definicją. Przykładowo:

tab1[0]:= 100;//przypisanie warto

ś

ci

for k:=1 to 50 do

tab1[k]:=0;

if tab1[8]>0 then
tab2[1,1]:= sin(pi/4));

itd.

Zmienne tablicowe całościowe mogą być wykorzystane jedynie w operacji przypisania

(przy zgodności typów), np.:

var
tab1, tab2: array [1..10, 1..20] of real;

begin

...
tab1 := tab2;// przepisz cał

ą

tablic

ę

tab2 do tab1

background image

...

end;

Tablice – przykładowe operacje

Nadawanie wartości elementom wykonuje się przez proste przypisania, często w "pętli"

for, gdy istnieje jakaś algorytmiczna zależność pomiędzy kolejnymi elementami. Dla tablic
dwuwymiarowych stosuje się wówczas pętle zagnieżdżane.

Deklaracja zmiennych:

//deklaracja zmiennej tablicowej
var

tab1 : array [1..5, 1..5] of real ;

w, k : 1..5 ;

Instrukcje wykonawcze:

//nadanie warto

ś

ci 0.1 elementowi tablicy

tab1[2, 3] := 0.1 ;

//wypełnianie pierwszego wiersza zerami
for k:= 1 to 5 do

tab1[1, k] := 0.0 ;

//wypełnianie drugiego wiersza kolejnymi liczbami parzystymi

for k := 1 to 5 do

tab1[2, k] := 2 * k ;

//wypełnianie trzeciego wiersza kolejnymi liczbami nieparzy-

stymi

for k := 1 to 5 do

tab1[3, k] := 2 * k – 1 ;

//wypełnianie przek

ą

tnej głównej warto

ś

ciami 0.5 1 1.5 itd.

for w := 1 to 5 do

tab1[w, w] := w/2 ;//indeks wiersza i kolumny te same

//wypełnianie całej tablicy, zagnieżdżanie iteracji

for w := 1 to 5 do

for k := 1 to 5 do tab1[w, k] := w+2*k;

{wypełnienie tablicy znakami – uwaga: deklaracja tablicy tab2 musi być inna – dlacze-

go?}

for w := 1 to 5 do

for k := 1 to 5 do

tab2[w, k] := chr(50+5*i+k);

//funkcja chr(kod) znajduje znak o podanym kodzie ASCII

//wyświetlenie tablicy dwuwymiarowej na ekranie konsoli:

for w := 1 to 5 do
begin

for k := 1 to 5 do

write(tab1[w,k]:5);

writeln;//zmiana wiersza

end;

background image

Ć

wiczenie

1.

Wykonać program ilustrujący działania z powyższego przykładu. Wykonać prawidłowe
deklaracje zmiennych tablicowych. W programie po każdej zmianie zawartości tablicy
wpisać instrukcje wyświetlające jej aktualna zawartość.

2.

Wykonać aplikację, która spełni następujące zadania:

a)

wypełni tablicę o rozmiarze 10x10 dowolnymi liczbami rzeczywistymi (wykorzystać
funkcję generatora liczb losowych),

b)

wyświetli na konsoli tylko 3-ci wiersz tablicy.

c)

obliczy sumę wszystkich elementów tablicy i wyświetli ją ekranie w konsoli.

d)

znajdzie sumę wszystkich dodatnich elementów.

3.

Utworzyć aplikację dla dodawania dwóch dowolnych tablic dwuwymiarowych (oczywi-
ś

cie tego samego rozmiaru i typu) z liczbami rzeczywistymi (mogą być generowane lo-

sowo). Zastosować zagnieżdżane iteracje for.


Wyszukiwarka

Podobne podstrony:
cw09
30) TSiP 2010 11 ćw09
CW09, Tomasz Lisowski I BD, L 11
metrologia cw09 druk sprawozdania
LF E CW09 id 267600 Nieznany
cw09[nielinioweobowodypradustalego]
Cw09
pas3
instrukcja cw09
Cw09 MK3 PamWew 8051
cw09 id 122575 Nieznany
C16 2005 cw09
izs cw09 id 221281 Nieznany
cw09, Fizyka
09 LF E CW09 id 599720 Nieznany (2)
Cw09 Matlab3

więcej podobnych podstron