2-ameliy_paradigma_qq
.pdf
2-ámeliy jumıs. Strukturalı programmalastırıwda ápiwayı programmalar jaratıw
Jumıstıń maqseti: Strukturalı programmalastırıwdıń tiykarǵı principlerin (izbe-izlik, tarmaqlanıw hám cikller) ózlestiriw. C++ tilinde shártli operatorlar (if, switch) hám tákirarlaw operatorların (for, while, do-while) qollanıp, logikalıq dúzilisi anıq hám tártipli bolǵan programmalar jaratıwdı úyreniw. "Spagetti kod"tan qashıw hám algoritmlerdi bloklar járdeminde qurıw kónlikpesin qáliplestiriw.
Teoriyalıq bólim: Strukturalı programmalastırıw – bul programmanı logikalıq bloklarǵa bóliw arqalı onıń oqılıwın hám sapa dárejesin arttırıwǵa arnalǵan paradigma. Bul usıldıń tiykarı – GOTO operatorınan (tártipsiz sekiriwlerden) waz keshiw hám Bem-Yakopini teoremasına tiykarlanıp, barlıq algoritmlerdi úsh tiykarǵı struktura arqalı súwretlew:
1.Izbe-izlik (Sequence): Buyrıqlardıń joqarıdan tómenge qaray tártip penen orınlanıwı.
2.Tarmaqlanıw (Selection): Belgili bir shártke baylanıslı kodtıń bir bólegin tańlaw (if, else, switch).
3.Tákirarlanıw (Iteration/Cikl): Kod blogınıń shárt orınlanǵansha bir neshe márte qaytalanıwı (while, do-while, for).
Bul strukturalardıń hárqaysısı "bir kirisiw hám bir shıǵıw" noqatına iye bolıwı shárt.
ÁMELIY BÓLIM:
C++ tilinde basqarıw strukturaların qollanıwdı kórip shıǵamız.
1-mısal: Tarmaqlanıw (IF-ELSE strukturası)
Másele: Paydalanıwshı kirgizgen sannıń oń, teris yamasa nolge teń ekenin anıqlaw.
Kod:
#include <iostream> using namespace std;
int main() { int san;
cout << "San kirgiziń: "; cin >> san;
// Strukturalı tarmaqlanıw if (san > 0) {
cout << "Bul oń san." << endl;
}
else if (san < 0) {
cout << "Bul teris san." << endl;
}
else {
cout << "Bul san nolge teń." << endl;
}
return 0;
}
Túsindirme: Bul jerde programma úsh joldan tek birewin tańlaydı. GOTO qollanılmaǵan, logika anıq bloklarǵa bólingen.
2-mısal: Kóp jollı tarmaqlanıw (SWITCH-CASE)
Másele: Hápte kúniniń tártip nomerine qaray onıń atın shıǵarıw.
Kod:
#include <iostream> using namespace std;
int main() { int kun;
cout << "Hápte kúniniń nomerin kirgiziń (1-7): "; cin >> kun;
switch (kun) { case 1:
cout << "Dúyshembi" << endl; break;
case 2:
cout << "Siyshembi" << endl; break;
case 3:
cout << "Sárshembi" << endl; break;
case 4:
cout << "Piyshembi" << endl; break;
case 5:
cout << "Juma" << endl; break;
case 6:
cout << "Shembi" << endl; break;
case 7:
cout << "Ekshembi" << endl; break;
default:
cout << "Qáte! 1 den 7 ge shekemgi san kirgiziń." << endl;
}
return 0;
}
Túsindirme: switch strukturası bir ózgeriwshiniń bir neshe anıq mánislerge (konstanta) teńligin tekseriw ushın qolaylı. break operatorı strukturanıń jumısın toqtatıp, bloktan shıǵıw ushın kerek.
3-mısal: Tákirarlanıw (FOR cikli)
Másele: 1 den N ge shekemgi sanlardıń qosındısın esaplaw (Faktorial emes, ápiwayı summa).
Kod:
#include <iostream> using namespace std;
int main() { int n;
int summa = 0; // Jıynawshı ózgeriwshi (akkumulyator)
cout << "N sannıń kirgiziń: "; cin >> n;
// Strukturalı cikl
for (int i = 1; i <= n; i++) {
summa = summa + i; // Hárbir i mánisin summaǵa qosamız
}
cout << "1 den " << n << " ge shekemgi sanlardıń qosındısı: " << summa << endl;
return 0;
}
Túsindirme: for cikli iteraciyalar sanı aldın ala belgili bolǵanda qollanıladı. Bul kod GOTO arqalı keri sekiriwdiń ornına, arnawlı cikl baslawshısın qollanadı.
4-mısal: Tákirarlanıw (WHILE cikli)
Másele: Paydalanıwshı 0 kirgizbegeninshe sanlardı qabıllaw hám olardıń kóbeymesin tabıw.
Kod:
#include <iostream> using namespace std;
int main() { int san;
long long kobeyme = 1; // 0 ge kóbeytpew ushın 1 den baslaymız
cout << "Sanlardı kirgiziń (toqtaw ushın 0 basıń): " << endl;
// Shártli cikl while (true) {
cin >> san;
if (san == 0) {
break; // Ciklden shıǵıw
}
kobeyme = kobeyme * san;
}
cout << "Kiritilgen sanlardıń kóbeymesi: " << kobeyme << endl; return 0;
}
Túsindirme: while cikli iteraciyalar sanı belgisiz bolǵanda, tek toqtaw shárti belgili bolǵanda qollanıladı.
ÁMELIY TAPSÍRMALAR
1-tapsırma: Úsh sannıń eń úlkenin tabıw (Maksimum).
Paydalanıwshıdan úsh san (a, b, c) kirgiziwdi soraytuǵın hám olardıń ishinen eń úlkenin (maksimumın) ekranda kórsetetuǵın programma dúziń.
Kórsetpe: if-else if-else strukturasınan yamasa ishi-ishine kirgen (nested) shártlerden paydalanıń.
2-tapsırma: Faktorial esaplaw.
Paydalanıwshı kirgizgen N pútin sanınıń faktorialın (N!) esaplaytuǵın programma jazıń.
Formula: N! = 1 * 2 * 3 * ... * N.
Kórsetpe: for ciklinen paydalanıń hám nátiyje úlken bolıwı múmkinligi sebepli long long tipinen paydalanıń.
3-tapsırma: Sannıń cifrların kerisine aylandırıw.
Paydalanıwshı kirgizgen pútin sannıń cifrların keri tártipte shıǵarıwshı programma dúziń.
Mısal: Kirgiziw: 12345 -> Nátiyje: 54321.
Kórsetpe: while cikli, % 10 (qaldıq alıw) hám / 10 (pútin bóliw) ámellerinen paydalanıń.
4-tapsırma: Ápiwayı kalkulyator (Switch-Case).
Paydalanıwshıdan eki san hám bir ámeldi (+, -, *, /) soraytuǵın programma dúziń. switch operatorınan paydalanıp, tańlanǵan ámelge sáykes esaplawdı orınlań hám nátiyjeni shıǵarıń.
Esletpe: 0 ge bóliw jaǵdayın if járdeminde tekseriń.
5-tapsırma: Kóbeytiw kestesi (Ishki cikller).
Paydalanıwshıdan N sanın sorap, 1 den N ge shekemgi bolǵan sanlardıń kóbeytiw kestesin (matrica kórinisinde) ekranda shıǵarıń.
Kórsetpe: Bir for cikli qatarlar ushın, onıń ishindegi ekinshi for cikli baǵanalar ushın qollanılıwı kerek (Nested Loops).
