Mavzu: Dasturlash tillari faniga kirish. Ob’ektga yo‘naltirilgan dasturlash tillari



Download 2,09 Mb.
Pdf ko'rish
bet64/64
Sana17.08.2021
Hajmi2,09 Mb.
#149509
1   ...   56   57   58   59   60   61   62   63   64
Bog'liq
dasturlash delphi

Shartli o‘tish operatorlari. 

 

Bu operator ikkita turli xil ko‘rinishga ega:  IF va CASE



 

IF operatori. 

Bu operator  mantiqiy  ifodalar  qabul qilishi  mumkin: TRUE (rost) yoki 

FALSE (yolg‘on). 

Oddiy mantiqiy ifodaga quyidagi ifodani olish mumkin:   

 



A1 OR A2 

 

Bu yerda, A1  va  A2  lar - 



ifodalar, 

OR -  munosabat amali; 

Munosabat  amallari 

Paskal dasturlash tilida quyidagicha belgilanadi: 

 

 

 



 

 

 



 

 

 



 

 

 



 

 

Misol: 

 

 





>= 


<= 

<> 

 

 



- teng; 

- katta; 

- kichik; 

- katta yoki teng

- kichik yoki teng; 

- teng emas. 



3<5;     18>2;     5<=6;     A=V; 

 

 



 




        IF operatorining umumiy ko‘rinishi: 

 

IF A THEN ST; 

Bu yerda, A - mantiqiy ifoda; ST - operator (oddiy yoki birlashgan). Agar A - rost bo‘lsa, ST 

operatori  bajariladi. Agar  A – yolg‘on 

bo‘lsa, u 

holda boshqaruv ST operatoridan 

keyingi 

operatorga uzatiladi. 

 

 

Misol. 



IF F<>0 THEN B:=X/A; 

Agar A≠0 bo‘lsa, u  holda V:=X/A; 

operatori 

bajariladi. Agar  A=

bo‘lsa,

 



holda  bu 

operator tashlab qoldiriladi va boshqaruv keyingi operatorga uzatiladi. 

 

 

IF operatori quyidagi ko‘rinishga ham ega bo‘lishi mumkin: 



 

IF A THEN ST1 ELSE ST2; 

Bu yerda, A - mantiqiy ifodasi, ST1, ST2  operatorlar. Agar A - rost bo‘lsa, ST1 operatori - 

bajariladi, agar A – yolg‘on bo‘lsa ST2 operatori bajariladi va ikkala holda ham boshqaruv 

keyingi operatorga uzatiladi. 

 

 

Eslatma 1: 



ELSE dan oldin nuqta vergul (;) quyish mumkin emas. 

 

 



Misol: 

IF A<>0 THEN B: =1/A ELSE B:=0; 

Agar A≠0 bo‘lsa, u 

holda 

V - o‘zgaruvchi  1/A ni 



o‘zlashtiradi, agar

 

A=0 bo‘lsa, 0 



qiymatini 

o‘zlashtiradi.   

 

 

Eslatma 2:  Quyidagi operatorning: 



 

IF A1 THEN IF A2 THEN ST1 ELSE ST2; 

sintaksis bir xil  emasligi quyidagicha yoziladi(tushuniladi): 

 

IF A1 THEN   

 

        BEGIN 

 

            IF A2 THEN ST1 ELSE ST2 

 

        END; 

 

 



 

Misol:   

 

 



               IF A<>0 THEN IF B<>0 

            THEN  C:=A/B ELSE C:=0; 

            K:=-1; 

Agar A≠0 bo‘lsa, u holda V≠0 uchun 

S=A/V,  V=0 uchun  S=

bo‘ladi  va

 

undan 


keyin K:=-1; 

operatori  bajariladi. 

Agar  A=0  bo‘lsa, u  holda  boshqaruv to‘g‘ridanto‘g‘ri K:=-1; 

operatoriga uzatiladi. 

 

 

Quyida IF operatoriga misollarni “Delphi” muhitida ko‘ramiz. 



 

 

 



 

 

 



 

 

 



 

 

 



 

 

 



 

 

unit Unit1; 



interface 

uses 


  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, 

  Dialogs, StdCtrls, ExtCtrls, MPlayer; 

