SHunday masalalar borki ularni matnlar ustida ish bajibgina hal etish mumkin. Masalan, fayldagi matnlar ichidan biror bir ism yoki familiyani izlash kerak yoki bir xil ma’lumotni boshqa bir ma’lumotga almashtirish kerak yoki ular ustida biror bir operatsiyalarni bajarish kerak bo‘lsin deylik. Dasturlashda bunday masalalarni echishda belgilar va qatorlardan foydalanishga to‘g‘ri keladi. Dasturlashda ularni ishlatishda belgi va qatorli tipdagi maxsus o‘zgaruvchilar yoki o‘zgarmaslardan foydalaniladi.
Har bir belgi son bilan kodlashtirilgan. Agar dasturda klaviaturada yo‘q belgini ekrandan kiritish kerak bo‘lsa, u holda CHR funksiyasidan foydalaniladi. Masalan, Ch:=CHR(218); operatorining bajarilishi natijasida Ch belgili o‘zgaruvchi `é` belgisini o‘zlashtiradi.
Quyidagi dastur 0 dan 128 gacha bo‘lgan belgilar kodirovkasi jadvalini ekranga chiqaradi. Bu kodlardan 7 sidan boshlab 13 gachasi xizmatchi, masalan 7 kodi bilan kiritilgagn belgi tovush signalini beradi, 13 kodi esa yangi qatorga o‘tish buyrug‘ini chaqiradi.
Var
ch: Char; {belgi}
Dec: Integer; {belgining o‘nlikdagi kodi}
i, j: Integer;
Begin
Dec:=0;
For i:=0 to 16 do
Begin
Dec:=i;
For j:=1 to 8 do {sakkizta qator }
Begin
If (Dec<7) Or (Dec>=14) Then
Write (Dec:4,’-‘,’ ‘,Chr(Dec):1,Chr(179))
Else {7 dan 14 gacha belgidan chiqmaydi}
Write (Dec:4,’- ‘,Chr(179));
Dec:=Dec+16;
End;
Writeln; {yangi qatorga o‘tish}
End;
End.
Quyidagi dastur matnlarni chiqarishni rasmiylatirish, ya’ni bezashda CHR funksiyasini ishlatadi.
Var
t1, tr, b1, br, g, v: Char;
i: Integer;
Begin
t1:=Chr(218); { yuqori chap burchak belgisi }
tr:=Chr(191); { yuqori o‘ng burchak belgisi }
b1:=Chr(192); { pastki chap burchak belgisi }
br:=Chr(217); { pastki o‘ng burchak belgisi }
g:=Chr(196); { gorizontal to‘g‘ri chiziq }
v:=Chr(179); { vertikal chiziq }
Write (t1);
For i:=1 to 32 do Write(g);
Writeln(tr);
Writeln (v, ’ Ramka chizish uchun CHR ’, v);
Writeln (v, ’funksiyasini ishlatishga misol’, v);
Write (b1);
For i:=1 to 32 do Write(g);
Writeln (br);
End.
Tovush signalini 7 kodi bilan ekran orqali kiritishni, masalan dasturda ma’lumotni kiritishda agar xatolik yuz berganda yoki nato‘g‘ri ma’lumot kiritilganda ishlatish mumkin. Quyidagi dastur parolni tekshiradi, agar parol nato‘g‘ri bo‘lsa Kompyuter dinamikasi tovush signalini beradi.
Label
Bye;
Var
Password: Integer;
Begin
Write (‘Parol’); Readln (Password);
If Password<>2015 then
Begin Writeln (Chr(7), ‘Parol nato‘g‘ri!’);
Goto Bye;
End;
Bye:
End.
4.Belgili massivlar
Ketma-ketlikdagi belgilarni qayta ishlash va saqlash uchun belgili massivlarni ishlatish mumkin. Masalan, dasturda klaviaturadan familiyalarni kiritish kerak bo‘lsin. Odatda bunday masalani echishda belgili massivga ketma-ketlikdagi belgilarni kiritish bilan amalga oshiriladi. Bunda kiritilgan belgilar qatori familiyadagi harflarning soniga teng olinadi. Agar Buf belgili massiv SIZE o‘lchamga ega bo‘lsa, u holda eng sodda usulda massiv elementlarini FOR operatori yordamida kiritish mumkin:
For i:=1 to SIZE do Read (Buf[i]);
Dasturda belgili massivni kiritishda ancha effektiv bo‘lgan EOLN (End Of Line) qurilgan funksiyasidan foydalanish mumkin. Bu funksiya agar massivga belgi kiritilgan bo‘lsa TRUE qiymatni qaytaradi. Agar birorta ham belgi kiritilmagan bo‘lsa funksiya klaviaturadan kiritishni kutadi.
Quyidagi dasturda belgili massiv elementlarini kiritishda EOLN funksiyasi ishlatilgan.
const
SIZE=30;
Var
Buf: Array[1..Size] of Char;
n: Integer; {kiritilgan qatorning real uzunligi}
Begin
Write (‘->’);
n:=0;
Repeat
If Not EOLN then Begin n:=n+1; Read (Buf[n]); End;
Until EOLN OR (n=Size);
Writeln (‘Kiritilgan qator uzunligi ‘, n, ‘belgilar.’);
End.
4.Qatorlar va ularni qayta ishlash funksiyalari
Paskal tilida ketma-ketlikda berilgan belgilar qator deyiladi. Qatorlar dastur boshida STRING so‘zi bilan e’lon qilinadi. Har qanday STRING tipidagi o‘zgaruvchi ketma-ketlikdagi belgilar uzunligi 255 tadan oshmagan belgili qiymatlarni qabul qiladi. Qatorli tipdagi o‘zgaruvchilar dastur boshida quyidagicha ko‘rsatilishi kerak:
Var
nom: STRING;
yoki
nom: STRING [uzunlik];
bu erda nom – qator tipdagi o‘zgaruvchi nomi.
Misollar:
Var
name: STRING [30];
Buff, RT: STRING;
Agar e’lon qilinganda o‘zgaruvchi uzunligi ko‘rsatilmasa, unda qator uzunligi 255 belgiga teng deb qabul qilinadi. Qatorli o‘zgarmas ochiluvchi va yopiluvchi kavichka ichida yoziladi. Masalan,
Parol:=’sekret’; yoki Parol:=’1997’;
STRING tipdagi o‘zgaruvchini boshqa bir STRING tipidagi o‘zgaruvchi bilan yoki qatorli o‘zgarmas bilan =, <, >, <=, >=, <> operatorlari yordamida taqqoslash mumkin.
Quyidagi dastur parol so‘raydi, agar parol to‘g‘ri kiritilgan bo‘lsa familiyani kiritish kerak bo‘ladi.
Var
Name: String[30];
Parol: String[6];
Begin
Write (‘Parol (6 belgi)?’);
Readln(Parol);
If Parol=’sekret’ then begin
Write (‘Sizning familiyangiz?’);
Readln(Name);
Writeln(Name, ‘, Sizga ruxsat berildi.’);
End
Else Writeln(‘Parolь nato‘g‘ri! Sizga ruxsat yo‘q!’);
End.
Demak bugun siz bilan dasturlar kodlari va algoritmlar ustida ishladik , siz biroz bo'lsaham biror nima o'rganib olgan bo'lishingiz kerak. Agar siz dasturlar kodlarini yaxshilab o'rganib olgan bo'lsangiz undanda yaxshi.
DOIMO BIZ BILAN BO'LING!!!
|