|
![](/i/favi32.png) Mübariz Xəlilov, Nazlı HəsənovaINFORMATIKA KITAB BUTOV-1S4*S5
-nin
nəticəsi isə boş çoxluqdur.
2)
Çoxluqların birləşməsi:
A+B
.
İki A və B çoxluqlarının birləşməsi,
A
və ya
B
çoxluqlarından heç olmasa birinə aid olan elementlərdən təşkil
olunmuş çoxluqdur. Məsələn,
S4
+
S5
-in
nəticəsi [0,1,2,3,4,5,6],
S5
+
S6
-
nın
nəticəsi [3,4,5,6,7,8,9].
3)
Çoxluqların fərqi:
A
-
B
.
A
və
B
çoxluqlarının fərqi,
A
çoxluğunun B
çoxluğuna aid olmayan elementlərindən təşkil olunmuş çoxluqdur. Məsələn,
S6
-
S5
-in
nəticəsi [3,6,7,8,9],
S4
-
S5
-in
nəticəsi [0,1,2,3,6].
4) Ekvivalentliyin
yoxlanılması:
A=B
.
Əgər çoxluqlar ekvivalentdirsə,
nəticə
TRUE
olacaqdır, əks halda cavab
FALSE
olacaqdır.
5) Ekvivalent
olmamasının yoxlanılması:
A<>B
.
Əgər çoxluqlar
ekvivalent
deyillərsə, nəticə
TRUE
qiyməti olacaqdır, əks halda nəticə
FALSE
olacaqdır.
6) Daxil
olmanın yoxlanılması:
a)
A<=B
.
Əgər birinci çoxluq ikinciyə daxildirsə, nəticə
TRUE
əks halda
FALSE
olacaqdır.
b)
A>=B
.
Əgər ikinci çoxluq birinciyə daxildirsə, nəticə
TRUE
,
əks
halda
FALSE
olacaqdır. Məsələn, tutaq ki,
var M:set of Byte;
M:=[3,4,7,9];
351
onda
M=[4,7,3,3,9]
→
true; M<>[7,4,3,9]
→
false;
c
[3,4]<=M
→
true;[]<=M
→
true;
cccg
M>=[1..10]
→
false; M<=[3..9]
→
true.
7) Aid
olmasının yoxlanması:
X
IN
A
. Bu
əməliyyat çoxluğun baza tipi
ilə üst-üstə düşən skalyar kəmiyyətlə, çoxluq arasındakı əlaqəni müəyyən edir.
Əgər
X
qiyməti
A
çoxluğuna daxildirsə, əməliyyatın nəticəsi
TRUE
,
əks halda
isə
FALSE
olacaqdır.
Məsələn
,
3
in S6
–
nın nəticəsi
TRUE
,
2*2
in
S1
-in
isə
FALSE
olacaqdır.
Bu
əməliyyatlardan əlavə olaraq çoxluqlara aşağıdakı iki proseduru da
tətbiq etmək olar:
1)
INCLUDE
–
çoxluğa yeni element daxil edir. Prosedura müraciətin
ümumi
şəkli aşağıdakı kimidir:
INCLUDE
(S, I);
Burada S –
TSetBase
baza tipli
elementlərdən ibarət çoxluq, I-isə bu tipə
aid olan
və çoxluqda daxil edilməsi tələb olunan elementdir.
2)
EXCLUDE
– çoxluqdan elementi
çıxarır. Ümumi şəkli aşağıdakı
kimidir:
EXCLUDE
(S,I)
burada S
və I parametrləri
INCLUDE
prosedurunda
olduğu kimidir:
Misal 1. 2-
dən N-ə qədər
(1
≤
255)
natural
ədədlər arasında 6-ya
qalıqsız bölünən ədədlər çoxluğunu və 2-yə və ya 3-ə qalıqsız bölünən ədədlər
çoxluğunu ayırmalı.
program p13;
const n=20;
var S2,S3,S6,S23:set of 2..n;
k:byte;
begin S2:=[];S3:=[];
for k:=1 to n do
if k mod 2=0 then S2:=S2+[k];
if k mod 3=0 then S3:=S3+[k]
end;
S6:=N2*N3; S23:=S2+S3;
For k:=1 to n do
If k in S6 then write(k);
For k:=1 to n do
If k in S23 then write(k)
end.
Misal 2. 2-
dən
N
-
ə qədər
(1
≤
255)
natural
ədədlər ardıcıllığından
bütün
sadə ədədləri tapmalı (Eratosfen xəlbiri).
program Eratosfen;
const n=201;
352
var A,B:set of 2..n;k,p:integer;
begin A:=[2..n];B:=[];p:=2;
repeat
while not(p in A)do p:=p+1;
B:=B+[p];k:=p;
while k<=n do
begin A:=A-[k];k:=k+p end
until A=[];
for p:=2 to n do if p in B then writeln(p)
end.
11.7.
Massivlər. Onlar üzərində əməllər
Massiv – eyni bir identifikator
larla işarələnən eyni tipli elementlər
ardıcıllığıdır. Massivlərin təsvirinin ümumi şəkli aşağıdakı kimidir:
<
tipin adı >
=array[
< indeks tiplərinin siyahısı >
]
of
< tip >;
burada - düzgün identifikatordur,
array
,
of
–
operatorun işçi
sözləridir, – kvadrat mötərizələr daxilində bir-
birindən vergüllə ayrılmaqla gətirilən bir və ya bir neçə indeks tiplərinin
siyahısıdır, – Turbo Pascal dilinin ixtiyari tipidir. İndeks tipi kimi Turbo
Pascal-da
longint
tipindən və
longint
baza tipi olan diapazon tiplərindən başqa
ixtiyari nizam tiplərindən istifadə etmək olar. Dəyişəni massiv kimi, onun
bilavasitə təsviri zamanı, massiv tipinin əvvəl-cədən təsviri olmadan təyin
etmək olar.
Məsələn
,
var a,b:array[1..10] of real;
İndeks tipi kimi adətən indekslərin dəyişmə sərhədləri verilən diapazon
tipindən istifadə edilir. Burada
OF
sö
zündən sonra gələn Turbo Pascal-ın
ixtiyari tipi olduğundan, bu tip xüsusi halda digər massiv də ola bilər.
Məsələn
,
type mat=array[0..5]of array[-2..2] of array[char] of byte;
,
bu
yazılışı aşağıdakı kimi də vermək olar:
type mat=array [0..5,-2..2,char] of byte
;
İndeks tiplərinin siyahısındakı elementlərin sayı məhdudlaşdırılmır, lakin
ixtiyari massivin daxili
ifadəsinin uzunluğu 65520 baytı aşmamalıdır.
Kompüter
yaddaşında massiv elementləri bir-birinin ardınca gəlir və burada
kiçik ünvanlardan daha
yüksəklərinə keçid zamanı daha tez massivin ən sağda
duran in-deksi
dəyişir.
Məsələn
,
var a:array[1..2,1..2] of byte;
begin a[1,1]:=1; a[2,1]:=2; a[1,2]:=3; a[2,2]:=4;
end.
Bu halda kompüter
yaddaşında ardıcıl olaraq bir-birinin ardınca 1, 2, 3, 4
353
qiymətlərinə uyğun baytlar düzüləcəkdir.
Turbo Pascal
dilində bir mənimsətmə operatoru ilə bir massivin bütün
elementlərini onunla eyni tipli olan başqa massivə mənimsətmək olar.
Məsələn
,
var a,b:array[1..5] of single;
begin
......
a:=b;
......
Dostları ilə paylaş: |
|
|