type 

  TForm1 = class(TForm) 



    Label1: TLabel; 

    Label2: TLabel; 

    Edit1: TEdit; 

    Edit2: TEdit; 

    Button1: TButton; 

    Label3: TLabel; 

    Label4: TLabel; 

    Button2: TButton; 

    Panel1: TPanel; 

 




 

    Panel2: TPanel; 

    Panel3: TPanel; 

    Panel4: TPanel; 

    Button3: TButton; 

    Button4: TButton; 

    MediaPlayer1: 

TMediaPlayer; 

 

    procedure Button1Click(Sender: TObject); 



    procedure Button2Click(Sender: TObject); 

    procedure Button3Click(Sender: TObject); 

    procedure Button4Click(Sender: TObject); 

  private 

    { Private declarations } 

  public 

    { Public declarations } 

  end; 


 

 

var 



  Form1: TForm1; 

implementation 

uses Unit2; 

{$R *.dfm} 

 

 

procedure TForm1.Button1Click(Sender: TObject); 



var a, b, y: real; 

begin 

if Edit1.Text='' then Form2.ShowModal; 

if Edit2.Text='' then Form2.ShowModal else 

                                           begin 

                                              a:=StrToFloat(Edit1.Text); 

                                              b:=StrToFloat(Edit2.Text); 

if a>0 then y:=a+b else y:=a-b; 

                                              label4.caption:=FloatToStr(y); 



                                            end; 

end; 

 

 



 

 

 



 

 

 



 

 

 



 

 

 



 

 

 



 

 

 



 

 

 



 

 

 



 

 

 



 

 

 



 

 

 



 

 

 



 

 

 



 

 

 



 

 

 



 

 

 



 

 

 



 

 

 



 

 

 






 

procedure TForm1.Button2Click(Sender: TObject); 

begin 

 if Panel1.Color= clBackground then Button1.Enabled:=false; 

end; 

 

 



procedure TForm1.Button3Click(Sender: TObject); 

begin 

if Panel2.Color=clActiveCaption then 

                                    begin 

                                       Button1.Enabled:=true; 

                                       Panel3.Color:=clMoneyGreen; 

                                       Panel4.Color:=clRed; 



                                    end; 

end; 

 

 



procedure TForm1.Button4Click(Sender: TObject); 

begin 

if Panel4.Color=clTeal then 

                           begin 

                              Button1.Enabled:=true; 

                              Panel3.Color:=clBlue; 

                           end 

                        else 

                           begin 

                              MediaPlayer1.Play; 

                              Form1.Color:=clYellow; 

                           end 

end; 

end. 

 

 

 

 

 

 

 

 

 



3.  CASE ko‘rsatmasidan foydalanib tarmoqlanuvchi 

jarayonlarga doir

 

dasturlar tuzish va «Delphi» komponentlari bilan bog‘lash. 

 

 

CASE - Variant tanlash operatori 



Ayrim algoritmlarning  hisoblash jarayonlari o‘zlarining ko‘p 

tarmoqliligi

 

bilan 


ajralib 

turadi.  Umuman olganda,  tarmoqli  jarayonlarni  hisoblash  uchun shartli 

operatordan foydalanish yetarlidir. Lekin, tarmoqlar soni ko‘p  bo‘lsa shartli operatordan 

foylanish algoritmning ko‘rinishini murakkablashtirib yuboradi. Bunday hollarda shartli 

operatorning  umumlashmasi 

bo‘lgan variant tanlash 

operatoridan foydalanish

 

maqsadga 



muvofiqdir. Variant tanlash operatorini sintaksis ko‘rinishi quyidagicha: 

 

CASE ifoda OF 



ro‘yxat 1:  begin 

                                {ko‘rsatmalar 1} 

                           end; 

ro‘yxat 2:  begin 

                                {ko‘rsatmalar 2} 

                           end; 

ro‘yxat N:  begin 

                                {ko‘rsatmalar N} 

                             end;    else 

                                             begin 

                                                  {ko‘rsatmalar 3}  

                                             end; 

END; 

Ifoda - 

ifodaning 

qiymatiga  qarab  dasturning  bajarilish 

yo‘nalishi 

o‘zgartiriladi.  Ro‘yxat – bir-biri  bilan  vergul  bilan  ajralib  turuvchi o‘zgarmaslar 

ro‘yxatidir. Agar o‘zgarmaslar 

