5.1 Проблеманы қою

Python-да тармақталған алгоритмдерді пайдаланып, есеп шығару үшін бастапқы проблеманы қалай қалыптастыруға болады?

   Жаңа білім

   Ойлан

  • "Есептің моделі" дегеніміз не?
  • Есептің моделін құру үшін қандай білім қажет деп ойлайсың?
  • Программа өңдеудің кіріктірілген ортасында есеп шығару қандай кезеңдерден тұруы мүмкін?

   Жаңа білім

-1-

Туындаған проблемаларды шешу адамның жан-жақты дамуы мен жалпы қоғамда өмір сүруі үшін маңызды. Әр адамның атқаратын қызметіне, өмір сүру жолына қарай оның алдында күнделікті өмірде әртүрлі проблемалар туындайды. Кездескен қиындықты сабырмен және ақылмен жеңе білу – адамның маңызды қасиеттерінің бірі.

Баланы азамат етіп тәрбиелеуде, болашақ өмірге дайындауда мектептегі пәндердің рөлі өте жоғары. Өмірдің барлық салаларын қамтитын бұл пәндер арқылы әр пәннің өзіне ғана тән есептері мен тапсырмалары ұсынылады. ұсынылады Осы тапсырмаларды шешу барысын-да адамның ақыл-ойы жетіліп, пайымдауы артады. Ақылой иесі ретінде қоғамда өмір сүруге бейімделіп, ой-өрісі қалыптасады.

-2-

Программалау ортасында берілген есептер негізінен белгілі бір оқиға немесе құбылысты компьютерде модельдеуден тұрады. Біз алдыңғы бөлімде Python программалау тілінде тармақталған алгоритмдерді пайдаланып, программалау жолдарымен таныстық. Программалауды жақсы меңгеру үшін, әрине, тек программалау тіліндегі операторлардың жұмысын білу жеткіліксіз. Ол үшін, біріншіден, қойылған есепті программалау тілінде шешу қадамдарымен таныс болу керек. Екіншіден, программалау барысында есептердің математикалық тұрғыдан тиімді алгоритмін құра білу керек. Программалау процесі белгілі бір оқиға немесе құбылыс-ты компьютерде модельдеуден тұрады. Тармақталу алгоритмі немесе жалпы программа құрастыру қандай кезеңдерден тұрады деген сұрақ туындайтыны анық (1-схема).

1-сұлба. Есептің программасын құрастыру кезеңдері

Жоғарыдағы кезеңдердің барлығы да берілген есептің программасын құру үшін өте маңызды. Солардың арасындағы ең маңыздыларының бірі – проблеманы қою кезеңі. Бұл кезең қаншалықты мұқият орындалса, берілген есептің программасының дұрыс шығатынына соншалықты сенімді боласың. Проблеманы қою кезеңінде келесі әрекет-тер орындалады:

1. Мәселені қою кезінде түпкі мақсат нақтыланады әрі проблеманы шешудің жалпы тәсілі таңдалады.

2. Берілген есептің шешімдері анықталады.

3. Қарастырылған объектінің жалпы қасиеттері зерттеледі, програмалау жүйесінің мүмкіндіктері талданады.

4. Есепті шығару үшін қандай кіріс деректері қолданылатыны анықталады.

5. Есепті шығару барысында «Қандай шектеулер бар?», «Программа бұл шектеулерден қалай өтуі керек?» деген сияқты сұрақтарға жауап беру керек

Енді есептің программасын құру кезеңдерін практикалық тұрғыдан пайдалану жолдарын қарастырайық.

Қанат, Самал мен Айнұрда үш қорап бар. Әр қорапта a, b, c оң бүтін сандарымен шарлар бар. Балалар қораптағы шарлардың санын теңестіре ала ма? Теңестіру мүмкін болса, онда қораптардағы неше шарды басқа қораптарға ауыстыру керек? Теңестіру мүмкін болмаса, онда экранға –1-ді шығар. Пернетақтадан a, b, c бүтін сандар ретімен енгізіледі.

Мысалы

Нәтиже

13    15    5

6

Проблеманы қою немесе бастапқы деректерді өңдеу

Тапсырма бойынша балаларда үш қорап бар. Қораптардың ішінде шар бар. Қораптағы шар саны әртүрлі болуы да, тең болуы да мүмкін. Пернетақтадан a, b, c бүтін сандар ретретімен енгізіледі.

Тапсырманы орындауда тармақталу алгоритмдерін, программалау тілінде шарт тексеру операторын қолдануымыз керек.

Тапсырманы орындау барысында төмендегі шарттар болуы мүмкін:

1) Шарларды қораптарға тең бөліп салу үшін үш қораптағы шарлардың қосындысы a + b + c %3 = 0 шарты орындалуы керек. Тапсырманы орындауда осыдан басқа шектеулер жоқ.

2) Егер жоғарыдағы шарт орындалса, онда артық шар салынған қораптан алып тастайтын шарлардың санын табу керек.

3) Есептің шартынан туындайтын төмендегі жағдайларды есепке алу керек:

а) Артық шарлар тек бір ғана қорапта бар. Қалған қораптағы шарларды осы қораптағы шарлардың есебінен толтыру керек.

ә) Артық шарлар екі қорапта да бар. Барлық қораптағы шарларды теңестіру үшін шар саны кем қорапқа қалған екі қораптан шар алып саламыз. Тапсырманың программалық коды 1-суретте берілген.

1-сурет. Программалық код

Практикалық жұмыс

Талдау

Практикалық жұмысқа берілген тапсырманың программалық кодына талдау жаса (1-сурет). Программаға a = 7, b = 20, c = 9 және a = 13, b = 11, c = 0 мәндерін қойып, қолмен тексер. Бұл мәндерді қабылдау барысындағы программаның әрбір қатарындағы командалар жұмысының нәтижесін қағазға жазып отыр. Алған нәтижелеріңді талдау барысында программада есепті шығаруға көмектескен қандай алгоритм идеясы жатыр? Анықта.

Тапсырма

 

                           1-тапсырма

Үш санның үлкенін табу алгоритмімен және программасымен таныссың. Ал берілген a, b, с бүтін сандарының арасынан екінші үлкенін қалай табуға болады? 1-схемадағы программа құрастыру кезеңдерін толық пайдаланып, тапсырманың программасын құр. Тапсырмадағы проблеманы қою кезеңін қалай жүзеге асырдың? Нәтижені экранға шығар.

Мысалы

Нәтиже

7    4    9

7

                              2-тапсырма

Көп қабатты үйде N этаж бар. Ол үйде бір ғана кіреберіс, әр қабатта 3 пәтерден бар. Лифт тек тақ санды қабаттарға ғана тоқтайды. Асқар К пәтерде тұрады. Асқар лифтіге кіріп, өзінің пәтерінің K нөмірін басқанда, лифт тоқтауы керек қабаттың нөмірін баспаға бер.

Мысалы

Нәтиже

6    11

5

   Сұрақтар

Үй тапсырмасы

Төрттаңбалы N саны берілген. Осы санның барлық цифрлары жұп сан немесе тақ сан екендігін анықта. Егер барлық цифры жұп болса, онда экранға 0, әйтпесе «тақ» жауап шықсын.

Мысалы

Нәтиже

4284

0

8412

1

  • Мәселені қою кезінде түпкі мақсат нақтыланады әрі мәселені шешу-дің жалпы тәсілі таңдалады.
  • Алгоритмін құрастыру
  • Мәселені қою кезінде түпкі мақсат нақтыланады әрі мәселені шешу-дің жалпы тәсілі таңдалады.
  • Берілген есептің шешімдері, шешімдер саны анықталады.
  • Математикалық моделін құрастыру
  • Ауызша ақпараттық моделін құрастыру
  • Программаны тестілеу мен қатесін түзету

Солардың арасындағы ең маңыздыларының бірі – 

Өтінемін күте тұрыңыз