1 2 3 4 5 6 7 8 9


Yüksək səviyyəli dillərin təkamül sxemi

Digər tərəfdən, assemblerdə yazılmış proqram, onun yüksək səviyyəli dildəyazılmış bənzərindən praktik olaraq həmişə səmərəlidir. Yəni yüksək səviyyəlidilin kompilyatorunun yaratdığı icra faylı funksional cəhətdən eyni olan assem-bler proqramından daha çox yer tutur və yavaş işləyir. Doğrudur, son illər mikro-prosessorların inkişafı nəticəsində kompilyatorlar daha optimal kodlar genera-siya edir.

Yüksək səviyyəli dillərin köməyilə istənilən sahəni proqramlaşdırmaq olar. Ancaq elədillər də var ki, onlar xüsusi olaraq müəyyən sahələr üçün nəzərdə tutulub:



Ia9 -fesil-1: 9 qxd

səhifə1/9
tarix26.09.2017
ölçüsü0.87 Mb.
növüDərs

İsmayıl Sadıqov Ramin Mahmudzadə Naidə İsayeva İNFORMATİKA

Ümumtəhsil

məktəblərinin

9-cu sinfi üçün dərslik

Azərbaycan RespublikasıTəhsil Nazirliyinin09.06.2008-ci il tarixli712 N°-li əmri ilətəsdiq edilmisd

Elmi redaktor: Rasim Əliquliyev, AMEA-nın müxbir üzvü, t.e.d., professor

Rəyçilər: Ələkbər Əliyev, t.e.d., professor

Həyat Axundova, Bakı şəhəri, 164 Ns-li orta məktəbin müəllimi

Valid Məhərrəmov, Bakı şəhəri, Fizika-riyaziyyat və informatika təmayüllü liseyin müəllimi

Səmihə Rüstəmova, Bakı şəhəri, 258 N-li orta məktəbin müəllimi

İ

nformatika

- ümumtəhsil məktəblərinin 9-cu sinfi üçün dərslik.İ.C.Sadıqov, R.Ə.Mahmudzadə, N.R.İsayeva. Bakı, "Bakınəşr", 2008, 128 səh.

ISBN-978-9952-430-08-8

© Azərbaycan Respublikası Təhsil Nazirliyi. 2008© "Bakınəşr". 2008

© Dizayn, "Bakınəşr", "MTM" artgroup. 20

PASCAL

PROQRAMLAŞDIRMA DİLİ






    1. PROQRAM TƏMİNATININ TƏSNİFATI



Kompüterin hər hansı bir işi yerinə yetirməsi üçün aparat təminatı ilə yanaşı,ona göstərişlər toplusu, yəni proqramlar lazımdır. Klaviaturada klavişin basıl-masına, siçanın hərəkətinə, başqa kompüterdən informasiyanın alınmasına vədigər hərəkətlərə kompüterin necə reaksiya verməsini məhz proqramlar müəyyənedir. Ekrana görüntünün çıxarılmasını, sənədin printerdə çap olunması üçünhazırlanmasını, kompüterdə musiqinin səsləndirilməsini proqramlar həyatakeçirir.

Kompüterin proqram təminatı [software] kompüter sisteminin ayrılmaz birhissəsi olub, kompüterin texniki təminatının məntiqi davamını təşkil edir.

Kompüterin konkret tətbiq sahəsi onun proqram təminatı ilə müəyyən olunur.Kompüterin özlüyündə heç bir "bacarığı" yoxdur. Bütün "bacarıqlar" kompüter-də icra olunan proqramlarda cəmləşdirilib.

Müasir kompüterlərin proqram təminatı oyun proqramlarından tutmuş elmiproqramlara kimi milyonlarla proqramdan ibarətdir.

Kompüterdə olan bütün proqramları şərti olaraq üç sinfə ayırmaq olar: sistemproqramları, tətbiqiproqramlar, proqramlaşdırma alətləri.





Sistem proqramları.

Sistem proqramları kompüterin resurslarını - mərkəziprosessoru, yaddaşı, giriş-çıxış qurğularını idarə etmək üçündür. Onlar bütün isti-