sonlar diapazonidan tashkil

 

topgan 



bo‘lsa, u 

holda ro‘yxat 

 

 

 



 




 

o‘rniga birinchi va oxirgi o‘zgarmaslarni yozib orasiga ikki nuqta (..) qo‘yish kerak bo‘ladi. 

Masalan, 1, 2, 3, 4, 5, 6 ro‘yxati 1..6 diapozoni bilan almashtirilishi mumkin. 

CASE ko‘rsatmasi quyidagicha ishlaydi: 

1.  Case so‘zidan keyin turgan ifoda qiymati hisoblanadi. 

2.  Ifodaning qiymati ro‘yxat(metka) qiymatlari bilan solishtiriladi. 

3.  Agar  ifodaning  qiymati  ro‘yxat(metka) 

qiymatlari  bilan  mos 

kelsa,  u

 

holda shu 



ro‘yxat(metka)ga  mos 

keluvchi 

ko‘rsatmalar ketma-ketligi

 

bajariladi,  Case ko‘rsatmasi 



bajarilishi to‘xtaydi va boshqaruv Case dan keyingi operatorga uzatiladi.   

4.  Agar ifodaning qiymati birorta ham ro‘yxat(metka) qiymatlari bilan  mos kelmasa, u 

holda  Else xizmatchi so‘zidan 

keyingi 


ko‘rsatmalar  ketma-ketligi  bajariladi,

 

Case 

ko‘rsatmasi bajarilishi to‘xtaydi va boshqaruv Case dan keyingi operatorga uzatiladi.   

 

 



Shuni yodda tutish kerakki si bilan si bir xil 

tushuncha 

emas 

va 


variant  metkasi  metkalar 

bo‘limida

 

ko‘rsatilmasligi  kerak.  Bundan 



tashqari ular o‘tish operatoridan ishlatilishi mumkin emas. 

Quyida Case ko‘rsatmasining blok sxemasi keltirilgan: 

 

 

 



Ifoda 

 

 



 

 

 



 

 

 



 

 

 



 

 

Misol 1: 

 

 

 



 

 

 



 

Ko‘rsatmalar 

ketma- 

ketligi 


 

 

 



 

 

 



 

Ko‘rsatmalar 

ketma- 

ketligi 


 

 

 



 

 

 



 

Ko‘rsatmalar 

ketma- 

ketligi 


1. Case  i  mod  3 of 

0:  m:=  0; 

1:  m:= -1; 

2:  m:=  1 

end; 


 

 

 



 

2

.

 

C



a

s

e



  


summa of 

          '=':  k:=  1; 

 

 



 

 

 



 

 

 



 

 

 



 

 

 



 

 




 

 

 



 

 

 



 

               

end; 

 

'*',  '+',  '/',  '-' :  ; 



                     '!' :  k:=  2; 

                ':',  ';':  k:= 3 

 

 



3. Case  kun  of 

dush, sesh, chor, pay, jum: writeln('ish kuni'); 

                          shan, yksh: writeln('dam olish kuni') 

end; 


 

 

Variant tanlash operatori ichiga kirish faqat CASE orqali amalga oshiriladi. 



Endi  shartli  operatorni  variant  tanlash  operatori  orqali  ifodasini  ko‘rib 

chiqaylik: 

 

 

 



 

 

 



 

 

 



 

 

 



 

 

 



 

Misol 2: 

 

 



 

 

 



 

 

 



 

 

 



 

 

 



 

 

 



 

