Лекция · 5.3

Алгоритмді программалау

Блок-сызбаны сызып бітірдік (өткен сабақ). Енді — ЕҢ КҮТІЛГЕН сәт: сызбаны НАҚТЫ КОДҚА айналдыру. Бірақ алдын ала бір сұраққа жауап берейік: сен «Run» батырмасын басқанда, компьютердің ІШІНДЕ НЕ болады? Python сенің қазақша сөздеріңді қалай «түсінеді»? Бұл сабақта Python-ның ІШКІ «асханасына» үңіліп, содан кейін толық бір нақты өмірлік есепті (банктегі салым) БАСЫНАН АЯҒЫНА дейін кодқа айналдырамыз.

Python режимдері

Python-ды екі түрлі «режимде» қолдануға болады: Интерактивтік режим — терезеге бір команда жазасың, БІРДЕН нәтиже көресің (>>> 2+2 → 4). Ыңғайлы, БІРАҚ жазған кодың САҚТАЛМАЙДЫ. Пакеттік (файлдық) режим — толық программаны ФАЙЛҒА жазасың (.py кеңейтімімен), сосын БІРАҚЛА іске қосасың. Барлық НАҚТЫ есептер осылай жазылады.

📓
Аналогия: интерактивтік режим — блокнотқа жылдам есеп жазу сияқты (жазып, көрдің, тастадың); пакеттік режим — сол есептердің реттелген, сақталған дәптері (қайта қарауға, түзетуге, ортаққа салуға болады).
Python-дың орындалу механизмі

Ал енді «Run» батырмасын басқанда НЕ болатынын көрейік — үш кезең:

1) Скриптегі барлық операторлар тізбектей ОҚЫЛАДЫ — Python сенің кодыңды жол-жолмен қарайды.

2) БАЙТ-КОДҚА компиляция — сенің қазақша/ағылшынша сөздерің (for, while, print) арнайы, компьютерге ЖАҚЫНЫРАҚ, операциялық жүйеге ТӘУЕЛСІЗ «аралық тілге» аударылады.

3) Виртуалды машина (PVM — Python Virtual Machine) орындайды — байт-кодтағы әрбір команданы циклмен алып, НАҚТЫ орындайды.

Анықтама
Python-ды орындау тізбегі: Бастапқы мәтін → Компилятор → Байт-код → Виртуалды машина (PVM) → Орындау.
🗣️
Аналогия: байт-код — халықаралық конференциядағы аудармашы сияқты: сен қазақша сөйлейсің (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 жыл».

Басты идея: есептің ӘРБІР ЖОЛЫ — блок-сызбаның ДӘЛ АЙНАСЫ. Жоспарлау неғұрлым дәл болса, кодтау соғұрлым ЖЕҢІЛ.

⚠️
Жиі қате: «тиынды алып тастау» логикасын түсінбей, int(x) деп ЖАЙ ҒАНА жазып қою — int(x) БҮТІН санды ғана қалдырады (123,4567 → 123), тиынды ЖОЙЫП ЖІБЕРЕДІ. Дұрысы — int(100×x)/100.
Идентификатор мен комментарий

Идентификатор — айнымалы, функция атауы. Ережелер: әріптен немесе астыңғы сызықтан (_) басталуы керек, ЦИФРДАН БАСТАЛМАЙДЫ, кілт сөздермен (for, while, if) сәйкес келмеуі керек.

Түсініктеме (комментарий) — # белгісінен кейін жазылатын, интерпретатор ЕСКЕРМЕЙТІН мәтін. Тек АДАМҒА арналған: кодтың неге дәл солай жазылғанын түсіндіреді.

🎯 ҰБТ байланысы
Алгоритмді программалау бойынша тексерілетін дағды.
1
Python-ның орындалу тізбегі: мәтін → байт-код → PVM.
2
int(x) пен int(100*x)/100 арасындағы айырманы дұрыс түсіну (дөңгелектеу дәлдігі).
3
Толық есепті шешу тізбегі: мәселе → формальдау → блок-сызба → код.
4
Идентификатор ережелерін білу (қандай атаулар ДҰРЫС, қандайлары ҚАТЕ).
Сабақ қорытындысы
  • Python интерпретацияланған тіл: код → байт-код → PVM арқылы орындалу.
  • Интерактивтік режим — тез тексеру, пакеттік режим — толық программа.
  • Жақсы жоспарланған алгоритм кодтауды жеңілдетеді: әр формула, әр шарт — блок-сызбадан ТІКЕЛЕЙ көшіріледі.
  • Дұрыс идентификатор атаулары мен пайдалы комментарийлер — сапалы кодтың белгісі.