fadəçilər üçün nəzərdə tutulmuş proqramlardır. Kompüterin sistem proqramlarıelə hazırlanır ki, tətbiqi proqramlar səmərəli işləyə bilsin.

Sistem proqramları arasında əməliyyat sistemləri xüsusi yer tutur, sistemproqram təminatının əsasını əməliyyat sistemi təşkil edir. O, fərdi kompüterlərinvacib elementlərindən biridir. Əməliyyat sistemi kompüter yandırıldıqda işədüşən, kompüterin bütün hissələrinin tam bir vəhdət halında işləməsini təminedən və informasiyanı idarə edə bilən proqramlar sistemidir.

Əməliyyat sisteminin köməyilə:



  • kompüterlə istifadəçi arasında dialoq yaranır;

  • operativ və daimi yaddaş qurğuları işə salınır;

  • kompüter idarə olunur;

  • istənilən proqram yerinə yetirilməyə başlayır və s.

Vaxtilə IBM PC tipli kompüterlərdə əsasən Microsoft firmasının hazırladığıMS-DOS əməliyyat sistemindən istifadə olunurdu. Bu əməliyyat sistemindəişləyən istifadəçi yalnız konkret bir məsələni həll edə bilərdi.

Hazırda fərdi kompüterlərdə çoxtapşırıqlı əməliyyat sistemlərindən istifadə olunur- fərdi kompüterlərin yaddaşında eyni zamanda bir neçə proqram və məsələlər olur ki,mikroprosessor kompüterin resurslarını onların arasında bölüşdürür. Belə əməliyyatsistemlərinə misal olaraq OS/2, MacOS, UNIX, Linux, Windows XP, Windows Vistavə digər əməliyyat sistemlərini misal göstərmək olar.

Sistem proqramlarının digər vacib hissəsini xidməti proqramlar - utilitlər(lat. "utilitas " - xeyir, fayda) təşkil edir. Onlar əməliyyat sistemini tamamlayır vəonun imkanlarını artırır, həmçinin, müstəqil olaraq bir çox vacib məsələləri dəhəll edir. Utilitlərin bəzi növləri bunlardır:


  • interfeys proqramları;

  • antivirus proqramları;

  • arxivləşdirmə proqramları;

  • proqram örtükləri;

  • kompüter qurğularının iş qabiliyyətini yoxlayan proqramlar;
  • qurğuların işini idarə edən proqramlar (drayverlər) və s.



Tətbiqi proqramlar.

İnsan fəaliyyətinin müxtəlif sahələrinə aid məsələlərihəll etmək üçün nəzərdə tutulan proqram təminatına tətbiqi proqramlar deyilir.





İndiki zamanda fərdi kompüterlər üçün yüz minlərlə tətbiqi proqramlarişlənib hazırlanmışdır. Onlardan ən çox istifadə olunanlar bunlardır:



  • mətn redaktorları (prosessorları);

  • cədvəl verilənlərinin emalı proqramları - elektron cədvəllər;

  • nəşriyyat sistemləri;

  • verilənlər bazasının idarə olunması sistemləri;

  • təqdimatların hazırlanması proqramları;

  • qrafik redaktorlar;

  • verilənlərin statistik təhlili proqramları;

  • kompüter oyunları, öyrədici proqramlar və s.

Proqramlaşdırma alətləri.

Bu sinfə aid olan proqramlar sistem və tətbiqiproqram təminatını yaratmaq üçün nəzərdə tutulmuşdur.



Proqram təminatının hazırlanması üçün Basic, C++, Pascal və b. proqramlaşdır-ma dillərindən istifadə olunur. Dünyanın bir çox təhsil müəssisələrində uşaqlara pro-qramlaşdırmanın əsaslarını öyrətmək üçün LOGO dilindən istifadə olunur.

    1. Proqram təminatı neçə sinfə ayrılır və onlar hansılardır?



    2. Sistem proqramlarının vəzifəsi nədir?



    3. Əməliyyat sistemi nədir?



    4. Tətbiqi proqramlar nə üçündür?



Proqramlaşdırma alətləri dedikdə nə nəzərdə tutulur?

    1. PROQRAMLAŞDIRMA DİLLƏRİ



