Urganch davlat universiteti axborot texnologiyalari kafedrasi


program WallCrsh;     var



Download 13,56 Mb.
Pdf ko'rish
bet45/99
Sana31.12.2021
Hajmi13,56 Mb.
#262961
1   ...   41   42   43   44   45   46   47   48   ...   99
Bog'liq
akademik litsey kasb hunar kollejlarda informatika fanidan olimpiada masalalarini ishlash boyicha korsatmalar

program WallCrsh; 

  

var f:text; 

  a:


integer

  totShots,sum:



integer

  fZero,isZero,oddSum1:



boolean

  n,i,nTest,iTest:



longint

 



begin 

 assign(f,

'walltst.txt'

);reset(f); 

 readln(f,nTest); 

 

for iTest:=



to nTest do begin 



  read(f,n); 

  totShots:=

0

;sum:=


0

  fZero:=



false

; isZero:=

false

; addSum1:=



false

  read(f,a);i:=



1

  



if a=



then begin 



    fZero:=

true


; isZero:=

true


  

end 



  else inc(sum,a); 

  

while (ido begin 



    inc(i);read(f,a); 

    


if a=



then begin 



      if not isZero then begin 

        isZero:=

true


;oddSum1:=odd(sum); 

      


end

      inc(totShots,(sum+

1



div 



2

); 


      sum:=

0



     

end 

    else inc(sum,a); 

   


end

  

if a<>



then begin 

    if not fZero and isZero then inc(totShots, (sum+

1

-



ord(oddSum1)) 

div 

2

)  



    

else inc(totShots,(sum+

1



div 

2

); 



   

end

   


if iTest>



then write(

' '

); write(totShots); 



   

end

   


end

    


 

 

2.2. Simvollarni o‘qish va qayta ishlash  



2.2.1. Probellarni yo‘q qilish  

2.6-masala.  Matn  qatorida  ixtiryoriy  miqdordagi  probellar  bilan  ajratilgan  so‘zlar 

yozilgan.  So‘zlar orasida bittadan  probel qoldirib  va  oxirgi  so‘zdan  keyin  probel olib  tashlanib 

matn siqiladilar. Birinchi so‘z oldidagi probel saqlanadi. Siqilgan matnni boshqa faylga yozilgan. 

Agar qatorda probellar mavjud bo‘lsa, ularning barchasi nusxalanadi. 



Kirish: Despace.txt matnidagi qator uzunligi chegaralanmagan.  

Chiqish: Despace.sol matndagi qator  


Masala  tahlili  va  yechilishi.  Ushbu  oddiy  masalada  matnlarni  qayta  ishlashda 

yakunlovchi avtomatlar qanday qo‘llanilayotganligini qarab chiqamiz. 

Masala sharti bo‘yicha: 

  Birinchi so‘z oldidagi probellar boshqa matnga nusxalanadi; 

  Oxirgi  so‘zdan  tashqari  boshqa  har  bir  so‘zdan  keyin  probellar  seriyasidan  faqat 

bittasi chiqariladi. 

Ko‘rinib  turibdiki,  probelga  reaksiya  kiruvchi  qatorning  qaysi  qismiga  o‘qilgan  simvol 

joylashganligiga  bog‘liq  bo‘ladi,  qatorning  ushbu  qismlari  bo‘lib,  hech  bo‘lmaganda,  birinchi 

so‘zdan  oldingi  undan  keyingi  qismi  hisoblanishi  o‘zidan-o‘zi  ayon.  Bundan  tashqari  agar 

so‘zdan  keyin  probel  paydo  bo‘lsa,  uni  darxol  nusxalash  mumkin  emas.  –ushbu  so‘z  oxirgisi 

bo‘lishi  yoki  yo‘q  ekanligi  noma’lum.  Faqat  so‘z  paydo  bo‘lgandan  keyin  yangi  so‘z  paydo 

bo‘lishi bilanoq paydo bo‘ladigan probelni kiritamiz. Demak so‘z davom qilganida va probeldan 

keyin litera paydo bo‘lganida hamda so‘z birinchi so‘z bo‘lmaganida navbatdagi literaga turlicha 

munosabatda  bo‘lishi  kerak.  Birinchi  holatda  o‘qilgan  litera,  ikkinchi  holda  –  probel  va  litera 

chiqariladi.  Shunday  qilib  bizda qatorning  o‘rta  har  xil  qismi  mavjud  “birinchi  so‘zdan oldin”, 

“so‘z literaidan keyin” “probeldan keyin”. Ular holatlar deyiladi. Joriy holat bo‘yicha navbatdagi 

kiruvchi  simvolni  o‘qilganidan  keyin  matn  qaysi  holatga  o‘tishini  aniqlash  mumkin.  Masalan, 

“birinchi  so‘zdan  oldin”  holatidan  litera  “so‘z  literasidan  keyin”  holatiga  o‘tkazadi,  probel  esa 

shu  holatning  o‘zida qoldiriladi.  Joriy  holatga  va  o‘qilgan  simvollarga  bog‘liq  holda  holatning 

o’zgarishi o’tish deyiladi. 

Holatlar orasidagi o‘tishlarni tasvirlaymiz. Yuqorida ko‘rsatilgan holatlarni, mos holda, 0, 

1,  2  raqamlar  bilan  belgilaymiz.  Kiruvchi  qator  tugallanishida  paydo  bo‘ladigan  “matn  oxiri” 

holatini qo‘shamiz va uni 3 raqami bilan belgilaymiz. Ushbu holatda ish yakunlanadi. 

O‘tishlarni  diagrammasida  tasvirlaymiz.  Aylanalar  holatlarini,  simvollar  bilan 

belgilangan  strelkalar  esa  o‘tishlarni  bildiradi.  Strelka  bo‘yicha  o‘tish  faqat  shundagina  ro‘y 

berishi  mumkinki,  joriy  holat  bo‘lib  strelka  boshidagi  va  kirishda  uni  belgilovchi  simvol 

o‘qiladigan holat bo‘lsin. Probel farq qiluvchi simvollarni a harfi bilan belgilaymiz.matn oxirini 

eof  “simvoli”  bilan  belgilaymiz.  Ba’zi  o‘tishlarda  chiquvchi  matnga  simvollar  chiqariladi  – 

ularni qiyshiq, ”f” chiziqdan o‘ng tomonda ko‘rsatamiz; agar o‘tishda simvollar chiqarilmasa, “/” 

bo‘lmaydi (2.1-rasm). 

 

2.1- rasm. Probellar siqilganida holatlar diagrammasi. 



O‘tishlarni  esa  quyidagi  o‘tishlar  jadvalida  beramiz.  3  holatda  o‘tishlar  yo‘q,  shuning 

uchun jadvalda mavjud emas. 

2.1 – jadval. Holatlar orasidan o’tishlar. 

 

 



 


Download 13,56 Mb.

Do'stlaringiz bilan baham:
1   ...   41   42   43   44   45   46   47   48   ...   99




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish