
Информатика: өз цифрлық көмекшімізді жасаймыз 26-сабақ (барлығы 26)
Бақылау нүктесі: көмекші алгоритмдері қағазда
Көмекшінің қағаздағы 0.3 нұсқасын құрастырып, әдеттегі, шекаралық және тосын дерекпен тексереміз.
Картадағы орнымыз
Бұл бір жобаның үшінші бөлімі. 0.2 нұсқасының деректерін қолданамыз, бірақ әрекеттерді әзірге қағазда сипаттаймыз: Python жазбай тұрып қатені табуға болады.
Жағдай және сұрақ
Досыңыз тек ALGORITHM-kz.md және 0.2 нұсқасындағы үш тапсырманы алды. Ол еске салу қашан шығатынын және қанша тапсырма орындалғанын білгісі келеді. Бос мерзімнің мағынасын сізден сұрауға мәжбүр болса, алгоритм Python-ға көшуге дайын емес.
Жаңа сөздерді анық түсінейік
Сипаттама — кіріс, шығыс және қате туралы жазылған уәде. Тест жағдайы — нақты кіріс пен күтілген жауап. Регрессия — өзгерістен кейін ескі қатенің қайта шығуы. Үлгі нәтиже — орындалмай тұрып жазылған күтілген жауап. Қабылдау — бақыланатын өлшемге сүйеніп дайындықты шешу. Мұндағы 0.3 нұсқасы — қағазда тексерілген алгоритмдер; бағдарлама келесі бөлімде болады. 0.2 нұсқасындағы tasks.json үш ойдан шығарылған жазбаның көзі болып қалады; мерзімдер ескі форматқа жасырын қосылмай, бөлек тест карточкаларында беріледі.
Сабақтың тірек сигналы
келісім → трасса → шекара → инвариант → өзге адамның тексеруі → 0.3
Қадамдап талдаймыз
t-01 жазбасын барлық ережемен өткізіңіз. Тест карточкасы done=false, days_to_due=2 дейді: функция REMIND қайтарады. Бастапқы файлдағы t-02 үшін done=true; карточка 0 күн десе де жауап DONE. t-03 үшін мерзім карточкасы жоқ: NO_DATE. Бастапқы тізімдегі орындалғандар саны дәл 1. Содан кейін тек тест тізіміне id=t-02 қайталанған төртінші ойдан шығарылған жазбаны қосыңыз: бірегейлік тексерісі оны еске салудан бұрын тоқтатуы керек. Күтілген жауапқа лайықтап бастапқы үш жазбаны өзгертпеңіз.
Қолмен тексеру
Авторсыз шағын қорғау өткізіңіз. Серігіңіз cases.json файлын ашып, expected бағанын жауып, сіздің ережемен толтырады. Кейін үлгі жауаппен салыстырып, тек дұрыс жауап санын емес, алғашқы айырманы белгілейді. Файлда жоқ тағы бір жағдай ойлап табуды сұраңыз: мысалы, мерзімі өткен, бірақ орындалған тапсырма. Жауапты келісімнен шығару мүмкін болмаса, 24-сабақтағы тексеру ретін толықтырыңыз. Табылған айырма мен түзетуді жоба журналына сақтаңыз.
Болжаңыз және тексеріңіз
Жауап кестесін ашпай тұрып done=false үшін −1, 0, 1, 2, 3 күн нәтижесін жазыңыз: OVERDUE, REMIND, REMIND, REMIND, NOT_YET. done=true болса, бес нәтиже де DONE. Мерзім жоқ болса, NO_DATE; ал тапсырма дайын әрі мерзім жоқ болса, таңдалған келісім бойынша DONE.
Қатені табыңыз
«Үш бастапқы тапсырма ашылды, демек 0.3 дайын». Ашу 0.2 форматын ғана тексереді; тармақтарды, циклдің тоқтауын, қайталанған идентификаторды және өзге адамның түсінуін тексермейді. Бір сәтті экран орнына қарсы мысалдар мен түзетулерді көрсетіңіз.
Жаңа жағдайға көшіру
Үйірме күн орнына сағат қолданып, 48 сағат қалғанда қоса еске салады. Сызбаның қай бөлігі сақталады, қай талап қайта жазылады? Тәулік ішіндегі уақыт әртүрлі болса, екі күнтізбелік күн әрдайым дәл 48 сағат емес екенін түсіндіріңіз.
Жобаға енгізілетін өзгеріс
ALGORITHM-kz.md, трасса кестесі, ойдан шығарылған кірістері бар cases.json және бір түзету журналы тапсырылады. 0.3 нұсқасының README файлында қағаз алгоритмі әлі іске қосылмайтынын және хабар жібермейтінін жазыңыз. Басқа оқушы сізсіз сол күтілген жауаптарды табуы керек.
Тапсырма және дәлел
10 тармақты тексеріңіз: (1) мақсат пен кіріс; (2) шығыс пен қате; (3) бұрынғы/кейінгі күй; (4) қадам реті; (5) −1/0/1/2/3; (6) мерзім жоқ; (7) дайын тапсырма; (8) бос тізім және тоқтау; (9) қайталанған id пен инвариант; (10) 48 сағатқа тәуелсіз көшіру. Қазір 8/10, міндетті түрде 9 және 10, жеті күннен кейін жаңа мысалда 7/10 қажет. Қате тармақты түзетіп, ұқсас өзге есепте қайталаңыз.
1, 7 және 30 күннен кейін қайталау
Ертең функцияның бес жауабын жатқа айтыңыз. Жеті күннен соң бетті ашпай жаңа қабылдау тексерісін орындаңыз. Бір айдан кейін 0.3 уәделерін Python 1.0 нұсқасымен салыстырып, айырманы жариялауға дейін түзетіңіз.
Пікірлер (0)
Пікір қалдыру үшін кіріңіз →
Әзірге пікір жоқ. Бірінші болыңыз.