22 - dars. 0‗zlashtirish va ma‘lumotlarni ekranga chiqarish operatorlari mavzusini takrorlash mavzusiga
M-l. Quyidagi ifodalarni o‗zlashtirish operatori yordamida yozing.
M-2. Chiqarish operatori natijasi qanday bo‗lishini aniqlang.
a)
a:=123.45; write(‗a=‗, a:2:l);
Ekranda: a=123.4
a soni xotiraga 123.45 kabi yoziladi. Chiqarish formati a:2:l da bu¬tun qism uchun 2—1-1=0 xona
(hammasi bo‗lib 2 xona kasr qismiga 1 xona, nuqta uchun 1 xona) ajratildi, lekin a sonnig butun qismi 3
xona- li, shu sababli butun qism uchun chiqarish formati inkor etilib butun qism to‗liq, kasr qismidan 1
xona chiqariladi.
b)
a:=123.45; write(‗a=‗, a:5:l);
Ekranda: a=123.4
Chiqarish formati a:5:l butun qism uchun 5—1—1=3 xona (hammasi bo‗lib 5 xona kasr qismiga 1 xona,
nuqta uchun 1 xona) ajratildi, a sonnig butun qismi ham 3 xonali bo‗lgani uchun chiqarish formati ish-
laydi, shunda kasr qismidan 1
xona chiqariladi
d)
a:= ‗2011‗; writeln(a:3, ‗ yil‗:3);
Ekranda: 2011 yil
Chiqarish formati a:3 ajratgan 3 ta beigi joyiga 4 ta belgili ‗2011 ‘, * yil‗:3 ajratgan 3 ta beigi joyiga 4 ta
belgili ‗ yil‘ sig‗maydi, sliming uchun ikkala chiqarish
formati ham bekor qilinadi
e)
a:= ‗2011‗; writeln(a:4, ‗ yil‗:5);
Ekranda: 2011 yil
Chiqarish formati a:4 ajratgan 4 ta beigi joyiga 4 ta belgili ‗2011‘, ‗ yil‗:5 ajratgan 5 ta beigi joyiga 4 ta
belgili ‗ yil‘ sig‗adi, shuning uchun ikkala chiqarish formati qabul qilinadi hamda ‗ yil‗:5 formatida ortib
qolgan 1 ta joyga probel chiqariladi.
M-3. Dasturdagi о‗zgaruvchilarning qiymati turiga mos bo'lishi uchun so'roq belgisi o‗miga
zaruriy
standart funksiyani yozing va ekranga chiqadigan natijani aniqlang.
a)
var a, b, c: integer;
begin a:=25; b:= ?(sqrt(a)); c:= ?(a/b);
writeln(a,1 , b, *c= c); end.
Ja,vob:
b,
с o‗zgaruvchilar turi integer (butun), demak ifodalaming natija¬si ham butun chiqishi kerak.
Lekin sqrt(a) va a/b natijalari doimo ha¬qiqiy, shuning uchun ifodalardagi ? belgilari o‗miga trunc yoki
round yozilishi kerak. Hisoblaymiz:
b=trunc(sqrt(25))=trunc(5.0)=5; c=trunc(25/5)=trunc(5.0)=5 (round ham shu natijalami beradi).
Ekranda:
25 5c= 5
b)
var x, y, z: word;
begin x:=?(?(-7.21)); y:= ?(sqrt(x*x));
izr= ?(x+y-100); write(z-x, y); end.
Javob:
x, y, z o‗zgaruvchilar turi word (manfiymas butun), demak ifodalaming natijasi ham manfiymas butun
chiqishi kerak. Demak, x ning ifodasidagi ? belgilaridan biri o‗miga natija manfiy bo‗lmasligi uchun abs
yoziladi, ikkinchi ? belgisi o‗miga natija butun bo‗lishi uchun trunc yoki round yoziladi: x=trunc(abs(—
7.21 ))=trunc(7.21 )=7 (trunc yoki
round yozilishi, abs va trunc o‗mi almashtirilishi bir xil natija beradi).
sqrt(x*x) natijasi doimo ha¬qiqiy, shuning uchun у o‗zgaruvchi ifodasidagi ? belgisi o‗miga trunc yoki
round yozilishi kerak: y:=trunc(sqrt(7*7))= =trunc(sqrt(49))=trunc(7.0)=7 (round
ham shu natijani
beradi). Oxirgi z o‗zgaruvchi ifodasida x+y- 100=7+7-100=14 100= -86 bo‗lgani uchun ? belgisi o‗miga
abs yozilishi shart: z=abs(-86) =86. Chiqarish ro‗yxatidagi ifodani hisoblaymiz: z-x=86-7=79
Ekranda:
797
Dostları ilə paylaş: