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)
<operator – sikl 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.
Комментарии
Отправить комментарий