• Yozilishi Vazifasi
  • S1,S2,...,SN
  • Copy(S,nl,n2)
  • Standart protseduralar Delete (S,nl,n2)
  • Insert(Sl ,S ,n)
  • Yangi mavzuni mustaxkamlash. 6-misol
  • O’tilgan mavzuni takrorlash




    Download 1,92 Mb.
    bet92/145
    Sana14.02.2024
    Hajmi1,92 Mb.
    #156614
    1   ...   88   89   90   91   92   93   94   95   ...   145
    Bog'liq
    1- dars. Mavzu Masalalarni kompyuterda yechish bosqichlari Dars

    O’tilgan mavzuni takrorlash.

    1.Shart bo'yicha takrorlash operatorlardan qaysilarini bilasiz?


    2.While operatorining ishlashini izohlang.
    3.Repeat operatorining ishlashini izohlang.
    4.Shart bo'yicha takrorlash operatorlarining parametrli takrorlash operatoridan farqi nimada?
    5.Takrorlash operatorlarini qo'llash qulay bo'lgan hollarga mos qilib tushuntiring.


    Paskalda belgili va satrli miqdorlar bilan ishlash uchun maxsus funksiya hamda protseduralar kiritilgan. Quyidagi jadvalda ularning ba'zilari keltirilgan.



    Yozilishi

    Vazifasi

    Standart funksiyalar

    Concat(Sl,S2,..,SN)

    S1,S2,...,SN satrli (belgili) o'zgaruvchilar (o'zgarmaslar)ni bir- birigaketma-ket ulaydi

    Length (S)

    S satrning uzunligini (belgilari sonini) aniqlaydi.

    Pos(b,S)

    S satr ichidan b so'zni izlaydi

    Copy(S,nl,n2)

    S satrning nl-belgisidan boshlab n2 tabelgining nusxasini oladi

    0rd(B)

    Bbelgining ASCII kodini aniqlab beradi

    Chr(a)

    ASCII kodi aga teng belgini aniqlaydi

    Standart protseduralar

    Delete (S,nl,n2)

    S satrning n1-belgisidan boshlab n2 tabelgisini olib tashlaydi

    Insert(Sl,S,n)

    S satrgan-o'rindan boshlab S1 satrni joylashtiradi

    Str(a,S)

    S satrli o'zgaruvchining qiymati asonning satr ko'rinishidagi ifodasigateng bo'ladi

    Val(S,a,c)

    a sonli o'zgaruvchining qiymati S satrli o'zgamvchining son ko'rinishidagi ifodasiga, с esa nolga teng bo'ladi (agar berilgan satrni son ko'rinishida ifodalab bo'lmasa, a ning qiymati nolgateng bo'ladi, с ning qiymati esa noldan farqli bo'ladi)



    Shuni ta'kidlash joizki, dasturda fimksiyalar qo'Uanilganda ularning qiymati biror o'zgaruvchiga o'zlashtiriladi, protseduralar ishlatilganda esa o'zlashtirish operatorisiz yoziladi.
    Endi sodda misollar ко'rib chiqiladi.
    a='Sog"lom tanda b='sog" aql.' bo'lsa, c:= Concat(a,b); operatori bajarilganda с ning qiymati
    'Sog'lom tanda sog" aql.' ga teng. Lekin c:= Concat(a,b); o'rniga c:=a+b; deb yozish ham kerakli natijani beradi.
    a=,informatika' bo'lsa, n:=Length(a); operatori bajarilganda n ning qiymati 11 ga teng bo'ladi.
    a=Pos(m', 'informatika'); operatori bajarilganda a ning qiymati 6 ga, a=Pos(ma', 'informatika'); operatori bajarilganda ham a ning qiymati 6 ga, a:=Pos('sn', 'sinf); operatori bajarilganda a ning qiymati 0 ga, a:=Pos(V, 'sinf); operatori bajarilganda esa, a ning qiymati 0 ga teng bo'ladi.
    a=Copy(informatika'=3,5); operatori bajarilsa, a ning qiymati 'forma' so'ziga teng bo'ladi.
    a:='A* bo'lsa, Ord(a) funksiyaning qiymati 65 ga teng bo'ladi. Chunki 'A' (lotin) harfming ASCII kodi 65. Ord funksiyasining argumenti o'zgarmas bo'lsa, u apostrof ichida yoziladi. Masalan, Ord('A').


    Endi ko'rib chiqilgan funksiya va protseduralarni amalda qo'llashga misollar keltiriladi:
    1-misol. Berilgan 'mustaqil','О'zbekiston', 'davlat' so'zlaridan 'O'zbekiston mustaqil davlat' iborasini hosil qiluvchi dastur tuzing.
    Yechish. Berilgan so'zlar dastur ishlashi davomida o'zgartirilmaydi. Shu sababli ular konstanta sifatida ifodalanadi.
    Program Suz_yasash;
    Const a='mustaqil'; b='Ovzbekiston'; c='davlat';
    Var d : String;
    Begin
    d:=Concat(b,a,c); WriteLn(d);
    End.
    2-misol. Kiritilgan so'zni teskarisiga o'girib beruvchi dastur tuzing. Masalan, 'ota' so'zidan 'ato' so'zi hosil bo'lishi kerak.
    Yechish. Kiritilgan so'zni a, hosil bo'ladigan so'zni b bilan belgilanadi. b ning qiymatini bo'sh satrga tenglanadi (b:= "). a ning uzunligi aniq­lanadi va uning chap tomonidan boshlab bittadan belgisini olib
    b ga chap tomondan birlashtirib boriladi.
    Program Teskari;
    Var a, b, belgi: String; i, len : Integer;
    Begin
    Write('Soz kiriting : '); ReadLn(a); Len:=Length(a); b:=";
    For i:=l To len Do begin
    belgi:=Copy(a,i,l); {a ning i-belgisining nusxasi olindi}
    b:=belgi+b; {a dan nusxasi olingan belgi b ning chap tomoniga qo'shildi}
    end;
    Write(b); readln;
    End.
    3-misol. Berilgan so'zda berilgan belgi bor yoki yo'qligini aniqlovchi dastur tuzing.
    Program Izlash;
    Var suz : String; belgi : Char;
    Begin
    Write('Suz kiriting : '); ReadLn(suz);
    Write('izlanayotgan belgini kiriting : ');
    ReadLn(belgi);
    If Pos(belgi,suz) >0 Then WriteLn('BOR') Else WriteLn('YOQ');
    End.
    Dastur bajarilgach kompyuter ekranida 'BOR' yoki ‘YOQ' so'zlaridan biri aks etadi.
    4-misol. 'saodat' va 'qadoq' so'zlaridan 'sadoqat' so'zini yasovchi dastur tuzing.
    Program Suz_yasash;
    Var a,b : String; Begin
    a:='saodat'; b:='qadoq';
    Delete(a,3,2); {a='saat' bo'ldi} Delete(b,l,2); {b='doq* bo'ldi}
    Insert(b,a,3); {a='sadoqat'} WriteLn(a);
    End.
    5-misol. Berilgan 'Buyuk shoir Alisher Navoiy', 'yilda tug'ilgan' jumlalari va 1441 sondan 'Buyuk shoir Alisher Navoiy 1441-yilda tug'ilgan' satrni hosil qiluvchi dastur tuzing.
    Program Alisher_Navoiy;
    Const a=' Alisher Navoiy '; b=' - yilda tug'ilgan'; c=1441; d='Buyuk shoir';
    Var yil, s : String; Begin
    Str(c, yil); {c=1441 dan yil='1441' hosil qilindi}
    s:=Concat(d,a,yil,b); WriteLn(s);
    End.


    Yangi mavzuni mustaxkamlash.
    6-misol. Berilgan butun sonning raqamlari yig'indisini hisoblovchi dastur tuzing.
    Program Raqamlar;
    Var son, raqam, len, i, c, natija : Integer; _son, _raqam : String; Begin Write('Butun son kiriting: '); ReadLn(son);
    Str(son,_son); len:=Length(_son); natija:=0; For i:=l to len Do begin
    raqam:=Copy(son, i, 1); Val(_raqam,raqam,c); natija:=natija+raqam; end; WriteLn(son, ' ning raqamlari yigvindisi=', natija);
    End.
    Ushbu dastur kiritilgan son 32767 dan katta bo'lsa noto'g'ri natija beradi. Buning sababini o'zingiz o'ylab ко'ring. Dasturga qanday o'zgartirish kiritilsa, 2147483647 gacha bo'lgan sonlarni ham qo'llash mumkin bo'lishi o'ylab ко'ring!
    Paskalda satrlar «massiv xususiyati»ga ega. Ya'ni satr — massiv deb, satrdagi belgilar esa massivning elementlari deb qaraladi. Masalan, s — satrli o'zgaruvchi bo'lsa, s[3] — shu satrning 3-belgisini bildiradi. Ya'ni, s:='kompyuter' bo'lsa, s[3]= 'm’
    7- misol. Berilgan satrdagi belgilarning ASCII kodlarini ekranga chiqaruvchi dastur tuzing.
    Program Kod;
    Var s, b : String; i, L, cod : Integer;
    Begin
    Write('Satr kiriting : '); ReadLn(s); L := Length(s); { kiritilgan satr uzunligi hisoblanib, L ga o'zlashtirildi }
    For i:=l to L Do WriteLn(Ord(s[i]));
    End.
    Satriarning «massiv xususiyati» orqali ko'pgina masalalarni hal etish qulay. Masalan, 6-misolni satriarning shu xususiyatidan foydalanib o'zingiz hal etib ko'ring.



    Download 1,92 Mb.
    1   ...   88   89   90   91   92   93   94   95   ...   145




    Download 1,92 Mb.