Azərbaycan Respublikası Təhsil Nazirliyi



Yüklə 99,26 Kb.
tarix26.09.2017
ölçüsü99,26 Kb.
növüYazı


Azərbaycan Respublikası Təhsil Nazirliyi

Qərb Universiteti


Kafedra: Riyaziyyat və kompüter texnologiyaları

Fakültə: Kompüter elmləri

Strukturlaşdırılmış verilənlərin tipləri. Yazılar.” mövzusunda


KURS İŞİ


Qrup: 219A, Kurs I

Tələbə: Xudazarov Elçin

Elmi rəhbər: dos. Hacıyeva R.C.

Bakı-2010



MÜNDƏRİCAT

Giriş. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

Fəsil 1. Strukturlaşdırılmış verilənlərin tipləri. Yazılar

1.1. Verilənlərin strukturları. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5

1.2. İstifadəçinin sadə tipləri. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6

1.3. Bircins strukturlu mürəkkəb verilənlər . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .7

1.4. Qeyri-bircins strukturlu mürəkkəb verilənlər. . . . . . . . . . . . . . . . . . . . . . . . . . . 12

1.5. Göstərici. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .13

1.6. Əlaqəli və əlaqəsiz dinamik verilənlər. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

Fəsil 2. Massivlər

2.1. Massiv anlayışı. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .16

2.2. Məsələnin qoyuluşu. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .18

Nəticə. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .20

Ədəbiyyat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .21

Əlavə. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

GİRİŞ
Paskal dili, 1968-1970-ci illərdə İsveç ali politexnik məktəbinin informatika institutunun direktoru professor Niklaus Virt tərəfindən tələbələrin proqramlaşdırmanı öyrənməsi məqsədilə işlənib hazırlanmışdır.

Pascal proqramlaşdırma dili 1971-ci ildə akademik ətraflara strukturca proqramlaşdırma anlayışını tanıtmaq üçün Niklaus Virth tərəfindən inkişaf etdirilmiş (Dilin yaradıcısı, dilə riyaziyyatçı və filosof Blaise Paskalın adını vermişdir) və bu dil qısa zaman içində universitetlərdə istifadə edilən proqramlaş­dırma dili halına gəlmişdir.

Paskal dilinin ticari və sənaye tətbiqləri dəstəkləmək üçün sahib olması lazım olan bir sıra xüsusiyyətlərdən məhrum olması bu dilin bu tətbiqlərdə çox istifadə edilməməsinə gətirib çıxarmışdır. Modula və Modula-2 dilləri Paskal dili əsas götürülərək inkişaf etdirilmişdir.

Kurs işinin strukturu giriş, 2 fəsil, nəticə və ədəbiyyatdan təşkil olunmuşdur.

Girişdə kurs işinin aktuallığı məqsədi və Turbo Pascal proqram dili haqqında məlumat verilmişdir. İllər keçdikcə sübut olundu ki, bu dil təkcə təlim məqsədilə deyil, həm də mürəkkəb proqram təminatının yaradılması üçün populyar bir dil oldu. Paskal dilinin başlanğıc variantı məhdud imkanlara malik idi, indi isə yəni onun genişləndirilmiş forması daha böyük imkanlara malikdir.

Paskal dili fransız alimi Blez Paskalın şərəfinə adlandırılmışdır. B.Paskal 1642-ci ildə birinci mexaniki hesablama maşını icad etmişdir.Paskalın maşını toplama maşını idi.

Translyatorlar iki yerə bölünür – interpretatorlar və kompilyatorlar:


  • İnterpretator proqramı sətirbəsətir tərcümə edir və yerinə yetirir.

  • Kompilyator proqramı bütövlükdə tərcümə edir, sonra isə yerinə yetirir.

Turbo Pascal 7.0 –da komandalar, funksiyanın adları xüsusi xidməti və ya əvvəlcədən müəyyənləşdirilmiş sözlərdən istifadə olunur.

Xidməti sözlər üç qrupa ayrılır:

  • operatorlar (READ, WRITELN və s.)

  • Funksiya adları (SIN, COS və s.)

  • Açar sözlər (VAR, BEGIN, END və s.)

Paskal dilində istənilən proqram müəyyənləşdirilmiş struktura malikdir:

  1. Proqramın başlığl

  2. Təsvir hissəsi

  3. Proqramın gövdəsi

İxtiyari proqram istifadəçi ilə giriş-çıxış operatorları vasitəsilə mübadilə edir.

Proqramın yadda saxlanılması

