LABORATORIYA MASHG’ULOTI. SIKL OPERATORLARI YORDAMIDA DASTURLAR TUZISH.

A) Repeat <sikl tanasi-operatorlar ketma-ketligi>   (2.1.a-ilova)

   Until <shart (   mantiqiy ifoda )>  ko’rinishdagi sikllar.

Bu erda  < operatorlar ketma-ketligi > bajarilishi lozim bo’lgan amallar yoki sikl tanasida joylashagan operatorlar majmui,  <shart> takrorlanishi, bajarilishi yoki to’xtatilishini boshqaruvchi shartdan iborat. Bu xil ko’rinishdagi sikl hech bo’lmaganda bir marotaba bajariladi, negaki operatorlar ketma-ketligi shartni tekshirishdan oldin yozilgan.

  1-Misol.

U=sin 0 + sin 0,1 + sin 0,2 + ... + sin 1

Dastur

Natija

Taqkoslash uchun

Procedure TForm1.Button1Click(Sender: TObject);

var x,y:real;

begin

   x:=0; y:=0;

   repeat

   y:=y+sin(x);

   x:=x+0.1;

   until (x>1);

   label1.Caption:=floattostr(y);

end;

 

end.


 

Mustahkamlash  uchun beriladigan mashqlar.

Vazifa:            A=1/2+2/3+3/4+...+9/10

II.While <mantiqiy ifoda (shart)> d o   (2.1 b-ilova)

     <operatorsikl tanasi>

ko’rinishdagi sikl operatori..

  Bu erda mantiqiy ifoda (shart) qiymati True bo’lguncha sikl tanasidagi operatorlar bajariladi.

 

Misol. Hisoblang. U=sin 0 + sin 0,1 +  ... + sin 1

 

Dastur natijasi

procedure TForm1.Button1Click(Sender: TObject);

var x,y:real;

begin

   x:=0; y:=0;

     while (x<=1) do

    begin

    y:=y+sin(x);

    x:=x+0.1;     label1.Caption:=label1.Caption+#9+floattostr(y)+#13;

    end;   end; end.

   

1-vazifa

2-vazifa.

Ifoda qiymatini hisoblovchi dastur tuzing.

Ifoda qiymatini hisoblovchi dastur tuzing.

u=x/2-x2/4+x3/8-x4/16+...-x10/1024;

 

y=1,1+1,01+1,001+...+1,000000001

 

YOrdam: (var k,a,x: Integer; y: real; begin     k:=-1; y:=0; a:=2;...

           While   a<=1024 do

  begin

           y:=(-1)*k*x/a; a:=2*a; k:=(-1)*k;

           end;  )

 

YOrdam:

         var x,y: real;

begin    y:=0; x:=0,1

          while  x>1E-9 do

  begin 

          y:=y+(1+x); x:=x*0,1;

      end;        

………

III.     Parametr orqali boshqariladigan sikllar.    (2.1.c-ilova)

Parametr  sikllar For <Sikl parametri>:=<parametr bosh qiymati> to <parametr oxirgi qiymati> do <operator> ko’rinishidagi sikl bo’lib, ayrim xollarda «to» o’rniga «downto» ham ishlatiladi. Sikl parametrining qiymati faqat butun sonlardan iborat va sikl qadami doimo birga teng.

Misol:

  Dastur:

procedure TForm1.Button1Click(Sender: TObject);

var i:char;  S:string;

begin

label1.Caption:='for ..to.. holatiga misol----->>>  ';

   for i:='A' to 'Z' do     s:=s+i;

  label1.Caption:=label1.Caption+s+#13;   s:='';

 label2.Caption:='for .. downto... holatiga misol----->>>  ';

   for i:='z' downto 'a' do    s:=s+i;

  label2.Caption:=label2.Caption+s+#13;  s:='';

 label3.Caption:='for .. downto... holatiga misol----->>>  ';

   for i:='ya' downto 'a' do   s:=s+i;

  label3.Caption:=label3.Caption+s+#13;

end;end.

Dasturning natijasi:

Qo’shimcha masalalar:

Masala.  Label, Memo va stringGrd komponentlarida, sikl operatorlari yordamida jadval ko’rinishdagi ma’lumotlarni aks ettiruvchi  va stringGrd javdvalida hosil bo’lgan  elementni tanlab u bilan amallar bajuruvchi dastur tuzing.(ijodiy yondoshgan holda)

Button1 tugmasi uchun yaratilgan prosedura

procedure TForm1.Button1Click(Sender: TObject);

var i,j: byte; y: word;

       begin

       label1.Caption:='';

             y:=0; for i:=1 to 10 do

              begin

              y:=y+5;

              for j:=0 to 15 do

              stringgrid1.Cells[i,j]:=inttostr(y*j);

              memo1.Lines.Append(inttostr(y)+''+ floattostr(sqrt(y)));

              label1.Caption:=label1.Caption+ inttostr(y)+' ';        end;       end;

Button2 tugmasi uchun yaratilgan prosedura

procedureTForm1.Button2Click(Sender: TObject);

var a:string;  col,row:word;

begin

