Алгоритмді программалау
Блок-сызбаны сызып бітірдік (өткен сабақ). Енді — ЕҢ КҮТІЛГЕН сәт: сызбаны НАҚТЫ КОДҚА айналдыру. Бірақ алдын ала бір сұраққа жауап берейік: сен «Run» батырмасын басқанда, компьютердің ІШІНДЕ НЕ болады? Python сенің қазақша сөздеріңді қалай «түсінеді»? Бұл сабақта Python-ның ІШКІ «асханасына» үңіліп, содан кейін толық бір нақты өмірлік есепті (банктегі салым) БАСЫНАН АЯҒЫНА дейін кодқа айналдырамыз.
Python-ды екі түрлі «режимде» қолдануға болады: Интерактивтік режим — терезеге бір команда жазасың, БІРДЕН нәтиже көресің (>>> 2+2 → 4). Ыңғайлы, БІРАҚ жазған кодың САҚТАЛМАЙДЫ. Пакеттік (файлдық) режим — толық программаны ФАЙЛҒА жазасың (.py кеңейтімімен), сосын БІРАҚЛА іске қосасың. Барлық НАҚТЫ есептер осылай жазылады.
Ал енді «Run» батырмасын басқанда НЕ болатынын көрейік — үш кезең:
1) Скриптегі барлық операторлар тізбектей ОҚЫЛАДЫ — Python сенің кодыңды жол-жолмен қарайды.
2) БАЙТ-КОДҚА компиляция — сенің қазақша/ағылшынша сөздерің (for, while, print) арнайы, компьютерге ЖАҚЫНЫРАҚ, операциялық жүйеге ТӘУЕЛСІЗ «аралық тілге» аударылады.
3) Виртуалды машина (PVM — Python Virtual Machine) орындайды — байт-кодтағы әрбір команданы циклмен алып, НАҚТЫ орындайды.
Python-ды орындау тізбегі: Бастапқы мәтін → Компилятор → Байт-код → Виртуалды машина (PVM) → Орындау.
Енді өткен екі сабақтағы ТОЛЫҚ процесті БІР есепте қайталайық — банктегі салым мысалы:
Мәселе: x теңге салым, жыл сайын p% өседі (тиын бөлшегі алынады). Салым y теңгеге жеткенше НЕШЕ ЖЫЛ керек?
Формальдау: жыл сайынғы формула: x = x + x×p/100. «Тиынды алып тастау»: 123,4567 теңгең болса, оны 123,45-ке дейін қысқарту керек. Мұны int(100×x)/100 арқылы жасаймыз: алдымен 100-ге көбейтіп (12345,67), int() арқылы бүтіндейміз (12345), сосын қайта 100-ге бөлеміз (123,45).
Неге WHILE? Қайталану саны (неше жыл керек) АЛДЫН АЛА БЕЛГІСІЗ — демек, шартты алдын ала тексеру циклі (while) қажет.
x = int(input("Салымның бастапқы сомасын енгіз: ")) p = int(input("Салымның пайызын енгіз: ")) y = int(input("Барлық соманы енгіз: ")) i = 0 while x < y: x *= 1 + p/100 x = int(100*x) / 100 i += 1 print("Сізге керектісі", i, "жыл")
Нәтиже: x=5000, p=15, y=15000 болса → «Сізге керектісі 8 жыл».
Басты идея: есептің ӘРБІР ЖОЛЫ — блок-сызбаның ДӘЛ АЙНАСЫ. Жоспарлау неғұрлым дәл болса, кодтау соғұрлым ЖЕҢІЛ.
Идентификатор — айнымалы, функция атауы. Ережелер: әріптен немесе астыңғы сызықтан (_) басталуы керек, ЦИФРДАН БАСТАЛМАЙДЫ, кілт сөздермен (for, while, if) сәйкес келмеуі керек.
Түсініктеме (комментарий) — # белгісінен кейін жазылатын, интерпретатор ЕСКЕРМЕЙТІН мәтін. Тек АДАМҒА арналған: кодтың неге дәл солай жазылғанын түсіндіреді.
- Python интерпретацияланған тіл: код → байт-код → PVM арқылы орындалу.
- Интерактивтік режим — тез тексеру, пакеттік режим — толық программа.
- Жақсы жоспарланған алгоритм кодтауды жеңілдетеді: әр формула, әр шарт — блок-сызбадан ТІКЕЛЕЙ көшіріледі.
- Дұрыс идентификатор атаулары мен пайдалы комментарийлер — сапалы кодтың белгісі.