- Əsas menyuda File seçirik;

- Save və ya Save as...;

- Açılan pəncərədə fayla ad verilir və düyməsi basılır.


Fəsil 1. Strukturlaşdırılmış verilənlərin tipləri

1.1.Verilənlərin strukturu

Proqramlaşdırmada istifadə olunan verilənlər iki böyük qrupa bölünür.



  1. statik sturukturlu verilənlər

  2. dinamik sturukturlu verilənlər

Elementlərinin qarşılıqlı yerləşməsi və qarşılıqlı əlaqəsi qalan verilənlər statik strukturlu verilənlər adlanır.

Elementlərinin sayı, onların yerləşməsi və qarşılıqlı əlaqəsi proqramın yerinə yetirilməsində müəyyən qayda üzrə dinamik dəyişən verilənlər dinamik sturukturlu verilənlər adlanır.



Statik strukturlu verilənlər. Statik strukturlu verilənlər hər hansı qayda üzrə sadə strukturlardan təşkil olunmaqla sadə (skalyar) mürəkkəb (aqreqativ) ola bilər.

Proqramlaşdırma dillərində sadə verilənlərə verilənlərin standart (əvvəldən təyin olunmuş) tipləri uyğundur. Bura hesabi (natural, tam, həqiqi, kompleks), simvol, məntiqi və göstərici tipləri aiddir. Turbo Pascal-a Byte, Word natural tipləri, İnteger, Shortint, Longint tam tipləri, Real, Single, Double, Etended, Comp həqiqi tipləri, Boolean, Byte Bool, Word Bool, Long Bool, məntiqi tipləri, Char simvol tipi və Pointer göstərici tipi daxil edilib. Həqiqi ədədlər sabit və sürüşən nöqtəli təsvir oluna bilər. Kompleks ədədlərin təsviri üçün isə Turbo Pascalda standart tiplər yoxdur.

Bunlardan başqa bəzi dillərdə olduğu kimi Turbo Pascal-da da istifadəçi tərəfindən təyin olunan sadalanan və diapazon tiplərindən də istifadə etmək mümkündür.

Mürəkkəb strukturlu verilənlərə bircins, yəni bütün elementləri eyni tipdən olanlar, və qeyri-bircins (kombinə edilmiş), yəni müxtəlif tip elementlərin birləşməsindən təşkil olunmuş verilənlər aiddir. Bircins strukturlu verilənlərə massivlər, sətirlər və çoxluqlar, qeyri-bircins strukturlu verilənlərə isə sadə yazılar variantlı yazılar, birləşmələr və obyektlə aiddir.



Dinamik sturukturlu verilənlər. Dinamik sturukturlu verilənlərə fayllar, əlaqəsiz və əlaqəli dinamik verilənlər aiddir.

Fayllar mətn, tipləşdirilmiş və tipləşdirilməmiş olur.

Əlaqəsiz dinamik verilənlər statik strukturlu verilənlərə ananloji olaraq təsnif olunur. Əlaqəli dinamik verilənlər isə xətti, dairəvi budaqlanan struktura malikdir.

İndiyə kimi baxdığımız proqram parametrləri üçün müəyyən olunmuş yaddaş ayrılır və bundan başqa proqramın ayrı-ayrı elementləri arasında əlaqə hələ kompilyasiya mərhələsində yaranır. Proqramın iş prosesi vaxtı ayrılmış yaddaş ölçüsünü və ya təyin olunmuş hər hansı əlaqəni dəyişmək mümkün deyil.

Pascal dilində proqramın yerinə yetirilməsi anında müxtəlif verilənləri yerləşdirmək üçün lazəm olan yaddaş ayırmaq və boşaltmaq imkanı mövcuddur. Beləliklə verilənləri dinamiki təşkil etmək mümkündür. Bu imkanı dildə verilənlərin xüsusi tipi olan gostərici ilə əlaqədardır.
1.2. İstifadəçinin sadə tipləri

Sadə istifadəçi tiplərə sadalanan və diapazon tipləri aiddir.



Sadalanan tip. Sadalama proqramçıya verilənlərin yeni tiplərini təsvir etməyə imkan verir. Sadalanan tiplərin təsviri dairəvi mötərizə daxilində elementlərin siyahısından təşkil olunur.

type

Fasil=(Yaz, Yay, Payiz, Qish)

Sadalanan tipin bütün elementlərinin identifikatorları sabit kimi interpretasiya olunur. Bu identifikatorlar sətir sabitləri olmadığından dırnağa alınmır. Qeyd etmək lazımdır ki, eyni identifikatorun müxtəlif tiplərdə təsviri səhvdir. Məsələn:



program Duplicate;

type

Hafta_1=(Mon, Tue, Wed, Thu, Fri, Sat, Sun);

Hafta_2=( Mon, Tue, Wed, Thu, Fri);

begin

. . .

End.

Bu proqramın translyasiyasında “Error: Duplicate identifier (Mon) məlumatı alınır.

Proqramda sadalanan tip dəyişəndən istifadə etdikdə aşağıdakıları nəzərə almaq lazımdır:


  • sadalanan tiplər sıra tipinə aiddir;

  • Read, Readln, Write və Writeln prosedurlarında arqument kimi sadalanan tipin qiymətlərindən istifadə etmək olmaz;

  • sadalanan tiplərdə yalnız nisbət əməliyyatlarından istifadə etmək olar;

  • sadalanan tip dəyişənlərdən mənsubetmə operatorlarında, massivin indekslərində və for operatorunun sərhədlərində istifadə etməyə icazə verilir.

Diapazon tipi. Diapazon tipi hər hansı sıranın qiymətlər diaoazonunda (interval) təşkil olunur. Diapazon tipinin təsvirində, bir-birindən iki nöqtə(..) ilə ayrılan qiymətlər diapazonunun ən kiçik və ən böyük qiymətləri göstərilir. Məsələn:

0 . . 600

-1 . . 1

-128 . . 127

‘A’ . . ‘Z’

Yaz . . Qish
1.3. Bircins strukturlu mürəkkəb verilənlər

Massiv tipli sabitlərdən istifadə etdikdə massivin elementləri dairəvi mötərizədə bir-birindən vergüllə ayırmaqla verilir. Çoxölçülü massivlərdə isə xarici dairəvi mötərizə sol indeksə, daxili dairəvi mötərizə isə növbəti indeksə və s. aid olur.

Məsələn:


  • birölçülü ədədi massiv

const

vector: array [1..7] of Real=(0.25, 3.21, 6.37, 9.91, 71.06, 67.9, 37.6)

const

matris: array [1..3,1..4] of integer = ((1,2,3,4), (2,3,4,5), (3,4,5,6));

  • üçölçülü ədədi massiv

const

Dig3D: array [1..4,1..3,1..2] of Byte = (((1,2), (1,2), (1,2)), ((1,2), (1,2), (1,2))

((1,2), (1,2), (1,2)), ((1,2), (1,2), (1,2)))

  • birölçülü simvollar massivi

CharVect1: array [1..6] of Char = (‘P’, ‘A’, ‘S’, ‘C’, ‘A’, ‘L’);

Və ya

CharVect2: array [1..6] of char = ‘PASCAL’

Massiv’ aid aşağıdakı misala baxaq.


Misal. X(n) massivinin ən böyük elementinin tapılması üçün proqram tərtib etməli.

Program misal_12;

Const n=20;

Var

x: array [1..n] of real;

i: integer; M: real;

begin

writeln (‘Massivin elementlərini daxil edin’);

for i := 1 to n do

begin

write (‘x[‘,I,’]=’);

readln (x[1]);

end;

M:=X [1];

For i: = 2 to n do

If M < X [i] then M=X [i];

Writeln (‘Massivin ən böyük elementi=’,M);

End.

İkiölçülü massivlərin emalına dair aşağıdakı misala baxaq.



Misal: A(n,m) massivinin sətir elementlərinin hasilləri cəminin hesablanması üçün proqram.

Program misal_13;

Const n=10;

M=15;

Type

Matr = array [1..n, 1..m] of integer;

var

A: matr;

i, j, 3, C: integer;

begin

writeln (‘Massivin elementlərini daxil edin’);

for i:= 1 to n do

for j : = to m do readln (A[i ,j]);

for i := 1 to m do writeln (A[i ,j]:3);

writeln;

end;

s:=0;

for i:= 1 to n do

begin

z:= 1;

for j := 1 to m do z := z * A [i, j];

S:=S+Z;

End;

Writeln (‘Netice = ‘, S);

End.

String tipli sətirlər sətir simvollarından təşkil olunmuş birölçülü massivin xüsusi bir formasıdır. Simvollar massivin elementlərinrn sayı onların təsvirində təyin olunur.

String tipli sətirlər uzunluğu 255-dən çox olmayan simvollar ardılıcığından ibarətdir.