a:=stringgrid1.Cells[stringgrid1.Col,stringgrid1.Row];

label2.Caption:= a;

end;end.

Natija:

3.Mustahkamlash uchun berladigan dastur va vazifalar.

procedure TForm1.FormCreate(Sender: TObject);

begin

  Edit1.text:='0';

  Edit2.text:='2';

  Edit3.text:='5';

  Edit4.text:='0,25';

  Memo1.Clear;

  Memo1.Lines.Add('Natija.');

end;

 

procedure TForm1.Button1Click(Sender: TObject);

 var x1,x2,x,h,a,s:extended;

     N,k,c:integer;

begin

    

     x1:=StrToFloat(Edit4.Text);

        Memo1.Lines.Add(' x1='+Edit1.Text);

     x2:=StrToFloat(Edit2.Text);

        Memo1.Lines.Add(' x2='+Edit2.Text);

     N:=StrToInt(Edit3.Text);

        Memo1.Lines.Add(' N='+Edit1.Text);

     h:=StrToFloat(Edit4.Text);

        Memo1.Lines.Add(' h='+Edit4.Text);

        c:=-1;    x:=x1;

  repeat

         a:=1;    S:=1;

      for k:=1 to N do

           begin

              a:=c*a*x/k;

              s:=s+a;

           end;

     Memo1.Lines.Add(' x='+FloatToStrF(x,ffFixed,6,2)+ '   yig’indi ='

                                   +FloatToStrF(s,ffFixed,6,2));

         x:=x+h;

  until x>x2;

end;

end.

Mustaqil ishlash uchun vazifalar.   (2.2-ilova)

 

Hisoblang

 

[a,b]-oralikda  funksiya qiymatini berilgan qadam bilann hisoblovchi dastur tuzing

1-a

1-b

y=

[-π/18;4π], h=15°

2-a

2-b

y=

[-9;9], h=0.2

3-a

3-b

y=

[-5;19], h=0.5

4-a

4-b

y=

[-9;9], h=0.2

5-a

5-b

y=cosx

[-π/18;4π], h=10°

 

6-a

6-b

y=

[-5;10], h=0.3

7-a

7-b

y=

[-9;9], h=0.2

8-a

8-b

y=

[-8;9], h=0.1

9-a

9-b

y=

[-1;9], h=0.4

10-a

10-b

y=

[-7;7], h=0.25

11-a

11-b

y=

[6,10], h=0.1

12-a

12-b

y=

[-9;9], h=0.01

13-a

13-b

y=

[1;9], h=0.25

14-a

14-b

y=

[9;15], h=0.2

15-a

1!+2!+3!+...+

15-b

y=

[-5;5], h=0.5

1-           N –butun son. k kattalikga shu sonni tashkil etuvchi raqamlar yig’indisini o’zlashtiring .

2-           N- natural son.Uning tub buluvchilari sonini aniqlang.

3-           N- natural son  berilgan .Uning raqamlari yig’indisini toping.

4-           N ta haqiqiy son berilgan.Ularni orta borish tartibida joylashtiring.

5-           Barcha uch xonali natural sonlardan raqamlari yig’indisi berilgan n (1<=n<=27) ga tenglarini chop eting.

6-           N- natural soni berilgan. Uning kvadrati tarkibiga  3 raqami kirishi yoki kirmasligini aniqlang.

7-           Ketma-ketlik quyidagi tartibda yaratilgan. 1,3,5,7,9,10,12,14,16,… ya’ni natural sonni tashkil etuvchi raqamlar yig’indisi toq bulsa, ketma-ketlik  tarkibiga kiritilgan. SHu ketma-ketlikdagi 10,15,2008 o’rindagi raqamlarni aniqlang.

8-           Berilgan n (n>10)  sonidagi, birinchi va oxirgi raqamlari o’rnini almashtirish  va  natijani chop etish dasturini tuzing.

9-           Berilgan  n (n>10) natural sonini  raqamlarini teskarisidan yozib, yangi son hosil qiling.

10-       aij (i=1,2,…,m;j=1,2,3,…,n) matrisa elementlari tasodufiy yaratilgan butun sonlardan iborat. Matrisa elementlarini Stringgrid jadvalida aks ettiruvchi dastur yarating.

11-       Kroneker simvoli quyidagicha aniqlanadi: matrisa elementlarini aniqlovchi indekslar o’zaro teng holda 1-ga, aksincha 0-ga teng. SHu elementdan foydalanib  E-birlik matrisasini yaratuvchi va uni tasvirlovchi dastur yarating. 

12-       aij va bij  (i=1,2,…,m;j=1,2,3,…,n) matrisalar elementlari tasodufiy yaratilgan butun sonlardan iborat bo’lsa, quyidagilarni yaratish va chop etish dasturini yarating. S=A; S=A+V; S=A-V; S=d*A;(d-butun son) S=A*B

13-       aij (i=1,2,…,m;j=1,2,3,…,n)   matrisa uchun  transponirlangan  matrisa yarating va har ikki matrisalar elementlarini ham chop etuvchi dastur  yarating.

 


Комментарии

Популярные сообщения из этого блога