114
TEMPUS PROJEKT: 516678 TEMPUS-1-2011-1-DE- TEMPUS-JPCR: ANPASSUNG DES LEHRBETRIEBS AN DEN BOLO- GNA PROZESS IM INGENIEURSTUDIUM FÜR ASER- BAIDSCHAN Vorlesungsskript: Grundlagen der Informatik Für Studiengang: Bachelor-Automatisierunmgstechnik und El.Energiertechnik Mühazirələr konspekti: İnformatikanın əsasları “Proseslərin avtomatlaşdırılması mühəndisliyi" “Elektroenergetika mühəndisliyi” ixtisaslarının bakalavr səviyyəsi tələbələri üçün Dr. Ing. Senan Jafarov (ASEIU) Dr. Ing. Afag Memmedova (AzTU) Dr. Ing Zakir Sadichov (SUS) Baku 2015

21-İnformatikanın əsasları

  • Upload
    vutruc

  • View
    280

  • Download
    11

Embed Size (px)

Citation preview

Page 1: 21-İnformatikanın əsasları

TEMPUS PROJEKT: 516678 TEMPUS-1-2011-1-DE-

TEMPUS-JPCR:

ANPASSUNG DES LEHRBETRIEBS AN DEN BOLO-

GNA PROZESS IM INGENIEURSTUDIUM FÜR ASER-

BAIDSCHAN

Vorlesungsskript: Grundlagen der Informatik

Für Studiengang: Bachelor-Automatisierunmgstechnik und

El.Energiertechnik

Mühazirələr konspekti: İnformatikanın əsasları

“Proseslərin avtomatlaşdırılması mühəndisliyi" və

“Elektroenergetika mühəndisliyi” ixtisaslarının bakalavr

səviyyəsi tələbələri üçün

Dr. Ing. Senan Jafarov (ASEIU)

Dr. Ing. Afag Memmedova (AzTU)

Dr. Ing Zakir Sadichov (SUS)

Baku 2015

Page 2: 21-İnformatikanın əsasları

3

Grundlagen der Informatik

Einführung 7

1. Theorie von Algorithmen 8

1.1. Begriff des Algorithmus, Haupteigenschaften,

Typen und Darstellungsarten der Algorithmus

8

1.2. Software 18

1.3. Software – Unterstützung 18

1.4. System Software 21

1.5. Instrumentale Systeme 23

1.6. Einsatzprogramme 23

1.7. Programmiersprachen 25

2. Turbo-Pascal 29

2.1. Einführung 29

2.1.1. Funktionale Tasten 30

2.1.2. Textredakteur 32

2.2. Hauptelemente der Sprache 33

2.2.1. Sprachalphabet 33

2.2.2. Identifikatoren 35

2.2.3. Struktur des Turbo-Pascalprogramms 36

2.2.4. Kommentaren (Erläuterungen) 38

2.2.5. Daten 40

2.3. Datentypen 41

2.3.1. Vollständige Datentypen 41

2.3.2. Echte Typvariablen 43

2.3.3. Boolsche oder logische Datentypen 45

3.3.4. Symbol-Datentypen 46

2.3.5. Zeilen-Datentypen 48

2.3.6. Variablen 48

Page 3: 21-İnformatikanın əsasları

4

2.4. Formel. Einfache Ein-Aus-Operatoren 49

2.4.1. Formel 49

2.4.2. Eingangsoperatoren 51

2.4.3. Ausgangsoperatoren 52

2.4.4. Informationseinsatz mit Funktionstasten 56

2.5. Übergangsoperatoren. Zirkulierende Prozesse 58

2.5.1. Bedingte Übergangsoperatoren 58

2.5.2. Bedingungslose Übergangsoperatoren 62

2.5.3. Auswahloperator CASE 63

2.5.4. Zirkulierende Operatoren 66

2.6. Komplizierte Verbundene Variablen 73

2.7. Procedure und Function 80

2.8 Zeilentypdaten und derer

Verarbeitungsfunktionen

88

3. BORLAND DELPHI 96

3.1. Einleitung. Die an Computer gestellten

Anforderungen

96

3.2. Interface des Programms 98

3.3. FORM und seine besondere Eigenschaften 102

3.4. Vorkommnisse (Events) 104

3.5. Instrumentenpanel ”STANDARD“ 105

4. LITERATUR 115

Page 4: 21-İnformatikanın əsasları

5

İnformatikanını əsasları

Giriş 7

I FƏSİL. Alqoritm nəzəriyyəsi 8

1.1.Alqoritm anlayışı, alqoritmin əsas xassələri, tipləri və

təsvir üsulları 8

1.2.Kompüterlərin proqram minatı. 18

1.3.Sistem proqramlar 18

1.4.Xidməti proqram təminatı 21

1.5.İnstrumental sistemlər 23

1.6.Tətbiqi proqramlar 23

1.7.Alqoritmik dillər 25

II FƏSİL. Turbo-Paskal alqoritmik dili 29

2.1. Giriş 29

2.1.2. Funksianal klavişlər 30

2.1.3. Mətn redaktoru 32

2.2. Dilin əsas elementləri 33

2.2.1. Dilin əlifbası 33

2.2.2. İdentifikatorlar 35

2.2.3. Turbo-Pascal proqramının strukturu 36

2.2.4. Komentariyalar (şərhlər) 38

2.2.5. Verilənlər 40

2.3. Verilənlərin tipləri 41

2.3.1. Tam tip verilənlər 41

2.3.2. Həqiqi tip dəyişəniər 43

2.3.3. Bul və ya məntiqi tip verilən 45

2.3.4. Simvol tip verilən 46

2.3.5. Sətir tip verilənlər 48

2.3.6. Dəyişənlər 48

2.4. İfadələr. Sadə giriş-çıxış operatorları 49

2.4.1. İfadələr 49

2.4.2. Mənimsətmə operatoru 51

2.4.3. Çıxış operatorları 52

Page 5: 21-İnformatikanın əsasları

6

2.4.4. İnformasiyanın klaviaturadan daxil edilməsi 56

2.5. Keçid operatorların 58

2.5.1. Şərti keçid operatoru 58

2.5.2. Şərtsiz keçid operatoru 62

2.5.3. CASE seçmə operatoru 63

2.5.4. Dövr operatorları 66

2.6. Mürəkkəb tip dəyişənlər 73

2.6.1. Düzəltmə tiplər 73

2.6.2. Mürəkkəb tiplər 76

2.7. Funksiyalar və proseduralar 83

2.8. Sətri tip veriiənlər və onların emalı funksiyalan 88

III. BORLAND DELPHİ 96

3.1.Giriş. Kompüterə qoyulan tələblər 96

3.2.Proqramın interfeysi 98

3.3.FORM və onun əsas xüsusiyyətləri 102

3.4 Hadisələr(Events) 104

3.5.”STANDARD“ alətlər paneli 105

ƏDƏBIYYAT 115

Page 6: 21-İnformatikanın əsasları

7

Giriş

Son illər informasiya texnologiyalarının geniş yayılması,

kompüterlərin insan fəaliyyətinin bütün sahələrində tətbiq

edilmələri və İNTERNETİN ümumidünya şəbəkəsinə

çevrilməsi müxtəılif sahələr üzrə mütəxəssis hazırlığında bu

sahəyə ciddi fikir verilməsini tələb edir. Bu nöqteyi nəzərdən

son 20 il müddətində Azərbaycan Dövlət Neft Akademiyasının

“Avtomatika, telemexanika və elektronoka” kafedrasında

müxtəlif ixtisaslar üçün “Kompüter şəbəkələri və sistemləri”

fənni tədris edilir.Hal-hazırda bu fənn 050627 “Elektronika,

telekommunikasiya və radiotexnika mühəndisliyi”, 0500628

“Proseslərin avtomatlaşdırılması mühəndisliyi”, 0500631

“Kompüter mühəndisliyi” ixtisaslarının tədris planlarına daxil

edilmişdir. Lakin elektron sistemlərin proqram təminatı həsr

edilmiş azərbaycan dilində dərsliyin olmaması səbəbindən

fənnin tədrisində müəllimlər və tələbələr müəyyən çətinliklərlə

qarşılaşırlar. Bu boşluğu müəyyən qədər doldurmaq məqsədi

ilə bizim tərəfimizdən belə bir dərs vəsaitinin hazırlanmasına

təşəbbüs göstərilmişdir.

Dərs vəsaiti III fəsildən ibarətdir. Dərslikdə elektron

sistemlərin proqram təminatının tərkib hissəsinə daxil olan

alqoritmlərin qurulma qaydaları, metodiki və elmi əsasları

verilmiş, paskal proqramlaşdırma dilində qarşıya qoyulan

məsələnin həllinə, onların təyinatları, Delfi proqramın tərkibi

açıqlanmış və proqramın bütün elementlərindən istifadə

qaydaları verilmişdir.

Dərs vəsaiti müasir kompüter texnologiyaları və

informasiya sistemləri ilə maraqlanan mütəxəssislər üçün də

müəyyən əhəmiyyət kəsb edə bilər.

Page 7: 21-İnformatikanın əsasları

8

I FƏSİL. ALQORITM NƏZƏRIYYƏSI

1.1.Alqoritm anlayışı, alqoritmin əsas xassələri, tipləri və

təsvir üsulları.

Alqoritm sozü görkəmli alim Əbu Muhamməd İbn Musa

əl Xarəzminin (787-850) adının təhrif olunmuş formasıdır.

Belə ki, alimin “Kitab əl cəbr və əl-muqabala" əsəri XII əsrdə

latın dilinə tərcümə edilmiş və bu zaman tərcüməçi alimin

adındakı Xarəzmi sözünü təhrif edərək Alqoritmi kimi

verilmişdir və əsəri “Algoritmi de numero indorum”, yəni

“Alqoritmi hind hesabı haqqında” adlandırmışdır. Bu tərcümə

sayəsində alqoritm sözü Avropa dillərində, sonradan isə əksər

dünya dillərində, o cümlədən azərbaycan dilində bir termin

kimi istifadə olunmaqdadır.

Orta əsrlərdə Avropada alqoritm dedikdə onluq say

sistemində ədədlərlə hesablama qaydaları başa düşülürdü.

Müasir dövrdə isə bu anlayış daha geniş mənada, verilmiş

məsələni həll etmək və ya müəyyən məqsədə çatmaq üçün

zəruri olan əməliyyatlar ardıcıllığının yerinə yetirilməsi

haqqında icraçıya verilən dəqiq və aydın göstərişlərin-əmrlərin

təsviri kimi başa düşülür. Alqoritmin əmrləri sonlu sayda olub

ardıcıl yerinə yetirilir. Hər bir alqoritm konkret icraçı üçün

qurulur. İcraçı alqoritmi yerinə yetirməyə qadir olmalıdır.

Başqa sözlə alqoritmin bütün əmrləri isifadəçi üçün “başa

düşülən” olmalıdır. Məsələn, aydındır ki, birinci sinif şagirdi

riyaziyyatın ilk alqoritmlərindən hesab olunan Evklid

alqoritmini yerinə yetirə bilməz.

Page 8: 21-İnformatikanın əsasları

9

Alqoritm anlayışı bir termin kimi əksər elm sahələrində,

o cümlədən informatikada istifadə olunur. Alqoritm

informatikanın fundamental anlayı şlarından biridir. Belə ki,

informatikanın əsas tədqiqat obyekti ilkin informasiya əsasında

yeni rəqəmli informasiyanın yaradılmasını, informasiyanın

saxlanılmasını, işlə nilməsini, operativ mübadiləsini,

təhlükəsizliyini, insan əməyinin avtomatlaşdırı lmasını təmin

edən, effektiv və kompüterdə icra olunan alqoritmlərin

yaradılmasıdır. Bu baxımdan informatikada alqoritm anlayışına

aşağıdakı kimi tərif vermək olar:

Alqoritm – verilmiş məsə ləni həll etmək üçün ilkin

verilənlərlə icra olunan hesabi və məntiqi əməliyyatların sonlu

sayda ardıcıllığıdır.

Alqoritmlər çox rə ngarəng olsalar da, onların hamısı

aşağıdakı ümumi xassələrə malikdir:

1. Diskretlilik xassəsi. Hər bir alqoritm məsələnin həll

prosesini sadə addımların yerinə yetirilməsi ardıcıllığı şəklində

ifadə edir və hər bir addımın yerinə yetirilməsi üçün sonlu

zaman fasiləsi tələb olunur, yəni başlanğıc verilənlərlə icra

olunan hesabi və məntiqi əməliyyatların yerinə yetirilməsi və

nəticənin alınması zamana görə diskret yerinə yetirilir.

2. Müəyyənlik xassəsi. Hər bir alqoritm dəqiq,

birqiymətli olmalıdır. Bu xassəyə əsasən alqoritm yerinə

yetirildikdə istifadəçinin və onun istifadə etdiyi kompüterdən

Page 9: 21-İnformatikanın əsasları

10

asılı olmayaraq eyni nəticə əldə edilməlidir.

3. Kütləvilik xassəsi. Müəyyən sinif məsələnin həlli

üçün qurulmuş alqoritm bu sinfə aid olan yalnız başlanğıc

qiymətləri ilə fərqlənən bütün məsələlərin həllini təmin

etməlidir. Məsələn, ax2 +bx + c = 0 kvadrat tənliyi üçün

qurulmuş alqoritm a,b, c – nin ixtiyari qiymətləri üçün

məsələni həll edir.

4. Nəticəlilik və sonluluq xassəsi. Alqoritm sonlu sayda

addımdan sonra başa çatmalı və verilmiş məsələnin həlli

tapılmalıdır.

Alqoritm aşğıdakı üsullarla təsvir olunur:

• Sözlə

• Blok-sxemlə

• Alqoritmik dillə

• Qrafalarla

Alqoritmlərin ən sadə təsvir forması tə bii dillə - sözlə

yazılış formasıdır. Alqoritmin mahiyyətinin izahını vermək

üçün bu üsul çox əlverişli olur. Məsələn, verilmiş iki A və B

ədədlərindən böyük olanının tapılması alqoritmini sözlə ifadə

edək:

1. A ədədindən B ədədini çıxın.

2. Nəticədə mənfi qiymət alınarsa, B ədədinin

böyük olmasını bildirin.

Page 10: 21-İnformatikanın əsasları

11

3. Müsbət qiymət alınarsa, A ədədinin böyük

olmasını bildirin.

4. Sıfır alınarsa, hər iki ədədin bərabər olduğunu bildirin.

Alqoritmi əyani təsvir etmək üçün onu blok-sxem

şəklində vermək məsl əhətdir. Bu təsvir forması sözlə

yazılışa nisbətən daha yığcam və dəqiqdir.

Blok-sxem blok adlanan aşağıdakı standart

həndəsi fiqurlardan ibarət olur:

Başlanğıc və sonu bloku

Daxil etmə bloku

Hesablama və ya əməliyat bloku

Şərt bloku

Dövr bloku

Çap bloku

Page 11: 21-İnformatikanın əsasları

12

Hər bir blokda alqoritmin konkret bir və ya eyni tipli

bir neçə əmrini təsvir etmək olar. Bloklar bir-birilə şaquli və

ya üfüqi xətlərl ə və ya oxlarla əlaqə ləndirilir. Şaquli xəttlər

üçün istiqamət olaraq yuxarıdan - aşağıya, üfüqi xəttlər

üçün isə soldan- sağa qəbul olunmuşdur.

Blok-sxemi Proqram Sənədlərinin Vahid Standartı

əsasında tərtib edilməlidir. Məsələn, bu standarta əsasən

hesablama və ya əməliyyat blokunun minimal eni 10 mm

olmalı, bir blok-sxemdə verilən eyniadlı blokların ölçüləri

eyni olmalıdır. Məntiqi blok istisna olmaqla digər

bloklardan yalnız bir xət və ya ox çıxa bilər 1 . Məntiqi

blokdan isə iki xətt və ya ox çıxmalıdır. Blok - sxem bir

səhifəyə sı ğışmadıqda səhifələrarası birl əşdirici vasitəsilə

blok-sxemi növbəti səhifədən davam etdirmək olar. Səhifələ

rarası birləşdiricidə birləşdirci xəttin və ya oxun haradan

haraya istiqamətləndirildiyini göstərmək lazımdır.

Alqoritmin alqoritmik dillə təsvir üsulu onun

kompüterdə icrası üçün tərtib olunur. Alqoritmin belə yazılışı –

kompüter üçün proqram adlanır.

Alqoritmlər xətti, budaqlanan və dövrü struktura malik ola

bilər:

Xətti alqoritmlər sadə hesablama prosesini ifadə edən

bir neçə ardıcıl əməliyyatlardan ibarət olur və onlar yazıldığı

ardıcıllıqla da icra olunur.

Budaqlanma alqoritmlərin tərkibində bir və ya bir

neçə məntiq mərhələsi olur. Bu mərhələdə müəyyən

kəmiyyətlərin hər hansı bir şərti ödəyib-ödəmədiyi yoxlanılır

Page 12: 21-İnformatikanın əsasları

13

Başlanğıc

a,b,x

y=a+bx

y

Son

və ona uyğun olaraq sonrakı gedişin istiqaməti seçilir. Yəni

nəzərdə tutulan şərt ödənilirsə, bir istiqamətə, həmin şərt

ödənilmirsə, başqa istiqamətə doğru hərəkət edilir. Beləliklə,

alqoritmdə budaqlanma baş verir.

Dövr alqoritmi. Proqramlaşdırmada tez-tez eyni

əməliyyatlar qrupunun çoxlu sayda təkrar olunması lazım gəlir.

Bu halda dövr alqoritmindən istifadə olunur. Dövrlər sadə və

mürəkkəb olur. Sadə dövrlü alqoritmin bir dövrü olur. Əgər hər

hansı bir alqoritmdə bir neçə daxili dövr iştirak edirsə, onda

belə dövrlərə mürəkkəb dövr deyilir. Mürəkkəb dövrləri əmələ

gətirən sadə dövrlər kəsişə bilməz.

Xətti alqoritmik struktur

Tərkibində məntiqi və dövri mərhələ olmayan

mərhələlər ardıcıllığında təşkil olunur.

Xətti alqoritm elə alqoritmdir ki, bu

alqoritmi təşkil edən blokların hamısı növbə ilə yerinə

yetirilir. Məsələn, xbay

funksiyasının qiymətinin bir nöqtədə

hesablanması. Təbii danışıq dilində bu

funksiyanın qiymətinin hesablanması

alqoritmini aşağıdakı kimi yazmaq

olar.

1. Proqramın başlanğıcı

2. a,b,x-verilənlərini daxil etməli

3.y=a+b*x funksiyasının qiymətinin hesablamalı.

4. Nəticəni çap etməli.

5. Son.

Bu alqoritmin blok-sxemi aşağıdakıdır.

Page 13: 21-İnformatikanın əsasları

14

Budaqlanan alqoritmik struktur-Tərkibində bir və ya bir

neçə məntiqi mərhələ olan hesablama prosesinin təsvir edir.

Hər bir budaqlanma nöqtəsi uyğun məntiqi mərhələ ilə təyin

edilir. Budaqlanan alqoritmə elə alqoritmə deyilir ki, şərtdən

aslı olaraq, alqoritmi təşkil edən blokların bəziləri yerinə

yetirilir, bəziləri yox.

Məsələn,

