Juft ustunlarda * chiqaradi, toq ustunlarda - chiqariladi.
for (int i = 1; i <= 3; i++)
{
for (int j = 1; j <= 5; j++)
{
if ((i + j) % 2 == 0) { cout << "*"; }
else { cout << " "; }
}
cout << endl;
}
* * *
* *
* * *
Shaxmat doskasi
Misol. Ko’paytmalarning umumiy yi’gindisini hisoblang.
a
Bu masalani ko’paytmalarning yi’gindisi deb nomlanadi. i o’zgaruvchining har bir qiymatida m o’zgaruvchi 1 dan 14 gacha qiymatlarni barchasini ifodaga qo’yib, ko’paytmasini topiladi. Har bir ko’paytmaning yig’indisi masalaning javobi bo’ladi.
#include
#include
using namespace std;
int main(){
float t,r,f;
int i,m,n;
cout<<"t=";
cin>>t;
cout<<"r=";
cin>>r;
cout<<"f=";
cin>>f;
cout<<"n=";
cin>>n;
double s=0;
for(i=1;i<=32;i++){
double p=1;
for(m=1;m<=14;m++){
p *= (log(i)+t*pow(m, 1.0*i))/(r * pow(m, 1.0*i)+f * pow(n, 2.0*i));
}
s=s+p;
}
cout<<"s="<endl;
return 0;
}
Murakkab siklni sindirish.
Masala. To’g’ri burchakli uchburchakning barcha tomonlari uzunliklari natural sonlar. Uning gipatenuzasi c berilgan. Uning katetlarini topish lozim. To’gri burchakli uchburchak shartini qanoatlantiradigan istalgan javoblardan birini topish yetarli. (1≤c≤103).
Yechimi. c≤1000 bo’lganligi uchun uchburchak katetlari uzunliklari ham 1000 dan oshmaydi. Katetlarni mumkin bo’lgan barcha variantlarini tekshirib chiqish uchun a katetni i paramertli sikl sifatida qaraymiz, b katetni i sikl ichida j parametrli sikl sifatida to’g’ri burchakli uchburchak bo’lish shartini qanoatlantirilishini tekshirish lozim(i2+j2=c2):
Lekin bu ichma-ich sikl barcha variantlarni ko’rib chiqadi. Bizga faqat bitta variant kerak bo’lganligi sababli agar katetlar topilsa, siklni to’xtatishimiz foydaliroq bo’ladi. Siklni to’xtatish uchun quyidagicha yozish mumkin:
for (int i = 1; i <= 1000; i++) {
for (int j = 1; j <= 1000; j++) {
if (i*i + j*j==c*c) {
a = i;
b = j;
found = true;
break;
}
}
}
Bu shaklda siklni sindiradigan bo’lsak faqat ichki sikl sinadi, tashqi sikl keyingi iteratsiyadan davom qiladi. Siklni butunlay sindirish uchun har bir tashqi sikl iteratsiyasidan oldin tekshiramiz, agar javob topilgan bo’lsa u holda tashqi siklni sindiramiz.
for (int i = 1; i <= 1000; i++) {
if (found)
break;
for (int j = 1; j <= 1000; j++) {
if (i*i + j*j==c*c) {
a = i;
b = j;
found = true;
break;
}
}
}
goto operatori.
Agar ichma-ich joylashgan sikllar soni ko’p bo’ladigan bo’lsa u holda siklni sindirish uchun har bir siklda break operatorini yozish lozim bo’ladi. Buning o’rniga sikldan keyingi amallar bajarilishiga o’tish uchun goto operatoridan foydalanish mumkin. goto operatoridan keyin nishon yoziladi. Agar goto operatori yozilsa, dastur nishon yozilgan nuqtadan bajarishni davom qildiradi. Nishon harflar, $(dollor belgisi), _(pastki chiziqcha), raqamlardan iborat bo’ladi va raqam bilan boshlanmaydi.