Sətirlərin ümumi uzunluğu kvadrat mötərizədə göstərilir.

Misal:


Var

S1 : String [12];

S2 : String [128];

Smax : String;

Təsvirdə sətrin uzunluğu göstərilməzsə onda susmaya görə 255 simvola bərabər maksimal uzunluq götürülür.

String tipli sətirlərlə işləmək üçün Turbo Pascal-da aşağdakı funksiya və prosedurlardan istifadə olunur.

Concat (S1, [,S2,…, SN]) funksiyası sətirlər ardıcıllığının konkatenasiyasını (bitişməsini) yerinə yetirir.



Copy (ST, İNDEX, COUNT) funksiyası –ST verilmiş sətirlərdən İNDEX nömrəli simvoldan başlayaraq, COUNT sayda simvolları sürətini qaytarır.

Delete (ST, İNDEX, COUNT) proseduru verilmiş –ST sətirdən, İNDEX nömrəli simvoldan başlayaraq, COUNT sayda simvolları silir.

İnsert (SUBST, ST, İNDEX) proseduru – SUBST alt sətri İNDEX nömrəli simvoldan başlayaraq, ST sətirdə yerləşdirir.

Length (ST) funksiyası –ST sətrinin uzunluğunu qaytarır.

Pos (SUBST, ST) tamtipli funksiyanı –SUBST altsətirinin ST sətrinə daxil olan birinci mövqenin qiymətini, əgər altsətir tapılmazsa yəni, SUBST altsətri ST sətrinə daxil olmazsa sıfır qaytarır.



UPCASE (CH) char tipli funksiyası – kiçik latın həriflərini, uyğun böyük hərflərə çevirir.

Val (ST, X, CODE) proseduru –ST simvollar sətrini, X həqiqi vəya tam ədədi təsvirinə çevirir. Əgər CODE-nin qiyməti sıfır olarsa, çevirmə müvəffəqiyyətlə başa çatıb, əks halda ST sətrinin səhv olan simvolunun mövqesinin nömrəsini qaytarır.

Str (X [:WIDTH] [:DECIMALS], ST) proseduru – istənilən X həqiqi və ya tam tipli ədədi , ST sətir simvollarına çevirir. WIDTH və DECİMALS parametrləri olarsa, bu çevirmə formatını göstərir. WIDTH parametri X həqiqi və ya tam tipli ədədinin simvol təsvirindəki ümumi sahənin uzunluğunu DECİLMALS isə kəsr hissədəki simvolların sayını təyin edir. Bu parametrlərdən X yalnız həqiqi ədəd olduqda istifadə olunur.

ASCIIZ – sətri (sıfır ilə qurtaran sətir). Turbo Pascal 7.0-a digər proramlaşdırma dilləri və Windows mühiti ilə uyuşma üçün sonu sıfır ilə qurtaran daha bir sətir növü daxil edilib. Bu sətirlər çox vaxt ASCIIZ- sətirlər adlanır. Bu onu göstərir ki, sətirdə sonu 0 (zero) simvolunun kodu ilə qurtaran ASCIIZ kodunun simvollarından istifadə olunur. Sıfır kodlu simvol NULL və ya `\0` kimi işarə olunur. Uunluğun bu üsulla göstərilməsi praktiki olaraq mümkün maksimal uzunluğu məhdudlaşdırmır. İBM tipli kompüterlər üçün sətrin ölçüsü 65534 bayta kimidir.

Type

Pchar =^Char

Qeyd edək ki, Pchar tipli tipləşdirilmiş sabitlərdən istifadə oluna bilər. Amma String tipli tipləşdirilmiş sabit kimi sətrin uzunluğu maksimum 255 simvol ola bilər.

{$X+} direktivinin daxil etməklə Turbo Pascal Pchar göstərici tipi işləyəndə əlavə əməliyyatlardan istifadə etməyə imkan verir.

Toplama (+) və çıxma(-) əməliyyatlarından verilmiş ədəd qədər göstərici sürüşməsini artırıb və azaltmaq olar.

Turbo Pascal-da ASCIIZ sətirləri işləmək üçün String və WinDos standart modullarından istifadə olunur.

Çoxluq. Proqramlaşdırmada “çoxluq” termini onun riyazi anlayışına uyğun olaraq istifadə olunur. Fərq ondadır ki, Turbo Pascal-da çoxluğun elementləri yalnız sıra tipi olmalıdır. Hər hansı çoxluğun elementləri bir tipdən olmalıdır ki, bu da baza tipi adlanır. Baza tipinin qiymətlərinin maksimal sayı onun gücü adlanır ki, bu da 256-nı aşa bilməz.

Çoxluqlar üçün aşağıdakı əməliyyatlar təyin olunub:

* çoxluqların kəsişməsi

+ çoxluqların birləşməsi

- çoxluqların fərqi çoxluğun ekvivalentliyinin yoxlanılması

= iki çoxluğun ekvivalentliyinin yoxlanılması



<> iki çoxluğun qeyri-ekvivalentliyinin yoxlanılması

<= B<=A –nın nəticəsi doğrudursa B çoxluğu A çoxluğunun altçoxluğu, əks hald yox.
1.4. Qeyri-bircins strukturlu mürəkkəb verilənlər

Yazı tipi. Qeyri-bircins strukturlu verilənlər tipik nümayəndəsi yazı tipli verilənlərdir. Massiv, çoxluq, və fayl öz tərkibinə eyni tip elementləri daxil etdiyi halda yazılar öz tərkibinə ixtiyarı sayda müxtəlif tipli verilənləri (sadə dəyişənlər, massivlər, çoxluqlar, yazılar və fayllar) daxil edir. Yazıya daxil olan bu verilənlər yazının sahələri adlanır. Yazı tipinin təsvirində record end xidməti sözlərindən istifadə olunur. Yazı tipinin ümumi yazılış forması aşağıdakı kimidir:

Type

= record S1 : T1; S2:T2 . . . ; Sn :Tn ; end;



Yazı tipi təsvir edildikdən sonra bu tipin dəyişənləri vəya tipləşdirilmiş sabitlər verilə bilər. Yazı tipli sabitlərin təsvirində yazının bütün sahələrinin qiymətləri ilə bərabər onların identifikatorları da göstərilir. Yazı tipli tipləşdirilmiş sahələrdən istifadə etməyə icazə verilmir.

Sahələrə müraaciətdə hər dəfə yazı adını təkrar yazmamaq üçün With operatorundan istifadə olunur.

Turbo Pascal-da sadə variantlı yazılar mövcuddur.

Sadə yazılar bir vəya bir neçə sahədən ibarətdir ki, hər bir sahənin adı və tipi onların təsvirində göstərir.



Type

Str6 = String [6];

Str20 = String [20];

Sqiymat =record

Aliriy : Byte {Ali Riyaziyyat}

Tarix : Byte {Tarix}

Inform : Byte {informayika}

Fizik : Byte {fizika}

End;

Talaba = record

Soyad : Str20; {Soyadı}

Ad : Str20; {Adı}

Atasi : Str20; {Atasının adı}

Il : Integer; {Doğum ili}

Unvan : Str20; {Ünvan}

Grup : Str6; {Qrupun şifri}

Qiymat : Sqiymat; {Sonuncu semestirin qiymətləri}

End;

Bu yazıya baxdıqda görürük ki, buraya yalnız tələbənin bir semestrinin qiymətləri daxil edilib. Tələbələrin hər semestrinin fənləri dəyişildiyindən bu yazıya bütün fənlər daxil edilməlidir. Bu isə lazımsız informasiyanın saxlanmasına gətirir. Bundan başqa hər tələbə üçün yaddaşda bütün fənlər üçün yer ayrılır.

Bu halda varıantlı yazılardan istifadə etmək məqsədə uyğundur. Bu yazıda da sadə yazıda olduğu kimi bütün mümkün sahələr təsvir olunub. Amma yaddaşda cari halda lazım olan variant üçün yer ayrılır.
1.5. Göstərici

Turbo Pascal-da göstərici parametrin bilavasitə ünvanla işləməsinə imkan verir. Bu elementin tipi göstəriciyə nisbətən baza tipi adlanır. Göstərici tipin təyinində qarşısında ^ - göstərici işarəsi qoyulmuş baza tipindən istifadə olunur. Misal:

Type

Mas = array [1 . .10] of real; {Baza tipi}



Pmas = ^ Mas; {10 ədəddən ibarət massivin göstərici tipi}

Göstəricinin qiyməti yaddaşın ünvanıdır. Göstərici tipli dəyişən yaddaşda 4 bayt yer tutur. Birinci söz ünvanın sürüşməsi, ikinci isə ünvanın seqmentidir.

Göstərici tiplərlə işləyərkən, heç nəyi göstərməyən nil standart sabitindən istifadə olunur.