baba

babay

,

,

Başlanğıc

a,b

a>b

y=a-b y=a+b

y

Son

yox

Page 14: 21-İnformatikanın əsasları

15

Dövri alqoritmik strukturlar-Dövri strukturlar sadə və

mürəkkəb ola bilər. Sadə struktur bir, mürəkkəb struktur isə

biri digərinə daxil olan iki və daha çox dövrdən ibarət olur. Bu

strukturları sxematik olaraq belə göstərmək olar. Dövrü

strukturların tərtibi zamanı dövrün girişində hesabat prosesinin

tələb etdiyi hazırlıq əməliyyatlarının aparılması nəzərə

alınmalıdır(məsələn, cəmin və ya hasilin hesablanmasında

başlınğıc qiymətlərin məncub edilməsi). Mürəkkəb dövri

strukturlarda xarici və daxili dövrlər və onlar arasındakı

münasibətlər

müəyyənləşdirilməlidir.

Sərbəst dəyişən arqumentli

dövri hesablama prosesləri.

Arqumentin dəyişilməsində

müəyyən qanunauyğunluqlar

olmadıqda onun qiymətlər çoxluğu

nizamla düzülmüş ardıcıllıq

şəklində verilir. Bu ardıcıllıqda hər

elementin öz nömrəsi olmalıdır.

x1, x2, ... , x n-1, xn

Verilənlərin belə nizamlı düzülüşünə

massiv deyilir. Massivin elementi

kimi baxılan hər bir verilən

massivin adı və massivdəki yeri

(indeksi) ilə təyin edilir. Elemente

müraciət etmək üçün massivin adı və

elementin indeksi gəstərilməlidir.

Məsələn X massivində X (1) -1-ci

elementi, X (10) -10-ci elementi

Page 15: 21-İnformatikanın əsasları

16

göstərir. Massivin elementinə başqa sözlə indeksli dəyişən

deyilir. İndekslərin sayı massivin ölçüsünü göstərir. Bir

indeks massivin bir ölçülü yəni xətti olduğunu,iki indeks

massivin iki ölçülü yəni matris tipli olduğunu və s. göstərir.

Alqoritmik dillərdə massivlərlə işləmək üçün xüsusi

vasitələr nəzərə alınır.

Massivlərin işlədilməsinə aid bəzi tipik hesablama

proseslərinə baxaq.

a) Arqumentin qiymətlər çoxluğuna görə funksiyanın

qiymətləri çoxluğunun hesablanması.

Misal.Verilmiş X(100) massivinə əsasən ,

i=1,100 düsturu ilə y-in qiymətlər çoxluğunu hesablayan

alqoritmi qurmalı. Alqoritmin blok-sxemi şəkildə göstərilir.

b) Ədədlər massivinin elementlərinin cəminin (və ya hasilinin)

hesablanması.

Misal. Hörner sxemi vasitəsilə verilmişdir.

y = a 0 xn

+ a1 x n-1

+ . . . +a n-1 x + an

n dərəcəli çoxhədlinin qiymətinin hesablamaq üçün alqoritm

tərtib etməli.

Bu məsələnin həlli üçün verilənlər arqumentin x qiyməti və

a 0, a 1 ,a2, . . . , an əmsallarından düzəlmiş (n+1) elementli

massivdir. Hörner sxemi ilə verilən çoxhədli ümumi halda

aşağıdakı kimi yazılır.

y = (...(( a 0 x + a1 ) x a2)x

+ . . . +a n-1 ) x + an

Page 16: 21-İnformatikanın əsasları

17

Mürəkkəb dövrü proseslər.

Praktik məsələlər əksər hallarda

daxildən dövri strukturlar olan

mürəkkəb dövri proseslər şəklində

verilir. Daxili dövrlər ya müstəqil

şəkildə,ya da biri digərinin içərisində

xarici dövrdə daxil ola bilərlər.

Dövrlərin birinin digərinə daxil

olmalarının say məhdudlaşdırılmır.

Mürəkkə dövri alqoritmlərin

xarici və daxili dövrlərinin təşkil

qaydaları əsasən sadə dövrlərdə

olduğu kimidir. Sadə dövri

strukturları kombinasiya edərək

lazımi mürəkkəb struktur almaq olar.

Bu zaman aşağıdakılar nəzərə

alınmalıdır:

- daxili dövrlərin parametrlərinin

başlanğıc qiymətləri onların

işlənməsinə qədər hazırlanmalıdır;

- daxili dövrdən xarici dövrə çıxış daxili dövrü bitdikdən sonra

və ya hər hansı şərtin ödənməsi nəticəsində yerinə yetirilir;

- xarici dövrdən daxili dövrə yalnız onun başlığı vasitəsilə daxil

olmaq mümkündür;

Page 17: 21-İnformatikanın əsasları

18

1.2. Kompüterlərin proqram təminatı

Proqram təminatı kompüterlərin istifadə etdiyi

proqramlar toplusundan ibarətdir. Proqram isə öz növbəsində

tələb olunan məsələnin həll alqoritminin kompüterin “başa

düşəcəyi dildə” yazılmış təsvir formasıdır. Kompüter proqramı

yerinə yetirməklə alqoritmə uyğun əməliyyatları yerinə yetirir.

Müvafiq proqram təminat ı kompüteri insan fəaliyyətinin ən

müxtəlif sahələrində tətbiq edilməsinə imkan verir. Məhz onun

sayəsində kompüterlər çoxsahəli bir əmək aləti olaraq, insan

həyatının zəruri bir elementinə çevrilməkdədir.

Öz funksional təyinatına görə proqramlar üç

kateqoriyaya bölünür:

1. Sistem proqramları (System Software)

2. İnstrumental sistemlər

3. Tətbiqi proqramlar

1.3.Sistem proqramları

Sistem proqramları əməliyyat və istifadəçi interfeysi

mühitinin yaradılmasını, kompüterin qur ğularının və digər

proqramların birgə fəaliyyətini, kompüter şəbəkəsinin idarə

olunmasını, diaqnostika və profilaktika, bir sıra köməkçi

texnoloji əməliyyatların (məsələn, informasiyanı arxivləşdirmə,

ehtiyat surətinin yaradılması və s.) yerinə yetirilməsini təmin

Page 18: 21-İnformatikanın əsasları

19

edir. Bu kateqoriyaya aid proqramlar kompüterin

arxitekturasını nəzərə almaqla və keyfiyyət standartlarına 1

uyğun hazırlanır.

Sistem proqramlarını şərti olaraq iki qrupa bölmək olar:

1. Əməliyyat sistemləri

2. Xidməti proqramlar

Əməliyyatlar sistemi hər bir kompüter üçün zəruri olan,

onun informasiya, proqram və aparat təminatını idarə edən,

istifadəçi ilə kompüter arasında dialoqu təmin edən proqramlar

kompleksindən ibarətdir. Əməliyyatlar sistemi adətən xarici

yaddaş qur ğusunda saxlanılır və kompüter elektrik

dövriyyəsinə qoşulduqda operativ yaddaşa yüklənərək, məsəl

ənin həlli üçün tələb olunan fiziki və məntiqi ehtiyatlar2 ayırır

və istifadəçiyə rahat və sadə işçi interfeysi təklif edir.

Xarici yaddaş qurğusu olmadığından ilk fərdi

kompüterlər əməliyyatlar sisteminə malik olmamışlar. Yalnız

bu qurğular yaradıldıqdan sonra faylların idarə olunması üçün

əməliyyatlar sisteminin yaranması zərurəti yaranmışdır.

Kompüterlərdə müxtəlif arxitekturalı və funksional im-

kanlı əməliyyatlar sistemlərindən istifadə olunur. Əməliyyatlar

sisteminin normal iş rejimi müvafiq konfiqurasiyalı aparat

təminatı olduqda təmin olunur. Məsələn, maynfreymlərdə və

fərdi kompüterlərdə fərqli əməliyyatlar sistemləri istifadə olu-

nur. Əməliyyatlar sistemində əməliyyatların yerinə yetirilməsi

sürəti kompüterin operativ yaddaşından və istifadə etdiyi pros-

Page 19: 21-İnformatikanın əsasları

20

essordan asılıdır. Bu baxımdan, əməliyyatlar sisteminin istifadə

etdiyi prosessorun tərtibinə görə təsnifatını vermək olar. Fərdi

kompüterlərdə 16, 32, 64 -tərtibli əməliyyatlar sistemlərindən

istifadə olunur. Məsələn, İBM tipli kompüterlərdə istifadə

olunan MS-DOS, PC-DOS, FreeDOS əməliyyatlar sistemləri

16 tərtibli, Windows 2000 sistemi 32 tərtibli, Windows XP 64

Bit Editon sistemi 64 tərtibli əməliyyatlar sistemidir.

Əməliyyatlar sistemi yerinə yetirdikləri məsələlərin mi-

qdarına görə birməsələli və çoxməsəl əli sistemlərə bölünür.

Birməsələli əməliyyatlar sistemində cari anda yalnız bir məsələ

yerinə yetirilir. Bu cür əməliyyatlar sistemlərinin tipik

nümunəsi kimi MS-DOS əməliyyatlar sistemini misal

göstərmək olar.

Çoxməsələli əməliyyatlar sistemi kompüterdən isti-

fadəçilərin multiproqram vaxt bölgüsü rejimində kollektiv isti-

fadəni təmin edir. Bu zaman cari anda kompüterin operativ

yaddaşında bir neçə proqram və məsələlər toplusu ola bilər ki,

mikroprosessor kompüterin ehtiyatlarını onların arasında effek-

tiv bölüşdürür. Bel ə əməliyyatlar sisteminə misal olaraq

UNIX, OS/2, Windows 9x/Xp/Vista, Windows NT/Server və

digər əməliyyatlar sistemlərini göstərmək olar.

İst ənilən bir məsəl əni kompüterdə həll edərkən çox-

saylı elementar əməliyyatları yerinə yetirmək təl əb olunur.

Əməliyyatlar sistemi belə elementar, amma mürəkkəb

əməliyyatları kompüterin daxilində olan qurğularda həll edərək

bütün iş prosesini istifadəçidən gizli saxlayır, istifadəçiyə

Page 20: 21-İnformatikanın əsasları

21

kompüterdə işləmək üçün əlverişli interfeys yaradır. İsti-

fadəçiyə təklif etdiyi işçi interfeysinə görə əməliyyatlar sistem-

ləri əmr və qrafiki interfeysli əməliyyatlar sistemlərinə bölünür.

Əmr interfeysli əməliyyatlar sistemlərində hər bir əməliyyat

müvafiq əmri klaviaturadan daxil etməklə yerinə yetirilir.

Qrafiki əməliyyatlar sistemində əmrlər əsas və kontekst

menyu sistemi, alətlər panelləri və dialoq pəncərələri1 vasit

əsilə yerinə yetirilir. Qrafiki əməliyyatlar sistemi daha rahat və

sadə işçi interfeysinə malikdir.

1.4. Xidməti proqram təminatı

Praktikada kompüter istifadəçiləri bir sıra hallarda

proqram-texniki problemlərlə qarşılaşır. Bu problemlərin

səbəblərinin müəyyən edilməsi və aradan qaldırılması xidməti

proqramlar vasitəsilə yerinə yetirilir

Xidməti proqramlar kompüterin aparat hissəsinin işinə

nəzarət edir, kompüterdə baş verən nasazlığı və onun harada

baş verdiyini aşkar edir, əməliyyatlar sisteminin əvvəlki vəziy-

yətinin bərpa olmasını, icra zamanı qarşıya çıxan səhvləri

düzəltməyə, sərbəst proqram modulları arasında qarşılıqlı

əlaqəni təmin etməyə, disklərin formatlaşdırılmasına, CD və

DVD disklərinə yazılması və sairə bu kimi texnoloji işlərin

həyata keçirilməsinə imkan verir.

Xidməti proqramlar qrupuna interfeys proqramları, dia-

qnostika, antivirus və şəbəkəyə xidmət, arxivləşdirmə proqram-

Page 21: 21-İnformatikanın əsasları

22

ları, drayverlər aiddir.

İnterfeys proqramları əməliyyatlar sistemi ilə birgə

fəaliyyət göstərərək istifadəçiyə daha sadə və rahat interfeys

təqdim edir. Məsələn, MS-DOS əməliyyatlar sistemi üçün Nor-

ton Commander (NC)1 , 1985-ci ildə isə Windows 1.0, 1990,

1992, 1993-cü illərdə Windows 3.0/3.1/3.11 qrafiki proqram

örtükləri2 yaradılmışdı.

Diaqnostika proqramları kompüterin qurğularını dia-

qnostika edər ək yaranan nasazlıqları aşkar edir və imkan dax-

ilində aradan qaldırmağa xidmət göstərir. Məsələn, maqnit

disklərin diaqnostikası üçün Scandisk, Norton Disk Doctor

(NDD), diskin defraqmentləşdirilməsi üçün Defrag, Speed

Disk, diskdən ləğv olunmuş fayl və qovluqların bərpası üçün

Easy Recover, Tiramisu, Drive Rescue proqramlarından isti-

fadə etmək olar. CD və DVD disklərinə yazılma proqramları

diskin surətinin alınmasını, multimedia disklərin, avtomatik

yüklənən proqram disklərin hazırlanmasını və s. texnoloji

əməliyyatları yerinə yetirirlər. Bu tip proqramlara

RegCleaner, Customizer XP Easy CD Creator, WinOnCD,

Nero Burning ROM, Direct CD və s. proqramları gostərmək

olar.Arxivləşdirmə proqramları faylları xüsusi riyazi alqoritm

əsasında sıxaraq daha kiçik h əcmdə, bir və ya bir neçə arxiv

faylı nda saxlayır. Hal-hazırda faylları arxivləşdirmək üçün

ARJ, ZIP, WINZIP, RAR, WINRAR proqramlarından istifadə

edilir.

Page 22: 21-İnformatikanın əsasları

23

Antivirus proqramları isə kompüterin virusa

yoluxmasının qarşısını alır, vaxtaşırı faylları yoxlayır və on-

larda əmələ gəlmiş virusları aradan qaldırır.

1.5.İnstrumental sistemlər

İnstrumental sistemlər yeni sistem və tətbiqi proqram

vasitəl əri yaratmaq üçün istifadə edilir. İnstrumental sistemlər

maşın dilindən fərqli və istifadəçi üçün asan olan alqoritmik

dillərdə işləməyi təmin edir.

Kompüter yalnız maşın dilini başa düşdüyü üçün alqor-

itmik dildə yazılan proqram icra prosesindən qabaq mütləq

maşın koduna çevrilməlidir. Bu məqsəd üçün instrumental sis-

temlər qrupuna daxil olan translyator adlanan proqramlar kom-

pleksindən istifadə olunur.

Translyatorun işi iki üsulla təşkil oluna bilər: inter-

pretasiya və kompilyasiya yolu ilə. Buna uyğun olaraq çox vaxt

translyatoru interpretator və ya kompilyator adlandırırlar. Onlar

arasında fərq çevrilən proqramın mətninin müxtəlif üsullarla

emal olunmasıdır.

1.6.Tətbiqi proqramlar

İnsan fəaliyyətinin konkret fəaliyyət sahələrinə aid

məsələləri həll etmək üçün nəzərdə tutulan proqramlara tətbiqi

proqramlar deyilir. Tətbiqi proqramlar 3 formada – proqram,

proqramlar paketi və standart proqramlar kitabxanası şəklində

Page 23: 21-İnformatikanın əsasları

24

istehsal olunur.

Tətbiqi proqramlar paketi müəyyən sinif məsələləri həll

etmək üçün nəzərdə tutulmuş elə proqramlar kompleksidir ki,

kompleksin komponentlərindən biri idarəedici rolu oynayaraq,

paketin digər bütün proqramlarının bir-biri ilə əlaqəsini təşkil

edir.

Standart proqramlar kitabxanası isə kompüterdə riyazi

funksiyaların hesablanmasını, standart mahiyyətli məsələlərin

həllini, verilənlərin emalını və s. bu kimi işləri yerinə yetirən

proqramlardan ibarətdir. Belə proqramlar adətən üsul yonümlü

proqramlarla birlikdə istifadə olunur.

Müasir dövrdə fərdi kompüterlərdə müxtəlif təyinatlı

yüz minlərlə tətbiqi proqramlardan istifadə edilir. Funksional

imkanlarına görə tətbiqi proqramlar ümumi təyinatlı, üsul

yönümlü və problem yönümlü proqramlara bölünür. Ümumi

təyinatlı proqramlara mətn 1 , elektron cədvəl

2 prosessorları,

nəşriyyat sistemlər, verilənlər bazasının idarəetmə sistemləri,

qrafiki redaktorlar, təqdimat, multimedia proqramları,

kompüter oyunları və s. aiddir.

Üsul yönümlü proqramlar müəyyən sinif məsəl ələrin

həll üsulları əsasında fəaliyyət gəstərir. Onlara statistik təhlil

proqramlarını (məsələn, Statistica, StatFi 2007 və s. ), riyazi

proqram paketlərini (məsələn, Matlab, Mathcad, Mathmatica,

Maple və s) və s. göstərmək olar.

Problem yönümlü proqramlar konkret ixtisaslı isti-

Page 24: 21-İnformatikanın əsasları

25

fadəçilər üçün onlar ın peşə fəaliyyətinə aid müəyyən sinif

məsələlərin həlli üçün yaradılır. Onlar tibbdə, bank işində,

müəssisələrin və istehsalatın avtomatik idarəetmə işində və s.

geniş tətbiq olunur. Belə proqramlar adətən Avtomatlaşmış İşçi

Yeri kimi fəaliyyət göstərirlər. Məsələn, İRBİS 64 proqram pa-

keti kitabxanaların avtomatlaşdırılması üçün istiafadə olunur və

onun əsasında kataloqlaşdırıcı, kitab verilişi, oxucu, adminis-

trator, komplektləşdirici və s. Avtomatlaşmış İşçi Yerləri təşkil

olunur.

1.7.Alqoritmik dillər

Kompüter istehsal ının ilk dövründə proqramlar maşın

dilində yazılırdı. Maşın dili kompüterin “başa düşdüyü” kodlar-

la ifadə olunmuş əmrlərdən ibar ət olub, konkret kompüterin

arxitekturasından asılı idi. Hər bir əmrdə ümumi şəkildə,

aparılacaq əməliyyatın məzmunu haqqında məlumat, üzərində

maşın əməliyyatı aparılacaq başlanğıc verilənlərin yerləşdiyi

yer-ünvan, nəticənin ünvanı və bu əmrdən sonra yerinə

yetiriləcək əmr haqqında məlumat verilirdi.

Maşın dilində proqramları n yaradılması və onların kompüterdə

yerinə yetirilməsi kifayət qədər mürəkkəb və vaxt aparan idi.

Bu səbəbdən kompüter texnologiyasının inkişafının sonrakı

mərhələsində t əbii dilə daha yaxın olan simvolik dillər yarandı.

Belə ki, ikinci nəsil kompüterlərin yaranması , konkret maşının

yox, qoyulmuş məsələnin xüsusiyyətlərindən asılı olan dillərə

ehtiyac yaratdı. Bu dillərə formal dillər və ya sadəcə alqoritmik

dillər deyilir və bir sıra üstünlüklər ə malikdir. Bu dill ər əyani

