Скачиваний:
0
Добавлен:
20.09.2026
Размер:
218 Кб
Скачать
☆
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