8. Regulyar turlar. Vektorlar
8.1. Quyidagi e'lonlar berilgan:
type kun = (kecha, bugun, erta);
vector = array [1..30] of real;
var a: vector;
b: array [-2..2] of (x,y,z);
c: array [’0’..’9’] of vector;
d: array [kun] of 0..23;
Har bir a,b,c va d vektorlar uchun aniqlansin:
a) unda nechta element bor;
b) uning elementlari qanday qiymatlar qabul qilishi mumkin;
v) uning birinchi va oxirgi elementlariga qanday murojaat qilish mumkin.
8.2. Elementlari natural sonlardan, indeksi esa ixtiyoriy belgilardan iborat bo'lgan, vektorlarni o'zida birlashtirgan r regulyar tur e'lon qilinsin.
8.3. Quyidagi savollarga javob berilsin:
a) vektor bitta elementdan iborat bo'lishi mumkinmi? Hech qanaqa elementni o'z ichiga olmasligi mumkinmi?
b) programma ishlayotgan paytda vektor o'lchamini o'zgartirish mumkinmi (undagi elementlar sonini)?
v) biror bir vektor elementlari 1, 1.41, 1.73 va 2 sonlar bo'lishi mumkinmi?
g) vektor elementlarining turi ixtiyoriy bo'lishi mumkinligi to'g'rimi?
d) vektor indeksining turi integer yoki real turida bo'lishi mumkinmi?
8.4. Quyida keltirilgan e'londagi xatolar ko'rsatilsin:
const n = 50;
type suz = array [0..n-1] of harf;
harf = ’a’..’z’;
vector = array [real] of integer;
raqam = array [true..false] of (1,2,3,4);
var k: 1..maxint;
x: array [1..k] of char;
y: array [-n..n] of 0..0;
z: array [(a,b,c)] of boolean;
8.5. const n=41;
var x: array [1..n] of real; y: real;
Yuqoridagi e'londan foydalanib, quyidagi ifodalarni hisoblaydigan programma tuzilsin:
a) ;
b) y=
v) y= x1 - x2 + x3 - ... - xn-1 +xn;
g) y= x1·xn - x2·xn-1+ ... +xn·x1 ;
d) y= x12 + x32+ x52 + ... +xn2;
e) y= xn(xn+xn-1)(xn+xn-1+xn-2)...(xn+...+x1);
8.6. const m=50;
var S: array [0..m] of char;
V: array [0..m] of boolean;
Berilgan S vektordan V vektor quyidagi shart bo'yicha hosil qilinsin: agar S[i]- element raqam bo'lsa B[i] elementga true, aks holda false qiymat berilsin.
8.7. type nom = (Anvar,Akmal, Jahonbek, Qobil, Muhammad,
Nigora, Saidbek, Sanobar, Farhod, Shuxrat);
var jins: array [nom] of (erkak, ayol);
buy: array [nom] of 140..200;
u: nom; ub: real;
Berilgan jins va buy vektorlar bo'yicha:
a) u – eng uzun erkakning ismi aniqlansin;
b) ub – ayollar bo'ylarining o'rtacha uzunligi aniqlansin.
8.8. type matn = array [1..72] of char;
shifr = array [char] of char;
var t: matn; k: shifr;
Berilgan t matndagi har bir belgi k vektordagi, indeksi shu belgi bilan mos keluvchi element qiymatiga almashtirish yo'li bilan shifrlansin.
8.9. type hafta_kuni=(yaksh, dush, sesh, chor, paysh, juma, shanba);
var yil: array [1..365] of haft_kuni;
Agar 1 yanvar–chorshanba bo'lsa (yil[1]:= chor, yil[2]:= paysh va hokazo), yil[i]-ning har bir elementiga kabisa bo'lmagan yil hisobi bo'yicha i-chi kuniga mos keluvchi haftaning nomi topilsin.
8.10. type respublika = (Uzbekiston, Rossiya, Ukraina);
shahar = (Kiev, Moskva, Toshkent, Fargona, Odessa,
Sochi, Tomsk, Saratov, Omsk);
var x: array[1..20] of shahar;
Berilgan x vektor kattalikda eng ko'p uchraydigan shaharga mos keluvchi respublikaning nomi chop etilsin (bunaqa respublika bitta deb hisoblansin).
8.11. Paskal tilida vektor kattaliklar (yaxlit obyekt sifatida) qanday amallarni bajarishi mumkin va quyida berilgan programmadagi xatolar topilsin:
program hatolar;
var x,y: array [1..20] of real;
z,u: array [1..20] of real;
i: integer;
begin
read(x,y);
if x<>y then begin z:=x; x:=y; y:=z end else x:=x+y;
for i:= 1 to 20 do u[i]:= x[i]+y[i];
z:= u;
writeln(x)
end.
8.12. const n = 30;
type vector = array [1..n] of integer;
var a,b,c: vector;
Agar a va b vektorlar mos elementlari har xil bo'lsa, u holda c vektorga ularning yig'indisi berilsin, aks holda a vektorning elementlari c vektorga nusxalansin.
Do'stlaringiz bilan baham: |