Dinamik strukturlu verilənlərin təsvirində hər hansı tip dəyişəninin özü yox, onun göstəricisi göstərilir. Nəticədə göstərici adi dəyişən olur, dəyişəni göstərən isə dinamik olur. Məsələn:

P:^ Char; P:^ Char;

V
ünvan

‘*’
ar


P:^ Char;

begin

P^:=’*’ ;

. . .

End.

P dəyişən göstəricisi üç vəziyyətdə ola bilər.



  1. Yaddaşda yeri ayrılan hər hansı dəyişənin ünvanını saxlayır.

  2. Xüsusi nil-boş ünvanı saxlayır.

  3. Naməlum vəziyyətdə yerləşir.

Naməlum vəziyyətin nil-dən fərqi ondadırki bu iki göstərici dəyişəni bərabər deyil.

Dinamik dəyişənlər üçün yaddaşın ayrılması və boşalmasında New, Dispose, GetMem, Freemem, Mark, Release standart prosedurlarından istifadə olunur.



New (A) proseduru A göstəricisi üçün təsvir olunan tipə uyğun yaddaş sahəsi ayırır və ayrılan yaddaşın ünvanını göstəriciyə yazır.

Dispose (A) proseduru A göstəricisinin göstərdiyi yaddaş sahəsini boşaldır. Bundan sonra bu sahə digər dinamik dəyişənlər üçün ayrıla bilər.

standart Pointer göstərici tipindən fərqli olaraq, istifadəçinin göstərici tipi dinamik dəyişənləri göstərən qiymətlər çoxluğunu təyin edir. Pointer standart göstərici tipi göstəriciyə hər hansı baza tipi ilə əlaqədə olmadığını göstərir. Bu tip digər göstərici tipləri ilə uyuşandır. Amma nəzərə almaq lazımdır ki, Pointer tip parametirindən sonra ^ işarəsindən istifadə parametri tipsiz edir.


1.6. Əlaqəli və əlaqəsiz dinamik verilənlər

Əlaqəsiz dinamik verilənlər statik verilənlər kimi təsnif olunur. Bu verilənlərdən istifadənin aşağıdakı iki fərqli cəhəti var.



  • Var bölməsində tələb olunan tipin dəyişəni yox, bu tipin göstəricisi təsvir olunur;

  • Istifadə olunmazdan əvvəl New proseduru, istifadədən sonra isə Dispose proseduru çağırılır.

Əlaqəli dinamik verilənlər müxtəlif konfiqurasiyalı verilənlərin strukturunu təşkilində yüksək çevikliyi ilə xarakterizə olunur. Bu da pproqram işlətdiyi vaxt yaddaşın seçildilməsi, boşaldılması və göstərilənlərin köməyi ilə istənilən iki element arasında əlaqənin təyini ilə mümkün olur.

Dinamik strukturlu verilənlrin elementləri arasındakı əlaqənin təşkili üçün hər bir element informasiyadan başqa minumum bir göstərici olması tələb olunur. yəni element iki sahədən ibarət olmalıdır: informasiyalı göstəricili.



Xətti siyahılar – xətti əlaqəli bircins elementlərdən təşkil olunmuş dinamik strukturlu verilənlərdir. Burada ixtiyarı iki element arasına element əlavə etməyə və silməyə icazə verilir.

Dairəvi siyahılar – bu x’tti siyahılardakı verilənlər kimidir. Amma burada siyahının sonuncu və birinci elementləri əlaqəlidir.

Növbə - xətti bir əlaqəli siyahının xüsusi bir halıdır. Amma burada yalnız iki əməliyyata icazə verilir. Növbənin sonuna elementin əlavə olunması və növbənin başlanğıcından elementin silinməsi

Stek – xətti birəlaqəli siyahının xüsusi bir halıdır ki, elementlərin əlavə olunmasına və ya silinməsinə siyahının bir tərəfindən icazə verilir. Bu stekin təpəsi adlanır.

Ağaclar – sərbəst konfiqurusiyalı iyerarxik suturukturlu dinamik verilənlərdir. Ağacın elementləri təpə adlanır.

Piramida (nizamlanmış ağac) – bir səviyyədən növbəti səviyyəyə keçdikdə təpənin qiymətləri artan və ya azalan ağacdır.

Fəsil 2. Massivlər

2.1. Massiv anlayışı

Bildiyimiz kimi massiv strukturlaşmış eyni tipli elementlərdən təşkil olunaraq

kəsilməz yaddaş sahəsini tutur. Massivlər indekslərinin sayına görə bir, iki və çoxölçülü olur. Birölçülü massivin təsvir formatı aşağıdakı kimidir:

