5. Faylın bağlanması. Giriş, yaxud çıxış faylı ilə işi bitirdikdən sonra diskdəkifaylla proqram arasında əlaqəni kəsmək lazımdır. Başqa sözlə, açıq fayllarbağlanmalıdır. Bunun üçün Turbo PascaldaCloseproseduru nəzərdə tutulub.
Close(f1); Close(f2);
Nəzərə alın ki,Close (f1, f2);yazılışı düzgün deyil - hər bir fayl ayrıcabağlanmalıdır!
İndi fayllarla işləmək üçün iki misala baxaq. Birincidə iki ədəd fayla yazılır,ikinci misalda isə həmin ədədlər fayldan oxunur və ekrana çıxarılır.
program P1; var
f: text; {Fayl elan olunur}
n: Integer; begin
Assign(f,'file1.txt');
{f faylı diskdə olanfile1.txt faylı ilə əlaqələndirilir} Rewrite(f); {f faylı yazılmaq üçün açılır}
Close(f); {İkinci ədəd n dəyişəninə oxunur} {n dəyişəninin qiyməti (5 ədədi) ekrana çıxarılır} {Fayl bağlanılır}
end.
Sonda fayllarla işləmək üçün tez-tez istifadə olunan bir neçə funksiya ilə dətanış olaq.
Mətn faylına informasiyanın artırılması. Mətn fayllarının sonuna infor-masiya artırmaq imkanı da nəzərdə tutulub. Bunun üçün faylıRewriteprosedu-ru ilə deyil,Appendproseduru ilə açmaq lazımdır.
Append();
Bu prosedur çağırıldıqdan sonra fayl yazılış üçün açılır, ancaqRewrite prosedurunda olduğu kimi, fayldakı mövcud informasiya silinmir. Cari mövqegöstəricisi faylın sonuna keçir və deməli, yazılan informasiya faylın sonuna əlavəolunur.
Misal olaraq yuxarıdakıP1proqramı vasitəsilə yaradılanfile1.txtfaylınayeni yazı əlavə edək:
program P3; var
f: text; begin
Assign (f,'file1.txt');
Append(f); WriteLn(f, 9);
Close(f); end.
Aşağıdakı cədvəldə fayllarla iş zamanı lazım olan daha bir neçə funksiyahaqqında qısa məlumat verilib.
Funksiya
Təyinatı
Eof
()
f fayl dəyişəni ilə bağlı olan fayl üçün End-of-file (faylın sonu) vəziyyətini bildirir: cari mövqegöstərici faylın sonundadırsa, yaxud fayl boşdursa,True, qalan hallarda isə False qiymətini qaytarır.
Erase
()
f fayl dəyişəni ilə bağlı olan xarici faylı silir.
Rename
(, )
Faylın adı dəyişdirilir.
MkDir
()
Yeni qovluq yaradır.
RmDir
()
Qovluğu uzaqlaşdırır. Bu zaman uzaqlaşdırılanqovluğun içərisində altqovluqlar, yaxud fayllarolmamalıdır.
Verilənləri fayldan daxil etməyin hansı üstünlükləri var?
Turbo Pascalda faylların hansı növləri var?
Turbo Pascalda mətn faylları ilə işləmək metodikası necədir və bunun üçün hansıoperatorlar nəzərdə tutulub?
Fayl dəyişəni nədir?
Faylın daxili və xarici adının mahiyyətini izah edin.
PRAKTİKUM
OPERATORLAR
Aşağıdakı komandaların icrasından sonraskəmiyyəti hansı qiyməti alacaq?
s : = 7; s := 2 3;
s := 1; s := s + 3;
a := 2; b := 5; b := b - a; s := b + a;
s := 0; k := 30; d := k - 5; k := 2*d; s := k - 100;
Aşağıdakı operatorların icrasından sonraxvəydəyişənləri hansı qiymətialacaq? Dəyişənlərin qiymətləri yerlərini dəyişdimi?
x
:= 2;
y
:= 9;
x
:= y;
y
:= x;
3. Aşağıdakı operatorların icrasından sonraa, b, cdəyişənləri hansı qiy-mətləri alacaq (a = 1, b = 2, c = 3) ?
a
:= b;
b
:= c;
c
:= a;
4. Aşağıdakı operatorların icrasından sonra ekrana nə çıxacaq?
1.14. a := 4; Write(a); Write ('a');
Aşağıdakı proqramın icrasından sonra ekrana nə çıxacaq?
Klaviaturadan 1, 2, 3 ədədləri daxil edilərsə, aşağıdakı proqramın icrasın- dan sonra ekrana nə çıxacaq?
proqram Task6; var
a, b, c : Integer;
begin
WriteLn('Üç tam ədəd daxil edin'); ReadLn(a, b, a); c = a + b; Write ('a+b=', c); ReadLn; end.
Hansı ədədləri və hansı ardıcıllıqla daxil etmək lazımdır ki, aşağıdakı operatorların icrasından sonra ekrana 123 çıxsın?
Read (a, b, c); Write (c, b, a);
Proqramda olan bütün xətaları tapıb düzəldin.
proqram Task8; var
a; b; c : Integer; begin
WriteLn(' Ədədi daxil edin ', a); ReadLn(a)
b = 5; c = ab;
WriteLn (a ' * ' b ' = ', s); ReadLn(a); end.
Tam ədədin daxil edilməsini istəyən və həmin ədədin kvadratını, kubunu ek- rana çıxaran proqram yazın. Proqramın icrasının nəticəsi təxminən belə olmalıdır:
Ədədi daxil edin. 4
4**2 = 16 4**3 = 64
10. Aşağıdakı proqram istifadəçidən cari aydakı günlərin sayını və bugünkü günü soruşur, sonra isə cari ayın sonuna neçə gün qaldığı haqqında məlumatı ekrana çıxarır. Proqramınsgdəyişəni cari aydakı günlərin sayını,bgdəyişəni bugünkü günü,qgdəyişəni isə ayın sonunadək qalan günlərin sayını göstərir. Proqramın necə icra olunduğunu yoxlayın.
proqram Task10; var
sg, bg, qg : Integer; begin
10.
Qeyd:
- həlli ilə verilmiş tapşırıqlar. Onların həllinə diqqət yetirin və təhlil edin.
WriteLn('Cari ayda neçə gün var?'); ReadLn(sg);
WriteLn('Bu gün ayın neçəsidir?'); ReadLn(bg);
qg := sg - bg;
WriteLn('Bu ayın sonuna qg, ' gün qalıb'); ReadLn; end.
11. İstifadəçidən doğulduğu ili və cari ili soruşan, sonra onun yaşını ekrana çıxaran proqram yazın. Proqramın icrasının nəticəsi təxminən belə olmalıdır:
Hansı ildə doğulmusan? 1994
İndi neçənci ildir? 2008
Sənin bu il 14 yaşın var.
12.xdəyişəninin hansı qiymətlərində aşağıdakı bərabərliklər doğru olacaq?
x div 5 = 8
5 0 div x = 7
5 0 mod x = 7
x div 5 = x mod 5
2 0 div x = 20 mod x
13. Tutaq ki,Sdəyişənində beşrəqəmli ədəd saxlanılır.adəyişəni həmin ədəddəki on minliklərin sayını,bminliklərin sayını,cyüzlüklərin sayını,don- luqların sayını,eisə təkliklərin sayını göstərir. Aşağıdakı cədvəlin iki sütunu arasında uyğunluq qurun.
Əməliyyat
Dəyişən
s div 100 mod 10
a
s mod 10
b
s div 10 mod 10
c
s div 10000
d
s mod 100 div 10
e
14. Dördrəqəmli ədədin rəqəmlərini tapan proqram yazın. Aşağıda istifadəçi ilə kompüter arasındakı dialoq nümunəsi verilib. İstifadəçinin daxil etdiyi veri- lənlər qalın şriftlə göstərilib.
Dördrəqəmli ədəd daxil edin. 4523
Minliklərin sayı 4 Yüzlüklərin sayı 5 Onluqların sayı 2 Təkliklərin sayı 3
ŞƏRT
Operatorların ardıcıl yerinə yetirilməsi nəticəsindəpdəyişəni hansı qiyməti alar?
q := -1;
p := 1;
if (p > 0) and (q > 0) then p := 2 else
if (p < 0) and (q < 0) then
p := 3 else
p := 4;
Operatorların ardıcıl yerinə yetirilməsi nəticəsindəpvəqdəyişənləri hansı qiyməti alar?
q := false;
p := true;
p := p and q;
q := q or false;
q := ( not q) or p;
Operatorlar ardıcıllığı yerinə yetirilərsə,cdəyişəni hansı qiyməti alar?
a := 8; a := a + 2;
b := a - 1; c := a + b div 2;
Aşağıdakı proqram fraqmentində olan bütün xətaları tapıb düzəldin.
20.and, or, notməntiqi əməllərindən istifadə etməklə aşağıdakı şərtləri pro- qramlaşdırma dilində yazın.
xədədi [-3, 2] parçasında yerləşir;
aədədi ştrixlənmiş sahəyə düşür.
ı—ı—ı—F~-3-2-1 0 1 2 3
ax + b = 0tənliyi verilmişdir. Bu tənliyin həllini tapan, yaxud onun həllinin olmaması haqqında məlumatı ekrana çıxaran proqram yazın.
İstifadəçinin yaşına görə onun hansı yaş qrupuna mənsub olduğunu müəyyənləşdirən proqram yazın:
13-dək - uşaqlıq
14-dən 24-dək - cavanlıq
25-dən 59-dək - yetkinlik
60-dan çox - qocalıq
23.
ax2 + bx + c = 0kvadrat tənliyi verilmişdir. Aşağıdakı proqram daxil ediləna, b, cqiymətlərinə görə bu tənliyin həllini tapır, yaxud həllin olmaması haqqında məlumat verir. Proqramın icrasını yoxlayın.
program KvadratTenlik; var a, b, c : Real; D : Real; x1, x2 : Real;
1-dən 20-ə kimi natural ədədlərin kvadratlarını çap edin.
4-ə vurma cədvəlini çap edin.
1-dən 100-ə kimi 4-ə tam bölünən natural ədədləri çap edin.
nvəmnatural ədədləri verilmişdir. Vurma əməlindən istifadə etmədən onların hasilini tapan proqram yazın.
Verilmişnədədinə görə həmin ədədi
28.
6
6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
şəklində (nümunən= 6 halı üçün göstərilib) ekrana çıxaran proqramı aşağıdakı kimi yazmaq olar. Onun necə icra olunduğunu yoxlayın.
program Task2 8;
var i, j, n : Integer;
begin
ReadLn(n);
for i := 1 to n do begin
for j := 1 to i do Write(n, ' '); WriteLn;
end; end.
29. Tam ədədləri aşağıdakı şəkildə ekrana çıxaran proqram yazın:
6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
30. Tam ədədləri aşağıdakı şəkildə ekrana çıxaran proqram yazın:
0
1
0
2
1
0
3
2
1
0
4
3
2
1
5
4
3
2
MASSIVLƏR
31. Operatorlar ardıcıllığı yerinə yetirilərsə,pvəqdəyişənləri hansı qiymətləri alar?
for i := 1 to 10 do
for j := 1 to 5 do
A[i,j] := i*j;
p
:= 0
q
:= 0
m
:= 2
n
:= 5
for k := 1 to 5 do begin
p: = p + A[m,k]; q := q + An,k]; end;
32. Aşağıdakı proqram 10 elementdən ibarət birölçülüXmassivinin ilk 5 elementini çıxışa verir. Proqramın necə icra olunduğunu yoxlayın.
program Print; var i : Integer;
X : array[1..10] of Integer;
begin
for i := 1 to 5 do Write (X[i], ' '); WriteLn; end.
33. Aşağıdakı proqram birölçülü massivdə müsbət və mənfi elementlərin
sayını hesablayıb çıxışa verir. Proqramın necə icra olunduğunu yoxlayın. program Task33; const Nmax = 100;
type TArr = array[1..Nmax] of integer; var A : Tarr;
procedure Solve;
var i, n, p : Integer; begin
p := 0; ReadLn(n);
for i := 1 to n do Read(A[ i]); for i := 1 to n do
if A[i] >=0 then Inc(p);
WriteLn('Müsbət elementlərin sayı ', p); WriteLn('Mənfi elementlərin sayı ', n - p); end;
begin
Solve; end.
Verilmiş birölçülü massivdə sonuncu mənfi elementin nömrəsini tapan proqram yazın.
Tam ədədlər massivi verilmişdir. Klaviaturadan daxil edilənqvət ədədlərinə görə massivin onlar arasında qalan elementlərinin cəmini tapın.
36. Ölçüsünxmolan Amassivini aşağıdakı qaydada doldurun:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
sətIrlər
37. Aşağıdakı proqram ASCII simvollarının sıra nömrəsini və simvolların özlərini ekrana çıxarır. Proqramdakıkdəyişənindən bir sətirdə 15 simvol vermək üçün sayğac kimi istifadə olunur. Proqramın necə icra olunduğunu yoxlayın.
program Task37; var i, k : Integer;
begin
WriteLn('Simvolların sıra nömrəsinin -
i dəyişəninin qiymətinin və simvolla- rın özlərinin ekrana çıxarılması');
k := 0;
for i := 1 to 255 do begin
Write(i : 4, ' Simvol ', Chr(i)); k :=k + 1;
if k = 15 then begin WriteLn;
k := 0;
end; end; end.
Yazı qaydalarına görə mətndə vergüldən sonra həmişə boşluq qoyulur. Aşağıdakı proqram mətndə bu tipli səhvləri tapıb düzəldir. Proqramın necə icra olunduğunu yoxlayın.
program Task3 8;
var i : Integer; s : string;
begin
WriteLn('Mətni daxil edin'); ReadLn(s);
i := 1;
while i < Length(s) do begin
if (s[i] = ',') and not(s[i + 1] = ' ')
then Insert(' ' s, i+1); i :=i + 1; end;
WriteLn(s); ReadLn; end.
Əvvəlki məsələnin proqramını elə dəyişdirin ki, "!", "?", "." simvolların- dan sonra da uyğun səhvi düzəltsin.
Verilmiş sətirdə ən qısa və ən uzun sözü müəyyənləşdirən proqram yazın.
Sətirdə müəyyən hərfə (məsələn, "a") neçə dəfə rast gəlindiyini hesablayan proqram yazın.
FAYLLAR
42. Diskdə "test.txt" adı ilə saxlanılan mətn faylı verilib:
Aşağıdakı proqramın icrasından sonra ekrana nə çıxarılacaq?
program Task42;
var f : text;
s : string; n, m : Integer; c, z : Char; begin
Assign(f, 'test.
Reset(f);
ReadLn(f, s)
;
ReadLn(f, n)
;
Read(f, m);
ReadLn(f, c)
;
Read(f, z);
Close(f);
WriteLn ('s='
,
s)
WriteLn ('n='
,
n)
WriteLn ('m='
,
m)
WriteLn ('c='
,
c)
WriteLn ('z='
,
z)
ReadLn;
end.
43. Tutaq ki,fmətn faylı vəstsətri verilmişdir. Aşağıdakı proqramsdə- yişəninin qiymətiniffaylının sətirlərində axtarır və hansı sətirdə tapırsa, həmin sətri yenigfaylına yazır.
Mətn faylı verilib. Bu faylın ən qısa sətirlərini yeni fayla yazın. Verilmiş mətn faylında ən uzun sətri müəyyənləşdirən proqram yazın. Şagirdlərin siyahısından ibarət mətn faylı verilib. Hər sətirdə bir şagirdin və adı yazılıb. Bu faylı oxuyub ekrana çıxaran proqram yazın.
Səhifənin istiqaməti kağız vərəqin fəzada vəziyyətini təyin edir. İki cür istiqa- mət var: kitab və albom (portret və mənzərə).
ROQRAM
İnformatika - IX sinif (həftədə 1 saat, cəmi 32 saat)
PASCAL PROQRAMLAŞDIRMA DİLİ (21 saat)
Proqram təminatının təsnifatı. Proqramlaşdırma dilləri. Yüksək səviyyəli dillər. Proqramların hazırlanması. Turbo Pascal redaktoru. Pascal-proq- ramın ümumi strukturu. Operatorlar. Praktikum. Şərti yoxlayan operator- lar. Praktikum. Dövr operatorları. Praktikum. Massivlər. Praktikum. Sətirlərlə iş. Praktikum. Altproqramlar. Fayllar. Praktikum.
ELEKTRON SƏNƏD (4 saat)
Mətn sənədi və onun obyektləri. Mətn sənədin hazırlanması. Sənədin redaktəsi. Sənədin formatlanması.
CƏDVƏL PROSESSORU (5 saat)
Cədvəl prosessorunun təyinatı. Elektron cədvəlin obyektləri. Elektron cədvəl verilənləri. Düsturlar. Diaqramın yaradılması və redaktəsi. Cədvəl sənədinin formatlanması.
İNFORMASİYA CƏMİYYƏTİ (2 saat)
Cəmiyyətin informasiyalaşdırılması. Kompüter texnikasının tətbiq sahələri.
MÜNDƏRİCAT
PASCAL PROQRAMLAŞDIRMA DİLİ
İNFORMATİKA 1
PASCAL 2
PROQRAMLAŞDIRMA DİLİ 2
6akı
İnformatika - ümumtəhsil məktəblərinin 9-cu sinfi üçün dərslik.