B. Boltayev-Respublika ta’lim markazi bosh metodisti, A. Azamatov- toshkent shahar 274-maktabning oliy toifali o‘qituvchisi



Download 216 Kb.
Sana13.11.2019
Hajmi216 Kb.
#25823
Bog'liq
B. Boltayev-Respublika ta’lim markazi bosh metodisti, A. Azamato

Umumiy o‘rta ta’lim maktab o‘quvchilarini

Dasturlash” bo‘yicha to‘garak mashg‘ulotlarida dastur tuzishga



tavsiya qilinadigan qiziqarli masalalardan namunalar
B.Boltayev-Respublika ta’lim markazi bosh metodisti,

A.Azamatov- Toshkent shahar 274-maktabning oliy toifali o‘qituvchisi

Mazkur maqolada mantiqiy fikrlashni o‘stirishga yo‘naltirilgan masalalarni yechish yo‘riqnomasi hamda ularning Turbo Pascal va Borland Delphi dasturlash tillariga mos dasturi keltirilgan.

Kalit so‘zlar: Paskal dasturlash tili, Delphi dasturlash tili, dastur.

Dasturlashga o‘rgatish yo‘nalishida maktab o‘quvchilarining qiziqishlarini oshirishda qo‘shimcha mashg‘ulotlarning o‘rni o‘ziga xosdir. Qo‘shimcha mashg‘ulotlarni sifatini ko‘tarish uchun kichik komandalar tuzib, ular o‘rtasida dasturlash bo‘yicha chempionatlarni tashkil etib borilishi o‘quvchilarni mashg‘ulotga bo‘lgan qiziqishlarini oshiradi. Shuningdek, komandalar o‘rtasida final turlarini tashkil etish mashg‘ulot samaradorligini oshiradi. Musobaqalarda o‘quvchilarni murakkab va uzun dastur tuzishga majbir etadigan masalalar emas, balki mantiqan fikrlashga yo‘naltirilgan qiziqarli masalalar berilishi maqsadga muvofiq bo‘ladi. Shu usul orqali o‘quvchilarda dastur tuzish mahoratini shakllanib borishiga erishiladi. Faol ishtirok etib yurgan va masalalarning original yechimlarini tavsiya etgan komandalar va o‘quvchilarni rag‘batlantirish ko‘zlangan maqsadga erishishga yordam beradi. Quyida qiziqarli misollar va ularni yechish usullarini keltiramiz.


Masala A. IJROCHI BAQA

Gorizontal to‘g‘ri chiziq o‘tkazamiz va unda bir xil masofada 1 dan n gacha tartiblangan ellipsli nishonlar joylashtiramiz (1-rasm). Ellipsli nishonlar suv ustida turgan nilufar barglarini bildiradi. Bu barglar ustida Ijrochi Baqa ovqatlanadi. Baqani bundan keyin B harfi bilan belgilaymiz.


Группа 85

Har kuni tongda nilufar barglari ustida bittadan pashsha o‘tirgan bo‘ladi. Baqa tongda ovqatlanish uchun uyidan a tartib raqamli barg ustiga tushadi. U 1 yoki 2 birlik oldinga (2-rasm) yoki 1 yoki 2 birlik orqaga (3-rasm) sakrashi mumkin. Baqa barglar ustida sakrab barcha pashshani yeb tugatishi kerak. Lekin barglar shunchalik nozikki, Baqa biror barg ustidagi pashshani yeb bo‘lgan zahoti barg cho‘ka boshlaydi. Sakrashlar natijasida Baqa b tartib raqamli bargni ustiga borishi kerak, undan uyiga chiqib keta oladi.



Группа 54

Группа 23

Baqani a tartib raqamli bargdan b tartib raqamli bargga o‘tishini ta’minlovchi dastur tuzing.

Izoh-1: Baqa masalasida boshlang‘ich qiymat: Baqa a tartib raqamli bargda joylashishi, natija Baqaning b tartib raqamli bargga kelishi ekan.

Izoh-2: Baqa masalasida INKOR holat (masala shartining buzilishi) buyruq Baqani cho‘kib ketgan bargga sakrashga majbur qilinganida yoki 1 dan kichik yoki n dan katta tartib raqamli bargga sakrashga majbur qilinganida ro‘y beradi.

Kiritiladigan qiymatlar: n, аvab (2 ≤ n ≤ 1000, 1 ≤ а, bn, ab).

Chiqariladigan qiymatlar: Probel bilan ajratilgan Baqa bajarishi kerak bo‘lgan sakrashlar ketma-ketligi. Agar yechim yo‘q bo‘lsa, u holda 0 raqami chiqariladi.

Misollar:

Kiritish qiymatlari

Chiqarish qiymatlari

5 2 4

-122-1

4 2 3

0


Yechish: Masalani yechishni qanday hollarda yechim yo‘qligini aniqlashdan boshlaymiz. Masala shartiga ko‘ra baqa bitta bargda bir marta bo‘lishi mumkin.

Agar bir vaqtda a>1, bva abs(a-b)=1 bo‘lsa masala yechimga ega bo‘lmaydi. Chunki Baqa a tartib raqamli bargga tushgach o‘ng yoki chap yo‘nalishda sakraydi. U orqaga qaytayotganda b tartib raqamli bargga tushishga majbur. Ya’ni, endi u b tartib raqamli bargga boshqa tusha olmaydi va uyiga qayta olmaydi.

Avval a (abs(a-b)≠1) bo‘lgan holni ko‘rib chiqamiz. Bunda, agar a>1 bo‘lsa, baqa a dan 1 gacha sakraydi. Shuni inobatga olish kerak-ki, agar a soni juft o‘rinda turgan bo‘lsa a dan 2 gacha 2 talab (ya’ni, sakrash -2) sakraydi. So‘ng baqa 1 bargga o‘tib olish uchun ‑1 sakrashni amalga oshiradi va hisob 1 dan boshlanadi. Agarda a toq bo‘lsa, a dan 1 gacha -2 talab sakraydi va 2-bargga o‘tib olish uchun 1 sakrashni amalga oshiradi, so‘ng hisob 2 dan boshlanadi.

Bu ikki holda ham (a+1) gacha 2 talab sakrash yetarli. (a+1)-bargdan (b‑1)‑barggacha amalga oshirish kerak bo‘lgan qadamlar quyidagiformula orqali ifodalanadi: (b-1)-(a+1). Bu formula musbat qiymatga ega bo‘lganda (b-1)-barggacha necha marta 1 talab sakrash kerakligini ko‘rsatadi. Shundan so‘ng (b+1)-bargga o‘tish uchun bir marta 2 talab sakraladi.



Endi hisobning bu qismi n-(b+1) ifodaning juft yoki toqligiga bog‘liq. Agar ifodaning qiymati juft bo‘lsa, (b+1)-bargdan n barggacha 2 talab, keyin va -1 sakrash qilib hisob (n-1)-bargdan boshlanadi. Agar n-(b+1) ifodaning qiymati toq bo‘lsa, (b+1) bargdan (n-1) barggacha 2 talab sakraladi va 1 sakrash qilib hisob n-bargdan boshlanadi.Ikkala holda ham, ya’ni hisob (n-1) yoki n dan boshlangan hollarning har ikkisida ham b gacha -2 talab sakraladi.

Agar a=1, bn bo‘lsa, a bargdan (b-1) barggacha 1 talab, so‘ng bir marta 2 talab sakrashni amalga oshirib, yuqorida keltirilgan hisob (b+1) dan boshlangan holatni tatbiq etiladi.

Agar a1, b=n bo‘lsa, (a-1) dan 1 gacha va 1 dan (a+1) gacha bo‘lgan sakrashlar yuqorida tafsiflangan edi. Endi (a+1)dan b gacha 1 talab sakraladi.

Biz yuqorida a>bholni ko‘rib chiqdik. Agarda b>a bo‘lsa, u holda a va b ning qiymati almashtiriladi. Endi yuqorida olingan natijalarni teskari ishora bilan olish yetarli. Masalan, (-1 2 2 1) javobni(1 -2 -2 -1) kabi almashtiriladi.



Dasturi:

program Baqa;

label 1;

var a,b,c,d,e,f,g,h,i,j,k,l,n:integer;

Begin

readln(n);readln(a);readln(b);



if (a>1) and (b

if (a=1) or(b=n) then g:= b - a - 1;

if (a>1) and (b

if (a=1) and (b=n) then g:= b - a;

c:= (a - 1) div 2;d:= 1 - (a mod 2);

if a >= 2 then begin e:= a div 2; f:= a mod 2; end;

h:=(n-b+1) div 2;

if (n-b)>=2 then i:= (1-(n-b) mod 2);

j:= (n-b) div 2;k:= (n-b) mod 2;

for l:= 1 to c do write('-2');for l:= 1 to d do write('-1');

for l:= 1 to f do write('1');for l:= 1 to e do write('2');

for l:= 1 to g do write('1');for l:= 1 to h do write('2');

for l:= 1 to i do write('1');for l:= 1 to k do write('-1');

for l:= 1 to j do write('-2');

1: readln;

End.
Masala B. ARALASHTIRISH

Stol ustida ustma-ust taxlangan varaqlari soni 100 tadan oshmaydigan taxlam turibdi. Har bir varaqqa bitta lotin harfi yozilgan. Taxlamdagi varaqlar ustida quyidagicha aralashtirish jarayoni bajariladi:

a) yuqoridan quyiga qarab varaqlar birma-bir olinadi va birichap taxlamga, keyingisi o‘ng taxlamga o‘tkazilaveradi;

b) chap taxlam o‘ng taxlam ustiga joylashtiriladi.