Dilini bilmədiyimiz insana nəyi isə başa salmaq üçün ya jestlərdən, ya daonun başa düşdüyü dildəki sözlərdən istifadə edirik. Kompüterin mərkəzi qur-ğusu olan prosessorun da öz dili var.

Maşın dili.

Kompüterin bilavasitə "başa düşdüyü" yeganə dil - sadəcə,ədədlər yığınından ibarət olan maşın dilidir [machine language]. Ədədlərləişlədiyindən prosessor üçün komandaları kodlaşdırmaq, məsələn, ədədlərlə ifadəetmək lazımdır. Tutaq ki, 1 - toplamanı, 2 - vurmanı, 3 - bölməni (yaxud uyğunolaraq 01, 02, 03) və s. bildirir. Müəyyən əməliyyatı yerinə yetirmək üçünprosessora komandalardan əlavə verilənlər də lazımdır. Sadəlik üçün, tutaq ki,hər hansı uydurma prosessorun komandasının ümumi şəkli belədir: komandanın kodu birinci operand ikinci operand nəticə yerləşdiriləcək xananın nömrəsi

Proqramlaşdırmada komandanın arqumenti, yəni verilənlər operand adlanır.

Hər bir verilən, kompüterin yaddaşının xanalarında yerləşir. Bütün yaddaşxanalara bölünmüşdür və hər xananın öz nömrəsi - ünvanı olur. Beləliklə, hər biroperand iki parametrlə - qiyməti və yaddaşda olan yeri ilə təyin olunur.

00xx yazılışı xx ədədinin özünü, 01xx yazılışı isə yaddaşda xx nömrəlixananı göstərir. Bir sözlə, xx veriləninin qarşısında 00 olarsa, bu, verilənin özünü,01 isə yerini göstərir.

Onda 01 və 02 xanalarında yerləşmiş iki ədədin ədədi ortasını tapan proqramaşağıdakı şəkildə olacaq:

010101 0102 0103

030103 0002 0103

Birinci sətirdəki komandanı adi dildə ifadə edək: 01 xanasındakı verilənlə 02komandasındakı veriləni topla və nəticəni 03 xanasına yaz.

İkinci sətirdəki komanda isə aşağıdakı kimi ifadə olunar: 03 xanasındakı ve-riləni 2-yə böl və nəticəni yenidən 03 xanasına yaz. Veriləni yaddaş xanasına yazarkən orada olan əvvəlki informasiya silinir.

Proqramı bir sətirdə yazsaq belə alınar:

0101010102010303010300020103

Göründüyü kimi, maşın dilində yazılmış belə sadə proqram da açılması lazım olan"sirli bir aləmdir". Uydurma olmayan, gerçək kompüterlərdə isə maşın kodu qat-qatmürəkkəb olur.

"Maşin kodu" deyəndə, maşın dilindəyazılmışproqram başa düşülür.

Belə kodda proqram tərtib etmək, sonra isə onun düzgünlüyünü yoxlamaq çoxçətindir, çünki bunun üçün ya bütün komandaların kod və formatını yadda saxlamaq,ya da hər dəfə xüsusi cədvəllərdən istifadə etmək lazım gəlir.

Kodlaşdırmada azacıq səliqəsizlik, yazıda yanlışlıq, rəqəmlərin yerininqarışdırılması gözlənilməz nəticələrə aparıb çıxarardı. Belə yanlışlığı tapmaq daasan iş deyildi, çünki proqramçının qarşısında az-çox aydın dildə yazılmışalqoritm deyil, rəqəmlər yığını dururdu.

Proqramçılar öz işlərini yüngülləşdirmək üçün yollar arayırdılar; elə bir alətyaratmaq lazım idi ki, onun köməyilə kiçik detallara vaxt itirmədən proqram yaz-maq mümkün olsun, özləri yaradıcılıqla, alqoritmlərin qurulması ilə məşğulolsunlar, qalan işlər isə kompüterə həvalə edilsin.

"İkibaşlı yozum"

Kompüterə komandaları adi ingilis, fransız, türk dillərində, yaxud hər hansı başqa dildəvermək mümkün olsaydı, daha yaxşı olardı. Ancaq, təəssüf ki, maşınlar insanlarındanışığındakı incəlikləri başa düşə bilmir. İnsanlar danışdıqları zaman öz sözlərinəjestlər və mimikalar əlavə edir, məcazlardan, üstüörtülü ifadələrdən, istehzadan vəbəlağətin başqa üsullarından istifadə edirlər ki, bu da onlara bir şey söyləyib, əslindəbaşqa bir şeyi çatdırmağa imkan verir. İnsanlar "ikibaşlı" (çoxanlamlı) sözlər işlədir,deyilmiş sözlərin mənasını dəqiqləşdirən kontekstdən, intonasiyadan və başqa amil-lərdən istifadə edirlər. Hətta yazışmalarda da fikrin daha düzgün başa düşülməsinəyardım edən eyhamlardan istifadə olunur. İnsan ağlı təbii dilin "tapmacalarından" baş çıxara bilir, kompüter isə yalnız tam ciddi,riyazi dəqiqliyə malik ünsiyyət sistemini anlayır. Belə sistemdə hər bir simvol, yaxudsimvollar qrupu həmişə eyni bir şeyi bildirməli, hər bir cümlə isə hərfiyyən başa dü-şülməlidir. İstehza, danışıq ifadələri, yaxud dolaşıq eyhamlar, sadəcə, yolverilməzdir.

Assembler.

Maşın kodunda proqramlaşdırma "iynəylə yer qazmaq" kimibir şeydir. Çox sadə hesablama məsələləri (məsələn, ədədin yaddaşdan prosesso-ra yüklənməsi, onun başqa ədədlə toplanması, nəticənin yenidən yaddaşa yazıl-ması) maşın kodlarında uzun-uzadı elə mürəkkəb şəkil alırdı ki, kiçik kərpic-lərdən böyük bir binanın necə tikilməsini təsəvvür etmək belə çətin idi. Assembler dilinin adı ingiliscə"assemble" - "toplamaq", "yığmaq" sözündəngötürülüb.

Bu vəziyyətdən çıxmaq üçün ilk addım komandal arın simvollarla əvəzlən-məsi oldu, daha dəqiq desək, komandalar adi sözlərin qısaltmaları ilə göstərildi.İdeya sadə olsa da, onun gerçəkləşdirilməsi yazılmış proqramların digər proq-


Yunanca "mnemonikon"

"yaddasaxlama bacarığı"deməkdir.

Qreys Murrey Hopper

(1906 - 1992)

1952-ci ildə Qreys Hopper [Grace Murray Hopper] (ABŞ) dünyada ilk mnemonik proq- ramlaşdırma dili olan assemb- ler dilini [assembly language] yaratdı. Assemblerə mnemo- nik komandalar sistemi, prosedurlar kitabxanası və proqramın mətnini maşın koduna çevirən xüsusi proq- ram daxil idi. Proqramın maşın dilinə çevrilməsi prose- duruna kompilyasiya, onu gerçəkləşdirən proqrama isə kompilyator deyilir (bu termin də Qreys M.Hopperindir).


ramçılar tərəfindən qavranılmasını asanlaşdırmağa,səhvlərin sayını azaltmağa, proqramçıların işiniyüngülləşdirməyə imkan verdi.

Komandaların simvollar vasitəsilə yazılış siste-minə mnemonik yazı sistemi deyilir. Belə sisteminköməyilə yazılmış proqram nümunəsinə baxaq.

TOPX1, X2 > X3 BÖL X3, 2> X3

Bu fraqmentin birinci sətri bildirir ki, yaddaşın1 və 2 nömrəli Xanalarını TOPlayıb, nəticəni 3nömrəli Xanaya yerləşdirmək lazımdır. İkinci sətirisə kompüterə yaddaşın 3 nömrəli Xanasını 2-yəBÖLüb, nəticəni yenə də 3 nömrəli xanaya yer-ləşdirmək göstərişini verir. Göründüyü kimi, beləyazılış yuxarıda verilmiş uyğun maşın kodundakıyazılışdan daha anlaşıqlıdır.

