I bölmə t t t



Yüklə 0,77 Mb.
Pdf görüntüsü
səhifə9/40
tarix29.12.2021
ölçüsü0,77 Mb.
#48444
1   ...   5   6   7   8   9   10   11   12   ...   40
Turbo Pascal Kitabi

Ìfadə 

Dəyərì 

Ìfadə 

Dəyərì 

not true 

false 


not false 

true 


true and true 

true 


true or true 

true 


true and false 

false 


true or false 

true 

false and true 

false 


false or true 

true 


false and false 

false 


false or false 

false 


 

Məs.  a=  -17  və  b=  3  qìymətlərì  üçün  aşaõıdakı  məntìgì  ìfadələrì  yaza 

bìlərìk: 

 

Sadə ìfadə 



Qìymətì 

Mürəkkəb ìfadə 

Qìymətì 

a < 0 


true 

not(b > 4) 

true 

b > a 


true 

(a > -1) or (b > 5) 

false 

a div 5 = 3 



false 

(5 div b=1) and (a=3) 

false 

a mod b = 1 



true 

(a * b = -51) or (1>0) 

true 

 

Qeyd  edək  kì,  mürəkkəb  ìfadənì  təşkìl  eləyən  hər  bìr  sadə  ìfadə  adì 



mötərìzədə  yazılır.  Məntìqì  ìfadələrdə  a<=b

(a<=b)  and  (b  <  c)  kìmì,  a  <  b;  b  >c  ìsə  (a  <  b)  or  (b  >  c)  formada  ìfadə 

edìlìr. 


 

2.  Budaqlanma əmrì –ìf –bütöv və qısa formada ìşlədìlə bìlìr. 

Bütöv forma: 

ìf        then <1 –cì əmr> 

 else  <2 –cì əmr>; 

Bu  əmrdə  –məntìqì  ìfadə  doõru  olarsa  1  –cì,  əks  halda  ìsə  2  –cì  əmr 

yerìnə  yetìrìlìr.  Həmìn  əmrlərdən  hər  bìrì  ìsə,  əlbəttə  –sadə  və  ya  yıõma 

əmrlər ola bìlər. 

Məs(sadə hal). Əgər a = 16 olarsa, onda 

ìf  a < 1 then x := sqr(a) else x := a dìv7; 

ìf  a >=16 then y : exp(a) else y :=-4; 

əmrlərìndən sonra x və y dəyìşənlərì uyõun olaraq 2 və e

16

 qìymətlərìnì 



alar. 

Başqa bìr mìsal(mürəkkəb hal). Əgər p = -3.5 olarsa, onda 

 

if p < -4 then 

 

begin 

 

q := p – 2.5; 



 

g := 1 + 2 * p; 

 

end  

else  

 

begin 

 

q := 0.5 + 3 * p; 



 

g := 2 – 3*(p+2.5); 

 

end

əmrlərìndən sonra q və g kəmìyyətlərì uyõun olaraq  -10  və 5 qìymətlərì 

alar. 

Ìndì ìsə ìf əmrìnìn ìkìqat (və  ya ìç - ìçə) tətbìq üsulunu göstərmək üçün 



növbətì məsələyə baxaq: 

Məsələ 3. x arqumentìnìn dìaloqla verìlmìş qìymətìnə görə  

 

 










1

,



cos

1

1



,

sin


1

,

ln



x

x

x

x

x

x

y

 

funksìyasının  qìymətìnì  hesablayaraq  ekrana  çıxaran  proqram  tərtìb 



etməlì.  

Program ikiqat_if; 

uses Crt; 

var x, y: real; 

begin 

 

clrscr; 




 

write(‘x-i daxil edin: ’); 

 

readln(x); 



 

if x<-1 then 

 

 



y:=ln(abs(x)) 

 

else 

 

 

if (x>=-1)and(x<1) then 



 

 

 



y:=sin(x) 

 

 



else 

 

 



 

y:=cos(x); 

 

writeln(‘x = ’, x:5:2, ‘ y = ’, y:5:2); 



 

readln; 


end

 

! -



yadda saxlamaq lazımdır kì, ìf əmrì altında olan else xìdmətì sözündən əvvəl ; ìşarəsì 

qoymuq olmaz. 

 

Çalışma 3. x arqumentìnə ekrandan verìlən qìymətə görə 



 

y = |x –1| - |x - 3|  

funksìyasının  müvafìq qìymətìnì ekrana çıxaran proqram yazın. 

     

ìf əmrìnìn qısa forması ìsə aşaõıdakı kìmì yazılır: 

 

ìf    then <əmr>; 

 

Bu  əmrdə  məntìqì  ìfadə  doõru  ìsə  qeyd  olunmuş  əmr  ìşə  başlayır,  əks 



halda ìsə ìdarə növbətì (; sìmvolundan sonrakı) əmrə verìlìr. 

Məs. a =4.5 olarsa, onda 



ìf    a >5  then x := sqr(a); 

ìf     a< 5 then x := sqrt(2*a); 

əmrlərìndən sonra x =3 qìymətìnì alar. 

3.  Şərtsìz  keçìd  əmrì  goto  əmrlərìn  növbəsìnì,  lazımı  nìşanlar  üzrə 

dəyìşdìrmək üçün ìşlədìlìr. Bu əmr aşaõıdakı formada yazılır: 



goto   

Nìşan  proqramda  ìstənìlən  əmrìn  qarşısında  qoyula  bìlìr  və  əmrdən  “:” 

sìmvolu ìlə aşaõıdakı kìmì ayrılır. 

 : <əmr>; 

Proqramda ìşlənəcək nìşanlar ìsə əvvəlcədən label bölməsìndə:  



label  

formada sadalanmalıdır: 

Nìşanlar  -adla  və  ya  10000  dən  kìçìk  natural  ədədlə  (nömrə  ìlə)  ìfadə 

oluna bìlər: 




Məsələ  4.  Verìlmìş  əmsallara  görə  kvadrat  tənlìyì  həll  etmək  üçün 

proqram yazmalı.    

 

program Kvadrat_T; 

uses Crt; 

label 01, 02, son; 

var a, b, c, s, d, x1, x2 : real; 

begin 

clrscr; 


01: writeln(‘a,b,c verilsin’); 

readln(a, b, c); 



if  a = 0  then goto son; 

d := sqr(b) – 4*a*c; 



if d >=0 then goto 02   

else 

begin 

writeln(‘Cavab yoxdur’); 



goto 01; 

end; 

02 : if d >0 then 



begin 

x1 := (-b –sqrt(d))  (2*a); 

x2 := (-b +sqrt(d))  (2*a); 

writeln(‘x1

 

=’, x1:3:1); 



writeln(’x2 =’, x2 :3:1); 

 

  end 



else 

begin 

x1 := - b  (2*a); 

x2 := x

1



writeln(‘x1 = ‘,x1 : 3: 1, ‘x2 =’, x2 : 3 :1); 

son : readln; 

end

end.  

 

!  -



yıõma  əmr  tərkìbìndə  və  ya  ìçproqram  daxìlìndə  olan  əmrlərə  kənardan  növbə 

ötürmək olmaz.

 

Çalışma  4. Verìlmìş əmsallara  görə ìkìdəyìşənlì  xəttì tənlìklər  sìstemìnì 

həll etmək üçün proqram yazın. 

 

5. Seçmə əmrì case –aşaõıdakı formada yazılır: 



case   <ìfadə>  of   

<1 –cì qìymətlər sìyahısı> : <1 –cì əmr>; 

…………………………………………… 



 : 


else   

end; 


Burada ìfadə: 

-yalnız tam, sìmvollu, sadalanan, və ya məntìqì tìplì dəyìşənlərdən ìbarət 

ola bìlər. 

Qìymətlər sìyahısı –ìfadənìn tìpìnə uyõun  sabìtlər və ya dìapazonlardan 

ìbarət olub elementlərì bìr-bìrìndən vergüllə ayrılır. 

else   -köməkçì hìssədìr və buraxıla da bìlər. 

case əmrìndə –ìfadənìn qìymətì hansı nömrəlì sìyahıda olursa, fəalìyyət 

növbəsì  həmìn  nömrəlì  əmrə  keçìr.  Əgər  ìfadənìn  qìymətì  heç  bìr  sìyahıda 

tapılmazsa onda növbə n+1 –cì əmrə, bu əmr olmadıqda ìsə “;” sìmvolundan 

sonrakı əmrə keçìr. 

 

Məsələ  5.  Tutaq  kì,  «Məktəblì»  -dükanındakı  mal  çeşìdlərì    üçrəqəmlì 



ədədlərlə nömrələnərək ayrı-ayrı qìymətlər üzrə  

Çeşìdlər 

 

Qìymətlər(manatla) 



1, 2, … , 23 _____ 12 000 

24, 25, … , 51____  9 500 

52, 53, … , 167____7 200 

168, 169,….,741____500 

742, 743, …,980____250 

kìmì  qruplara  bölünmüşdür.  Alıcının  ìstədìyì  m  -cì  çeşìddən  olan  n  sayda 

malın hesabını ekrana verə bìlən proqram yazmalı.  

 

 



program Hesab; 

uses Crt; 

var m, n, hesab: integer; 

begin 

clrscr; 


writeln(‘Buyurun: ’); 

readln(m, n); 



case m of 

1..23    : hesab := 12000; 

24..51   : hesab := 9500; 

52..167  : hesab := 7200; 

168..741 : hesab := 500; 

else       hesab := 250; 

end

write(‘Sizin hesab ’); 

writeln(n*hesab, ‘ manat oldu.’); 

readln; 


end.

 



Məs. m =86 və n =7 ədədlərì üçün bu proqram ekrana: 

Sizin hesab 50400 manat oldu

cavabını çıxarmalıdır. 



Çalışma  5.  Məlumat  bürosunda,  20  adda  məntəqə  üçün  bìlet  ìstəyən 

sərnìşìnlərə xìdmət edəcək sadə bìr proqram nümunəsì tərtìb edìn.  

 

 

 



 

§5. Dövrlər. 



Dövr  –Proqram  fəalìyyətìndə  müəyyən  əməlìyyatın  sonlu  sayda 

təkrarlanmasıdır.  Dövrü  –məqsədəuyõun  ardıcıllıqda  düzülmüş  əmrlər 

dəstìnìn  tətbìqìlə  yaratmaq  mümkündür.  Bu  sahədə 

ıf,


 

goto


  və  xüsusì  dövr 

əmrlərì tətbìq olunur. Tətbìq formasına görə dövr əmrlərì : 



for

 - parametrlə  



while

 -şərtönü  



repeat

 -şərtsonu varìantlarına bölünürlər.  

1.  Parametrlì 



for

 əmrì –ìkì ìstìqamətdə tətbìq olunur: 

a) Ìrəlìyə addımla:



 

 for  
 := <1 –ci ìfadə> to <2 –cì ìfadə> do  <ìç əmr>; 

-formada  verìlìr  və  parametr  –tam,  sìmvollu,  məntìqì  və  sadalanan 

tìplərdən bìrìnə aìd dəyìşən olub ìlk və son qìymətlərì 1 –cì və 2 –cì ìfadələrlə 

verìlìr.  

Bu əmrdə –parametr 1 –cì qìymətì 2 –cìdən  kìçìk(və ya bərabər) olarsa 

ìç əmr ìşləyìr və 1 –cì qìymət 1 vahìd artaraq proses təkrarlanır. Nəhayət 1 –cì 

qìymət   2 –cìdən böyük olunca ìdarə for əmrìndən sonrakı əmrə keçìr. Məs. 

Əgər x = 2 olarsa, onda 

for  i := 5 to 8 do begin x := x+ i; y := 4 * i end

əmrìndə  x  dəyìşənì  2+5+6+7+8  =28  və  y  ìsə 4* ì =32  qìymətìnì  alaraq 

ìdarə for əmrìndən sonraya keçìr.  

-  b) Gerìyə addımla:  

 for  
 := <1 –ci ìfadə> downto <2 –cì ìfadə> do  <ìç əmr>; 

-formada, analojì prìnsìplə verìlìr.  

Burada    -a)  bəndìndən  fərqlì  olaraq,  parametrìn  1  –cì  qìymətì  2  –cìdən 

böyük(və  ya  bərabər)  olarsa  ìç  əmr  ìşləyìr  və  1  –cì  qìymət  1  vahìd  azalaraq 

proses  təkrarlanır.  Nəhayət  1  –cì  qìymət    2  –cìdən  kìçìk  olunca  ìdarə 

for


 

əmrìndən sonrakı əmrə keçìr. Məs. Əgər x = 2 olarsa, onda 



for i := 8 downto 5 do begin x := x + i; y := 4 * i end

əmrìndə  x  dəyìşənì  2+8+7+6+5  =28  və  y  ìsə 4* ì =20  qìymətìnì  alaraq 

ìdarə for əmrìndən sonraya keçìr. 

Məsələ 6. Müəyyən natural sırayla verìlmìş unsìya ölçülü kəmìyyətlərìn 

qramla ìfadəsìnì əks etdìrən cədvəl tərtìb etmək üçün proqram yazmalı. 







25

1

2



25

1

2



!

5

í



í

í

í

í

y

Unsìya  ölçülü  kəmìyyətì  -

unsiya, 

qramla  ìfadə  olunmuş  qìymətì 

qram, 

