Chiziqli, tarmoqlanuvchi va takrorlanuvchi dasturlar
Tanlash (Case) operatori.
Bu operator bir necha yo‘nalish bo‘yicha tarmoqlanishni ta’minlab beruvchi(tanlashni amalga oshiruvchi) operator hisoblanadi. Uning umumiy ko‘rinishi quyidagicha:
Case of else end;
Bu yerda Case, of, else va end paskalning xizmatchi so‘zlari; - sonli, belgili yoki matiqiy o‘zgaruvchi yoki ifoda; - tanlash indeksi-kalitiga mos qiymatlar.
Tanlash indeksi sifatida haqiqiy tipdan foydalanish mumkin emas va bu indeks tanlash holatlari ro’yxatidagi mos buyruqlni bajarilishini ta’minlaydi. Case operatoridan foydalanishni quyidagi misollarda ko‘rib chiqamiz:
1-misol. «Sadaf» kichik tadbirkorlik firmasi bir kecha kunduzda W kVt/soat elektr energiyasini sarflaydi. Bu firmaning 2011 yining kerakli oylari uchun elektr energiyasini sarflash miqdorini aniqlang(Tanlash indeksi sifatida butun tipdan foydalanish).
const yil=2011;
var W,R:real; j:word;
begin
writeln('Oyning tartib raqami ba bir kecha-kunduzdagi');
writeln('sarflanadigan energiya miqdorini kiriting!');
readln(j,W);
case j of
1,3,5,7,8,10,12: r:=31*W;
4,69,11: r:=30*w;
2: if (yil mod 4=0) then r:=29*W else r:=28*W;
else writeln('oy tartib raqami xato kiritilgan')
end;
if (j>0) and (j<13) then
begin
writeln (j, '-nchi oyda ', r:6:2,'kvt/s miqdorda');
writeln(' elektr energiyasi sarflangan');
end;
end.
Keltirilgan dasturning bir qismiga izoh keltiramiz:
case j of 1,3,5,7,8,10,12: r:=31*W; 4,69,11: r:=30*w; 2: if (yil mod 4=0) then r:=29*W else r:=28*W; else writeln('oy tartib raqami xato kiritilgan') end;