1-misol: Elementlari harflardan tashkil topgan Y1,Y2,Y3 to‘plamlar asosida X/(Y1Y2)(Y1\Y2) to‘plam hosil qilinsin va YX ekanligi tekshirilsin.
Program T1;
Type T=set of char;
Var
Y1,Y2,Y3:T;
X:T;
C:char;
begin
Y1: =[‘a’, ‘b’, ‘a’, ‘r’, ‘m’];
Y2: =[‘r’, ‘a’, ‘b’, ‘a’];
Y3: =[‘a’, ‘r’];
X: =(Y1*Y2) +(Y1-Y2);
For c: =’a’ to ‘r’ do
If c in x then write (c);
If y3<=x then write(‘y3 in x’) else
write(‘y3 not in x’)
end.
2-misol: Nuqta bilan tugaydigan berilgan matnda a, e, s, h harflarining necha marta uchrashini aniqlovchi programma tuzilsin.
Program N1;
Var
c1: char;
k : integer;
begin read(c1);
k: =0;
while c <> ’.’ do begin
if c1 in [‘a’, ‘e’, ‘c’, ‘h’] then k: =k+1;
read(c1);
end;
writeln(k)
end.
Mustaqil bajarish uchun topshiriqlar:
var p : set of 0..9;
i,j : integer;
Quyidagi o'zlashtirish operatorlari bajarilganda, i=3 va j=5 bo'lganida p o'zgaruvchisi qanday qiymat qabul qiladi:
a) p:= [i+3, j div2, j..sqr(i)-3];
b) p:= [2*i..j];
v) p:=[i,j,2*i, 2*j]
type satr = array [1..100] of char; Berilgan s satrga kiruvchi ‘+’ , ’-‘ va ’*’ belgilarni va raqamlarning umumiy sonini hisoblovchi hisob(s) funksiyasi tuzilsin.
Qo'shimcha o'zgaruvchi ishlatmasdan A va B to'plam turidagi o'zgaruvchilar qiymatlari o'zaro almashtirilsin.
Yo'naltirilgan G grafning N uchidan K uchiga yo'l bor yoki yo'qligini aniqlovchi mantiqiy Yol (G,N,K,D) funksiyasi tuzilsin. Agar yo'llar mavjud bo'lsa, D parametrga bu yo'llarni eng qisqasining uzunligi berilsin (yoylar soni).
§3.18. Fayl turi
Shu paytgacha qaralgan hosilaviy turlarning muhim xususiyati shundan iboratki, ular oldindan berilgan chekli komponentalardan iborat ekanligidir. Bu esa programma bajarilmasdan oldin shu turdagi o‘zgaruvchilarning qiymatlari uchun mashina xotirasidan zarur hajmdagi joy ajratish imkonini berar edi. Ammo ma’lum bir sinf masalalari uchun oldindan komponentalar sonini aniqlash imkoni yo‘q, ular masalani yechish jarayonida aniqlanishi mumkin. Bu hollarda bir xil turdagi ixtiyoriy elementlar ketma-ketligidan iborat bo‘lib, ularning uzunligi oldindan noma’lum bo‘lib, hisoblash jaryonida aniqlanadigan turga zarurat tug‘iladi. Paskal tilida bu talabga javob beruvchi tur - fayl turi aniqlangan. Standart Paskalda faqat ketma-ket murojat qiluvchi fayllar qaraladi, ya’ni fayl bo‘yicha ketma-ket birinchi elementidan boshlab qaraladi. Masalan faylni 10 elementiga borish uchun undan avvalgi 9 ta elementini qarab chiqish kerak. Bunday fayllar ketma-ket fayllar yoki ketma-ket murojaat qilish usulidagi fayllar deyiladi. Ketma-ket faylda har bir urinishda faqat keyingi bitta elementga murojaat qilish mumkin. Agarda masalani yechish jarayonida faylning biror oldingi elementiga murojaat qilishga to‘g‘ri kelsa, u holda faylni boshiga qaytib birinchi elementdan boshlab ketma-ket harakatlanib kerakli elementga kelinadi.
Paskalda faylli tur quyidagi ko‘rinishda aniqlanadi:
::= file of < komponentani turi> yoki
packed file of
bu yerda file, of, packed - xizmatchi so‘zlar, - esa Paskaldagi fayl turidan yoki fayl turini o‘z ichiga oluvchi turdan farqli har qanday turning nomi yoki uning berilishi.
Odatda faylli tur ishlatishga turlar bo‘limida yoki o‘zgaruvchilar bo‘limida kiritiladi, masalan:
1) type letter = ‘a’. . ’z’;
var tekst: file of letter;
2) var tekst: file of ‘a’. . ’z’;
Fayllar - bu shunday vositaki, u yordamida programma tashqi dunyo bilan aloqa bog‘laydi.
Fayl turidagi o‘zgaruvchilar ustida hech qanday amal aniqlanmagan. Faylning komponentalari ustida esa komponentaning turiga mos amallar aniqlangan bo‘lishi mumkin.
Shuni ta’kidlash kerakki, Turbo-Paskal tilida programmaning tashqi muhit bilan aloqasi mantiqiy va fizik fayllar apparati orqali amalga oshiriladi.
Do'stlaringiz bilan baham: |