elementlərin_tipi ad[sabit_ifadəsi]

Burada ad- identifkator, sabit_ifadə- isə massivin ölçüsünü, yəni massivin elementlərinin sayını təyin edir. Bəzi hallarda isə massiv elementlərinin sayı olmadan, yəni sabit_ifadəsiz təsvir olunur. Məsələn, massiv



Int D [9]

kimi təsvir olunub. Yəni 9 tam elementdən ibarət D adlı massiv élan olunub. Massivin indeksi sıfırdan başlayır və kvadrat mötərizədə massivin ölçüsü göstərilməyə də bilər.

Məsələlərin həllində adətən birölçülü, ikiölçülü və üçölçülü massivlərdən istifadə olunur. Praktikada çox nadir hallarda daha böyük ölçülü massivlərə rast gəlinir.

Massiv tipini vermək üçün aşağıdakı strukturdan istifasə olunur.



type

= array [] of [elementlərin tipləri]

Misal:

type

{Üç həqiqi ədəddən ibarət birölçülü massiv}

Vector=array [1..3] of real;

{3 sətir və iki sütundan təşkil olunmuş tam ədədlərdən ibarət ikiölçülü massiv}

Massiv = array [1..3, 1..2] of integer;

Bu misalda kvadrat mötərizə əvəzinə nöqtəli dairəvi mötərizədəndə istifadə etmək olar:



Type

Vector =array (.1..3.) of Real;

Matris =array (.1..3,1..2.) of integer;
Massivin ayrı-ayrı elementlərinə müraciət massivin ölçüsündən asılı olaraq bir vəya bir neçə indeksin kömıyi ilə mümkündür. Indeks kimi sabit və dəyişən sıra tipindən istifadə etmək olar. Massivin elementləri həm sadə dəyişənin ixtiyari tipi, həm fə dəyişənin mürəkkəb tipi (massiv, sətir, yazı və s.) ola bilər.

Çoxölçülü massivlər. Dilin sintaksisinə uyğun olaraq, çoxölçülü massivin elementləri massivdir. Çoxölçülü massivin təyini ümumi halda tip, ölçü və hər bir ölçünün sayı haqqında məlumatları özündə saxlayır.

Tip massivin_adı [K1][K2] . . . [KN];

Burada tip-əsas və ya törəmə tip, massivin_adı – identifikator, N – massivin ölçüsü, KN – isə massivdə elementlərin sayıdır.

Digər iki element manipulyator adlanır və cout obyektinin köməyi ilə axınlı xaricetməni idarə edir. Bu manipulyatorlar üçün iomanip.h olunmalıdır.

Massiv-bircins, sabit ölçülü, nömrələrinə görə nizamlanmış elementlərdən təşkil olunmuş verilənlərin strukturudur. Massiv adı (identifikator) və ölçüsü ilə təyin olunur.




2.2. Məsələnin qoyuluşu

Birölçülü massivin müsbət, mənfi və sıfra bərabər olan elementlərinin sayının tapılması üçün proqramın tərtibi.


Program misal;

Uses crt;

Var A: array [1..15] of real;

j, t, i, z: byte;

Begin

J:=0; t:=0; z:=0;

For I:=1 To 15 Do

Begin

Read (A[i]);

IF A [i]<0 THEN t:=t+1;

İf A [i]>0 THEN j:=j+1 ELSE z:z+1;

End;

Write (t, j, z);

End.

Turbo Pascal dilinin xüsusi kitabxanasına müxtəlif modullar daxildir. Modullar proqramda USES operatoru ilə elan olunurlar.

İnformasiyanı ekrana çıxarmaq üçün WRITE Operatorundan istifadə edilir.

WRITELN(а,b,..), burada а,b,... – çıxışda olan sabitlər, dəyişənlər və ifadələr siyahısıdı

Klaviaturadan informasiyanın daxil edilməsi READ operatoru vasitəsilə yerinə yetirilir.



READ, operatoru vasitəsilə verilənlər daxil edilirsə onun işi verilənləri daxil edənə qədər davam edir.

READLN – ENTER klavişi basılana qədər öz işini görür

Begin - əsas proqram blounun başlanğıcı.


Məsələnin blok sxemi


NƏTİCƏ

Bu kurs işində “Strukturlaşdırılmış verilənlərin tipləri. Yazılar” mövzusundan bəhs edilir. Kurs işi giriş, iki fəsil, nəticə, istifadə olunmuş ədəbiyyat və əlavədən ibarətdir.

Birinci fəsil “Strukturlaşdırılmış verilənlərin tipləri. Yazılar” adlanır. Birinci fəsil altı paraqrafdan ibarətdir: “ Verilənlərin strukturları”, İstifadəçinin sadə tipləri”,

“Bircins strukturlu mürəkkəb verilənlər”, “Qeyri-bircins strukturlu mürəkkəb verilənlər”, “Göstərici”, “Əlaqəli və əlaqəsiz dinamik verilənlər”. Bu paraqraflarda “Strukturlaşdırılmış verilənlərin tipləri. Yazılar” haqqında məlumat verilir.

Girişdə kurs işinin aktuallığı və “Turbo Pascal”- ın aktuallığı haqqında məlumat verilir. Turbo Pascal kim tərəfindən yaradılıb və kimin şərəfinə adlandırılıb? Turbo Pascal proqramlaşdırma dilinin riyazi məsələlərinin həllinə tətbiqində alqoritm anlayışından da istifadə olunur. Alqoritm anlayışının özü riyaziyyatın fundamental anlayışıdır.

İkinci fəsil “Massivlər” adlanır. Massivlər bir paraqrafdan ibarət olduğundan burada çoxölçülü massivlərdən məlumat verilmişdir. Proqram massivə aid olduğu üçün massivlərdən məlumat verilmişdir. Proqram “Turbo Pascal” proqramında işlənmişdir və cavab alınmışdır.

Əlavə “Strukturlaşdırılmış verilənlərin tipləri. Yazılar” mövzusuna aid sxemdən ibarətdir. Sxemdə “Strukturlaşdırılmış verilənlərin tipləri. Yazılar” –nın hansı hissələrə bölündüyünü görmək mümkündür.

Ədəbiyyat isə istifadə olunmuş kitabın müəlliflərindən ibarətdir. Ədəbiyyat siyahısı 16 adda siyahıdan ibarətdir. Bura rus və Azərbaycan dillərində ədəbiyyat daxildir. Kitabdan hər iki fəsilin yazılmasında istifadə olunmuşdur.



ƏDƏBİYYAT

  1. Kərimov S.Q., Həbibullayev S.B., İbrahimzadə T.İ., İnformatika. –Bakı ADNA, 2002. -421s.

  2. Kərimov S.Q., Babanlı Ə.Y., Məmmədxanov R.Q., Vəliyev N.N., İbrahimova S.H. İnformatika üzrə rusca-ingiliscə-azərbaycanca-türkcə izahlı lüğət. –Bakı: ADNA, 1996.-529s.

  3. Kərimov S.Q. və b. Fərdi kompüterlər və proqramlaşdırma. –Bakı: Maarif, 1992. 242s.

  4. Əskərov T.M., Kərimov S.Q. Alqoritmik dillər və proqramlaşdırma. –Bakı:

Maarif, 1982.296s.

  1. Артаманов Б.Н. и др. Основы современных компьютерных технологий. –С.П.: Корона принт, 1998. -448с.

  2. Грызлов В.И. Грызлова Т.П. Turbo Pascal 7.0. – M. ДМК, 1998. 400с.

  3. Дарымов Ю.П. и др. Автоматизации процессов управления воздушным движением. М. -1981.

  4. Марценко А.И. Марценко Л.М. Программирование в сделе TURBO PASCAL 7.0. Kиев-Москва, 1998.

  5. Епанешников А.М. Епанешников В.А. Программирование в сделе TURBO PASCAL 7.0. М. -2001.

  6. Федоренко Ю. Алгоритмы и программы на TURBO PASCAL уцебной курс. Питер 2001.

  7. Фаранов В.В. Turbo Pascal 7.0. Началный курс. Учебное пособие. Москва, 2001.

  8. Həbibullayev S.B. TURBO PASKAL dilində proqramlaşdırma, Bakı, 2001.

  9. Уинер Р. Язык ТУРБО ПАСКАЛЬ: Пер. с англ- М.: Мир, 1991

  10. Керниган Б., Ритчи Д. Язык программирование ТУРБО ПАСКАЛЬ: Пер. с англ. –М. Финанси и статистика, 1992

  11. Подбельский В.В. Язык ТУРБО ПАСКАЛЬ: Москва, Финанси и статистика, 1998.

  12. http://pascal.sources.ru

Əlavə 1.









Dostları ilə paylaş:


Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©genderi.org 2019
rəhbərliyinə müraciət

    Ana səhifə