Page 25: 21-İnformatikanın əsasları

26

olub, onlarla ixtiyari alqoritmi asanlıqla ifadə etmək mümkün-

dür. Alqoritmik dillər alqoritmin birqiymətliliyini, mürəkkəb

alqoritmin daha sadə alqoritmlərin vəhdəti şəklində ifadə

edilməsini təmin edir. İlk mükəmməl alqoritmik dil 1954-cü

ildə İBM firmasında Con Bekusun rəhbərlik etdiyi qrupun

yaratdığı FORTRAN dili idi. Bu dilin adı FORTRAN-

FORmulae TRANslation - formulaların t ərcüməsi sözündən

götürülmüşdür. Bu dil çox sadə struktura malik olduğundan on-

dan hal-hazırkı vaxta qədər istifadə olunur. Fortranda proqram

operatorlar ardıcıllığı şəklində yazıl ır. Bu dildə yazılan

proqram bir və ya bir neçə seqmentlərdən (alt proqram) ibarət

olur. Bütün proqramın işini idarə edən seqment əsas proqram

adlanır.

Fortran dili elmi və mühəndis texniki hesablama sa-

hələrində istifadə edilmək üçün nəzərdə tutulmuşdu. Lakin bu

dildə budaqlanan strukturlu məsələlər (istehsal prosesinin mod-

elləşdirilməsi və s.), bəzi iqtisadi məsələlər və redaktəetmə

məsələləri (c ədvəl, arayış və s. qurulması) üçün proqramlar da

qurula bilər. Sonrakı illərdə bu dilin müxtəlif modifikasiyaları

yaradılmışdı.1960-cı ildə Alqol-60 (Alhoritmic Language-

alqoritmik

dil) dili, 1966-cı ildə isə Fortran dili əsasında Dartmut

kollecinin hesablama mərkəzində Basic dili (BASIC-

Beginner’s Allpurpose Symbolic İnstruction Code-yeni

başlayanlar üçün çoxməqsədli simvolik əmrlər dili) yaradıldı.

Basic dili Visual Basic.Net versiyasına qədər böyük təkamül

yolu keçmişdir. Hal-hazırda Visual Basic.Net dilindən qrafiki

interfeysli proqram əlavələrin yaradılmasında geniş istifadə

olunur.

Page 26: 21-İnformatikanın əsasları

27

Fortran, Alqol-60 dillərilə paralel olaraq intensiv inkişaf

edən elm və texnikanın yeni sahələrinin tələbatını ödəmək üçün

yeni proqramlaşdırma dilləri yaradılmışdır. Məsələn, 1957-ci

ildə riyazi verilənlərin emalı üçün APL (Aplication Program-

ming Language) dili, 1959-cu ildə İ BM firması tərəfindən

böyük həcmli verilənlər massivinin emalı üçün Cobol (Com-

mon Business Oriented Language) dili, mətn informasiyanın

emalı üçün 1962-ci ildə Snobol1, 1969-ci ildə çoxluqlar

üzərində əməliyyatlar aparmaq üçün SETL dili yaradılır.

Üçüncü nəsil kompüterlərin yaranması, universal alqor-

itmik dillərin yaradılması məsələsini qar şıya qoydu. Bu cür

dillərin yaradılması üçün edilən cəhdlərdən biri nəticəsində

İBM firması tərəfindən PL/1 (Programming-Language/1-

proqramlaşdırma dili-1) dili yaradılır. Bu dil Fortran, Alqol və

Cobol dillərinin əsasında yaradılmış və bu dillərin üs-

tünlüklərini özündə birləşdirmişdi.

1971-ci ildə Nikuls Virt tər əfindən Paskal2 dili

yaradılır. Bu dil struktur proqramla şdırma ideyasının, yəni

proqramın kiçik, dəqiq təyin edilmiş prosedurlardan tədricən

qurulması ideyasının həyata keçirilməsini təmin edən ilk dildir.

1983-cü ildə Pentaqonda Ada 3 dili yaradılır. Bu dil əsasən

hərbi və bğyük sənaye layihələrinin yaradılmasında istifadə

edilir. Dil birinci proqramlaşdırıcı – qrafinya Ada Lavlaysın

şərəfinə adlandırılmışdı r. 1972 -ci ildə Kreniqan və Ritçi

tərəfindən C dili, 1986-cı ildə onun bazasında Brayn Straustrup

tərəfindən problem yönümlü C++

dili yaradılır. C/C++

dili-

Page 27: 21-İnformatikanın əsasları

28

universal dil olub, sistem proqramlarının yaradılmasında, o

cümlədən geniş yayılmış UNİX əməliyyat sistemi üçün ko-

dların yazılmasında geniş istifadə olunur. 1995-ci ildə Sun Mi-

crosystems kompaniyasında Java dili yaradılır. Qeyd etdiyimiz

dillərdən başqa dillər də mövcuddur və bu dillərin yaradılması

prosesi davam etdirilir.

XX əsrin 90-cı illərindən başlayaraq Web proqram-

laşdirma dilləri meydana gəldi. Web proqramlaşdirma dilləri

Web səhifəl ərin idarə olunmasında istifadə olunur. Onlara

misal olaraq HTML, XML, JavaScript, VbasicScript, Perl, Pay-

ton göstərmək olar.

Page 28: 21-İnformatikanın əsasları

29

II FƏSİL. TURBO-PASKAL ALQORITMIK DILI

2.1. Giriş

Turbo-Paskalı çağırmaq üçün kompüterlərin kataloq-

larının ağacvari strukturasında TURBO.EXE faylını axtarmaq

lazımdır, həm də TURBO.HLP (məlumat xidməti

proqramxanası) TURBO.TPL (translyatorun kitabxanası)

ıstemdə saxlanılır. Proqramı yazan zaman kompüterin qrafik

imkanlarından istifadə etmək üçün GRAPH.TPU kitabxana

faylı və qrafik drayveri özündə saxlayan fayl lazım olur.

Məsələn, CGA.BGI. Buna görə də qrafik drayverin tipi və

faylın adı konkret kompüterin aparat vasitələrindən asılıdır.

CGA drayveri IBM kompüterin əksəriyyətində saxlanılır.

Əksəriyyət hallarda Turbo-Paskala aid olan bütün fayllar TP,

TURBO, TURBOPAS, PASCAL adlı kataloqlarda və ya onlara

uyğunkataloqlar saxlanılır.

Tutaq ki, bu katalokı TP adlanır və S diskində yerləşir.

Onda Turbo-Paskalı çağırmaq üçün aşağıdakı əmri vermək

lazımdır.

C:\TP\TURBO.EXE

Ya da kataloqların ağacvari strukturasında kursoru TRBO.EXE

faylının üzərinə gətirib ENTER düyməsini sıxmaq

lazımdır.Sistemi çağırdiqdan sonra kompüterin ekranının

yuxarı sətrində Turbo-Paskalın iş rejimləri menyusu, aşağı

sətrində əsas funksional klavişlərin mənası haqqında qısa

məlumat verilir (şəkil 1).Ekranın qalan hissəsini redaktor

pəncərəsi adlandırmaq olar. Bu pəncərə Turbo-Paskalda

yazılmış proqramı daxil etməkdən və mətn üzərində

korreksiya etməkdən və mətn üzərində korreksiya etməkdən

Page 29: 21-İnformatikanın əsasları

30

istifadə olunur. Pəncərənin yuxarı sətri (ekranın ikinci sətri)

mətin redaktorunun xidməti məlumatını özündə saxlayır:

kursor duran sətrin nömrəsini və mövqeyini, redaktə olunan

faylın adını və s. Redaktor pəncərəsindən və nəticələrin

çıxarılması pəncərələrindən istifadə olunur{şək.2.1.).

Şək.2.1.Turbo-Paskalın ekran görünüşü

2.1.2. Funksianal klavişlər

Funksional klavişlər F1...F10 simvolları ilə qeyd olunub

klaviaturanın yuxarı. birinci sətrində yerləşir. Bu klavişlərin hər

bırı bır neçə əmrlə əlaqəlidir və onları idarə edir. Bu klavişlərin

hər birini iki xüsusi klavişin ALT (ALTernative- tamamlayıcı)

və CTRL (ConTRoL- idarə) köməyi ilə modifikasiya etmək

olar.

ALT və CTRL klavişləri həm də müvəqqəti registrlərin

dəyişdirilməsi üçün də istifadə olunur. Əvvəlcə bu klavişlərdən

birini basmaq, sonra klavişi buraxmadan funksional

klavişlərdən birini basmaq lazımdır. Bundan sonra bu

klavişlərin kombinasiyasını tire işarəsi ilə göstərəcəyik.

Məsələn, ALT-F3 kombinasiyasının mənası o deməkdir kı,

Page 30: 21-İnformatikanın əsasları

31

ALT klavişi ilə F3 klavişini birgə sıxmaq lazımdır, CTRL-F9 -

CTRL klavişi ilə F9 klavişi birgə basılmalıdır.

Aşağıda funksional klavişlərin və onların bir neçəsinin

ALT və CTRL klavişləri ilə kombinasiyası və onların mənası

göstərilmişdir.

F1 - məlumat xidmətindən hər hansı bir məlumatı almaq.

F2 - redaktə olunan faylı diskə yazmaq.

F3 - diskdən faylı oxumaq.

F4 - proqramın yerinə yetirilməsinə başlamalı, yaxud da

davam etdirməli, hansı sətir icra edilirsə, kursoru onun

qarşısında saxlamalı (sazlama rejimində istifadə edilir).

F5 - ekrana iki pəncərəni yerləşdirir: sazlama və redaktor

pəncərəsini. F5 düyməsinin yenidən basılması ekranı ilkin

vəziyyətə gətirir.

F6 - redaktor pəncərəsini sazlama pəncərəsinə dəyişir.

F7 - proqramın növbəti sətirini yerinə yetirir. Əgər

notirdə proseduraya (funksiyaya) müraciət varsa proseduraya

dstxil olur (sazlama rejimində istifadə olunur).

F8 - proseduraya daxil olmadan proqramın növbəti

uutirini yerinə yetirir.

F9 - proqramı yerinə yetirmədən komplaysiya edir.

F10 - əsas menyunun köməyilə iş rejimini seçmə

dialoquna keçir.

Alt-F3 - Turbo.PCK fayllar siyahısından proqramlardan

birini redaktora yükləyir.

Alt-F5 – redaktor pəncərəsini çıxış nəticələri pəncərəsinə

dəyişir.

Alt-F6 – Turbo.PCK fayllar siyahısından axırıncı

proqramı redaktora yükləyir.

Page 31: 21-İnformatikanın əsasları

32

Alt – Turbo-Paskalda işi qurtarır.

Ctrl-F9 – redaktorda yerləşən proqramı kompilyasiya və

icra edir.

Funksional klavişlər haqqında ətraflı məlumatı Turbo-

Paskalın əsas menyusundan almaq olar. Ən əsas sizə

aşağıdakılar lazım olacaq. Sizin proqramın işlənməsini

yoxlamaq üçün Ctrl-F9, Turbo-Paskaldan çıxarmaq üçün Alt-X

və istənilən vaxt çıxış nəticələrinə baxmaq üçün Alt-F5.

2.1.3. Mətn redaktoru

Turbo-Paskalın mətn redaktoru populyar redaktor olan

WordStar əsasında qurulmuşdur. Əsas menyunun seçmə

vəziyyətindən redaktor vəziyyətinə keçmək üçün ESC

düyməsini basmaq lazımdır. Redaktor pəncərəsində sayrışan

kursor vardır ki, o da yazılan simvolun mövqeyini göstərir.

Əsas menyudan seçmə vəziyyətində kursor itir və menyu

sətirində düzbucaqlı şəklində rəngli göstərici görünür ki, bu da

hər hansı açar sözünü seçmək üçün istifadə olunur.

Proqramın mətnini yaratmaq üçün sadəcə olaraq o mətni

klaviaturadan daxil etmək lazımdır.

Əgər kursor özünün yerdəyişməsi ilə axırıncı sətirə

keçirsə, onda proqramın mətni bir sətir yuxarı sürüşür. Əgər

kursor ekranın sağ tərəfinə çatırsa və simvolların daxil edilməsi

davam edirsə, onda pəncərə də simvollar daxil edildikcə sağa

sürüşür. Sətirin maksimal uzunluğu 249 simvoldur. Turbo-

Paskalın komplyatoru bir sətirdə 126 simvola qədər qəbul edir.

Şaquli uzunluğu 64535 simvola qədərdir.

Pəncərəni aşağıdakı düymələrin köməyi ilə yerini

dəyişmək olar.

Page 32: 21-İnformatikanın əsasları

33

PageUp - səhifə yuxarı

PageDown - səhifə aşağı

Nome - cari sətirin başlanğıcına

End - cari sətirin sonuna

Ctrl-PageUp - mətnin başlanğıcına

Ctrl-PageDown - mətnin sonuna.

Kursor ekranda daxil ediləcək simvolun mövqeyini

göstərir. Əgər siz simvolların daxil edilməsində səhv

etmişsinizsə, onları silmək olar.

Delete-kursor üzərində duran simvolu silir.

Backspece-kursorun solundakı simvolu silir.Ctrl-Ykuror

duran sətri silir.

Sətiri bölmək, yəni yasını yeni sətrə keçirmək və ya

ümumiyyətlə yeni sətrə keçmək üçün Enter düyməsindən

istifadə edilir.

2.2. Dilin əsas elementləri

2.2.1. Dilin əlifbası

Hər bir dildə olduğu kimi Turbo- Paskalın da öz qanuna

uyğunluqları vardır. Yəni, əgər proqramın yazılışında bu

qaydalara riayət olunmazsa translyator buraxılmış qramatik

səhvləri aşkar edəcəkdir. Ona görə də Turbo-Paskala daxil olan

simvolları və açar sözləri öyrənək. Turbo-Paskalın əlifbasına

hərflər, rəqəmlər, 16- lıq rəqəmlər və xüsusi simvollar daxildir.

1. Latın əlifbasının a-dan z-ə qədər kiçik və A- dan Z - ə

qədər olan böyük hərflərindən operatorların, dəyişənlərin

yazılışında istifadə edilir. Turbo-Paskalda proqramın yığıl-

masında kiçik və böyük hərflərin fərqi yoxdur.

Page 33: 21-İnformatikanın əsasları

34

2. 0,1,...9 ərəb rəqəmlərindən ədədləri təsvir etmək üçün

istifadə olunur.

3. Xüsusi simvollardan və simvolların kombinasiyasından

istifadə edilir.

+ - * = , . : / ; < > [ ] { } ^ @ $ # ( ) ^ @ < > <= >=

:= (* *) (. .) ($) _ '

Lakin ifadələrin yazılışında bir və ya bir neçə boşluq

işarəsi qoymaq olar. Məsələn:

A:=A+1 və A:=A +1 eyni ifadədir.

ASCII-nin 128-255 kodlarına uyğun simvolları əlifbaya

daxil deyil. Ancaq onlardan komentariyaların yazılışında

istifadə oluna bilər.

ASCII-də 0-31 idarəedici kodiarı

Açar sözlər

Absolute For Nil string

And Forward Not then

Array Function Of to

Begin Goto Or type

Case If Packed unit

Const Implementati Procedure until

Div on Program uses

Do In Record var

Downto Inline Repeat while

Else Interface Set with

End Interrupt Chl xor

External Label Shr

File Mod

Page 34: 21-İnformatikanın əsasları

35

Proqram yazarkən mürəkkəb elementlər arasında boşluq

işarəsi qoymaq olmaz.

Məsələn:

> =

Standart funksiyalar və açar sözləri identifikator kimi

ıstifadə etmək olmaz.

2.2.2. İdentifikatorlar

İdentifikatorlar hərflə başlayaraq hərf, hərf rəqəm və (alt

xətt) simvolları kombinasiyasından təşkil edilirlər. İdentifi-

katorlar ixtiyari uzunluqlu ola bilərlər, lakin translyator ilk 63

simvolu qiymətli simvol sayır.

Turbo-Paskalda identifikatorlar konstantaların, dəyişən-

lərin, nişanların, tiplərin, praseduralann, modulların, faylların,

proqram və yazılarda sahələrin adlandırılmasında istifadə

olunur.

Boşluq və Turbo-Paskalın xüsusi simvollarından iden-

tifıkator kimi istifadə etmək olmaz.

Düzgün yazılmış identfikatora aid misal:

a, ALFA, DATA_27

Düzgün yazılmamış idintfikatrolara misal:

-beta, blok#1, mod, xor

Page 35: 21-İnformatikanın əsasları

36

2.2.3. Turbo-Pascal proqramının strukturu

Turbo-Paskalın quruluşuna aşağıdakı bölmələr daxildir:

PROGRAM

USES

CONST

TYPE

VAR

PROCEDURE

FUNCTION

BEGIN

END.

Proqramın sonu mütləq '.' simvolu ilə qurtarır. Yuxarıdakı

ardıcıllığa standart proqramda mütləq riayət olunmalıdır.

Turbo-Paskalda isə bölmələr ixtiyari ardıcıllıqda gələ bilər

(PROGRAM əvvəl, əsas blok sonda gəlir). Bəzi bölmələr

Turbo-Paskal proqramında iştirak etməyə bilər. Bölmələrin

funksiyalarını öyrənək.

PROGRAM <proqramın adı> (INPUT, OUTPUT);

direktivi Turbo-Paskal üçün məcburi deyil. Proqrama ad

vermək üçün istifadə olunur.

1) USES-direktivi Turbo-Paskalın standart proqram proq-

ramxanasından istifadə etməyə imkan yaradır. Bununla da da

Turbo-Paskalın CRT, DOS, GRAPH proqramxanalarındakı

prosedura və funksiyalardan proqramda istifadə edilə bilər.

Əgər bu bölmədən istifadə edilirsə USES operatoru növbəti

bütün bölmələr önündə gəlməlidir və o proqramda yalnız bir

dəfə yazıla bilər.

Məsələn:

Page 36: 21-İnformatikanın əsasları

37

USES CRT, DOS, GRAPH;

WINDOWS -da

USES WINCRT, WINDOS;

Aydındır ki, bu bölmə ilə birləşdirilən prosedura və

funksiyalar proqramda təsvir edilmirlər.

2) Proqramda istifadə edilən nişanlar LABEL

bölməsində bir- birindən vergüllə ayrılma ilə təsvir edilir.

Proqramda bir neçə LABEL bölməsi ola bilər. Lakin onlar əsas

blokdan öndə gəlməlidirlər. Nişan kimi [0,9999] parçasında

tam ədədlərdən və ya identifikatorlardan istifadə edilə bilər.

Məsələn:

LABEL A1, BB9, 12, 7;

3) Proqramda istifadə edilən sabitlər CONST

bölməsində təsvir edilir.

Məsələn:

CONST PI=3.14159;

4) Bəzən proqramda standart tiplərlə yanaşı yeni

tiplərdən istifadə etmək məqsədə uyğun sayılır. Bu halda yeni

tiplər TYPE bölməsində təsvir edilməlidirlər.

Məsələn:

TYPE

TAM=INTEGER;

MAS=ARRAY[1..50]OF REAL;

5) Proqramda istifadə olunan qlobal dəyişənlər

VAR bölməsində təsvir edilirlər.

Məsələn:

VAR

l,J,T:INTEGER;

Page 37: 21-İnformatikanın əsasları

38

K,ALFA:REAL;

6) Proseduralar və funksiyalar əsas blokdan əvvəl

təsvir edilirlər. Prosedura və funksiyalar proqramda ixtiyari

sayda ola bilər. Lakin çalışmaq lazımdır ki, onlara müraciət

olunana qədər təsvir və təyin edilsinlər.

7) Proqramın əsas blokunun mətni

BEGIN

- - - - -

END. arasında yerləşir.

END. operatorundan sonra gələn istənilən informasiya

translyator tərəfindən emal olunmur.

Turbo-Paskalın kompilyatoru hər bir proqram sətrində

126 simvolu emal edir. Yəni hər bir sətirdə 126 simvoldan çox

ola bilməz.

2.2.4. Komentariyalar (şərhlər)

Turbo-Paskalda proqram hissələrində izahatlar vermək

üçün komentariyalardan istifadə edilir. Komentariyalar iki

şəkildə verilə bilər.

{ixtiyari mətn}

(*ixtiyari mətn *)

mətn bir neçə sətirdə də verilə bilər.

{1-ci sətir

2-ci sətir

3-cü sətir}

Əgər '{'-dan sonra $ işarəsi gəlirsə bu komentariya

kompilyator üçün direktiv kimi başa düşülür. Yəni $

işarəsindən sonra kompilyator əmrinin mnemonikası gəlir.

Page 38: 21-İnformatikanın əsasları

39

Komentariyalar eyni adlı şərh simvolları arasında

olmalıdır.

Məsələn aşağıdakı yazılış düzgün deyil.

{düzgün deyil *) və ya (*düzgün deyil}

Komentariyalarda bir-birinin daxilində eyni adlı şərh

simvollarından istifadə etmək düzgün deyil.

Məsələn aşağıdakı yazılış düzgün deyil.

{düzgün deyil {düzgün deyil} düzgün deyil}

və ya

(*düzgün deyil (*düzgün deyil *) düzgün deyil *)

Müxtəlif tip şərh simvollarından istifadə edərək aşağıdakı

kimi yazmaq olar.

{düzgündür (* düzgündür *) düzgündür}

və ya

(* düzgündür {düzgündür} düzgündür *)

Müxtəlif tip şərh simvollarından istifadə edərək

aşağıdakı kimi yazmaq olar.

{düzgündür (* düzgündür *) düzgündür}

və ya

(* düzgündür {düzgündür} düzgündür *)

Page 39: 21-İnformatikanın əsasları

40

2.2.5. Verilənlər

Turbo-Paskal proqramında istifadə edilən hər bir verilən

əvvəlcədən təyin edilən (VAR və ya TYPE bölməsində) tipdən

asılıdırlar. VAR bölməsində əsasən verilənlər standart tiplər ilə

elan edilirlər. Standart tipləri şərti olaraq sadə və mürəkkəb

tiplərə bölə bilərik.

Sadə tiplər aşağıdakılardır.

1. ədədi qiymət alan tiplər.

BYTE - işarəsiz qısa tam

SHORTINT - işarəli qısa tam

WORD - işarəsiz tam

INTEGER - işarəli tam

LONGINT - işarəli uzun tam

REAL - həqiqi

2. BOOLEAN - məntiqi tip

3. CHAR - simvol tipi

4. STRING, STRING[N] - sətir tipi

5. POINTER - ünvan (göstərici) tip

6. Sadalanan tip

7. Məhdud tiplər

Əgər kompüterdə riyazi həmprosessor olarsa ədədi

tiplər genişlənə bilər.

Mürəkkəb tip verilənlər sadə tiplərdən təşkil edilirlər.

1. ARRAY of - massivlər

2. SET of - çoxluqlar

3. TEXT, FILE, FILE of - fayllar

Page 40: 21-İnformatikanın əsasları

41

4. OBJECT - obyekt

5. ^ baza tip - müraciət tip

2.3. Verilənlərin tipləri

2.3.1. Tam tip verilənlər

Turbo-Paskalda 5 müxtəlif tam tipin olması proqramın

emalı zamanı yaddaşdan qənaətlə istifadəyə gətirir. Tam

tiplərin aşağıdakı cədvəlini nəzərdən keçirək.

Tipin adı Tutduğu sahə Dəyişmə oblastı

BYTE 1 bayt [0,255]

SHORTINT 1 bayt [-128,127]

WORD 2 bayt [0,65535]

INTEGER 2 bayt [-32768,32767]

LONGINT 4 bayt [-2147483648,2147483647]

Tam ədədlərin qarşısında $ simvolu yazmaqla ədədi 16

- Iıq say sistemində təsvir edə bilərik.

Məsələn:

$17, $A3

16 - lıq rəqəmlər olan A, B, C, D, E, F ixtiyari registrdə

yazıla bilər (yəni yuxarı və aşağı registirlərdə). Yaddaşda

WORD, INTEGER və LONGINT tam verilənləri bayt

prinsipi üzrə (kiçik-kiçikdə, böyük-böyükdə) yaddaşa yazılır.

Yəni tutaq ki, A1 ədədi verilərsə, yaddaşda

A $A1

A+1 $12

Page 41: 21-İnformatikanın əsasları

42

kimi yazılır.

Tam tip dəyişənləri təsvir etmək üçün struktura ümumi

halda aşağıdakı kimi yazılır.

<dəyişənlərin siyahısı>: <tip>;

Məsələn:

VAR

A, B: INTEGER;

C, D: BAYT;

Tam tip dəyişənlər üzərində aşağıdakı əməliyyatları

aparmaq olar.

:= - (mənsubetmə);

+ - (toplama);

- - (çıxma);

* - (vurma);

DIV - (tam bölmə);

MOD - (bölmə nəticəsində qalığın hesablanması);

Məsələn:

Tutaq ki, A=25 və B=3 ədədləri verilmişdir. Onda,

A D IV B=8

A MOD V = 1

Tam tip dəyişənlərin qiymətlərini həqiqi tip dəyişənə

mənimsətmək olar. Lakin həqiqi tip dəyişənin qiymətini tam tip

dəyişənə mənimsətmək olmaz.

Bu əməliyyatlardan başqa tam tip dəyişənlər üzərində

aşağıdakı əməliyyatları da aparmaq olar.

1) Verilmiş tam ədəddən sonra gələn tam ədədi

almaq üçün SUCC funksiyasından istifadə etmək olar.

2) Verilmiş tam ədəddən əvvəl gələn tam ədədi

almaq üçün PRED funksiyasından istifadə etmək olar.

Page 42: 21-İnformatikanın əsasları

43

Misal:

SUCC (10)=11

PRED (10)=9

2.3.2. Həqiqi tip dəyişəniər

REAL tip dəyişənləri iki formada: tam və kəsr hissəsi

bir-birindən nöqtə ilə ayrılan və ya eksponensial formada

verilirlər.

Məsələn:

09, -11.29, 1255.75

1.2E-3, -.25E3

REAL tiplərin aşağıdakı cədvəlini nəzərdən keçirək.

Tipin adı Tutduğu sahə Dəyişmə oblastı

REAL 6 bayt 2,9∙10-39

∙∙∙1,7∙1038

SINGLE 4 bayt 1,5∙10-45

∙∙∙3,4∙1038

DOUBL 8 bayt 5∙10-324

∙∙∙1,7∙10304

EXTENDED 10 bayt 3,4∙10-4932

∙∙∙1,1∙104932

COMP 8 bayt -2-63

+1∙∙∙263

-1

Həqiqi tip dəyişənləri təsvir etmək üçün struktura ümumi

halda aşağıdakı kimi yazılır.

<dəyişənlərin siyahısı> : <tip>;

Məsələn:

VAR

A, B, : REAL ;

Aşağıdakı hallarda həqiqi ədədlərdən istifadə etmək

olmaz:

Page 43: 21-İnformatikanın əsasları

44

1) Məhdud tiplərin təsviri zamanı onların

sərhədlərinin göstərilməsində;

2) İndeks kimi;

3) PRED və SUCC funksiyalarının arqumenti kimi;

4) Çoxluqlann baza tipi kimi;

5) FOR operatorunda sayğac kimi və variant

operatorunda (CASE) spektor və nişan kimi;

Həqiqi tip dəyişənlər üzərində aşağıdakı əməliyyatları

aparmaq olar.

:= - (mənsubetmə);

+ - ( toplama);

- - (çıxma);

* - (vurma);

/ - (bölmə)

Əgər ifadədə həm həqiqi, həm də tam tip dəyişən iştirak

edərsə hesablama zamanı tam tip dəyişən həqiqi tip dəyişənə

çevrilir.

Məsələn:

VAR

A,B,C: REAL;

N: INTEGER; olarsa,

Onda C:=A+B*N ifadəsi qiyməti həqiqi tip olar. Çünki B*N

əmə l i y y a t ı yerinə yetirilən zaman N tam dəyişəni

həqiqi ədədə çevrilir və sonra hesablama prosesi gedir. Bir çox

standart funksiyaların arqumentləri həqiqi ədəd olduqda onların

qiymətləri həqiqi ədəd olur. Bunlara misal olaraq aşağıdakıları

göstərmək olar.

SQR(X), ABS(X), EXP(X), SIN(X) və s.

Page 44: 21-İnformatikanın əsasları

45

Aşağıdakı funksiyalara arqumentləri həqiqi ədəd

olduqda onların qiymətləri tam ədəd olurlar.

1) TRUNC (X) - bu funksiya x-in tam hissəsini

hesablayır.

Məsələn:

TRUNC (3.75)=3

TRUNC (-5.2)=-5

2) ROUND (X) - funksiyanın qiyməti x-ə yaxın olan

tam ədəddir.

Məsələn:

ROUND (3.75)=4

ROUND (-5.2)=-5

2.3.3. Bul və ya məntiqi tip verilən

Bu tipə malik olan dəyişənlər iki qiymət alır:

FALSE(yatan), TRUE(doğru) və yaddaşda bir bayt yer tutur.

Bu qiymətlər üçün aşağıdakı münasibət doğrudur.

TRUE>FALSE

Bul dəyişənləri üzərində aşağıdakı əməliyyatları

aparmaq olar.

OR - məntiqi toplama əməli

AND - məntiqi vurma əməli

NOT - inkar

Əgər ifadədə iştirak edən bütün dəyişənlər bul tipinə

malikdirsə onda ifadənin qiyməti də bul tipinə malik olacaq.

Bul tipli dəyişənlər üzərində aşağıdakı müqayisə

əməliyyatlarını aparmaq olar.

>(böyükdür), <(kiçikdir), =(bərabərdir), >=(böyük və

Page 45: 21-İnformatikanın əsasları

46

ya bərabərdir), <=(kiçik və ya bərabərdir), o(fərqlidir)

Məsələn:

VAR

A,B,C:BOOLEAN;

C:=A and B;

Bul tip dəyişənlər üzərində müəyyən funksiyaları

işlətmək olar.

1) ODD(X). X arqumenti tam tipə malik olmalıdır.

Əgər arqumentin qiyməti cüt olarsa funksiyanın

qiyməti TRUE(doğru), əks halda isə FALSE(yalan) qiymət

alacaq.

2) eoln ilkin verilənləri daxil edən zaman sətirin

sonu çatdıqda funksiya TRUE, əks halda FALSE qiymətini

alır.

3) EOF giriş verilənlərin oxunması sona çatdıqda

funksiya TRUE, əks halda FALSE qiymətini alır.

4)

2.3.4. Simvol tip verilən

Simvol tipli verilənlər yaddaşda bir bayt yer tutur. Bu

tip verilənlər tək dırnaq arasında yazılır və ASCII kodlarına

uyğun simvollar ilə təyin edilir. Simvol tipli verilənləri təsvir

etmə üçün CHAR açar sözündən istifadə olunur və aşağıdakı

kimi yazılır.

<dəyişənlərin siyahısı>:char;

Simvol tipli dəyişənlər üzərində mənsubetmə və

müqayisə əməliyyatları aparmaq olar.

Məsələn:

Page 46: 21-İnformatikanın əsasları

47

VAR

A, B: char;

A:= 'U'

B:='K'

Simvol tipli dəyişənlərin qiymətləri üzərində müəyyən

əməliyyatlar aparmaq üçün çoxlu sayda standart funksiyalar

vardır. Onlardan ən çox istifadə olunan ORD və CHR

funksiyalarıdır.

ORD funksiyasının arqumenti simvol tipli dəyişən

olmalıdır və funksiyanın qiyməti həmin simvolun sıra

nömrəsidir.

Məsələn:

ORD(':')=58

ORD('5')=53

CHR funksiyası ORD funksiyasının əksinə olan

əməliyyatı yerinə yetirir. Bu funksiyanın arqumenti tam ədəd

olmalıdır. Bu funksiya arqumentin qiymətindəki sıra nömrəyə

uyğun simvolu verir.

CHR(66)='B'

CHR(57)='9'

CHR(ORD(S))='S'

CHR (ORD(l))= 'I'

Bunlardan başqa Turbo-Paskalda simvol verilənlər ^(kore) və ya #(diez) simvolları ilə verilə bilər. ASCII-nin 0-31

kimi kodları (idarəedici) ^ilə başlayaraq verilərsə simvol

verilən adlanır.

Məsələn:^G

# simvollardan sonra gələn ədədlər ASCII kodlar

cədvəlindəki simvolları verir.

Page 47: 21-İnformatikanın əsasları

48

Məsələn:

#65→'A' #7→^G

2.3.5. Sətir tip verilənlər

Standart Paskaldan fərqli olaraq Turbo-Paskalda STRING

tip işarələr sətirindən istifadə etmək olar. İşarələr sətiri tək

dırnaq arasına alınmış ixtiyari simvollar ardıcıllığıdır (0-255-ə

qədər simvol) '9029A1 FAK MM'

2.3.6. Dəyişənlər

Dəyişən - proqramda müxtəlif qiymət alan obyektlərə

deyilir. Hər bir dəyişən əvvəlcədən müəyyən bir tip ilə

əlaqələndirilir və bu tipə uyğun qiymətlər alır. Proqramda

istifadə edilən dəyişənlər VAR bölməsində elan olunmalıdırlar.

Yazılışı ümumi şəkildə aşağıdakı kimidir.

VAR

<dəyişənin adı[,dəyişənin adı[,...]]>:<dəyişənin tipi>;

<dəyişənin adı[,dəyişənin adı[,...]]>:<dəyişənin tipi>;

Məsələn:

VAR

X:REAL;

Y:BYTE;

a,b:INTEGER;

S:CHAR;

St1:STRING;

St2:STRING[10];

ST2-nin təyinində [ ] arasındakı ədəd ST2-nin 10

Page 48: 21-İnformatikanın əsasları

49

simvoldan çox olmayacağına göstərişdir.

2.4. İfadələr. Sadə giriş-çıxış operatorları

2.4.1. İfadələr

Turbo-Paskalda ifadələr unar (bir operandlı) və binar

(iki operandlı) əməliyyatlardan təşkil oluna bilərlər.

Bütün tipə malik dəyişənlər və sabitlər ifadələrdə

istifadə oluna bilər. İfadələr dairəvi mötərizələrdən və hesab

əməl işarələrindən ibarət olub yeni qiymət almaq üçün

verilənlərin elementləri üzərində əməllərin yerinə yetirilməsi

qaydasını göstərir.

İfadələrin aşağıdakı növləri vardır:

- hesabi ifadələr;

- məntiqi ifadələr;

- müqayisə əməliyyatları ilə olan ifadələr;

- simvol və sətiri tip ifadələr;

İfadələrə aid misallar;

(a+b)*2

a>b

sin(t)

A A ND B

'B'+'A'+'K'+'U'

Mürəkkəb ifadələrdə əməliyyatların yerinə yetirilmə-

sinin üstünlük dərəcələri aşağıdakı kimidir.

1) @ (ADDR funksiyası), NOT, -, + unar əməliyyatlar

2) *, /, DIV, MOD, AND, SHL, SHR multiplikativ əməliyyatlar

Page 49: 21-İnformatikanın əsasları

50

3) +, -, or, xor additiv əməliyyatlar

4) =, <>, >, <, <=, >=, in münasibət əməliyyatlar

İfadələrdə əməliyyatların üstünlüyünü pozmaq üçün

(və) mötərizələrdən istifadə edə bilərik. Eyni üstünlüyə malik

olan əməliyyatlar ardıcıllığı soldan sağa yerinə yetirilir.

DIV - tam bölməni, yəni qalıq hissəni atmaqla bölməni

yerinə yetirir.

Məsələn:

7 div 2=3; (-7) div 2=-3; 3 div 5=0

MOD - bölmədən alınan qalıq hissəni təyin edir.

Məsələn:

7 mod 2=1; 3 mod 5=3

Hesabi ifadələrdə iştirak edən operandlar ədədi qiymət

nlmalıdır. İfadələrdə standart funksiyalardan istifadə etmək

olar. Standart funksiyaların bəzilərini nəzərdən keçirək.

|X| → ABS(X)

x2 → SQR(X)

X → SQRT(X)

Inx → LN(X)

xy → EXP(Y*LN(X))

ex → EXP(X)

TRUNC(X) - ədədin tam hissəsi

TRUNC(5.2)=5; TRUNC(-5.8)=-5

FRAC(X) - ədədin kəsr hissəsini verir

FRAC(6.25)= 0.25

ROUND(X) - tam hissəyə yuvarlaqlaşdırır

ROUND(5.25)=5 ROUND(5.8)=6

SINX → SIN(X)

COSX → COS(X)

Page 50: 21-İnformatikanın əsasları

51

ARCTGX → ARCTAN(X)

ODD(X) funksiyası X cüt isə FALSE əks halda

TRUE qiymətini alır.

Münasibət əməliyyatları məntiqi ifadələrdə və STRING

tip ifadələrin müqayisəsində istifadə olunur. Münasibətin

nəticəsi TRUE və ya FALSE qiymətlərini alır. Məntiqi

əməliyyatların bəziləri aşağıdakı cədvəl ilə verilir.

X Y N O T X X O RY X A ND Y X X OR Y

0 0 1 0 0 0

0 1 1 1 0 1

1 0 0 1 0 1

1 1 0 1 1 0

2.4.2. Mənimsətmə operatoru

Mənimsətmə := işarəsinin köməyi ilə yerinə yetirilir.

Mənimsətmə operatoru ifadələrin qiymətlərini gələcək

hesabatlarda istifadə etmək üçün istifadə edilir. Ümumi şəkildə

aşağıdakı kimi yerinə yetirilir.

<dəyişən>:=<ifadə>;

Mənimsətmə operatoru yerinə yetirilən zaman

mənimsətmə işarəsinin sağ tərəfindəki ifadənin qiyməti

hesablanır və nəticə mənimsətmə işarəsinin sol tərəfindəki

dəyişənə mənimsədilir, ona uyğun yaddaş sahəsində saxlanılır.

Dəyişən və ifadə eyni tipə malik olmalıdır. Xüsusi halda

mənimsətmə işarəsinin sol tərəfindəki dəyişən həqiqi tip, sağ

tərəfindəki ifadə isə tam tip ola bilər.

Məsələn:

X:=5;

Page 51: 21-İnformatikanın əsasları

52

Y:=-12.55;

Z:=X+Y;

D:= 'BAKU';

İki mənimsətmə operatoru bir-birindən ';' simvolu ilə

ayrılmalıdır.

Məsələn:

X:=2*PI*R; SUM:=A+B;

BOOL:=a>b; d:=TRUE; S:='ALT;

Bəzən müəyyən şərtdən asılı olaraq müəyyən qrup

operatorlar ardıcıl olaraq yerinə yetirilməlidirlər. Onda bu

qrupu blok kimi təşkil edə bilərik. Blok BEGIN ilə başlamalı

END ilə qurtarmalıdır. Blokda olan operatorlar da bir-birindən

';' simvolu ilə ayrılırlar. END-dən əvvəlki operatordan sonra ';'

simvolu yazılmaya bilər.

Məsələn:

BEGIN y:=x/2; x:=x+h END;

Bir-birinin daxilinə qoyulmuş bloklar təşkil etmək olar.

Xaricdən yalnız blokun əvvəlinə (BEGIN operatoruna),

daxildən isə xaricinə idarəni ötürmək olar.

2.4.3. Çıxış operatorları

Biz əvvəlki mövzuda dəyişənlərə qiymətləri mənimsətmə

operatoru ilə mənimsətdik. İnformasiyaları dəyişənlərə sistem

giriş faylından və ya əvvəlcədən yaradılmış fayllardan da

mənimsədə bilərik. Yaddaş sahəsindəki qiymətləri sistem çıxış

faylına və ya hər hansı bir fayla göndərə bilərik. Bu məqsədlə

Turbo-Paskalda dəyişənlərə qiymət mənimsətmək üçün READ

və READLN dəyişənlərin qiymətlərini çıxışa vermək üçün isə

Page 52: 21-İnformatikanın əsasları

53

WRITE və ya WRITELN proseduralarından istifadə olunur.

Əvvəlcə WRITE (WRITELN) proseduralarını (operatorlarını)

nəzərdən keçirək. Operatorun ümumi yazılışı aşağıdakı

kimidir.

WRITE([F,] S);

Qeyd: [ ] mötərizə daxilindəki parametrlər operatorun yazılışında iştirak

etməyə də bilər.

Burada:

F - faylın məntiqi adı;

S - isə elementlərin siyahısıdır.

Əgər F göstərilməyibsə onda elementlərin qiymətləri

sistem çıxış faylı olan (OUTPUT faylına) displeyin ekranına

ötürüləcək. Fayllar haqqında gələcək mövzularda geniş

məlumat verəcəyik. Operatorda S bir-birindən vergüllə ayrılan

ədəd, simvol, sabit, məntiqi sabit, dəyişən, funksiya və ifadə

göstərilə bilər. Bütün verilənlərin qiymətləri WRITE

operatorunun yazılışındakı ardıcıllıq ilə displeyin ekranında əks

olunur və kursor cari sətirdə qalır. WRITELN operatoru isə

WRITE operatorundan fərqli olaraq kursoru növbəti sətrin

başlanğıcına keçirir.

WRITE(WRITELN) yazma operatorunda tək dırnaq

arasında yazılan istənilən işarə və simvol olduğu kimi xarici

qurğuya ötürülür.

Məsələn:

WRITE('Laboratoriya işi №1');

Bu operator yerinə yetirilən zaman ekranda nəticə

aşağıdakı kimi olacaq

Laboratoriya işi №1

Page 53: 21-İnformatikanın əsasları

54

Qiymətlərin ekranda əks olunması zamanı qiymətlər

arasında ayırıcı kimi boşluq simvolu qoyulmur. (yəni

verilənlərin qiymətləri bir-birindən ayrılmır)

Məsələn:

A:=1; B:=15; C:=3; N:='ALI';

WRITELN(A,B,C); operatorunun icrasından sonra

ekranda

1153

qiymətləri əks olunacaq. Qiymətləri bir-birindən iki qayda ilə

ayıra bilərik.

1) Boşluq işarəsindən istifadə etməklə.

Məsələn:

WRITE('A=',A,' B='B,' C=',C);

WRITELNC SALAM \N); operatorlarından sonra bir

sətirdə

A=1 B=15 C=3 SALAM ALI alarıq.

2) Elementlərin yerləşəcəyi sahənin eni spesifikatorundan

istifadə edə bilərik. Spesifikator aşağıdakı kimi təyin edilir.

WRITE(D:S);

Burada D – dəyişən;

S – isə sahənin uzuniuğudur.

S dəyişən üçün ayrılan sahənin uzunluğunu göstərir.

Məsələn:

WRITE(I:5);

Misalda I=105 olarsa nəticə aşağıdakı kimi olacaq.

_ _105

Başqa misala baxaq

A:=10; B:=2; C:=100;

Page 54: 21-İnformatikanın əsasları

55

WRITELN(A:2, B:2, C:2); olarsa nəticə ekranda

aşağıdakı kimi olar.

10 _ 2100 olar.

WRITELN(A, B:2,C:4); olarsa nəticə ekranda aşağıdakı

kimi olar.

10_2_100 olar.

Göründüyü kimi sahə böyük olarsa boşluqlar soldan əlavə

olunur. Sahə kiçik olarsa sahə sağa düzlənir.

Həqiqi tip dəyişənlər üçün belə spesifikator tətbiq

edildikdə qiymət eksponensial formada əks olunur.

Məsələn:

X:=421.53;

WRITELN(X); olarsa nəticə ekranda aşağıdakı kimi olar.

4.2153000000E+02 olar.

WRITELN(X:8); olarsa nəticə ekranda aşağıdakı kimi olar.

_ 4.2E+02 olar.

Həqiqi tip dəyişənlərin qiymətlərini sabit nöqtəli

formada vermək üçün spesifikatorun formatı aşağıdakı kimi

olar.

WRITE(D:S:DD);

Burada

DD - dəqiqlik onluq nöqtədən sonra gələn rəqəmlərin

sayını göstərir.

Məsələn:

WRITE(X:7:3);

Əgər X= -3.8591 olarsa nəticə aşağıdakı kimi olacaq.

_-3.859

