Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Komp elmlerinin aktual problemleri.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
212 Кб
Скачать
☆

İnformasiyanı bərpa edən proqramlar.

Əməliyyat sistemi komputerin qurğuları ilə yerinə yetirilən proqramlar arasında və komputerlə istifadəçi arasında əlaqə yaradır. Əməliyyat sistemi xarici yaddaş qurğusunda yerləşdirilir, komputer işə salındıqda o diskdən operativ yaddaşa köçürülür. Bu prosesə əməliyyat sisteminin yüklənməsi deyilir.

Əməliyyat sisteminin funksiyalarına aşağıdakılar daxildir-istifadəçi ilə dialoqu həyata keçirmək, giriş-çıxış və verilənlərin idarə edilməsi, proqramların işləməsini planlaşdırmaq və təmin etmək. Resursların paylanmasını təmin etmək, müxtəlif qurğular arasında informasiyanın ötürülməsini təmin etmək, periferiya qurğularının-monitor,klaviyatura... işini təmin etmək. Əməliyyat sistemini eyni vaxtda yerinə yetrilən məsələlərin və istifadəçilərin sayından asılı olaraq əsasən 4 sinifə bölünürlər.

  1. Bir istifadəçi və bir məsələli əməliyyat sistemi – belə əməliyyat sistemi bir klaviyaturadan idarə olunur və bir məsələni yerinə yetirir. Belə əməliyyat sistemi bəzən elə qururlur ki, öz əsas işindən başqa informasiyanın çap olunmasını da təmin edir.

  2. Bir istifadəçi və çox məsələli əməliyyat sistemi – bu əməliyyat sistemi eyni vaxtda bir neçə məsələnin həllini yerinə yetirə bilir.

  3. Çox istifadəçi və çox məsələli əməliyyat sistemi – bu əməliyyat sistemi eyni vaxtda bir neçə istifadəçinin müxtəlif məsələləri həll etməyə imkan verir.

Fərdi komputer üçün nəzərdə tutulan əməliyyat sistemləri aşağıdakı komponentləri saxlamalıdır – giriş-çıxışın idarə edilməsi proqramları, fayl sistemi idarə edən proqramlar, komandalar prosessoru (komandalar prosessoru kataloqa müraciət etməyə imkan verir). Komputerin xarici qurğularını idarə etmək üçün xüsusi proqramlardan-drayverlərdən istifadə edilir.

Proqram təminatının layihələndirilməsi sadəcə proqram yazılmasndan ibarət deyil. Bunun üçün layihələndirilən proqrama qoyulan tələblər aşkar edilməli, məsələnin xüsusiyyətləri araşdırılmalı, alqoritm qurulmalı, alqoritmi realizə edən proqram yazılmalı, translyasiya edilməli proqram yoxlanılmalı (tesdən keçməli) və istismara buraxılmalıdır. Başqa sahələrdən fərqli olaraq proqram təminatının layihələndirilməsi zamanı qarşıda olan problemləri əvvəlcədən görmək, çəkilən xərcləri hesablamaq olur.

Proqram təminatının yaradılmasında ən mühüm mərhələlərdən biri proqram məhsulunda qoyulan tələb və onun aydınlaşdırılmasdır. Bilavasitə proqramın yazılması daha çox yaradıcılıq sahəsinə aid edilir. Bununla belə proqramın qurulmasında müxtəlif üsullardan istifadə edilir. ən çox istifadə edilən üsullar rekursiv proqramlaşdırma, dinamik proqramlaşdırma və modelləşdirmədir.

Rekursiv proqramlaşdırmaya aid aşağıdakı proqrama baxaq:

  1. Tutaq ki, n!-i hesablamaq tələb olunur.

function fact(n:word):longint

begin

if n=0 then fact:=1;

if then fact:=n*fact(n-1)

end;

  1. funksiyasını hesablayan rekursiv proqramı qurun:

function step(x:real; hword):real

begin

if n=0 then step:=1

if then step :=x*step(x,n-1)

end.

Göründüyü kimi rekursiv proqram işlədikdə hər bir mərhələdə alınan qiymət yadda saxlanılmalıdır. Əgər n!-ı hesabamaq tələb olunursa, onda n sayda qiymət yadda saxlanılmalıdır. Proses başa çatdıqdan sonra yadda saxlanılan qiymətlər bir-birinə vurulur. Bu baxımdan rekursiv proqramlaşdırma üsulundan istifadə edilməsii səmərəli sayılmır. Ona görə də bu cür məsələlərin həllində dinamik proqramlaşdırmadan istifadə edilir. Bu üsula Fibonaççi ədədinin hesablanmasında baxaq.

Əvvəlcə rekursiv proqramdan istifadə etməklə məsələni həll edək:

f(0)=0, f(1)=1, f(i)=f(i-1)+f(i-2)

function fib(n:integer):real

if n=0 then fib:=0

if n=1 then fib:=1

if then fib:=fib(i-1)+fib(i-2)

nd.

Rekursiya vasitəsilə Fibonaççi ədədlərinin hesablanması sərfəli proqram deyil. Doğrudan da bu proqram əsasında F(N)-in hesablanması nəzərdə tutulursa, onda

Bu proqram əlavə yaddaş tələb etməkdən əlavə eyni dəyişənləri bir neçə dəfə hesablamalı olur. Adətən bu cür məsələlərin həllində dinamik proqramlaşdırmadan istifadə olunur.

F(1) verildikdə F(N)=G(N,F(N-1)) formasında olan funksiyalara rekursiv funksiyalar deyilir.

Dinamik proramlaşdırmada əsas ideya cədvəl şəklində hesablamanın qurulmasından ibarətdir. Yuxarıdakı məsələni dinamik proqramlaşdırma üsulu ilə aşağıdakı kimi yazmaq olar: