Azad İsa oğlu Qurbanov, Elçin Musa oğlu Məmmədov, Aygün Seyfəddin qızı Hüseynova



Yüklə 2,82 Kb.
Pdf görüntüsü
səhifə39/41
tarix11.10.2017
ölçüsü2,82 Kb.
#4433
1   ...   33   34   35   36   37   38   39   40   41

 
383
OldFile, NewFile : file; 
V : array [1..128,1..200] of byte; 
Result : integer; 
OldName, NewName : string [14]; 
Begin 
   writeln (‘İlkin faylın adını verin’); 
    readln (OldName); 
Assign  (OldFile, OldName);  
  Reset (OldFile); 
  writeln (‘Yeni faylın adını verməli:’); 
  readln (NewName); 
Assign (NewFile, NewName);  
Rewrite (NewFile); 
        Repeat 
 
BlockRead (OldFile, V, 200, Result); 
 
BlockWrite (NewFile, V, Result); 
Until Result=0 
Close (OldFile); 
Close (NewFile) 
End. 
Bu proqram bir faylın digər fayla sürətlə köçürülməsini təmin edir.  
Mətn faylı istisna olmaqla tipli və tipsiz fayllara birbaşa üsulla da müraciət 
etmək olar. Bu isə diskdə saxlanılan informasiyadan operativ olaraq istifadə 
edilməsini təmin edir. 
Birbaşa müraciəti təşkil etmək üçün 
seek(F,n) 
standart prosedurundan 
istifadə edilir. Bu prosedurda n arqumenti F fayl dəyişənilə  təyin olunan faylın 
elementinin sıra nömrəsini təyin edir. n tam qiymətlər alır və bu ədəd faylın 
elementlərinin sayından çox olmamalıdır. Faylın elementləri 0-dan başlayaraq 
nömrələnir. Prosedur yerinə yetirildikdə kursor faylın mövqeyini n-ci elementə 
doğru yerini dəyişir və həmin elementin oxunması, redaktəsi icra oluna bilər, n-ci 
mövqedən fayla yeni verilən yazıla bilər. Praktikada birbaşa müraciət üçün bu 
prosedurdan başqa daha 2 standart funksiyadan istifadə olunur: 
1.
 
FilePos(F)
. Funksiya cari anda F faylında kursorun yerləşdiyi 
elementinin nömrəsini təyin edir.  
2.
 
FileSize(F). 
Funksiya F faylının ölçüsünün -faylın elementlərinin 
sayını  təyin edir. Adətən bu funksiyadan faylda elementin olmasını 
yoxlamaq üçün istifadə edilir. Əgər 
FileSize(F)=0 
isə onda fayl boşdur, 
yəni onda heç bir element yoxdur, əks halda faylda elementlər vardır.  
Məsələn , 
type tf=file of integer; 
procedure sortpuz(name:string); 
var f:tf; 
    i,nkz:longint; 
    r1,r2:integer; 
    flag:boolean; 
begin 
  assign(f,name); 
  reset(f); 
  nkz:=filesize(f); 


 
384
  repeat 
    flag:=false; 
    for i:=0 to nkz-2 do 
      begin 
        seek(f,i); 
        read(f,r1,r2); 
        if r2>r1 then 
          begin 
            seek(f,i); 
            write(f,r2,r1); 
            flag:=true 
          end 
      end; 
  nkz:=nkz-1 
  until not flag; 
  close(f); 
end; 
begin 
sortpuz('c:\azad.txt') 
end. 
Proqram tam ədədlərdən ibarət faylda nizamlama  əməliyyatı aparır.  
2.18. Modullar 
Turbo Pascal-da proqramın həcminə müəyyən məhdudiyyət vardır. Belə ki, 
kompilyator yalnız o proqramları translyasiya edə bilər ki, bu əməliyyat zamanı 
maşın kodunun həcmi 64 Kbayt-dan çox olmasın. Bu səbəbdən böyük həcmli 
proqramları bir neçə proqram fraqmentlərinin - modulların toplusu şəklində 
yaratmaq lazım gəlir. 
Modul müstəqil kompilyasiya olunan proqram vahididir
Modulun mətni “
.pas
”  genişlənməsinə malik faylda, kompilyasiya olduqda isə o

.tpu
” genişlənməsinə malik xüsusi faylda saxlanılır. Əsas proqramdan
 uses
 işçi 
sözü vasitəsilə modulun həm mətninə və həm də onun kompilyasiya olmuş faylına 
müraciət olunur. Qeyd edək ki, modulun mətni və ya onun kompilyasiya olmuş 
faylı  əsas proqramın yerləşdiyi cari kataloqda və ya istifadəçi tərəfindən, Turbo 
Pascal proqram mühitinin 
Options→  Directories
  əmrini yerinə yetirdikdə 
açılan 
Directories dialoq pəncərəsinin (şək. 1) Unit directories sahəsnidə müəyyən 
olunan digər kataloqda yerləşə bilər. 
Modul vasitəsilə  həmçinin tətbiqi proqram kitabxanası yaradılır. Bu 
kitabxananın prosedur və funksiyalarına digər proqramlardan müraciət etməklə bir 
sıra məsələləri, o cümlədən, riyazi, statistik məsələləri həll etmək, kompyuter 
qrafikasının elementlərindən istifadə etmək olar. 
Modul aşağıdakı struktura malikdir: 
UNIT <ad>;  {Modulun başlığı} 
INTERFACE  
  
IMPLEMENTATION  
<icra olunan hissə>  
BEGIN  


 
385
 
END.  
Bu yazılışda -modulun adını bildirir. İnterfeys hissədə digər proqramlardan 
və modullardan müraciət olan elementlər – funksiyalar, prosedurlar, dəyişənlər, 
sabitlər, istifadəçi tipləri elan olunur. İcra olunan hissədə yalnız cari modulda 
istifadə olunan elementlər elan olunur və interfeys hissədə elan olunan prosedur və 
funksiyaların proqram kodları yazılır.  İnsalyasiya   sahəsində 
b
e
gin
 və 
end
 
işçi 
sözləri arasında modulun icra olunan operatorları yerləşir. Modulda icra olunan 
operator olmadıqda onda 
begin
  sözü istifadə olunmur. Məsələn, aşağıda verilmiş 
Esas
 proqramda a və b kompleks ədədlərinin cəmini, fərqini, hasilini, qismətini 
hesablayan proqramda kompleks ədədlər üzərində hesablama əməliyyatlarını 
aparmağı  təmin edən 
Cmplx
 modulundan istifadə edilmişdir. Modulun 
Addc
 
proseduru ixtiyari iki kompleks adədin cəmini, 
SubC
 
proseduru fərqini,
 
MulC
 
proseduru
 
hasilini
, Di
v

proseduru isə cəmini hesablayır. 
UNIT Cmplx; 
INTERFACE 
type complex = record  
re, im:real 
end; 
Procedure AddC  (x, у : complex;  var z : complex) ; 
Procedure SubC  (x, у : complex;  var z : complex) ; 
Procedure MulC  (x, у : complex;  var z : complex) ; 
Procedure DivC  (x, у : complex;  var z : complex) ; 
const  
  
 
с : complex = 
(re : 0.1; im :  -1);
    
IMPLEMENTATION 
Procedure AddC; begin 
z.re := x.re + y.re; z . im := x.im + y. im 
end {AddC}; 
Procedure SubC; 
begin 
z.re := x.re - y. re ;  
z.im := x.im - y.im 
end {SubC}; 
Procedure MulC; 
begin 
z.re := x.re*y.re - x.im*y. im; 
z.im := x.re*у.im + x.im*y.re 
end {MulC}; 
Procedure DivC; 
var 
zz : real; 
begin 
zz := sqr(y.re) + sqr(y.im);  
z. re := (x.re * y.re + x.im * y.im) / zz;  
z.im := (x.re * y.im - x.im * y.re) / zz 
end {DivC}; 
end. 
 Program Esas; 


Yüklə 2,82 Kb.

Dostları ilə paylaş:
1   ...   33   34   35   36   37   38   39   40   41




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

    Ana səhifə