WRITELNC (':25,ST); bu o deməkdir ki, ST-nin

qiymətindən əvvəl 25 boşluq burax.

Page 55: 21-İnformatikanın əsasları

56

Lazım gəldikdə düzləndirməni sol kənara görə apara

bilərik. Bunun üçün dəyişənin uzunluğu mənfi göstərilir.

Məsələn:

WRITE(223.654:-6:1); olarsa nəticə 223.7 olacaq.

Əgər X=421.53 olarsa və operator

WRITELN(X:-8:1); kimi yazılarsa nəticə

421.5 olar.

Çıxışa boş sətri vermək üçün WRITE (WRITELN)

operatorunu parametrsiz vermək kifayətdir.

2.4.4. İnformasiyanın klaviaturadan daxil

edilməsi

READ və READLN operatorları informasiyalan

fayldan əməli yaddaşa daxil edir. Ümumi şəkildə

aşağıdakı kimidir.

READ([F,] D);

READLN([F,]D);

Burada

F - faylın məntiqi adı;

D - dəyişənlərin siyahısıdır.

Əgər operatorun yazılışında F parametri iştirak

etməzsə onda D -n in qiymətləri sistem giriş INPUT

faylından (yəni klaviaturadan) daxil edilir .

D tam, həqiqi, simvol və sətiri tipdən ola bilər.

READ və ya READLN operatorları icra

olunarkən kompüter gözləmə rejiminə keçir və

siyahıdakı elementlərin qiymətlərinin klaviatur adan

daxil edilməsini gözləyir. Ədədi dəyişənlərin

qiymətlərini daxil edərkən boşluq, tabulyasiya və ya

Page 56: 21-İnformatikanın əsasları

57

sətrin sonu ( , ENTER) simvollarından ayrıcı kimi

istifadə etmək olar;

Məsələn:

READ(X.Y); operatoruna klaviaturadan,

411 512.9

və ya

411 J

512.9 daxil edə bilərik.

Simvol t ipli verilənlərin daxil edilməsində

ayırıcılardan ist ifadə edilmir. Yəni

Sətri dəyişənlərə qiymət daxil edilməsi zamanı

sətrin elanındakı uzunluğu qədər simvol daxil

edilməlidir. Bu halda sətrin dəyişənə mənimsədilən

simvol kimi -dən istifadə etmək olmaz. Çünki

burada da simvolu ayırıcı rolunu oynayır.

Klaviaturadan qiymət daxil edilməsi zamanı READ

və READLN operatorları arasında fərq yoxdur. Bir

neçə sadə misalları nəzərdən keçirək.

Misal 1.

PROGRAM ABC;

USES CRT;

VAR

X,Y:INTEGER;

FIND:BOOLEAN;

BEGIN

WRITELN('iki ədəd daxil et: ');

READ(X,Y);

FIND:=X>Y;

WRITELN('X böyükdür Y'.FIND);

Page 57: 21-İnformatikanın əsasları

58

END.

Misal 2. Üçbucağın A, V, S tərəflər i

verilmişdir. Sahəsini tapmalı.

PROGRAM UCBUCAQ;

USES CRT;

VAR

P,A,B,C,S:REAL;

BEGIN

WRITELN('üç ədəd daxil et ');

READ(AB.C);

P:=(A+B+C)/2;

S:=SQRT(P*(P-A)*(P-B)*(P-C));

WRITELN('üçbucağın sahəsi=',S:10:4);

END.

2.5. Keçid operatorların

2.5.1. Şərti keçid operatoru

Hər bir dildə olduğu kimi Turbo -Paskalda da

həll prosesini budaqlandırmaq üçün keçid

operatorlarından istifadə olunur. Şərti keçid

operatoru nəticədən asılı olaraq bir neçə şərti

yoxlamağa imkan verir. Şərti keçid operatoru

verilmiş sərtdən asıl ı olaraq hansı operatorun və ya

operatorlar qrupunun yerinə yetirilməsini və ya

yerinə yetirilməməsini təmin edir. Şərti keçid

operatoru ümumi şəkildə aşağıdakı kimi yazılır .

IF SS THEN OP1 ELSE OP2;

Burada

Page 58: 21-İnformatikanın əsasları

59

IF, THEN, ELSE -açar sözləri;

SS - məntiqi sabit(TRUE və ya FALSE),

məntiqi dəyişən və ya məntiqi ifadə;

OP1,OP2 - Turbo- Paskalın istənilən operatoru

və ya operatorlar qrupudur.

Şərti keçid operatoru aşağıdakı kimi işləyir.

Əvvəlcə məntiqi ifadə hesablanır (SS yoxlanıl ır).

Əgər SS dorudursa(TRUE), onda OP1 yerinə

yetirilir. Bu zaman ELSE oratorundan sonra gələn

OP2 buraxılır, əks halda əgər SS yalandırsa

(FALSE), onda OP1 buraxılır, OP2 yerinə yetiril ir.

Əgər OP1 və OP2 blok olarsa, onda operatorlar

qrupu BEGIN və END açar sözünün arasında yazılır.

OP1 və OP2 istənilən tip operator ola bilər, o

cümlədən şərt i keçid operatoru da ola bllər. Onda

operator aşağıdakı kimi olar.

IF SS1 THEN

IF SS2 THEN OP2

ELSE OP1

ELSE OP3;

Bu halda hər bir ELSE özündən əvvəl gələn IF -

ə mənsub olur.

Xüsusi halda ELSE sözünü yazmamaq olar.

Onda operator aşağıdakı kimi olar.

IF SS THEN OP;

Bu halda SS yoxlanılır , əgər SS doğrudursa

onda operator yerinə yetirilir və IF operatorundan

sonra gələn operatora keçid alınır. Əgər şərt doğru

deyilsə onda OP buraxılır IF operatorund an sonra

Page 59: 21-İnformatikanın əsasları

60

gələn operatora keçid alınır.

Məsələn:

VAR

z,a,b,c,d:INTEGER;

a:=1; b:=2; c:=3;d:=4;

IF a>b THEN

IF c<d THEN z:=a

ELSE z:=b;

IF a>b THEN

IF c<d THEN z:=a

ELSE

ELSE z:=b;

Aşağıdakı proqrama baxaq, burada 0...15

intervalında tam ədədlər daxil edil ir və onu 16-lıq

say sisteminə çevirib ekrana çıxarır. 16 -l ıq say

sistemində 16 rəqəm istifadə olunur. Onlardan

birinci on rəqəm 0, 1,2, 3, 4, 5, 6, 7, 8, 9 qalan altısı

isə A, V, C, D, E, F latın hərfləridir.

USES CRT;

VAR

CC: CHAR;

N:INTEGER;

BEGIN

WRITE('N='); READLN(N);

IF (N>=0) AND (N<=15) THEN

BEGIN

IF N<10 THEN

CC:=CHR(ORD('0')+N)

ELSE

Page 60: 21-İnformatikanın əsasları

61

CC:=CHR(ORD('A)+N-10);

WRITELN('CC=',CC);

END;

ELSE

WRITELN('SƏHV')

END.

Başqa misala baxaq. Aşağıdakı funksiyanı x, a,

b- nin qiymətini daxil etməklə hesablayaq .

USES CRT;

VAR

Y,X,A,B:REAL;

BEGIN

WRITE('X,A,B-');

READLN(X,A,B);

IF A>0 THEN

Y:=A*X*X+B

ELSE

IF A=0 THEN

Y:=SQR(B)

ELSE

Y:=-A*SQR(X)+B;

WRITELN('Y=',Y);

END.

0

0

0

2

2

2

a

a

a

bax

b

bax

y

Page 61: 21-İnformatikanın əsasları

62

2.5.2. Şərtsiz keçid operatoru

Turbo-Paskalda şərt yoxlamadan idarəni

proqramın ixtiyari yerinə ötürmək üçün şərtsiz keçid

operatorundan istifadə edilir .

Ü m u m i yazılışı aşağıdakı kimidir.

GOTO N;

Burada

N - idarə ötürüləcək operatorun nişanıdır.

Nişan LABEL blokunda təsvir edilən

nişanlardan biri olmalıdır.

Nişan ilə operator arasında : simvolu

qoyulmalıdır.

Məsələn

Aşağıdakı funksiyanı X={ -2;0,5;.. .}

qiymətlərini klaviaturadan daxili etməklə hesablayıb

displeyin ekranına ötürməli.

1

13

X

X

LNXX

SINXXY

USES CRT;

LABEL AA;

VAR

X,Y:REAL;

BEGIN

CLRSCR;

AA:WRITE('X- i daxil et ') ;

READLN(X);

IF X<1 THEN Y:=X*SIN(X)

ELSE

Page 62: 21-İnformatikanın əsasları

63

Y:=EXP(3*LN(X))*LN(X);

WRITELN('X=',X: -8:2/ Y=',Y:-10:4);

GOTO AA;

END.

2.5.3. CASE seçmə operatoru

Bəzən IF operatoru yerinə CASE seçmə

operatorundan istifadə etmək məqsədə uyğun sayılır .

Seçmə operatoru bir neçə operatordan birini

seçməyə imkan verir. Bu s e ç m ə açarının

köməyilə yerinə yetirilir.

Seçmə operatorunun ümumi yazılışı aşagıdakı

kimidir.

CASE SA OF

SS

ELSE OP

END;

Burada, SA-seçmə açarı;SS-seçmə siyahısı; OP-

operatordur.

SA STRING və REAL tip ola bilməz.

SA tam, məntiqi və simvoi tipli ola bilər.

SS aşağıdakı kimi oiur.

S: OP;

Burada

OP Turbo-Paskalın operatoru;

S - seçmə nişanlarıdır.

Bu nişanlar unikal olmalıdır. Lakin bu nişanlar LABEL

blokunda təsvir edilmir. S-in tipi SA-da olan ifadə və sabitin

Page 63: 21-İnformatikanın əsasları

64

tipinə uyğun olmalıdır.

Seçmə operatoru aşagıdakı kimi işləyir. Əvvəlcə SA

hesablanır. Sonra isə seçmə siyahısında həmin qiymət ardıcıl

olaraq axtarılır. Əgər həmin qiymət tapılırsa, onda onun

qarşısındakı operator yerinə yetirilir. Bundan sonra seçmə

operatoru öz işini qurtarır. Əgər seçmə siyahısında seçmə

açarına uyğun qiymət tapılmazsa, onda idarə ELSE sözündən

sonrakı operatora verilir.

Məsələn:

Dəyişənin qiymətini klaviaturadan daxil etməklə

aşağıdakı funksiyanın qiymətini hesablamaq üçün proqram

yazaq.

1xяэяр 2x

1xяэяр x

-1xяэяр x

y

USES CRT;

LABEL AA;

VAR

X, Y: INTEGER;

BEGIN

READLN (X);

CASE X OF

-1: Y:=ABS(X);

0: Y:=X;

1: Y:=2*X;

ELSE

WRITELN ('qiymətlər uyğun gəlmir');

READLN;

Page 64: 21-İnformatikanın əsasları

65

GOTO AA;

END;

WRITELN ('Y=\ Y);

AA:END.

Başqa bir misala baxaq.

Sadə kalkulyatora oxşar proqram tərtib edək. Proqram

iki sətir daxil etməyi tələb edir. Birinci sətrdə arasında boşluq

buraxılmaqla iki ədəd, ikinci sətirdə isə +, -, *, / hesab

işarələrindən birini daxil etmək lazımdır.

Proqram aşağıdakı kimi olar.

USES CRT;

VAR

OP: CHAR; {əməliyyatın işarəsi}

X, Y, Z: REAL; {operand və nəticə}

STOP: BOOLEAN; {dayanma və səhv

əməliyyatın işarəsi}

BEGIN

STOP:=FALSE;

REPEAT

WRITELN; {boş sətir}

WRITE ('X, Y='); READLN (X, Y);

WRITE ('OP'); READLN (OP);

CASE OP OF

'+'; Z:=X+Y;

'-'; Z:=X-Y;

'*': Z:=X*Y;

'/': Z:=X/Y;

ELSE

Page 65: 21-İnformatikanın əsasları

66

STOP:=TRUE;

END;

IF NOT STOP THEN

WRITELN ('nəticə=', Z);

UNTIL STOP

END.

Növbəti misala baxaq.

Y və u latın hərflərindən birini daxil etdikdə ekranda

'BƏLİ', N və n hərflərinin birini daxil etdikdə ekranda 'XEYR'

yazılsın. Başqa işarə, simvol daxil etdikdə ekrana 'düz deyil'

sözü yazılsın.

USES CRT;

VAR

ZN: CHAR;

BEGIN

READLN (ZN);

CASE ZN OF

'n', 'N': WRITELN ('XEYR');

'y', 'Y': WRITELN ('BƏLİ');

ELSE

WRITELN ('düz deyil');

END;

END.

2.5.4. Dövr operatorları

Turbo-Paskalda dövrü prosesləri idarə etmək üçün bir

neçə dövr operatorundan istifadə edilir. Turbo-Paskalda üç növ

dövr operatoru vardır.

Page 66: 21-İnformatikanın əsasları

67

1. FOR operatoru

Əgər dövrün başlanğıcı və sonu məlumdursa və dəyişmə

addımı 1 və ya -1-dirsə onda FOR operatorundan istifadə

etmək məqsədəuyğundur. FOR operatorunun köməyi ilə iki cür

dövr qurmaq mümkündür. Həm 1 addımla həm də -1 addım ilə.

Birinci hal üçün FOR operatorunun ümumi yazılışı

aşağıdakı kimidir.

FOR K:=Q1 TO Q2 DO OP;

Burada

K - dövr parametri adlanan dəyişən;

Q1 - dövr parametrinin ilkin qiyməti;

Q2 - dövr parametrinin son qiymətdi;

OP - Turbo-Paskalın operatoru və ya blokdur.

K, Q1.Q2 tam tipdəndirlər.

FOR aşağıdakı ardıcıllıqla işləyir. Əvvəlcə Q1 hesablanır

və K- ya mənimsədilir sonra dövr təkrarlanır. Dövrdə şərt

aşağıdakı kimi yoxlanılır.

K<= Q2

Əgər şərt ödənilirsə dövr təkrarlanır, əks halda şərt

ödənməzsə FOR operatoru öz işini qurtarır və idarəni özündən

sonra gələn operatora verir. Dövr parametrinin dəyişmə addımı

+1-dir.

Misal..Aşağıdakı proqramda FOR operatorunun köməyi

ilə 1-dən N-ə qədər olan tam ədədlərin cəmini tapaq.

USES CRT;

VAR

l,N,S:INTEGER;

BEGIN

WRITE('N-);READLN(N);

Page 67: 21-İnformatikanın əsasları

68

{N-in daxil edilməsi}

S:=0; {cəmin ilkin qiyməti}

FOR I:=1 TO N DO

S:=S+I;

WRITELN('cəm=',S);

END.

Misal: A massivinin 1, 3, 5, 10-cu elementlərinin

hasilini 2, 4, 6, 8, 9-cu elementlərinirı cəmini tapmalı.

USES CRT;

VAR

S,P:REAL;

I,N:INTEGER;

A:ARRAY[1..10] of REAL;

BEGIN

CLRSCR;

P:=1;S:=0;

FOR I:=1 TO 10 DO

BEGIN

N=I;

WRITE('A(',I,'));

READLN(A[I]);

CASE N of

1,3,5,10:P:=P*A[I];

2,4,6,7,9:S:=S+A[I];

END;

END;

WRITELN(S:10:2,'P=',P:10:4)

END.

Page 68: 21-İnformatikanın əsasları

69

İkinci halda yəni -1 addımla FOR operatorunun ümumi

yazılışı aşagıdakı kimidir.

FOR K:=Q1 DOWNTO Q2 DO OP;

Burada TO sözü DOWNTO sözü ilə əvəz edilib və onu

bildirir ki, dəyişmə addımı -1-dir. Burada idarəedici şərt

aşağıdakı kimidir.

K>= Q2

Əgər şərt ödənilirsə dövr təkrarlanır, əks halda FOR

operatoru öz işini qurtarır.

Yuxarıdakı proqramda dəyşiklik edərək aşağıdakı kimi

yazmaq olar ki, müsbət ədədləri topladığı kimi mənfi ədədləri

də toplasın.

S:=0;

IF n>=1 THEN

FOR I:=1 TO N DO S:=S+I;

ELSE

FOR I:=-1 DOWNTO N DO

S:=S+I;

- - - - - - - - - - - - - - -

2. REPEAT və UNTIL operatoru ilə təşkil olunan dövr

operatoru.

Dövrü proseslərin dövrlərinin sayı əvvəlcədən məlum

deyilsə və ya dövrü dəyişən vahid addım ilə deyil istənilən

addım ilə dəyişirsə və dövrün qurtarması şərti əvvəlcədən

məlum isə REPEAT və UNTIL operatorundan istifadə etmək

məqsədə uyğundur. Operatorun ümumi yazılışı aşağıdakı

kimidir.

REPEAT

DG

Page 69: 21-İnformatikanın əsasları

70

UNTIL SS;

Burada

DG - dövrün gövdəsi Turbo-Paskalın operatoru və ya

operatorlar qrupu;

SS - məntiqi ifadədir.

Bu operatorların icrası zamanı dövrün gövdəsi heç

olmasa bir dəfə yerinə yetirilir və ondan sonra dövr təkrarlanır.

Dövr operatoru aşağıdakı kimi işləyir.

Əgər SS ödənilməzsə (FALSE) onda dövr təkrarlanır.

Əks halda əgər SS ödənərsə (TRUE) onda REPEAT və UNTIL

operatorları öz işlərini qurtarır.

Misala baxaq. REPEAT və UNTIL operatorunun köməyi

ilə 1-dən N-ə qədər olan intervalda tək ədədlərin cəmini tapaq.

USES CRT;

VAR

I,S,N:INTEGER;

BEGIN

READLN(N);

S:=0;

I:=1;

REPEAT

S:=S+I;

I:=I+2

UNTIL(I>N);

WRITELN('S=',S);

END.

Yuxarıdakı misala baxın UNTIL operatorundan əvvəl

nöqtəli vergül qoymaq vacib deyil.

3. WHILE operatoru

Page 70: 21-İnformatikanın əsasları

71

Bu dövr operatorunun ümumi yazılışı aşağıdakı kimidir.

WHILE SS DO

OP;

Burada

SS - məntiqi ifadə;

OP - Turbo-Paskalın operatoru və ya blokdur.

WHILE operatoru yerinə yetirilən zaman dövrün

gövdəsi yerinə yetirilməyə də bilər. WHILE operatoru

aşağıdakı kimi işləyir.

Əgər məntiqi ifadə doğrudursa (TRUE) onda operator

yerinə yetirilir sonra şərtin yoxlanması təkrar olunur. Əks halda

şərt ödənilməzsə (FALSE) onda WHILE operatoru öz işini

qurtarır.

Bu operatorun köməyi ilə dövrlərin sayı məlum olmayan

dövrü prosesləri proqramlaşdırmaq daha məqsədə uyğundur.

Aşağıdakı proqramda

.....4

1

3

1

2

11

XXXXS

cəmini EPS=0.001

dəqiqliklə hesablayaq (burada, X ≠ 0).

USES CRT;

VAR

X,S,EPS:REAL;

I:INTEGER;

BEGIN

READLN(X.EPS);

l:=1;

S:=0;

WHILE ABS(1/(I*X))>EPS DO

Page 71: 21-İnformatikanın əsasları

72

BEGIN

S:=S+1/(I*X);

I:=I+1;

END;

WRITELN('S=',S);

END.

Başqa misala baxaq. WHILE dövr operatorunun köməyi

ilə 1-dən N-ə qədər olan intervalda tək ədədlərin cəmini tapaq.

USES CRT;

VAR

I,N,S:INTEGER;

BEGIN

READLN(N);

S:=0;

I=1;

WHILE I<=N DO

BEGIN

S:=S+I;

I:=l+2;

END;

WRITELN('S=',S)

END.

Göründüyü kimi WHILE operatorunun köməyi ilə

istənilən tip dövrü prosesi proqramlaşdırmaq olar.

Page 72: 21-İnformatikanın əsasları

73

2.6. Mürəkkəb tip dəyişənlər

2.6.1. Düzəltmə tiplər

Paskal dilində düzəltmə tip kimi iki: sadalanan və

məhdud tipdən istifadə edilir. Bu tiplər tam, simvol, məntiqi

sabitlərin sadalanması və ya sabitlərin müəyyən parçada

məhdudlaşdırılması ilə düzəldilir.

Sadalanan tipin standart forması kimi BOOLEAN tipi

göstərə bilərik. Bu tipin elementləri aşkar sadalanır.

Proqramçının təşkil etdiyi sadalanan tip isə TYPE bölməsində

təyin edilir. Yəni

TYPE

N=(elementlər ardıcıllığı);

N sadalanan tipə verilən adı göstərir. Elementlər

ardıcıllığı bir-birindən vergüllə ayrılan yuxarıda saydığımız

tiplərdən olan dəyişənlər və ya sabitlər ola bilər. Sadalanan tipə

daxil olan elementlərin sayı 256-dan çox ola bilməz.

Məsələn:

TYPE

RGB=(Red, Green, Blue);

DAY=(MON,TUE, WED, THU, FRI,

SAT, SAN);

Eyni elementləri bir neçə sadalanan tipdə göstərmək

olmaz.

Məsələn:

TYPE

DAY=(MON, SAT, SAN);

WEEK DAY=(SAT, SAN);

Hər bir sadalanan tipin elementləri daxili nömrələnmə ilə

Page 73: 21-İnformatikanın əsasları

74

təşkil edilir. Nömrələnmə sıfırdan başlayır.

Məsələn RGB tipində RED - 0-cı, GREEN - 1-ci və

BLUE - 2-ci nömrəyə malikdir. Bu tipə məxsus dəyişənlər

üçün ORD(X), SUCC(X), PRED(X) funksiyalarından istifadə

etmək olar (dəyişənin nömrəsini, növbəti dəyişənin nömrəsini,

bu dəyişəndən əvvəlki nömrəsini təyin edir). Bu funksiyaları

BYTE, WORD, INTEGER, LONGINT, CHAR, BOOLEAN

tiplərə tətbiq etmək olar.

Məsələn:

ORD(RED)=0; SUCC(RED)=1; PRED(BLUE)=1;

kimi təyin edilir.

ORD('A')=65; ORD('1')=49

Yəni CHAR tipinə ORD-ni tətbiq etdikdə A simvolunun

ASCII kodunu təyin edə bilərik. Sadalanan tipin elementləri ilə

massivi indeksləşdirə bilərik.

Məsələn

TYPE

MONTH=(JAN, FEV, MAR);

VAR

MAT: ARRAY[MONTH] of BYTE;

yazılışından sonra əsas blokda

MAT[MAR]:=12;

yaza bilərik.

Çox böyük etibarlılıq tələb edilən məsələləri

proqramlaşdırılmasında hər hansı bir dəyişənin müəyyən bir

interval daxilində qiymət alması tələb edilə bilər. Dəyişənin

verilən sərhəd daxilində qiymət almasının nəzarəti üçün

Paskalda məhdud tipdən istifadə edilir. Məhdud tip aşağıdakı

kimi təyin edilir:

Page 74: 21-İnformatikanın əsasları

75

TYPE

N=K1.. K2;

VAR

X: N; və ya

VAR

X: K1..K2;

Burada

X - məhdud tip dəyişən;

N - məhdud tipin adı;

K1- aşağı sərhəd;

K2- yuxarı sərhəd;

Məhdud tip elementlər tam, simvol sabitlərdən və

proqramçıların təyin etdiyi sadalanan tipdən ola bilər.

Məsələn:

TYPE

X=1..10;

HEX='A' .. 'F';

WORKDAY = MON..FRI;

Baza tipdən olan məhdud tipləri displeyin ekranı əks

etdirmək olar.

Məhdud tiplərin təyinində ifadələrdən istifadə etmək olar.

Lakin ifadə mötərizə ilə başlamamalıdır. Məsələn:

TYPE

RIGHT = 2*(1+3) ...25+4;

WRONG=(1+3)*2..25+4;

Page 75: 21-İnformatikanın əsasları

76

2.6.2. Mürəkkəb tiplər

Sadə və düzəltmə tiplər real məsələlərin

proqramlaşdırmasında bəzən kifayət etmir və ya səmərəsiz

olur. Buna görə də bir çox hallarda mürəkkəb tiplər massiv,

yazı və çoxluq tiplərdən istifadə edilir.

Əgər əməliyyatları eyni tipli verilənlər üzərində aparmaq

lazımdırsa, onlara ayrı-ayrı adlar vermək yerinən bir ad altında

birləşdirmək məqsədə uyğundur. Velə verilənlər çoxluğuna

massiv, massivin komponentlərinə isə massivin elementləri

deyilir. Massivin hər bir elementinə aşağıdakı kimi müraciət

edə bilərik.

<massivin adı> [<indekslər>]

Burada istifadə edilən [ , və ] simvolları məcburi

simvollardır.

<massivin adı> - identifıkatorun təyini qaydası ilə təşkil

edilir.

<indekslər> - bir-birindən vergül ilə ayrılır və elementin

çoxluqda tutduğu mövqeyini təyin edir. İndekslər mənfi və ya

müsbət tam ədədlər, simvol, məntiqi, sadalanan və sairə

tiplərdən ola bilər.

Məsələn:

X[10] Y[-13] K[10-L] Z[FALSE]

Hər bir massiv əvvəlcədən elan olunmalıdır. 1 ölçülü

massivlər aşağıdakı kimi elan olunur.

MAS:ARRAY[D] of T;

Burada

MAS- masssivin adı;

D-indeksin dəyişmə diapazonudur və X..Y şəklində təyin

edilir. Burada X-indeksin aşağı qiyməti, Y isə indeksin yuxarı

Page 76: 21-İnformatikanın əsasları

77

qiymətini təyin edir;

T-Elementin tipini təyin edir və ixtiyari standart tip və ya

TYPE ilə təyin edilən yeni tip ola bilər. İndeksin diapazonu

kimi sadalanan tipdən də istifadə etmək olar.

Məsələn:

a) A: ARRAY [1..10] of string;

V) B: ARRAY [-50..50] of BYTE;

c) TYPE FAM= (ALI, VELI, AZER);

VAR

BA: ARRAY [FAM] of real;

Bu massivlərin elementlərinə

A[5]:= 'SALEH'; B[-3]:=18; BA[ALI]:=4.25;

kimi müraciət edə və qiymətləndirə bilərik.

Eyni tipli massivin elementlərini bir-birinə mənsub edə

bilərik.

Məsələn:

VAR

X,Y: ARRAY [1..10] of INTEGER; kimi elan edilibsə

onda

a) X[1]:=y[3]; b)Y[9]:=X[7]; c) X:=Y;

yazılışları düzgün yazılışlardır. c) bəndindən sonra X massivi

Y-in surəti kimi istifadə edilə bilər. Müxtəlif tipli elementləri

isə bir-birinə mənsub etmək olmaz.

Turbo-Paskalda massivin elementlərinin hansı tipdən

olmasına məhdudiyyət yoxdur. Hətta massivin elementi başqa

bir massiv də ola bilər. Beləliklə çox ölçülü massivləri elan

etmək olar. Məsələn 2- ölçülü massivi aşağıdakı kimi elan edə

bilərik.

MAS: ARRAY [D1] of ARRAY [D2] of T;

Page 77: 21-İnformatikanın əsasları

78

və ya

MAS: ARRAY [D1.D2] of T;

Məsələn:

VAR

A:ARRAY[1 ..3] of ARRAY [1 ..3] of REAL;

B:ARRAY[1..3, 1..3] of STRING;

Nəzərə almaq lazımıdır ki, massivin bütün elementləri

üçün ayrılan sahə 64 kB-dan kiçik olmamalıdır. Massivin

indeksləri müxtəlif tipdən də ola bilər.

Məsələn:

VAR

CUB: ARRAY[1..5, 'A'..'D', BOOLEAN] of BYTE;

Belə massivin elementinə CUB[3, 'C', TRUE] kimi

müraciət edə bilərik.

İki ölçülü massivlərə aid aşağıdakı misalı nəzərdən

keçirək.

A və V matrislərinin hasilini verən S matrisini tapmalı.

Bilirik ki, S matrisinin hər bir elementi

m

k

kjikji bac1

,

hesablanır. Turbo-Paskalda proqram

aşağıdakı kimi olar. (Aydındır ki, A matrisinin sütunları sayı V

matrisinin sətirləri sayına bərabər olmalıdır). Yəni

ni

l

jij

m

i

l

jij

n

i

m

jij cCbBaA111111

Proqramda matrisin elementləri sətir-sətir daxil

edilmişdir.

USES CRT;

{A ve V matrisinin hasili}

Page 78: 21-İnformatikanın əsasları

79

VAR

A, V, C: ARRAY [1..3, 1..3] OF REAL;

I, J, K: INTEGER;

BEGIN

WRITELN ('A-NI DAX. ET');

FOR I:=1 TO 3 DO

FOR J:=1 TOZ DO

READ (A[l, J]);

READLN;

WRITELN ('B-NI DAX. ET');

FOR l:=1 TO 3 DO

FOR J:=1 TO 3 DO

READ (B[l, J]);

READLN;

{C=A*B hesablanmasi}

FOR l:=1 TO 3 DO

FOR J:=1 TOZ DO

BEGIN

C[l, J]:=0;

FOR K:=1 TO 3 DO

C[I, J]:=C[I, J]+A[I, K]*B[K,J];

END;

FOR l:=1 TO 3 DO

BEGIN

FOR J:=1 T0 3 DO

WRITE ('C(', I,‘,’, J, ')=', C[I, J]:-10:4);

WRITELN;

END;

END.

Page 79: 21-İnformatikanın əsasları

80

2.7. Funksiyalar və proseduralar

Bəzi məsələləri proqramlaşdırarkən proqramın müəyyən

hissələri ara sıra təkrarlanır. Aydındır ki, proqram mətninin

yığcamlığı və yaddaşa qənaət üçün təkrarlanan hissələri əsas

mətndən ayıraraq onu ayrı bir proqram obyekti olan alt

proqram kimi vermək məqsədə uyğundur.

Turbo-Paskalda alt proqramlar proseduralara və

funksiyalara bölünür. Turbo-Paskalda alt proqramlar onlara

müraciət olunana qədər təsvir edilirlər. Yəni onların mətni əsas

blokdan əvvəl gəlir.

Hər bir alt proqram başlıq və daxili hissədən təşkil edilir.

Proseduranın başlığı aşağıdakı kimi təsvir edilir.

PROCEDURE N[(T)];

Burada

N - proseduranın adı;

T - parametrlərin təsvirini göstərir.

Göründüyü kimi parametrlərin təsviri verilməyə də bilər.

Parametrlər formal parametrlər olub qiymətli və dəyişən

parametrlərə bölünürlər. Qiymətli parametrlərin təsviri

X[,Y[,...]:<parametrin tipi>;

kimi verilir.

Burada

X,Y...- lər parametrlərin identifikatorunu,

<parametrin tipi> - standart və ya TYPE ilə təyin edilən

tipdən ola bilər.

Dəyişən parametrlər aşağıdakı kimi təsvir edilirlər.

VAR X[,Y[,...]: <parametrin tipi> [;VAR...

Burada

Page 80: 21-İnformatikanın əsasları

81

X,Y... - lər dəyişən parametrlərin identifikatorlarını

göstərir.

<parametrin tipi> - standart və ya TYPE ilə təyin edilən

tipdən ola bilər. VAR atributu ilə elan edilən parametrə uyğun

real parametr dəyişən olmalıdır.

Qiymətli parametrlərə uyğun real parametr isə sabit və ya

dəyşən ola bilər. Ümumiyyətlə əsas blokda proseduraya

müraciət

<proseduranın adı>(<faktiki parametrlər>);

kimi təşkil edilir.

Faktiki parametr real verilənlər olub uyğun qiymətli və

ya dəyişən parametrlərə mənimsədilir.

Prosedura baş proqrama nəticəni dəyişən parametrlərlə və

ya qlobal dəyişənlərlə ötürə bilər.

Ümumiyyətlə Turbo-Paskal proqramında bloklardan

(modullardan) istifadə edilir. Bloklar daxili (lokal) və xarici

(qlobal) bloklara bölünür. Buna uyğun olaraq da proqramda

lokal və qlobal dəyişənlərdən istifadə olunur. Əgər hər hansı

dəyişənin adı həm daxili, həm də xarici blokda təsvir edilibsə

aydındır ki, bu dəyişənlər üçün yaddaşda müxtəlif yerlər

ayrılacaq. Beləliklə qlobal dəyişənlər vasitəsi ilə proseduradakı

nəticələri əsas bloka ötürə bilərik. Lokal dəyişənlərin qiyməti

isə xarici blokda təyin edilmir.

Proseduranın başlığının təsvirinə aid misallara baxaq.

a) PROCEDURE MAX;

b) PROCEDURE SQ(a,b,c:REAL;VAR x,y:REAL);

c) PROCEDURE NAM(a,b:CHAR;VAR c:CHAR;

d:BYTE);

Page 81: 21-İnformatikanın əsasları

82

d) PROCEDURE AA(a,b,c:MAS_A;K:INTEGER;

VAR D:MAS_B);

Əgər hər hansı P prosedurasında Q prosedurasından

IStifadə edilirsə və Q-nün mətni P-nin mətnindən sonra (gəlirsə

onda prosedura

PROCEDURE ( ): FORWARD;

kimi təsvir edilir. Yəni

PROCEDURE Q(X:T2): FORWARD;

PROCEDURE P(X:Y);

BEGIN

- - - - -

Q(A);

- - - - -

END;

PROCEDURE Q;

BEGIN

- - - - -

END;

Proseduranın təşkilinə aid aşağıdakı misalı nəzərdən

keçirək.

ax2+bx+c=0 tənliyinin həqiqi köklərini tapmalı.

USES CRT;

VAR

X1,X2AB,C:REAL;

PROCEDURE SQ (A1,B1,C1:REAL; VAR

Y1,Y2:REAL);

VAR

Page 82: 21-İnformatikanın əsasları

83

D:REAL;

BEGIN

D:=B1*B1-4*A1*C1; Y1:=0; Y2:=0;

IF D>=0 THEN

BEGIN

Y1:=(-B1-SQRT(D))/(2*A1);

Y2:=(-B1+SQRT(D))/(2*A1);

END

ELSE

BEGIN

WRITELN('HEQIQI KOKLER YOXDUR');

HALT;

END;

END;

BEGIN {BASH PROGRAM}

READLN(A,B,C); SQ(A,B,C,X1,X2);

WRITELN('X1 =',X1:-8:2,' X2=',X2:-8:2); READLN;

END.

Alt proqram funksiyanın başlığı aşağıdakı kimi təsvir

edilir.

FUNCTION NAME[(P)]:T;

Burada

NAME - funksiyanın adını;

P - parametrlərin təsviri;

T - funksiyanın tipini göstərir.

Funksiyanın tipi təsvir edilən funksiyanın tipini göstərir.

Funksiyanın tipi skalyar və ya əvvəlcədən təyin edilən tipdən

ola bilər.

Funksiyanın tipi fayl, massiv, yazı, çoxluq və obyekt ola

Page 83: 21-İnformatikanın əsasları

84

bilməz.

Məsələn:

FUNCTION A(A:REAL;VAR C:CHAR):STRING;

FUNCTION GAM:REAL;

FUNCTION INT(a,b:REAL;FUNCTION

F(x,y:REAL):REAL):REAL;

Funksiya ilə proseduranın strukturu yalnız aşağıdakılar

ilə fərqlənir.

1) Başlıq FUNCTION ilə təsvir edilir.

2) Başlıqda funksiyanın tipi elan edilir.

3) Funksiyanın əsas blokunda nəticə funksiyanın adına

mütləq mənimsədilir.

Əsas blokdan funksiyaya müraciət aşağıdakı kimi təşkil

edilir.

Y:=NAME[(A)];

Burada, A - parametrlər siyahısıdır.

Məsələn:

T:=MAX(a,b,c,d);

C:=SORGU(M);

Funksiyanın təşkilinə aid bir neçə misalı nəzərdən

keçirək.

USES CRT;

TYPE

ST80=STRING [80];

VAR

{B,N}I:INTEGER;

T:BOOLEAN;

{FUNCTIONUN BASHLIGI}

FUNCTION SORGU(MESAG:ST80):BOOLEAN;

Page 84: 21-İnformatikanın əsasları

85

VAR

TUSH:CHAR;

BEGIN

GOTOXY(20,24);WRITELN(MESAG);

REPEAT

TUSH:=UPCASE(READKEY);

UNTIL TUSH IN['Y','N']

IF TUSH='Y' THEN

SORGU:=TRUE

ELSE

SORGU:=FALSE;

END; {FUNCTIONUN SONU}

BEGIN {ESAS BLOK}

REPEAT

CLRSCR;

FOR I:=1 TO 5 DO

WRITE('AzTU ');

T:=SORGU(' TEKRAR YAZISINMI? [Y/N]');

UNTIL NOT T

END.

USES CRT;

TYPE;

M_A=ARRAY [1 ..10] OF ARRAY [1 ..10] OF REAL;

M_B=ARRAY [1..10] OF REAL;

VAR

I,J,K,N,M:INTEGER;

A:M_A;

X:M_B;

Page 85: 21-İnformatikanın əsasları

86

PROCEDURE MAS(T:M_A;N:INTEGER: VAR

F:M_B);

VAR

I,J:INTEGER;

S:REAL;

BEGIN

FOR I:=1 TO N DO

BEGIN

S:=0;

FOR J:=1 TO N DO

IF T[I,J]>0 THEN S:=S+T[I,J];

F[I]:=S;

END;

END; {PROCEDURE }

BEGIN {BASH PROGRAM}

WRITE('MASIVINSAYI=');READLN(M);

FOR K:=1 TO M DO

BEGIN

WRITE(K,'-CI MASSIVIN OLCHUSU='); READLN

(N);

WRITELN (K/-CI MASSIVI DAXIL ET');

FOR I:=1 TO N DO

FOR J:=1 TO N DO

READ(A[I,J]);

MAS(A,N,X);

WRITELN(K,'-CI MASSIVDE HER

SETIRDEKI MUSBET ELEMENTLERIN CEMI');

FOR l:=1 TO N DO

WRITELN ('X(',I,')=',X[I]:-10:3);

Page 86: 21-İnformatikanın əsasları

87

END;

END.

Misal: Xn-in rekurent düsturla funksiya kimi

hesablayaq.

USES CRT;

VAR

M: BYTE;

FUNCTION ST(X:REAL;N:BYTE):REAL;

BEGIN

IF N=0 THEN ST:=1

ELSE

IF N=1 THEN ST:=X

ELSE

ST:=ST(X,N-1)*X;

END;

BEGIN

WRITELN ('YSTY DAXIL ET');

READLN (M);

WRITELN (ST(-2,M))

END.

Misal: N!- ı rekurent formula ilə funksiya kimi

hesablamalı

USES CRT;

TYPE

DIAP=1..30;

FUNCTION FACT(N:DIAP):REAL;

Page 87: 21-İnformatikanın əsasları

88

BEGIN

IF N<=0 THEN FACT:=1

ELSE

FACT:=FACT(N-1)*N;

END;

BEGIN

WRITELN (FACT(15))

END.

2.8. Sətri tip veriiənlər və onların emalı funksiyalan

STRING (sətri) tip verilənlər mürəkkəb tipə aiddir. Hər

bir STRING tip verilənin təsvirində həmin verilən üçün ayrılan

maksimal sahə təyin edilir. Maksimal sahənin qiyməti tarrı

qiymət və ya tam sabitin adı ilə təyin edilə bilər. Hər bir

STRING tip müəyyən simvollar ardıcıllığından təşkil edilir. Bu

ardıcılhq boş və ya uzunluğu simvolların maksimai sayından

çox olmayan ardıcıllıq da ola biiər. STRING tip dinamiki tipə

aiddir. Çünki eyni bir təsvir ilə verilən dəyşənin uzunluğu

müxtəlif ola bilər.

Məsələn:

VAR

S1: STRING [15];

Bu dəyişən üçün ayrılan sahədə 15- ə qədər simvollar

saxlamaq olar. Simvoliann sayı təsvirdə göstərilməzsə həmən

dəyşən üçün ayrılan sahədə 255-ə qədər simvol yerləşdirə

bilərik. Mənimsətmə və ya daxiletmə zamanı elan edilmiş

uzunluqdan artıq simvollar nəzərə alınmır.

Turbo-Paskal sətri tipə simvollar massivi kimi baxır.

Page 88: 21-İnformatikanın əsasları

89

Məsələn:

VAR

SYM:CHAR;

SETIR: STRING;

BEGIN

SETIR:='PASCAL-5.0";

SETIR[8]:= '7'; {PASCAL-7.0}

SYM:=SETIR[4]; {SYM='C'}

Ümumiyyətlə STRING tip verilən yaddaşda verilənin

uzunluğundan bir bayt artıq yer tutur. Yəni əlavə olan (0- cı)

baytda dəyşənin simvollarının sayına uyğun kod saxlanılır.

Məsələn:

VAR

NAME: STRING;

BEGIN

NAME:='ALI';

WRITE('VERİENIN UZUNLUGU=',ORD(NAME[0]));

END.

Nəticədə ekranda

VERIENIN UZUNLUGU=3

əks olunacaq.

STRING tip verilənlər üzərində '+' və müqayisə

əməliyyatlarını aparmaq olar.

'+'- əməliyyatı zamanı STRING tip verilənlərin

birləşməsi alınır.

Məsələn:

VAR

A,B,C:STRING;

Page 89: 21-İnformatikanın əsasları

90

elan edilərsə

A:='SON ';

B:=' ZENG';

olarsa

C:=A+B;

əməliyyatından sonra

C:='SON ZENG' olar.

Müqayisə simvolları ASCII kodlarının müqayisəsi ilə

aparılır. (yəni soldan sağa doğru simvol-simvol). Ümumiyyətlə

uzunluğu böyük olan sətir böyük sayılır. (əgər əvvəlki

simvollar üst- üstə düşərsə).

Məsələn:

a) 'aab'>'aaB' {'b'- nin kodu 'B'- nin kodundan

böyükdür}

b) 'kk'<'kkk' {'k'>'' olduğuna görə}

c) '01 >' 01' {'0'>' 'olduğuna görə}

STRING tipli verilənlər üzərində əməliyyatlar əsasən

proseduralar və funksiyalar vastəsi ilə aparılır. Bunlar

aşağıdakılardır.

1) LENGTH(X)- funksiyası STRING tipdən olan X

dəyşəninin uzunluğunu təyin edir. Nəticə BYTE tipindədir.

2) CHR(X)- funksiyası BYTE tipindən olan X ədədinə

(koduna) və ya dəyşəninə uyğun ASCII simvolunu qaytarır.

Nəticə CHAR tipindədir.

Page 90: 21-İnformatikanın əsasları

91

3) UPCASE(X)- funksiyası CHAR tipindən olan X

simvolu aşağı registirdə isə yuxarı registrdə verir. Nəticə

CHAR tipindədir.

4) COPY(X,N,M)- funksiyası STRING tipli X

dəyşəninin N-ci mövqeyindəki simvoldan başlayaraq M

simvollu yeni sətir alır.

Burada N və M INTEGER tipindəndirlər. Nəticə

STRING tipindədir.

Məsələn:

USES CRT;

VAR

C,B,A: STRING;

LBYTE;

X:CHAR;

BEGIN

X:=UPCASE(READKEY);

B:='ADNA_SUS_AZTU’;

L:=LENGTH(B);

A:=COPY(B,1,4); {ADNA}

C:=COPY(B,5,5); {SUS_A}

WRITE(X,' \L,' 'A' ',C);

END.

Proqramın icrası nəticəsində X dəyşəni üçün

klaviaturadan daxil edilən simvol yuxan registrdə, B-nin

uzunluğu, B-dən alınan A və S dəyşənlərin qiymətləri ekranda

əks olunacaq.

5) DELETE(X,N,M)-PROCEDURE-sı STRING tipli X

dəyişəninin N- ci simvoiundan M dənə simvol

Page 91: 21-İnformatikanın əsasları

92

silərək yeni X sətri alır. Burada N, M INTEGER

tipindəndir, nəticə isə STRING tipindəndir.

Burada İVe [1,255]

Məsələn:

B:='ADNA_SUS_AZTU’; isə

DELETE(B,1,4);

{B:='_SUS_AZTU’!'}

6) INSERT(X,Y,N)- prosedurası STRING tipli X

alt sətrini STRING tipli Y sətrinin N-ci mövqeyindən

başlayaraq araya yerləşdirir. Əgər N- in qiyməti Y-in

uzunluğundan böyük olarsa Y ilə X-in birləşməsi

alınır. Əgər əlavə olunma zamanı alınan yeni sətrin

uzunluğu Y-in maksimal uzunluğundan böyük olarsa,

onda əlavə olunan artıq simvolar soldan sağa doğru

atılır.

Burada İVe [1,255]

Məsələn:

S:STRING[5]; elan edilibsə

S:='AB' olarsa, onda

a) INSERT('CDE',S,2); {S=ACDEB}

b) INSERT('CDE',S,5); {S=ABCDE}

c) INSERT('CDEF',S,6); {S=ABCDE}

d) INSERT('CDEF\S, {S=CDEFA}

7) FILLCHAR(X,N,M)-prosedurası STRING tip X sətri

dəyşənirtf N dənə M-ə uyğun simvol ilə doldurur.

Burada N-WORD tipdən, M-CHAR tipdəndir. Nəticə

sətri tipdəndir. Burada N [1,255]

Page 92: 21-İnformatikanın əsasları

93

Məsələn:

VAR

S:STRING;

BEGIN

FILLSHAR(S[1],80,'*');

S[0]:=#80;

WRITE(S)

END.

Nəticədə ekran sətrində 80 dənə * əks olunur. S

dəyişəninin 0-cı baytına onun uzunluğu 80 yazılır.

8) CONCAT(X,X1[,X2...) funksiyası "+"

əməliyyatı kimi

X, X1, X2,... sətrlərini birləşdirəcək

Məsələn:

WRITE(CONCAT(x1 ,x2,x3));

9) POS(Y.X) funksiyası STRING tipli X

dəyşənində Y-ə uyğun simvolların başladığı mövqenin

nömrəsini təyin edir. Əgər belə simvollar ardıcıllığı

tapılmazsa nəticə sıfır olur.

Məsələn:

POSCabc'.'ababc') -> 3

POS('12','1421224')->4

POSCa'.'bck') -> 0

10) STR(N[:K[:L]],S]-prosedurası N hesabi ifadəsini

sətri tipə çevirərək S dəyşəninə mənimsədir. N hesabi

ifadəsi tam və ya həqiqi tipdən ola bilər. Burada K tam

ifadə olub çeviriləcək ümumi uzunluğu tə'yin edir.

Kəmiyyətin uzunluğu K- nın qiymətindən kiçikdirsə o

sağa düzləndiriləcək və boş yerlər probel ilə

Page 93: 21-İnformatikanın əsasları

94

doldurulacaq. Əgər K- nı mənfi ədəd kimi versək

düzləndirmə sola aparılacaq və sağ tərəfə probel

doldurmaq lazım gəlmir. Əgər çeviriləcək ədəd

göstərilən sahəyə yerləşmirsə onda sahənin eni qeyri

aşkar olaraq lazımi qədər artırılacaq. Məsələn:

a) STR(122:5,s); {s=' 122'}

b)STR(122:-5,s); {s='122'}

Həqiqi verilənlər sabit nöqtəli formada (sahənin eni və

onluq nöqtədən sonrakı rəqəmlər sayı) və ya ekponensial

formada (təkcə sahənin eni) göstərilə bilər. Məsələn:

a) STR(27.362:5:2,S)

b) STR(27.662:3:0,S)

c) STR(27.662:0:3,S)

d) STR(27.362:6,S)

11) VAL(S,N,ERROR) prosedurası S sətri ifadəsini

ədədə çevirir və N dəyşəninə mənimsədir. N- in tipi S-

dəki ədədə uyğun tipdən olmalıdır. Əgər S sətirində nöqtə

və ya E simvollan olarsa N həqiqi tipdən əks halda tam

tip ola bilər. Əgər çevirilmə mümkün isə ERROR=0 olur.

Əks halda ERROR-a çevirilə bilməyən 1- ci simvolun

sıradakı nömrəsi yazılır.

Məsəiən:

VAR

P,COD:INTEGER;

PR:REAL;

BEGIN

VAL('123',P,COD); {P=123 COD=0}

VAL('123',PR,COD);{PR=1.2300000000E+02;COD=0}

VAL('12.3E02,,PR,COD);{PR=1.2300000000E+03;COD

Page 94: 21-İnformatikanın əsasları

95

=0}

VAL('12.3P',PR,COD);

{PR=0.0000000000E+00;COD=5}

END.

Page 95: 21-İnformatikanın əsasları

96

III. BORLAND DELPHİ

3.1.Giriş. Kompüterə qoyulan tələblər

“Borland Delphi” “CodeGear Delphi“ kompaniyasının

təqdim etdiyi proqram məhsulu olub, obyekt təyinatı

proqramıarın yazılması üçün istifadə edilir.

Delphi proqram paketinin layihələndiricləri onun

normal işləməsi üçün istiyadə olunan kompüterlərə aşağıdakı

tələbləri qoyurlar:

Əməliyyat sistemi- Windows 2000, Windows

XP,Windows Tablet Pc Edition;

Posessor- Intel Pentium II 200 Mhs və yüksək;

Bərk disk daşıyıcısı (HDD- Hard Disk Driver)-

proqram üçün 250 MB və əlavə olaraq 500 MB

boş yaddaş sahəsi;

Orerpativ yaddaş (RAM)-64 MB və yüksək;

CD-ROM;

SVGA rejimini dəstəkləyən moni-

tor(1024X768);

Siçan(«mouse») və ya qrafiki planşet;

Bu konfiqurasiya minmal iş rejimi üçün kifayət edir. Əlbəttə

real halda bu göstəricilər kifayət qədər yüksək olmalıdırlar.

Proqram instalyasiya olunduqdan sonra Borland

Delphi 7 qrupunu qurulur.(şək.1)

Page 96: 21-İnformatikanın əsasları

97

Şək.3.1. Borland Delphi 7 qrupu

Bu qruada Delphi proqramı ilə yanaşı müəyyən

köməkçi proqramlar da cəmləşmişdir.

Delphi proqramını işə salmaq üçün aşağıdakı

əməliyyatlar ardıcıllığını yerinə yetirmək lazımdır:

StartPrograms Borland Delphi 7 Delphi 7

(PuskProqrammı Borland Delphi 7 Delphi 7)(şək.3.2)

Şək.3.2 Delphi 7 proqramının əsas menyu vasitəsilə işə

buraxılması

Delphi 7proqramı instalyasiya olunarkən «shortcut»-ni işçi

stola yerləşdirilməsinə imkan verir. Əgər bu və ya digər

Page 97: 21-İnformatikanın əsasları

98

səbəbdən «shortcut» işçi stoldan silinmişdirsə onu bərpa etmək

mümkündür.

Gələcəkdə proqramla rahat iş rejimini təmin etmək üçün

proqramın «shortcut»-ni işçi stola yerləşdirmək məsləhətdir.

Bunun üçün StartPrograms Borland Delphi 7

əməliyyatlarını yerinə yetridikdən sonra Delphi 7proqramının

üzürində «mouse»-un sağ düyməsini sıxıb

SendToDeskTop(create shortcut) əmrilrin yerinə yetrimək

lazımdır(şək.3.3).

