
Информатика: өз цифрлық көмекшімізді жасаймыз 22-сабақ (барлығы 26)
Шарттар және шекаралық жағдайлар
Шекарадағы шартты тексеріп, көмекші мерзімге дәл екі күн қалғанда үнсіз қалмауын қамтамасыз етеміз.
Картадағы орнымыз
Бұл бір жобаның үшінші бөлімі. 0.2 нұсқасының деректерін қолданамыз, бірақ әрекеттерді әзірге қағазда сипаттаймыз: Python жазбай тұрып қатені табуға болады.
Жағдай және сұрақ
Орындалмаған тапсырма мерзіміне екі күннен аспай қалған кезде еске салуға келістіңіз. Бірақ көмекші дәл екі күн қалғанда үндемей, мерзімнен кейін оятады. Қате бір салыстыру таңбасында. Оны болжаммен емес, кестемен табамыз.
Жаңа сөздерді анық түсінейік
Шарт — «иә» не «жоқ» жауабы бар сұрақ. Тармақталу жауапқа қарай әрекет таңдайды. Шекара — жауап ауысатын мән: мұнда 2 күн. Шекаралық жағдай 2-нің өзін және көршілес 1, 3 мәндерін тексереді. Логикалық мән — true не false; ЖӘНЕ екі бөліктің де орындалуын, НЕМЕСЕ кемінде біреуін талап етеді. Мерзімі өткен жағдай — бөлек күй, «тағы нөл күн» емес. Күнді бір күнтізбелік ережемен және бір уақыт белдеуімен салыстырамыз; олар келісілмесе, нәтиже өзгереді.
Сабақтың тірек сигналы
орындалмаған ЖӘНЕ 0 ≤ қалған_күн ≤ 2 → еске салу; өтіп кетсе → мерзімі өткен
Қадамдап талдаймыз
today = 2026-10-09 болсын; бір белдеудегі толық күнтізбелік күндерді санаймыз. 12 қазанға дейін 3 күн — еске салмаймыз; 11 қазанға 2 — саламыз; 10 қазанға 1 — саламыз; 9 қазанға 0 — бүгін саламыз; 8 қазанға −1 — бөлек «мерзімі өтті» хабарын береміз. done=true болса, бұл күндердің ешқайсысы еске салу туғызбайды. Бес жолдық кестеге done бағанын қосыңыз: бір күннің жауабы тапсырма күйіне де тәуелді.
Қолмен тексеру
Сан сәулесіне −1, 0, 1, 2, 3 нүктелерін белгілеңіз. Тек 0 мен 2 арасын, шеттерін қоса бояңыз. Суретті 0 ≤ days_to_due ≤ 2 шартына айналдырыңыз: шарттың әр бөлігі бір шекті қорғайды. Сол бөлігін алып, −1-ді; оң бөлігін алып, 3-ті тексеріңіз. Екеуін қайта қосыңыз. Содан кейін 1 нүктесіне done=true карточкасын қойыңыз: еске салу жоқ. Жауапты өзгертетін екі бөлек себепті осылай көресіз.
Болжаңыз және тексеріңіз
days < 2 шарты дәл 2 күнде не береді? false: шекара қате шығарылды. days <= 2 шарты −1-де ше? true: өткен мерзім болашақпен шатасты. Төменгі 0 шекарасын және өткен мерзімге бөлек тармақ қосыңыз. Мерзім мүлде жоқ болса, салыстырмай, «мерзім берілмеген» деңіз.
Қатені табыңыз
«≤ орнына < жазсақ, небәрі бір күн ғана өзгереді». Сол бір күн «екі күннен аспайды» талабына кіреді. Түзетуді ыңғайлы бір мәнмен емес, үш көрші мәнмен тексереміз.
Жаңа жағдайға көшіру
Үйірме өтінішті 18:00-ге дейін қоса қабылдайды. 17:59, 18:00, 18:01 уақыттарын тексеріңіз. Уақыт белдеуін және 18:00:30 сәтінің мағынасын нақтылаңыз: әйтпесе талап екіұшты.
Жобаға енгізілетін өзгеріс
ALGORITHM-kz.md ішіне тексеру ретін жазыңыз: жазба табылды, мерзім бар, тапсырма орындалмаған, мерзім өтпеген, 0–2 күн қалған. −1, 0, 1, 2, 3 және done=true үшін тест кестесін қосыңыз. Тәжірибе қайталану үшін күн мен белдеуді көрсетіңіз.
Тапсырма және дәлел
days < 2 қатесін түзетіп, жоқ мерзім мен орындалған тапсырманы қоса кемінде жеті тест құрастырыңыз. Дәлел — кірістер, күтілген хабарлар және әр шекараның түсіндірмесі.
1, 7 және 30 күннен кейін қайталау
Ертең 2 неге кіреді, −1 неге кірмейді, түсіндіріңіз. Жеті күннен соң өзге ереженің шекарасын тексеріңіз. Бір айдан кейін тестті нақты күн өңдеу кодымен салыстырыңыз.
Пікірлер (0)
Пікір қалдыру үшін кіріңіз →
Әзірге пікір жоқ. Бірінші болыңыз.