Добавил:
bekan
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Programmalıq támiynat sapasın támiyinlew / 5-ameliy_ST
.pdf
5-ámeliy. Operatorlar, cikllar, preprossorlar, kompilyatorǵa
baylanıslılıq. Programmanı durıs shólkemlestiriw.
Jumıstıń maqseti: C++ tiliniń sintaksislik konstrukciyaların tereń
úyreniw hám olardıń kompilyator menen baylanısın túsiniw. Basqarıw
strukturaların (if, switch, for, while) hám preprocessor direktivaların (#include,
#define, #ifdef) durıs qollanıw. Programmanıń modullik strukturasın (Header
hám Source fayllar) shólkemlestiriw hám shartli kompilyaciya (Conditional
Compilation) arqalı kodtı hár qıylı platformalarǵa beyimlestiriw.
Teoriyalıq bólim:
1. Basqarıw strukturaları:
Shártli operatorlar: `if-else`, `switch`.
Cikller: `for` (sanı belgili), `while` (shárt), `do-while` (keminde bir
ret).
2. Preprocessor: Kompilyaciyadan aldın kodtı ózgertiwshi qural.
`#include`: Fayldı qosıw.
`#define`: Makros.
`#ifdef`: Shártli kod qosıw.
3. Kompilyator: Kodtı (.cpp) mashina kodına (.obj) aylandıradı.
ÁMELIY BÓLIM:
Hár qıylı konstrukciyalardıń qollanılıwın kórip shıǵamız.
1-mısal: Cikllerdiń ayırmashılıǵı
Másele: 1 den 5 ke shekemgi sanlardı shıǵarıw.
Kod (for):
for (int i = 1; i <= 5; i++) cout << i;
Kod (while):
int i = 1;
while (i <= 5) { cout << i; i++; }
Kod (do-while):

int i = 1;
do { cout << i; i++; } while (i <= 5);
Túsindirme: `do-while` shárt jalǵan bolsa da 1 ret orınlanadı.
2-mısal: Switch-Case hám Break
Másele: Bahalar (A, B, C) boyınsha tekst shıǵarıw.
Kod:
char grade = 'B';
switch (grade) {
case 'A': cout << "Júdá jaqsı"; break;
case 'B': cout << "Jaqsı"; break;
// break bolmasa, keyingi case-ke ótip ketedi (Fall-through)
default: cout << "Belgisiz baha";
}
3-mısal: Preprocessor hám Shártli Kompilyaciya
Másele: Kodtıń Windows hám Linux-ta hár qıylı islewi.
Kod:
#include <iostream>
using namespace std;
// Makros
#define PI 3.14
int main() {

cout << "PI: " << PI << endl;
#ifdef _WIN32
cout << "Bul Windows";
#else
cout << "Bul Linux";
#endif
return 0;
}
Túsindirme: Kompilyator OS-qa qaray kerek emes kodtı óshirip taslaydı.
4-mısal: Header Guards (Qorǵawshı)
Másele: Bir fayldı eki ret qosıp qoyıwdıń aldın alıw.
Kod (math_utils.h):
#ifndef MATH_UTILS_H
#define MATH_UTILS_H
int add(int a, int b);
#endif
Túsindirme: `#ifndef` (eger anıqlanbaǵan bolsa) tekseriwi fayldıń tek bir ret
qosılıwın támiyinleydi.
5-mısal: Fayllıq struktura
Kodtı bóliw:

* `main.cpp`: Baslı programma.
* `functions.h`: Prototipler.
* `functions.cpp`: Anıqlamalar.
Kompilyaciya: `g++ main.cpp functions.cpp -o app`
ÁMELIY TAPSÍRMALAR
1-tapsırma: Cikller (Faktorial).
`while` cikli járdeminde `n!` (Faktorial) esaplaytuǵın programma jazıń.
2-tapsırma: Switch (Kalkulyator).
`char op` (+, -, *, /) qabıllap, `switch` arqalı esaplaytuǵın kalkulyator jazıń.
`break` umıtpań.
3-tapsırma: Preprocessor (Debug).
`#define DEBUG` direktivasın qollanıń.
Kod ishinde `#ifdef DEBUG` blogı bolsın, ol ózgeriwshilerdiń aralıq mánislerin
shıǵarsın. Reliz waqtında `#define` dı óshirip qoysańız, bul kod joǵaladı.
4-tapsırma: Header Guard.
Ózińizdiń `my_lib.h` faylıńızdı jaratıń hám oǵan `#ifndef`, `#define`, `#endif`
qorǵawshıların qoyıń.
5-tapsırma: Kompilyator qátesi.
Tómendegi kodta preprocessor qátesi bar. Onı tabıń hám dúzetiń.
#include <iostream>
#define MAX 10; // Qáte: noqatlı útir
int arr[MAX];
Соседние файлы в папке Programmalıq támiynat sapasın támiyinlew