Bu həm insanın, həm də kompüterin başa düş-düyü proqramlaşdırma dilinin yaradılması yolundailk addım idi.

İkinci addım prosedurlar kitabxanasının yara-dılması, yəni koddan təkrar-təkrar istifadə olun-ması idi. Ona qədər isə hər bir proqramçı hər dəfəöz "Amerikasını kəşf etməli" idi. Prosedurlarkitabxana-a-ı proqramçılara yeni mü-əkkəb proq-ramları qısa vaxt ərzində keyfiyyətlə tərtib etməkimkanı verirdi.

Bu iki istiqamət yeni proqramlaşdırma dil-lərinin yaradılması və inkişafı üçün özül oldu.

Əlbəttə, assembler proqramçını işin ən arzu- olunmaz hissəsindən - operatorların əl ilə maşın koduna çevrilməsindən azad edir. Ancaq buna baxmayaraq, assembler dilinin iki böyük nöqsanı var. Birinicisini, ola bilsin, siz özünüz artıq sezdiniz: assembler dilində proqramlaşdırma çox diqqət və səbir tələb edən işdir. Mikroprosessorun işini birbaşa idarə edərkən həddən artıq xırda məsələlər nəzərə alınmalıdır.

İkinci çatışmazlıq assembler dilindəki proqramların "daşınabilən" [portable] olmamasıdır. Məsələn, assembler dilində Intel 8080 prosessoru üçün yazılmış

proqramı Motorolla 6800 prosessorlu kompüterdə işlətmək olmur, proqramıhəmin prosessor üçün yenidən yazmaq lazım gəlir. Doğrudur, bu o qədər də çətinməsələ olmasa da, hər halda müəyyən işlər görülməlidir.



  1. Maşın dili nədir?



  2. Assembler nədir və onun maşın dilindən üstünlüyü nədədir?



  3. Assembler dilinin çatışmazlıqları hansılardır?



  4. Proqramın "daşınabilənliyi" nə deməkdir?



    1. YÜKSƏK SƏVİYYƏLİ DİLLƏR



Assembler dili mnemonik olsa da, dövrünün başlıca kompüter istifadəçiləriolan alimləri qane etmədi, çünki, artıq yuxarıda da qeyd olunduğu kimi, maşınkoduna yaxın olduğuna görə onu öyrənmək çətindir. Bundan başqa, hər proses-sorun öz assembleri olur və deməli, bir neçə maşında işləyən şəxs bəzən "bir neçəayrı-ayrı assembler dilini" bilməlidir. Nəhayət, assembler dilində proqramlaşdır-maq üçün bütün prosesi ən kiçik detallarınadək təsəvvür etmək, mürəkkəb düs-turları ayrı-ayrı əməllərin ardıcıllığı şəklində göstərmək lazımdır. Proqramçı isəbeynində daha ümumi kateqoriyalarla işləyir: "düsturu hesablamalı", "ədədiekrana çıxarmalı", "əməliyyatı 10 dəfə təkrarlamalı" və s.

Assemblerdən başqa, qalan proqramlaşdırma dillərinin hər biri yüksək səviyyəli diladlandırılır, ancaq bu hələ onların eynisəviyyəli olması demək deyildir. Bir dilinsəviyyəsi başqasının səviyyəsindən yuxarı, yaxud aşağı ola bilər. "Yüksək səviyyəlidil" dedikdə onun insan dilinə nə qədər yaxın olması başa düşülür.

Yəni, məsələn, klaviaturada aşağıdakı cümləni yığmaqla kompüter sizin göstərişinizidərhal yerinə yetirir: "Cari il üçün mənfəət və zərəri hesabla, illik hesabatı hazırla vəondan bir neçə nüsxə çap edib, lazım olan yerlərə göndər". Əlbəttə, bugünkü proqram-laşdırma dilləri bu idealdan hələ çox uzaqdır!

Belə problemləri aradan qaldırmaq üçün yeni proqramlaşdırma dilinə ehtiyacvardı. Assembler dilindən fərqli olaraq, həmin dilin yaradılmasından əsas məqsədonu maşının anlaması deyil, onunla işləməyin insan üçün əlverişliyi idi.