Masalan:



G
















A

F
















C

E
















E

D




A










G

C




C




B




B

B




E




D




D

A




G




F




F

Aralashtirish jarayoni K marta amalga oshiriladi.



Kiritiladigan qiymatlar:k (1 ≤ k ≤ 100) natural son va belgilari soni 100 tadan oshmaydigan S satr.Satr bosh lotin harflaridan tashkil topgan. Satrning m-belgisi quyidan qaraganda m-varaqni ifodalaydi.

Chiqariladigan qiymatlar: k-marta aralashtirish jarayoni tugagandan keyin S satr ko‘rinishi.

Misollar:

Kiritish qiymatlari

Chiqarish qiymatlari

1

ABCDEFG

FDBGECA


Yechish: Bu masala k marta saralash orqali osongina hal etiladi.

Dasturi:

program aralashtirish;

var s1,s2,s:string; i,j,k:integer;

Begin


readln(s); readln(k);

for i:=1 to k do

BEGIN s1:='';s2:='';

for j:=length(s) downto 1 do

begins1:=s1+s[j]; If j>1 Then begin dec(j); s2:=s2+s[j]; end;end;

s:=s2+s1;

END;

writeln(s);



readln;

end.
Masala D. TURLI RAQAMLAR

O‘nli sanoq sistemasida N natural soni berilgan. Shu sonda qatnashgan turli raqamlar sonini, har bir raqamni qatnashishlar sonini aniqlovchi dastur tuzing.

Kiritiladigan qiymatlar:N (1 ≤ N ≤ 2147483647) natural son.

Chiqariladigan qiymatlar:har bir satrda bittadan raqam sonda qatnashishlar soni bilan tire yordamida ajratilgan, oxirgi satrda sonda qatnashgan turli raqamlar soni.

Misollar:

Kiritish qiymatlari

Chiqarish qiymatlari

1131313041

0-1

1-5

3-3

4-1

4

1000000000

0-9

1-1

2


Yechish: Sonni 10 ga bo‘lgandagi qoldiq sonning oxirgi raqamiga teng bo‘lishidan foydalanib har bir raqamni bittalab “kesib” olishimiz mumkin. Sondan oxirgi raqamni “o‘chirish” uchun 10 ga butun bo‘lishdan foydalanamiz.

Har bir raqamga mos qo‘yish uchun tartib raqami 0 dan 9 gacha bo‘lgan 10 ta elementli yordamchi massiv kiritamiz. Kesib olingan raqamga mos indeksli element qiymatini bittaga oshiramiz. Endi turli raqamlar sonini aniqlash uchun massivning 0 dan farqli elementlari sonini sanash kifoya.



Dasturi:

Program Turli_raqamlar;

Var n :longint; i,k :byte;a: array [0..9] of byte;

BEGIN


readln(n);

for i:=0 to 9 doa[i]:=0;

while n<>0 dobegini:=n mod 10;Inc(a[i]);n:=n div 10;end;

k:=0;for i:=0 to 9 doif a[i]<>0then begin inc(k); writeln(i, '-', a[i]);end;

Write(k);

readln;


END.

Masala E. O‘XSHASH MASSIVLAR

Massivlar o‘xshash deyiladi, agar ularda bir xil sonlar ishtirok etgan bo‘lsa.Natural N va M sonlar, butun qiymatli A[1..N] va B[1..M] sonlar massivlari berilgan. Bu massivlarni o‘xshash yoki o‘xshash emasligini aniqlovchi dastur tuzing.



Kiritiladigan qiymatlar: Nva M(1 ≤ N, M ≤ 255) natural sonlar, A[1..N] va B[1..M] sonlar massivlari.

Chiqariladigan qiymatlar: massivlar o‘xshash bo‘lsa “1”, aks holda “0”.

Misollar:

Kiritish qiymatlari

Chiqarish qiymatlari

1

3

1

1

1

1

1

1

2

1

2

0

0



Yechish: 1-usul. Masalani A va B massivlar asosida hosil qilingan to‘plamlar yordamida hal etish mumkin.

2-usul. A massivning har bir elementi B massivda borligi va B massivning har bir elementi A massivda borligini tekshiramiz.



Dasturi:

Program usul_1;

Type Toplam = Set of Byte;

Var A, B: Toplam; k, N, M,Q: byte;

Begin A:=[]; B:=[]; {Bo`sh to`plamlar}

Write('N='); ReadLn(N); Write('M='); ReadLn(M);

Writeln(' A massiv elementlarini kiriting: ');

For k:=1 To N Do begin Write('A[',k,']='); ReadLn(Q);

A:= A + [Q]; end; {A to‘plamni hosil qilish}

Writeln(' B massiv elementlarini kiriting: ');

For k:=1 To M Do begin Write('B[',k,']='); ReadLn(Q);

B:= B + [Q]; end; {B to‘plamni hosil qilish}

IF A=B THEN Write(' 1 ') ELSE Write(' 0);

End.


Program usul_2;

Var A, B: array [1..255] of Integer; k, s, N, M,Q: byte; bor: Boolean;

Begin

Write('N='); ReadLn(N); Write('M='); ReadLn(M);



Writeln(' A massiv elementlarini kiriting: ');

For k:=1 To N Do begin Write('A[',k,']='); ReadLn(A[k]); end;

Writeln(' B massiv elementlarini kiriting: ');

For s:=1 To M Do begin Write('B[',s,']='); ReadLn(B[s]); end;

For k:=1 To N Do BEGIN Bor:=True; For s:=1 To M Do

IF A[k]=B[s] THEN Bor:=False;

IF Bor THEN begin Write(' 0'); Readln; Halt; end; END;

For s:=1 To M Do BEGIN Bor:=True; For k:=1 To N Do

IF B[s]=A[k] THEN Bor:=False;

IF Bor THEN begin Write(' 0'); Readln; Halt; end; END;

Write(' 1');Readln;

End.


Masala F. SO‘ZDAN SO‘Z YASASH

Berilgan A matn lotin harflari va probellardan iborat. Berilgan B va C so‘zlarni ikkalasini ham A matndagi harflarni o‘rnini almashtirmasdan faqatgina o‘chirish yordamida hosil qilish mumkin yoki mumkin emasligini aniqlovchi dastur tuzing.



Kiritiladigan qiymatlar: A, B va C satrlar.

Chiqariladigan qiymatlar: javob “Mumkin”, aks holda “Mumkin emas.

Misollar:

Kiritish qiymatlari

Chiqarish qiymatlari

hkloanxzbjsdjujskksa

jussa

kosa

Mumkin

hkloanxzbjsdjujskksa

hola

kosa

Mumkin emas


Yechish: A satr nusxasini AA satrda saqlaymiz.

B so‘zni 1-harfini A satrdan Pos(B[1], A) yordamida qidiramiz. Agar kerakli harf yo‘q bo‘lsa “Mumkin emas” javobini chiqarib dasturni yakunlaymiz. Kerakli harf A satrda K-o‘rinda joylashgan bo‘lsin. U holda B so‘zni 1-harfini va A satrni 1-belgisidan K-belgisigacha o‘chiramiz. Yana B so‘zni 1-harfini qidiramiz. Shu kabi davom ettirsak yoki “Mumkin emas” javobini chiqarib dasturni yakunlaymiz yoki B satr bo‘shaydi.

Xuddi shunday, C so‘z va AA satr bilan amallar bajaramiz.

Dasturi:

Program yasash;

Var A, AA, B, C :String; K: Byte;

Begin


Write('A matnni kiriting: '); ReadLn(A); AA:=A;

Write('B so`zni kiriting: '); ReadLn(B); Write('C so`zni kiriting: '); ReadLn(C);

While (B<>'') AND (Pos(B[1], A)>0) Do

begin K:=Pos(B[1], A); Delete(B, 1, 1); Delete(A, 1, K); end;

While (C<>'') AND (Pos(C[1], AA)>0) Do

begin K:=Pos(C[1], AA); Delete(C, 1, 1); Delete(AA, 1, K); end;

IF (B<>'') OR (C<>'') THEN WriteLn('Mumkin emas') ELSE WriteLn('Mumkin');

Readln;


End.
Adabiyotlar ro‘yxati

  1. B.Boltaev, M.Mahkamov, A.Azamatov. Informatikadan olimpiada masalalarini yechish. Metodik qo‘llanma. Toshkent, 2004 y.

  2. B.Boltayev, A.Azamatov. A.Asqarov, M.Sodiqov, G.Azamatova. Informatika va hisoblash texnikasi asoslari. 9-sinf uchun darslik. Toshkent, 2011 y.

  3. B.Boltayev, A.Azamatov, G.Azamatova, B.Xurramov. Paskal dasturlash tili. Toshkent, 2013 y.

  4. A.Azamatov, B.Xurramov. Informatika fanida Paskal dasturlash tili bo‘yicha berilgan misol va masalalarni yechish usullari. Fizika, matematika va informatika ilmiy-uslubiy jurnal, 2012 yil 6-son.

  5. A.Azamatov.Dasturlash bo‘yicha maktab o‘quvchilarining komanda chempionati. Sankt-Peterburg, 2007 y. Fizika, matematika va informatika ilmiy-uslubiy jurnal, 2008 yil 1-son.

Download 216 Kb.

Do'stlaringiz bilan baham:




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