sıranın  dəyìşmə addımı



  -h

  və  dəyìşmə  sayını  -

  k

 ìlə ìşarə  etsək,  tələb olunan 



proqramı aşaõıdakı kìmì tərtìb edə bìlərìk:  

 

program Unsiya_Qram; 

uses Crt; 

const line = ‘------------------------’; 

var 

  unsiya, qram, h: real; 

k: integer; 



begin 

  clrscr; 

  write(‘Ilkin unsiya, h verilsin, ’); 

  writeln(‘k verilsin’); 

  readln(unsiya, h, k); 

  writeln; 

  writeln(line); 

  writeln(‘Unsiya        Qram’); 

  writeln(line); 

  for i:=1 to k do {Cavab ekrana verilir} 

  begin 

    qram:=28.353495*unsiya; 

    writeln(unsiya:5:2, ‘     ’, qram:10:6); 

    unsiya:=unsiya+h; 

  end

  writeln(line); 

  readln; 

end. 

Çalışma  6.  6  –cı  məsələnì 



for 

əmrìnìn 


downto

(gerìyə  addım)  varìantını 

tətbìq etməklə həll edìn. 

Məsələ 7. Cəm və hasìldən ìbarət olan 

 

 

 

         ìfadəsìnìn qìymətìnì hesablamaq üçün proqram tərtìb etməlì. 



Bìz  cəm  ìfadəsìnì  –

  c,


  hasìl  ìfadəsìnì

  -h


  və  faktorìal  ìfadəsìnì

  -f 


ìlə  ìşarə 

etsək, tələb olunan proqramı aşaõıdakı kìmì rərtìb etmək olar. 



program Topla_Vur; 

uses Crt; 

var 

  i: integer; 



  c, h, y: real; 

  f: longint; 



begin 

  clrscr; 








20

5

20



5

3

!



3

í

í

i

i

y

  c:=0; 


  h:=1; 

  f:=1; 


  for i:=1 to 25 do 

  begin 

    f:=f*i; 

    c:=c+5*sqr(i)/f; 

    h:=h*i*i; 

  end; 

  y:=c+h; 

  writeln(‘y = ’, y:7:2); 

  readln; 

end. 

 

Çalışma 7.  7–cı məsələnì 



for 

əmrìnìn 


dovnto

 varìantını tətbìq etməklə  

 

 

 



ìfadəsì üçün həll edìn. 

 

2. Şərtönü –while əmrì, aşaõıdakı formada tərtìb olunur: 



 

 while  do <ìç əmr>; 

while

  –əmrì  məntìqì  ìfadə  doõru  olana  qədər  proqramı  ìç  əmrìn 



ìdarəsìndə saxlayır və yalana çevrìləndə ìsə özündən sonraya ötürür. 

Məs.  


- Əgər a= 3 və b = 7 olarsa onda: 

while a<=6 do begin b := b + a; a := a + 1 end

əmrìndən sonra a və b kəmìyyətlərì uyõun olaraq a = 7 və 

 b = (7+3)+(7+4)+(7+5)+(7+6) = 46 qìymətlərìnì alar.  

 

 20  –dən  30  –a  qədər  ədədlər,  onların  kvadratları  və  kubları  cədvəlìnì 



ekrana çıxarmaq üçün while əmrì:  

 

i:=20; 



while i<=30 do 

begin 

  writeln(i:4, i*i:6, i*i*i:8); 

  i:=i+1; 



end; 

 

 



 

kìmì ìşlənə bìlər 

 

real tìpì üçün aşaõı sərhəddìn ìkìqatını tapmaq üçün  while əmrì: 



program Kiçik_real


uses Crt; 

var a:real; 

begin 

  clrscr; 

  a := 1; 

  while a / 2 > 0 do a := a / 2; 

  writeln(‘a =’, a); 

  readln; 



end. 

 

kìmì tətbìq olunaraq cavabda a =2.9E-39 



alarıq.  

! -


kompüter hesabına görə həqìqì ədəd tìpìnìn ən kìçìk müsbət qìymətì sıfır sayılır.  

 

Məsələ 8. Arqumentìnìn [0;3.1] parçasında h = 0.1 addımla dəyìşməsìnə 



uyõun y =Sìn(x) funksìyasının müvafìq qìymətlər cədvəlìnì tərtìb etməklə, 

(0.1;0.6)  ìntervalında y üçün ortalama qìymət tapın. 

Məsələnì,  müvafìq  dəyìşənlər  qəbul  edərək  aşaõıdakı  kìmì  həll  etmək 

olar:  


program Orta_Sin



uses Crt; 



var x, y, s, s1, h, xk: real; 

    n: integer; 



begin 

  clrscr; 

  x:=0; 

  xk:=3.1; 

  h:=0.1; 

  s:=0; 


  n:=0; 

  while x<=xk+h/2 do 

  begin 

    y:=sin(x); 

    writeln(x:3:1, y:6:2); 

    if (y>0.1) and (y<0.6) then 

    begin 

      s:=s+y; 

      n:=n+1; 

    end; 

    x:=x+h; 

  end; 

  if n>0 then 

  begin 

    s1:=s/n; 

    writeln(‘Ortalama = ’, s1); 




  end  

else 

    writeln(‘Ortalama yoxdur n=0’); 

  readln; 

end. 

Çalışma 14. x və y dəyìşənlərì üçün seçìlmìş ìntervalları dəyìşərək 8 –cì 

məsələnì həll edìn. 

Məsələ 9. Ìstənìlən x ədədì və e =0.001 olmaqla, n –cì həddì  

a

n

 =(-1)



n

(2x)


n

  n! kìmì ìfadə olunan {a

n

}-ədədì ardıcıllıõının 



| a

n

 | > e şərtìnì ödəyən hədlərìnìn cəmìnì tapmaq üçün proqram yazmalı. 



n!  –kəmìyyətìnì 

fact


,  cəmı 

toplam


  və  s.  kìmì  ìşarə  edərək  məsələnì  həll 

etmək üçün proqramı aşaõıdakı kìkì tərtìb etmək olar. 



 

program Toplama; 

uses crt; 

const e=0.001; 

var toplam, x, a: real; 

    fact, n, z: integer; 

begin 


  clrscr; 

  writeln(‘x-i daxil edin: ’); 

  readln(x); 

  toplam:=0; 

  n:=1; 

  fact:=1; 

  a:=-2*x; 

  z:=-1; 

  while abs(a)>e do 

  begin 

    toplam := toplam+1; 

    n:=n+1; 

    z:=-z; 

    fact:=fact*n; 

    a:=z*exp(n*ln(2*x))/fact; 

  end

  writeln(‘toplam = ’, toplam :5:2); 

  writeln(‘toplananlar = ’, n-1); 



end.

 

 

Çalışma 9. 9 –cu məssələnì, e  = 0.0001 ədədì üçün, daha cəmərəlì yolla 



həll etməyə çalışın. 

 

3.  Şərtsonu  varìantda  tətbìq  oıunan 



repeat 

aşaõıdakı  formada  tərtìb 

olunur:

 

  repeat   <ìç əmrlər> until 




repeat 

əmrì  -məntìqì  ìfadə  doõru  oluncayadək  ìdarənì  ìç  əmrlərdə 

saxlayır və sonra ìsə özündən sonrakı əmrə ötürür.  

Məs. x =16, y = -3 -ìlkìn qìymətlərì üçün: 



repeat 

y := y + x; 

x := 1

 

2 * x; 



z := x – 3

  

until x <= 5; 

əmrìndən sonra x=4, y= -3+16 +8 =21, z =4 - 3

 =1


  

qìymətlərìnì alar. 

Məsələ  10.  Arqumentìn  -  [-,]  parçasında,  h  =      5  addımla 

dəyìşməsìnə  görə,  y  =Sìn(x)  funksìyasının  müvafìq  qìymətlər  cədvəlìnì 

tərtìb edìn. Bu cədvəldən mìn(y) və max(y) kəmìyyətlərìnì tapıb nətìcələrì 

ekrana çıxaran proqram yazın.   



 

program MinMaxSin; 

uses Crt; 

var h, x, y, max, min: real; 

begin 

  clrscr; 

  h:=pi/5; 

  x:=-pi; 

  max:=sin(x); 

  min:=sin(x); 

  writeln(‘   x   y’); 

  repeat 

    y:=sin(x); 

    writeln(x:7:2, y:7:2); 

    if y>max then max:=y; 

    if ythen min:=y; 

    x:=x+h; 

  until x>pi+h/2; 

  writeln(‘max = ’, max:5:2, ‘min = ’, min:5:2); 

end. 

Çalışma  10.  Arqumentə  aìd  aralıõı  dəyìşməklə,  sonuncu  məsələnì 

y=Cos(x) funksìyası üçün həll edìn. 

 

 



 

 

 



Yüklə 0,77 Mb.

Dostları ilə paylaş:
1   ...   5   6   7   8   9   10   11   12   ...   40




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

gir | qeydiyyatdan keç
    Ana səhifə


yükləyin