Şək.3.3. Delphi 7 proqramının işçi stola yerləşdirilməsi

3.2.Proqramın interfeysi

Lazım olan fayl açıldıqdan və ya yeni fayl yaradıldıqdan

sonra Delphi 7 proqramının interfeysinin aşağıdakı forması

görünür(şək.3.4.).

Page 98: 21-İnformatikanın əsasları

99

Şək.3.4. Delphi 7proqramının standart interfeysi

Proqramın standart interfeysi aşağıdakı hissələrdən təşkil

olunub:

Baş meny- faylın yaradılması, emal olunması və s.

əməliyyatları özündə birləşdirən menyulpr toplusudur;

Standart alətlər paneli-Özündə ən vacib, tez-tez istifadə olunan

əməlmyyatları birləşdirən alətlər toplusudur;

Komponentlər paneli-proqramlaşdırma zamanı istifadə olunan

kımponentləri seçməyə imkan verən paneldir;

Page 99: 21-İnformatikanın əsasları

100

Forma-Qurulacaq proqramın interfeysini əks edir.

Unit paneli- kodların daxil edilməsi üçün nəzərdə tutulan

paneldir;

Object Tree View-proqramda istifadə olunan komponentlərin

siyahısını göstərir.

Page 100: 21-İnformatikanın əsasları

101

Object İnspector- Seçilmiş obyektin xüsusiyyətlərini və

hadisələrini əks etdirir.

Page 101: 21-İnformatikanın əsasları

102

3.3.FORM və onun əsas xüsusiyyətləri

Proqramım əsas hissələrindən biri formadır(Form). O,

aşağıdakı xüsusiyyətlərə malikdir:

1. ActiveControl .

ActiveControl - da hansı komponentin adı seçilirsə forma

aktivləşəndə kursor həmən komponentin üzərində olur.

2. Align .

Forma - nın ekranda necə yerləşdiyini daxil etmək olar (alLeft,

al Client və s.).

3. Anchors .

Forma – nı eninə və ya uzununa dartdıqda kampanentin eni və

ya uzunu və s. dəyişməsi .

4. utoScrol .

( true ) olduqda elimentlər forma - ya yerləşmədikdə abloşka

yaranır .

5. AutoSize .

( true ) olduqda forma - nı elə ölçüyə salır ki , bütün

elementlər formaya yerləşir .

6. BorderIcons .

Borderlcons - da ekranın başlığındakı ( pəncərələrin ) ekranda

olub - olmaması .

7. BorderStyle .

Burada forma - nın razmerlərini ( dəyişib - dəyişilməməsini ) ,

pəncərələrini , başlığın ( olub – olmamasını ) təyin etmək olar .

8. BorderWidth .

Forma - nın kənarındakı haşiyənin qalınlığını göstərir.

9. Caption .

Page 102: 21-İnformatikanın əsasları

103

Forma - nın başlığında çıxan adı göstərir .

10. Color .

Forma - nın rəngini göstərir .

11. Constraints .

Forma – nın max. və min. Hündürlüyü və eni .

12. Cursor .

Forma - nın üzərində mışkanı hərəkət etdirdikdə mışkanın

formasını göstərir .

13. Enabled .

Forma - nın və onun üzərindəki elimentlərin işləyib ( true )

işləmədiyini ( false ) göstərir.

14. Font .

Forma - da kı , yazıların şiriflərini seçməyə imkan verir.

15. FormStyle .

Forma - nın daxilinin stilin dəyişmək olur .

16. Height .

Forma - nın hündürlüyünü bildirir .

17. Hint .

Forma - nın üzərinə mışkanı gətirdikdə onun izahatını çıxarır

.Bunu işlətmək üçün ShowHint ( true ) olmalıdır .

18. HorzScrollBar .

Forma - nın aşağısında çıxan abloşkaya aid manu .

19. Icon .

Forma - nın üstündəki işarəni dəyişmək üçün düyməni bas

sonra load - dan lazım olan şəkili seçib , atkrit . ok düyməsi

basılır .

20. Left .

Forma – nın soldan olan məsafəsini göstərir .

21. Menu .

Page 103: 21-İnformatikanın əsasları

104

Forma – da hansı MainMenu – dan istifadə olacağı göstərilir .

22. Name .

Forma - nın praqramlaşdırmada istifadə olunan adıdır .

23. Top .

Forma – nın yuxarıdan olan məsafəsini göstərir .

24. VertScrollBar .

Forma - nın sağında çıxan abloşkaya aid manu .

25. Visible .

( true ) olsa formanın görünəcək , ( false ) olsa görünməyəcək .

26. Width .

Forma - nın enini göstərir .

27. WindowState .

Praqram işləyərkən funksiyanın necə olduğunu (adi bütün

ekrana böyüdülmüş şəkildə və ya əks ) .

3.4 Hadisələr(Events)

1. OnActivate . Hadisə forma aktivləşərkən baş verir .

2. OnClick . Hadisə forma - nın üzərinə mışka ilə

vurduqda baş verəcək .

3. OnClose . Forma bağlanarkən baş verəcək .

4. OnCreate .Təxminən OnActivate – nən eynidir .

5. OnDBClick . Hadisə forma - nın üzərinə 2- dəfə

vurulduqda baş verir.

6. OnMouseDown . Hadisə mışka - nı sıxıb saxlayarkən

baş verir .

7. OnMouseMove . Hadisə hərəkət etdikdə baş verəjəek .

8. OnMouseUp .Hadisə mışka - nı buraxdıqda baş

verəcək .

Page 104: 21-İnformatikanın əsasları

105

3.5.”STANDARD“ alətlər paneli

Bu panel proqramın qurulması zamanı istifadə olunan standart

komponentləri (düymə, menyu və s.) özündə birləşdirir.

Bu panelə aşağıdakı komponentlər daxildirlər:

1. MainMenu

Forma - ya menyu qoymaq üçün istifadə olunur.

Bunun üçün onun üzərinə “siçan”i ilə iki dəfə sıxmaq lazımdır.

Sonra Caption bölümünə vurub menyunun adını daxil etmək,

ardınca Enter düyməsinə sıxıb menyunun hissələrini daxil

etmək lazımdır. Hər menyu bölümünün üzərinə vurub onun

üçün kod yazılır. Məsələn,

form 1.color:=clred ;

Menyunun içərisində əlavə menyu yartmaq üçün menyuya iki

dəfə vurub , lazımı bölümün üzərinə bir dəfə vurub sonra sağ

düyməni sıxaraq Create Submenu əmri yerinə yetirilməlidir .

Menyuya “isti klavişlər” əlavə etmək üçün yenə onun üzərinə

iki dəfə vurub , lazım düymənin üzərinə bir dəfə vurub

Properties bölümündə ShortCut – dan lazımı adı seçirik .

Qeyd.Əgər menyuda ayric daxil etmək lazımdırsa, onda

Caption bölümünə vurub bir “- “ isarəsi yazılır.

Nümunə. Formaya bir baş menu yerləşdirək Onu aşağıdakı

şəkildə gösərildiyi kimi quraq.

Page 105: 21-İnformatikanın əsasları

106

Uyğun bölməlri seçməklə onlara aşağıdakı kodları yazaq:

1. Form1.Width:=200;

2. Form1.Width:=300;

3. Form1.color:=clyellow;

4. Form1.color:= cltred;

5. Form1.Close;

2. Popup Menu .

Kontekst menyunu göstərir.

Bunun üçün onun üzərinə “siçan”i ilə iki dəfə sıxmaq lazımdır.

Sonra Caption bölümünə sıxıb menyunun adını daxil etmək,

ardınca Enter düyməsinə sıxıb menyunun hissələrini daxil

etmək lazımdır. Hər menyu bölümünün üzərinə vurub onun

üçün kod yazılır.Digər xüsusiyyətlər MainMenu-daoldugu

kimidir.

Sonda Forma - nın üzərinə bir dəfə vurub Properties – dən

Popup Menu adı seçilir.

Nümunə. Formaya bir kontekst menu yerləşdirək Onu

aşağıdakı şəkildə gösərildiyi kimi quraq.

Nümunə. Formaya bir kontekst menu yerləşdirək Onu

aşağıdakı şəkildə gösərildiyi kimi quraq.

Page 106: 21-İnformatikanın əsasları

107

Uyğun bölməlri seçməklə onlara aşağıdakı kodları yazaq:

1. Form1.color:=clyellow;

2. Form1.color:= clgreen;

3. Form1.Height:=500;

4. Form1.Height:=600;

5. Form1.Caption:=’ADNA’

6. Form1.Enabled:= true;

3. Label

Mətin göstərmək üçün nəzərdə tutulub. Onun əsas xüsusiyyəti

Caption – dur .

Məsələn, Label1. caption: =’ADNA‘;

Bunlarla yanaşı Label Color , Autosize , Cursor , Enablet ,

Font , Height , Hint , Showhint , Visible və s xüsusiyyətlərə də

malikdir.

Nümunə. Formaya bir Label və bir Main Menu yeriəşdirək.

Onu aşağıdakı kimi dizayn edək:

Page 107: 21-İnformatikanın əsasları

108

Uyğun bölməlri seçməklə onlara aşağıdakı kodları yazaq:

Label1.Caption:=’IPAF’;

Label1.Color:=clblue;

Label1.Font.Name:=’Arial’;

Label1.Font.Size:=14;

Label1.Font.Color:=clred;

4. Edit

Mətinlərin daxil ediməsi və redaktə olunması üçün istifadə

edilir. Bəszi xüsusiyyətləri(Color , Autosize , Cursor , Enablet ,

Font , Height , Hint və s.) Label – ə oxşardır. Əsas xüsusiyyəti

Text -dir .

Məsələn, Edit1. text : = ‘ ADNA ‘;

MaxLength – Edit-ə daxil edilən simvolların sayını göstərir.

PasswordChar- Edit-ə daxil edilən simvolları parol

formasında göstərir. İnformasiyanı Edit-ə və Edit-dən oxumaq

olar.

Nümunə. Edit-ə Formanın xüsusiyyətlrinin (adını,

uzunluğunu)oxumaq üçün formaya bir Main Menu və 2 Edit

yerləşdirək. Onu aşağıdakı kimi dizayn edək:

Formanın adını edit 1-ə oxumaq üçün aşağıdakı kod yazılır:

Edit1.Text:=Form1.Caption;

Page 108: 21-İnformatikanın əsasları

109

Formanın uzunluğunun qiymətini edit 2-ə oxumaq üçün

aşağıdakı kod yazılır:

Edit2.Text:=IntToStr(Form1.Height);

Qeyd. Formanın uzunluğu İnteger tipli, Edit2 mətn tipli

olduğuna ğörə IntToStr çevrilməsindən istifadə edilir.

Nümunə. Edit-in vasitəsilə Formanın xüsusiyyətlrinin (adını,

uzunluğunu)dəyişmək üçün formaya bir Main Menu və 2 Edit

yerləşdirək. Onu aşağıdakı kimi dizayn edək:

Formanın adını edit 1-ə oxumaq üçün aşağıdakı kod yazılır:

Form1.Caption :=;Edit1.Text;

qiymətini edit 2-ə oxumaq üçün aşağıdakı kod Formanın

uzunluğunun yazılır:

Form1.Height:= StrToInt (Edit2.Text);

Edit komponentinin ən vacib hadisilərindən biri OnChange

hadisəsidir. Bu hadisə yerinə yetirilən zaman Edit-ə daxil

edilən məlumat o andaca yerinə yetirilir. Məsələn, OnChange

hadisəsinə Form1.Caption:=Edit1Text əmrini daxil etdikdə,

Edit-ə daxil edilən məlumat daxil edildikcə, formanın adı

şəklində əks olunur.

Digər vacib hadisə OnKeyDown və OnKeyUp hadisəlsəridir.

Bu hadisələr funksional(F1,F2 və s.) və idarəetmə(Enter,Esc və

s.) düymlərindən istifadə edərək, əməliyyatları yerinə

yetirməyə imkan verir:

Page 109: 21-İnformatikanın əsasları

110

If Key=vk_F1 then Form1.Caption:=’ADNA’;

və ya

If Key=vk_Return then Form1.Caption:=’İPAF’;

5. Memo

Çoxsətirli mətnlərin daxil ediməsi və redaktə olunması üçün

istifadə edilir. Əsas xüsusiyyəti Lines-dır. Formaya bir Button

və Memo komponenti yerləşdirib, Button komponentinin

OnClick hadisəsinə aşağıdakı

proqram kodu yazırıq:

Memo1. lines . add ( ‘ ADNA ‘ ) ;

Memo1. lines . add ( ‘ İPAF ‘ ) ;

Memo1. lines . add ( ‘ATE‘ ) ;

Memo komponentinə istənilən mətni daxil etmək üçün

yuxarıdakı formaya əlavə bir Edit komponenti yerləşdirmək və

Button komponentinin OnClick hadisəsinə yazılmış proqram

kodunu aşağıdakı koda dəyişirik:

Memo1.Lines.Add(Edit1.Text);

Çox tez-tez istifadə olunan xüsusiyyətlərə misal olaraq

aşağidakıları göstərmək olar:

2. Memoda yerləşən mətni silmək üçün bir düymənin

OnClick hadisəsinə aşağıdakı proqram kodunu yazırıq:

Memo1.Clear ;

Memoda yerləşən seçilmiş mətni silmək üçün bir

düymənin OnClick hadisəsinə aşağıdakı kodu yazırıq:

Memo1.ClearSelection ; Memoda seçilmiş mətni silmək

üçün istifadə edilir

Page 110: 21-İnformatikanın əsasları

111

Memo1.CopyToClipboard ; Seçilmiş mətnin nüsxəsini

bufer yaddaşina köçürür.

Memo1.CutToClipboard ; Seçilmiş mətni kəsərək bufer

yaddaşina köçürür.

Memo1.PasteFromClipboard ;Bufer yaddaşında olan

məlumatı lazımi yerı yerləşdiri

Memo1.Lines.SaveToFile(‘faylin ünvanı’);Memoda

yerləşən txt uzantılı mətni faylda yadda saxlayır

Memo1.Lines.LoadFromFile();Yadda saxlanılmış txt

uzantılı mətni memoya yükləyir

Memo1.Undo ;Sonunucu əməliyyatı ləğv edir.

Memo1.SelectAll;Memodakı bütün mətni seçməyə

imkan verir.

6. Button Müxtəlif əməliyyatları yerinə yetirən düymədir.

Button komponenti aşağıdakı xüsusiyyətlərə(Properties)

malikdir:

Cursor-Button komponentinin üzərində kursorun işarəsini

göstərir. Lazımi işarə siyahıdan seçilir.

Enabled (Boolean)- Button komponentinin aktiv (true) və ya

passiv(false) olduğunu ğöstərir.

Font- Button komponentində istifadə olunan şriftin

adını(Name), ölçüsünü(Size), stilini(Style) təyin etməyə imkan

verir.

Height(Integer)- Button komponentinin uzunluğunu təyin

etmək üçün istifadə edilir.

Hint(String)- Button komponentinin üzərinə “siçan”ı

yerləşdirdikdə, əks olunan məlumatı göstərir. Məlumatin

görünməsi üçün Show Hint xüsusiyyəti üçün true variantı

seçilməlidir.

Page 111: 21-İnformatikanın əsasları

112

Left(Integer)- Button komponentinin formanın sol tərəfindən

piksellə olan məsafəsinin qiymətini göstərir.

Name- Button komponentinin proqramlaşdırma zamanı istifadə

olunan adını göstərir.

Popup Menu- Button komponentinin üzərində əks olunacaq

kontekst menyunu göstərir. Kontekst menyunun adı siyahıdan

seçilməlidir.

Tab Order- Button komponentinin fokus alma(Tab düyməsinə

sıxdıqda) nömrəsini göstərir.

Top(Integer)- Button komponentinin formanın üst tərəfindən

piksellə olan məsafəsinin qiymətini göstərir.

Visible(Boolean)- Button komponentinin görünməsini (true)

və gizlədilməsini(false) ğöstərir.

Width(Integer)- Button komponentinin enini təyin etmək üçün

istifadə edilir.

Button komponentini əsas xüsusiyyəti Caption, əsas hadisəsi

isə On Click-dir..

procedure TForm1.Button1Click(Sender: TObject);

begin

Memo1.Color :=clRed;

end;

Buttonun Caption bölümündə hansı hərfdən əvvəl &

yazılarsa, həmən hərfin altından xətt çıxır və Alt + xəttin

üstündəki hərfi vurduqda OnClick hadisəsi yerinə yetirilir.

1. Nümunə.Formanın xüsusiyyətlrinin (adını,

uzunluğunu)oxumaq üçün formaya 3 Button və 2 Edit

yerləşdirək. Onu aşağıdakı kimi dizayn edək:

Page 112: 21-İnformatikanın əsasları

113

Birinci düymənin köməyilə formanını adını Edit 1-ə oxumaq

üçün aşağıdakı kod tərtib edilir:

Edit1.Text:=Form1.Caption;

İkinci düymənin köməyilə formanını uzunluğunu Edit 2-nin

köməyilə dəyişmək üçün aşağıdakı kod tərtib edilir:

Form1.Height:= StrToInt (Edit2.Text);

Ücüncü düymənin köməyilə forma deaktivləşdirilir:

Form1.Enabled:=false;

Button komponentinin vacib hadisəslsərindən OnMosuDown,

OnMouseUp hadisələridir.Bu hadisələr “siçan”ı Button

komponentinin üzərində sıxıb saxladıqda və sərbəst buraxdıqda

yerinə yetirilən hadisəlri ğöstərir.Məsələn, Button

komponentinin üzərində “siçan”ı sıxdıqda formanın rəngi

qırmızı, “siçan”ı sərbəst buraxdıqda isə yaşıl olması üçün

uyğun olaraq OnMosuDown, OnMouseUp hadisələrinə

aşağıdakı kodları yazmaq lazımdır:

Form1.Color:=clRed;

Form1.Color:=clGreen;

7. CheckBox

Secimlərlə mxötəlif əməliyyatları yerinə yetirməyə imkan

verir.Əsas xüsusiyyəti Checked-dir, Bu x xösusiyyət onun

Page 113: 21-İnformatikanın əsasları

114

qoşulub-qoşulmadığını (true/false) göstərir. Şərti yazmaq üçün

İf operatorundan istifadə edilir.

If CheckBox1.Checked = True then Form1.Color:=clred ;

If CheckBox1.Checked = False then Form1.Color:=clblue ;

Və ya

If CheckBox1.Checked = True then

begin

Form1.Color:=clred ;

end

else

begin

Form1.Color:=clblue ;

end;

If CheckBox1.Checked = True then Form1.Color:=clred

else

begin

Form1.Color:=clblue ;

Form1.Color:=clblue ;

end;

Page 114: 21-İnformatikanın əsasları

115

ƏDƏBİYYAT

1. Floyd, T. L.:Digital Fundamentals. Pearson Educa-

tion International 2008

2. Hayes, J. P.: Computer Architecture and Organisa-

tion. McGraw-Hill, New York 2003

3. Roth, C. H.; Kinney, L.L.: Fundamentals of Logic

Design. Cengage Learning Services 2009

4. Schiffmann, W.; Schmitz, R.: Technische Informat-

ik 1 - Grundlagen der digitalen Elektrotechnik.

5. www.borland.com