(a 



1.    if  B  then  S1   else  S2 

 

 



 

 

 



 

 

2.    if  B  then  S 

 

 

 



 

 

 



 

 



bx;  x 

Case  B  of 



true:  S1; 

false:  S2; 

yend; 

 

Case  B  of 



true:  S; 

false: 

yend; 


y = 

⎨⎧ 


− 

=  ;  ni  hisoblash  lozim  bo‘lsa, 

Case 

operatoridan  quyidagicha 



⎩(a  b)x;  x  3 

foydalanish mumkin: 

 

 

 



 

Case x of 

2 : y := (a + b) * x; 

3 : y := (a - b) * x; 

end; 

 

 



⎧(a + 

 

 



 

 



Agar  y 



⎩ 



(a − b)x;  x 2, x  5 



b)x;  x 3, x  7 

;  ni  hisoblash  lozim  bo‘lsa, 

Case 

operatoridan 




quyidagicha foydalanish mumkin: 

 

 



 

 

 



 




 

Case x of 

2, 5 : y := (a + b) * x; 

3, 7 : y := (a - b) * x; 

end; 

Ya’ni, bir  nechta 



variantlar 

mavjud  bo‘lsa, 

ularning orasiga (,)

 

vergul 



qo‘yiladi. 

Agarda  qiymatlar  ma’lum  bir 

oraliqga  tegishli 

bo‘lsa,  ya’ni,  misol  uchun 

⎧  + 

<  < 

y = 

⎩ 



(a  b)x  ; 2 x  10 

− 

<  < 

;  ni  hisoblash  lozim  bo‘lsa, 

Case 


operatoridan  quyidagicha 

(a  b)x  ;15 x  25 

foydalanish mumkin: 

 

 



Case x of 

2..10 : y := (a + b) * x; 

15..25 : y := (a - b) * x; 

end; 


 

 

Bundan 



tashqari 

Case 


operatorida 

Else 


xizmatchi

 

so‘zidan ham  foydalanish mumkin. 



Masalan: 

Case x of 

2..10 : y := (a + b) * x; 

15..25 : y := (a - b) * x; 

else  y :  0; 



end; 

Bu yerda 

Else 

xizmatchi 



so‘zi 

End 


xizmatchi 

so‘zidan oldin

 

ishlatiladi. Agar  berilgan 



variantda  bir  necha 

amallar 


bajarilishi 

lozim 


bo‘lsa, bu  bajarilishi

 

lozim 



bo‘lgan 

amallarni 

Begin 

va 


End 

xizmatchi so‘zlari orasiga yozish mumkin. 

Case ko‘rsatmasi 

bilan 


mos  ishlaydigan “Delphi”

 

komponentlarga ListBox (ro‘yxat), 



ComboBox (osiluvchi ro‘yxat), RadioGroup (tanlanuvchi ro‘yxat), ColorBox (rangli osiluvchi 

ro‘yxat)larni misol qilib olish mumkin. Quyida ListBox, ComboBox, RadioGroup, ColorBox 

komponentlarini xossalari keltiriladi: 

 

Xossasi 

Ta’rifi 

 

ListBox – bu komponenti Windows uchun yaratilgan dasturlarda ko‘p qo‘llaniladi. U 

ro‘yxatdan bir yoki bir 

nechta qatorni tanlash imkonini beradi. 

1  Items 

2  ItemIndex 

3  Font 

4  BorderStyle 




Ro‘yxat elementlari. 

Ro‘yxat elementi raqami. 

Ro‘yxat shriftiga oid xossalar. 

Komponentko‘rinishi. 

 

ComboBox – bu komponent qo‘shimcha maydon bilan bog‘langan ro‘yxat variantlarini aks 

etadi. Tanlangan 

ro‘yxat elementi shu maydonda ko‘rinib turadi. Bu maydon yordamida ro‘yxatda mavjud 

elementlarni bosh 

harflarini kiritib tez topish imkonini ham beradi. Qisqacha qilib “osilib chiquvchi” ro‘yxat 

deb atasa ham 

bo‘ladi. 

1  Items 

2  ItemIndex 

Ro‘yxat elementlari. 

Ro‘yxat elementi raqami. 

 

 



 




 

3  Font 


4  Text 

 

Ro‘yxat shriftiga oid xossalar. 



Qo‘shimcha maydonda ko‘rinib turadigan matn. 

 

RadioGroup – bu komponent ko‘rinib turuvchi ro‘yxatdan tanlash (ro‘yxat oldiga nuqta 

qo‘yish) orqali kerakli 

ro‘yxat elementini tanlaydi. 

1  Items 

2  ItemIndex 

3  Font 

4  Caption 

Ro‘yxat elementlari. 

Ro‘yxat elementi raqami. 

Ro‘yxat shriftiga oid xossalar. 

Ro‘yxat sarlavhalari. 



ColorBox – bu komponent osiluvchi ro‘yxat bo‘lib, ranglar ro‘yxatini saqlaydi. 

Ro‘yxatdan kerakli rang 

tanlanadi. Maydonda shu rang nomi va rang hosil bo‘ladi. 

1  DropDownCount 

2  Cursor 

3  Font 


4  Color 

Osilib ko‘rinuvchi ro‘yxat elementlari soni. 

Komponent ustida kursorni ko‘rinishi. 

Ro‘yxat shriftiga oid xossalar. 

Ro‘yxat foni rangi. 

 

 



Quyida CASE  ko‘rsatmasi bilan  birga  foydalanish  mumkin bo‘lgan 

bir nechta 

komponentlar ishtirok etgan misol keltirilgan. 

 

 



 

 

 



 

 

 



 

 

 



 

 

 



 

Muhitdagi ko‘rinishi. 

 

 

 



 

 

 



 

 

 



 

 

 



 

 

 



Dastur ishga tushirilgan vaqtdagi ko‘rinishi.                                               Dastur ishi 

vaqtidagi ko‘rinishi. 

 

unit Unit1; 



interface 

uses 


  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, 

  Dialogs, ExtCtrls, StdCtrls, MPlayer; 

type  

  TForm1 = class(TForm) 



    ListBox1: TListBox; 

 






 

    ComboBox1: 

TComboBox; 

    Label1: TLabel; 

    Label2: TLabel; 

    Panel1: TPanel; 

    Panel2: TPanel; 

    Panel3: TPanel; 

    Panel4: TPanel; 

    Image1: TImage; 

    Image2: TImage; 

    Image3: TImage; 

    Image4: TImage; 

    ColorBox1: TColorBox; 

    MediaPlayer1: 

TMediaPlayer;  

    RadioGroup1: 

TRadioGroup; 

    MediaPlayer2: 

TMediaPlayer;  

    Panel5: TPanel; 

 

    procedure ListBox1Click(Sender: TObject); 



    procedure ComboBox1Change(Sender: TObject); 

    procedure ColorBox1Change(Sender: TObject); 

    procedure RadioGroup1Click(Sender: TObject); 

  private 

    { Private declarations } 

  public 

    { Public declarations } 

  end; 


 

var 


  Form1: TForm1; 

implementation 

{$R *.dfm} 

 

 



procedure TForm1.ListBox1Click(Sender: TObject); 

begin 


case ListBox1.ItemIndex of 

   0: begin 

           Image1.visible:=false; 

           Panel1.Color:=clTeal; 

           Panel1.Caption:='Birichi';  

      end;  

   1: begin 

           Image2.visible:=false; 

           Panel2.Color:=clRed; 

           Panel2.Caption:='Ikkinchi'; 

      end;  

   2: begin 

           Image3.visible:=false; 

           Panel3.Color:=clYellow;  

 

 

 



 

 

 



 

 

 



 

 

 



 

 

 



 

 

 



 

 

 



 

 

 



 

 

 



 

 

 



 

 

 



 

 

 



 

 

 



 

 

 



 

 

 




 

 




 

           

Panel3.Caption:='Uchinchi'; 

      end;  

   3: begin 

           

Image4.visible:=false; 

           

Panel4.Color:=clBlue; 

           

Panel4.Caption:='Turtichi'; 

      end;  

end; 

end



 

procedure TForm1.ComboBox1Change(Sender: TObject); 

begin 


case ComboBox1.ItemIndex of 

    0: Image1.visible:=true; 

    1: Image2.visible:=true; 

    2: Image3.visible:=true; 

    3: Image4.visible:=true; 

end; 


end; 

 

 



procedure TForm1.ColorBox1Change(Sender: TObject); 

begin 


case ColorBox1.ItemIndex of 

     0: Panel5.Color:=clBlack; 

     1: Panel5.Color:=clMaroon; 

     2: Panel5.Color:=clGreen; 

     3: Panel5.Color:=clOlive;  

end; 


end; 

 

 



procedure TForm1.RadioGroup1Click(Sender: TObject); 

begin 


 case RadioGroup1.ItemIndex of  

    0: begin 

            MediaPlayer2.Stop; 

            MediaPlayer1.Play; 

       end

    1: begin 

            MediaPlayer1.Stop; 

            MediaPlayer2.Play; 

       end; 

end; 


end; 

end. 



 

  

 



 

Download 2,09 Mb.

Do'stlaringiz bilan baham:
1   ...   56   57   58   59   60   61   62   63   64




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©www.hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish