3-AMELIY
.pdf3-ámeliy sabaq. Logikalıq ámeller hám matematikalıq funkciyalar menen islew.
Sabaqtıń maqseti: C++ tilinde logikalıq ámellerdi (AND, OR, NOT) qollanıp, quramalı shártlerdi dúziwdi úyreniw hám standart matematikalıq funkciyalardan paydalanıp, esaplawlardı ámelge asırıwdı ózlestiriw.
Teoriyalıq maǵlıwmatlar:
Programmalastırıwda kóbinese bir waqıttıń ózinde bir neshe shártti tekseriwge tuwra keledi. Sonday-aq, quramalı matematikalıq esaplawlardı orınlaw zárúrligi payda boladı. C++ tili bunıń ushın arnawlı logikalıq operatorlar hám matematikalıq funkciyalar toplamın usınadı.
1. Logikalıq ámeller (operatorlar)
Logikalıq operatorlar tiykarınan bool (true/false - haqıyqat/jalǵan) tipindegi maǵlıwmatlar yamasa salıstırıw ámelleriniń nátiyjeleri ústinde orınlanadı. Eger nátiyje true bolsa, ol kóbinese 1 sanı menen, al false bolsa 0 sanı menen kórsetiledi.
Tiykarǵı logikalıq operatorlar:
1. && (hám) - Logikalıq Kóbeytiw (AND)
oBul operator eki táreptegi shárttiń ekewi de true (haqıyqat) bolǵanda ǵana ulıwma nátiyjeni true qaytaradı. Eger keminde birewi false (jalǵan) bolsa, nátiyje false boladı.
Haqıyqatlıq kestesi:
A |
B |
A && B |
true |
true |
true |
true |
false |
false |
false |
true |
false |
false |
false |
false |
2. || (yamasa) - Logikalıq Qosıw (OR)
oBul operator eki táreptegi shárttiń keminde birewi true (haqıyqat) bolsa, ulıwma nátiyjeni true qaytaradı. Eger ekewi de false (jalǵan) bolsa ǵana nátiyje false boladı.
Haqıyqatlıq kestesi:
| A | B | A || B |
| :---: | :---: | :---: |
| true | true | true |
| true | false | true |
| false | true | true |
| false | false | false |
3. ! (emes) - Logikalıq Biykarlaw (NOT)
oBul operator ózinen keyingi shárttiń nátiyjesin teskergende ózgertedi. Eger shárt true bolsa, onı false qa, eger false bolsa true ǵa aylandıradı.
|
Haqıyqatlıq kestesi: |
|
|
|
|
A |
!A |
|
true |
false |
|
false |
true |
|
Mısal: Kiritilgen san 10 hám 20 arasında ekenligin tekseriw. Bul jerde san 10 nan úlken (>) HÁM 20 dan kishi (<) bolıwı kerek.
#include <iostream> using namespace std;
int main() { int san;
cout << "San kiritiń: "; cin >> san;
if (san > 10 && san < 20) {
cout << "Kiritilgen san 10 hám 20 arasında." << endl;
} else {
cout << "Kiritilgen san 10 hám 20 arasında emes." << endl;
}
return 0;
}
2. Matematikalıq funkciyalar
C++ tilinde quramalı matematikalıq esaplawlardı (kvadrat koren, dárejege kóteriw, trigonometriyalıq funkciyalar hám t.b.) orınlaw ushın <cmath> (eski versiyalarda <math.h>) kitapxanası bar. Bul funkciyalardı qollanıw ushın programmanıń basında #include <cmath> direkciyasın qosıw kerek.
Eń kóp qollanılatuǵın matematikalıq funkciyalar:
sqrt(x): x sanınıń kvadrat korenen tabadı. Mısal: sqrt(16) nátiyjesi 4.
pow(tiykar, dareje): tiykar sanın dareje ge kóteredi. Mısal: pow(2, 3) nátiyjesi 8
(23).
abs(x): x sanınıń absolyut (modul) mánisin tabadı (eger san pútin bolsa).
fabs(x): x sanınıń absolyut mánisin tabadı (eger san bólshek bolsa). Mısal: fabs(-5.7)
nátiyjesi 5.7.
ceil(x): x sanınan kishi bolmaǵan eń kishi pútin sanǵa deyin dóńgelekleydi (joqarıǵa
jaqınlastıradı). Mısal: ceil(4.2) nátiyjesi 5.
floor(x): x sanınan úlken bolmaǵan eń úlken pútin sanǵa deyin dóńgelekleydi (tómenge
jaqınlastıradı). Mısal: floor(4.8) nátiyjesi 4.
round(x): x sanın eń jaqın pútin sanǵa deyin matematikalıq dóńgelekleydi. Mısal:
round(4.6) nátiyjesi 5, round(4.3) nátiyjesi 4.
sin(x), cos(x), tan(x): x (radian ólsheminde) múyeshtiń sinus, kosinus, tangensin
esaplaydı.
Mısal: Tuwrı múyeshli úshmúyeshliktiń katetleri berilgen, gipotenuzasın tabıw. (Pifagor teoreması: 
#include <iostream>
#include <cmath> // Matematikalıq funkciyalar ushın kitapxana using namespace std;
int main() {
double a, b; // Katetlerdi bólshek san retinde járiyalaymız cout << "Birinshi katetti kiritiń (a): ";
cin >> a;
cout << "Ekinshi katetti kiritiń (b): "; cin >> b;
//Pifagor teoreması boyınsha esaplaw: a^2 + b^2 niń korenin alamız
//pow(a, 2) funkciyası 'a' nıń kvadratın esaplaydı
//sqrt() funkciyası nátiyjeniń korenin tabadı
double c = sqrt(pow(a, 2) + pow(b, 2));
cout << "Gipotenuza (c): " << c << endl;
return 0;
}
Ámeliy tapsırmalar
Endi teoriyalıq bilimlerdi ámeliyatta bekkemleymiz. Tómendegi tapsırmalardı izbe-iz orınlap kóriń.
1-tapsırma: Jıldıń keliw máwsimin anıqlaw
Paydalanıwshıdan ay nomerin (1-12) soraytuǵın hám sol ay qaysı máwsimge tiyisli ekenligin anıqlaytuǵın programma dúziń.
Qıs: 12, 1, 2-aylar
Báhár: 3, 4, 5-aylar
Jaz: 6, 7, 8-aylar
Gúz: 9, 10, 11-aylar
Logikalıq || (yamasa) operatorınan paydalanıń.
Sheshimi (kodı):
#include <iostream> using namespace std;
int main() { int ay;
cout << "Ay nomerin kiritiń (1-12): "; cin >> ay;
if (ay == 12 || ay == 1 || ay == 2) { cout << "Bul - qıs máwsimi." << endl;
} else if (ay >= 3 && ay <= 5) { // Bul jerde && operatorın da qollanıp kóriwge boladı
cout << "Bul - báhár máwsimi." << endl;
}else if (ay == 6 || ay == 7 || ay == 8) { cout << "Bul - jaz máwsimi." << endl;
}else if (ay >= 9 && ay <= 11) {
cout << "Bul - gúz máwsimi." << endl;
} else {
cout << "Qáte! 1 den 12 ge shekemgi san kiritiliwi kerek." << endl;
}
return 0;
}
2-tapsırma: Kvadrat teńleme sheshimi
Sheshimi (kodı):
#include <iostream> #include <cmath> using namespace std;
int main() {
double a, b, c;
cout << "Kvadrat teńleme ushın a, b, c koefficientlerin kiritiń:\n"; cout << "a = ";
cin >> a;
cout << "b = "; cin >> b;
cout << "c = "; cin >> c;
if (a == 0) {
cout << "Bul kvadrat teńleme emes (a=0)." << endl; return 0;
}
double diskriminant = pow(b, 2) - 4 * a * c;
if (diskriminant > 0) {
double x1 = (-b + sqrt(diskriminant)) / (2 * a); double x2 = (-b - sqrt(diskriminant)) / (2 * a);
cout << "Teńlemeniń eki haqıyqıy koreni bar:" << endl; cout << "x1 = " << x1 << endl;
cout << "x2 = " << x2 << endl;
}else if (diskriminant == 0) { double x = -b / (2 * a);
cout << "Teńlemeniń bir haqıyqıy koreni bar:" << endl; cout << "x = " << x << endl;
}else { // diskriminant < 0
cout << "Teńlemeniń haqıyqıy korenleri joq." << endl;
}
return 0;
}
3-tapsırma: Login hám parol tekseriw
Belgilengen login ("admin") hám parol ("12345") bar dep esaplayıq. Paydalanıwshıdan login hám paroldi sorap, ekewi de durıs bolsa "Sistemaǵa xosh keldińiz!", birewi qáte bolsa "Login yamasa parol qáte!" degen xabardı shıǵaratuǵın programma dúziń.
Bul jerde logikalıq && (hám) operatorınan paydalanıw qolaylı.
Sheshimi (kodu):
#include <iostream>
#include <string> // string tipi menen islew ushın using namespace std;
int main() {
string login, parol;
cout << "Login kiritiń: "; cin >> login;
cout << "Parol kiritiń: "; cin >> parol;
if (login == "admin" && parol == "12345") { cout << "Sistemaǵa xosh keldińiz!" << endl;
} else {
cout << "Login yamasa parol qáte!" << endl;
}
return 0;
}
Sabaqtı bekkemlew ushın sorawlar:
1.&& hám || operatorlarınıń ayırmashılıǵı nede? Mısallar menen túsindiriń.
2.! operatorı qanday wazıypanı atqaradı?
3.<cmath> kitapxanasın qosıw ne ushın kerek?
