h1("ТАҚЫРЫП 1. ЦИКЛДІК АЛГОРИТМДЕРДІ ПРОГРАММАЛАУ"),
p("Тапсырма: Берілген есептерді шығару алгоритмдерінің блок-схемасы мен программаларын құрыңдар."),
p("Нұсқалар: 1 – 5"),
// ── 1-нұсқа ──
h2("1-нұсқа"),
h3("Есеп 1: 2^n есептеу (pow-сыз)"),
label("Берілгені: n натурал саны. pow() қолданбай 2^n табу."),
...code(`#include
using namespace std;
int main() {
int n;
cout << "n енгізіңіз: ";
cin >> n;
long long res = 1;
for (int i = 0; i < n; i++) res *= 2;
cout << "2^" << n << " = " << res << endl;
return 0;
}`),
result("n=10 → 2^10 = 1024"),
divider(),
h3("Есеп 2: Қатардан a-дан үлкен бірінші санды табу"),
label("Берілгені: Нақты a. 1/1, 1/2, 1/3, ... қатарынан a-дан үлкен бірінші мүшені табу."),
...code(`#include
using namespace std;
int main() {
double a;
cout << "a енгізіңіз: ";
cin >> a;
int n = 1;
while (1.0 / n <= a) n++;
cout << "a-дан үлкен бірінші мүше: 1/" << n
<< " = " << 1.0/n << endl;
return 0;
}`),
result("a=0.2 → 1/4 = 0.25"),
divider(),
h3("Есеп 3: Шексіз қосынды S = 1 - 1/2 + 1/3 - ... (ε=10⁻⁷)"),
label("Берілгені: S = Σ(-1)^(n+1)/n = ln(2), дәлдік ε=10⁻⁷."),
...code(`#include
#include
using namespace std;
int main() {
double eps = 1e-7, sum = 0, term;
int n = 1;
do {
term = (n % 2 == 1 ? 1.0 : -1.0) / n;
sum += term;
n++;
} while (fabs(term) >= eps);
cout << "S = " << sum << endl; // ≈ 0.693147
cout << "ln(2) = " << log(2.0) << endl;
return 0;
}`),
result("S ≈ 0.693147 (ln(2))"),
// ── 2-нұсқа ──
pageBreak(),
h2("2-нұсқа"),
h3("Есеп 1: n! есептеу"),
label("Берілгені: n натурал саны. n! табу."),
...code(`#include
using namespace std;
int main() {
int n;
cout << "n енгізіңіз: ";
cin >> n;
long long fact = 1;
for (int i = 2; i <= n; i++) fact *= i;
cout << n << "! = " << fact << endl;
return 0;
}`),
result("n=7 → 7! = 5040"),
divider(),
h3("Есеп 2: 2^n > a·n² теңсіздігін қанағаттандыратын ең кіші n"),
label("Берілгені: Нақты a. 2^n > a·n² болатын ең кіші n табу."),
...code(`#include
#include
using namespace std;
int main() {
double a;
cout << "a енгізіңіз: ";
cin >> a;
int n = 1;
while (pow(2, n) <= a * n * n) n++;
cout << "Ең кіші n = " << n << endl;
cout << "2^n = " << pow(2,n) << " > a*n^2 = " << a*n*n << endl;
return 0;
}`),
result("a=1 → n=5 (2^5=32 > 1·25=25)"),
divider(),
h3("Есеп 3: Шексіз қосынды S = 1 + 1/2! + 1/3! + ... (ε=10⁻⁷)"),
label("Берілгені: S = Σ 1/n! = e, дәлдік ε=10⁻⁷."),
...code(`#include
#include
using namespace std;
int main() {
double eps = 1e-7, sum = 1.0, term = 1.0;
int n = 1;
do {
term /= n;
sum += term;
n++;
} while (term >= eps);
cout << "S = " << sum << endl; // ≈ e = 2.71828
cout << "e = " << exp(1.0) << endl;
return 0;
}`),
result("S ≈ 2.71828 (e сандарына тең)"),
// ── 3-нұсқа ──
pageBreak(),
h2("3-нұсқа"),
h3("Есеп 1: 1·3·5·...·(2n-1) — тақ сандар көбейтіндісі"),
label("Берілгені: n натурал. P = 1·3·5·...·(2n-1) табу."),
...code(`#include
using namespace std;
int main() {
int n;
cout << "n енгізіңіз: ";
cin >> n;
long long P = 1;
for (int i = 1; i <= 2*n-1; i += 2) P *= i;
cout << "P = " << P << endl;
return 0;
}`),
result("n=5 → 1·3·5·7·9 = 945"),
divider(),
h3("Есеп 2: S = x + x²/2 + x³/3 + ... + xⁿ/n"),
label("Берілгені: n натурал, нақты x. S = Σ xⁱ/i (i=1..n) табу."),
...code(`#include
#include
using namespace std;
int main() {
int n;
double x;
cout << "n және x енгізіңіз: ";
cin >> n >> x;
double S = 0, xpow = x;
for (int i = 1; i <= n; i++) {
S += xpow / i;
xpow *= x;
}
cout << "S = " << S << endl;
return 0;
}`),
result("n=5, x=0.5 → S ≈ 0.4581"),
divider(),
h3("Есеп 3: Шексіз қосынды S = x - x³/3! + x⁵/5! - ... = sin(x), ε=10⁻⁷"),
label("Берілгені: x. S = sin(x) Тейлор қатары арқылы."),
...code(`#include
#include
using namespace std;
int main() {
double x, eps = 1e-7;
cout << "x енгізіңіз (радиан): ";
cin >> x;
double sum = 0, term = x;
int n = 1;
while (fabs(term) >= eps) {
sum += term;
term *= -x*x / ((2*n)*(2*n+1));
n++;
}
cout << "S = " << sum << endl;
cout << "sin(x) = " << sin(x) << " (тексеру)" << endl;
return 0;
}`),
result("x=1.0 → S ≈ 0.841471 = sin(1)"),
// ── 4-нұсқа ──
pageBreak(),
h2("4-нұсқа"),
h3("Есеп 1: S = 1/1 + 1/2 + 1/3 + ... + 1/n"),
label("Берілгені: n натурал. S = Σ 1/i (i=1..n) табу."),
...code(`#include
using namespace std;
int main() {
int n;
cout << "n енгізіңіз: ";
cin >> n;
double S = 0;
for (int i = 1; i <= n; i++) S += 1.0 / i;
cout << "S = " << S << endl;
return 0;
}`),
result("n=10 → S ≈ 2.92897"),
divider(),
h3("Есеп 2: P = (1+x)(1+x²)(1+x³)...(1+xⁿ)"),
label("Берілгені: n натурал, нақты x. P = Π(1+xⁱ) i=1..n табу."),
...code(`#include
#include
using namespace std;
int main() {
int n;
double x;
cout << "n және x енгізіңіз: ";
cin >> n >> x;
double P = 1, xpow = x;
for (int i = 1; i <= n; i++) {
P *= (1 + xpow);
xpow *= x;
}
cout << "P = " << P << endl;
return 0;
}`),
result("n=4, x=0.5 → P ≈ 3.28125"),
divider(),
h3("Есеп 3: Шексіз қосынды S = 1 - x²/2! + x⁴/4! - ... = cos(x), ε=10⁻⁷"),
label("Берілгені: x. cos(x) Тейлор қатары арқылы есептеу."),
...code(`#include
#include
using namespace std;
int main() {
double x, eps = 1e-7;
cout << "x енгізіңіз (радиан): ";
cin >> x;
double sum = 0, term = 1.0;
int n = 1;
while (fabs(term) >= eps) {
sum += term;
term *= -x*x / ((2*n-1)*(2*n));
n++;
}
cout << "S = " << sum << endl;
cout << "cos(x) = " << cos(x) << " (тексеру)" << endl;
return 0;
}`),
result("x=1.0 → S ≈ 0.540302 = cos(1)"),
// ── 5-нұсқа ──
pageBreak(),
h2("5-нұсқа"),
h3("Есеп 1: S = 1² + 2² + 3² + ... + n²"),
label("Берілгені: n натурал. Квадраттардың қосындысын табу."),
...code(`#include
using namespace std;
int main() {
int n;
cout << "n енгізіңіз: ";
cin >> n;
long long S = 0;
for (int i = 1; i <= n; i++) S += (long long)i * i;
cout << "S = " << S << endl;
// Формуламен тексеру: n*(n+1)*(2n+1)/6
cout << "Формула: " << (long long)n*(n+1)*(2*n+1)/6 << endl;
return 0;
}`),
result("n=10 → S = 385"),
divider(),
h3("Есеп 2: P = sin(x)·sin(2x)·...·sin(nx)"),
label("Берілгені: n натурал, нақты x. Соңғы көбейтінді n рет қайталанады."),
...code(`#include
#include
using namespace std;
int main() {
int n;
double x;
cout << "n және x енгізіңіз: ";
cin >> n >> x;
double P = 1;
for (int i = 1; i <= n; i++) P *= sin(i * x);
cout << "P = " << P << endl;
return 0;
}`),
result("n=4, x=0.5 → P ≈ -0.002287"),
divider(),
h3("Есеп 3: Шексіз қосынды S = x - x²/2 + x³/3 - ... = ln(1+x), ε=10⁻⁷"),
label("Берілгені: |x|<1. ln(1+x) Тейлор қатары арқылы."),
...code(`#include
#include
using namespace std;
int main() {
double x, eps = 1e-7;
cout << "x енгізіңіз (|x|<1): ";
cin >> x;
double sum = 0, term = x, xpow = x;
int n = 1;
while (fabs(term) >= eps) {
sum += term;
xpow *= (-x);
n++;
term = xpow / n;
}
cout << "S = " << sum << endl;
cout << "ln(1+x) = " << log(1+x) << " (тексеру)" << endl;
return 0;
}`),
result("x=0.5 → S ≈ 0.405465 = ln(1.5)"),
];
// ════════════════════════════════════════════════════════════════════
// ТАҚЫРЫП 2 — ЖИЫМДАРДЫ ӨҢДЕУ (нұсқа 1–5)
// ════════════════════════════════════════════════════════════════════
const sec2 = [
pageBreak(),
h1("ТАҚЫРЫП 2. ЖИЫМДАРДЫ ӨҢДЕУ ЕСЕПТЕРІ"),
p("Тапсырма: Массивтер және матрицалармен жұмыс. Нұсқалар: 1 – 5"),
// ── 1-нұсқа ──
h2("1-нұсқа"),
h3("Есеп 1: Массивтің максималды элементін, нөмірін, санын табу"),
label("Берілгені: a = {7.2; 3.5; -1; 0; 3.3; 6.1; 7.2; -3.6; 5; 7.2}"),
...code(`#include
using namespace std;
int main() {
double a[] = {7.2, 3.5, -1, 0, 3.3, 6.1, 7.2, -3.6, 5, 7.2};
int n = 10;
double mx = a[0]; int idx = 0;
for (int i = 1; i < n; i++)
if (a[i] > mx) { mx = a[i]; idx = i; }
int cnt = 0;
for (int i = 0; i < n; i++)
if (a[i] == mx) cnt++;
cout << "Максимум = " << mx << ", нөмірі = " << idx+1
<< ", саны = " << cnt << endl;
return 0;
}`),
result("Максимум = 7.2, нөмірі = 1, саны = 3"),
divider(),
h3("Есеп 2: Матрицада тек нөлдерден тұратын бағана бар ма?"),
label("Берілгені: n×m өлшемді A матрицасы."),
...code(`#include
using namespace std;
int main() {
int n = 3, m = 3;
double A[3][3] = {{1,0,3},{0,0,2},{0,0,1}};
cout << "Матрица:" << endl;
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) cout << A[i][j] << " ";
cout << endl;
}
bool found = false;
for (int j = 0; j < m; j++) {
bool allZ = true;
for (int i = 0; i < n; i++)
if (A[i][j] != 0) { allZ = false; break; }
if (allZ) { cout << (j+1) << "-бағана нөлдік!" << endl; found=true; }
}
if (!found) cout << "Нөлдік бағана жоқ." << endl;
return 0;
}`),
result("2-бағана тек нөлдерден тұрады!"),
// ── 2-нұсқа ──
pageBreak(),
h2("2-нұсқа"),
h3("Есеп 1: Жұп, тақ, 5-ке еселі нөмірлі элементтер қосындылары"),
label("Берілгені: A = {1; 3; -2; 4.5; 9; 0.56; 7; 3; 9; 12.9; 32; 6.5; 7; 6.2; 8; 2; -4.5; 9.2; 4} (19 элемент)"),
...code(`#include
using namespace std;
int main() {
double A[] = {1,3,-2,4.5,9,0.56,7,3,9,12.9,32,6.5,7,6.2,8,2,-4.5,9.2,4};
int n = 19;
double P = 0, L = 0, Z = 0;
for (int i = 0; i < n; i++) {
if ((i+1) % 2 == 0) P += A[i]; // жұп нөмірлі (1-индекс)
if ((i+1) % 2 != 0) L += A[i]; // тақ нөмірлі
if ((i+1) % 5 == 0) Z += A[i]; // 5-ке еселі
}
cout << "P (жұп нөмірлі) = " << P << endl;
cout << "L (тақ нөмірлі) = " << L << endl;
cout << "Z (5-ке еселі) = " << Z << endl;
return 0;
}`),
result("P = 39.72, L = 28.06, Z = 9+32+(-4.5) = 36.5"),
divider(),
h3("Есеп 2: Матрицада өзара тең екі элемент бар ма?"),
label("Берілгені: n×m өлшемді A матрицасы."),
...code(`#include
using namespace std;
int main() {
int n = 3, m = 3;
double A[3][3] = {{1, 2, 3},{4, 2, 6},{7, 8, 9}};
bool found = false;
for (int i = 0; i < n && !found; i++)
for (int j = 0; j < m && !found; j++)
for (int ii = i; ii < n && !found; ii++)
for (int jj = (ii==i?j+1:0); jj < m && !found; jj++)
if (A[i][j] == A[ii][jj]) {
cout << "Тең элементтер: A[" << i+1 << "][" << j+1
<< "] = A[" << ii+1 << "][" << jj+1
<< "] = " << A[i][j] << endl;
found = true;
}
if (!found) cout << "Тең элементтер жоқ." << endl;
return 0;
}`),
result("A[1][2] = A[2][2] = 2 — тең элемент табылды"),
// ── 3-нұсқа ──
pageBreak(),
h2("3-нұсқа"),
h3("Есеп 1: Бірінші теріс элементтен кейінгілерін нөлмен алмастыру"),
label("Берілгені: B = {2.3; 4.4; 6.5; 1.6; 1; -7.1; 96.3; -3.4; 5.5; -6.6}"),
...code(`#include
using namespace std;
int main() {
double b[] = {2.3, 4.4, 6.5, 1.6, 1, -7.1, 96.3, -3.4, 5.5, -6.6};
int n = 10;
int firstNeg = -1;
for (int i = 0; i < n; i++)
if (b[i] < 0) { firstNeg = i; break; }
if (firstNeg >= 0)
for (int i = firstNeg + 1; i < n; i++) b[i] = 0;
cout << "Нәтиже: ";
for (int i = 0; i < n; i++) cout << b[i] << " ";
cout << endl;
return 0;
}`),
result("{2.3, 4.4, 6.5, 1.6, 1, -7.1, 0, 0, 0, 0}"),
divider(),
h3("Есеп 2: Матрицада теріс элементтерді 0-ге, оңдарды квадраттау"),
label("Берілгені: n×m өлшемді A матрицасы."),
...code(`#include
using namespace std;
int main() {
int n = 3, m = 3;
double A[3][3] = {{-1, 2, -3},{4, -5, 6},{-7, 8, 9}};
for (int i = 0; i < n; i++)
for (int j = 0; j < m; j++) {
if (A[i][j] < 0) A[i][j] = 0;
else A[i][j] *= A[i][j];
}
cout << "Нәтиже матрица:" << endl;
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) cout << A[i][j] << "\\t";
cout << endl;
}
return 0;
}`),
result("{{0,4,0},{16,0,36},{0,64,81}}"),
// ── 4-нұсқа ──
pageBreak(),
h2("4-нұсқа"),
h3("Есеп 1: Теріс (K) және оң (M) элементтер санын есептеу"),
label("Берілгені: A = {0; 1.22; -3; 4; 0.32; -6; 2; -1.75; 9; 0; 0.11; -4.5; 13; -2}"),
...code(`#include
using namespace std;
int main() {
double A[] = {0,1.22,-3,4,0.32,-6,2,-1.75,9,0,0.11,-4.5,13,-2};
int n = 14, K = 0, M = 0;
for (int i = 0; i < n; i++) {
if (A[i] < 0) K++;
else if (A[i] > 0) M++;
}
cout << "K (теріс) = " << K << endl;
cout << "M (оң) = " << M << endl;
return 0;
}`),
result("K = 5, M = 7"),
divider(),
h3("Есеп 2: Модулі максималды элементті нөлмен алмастыру"),
label("Берілгені: n×m өлшемді A матрицасы."),
...code(`#include
#include
using namespace std;
int main() {
int n = 3, m = 3;
double A[3][3] = {{1,-8,3},{4,5,-6},{7,2,9}};
double maxAbs = fabs(A[0][0]);
int ri = 0, rj = 0;
for (int i = 0; i < n; i++)
for (int j = 0; j < m; j++)
if (fabs(A[i][j]) > maxAbs) {
maxAbs = fabs(A[i][j]); ri = i; rj = j;
}
cout << "Максималды модуль элемент: A["
<< ri+1 << "][" << rj+1 << "] = " << A[ri][rj] << endl;
A[ri][rj] = 0;
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) cout << A[i][j] << "\\t";
cout << endl;
}
return 0;
}`),
result("A[3][3]=9 максималды, нөлмен алмастырылды"),
// ── 5-нұсқа ──
pageBreak(),
h2("5-нұсқа"),
h3("Есеп 1: Теріс компоненттерді квадратымен алмастыру"),
label("Берілгені: B = {3.6; -2.1; 7; 4.5; -4.6; -1; -0.75; 8; 11; 5; 3}"),
...code(`#include
using namespace std;
int main() {
double B[] = {3.6,-2.1,7,4.5,-4.6,-1,-0.75,8,11,5,3};
int n = 11;
for (int i = 0; i < n; i++)
if (B[i] < 0) B[i] = B[i] * B[i];
cout << "Нәтиже: ";
for (int i = 0; i < n; i++) cout << B[i] << " ";
cout << endl;
return 0;
}`),
result("{3.6, 4.41, 7, 4.5, 21.16, 1, 0.5625, 8, 11, 5, 3}"),
divider(),
h3("Есеп 2: Екі матрицаның тең екендігін тексеру"),
label("Берілгені: m×n өлшемді A және B матрицалары."),
...code(`#include
using namespace std;
int main() {
int m = 2, n = 3;
double A[2][3] = {{1,2,3},{4,5,6}};
double B[2][3] = {{1,2,3},{4,5,6}};
bool eq = true;
for (int i = 0; i < m && eq; i++)
for (int j = 0; j < n && eq; j++)
if (A[i][j] != B[i][j]) eq = false;
if (eq) {
cout << "A = B" << endl;
for (int i = 0; i < m; i++) {
for (int j = 0; j < n; j++) cout << A[i][j] << " ";
cout << endl;
}
} else {
cout << "A тең емес B" << endl;
}
return 0;
}`),
result("A = B (матрицалар тең болғандықтан, A матрицасы шығарылады)"),
];
// ════════════════════════════════════════════════════════════════════
// ТАҚЫРЫП 3 — СӨЗ ТІРКЕСТЕРІН ӨҢДЕУ (нұсқа 1–5)
// ════════════════════════════════════════════════════════════════════
const sec3 = [
pageBreak(),
h1("ТАҚЫРЫП 3. СӨЗ ТІРКЕСТЕРІН ӨҢДЕУ"),
p("Тапсырма: Жолдарды өңдеу алгоритмдері. Нұсқалар: 1 – 5"),
h2("1-нұсқа"),
h3("Есеп 1: L жұп болса — екілік сандарды өшіру"),
label("Тіркестің ұзындығы L жұп болса, барлық '0' және '1' цифрларын өшіру."),
...code(`#include
#include
using namespace std;
int main() {
string s;
cout << "Сөз тіркесін енгізіңіз: ";
getline(cin, s);
int L = s.length();
cout << "Ұзындық L = " << L << endl;
if (L % 2 == 0) {
string res = "";
for (char c : s)
if (c != '0' && c != '1') res += c;
cout << "Нәтиже: " << res << endl;
} else {
cout << "L тақ, өзгеріссіз: " << s << endl;
}
return 0;
}`),
result("\"abc1def0g\" (L=9, тақ) → өзгеріссіз; \"ab1cd0\" (L=6, жұп) → \"abcd\""),
divider(),
h3("Есеп 2: Ортадағы сөзді кері жазу"),
label("Тіркестің дәл ортасындағы сөзді анықтап, кері жазу."),
...code(`#include
#include
#include
using namespace std;
int main() {
string s;
cout << "Сөз тіркесін енгізіңіз: ";
getline(cin, s);
vector words;
string cur = "";
for (char c : s) {
if (c == ' ') { if (!cur.empty()) { words.push_back(cur); cur = ""; } }
else cur += c;
}
if (!cur.empty()) words.push_back(cur);
int mid = words.size() / 2;
string w = words[mid];
string rev(w.rbegin(), w.rend());
cout << "Ортадағы сөз: " << w << endl;
cout << "Кері: " << rev << endl;
return 0;
}`),
result("\"бір екі үш\" → ортадағы сөз: \"екі\" → кері: \"іке\""),
h2("2-нұсқа"),
h3("Есеп 1: L жұп болса бірінші сөзді, тақ болса соңғы сөзді өшіру"),
label("Тіркестің ұзындығын L анықтап, шартқа байланысты сөз өшіру."),
...code(`#include
#include
using namespace std;
int main() {
string s;
cout << "Тіркес енгізіңіз: ";
getline(cin, s);
int L = s.length();
if (L % 2 == 0) {
// Бірінші сөзді өшіру
size_t pos = s.find(' ');
s = (pos != string::npos) ? s.substr(pos + 1) : "";
cout << "Бірінші сөз өшірілді: " << s << endl;
} else {
// Соңғы сөзді өшіру
size_t pos = s.rfind(' ');
s = (pos != string::npos) ? s.substr(0, pos) : "";
cout << "Соңғы сөз өшірілді: " << s << endl;
}
return 0;
}`),
result("\"сәлем әлем\" (L=10, жұп) → \"әлем\"; \"бір екі үш\" (L=11, тақ) → \"бір екі\""),
divider(),
h3("Есеп 2: Тіркесте палиндром сөз бар ма?"),
label("Тіркестегі әрбір сөздің палиндром екенін тексеру."),
...code(`#include
#include
#include
using namespace std;
bool isPalin(const string& w) {
int n = w.size();
for (int i = 0; i < n/2; i++)
if (w[i] != w[n-1-i]) return false;
return true;
}
int main() {
string s;
cout << "Тіркес енгізіңіз: ";
getline(cin, s);
vector words;
string cur = "";
for (char c : s) {
if (c == ' ') { if (!cur.empty()) { words.push_back(cur); cur=""; } }
else cur += c;
}
if (!cur.empty()) words.push_back(cur);
bool found = false;
for (auto& w : words)
if (isPalin(w) && w.size() > 1) {
cout << "Палиндром сөз: " << w << endl;
found = true;
}
if (!found) cout << "Палиндром сөз жоқ." << endl;
return 0;
}`),
result("\"алма кәрке аба\" → палиндром сөз: \"аба\""),
h2("3-нұсқа"),
h3("Есеп 1: ДОС сөзіне кіретін символдар саны"),
label("Тіркесте 'D','O','S' (немесе д,о,с) символдарының жалпы санын анықтау."),
...code(`#include
#include
#include
using namespace std;
int main() {
string s;
cout << "Тіркес енгізіңіз: ";
getline(cin, s);
int cnt = 0;
for (char c : s) {
char u = toupper(c);
if (u == 'D' || u == 'O' || u == 'S') cnt++;
}
cout << "ДОС символдары саны: " << cnt << endl;
return 0;
}`),
result("\"DOS is good\" → D:1, O:2, S:1 → саны = 4"),
divider(),
h3("Есеп 2: L > 10 болса — соңғы сөзді өшіру"),
label("Ұзындық 10-нан артық болса, тіркестің соңғы сөзін өшіру."),
...code(`#include
#include
using namespace std;
int main() {
string s;
cout << "Тіркес енгізіңіз: ";
getline(cin, s);
cout << "Ұзындық L = " << s.length() << endl;
if ((int)s.length() > 10) {
size_t pos = s.rfind(' ');
s = (pos != string::npos) ? s.substr(0, pos) : "";
cout << "Соңғы сөз өшірілді: " << s << endl;
} else {
cout << "L <= 10, өзгеріссіз: " << s << endl;
}
return 0;
}`),
result("\"Бұл ұзын тіркес\" (L=16) → \"Бұл ұзын\""),
h2("4-нұсқа"),
h3("Есеп 1: Ортадағы символды (немесе екі символды) анықтау"),
label("L тақ болса — ортадағы 1 символ; жұп болса — 2 символ."),
...code(`#include
#include
using namespace std;
int main() {
string s;
cout << "Тіркес енгізіңіз: ";
getline(cin, s);
int L = s.length();
cout << "L = " << L << endl;
if (L % 2 != 0) {
cout << "Ортадағы символ: '" << s[L/2] << "'" << endl;
} else {
cout << "Ортадағы екі символ: '"
<< s[L/2-1] << "' және '" << s[L/2] << "'" << endl;
}
return 0;
}`),
result("\"abcde\" (L=5) → 'c'; \"abcd\" (L=4) → 'b' және 'c'"),
divider(),
h3("Есеп 2: Барлық '!' белгісін '?' белгісіне алмастыру"),
label("Тіркестегі леп белгілерін сұрақ белгісімен алмастыру."),
...code(`#include
#include
using namespace std;
int main() {
string s;
cout << "Тіркес енгізіңіз: ";
getline(cin, s);
int cnt = 0;
for (char& c : s)
if (c == '!') { c = '?'; cnt++; }
cout << "Нәтиже: " << s << endl;
cout << "Алмастырылған саны: " << cnt << endl;
return 0;
}`),
result("\"Сәлем! Қайырлы! Күн!\" → \"Сәлем? Қайырлы? Күн?\" (3 алмастырылды)"),
h2("5-нұсқа"),
h3("Есеп 1: Бос орынды астын сызу (_) белгісіне алмастыру"),
label("Тіркестегі барлық ' ' символдарын '_' символымен алмастыру."),
...code(`#include
#include
using namespace std;
int main() {
string s;
cout << "Тіркес енгізіңіз: ";
getline(cin, s);
for (char& c : s)
if (c == ' ') c = '_';
cout << "Нәтиже: " << s << endl;
return 0;
}`),
result("\"бір екі үш\" → \"бір_екі_үш\""),
divider(),
h3("Есеп 2: L > 10 болса — соңғы сөзді өшіру"),
label("3-нұсқа есеп 2 сияқты, бірақ 5-нұсқаның мазмұнымен."),
...code(`#include
#include
using namespace std;
int main() {
string s;
cout << "Тіркес енгізіңіз: ";
getline(cin, s);
int L = s.length();
cout << "L = " << L << endl;
if (L > 10) {
size_t pos = s.rfind(' ');
if (pos != string::npos) s = s.substr(0, pos);
cout << "Нәтиже: " << s << endl;
} else {
cout << "L <= 10, өзгеріссіз: " << s << endl;
}
return 0;
}`),
result("\"Қазақстан Республикасы\" (L=22) → \"Қазақстан\""),
];
// ════════════════════════════════════════════════════════════════════
// ТАҚЫРЫП 4 — ҚОЛДАНУШЫ ФУНКЦИЯЛАРЫ (нұсқа 1–5)
// ════════════════════════════════════════════════════════════════════
const sec4 = [
pageBreak(),
h1("ТАҚЫРЫП 4. ҚОЛДАНУШЫ ФУНКЦИЯЛАРЫН ҚҰРУ"),
p("Тапсырма: Функциялар жазып, негізгі программадан шақыру. Нұсқалар: 1 – 5"),
h2("1-нұсқа"),
h3("Есеп 1: f(a,b,c) = (2a−3b+sin(c))/(4+c) функциясы"),
label("f(3t,s,2.7) + f(2.2,t,s−t) есептеу."),
...code(`#include
#include
using namespace std;
double f(double a, double b, double c) {
return (2*a - 3*b + sin(c)) / (4 + c);
}
int main() {
double s, t;
cout << "s және t енгізіңіз: ";
cin >> s >> t;
double res = f(3*t, s, 2.7) + f(2.2, t, s-t);
cout << "Нәтиже = " << res << endl;
return 0;
}`),
result("s=1, t=2 → f(6,1,2.7)+f(2.2,2,-1) ≈ нәтиже шығарылады"),
divider(),
h3("Есеп 2: g(a,b) = (a²+b²)/(a²+5ab+b²+6) функциясы"),
label("g(2.4,s+t) + g(2t−1,s−t) есептеу."),
...code(`#include
#include
using namespace std;
double g(double a, double b) {
return (a*a + b*b) / (a*a + 5*a*b + b*b + 6);
}
int main() {
double s, t;
cout << "s және t енгізіңіз: ";
cin >> s >> t;
double res = g(2.4, s+t) + g(2*t-1, s-t);
cout << "Нәтиже = " << res << endl;
return 0;
}`),
result("s=1, t=2 → g(2.4,3)+g(3,−1) ≈ нәтиже"),
h2("2-нұсқа"),
h3("Есеп 1: min(a,b) функциясын пайдаланып күрделі өрнек"),
label("(min(a+c,a+b)+min(a−b,b−c))/(1−min(ab+c, 1.2)) есептеу."),
...code(`#include
#include
using namespace std;
int main() {
double a, b, c;
cout << "a, b, c енгізіңіз: ";
cin >> a >> b >> c;
double num = min(a+c, a+b) + min(a-b, b-c);
double den = 1 - min(a*b+c, 1.2);
if (den == 0) { cout << "Бөлінуші нөлге тең!" << endl; return 1; }
cout << "Нәтиже = " << num/den << endl;
return 0;
}`),
result("a=2, b=1, c=0.5 → нәтиже есептеліп шығарылады"),
divider(),
h3("Есеп 2: n..2n аралығында егіздер (айырмасы 2 жұп жай сандар) табу"),
label("Жай санды анықтайтын функция жазу."),
...code(`#include
using namespace std;
bool isPrime(int n) {
if (n < 2) return false;
for (int i = 2; i*i <= n; i++)
if (n % i == 0) return false;
return true;
}
int main() {
int n;
cout << "n енгізіңіз: ";
cin >> n;
cout << "Егіздер (" << n << ".." << 2*n << "):" << endl;
bool found = false;
for (int i = n; i <= 2*n-2; i++)
if (isPrime(i) && isPrime(i+2)) {
cout << "(" << i << ", " << i+2 << ")" << endl;
found = true;
}
if (!found) cout << "Егіздер жоқ." << endl;
return 0;
}`),
result("n=10 → (11,13), (17,19)"),
h2("3-нұсқа"),
h3("Есеп 1: max және min функцияларын пайдаланып f есептеу"),
label("min(b1..bm)>20 болса: max(a)+max(c); кері жағдайда: 2+(min(a))²"),
...code(`#include
#include
using namespace std;
double maxArr(double* a, int n) {
double m = a[0];
for (int i=1;im) m=a[i];
return m;
}
double minArr(double* a, int n) {
double m = a[0];
for (int i=1;i 20)
f = maxArr(a,na) + maxArr(c,nc);
else
f = 2 + minArr(a,na) * minArr(a,na);
cout << "f = " << f << endl;
return 0;
}`),
result("minB=22>20 → f = max(a)+max(c) = 9+30 = 39"),
divider(),
h3("Есеп 2: Екі натурал квадраттың қосындысы ретінде жазылатын сандар"),
label("1..n аралығынан a²+b² түрінде жазылатын сандарды табу."),
...code(`#include
#include
using namespace std;
bool isSumOfSquares(int n) {
for (int a = 1; a*a < n; a++) {
int rem = n - a*a;
int b = (int)sqrt(rem);
if (b >= 1 && b*b == rem) return true;
}
return false;
}
int main() {
int n;
cout << "n енгізіңіз: ";
cin >> n;
cout << "Екі квадрат қосындысы:" << endl;
for (int i = 2; i <= n; i++)
if (isSumOfSquares(i)) cout << i << " ";
cout << endl;
return 0;
}`),
result("n=20 → 2 5 8 10 13 17 18 20"),
h2("4-нұсқа"),
h3("Есеп 1: Жетібұрышты фигура периметрі"),
label("Төбелері (x1,y1)...(x7,y7) берілген жетібұрыш периметрін табу."),
...code(`#include
#include
using namespace std;
double dist(double x1, double y1, double x2, double y2) {
return sqrt((x2-x1)*(x2-x1)+(y2-y1)*(y2-y1));
}
int main() {
double x[] = {0,3,5,5,3,0,-1};
double y[] = {0,0,2,4,5,5,3};
int n = 7;
double P = 0;
for (int i = 0; i < n; i++)
P += dist(x[i],y[i],x[(i+1)%n],y[(i+1)%n]);
cout << "Периметр = " << P << endl;
return 0;
}`),
result("Берілген координаттар бойынша периметр есептеліп шығарылады"),
divider(),
h3("Есеп 2: Бесбұрыш ауданын табу (a,b,c,d параметрлері)"),
label("Тіктөртбұрыш + үшбұрыштан тұратын бесбұрыш ауданы."),
...code(`#include
using namespace std;
double pentagonArea(double a, double b, double c, double d) {
// Тіктөртбұрыш a×b + үшбұрыш (c×d)/2
return a * b + 0.5 * c * d;
}
int main() {
double a, b, c, d;
cout << "a, b, c, d енгізіңіз: ";
cin >> a >> b >> c >> d;
cout << "Бесбұрыш ауданы = " << pentagonArea(a,b,c,d) << endl;
return 0;
}`),
result("a=4, b=3, c=4, d=2 → S = 12+4 = 16"),
h2("5-нұсқа"),
h3("Есеп 1: Бір жолда бар символдарды екінші жолдан жою"),
label("Бірінші жолдағы символдар екінші жолда кездессе — оларды жою."),
...code(`#include
#include
using namespace std;
void removeChars(string& s, const string& pattern) {
string res = "";
for (char c : s)
if (pattern.find(c) == string::npos) res += c;
s = res;
}
int main() {
string s1, s2;
cout << "Бірінші жол: "; getline(cin, s1);
cout << "Екінші жол: "; getline(cin, s2);
removeChars(s2, s1);
cout << "Нәтиже: " << s2 << endl;
return 0;
}`),
result("s1=\"aeiou\", s2=\"hello world\" → \"hll wrld\""),
divider(),
h3("Есеп 2: Екі массивтің бірінші нөлін 0.5-ке алмастыру"),
label("A(10) және B(10) массивтерінің бірінші нөлдік элементін 0.5-ке алмастыру."),
...code(`#include
using namespace std;
void replaceFirstZero(double* arr, int n) {
for (int i = 0; i < n; i++)
if (arr[i] == 0) { arr[i] = 0.5; return; }
}
int main() {
double A[] = {1,2,0,4,5,6,7,8,9,10};
double B[] = {3,0,1,4,0,6,7,8,9,11};
replaceFirstZero(A, 10);
replaceFirstZero(B, 10);
cout << "A: "; for(int i=0;i<10;i++) cout<
#include
using namespace std;
int main() {
// Тест файлын жасау
ofstream out("numbers.txt");
out << "5 -3 8 -1 0 -7 4 -2 9 -6";
out.close();
ifstream in("numbers.txt");
int num, cnt = 0;
while (in >> num) if (num < 0) cnt++;
in.close();
cout << "Теріс сандар саны: " << cnt << endl;
return 0;
}`),
result("numbers.txt: {5,-3,8,-1,0,-7,4,-2,9,-6} → теріс саны = 5"),
divider(),
h3("Есеп 2: 6 символдан артық сөздерді жаңа файлға жазу"),
label("words.txt файлынан оқып, ұзын сөздерді long_words.txt-ке жазу."),
...code(`#include
#include
#include
using namespace std;
int main() {
ofstream out("words.txt");
out << "кітап программа ән мектеп университет ат";
out.close();
ifstream in("words.txt");
ofstream res("long_words.txt");
string w;
cout << "6 символдан артық сөздер:" << endl;
while (in >> w)
if ((int)w.length() > 6) {
cout << w << endl;
res << w << endl;
}
in.close(); res.close();
cout << "long_words.txt файлына жазылды." << endl;
return 0;
}`),
result("\"программа\" (9), \"университет\" (11) — long_words.txt-ке жазылды"),
h2("2-нұсқа"),
h3("Есеп 1: Сандардың арифметикалық ортасын файл соңына жазу"),
label("numbers.txt-тен оқып, орташа мәнді файл соңына қосу."),
...code(`#include
#include
using namespace std;
int main() {
ofstream out("nums2.txt");
out << "10 20 30 40 50"; out.close();
ifstream in("nums2.txt");
double sum=0; int cnt=0, n;
while (in >> n) { sum+=n; cnt++; }
in.close();
ofstream app("nums2.txt", ios::app);
double avg = sum / cnt;
app << " " << avg;
app.close();
cout << "Орташа мән = " << avg << " файлға қосылды." << endl;
return 0;
}`),
result("nums2.txt: \"10 20 30 40 50 30\" (орташа=30 соңына қосылды)"),
divider(),
h3("Есеп 2: Тіркестерді кері жазып жаңа файлға сақтау"),
label("input.txt-тен оқып, кері жазылған нұсқасын output.txt-ке сақтау."),
...code(`#include
#include
#include
#include
using namespace std;
int main() {
ofstream out("input2.txt");
out << "Сәлем дүние"; out.close();
ifstream in("input2.txt");
ofstream res("output2.txt");
string s;
getline(in, s);
reverse(s.begin(), s.end());
res << s;
cout << "Кері жазылған: " << s << endl;
in.close(); res.close();
return 0;
}`),
result("\"Сәлем дүние\" → кері жазылып output2.txt-ке сақталады"),
h2("3-нұсқа"),
h3("Есеп 1: Файлдан максимум элементін табу"),
label("numbers.txt-тен сандар оқып, ең үлкенін анықтау."),
...code(`#include
#include
#include
using namespace std;
int main() {
ofstream out("nums3.txt");
out << "15 3 42 7 28 9 1 66 4"; out.close();
ifstream in("nums3.txt");
int num, mx = INT_MIN;
while (in >> num) if (num > mx) mx = num;
in.close();
cout << "Максимум = " << mx << endl;
return 0;
}`),
result("{15,3,42,7,28,9,1,66,4} → Максимум = 66"),
divider(),
h3("Есеп 2: Бос орынды сызықшаға алмастырып жаңа файлға жазу"),
label("input.txt-тен оқып, ' ' орнына '-' жазып output.txt-ке сақтау."),
...code(`#include
#include
#include
using namespace std;
int main() {
ofstream out("str3.txt");
out << "бір екі үш төрт"; out.close();
ifstream in("str3.txt");
ofstream res("str3_out.txt");
string s; getline(in, s);
for (char& c : s) if (c == ' ') c = '-';
res << s;
cout << "Нәтиже: " << s << endl;
return 0;
}`),
result("\"бір екі үш төрт\" → \"бір-екі-үш-төрт\""),
h2("4-нұсқа"),
h3("Есеп 1: Файлдан минимум элементін табу"),
label("numbers.txt-тен сандар оқып, ең кішісін анықтау."),
...code(`#include
#include
#include
using namespace std;
int main() {
ofstream out("nums4.txt");
out << "15 3 42 7 28 9 1 66 4"; out.close();
ifstream in("nums4.txt");
int num, mn = INT_MAX;
while (in >> num) if (num < mn) mn = num;
in.close();
cout << "Минимум = " << mn << endl;
return 0;
}`),
result("{15,3,42,7,28,9,1,66,4} → Минимум = 1"),
divider(),
h3("Есеп 2: Файлдан екінші сөйлемді басқа файлға жазу"),
label("Бір файлда екі сөйлем. Екінші сөйлемді жаңа файлға жазу."),
...code(`#include
#include
#include
using namespace std;
int main() {
ofstream out("sentences.txt");
out << "Бірінші сөйлем.\\nЕкінші сөйлем."; out.close();
ifstream in("sentences.txt");
ofstream res("second.txt");
string line;
getline(in, line); // бірінші сөйлемді өткізіп жіберу
getline(in, line); // екінші сөйлем
res << line;
cout << "Екінші сөйлем: " << line << endl;
return 0;
}`),
result("\"Екінші сөйлем.\" → second.txt файлына жазылды"),
h2("5-нұсқа"),
h3("Есеп 1: Файлдан сандар оқып, көбейтіндісін табу"),
label("numbers.txt-тен сандар оқып, барлығының көбейтіндісін анықтау."),
...code(`#include
#include
using namespace std;
int main() {
ofstream out("nums5.txt");
out << "2 3 4 5"; out.close();
ifstream in("nums5.txt");
long long prod = 1; int num;
while (in >> num) prod *= num;
in.close();
cout << "Көбейтінді = " << prod << endl;
return 0;
}`),
result("{2,3,4,5} → Көбейтінді = 120"),
divider(),
h3("Есеп 2: Бас әріптерді кіші әріптерге айналдырып жаңа файлға жазу"),
label("input.txt-тен оқып, uppercase→lowercase өзгертіп output.txt-ке жазу."),
...code(`#include
#include
#include
#include
using namespace std;
int main() {
ofstream out("upper5.txt");
out << "Hello World CPP"; out.close();
ifstream in("upper5.txt");
ofstream res("lower5.txt");
string s; getline(in, s);
for (char& c : s) c = tolower(c);
res << s;
cout << "Нәтиже: " << s << endl;
return 0;
}`),
result("\"Hello World CPP\" → \"hello world cpp\""),
];
// ════════════════════════════════════════════════════════════════════
// ТАҚЫРЫП 6 — ГРАФИКА (нұсқа 1–5)
// ════════════════════════════════════════════════════════════════════
const sec6 = [
pageBreak(),
h1("ТАҚЫРЫП 6. ҚАРАПАЙЫМ ГРАФИКАЛЫҚ ФИГУРАЛАР"),
p("Ескерту: Кодтар WinBGIm кітапханасын (graphics.h) пайдаланады. Borland C++ немесе g++ + WinBGIm керек."),
p("Нұсқалар: 1→(120а,129а,129н,130-1) | 2→(120б,129б,129о,130-2) | 3→(120в,129в,130-3) | 4→(120г,129г,130-4) | 5→(121,129д,130-5)"),
h2("1-нұсқа (120а, 129а, 130-1)"),
h3("120а: Үшбұрыш салу және бояу"),
label("Төбелері: (100,100), (150,100), (80,170). Сызу + ішін бояу + штрих."),
...code(`#include
int main() {
initwindow(400, 300, "Үшбұрыш");
int xp[] = {100,150,80,100};
int yp[] = {100,100,170,100};
setcolor(BLUE);
setfillstyle(SOLID_FILL, CYAN);
fillpoly(3, xp, yp); // іші боялған үшбұрыш
// Штрих сызықтар
setfillstyle(HATCH_FILL, RED);
fillpoly(3, xp, yp);
getch(); closegraph();
return 0;
}`),
result("Экранда іші штрих-боялған үшбұрыш бейнеленеді"),
divider(),
h3("129а: Балапан (Chick) суреті"),
label("Дене: эллипс; бас: дөңгелек; тұмсық+қанат: үшбұрыш; аяқ: сызықтар"),
...code(`#include
int main() {
initwindow(400, 400, "Балапан");
setcolor(YELLOW);
// Дене (эллипс)
setfillstyle(SOLID_FILL, YELLOW);
fillellipse(200, 250, 60, 80);
// Бас (дөңгелек)
fillellipse(200, 150, 40, 40);
// Тұмсық (үшбұрыш)
int beak[] = {220,145, 250,155, 220,165};
setfillstyle(SOLID_FILL, ORANGE);
fillpoly(3, beak, nullptr);
// Көз
setcolor(BLACK);
setfillstyle(SOLID_FILL, BLACK);
fillellipse(190, 142, 5, 5);
// Аяқтар
setcolor(ORANGE);
line(180,330,165,360); line(165,360,150,360);
line(220,330,235,360); line(235,360,250,360);
getch(); closegraph();
return 0;
}`),
result("Экранда сары балапан суреті бейнеленеді"),
divider(),
h3("130-1: f(x) = sin(x) графигі"),
label("[-2π, 2π] аралықта sin(x) функциясының графигін тұрғызу."),
...code(`#include
#include
int main() {
int W=640, H=400;
initwindow(W, H, "sin(x)");
int cx=W/2, cy=H/2;
double scaleX=50, scaleY=100;
setcolor(WHITE);
line(0,cy,W,cy); line(cx,0,cx,H); // Осьтер
setcolor(YELLOW);
double a=-2*M_PI, b=2*M_PI, step=0.02;
int px=cx+(int)(a*scaleX), py=cy-(int)(sin(a)*scaleY);
for(double x=a+step; x<=b; x+=step) {
int nx=cx+(int)(x*scaleX);
int ny=cy-(int)(sin(x)*scaleY);
line(px,py,nx,ny);
px=nx; py=ny;
}
getch(); closegraph();
return 0;
}`),
result("[-2π, 2π] аралықта сары түсті sin(x) графигі бейнеленеді"),
h2("2-нұсқа (120б, 129б, 130-2)"),
h3("120б: Тіктөртбұрыш салу және бояу"),
label("Төбелері: (80,80), (170,80), (170,150), (80,150)"),
...code(`#include
int main() {
initwindow(400,300,"Тіктөртбұрыш");
setcolor(GREEN);
setfillstyle(SOLID_FILL, LIGHTGREEN);
// Толтырылған тіктөртбұрыш
bar(80, 80, 170, 150);
setcolor(WHITE);
rectangle(80,80,170,150);
// Штрих
setfillstyle(LINE_FILL, GREEN);
bar(80,80,170,150);
getch(); closegraph();
return 0;
}`),
result("Іші штрихталған жасыл тіктөртбұрыш"),
divider(),
h3("130-2: f(x) = cos(x) графигі"),
label("[-2π, 2π] аралықта cos(x) функциясы."),
...code(`#include
#include
int main() {
int W=640,H=400;
initwindow(W,H,"cos(x)");
int cx=W/2, cy=H/2;
double sX=50, sY=100;
setcolor(WHITE);
line(0,cy,W,cy); line(cx,0,cx,H);
setcolor(CYAN);
double a=-2*M_PI, b=2*M_PI, step=0.02;
int px=cx+(int)(a*sX), py=cy-(int)(cos(a)*sY);
for(double x=a+step;x<=b;x+=step){
int nx=cx+(int)(x*sX), ny=cy-(int)(cos(x)*sY);
line(px,py,nx,ny); px=nx; py=ny;
}
getch(); closegraph();
return 0;
}`),
result("cos(x) графигі [-2π,2π] аралықта"),
h2("3-нұсқа (120в, 129в, 130-3)"),
h3("120в: Бесбұрыш салу"),
label("Төбелері: (100,100),(150,100),(170,120),(150,140),(100,140)"),
...code(`#include
int main() {
initwindow(400,300,"Бесбұрыш");
int pts[] = {100,100, 150,100, 170,120, 150,140, 100,140};
setcolor(MAGENTA);
setfillstyle(SOLID_FILL, LIGHTMAGENTA);
fillpoly(5, pts, nullptr);
setfillstyle(XHATCH_FILL, MAGENTA);
fillpoly(5, pts, nullptr);
getch(); closegraph();
return 0;
}`),
result("Іші крест-штрихталған қызғылт бесбұрыш"),
divider(),
h3("130-3: f(x) = x² графигі"),
label("[-5, 5] аралықта парабола."),
...code(`#include
int main() {
int W=640,H=400;
initwindow(W,H,"x^2");
int cx=W/2, cy=H*3/4;
double sX=50, sY=8;
setcolor(WHITE);
line(0,cy,W,cy); line(cx,0,cx,H);
setcolor(LIGHTRED);
double a=-5, b=5, step=0.05;
int px=cx+(int)(a*sX), py=cy-(int)(a*a*sY);
for(double x=a+step;x<=b;x+=step){
int nx=cx+(int)(x*sX), ny=cy-(int)(x*x*sY);
if(ny>0 && ny
int main() {
initwindow(400,300,"Алтыбұрыш");
int pts[] = {120,100, 140,120, 140,140, 120,160, 100,140, 100,120};
setcolor(YELLOW);
setfillstyle(SOLID_FILL, LIGHTYELLOW);
fillpoly(6, pts, nullptr);
getch(); closegraph();
return 0;
}`),
result("Алтыбұрыш экранда бейнеленеді"),
divider(),
h3("130-4: f(x) = |x| графигі"),
label("[-5, 5] аралықта абсолют мән функциясы."),
...code(`#include
#include
int main() {
int W=640,H=400;
initwindow(W,H,"|x|");
int cx=W/2, cy=H/2;
double sX=50, sY=50;
setcolor(WHITE);
line(0,cy,W,cy); line(cx,0,cx,H);
setcolor(GREEN);
double a=-5, b=5, step=0.05;
int px=cx+(int)(a*sX), py=cy-(int)(fabs(a)*sY);
for(double x=a+step;x<=b;x+=step){
int nx=cx+(int)(x*sX), ny=cy-(int)(fabs(x)*sY);
line(px,py,nx,ny); px=nx; py=ny;
}
getch(); closegraph();
return 0;
}`),
result("|x| V-тәрізді графигі [-5,5] аралықта"),
h2("5-нұсқа (121, 129д, 130-5)"),
h3("121: Экранның центрінде 30 пиксель қабырғалы шаршы"),
label("Центрі экранның центрімен сәйкес, қырлары осьтерге параллель шаршы."),
...code(`#include
int main() {
int W=640, H=480;
initwindow(W,H,"Шаршы");
int cx=W/2, cy=H/2, half=15;
setcolor(RED);
setfillstyle(SOLID_FILL, LIGHTRED);
bar(cx-half, cy-half, cx+half, cy+half);
setcolor(WHITE);
rectangle(cx-half, cy-half, cx+half, cy+half);
getch(); closegraph();
return 0;
}`),
result("Экран ортасында 30×30 пиксельді қызыл шаршы"),
divider(),
h3("130-5: f(x) = tan(x) графигі"),
label("[-π/2+0.1, π/2-0.1] аралықта тангенс функциясы."),
...code(`#include
#include
int main() {
int W=640,H=400;
initwindow(W,H,"tan(x)");
int cx=W/2, cy=H/2;
double sX=150, sY=50;
setcolor(WHITE);
line(0,cy,W,cy); line(cx,0,cx,H);
setcolor(YELLOW);
double a=-1.4, b=1.4, step=0.01;
bool first=true;
int px=0,py=0;
for(double x=a;x<=b;x+=step){
double y=tan(x);
if(fabs(y)>5) { first=true; continue; }
int nx=cx+(int)(x*sX), ny=cy-(int)(y*sY);
if(ny<0||ny>=H) { first=true; continue; }
if(!first) line(px,py,nx,ny);
px=nx; py=ny; first=false;
}
getch(); closegraph();
return 0;
}`),
result("tan(x) графигі (-π/2, π/2) аралықта"),
];
// ─── TITLE PAGE ────────────────────────────────────────────────────
const titlePage = [
new Paragraph({
children: [new TextRun({ text: "ПРАКТИКАЛЫҚ ЖҰМЫС БОЙЫНША ЕСЕП БЕРУ", font:"Arial", size:36, bold:true })],
alignment: AlignmentType.CENTER, spacing: { before: 1440, after: 300 }
}),
new Paragraph({
children: [new TextRun({ text: "ИС-25-1 тобы | C++ тілінде программалау", font:"Arial", size:26 })],
alignment: AlignmentType.CENTER, spacing: { after: 200 }
}),
new Paragraph({
children: [new TextRun({ text: "Нұсқалар: 1 – 5 (барлық тақырыптар)", font:"Arial", size:24, bold:true })],
alignment: AlignmentType.CENTER, spacing: { after: 200 }
}),
new Paragraph({
children: [new TextRun({ text: "Өткізу: 25/05/2026 – 06/06/2026 | 505 аудитория", font:"Arial", size:22 })],
alignment: AlignmentType.CENTER, spacing: { after: 1440 }
}),
new Paragraph({
children: [new TextRun({ text: "Тақырыптар:", font:"Arial", size:24, bold:true })],
alignment: AlignmentType.CENTER, spacing: { after: 100 }
}),
...[
"1. Циклдік алгоритмдерді программалау (3 есеп × 5 нұсқа = 15)",
"2. Жиымдарды өңдеу (2 есеп × 5 нұсқа = 10)",
"3. Сөз тіркестерін өңдеу (2 есеп × 5 нұсқа = 10)",
"4. Қолданушы функцияларын құру (2 есеп × 5 нұсқа = 10)",
"5. Файлдарды пайдалану (2 есеп × 5 нұсқа = 10)",
"6. Графикалық фигуралар (2–3 есеп × 5 нұсқа = 13)",
"─────────────────────────────────────",
"ЖИЫНЫ: 68 программа"
].map(t => new Paragraph({
children: [new TextRun({ text: t, font:"Arial", size:22 })],
alignment: AlignmentType.CENTER, spacing: { before:40, after:40 }
})),
pageBreak()
];
const doc = new Document({
styles: {
default: { document: { run: { font: "Arial", size: 22 } } },
paragraphStyles: [
{ id:"Heading1", name:"Heading 1", basedOn:"Normal", next:"Normal", quickFormat:true,
run:{ size:28, bold:true, font:"Arial", color:"1a3c5e" },
paragraph:{ spacing:{ before:360, after:180 }, outlineLevel:0 } },
{ id:"Heading2", name:"Heading 2", basedOn:"Normal", next:"Normal", quickFormat:true,
run:{ size:24, bold:true, font:"Arial", color:"2e5d8a" },
paragraph:{ spacing:{ before:240, after:120 }, outlineLevel:1 } }
]
},
sections: [{
properties: {
page: {
size: { width: 11906, height: 16838 },
margin: { top: 1134, right: 850, bottom: 1134, left: 1701 }
}
},
children: [
...titlePage,
...sec1,
...sec2,
...sec3,
...sec4,
...sec5,
...sec6
]
}]
});