Beləliklə, insan (proqramçı) üçün daha anlaşıqlı olan və proqramlaşdırmaprosesini asanlaşdıran yeni dillər yaradılmağa başladı. Proqramlaşdırma dilininhər bir yaradıcısı insan-maşın əlaqələri haqqında öz təsəvvürlərini gerçəkləşdir-diyindən qısa müddət ərzində yüzlərlə yeni dil meydana çıxdı (1993-cü ilinhesablamalarına görə, 1950-ci ildən həmin vaxta kimi 1000-dən artıq proqram-laşdırma dili yaradılıb). Təbii, yüksək səviyyəli [high-level] dillər adlandırılan dil-lərin az bir qismi öz yerini tapıb inkişaf etdi və möhkəmləndi. Bunun əksinəolaraq, assembler dili aşağı səviyyəli [low-level] dil hesab olunur, çünki o, maşındilinə daha yaxındır və kompüterin qurğuları ilə işləyir.

Yüksək səviyyəli dillərin öz müsbət və mənfi cəhətləri var. Yüksək səviyyəlidilin assemblerdən başlıca üstünlüyü onun öyrənmək və istifadə üçün çox-çoxasan olmasıdır. Yüksək səviyyəli dildə yazılmış proqram assemblerdəkinə nis-bətən daha yığcam və anlaşıqlıdır. Onlar, əsasən, daşınabiləndir, yəni müxtəlifprosessorlu kompüterlərdə eyni cür işləyir. Bu isə o deməkdir ki, proqramı ya-zarkən onun işləyəcəyi kompüterin arxitekturasının incəliklərini öyrənməyəehtiyac qalmır. Əlbəttə, bu halda hər bir prosessorun öz kompilyatoru olmalıdırvə onun yaratdığı icra faylı yalnız həmin prosessor üçün yararlı olacaqdır.

Ən yaxşı proqramlaşdırma dili hansıdır?

Hər bir proqramlaşdırma dilinin öz tərəfdarları və əleyhdarları var.

İndi dünyada bir neçə min proqramlaşdırma dili mövcuddur. Bəs bu qədər diliniçərisindən sizə daha münasib dili necə seçməli?

Mühəndislərin, bankirlərin, hərbçilərin qarşısında cürbəcür məsələlər durur. Onlar özləriüçün müxtəlif proqramlaşdırma dilləri seçirlər. Mühəndislər FORTRAN dilinə üstünlükverir, bankirlər çox zaman COBOL ("kobol") dilindən istifadə edir, hərbçilər isə döyüşəməliyyatlarını planlaşdırmağı və qoşunun idarə olunmasını ADA dilində yazılmış proq-ramların köməyilə həyata keçirirlər. Süni intellekt sahəsində çalışanlar üçün PROLOG,yaxud LISP dili daha münasibdir. İnternet üçün proqram yazan proqramçılar, adətən,JAVA dilinə üstünlük verirlər.

Bu sadaladığımız proqramlaşdırma dillərinin hamısı xüsusi dillərdir. Bu dillərin hərbirində elə operatorlar var ki, onlar vasitəsilə xüsusi məsələləri daha asanlıqla həlletmək olur. Adətən, həmin dilləri iş prosesində ehtiyac olduqca öyrənirlər, belə ki,onları "qabaqcadan" öyrənməyin mənası yoxdur.

Xüsusi dillərdən savayı, universal proqramlaşdırma dilləri də mövcuddur. Onlarınköməyilə, demək olar ki, istənilən məsələni həll etmək mümkündür. Belə dilləri"qabaqcadan" öyrənmək olar - onlar hər zaman gərəyiniz ola bilər. Belə dillərin üçüdaha çox populyardır:



  • Basic

  • Pascal

  • C++



Deklarativ


Funksional


FunksionalObyekt-yönlü


Məntiqi





Imperativ


Prosedurlu


Obyekt-əsaslı


Obyekt-yöniü
?


hakedi-raporlarnn.html

hakemli-bu-makale-hakem-2.html

hakemli-bu-makale-hakem-7.html

haker--hacker----aazh.html

hakeza-u-ayet---bir.html