1. Программалау тілдері. Си тілінің негізгі элементтері



бет2/7
Дата08.06.2018
өлшемі199,78 Kb.
#42012
1   2   3   4   5   6   7

9сурак.

Dev- C++( те бағдарлама мәтінін тергеннен кейін, Execute\Compile (немесе CTRL+9) командасы арқылы бағдарламаны компиляциялап, сонан соң Execute\Run (немесе CTRL+10) командасы арқылы бағдарламаны орындату керек. 
С++ бағдарламалау тілінде деректерді енгізу және шығарудың өз спецификалық құралы бар. Ол iostream.h тақырыптық файлы көмегімен бағдарламаға қосылатын кластар кітапханасы болып табылады. Бұл кітапханада екі оператор анықталған:
cin- пернетақтадан енгізу
cout- экранға шығару
х айнымалысын енгізу былайша жазылады: cin»x;
Шығару операторында тырнақшаға алынған мәтін және өрнек мәнін жазуға болады. Бұл операторда “«” белгісі қолданылады.
Мысалы: cout«x*y;
cout«”\n Қосынды=”«S;
cout«”a=”«a«”b=”«b«endl;
endl элементі меңзерді жаңа жолға орналастырады. (\n басқару символына сәйкес)
Мысал 3. Төбелерінің координаттары берілген үшбұрыштың қабырғаларын табыңдар.
#include 
#include 
#include 
main()
{ int x1,y1,x2,y2,x3,y3; float a,b,c;
cout«"1-төбені енгіз"; cin»x1»y1;
cout«"2- төбені енгіз "; cin»x2»y2;
cout«"3- төбені енгіз "; cin»x3»y3;
a=sqrt(pow((x2-x1),2)+pow((y2-y1),2));
b=sqrt(pow((x3-x1),2)+pow((y3-y1),2));
c=sqrt(pow((x2-x3),2)+pow((y2-y3),2));
cout«"а = "«a«"\n b= "«b«"\n c== "«c;
getch();
}
Бағдарламаны орындату нәтижесінде 
a=1.4142 
b= 1 
c= 2.2360 мәндері экранға шығады.
10сурак

Бағдарлама денесі main() функциясынан кейін орналасады. Жалпы түрі:
main()
{
операторлар;
}
Бағдарлама денесі {} фигуралық жақшаға алынады.
Экранға форматтап шығару операторы
Экранға форматтап шығару операторының жалпы түрі төмендегіше болады:
printf(“формат жолы”, аргументтер тізімі);
printf() операторында экранға шығатын айнымалының форматын көрсететін түрлендіру спецификаторы қолданылады. Ол % белгісінен басталады. Төмендегідей түрлендіру спецификаторы қолданылады:
%d- таңбалы бүтін сан 
%f- тұрақты үтірлі нақты сан (float)
%u- таңбасыз бүтін сан (unsigned)
%e- жылжымалы үтірлі нақты сан (double)
%c- символ
%s- жол
%ld- ұзын бүтін (long int)
%hu- таңбасыз қысқа бүтін (short unsigned)
%Lf- ұзын нақты(long double) 
printf() операторын қолдану мысалдары:
printf(“\n Қосынды=%d”, S);
printf(“\n S =%d”, S);
printf(“ Есептің нәтижесі”);
printf(“ \n Шеңбер ауданы=%f”, 3.14*R*R);
Мұндағы, %d, %f экранға шығатын бүтін және нақты айнымалының спецификаторы.
Нақты санды экранға форматтап шығаруға болады. Ол үшін екі параметр көрсетіледі:
өріс ені- айнымалыға экраннан бөлінетін орын саны
дәлдік- бөлшек бөлікке бөлінетін орын саны
Олар % және формат символының арасында бір- бірінен нүктемен бөлініп жазылады.
Мысалы: x=5.234532;
printf(“\n x=%4.2f”,x);
Нәтижеде экранға x=5.23 саны шығады.
Форматтап енгізу операторы
Пернетақтадан форматтап енгізу операторының жалпы түрі төмендегіше болады:
scanf(“формат жолы”, аргументтер тізімі);
Аргумент алдында & айнымалы адресінің операциясы жазылады. 
Мысалы: scanf(“%d”, &x);
scanf(‘%d%d%f”,&a,&b,&y);
Деректерді енгізу- шығаруды жүзеге асыратын printf(), scanf() операторлары stdio.h тақырыптық файлында орналасқан. Сондықтан, бағдарламада осы екі оператор қолданылатын болса, онда бағдарлама тақырыбында 
#include  командасы жазылуы қажет. (stdio- standart input output- стандартты енгізу шығару)
Мысал 1. Радиусы берілген дөңгелектің ұзындығын және шеңбердің ауданын табу бағдарламасын құрыңдар.
#include 
#include 
main()
{ const float pi=3.14;
int r; float L,S;
printf(“ радиусты енгіз”);
scanf(“%d”,&r);
S=pi*r*r;
L=2*pi*r;
printf(“\n S=%4.2f L=%4.2f”, S,L);
getch();
}
Бағдарламаны орындатып, радиусқа 5 мәні енгізілсе, нәтижеде S=78.50 L=31.40 мәндері шығады.
Бағдарламаның нәтижесі кез келген пернені басқанға дейін экранда көрініп тұру үшін conio.h тақырыптық файлында анықталған getch() операторы қолданылады.


11 cұрақ Тармақталу операторлары

С++ тілінде тармақталу үш түрде жүзеге асырылады:

? шартты операция

тармақталу немесе шартты оператор

таңдау командасы.

Шартты оператордың жазылуының жалпы түрі:



if (шарт) 1- оператор; else 2- оператор; немесе

if (шарт) оператор;

Бұл оператор былайша орындалады: алдымен жақша ішіндегі шарт тексеріледі. Егер оның мәні ақиқат болса, яғни мәні 1- ге тең болса, 1- оператор, әйтпесе 2- оператор орындалады.



Мысал 4. Берілген екі санның үлкенін квадраттап шығаратын бағдарлама құрыңдар.

#include

#include

#include

main()

{ float x,y;



cout<<"х,у -сандарын eнгіз"; cin>>x>>y;

if (x>y) x=pow(x,2); else y=pow(y,2);

cout<<"x= "<>x>>y;

if (x>y) {x=pow(x,2); y=sqrt(y);} else {y=pow(y,2); x=sqrt(x);}

cout<<"x= "<>x>>y;

if (x*x+y*y>=r1*r1 && x*x+y*y<=r2*r2) cout<<"\n тиісті"; else cout<<"\n тиісті емес";

getch();

}

Мысал 7. Функцияны есептеу прогрммасын жазыңдар:

y

#include

#include

#include

main()

{float x,y;



cin>>x;

if (х1) ysqrt (х);

else if (x0) ypow(x,3)/5;

else ypow(х,2)+1;

cout<<"\n y="<

getch();


}

12 сұрақ Таңдау операторы

Таңдау операторы арқылы бағдарламадағы мүмкін болатын бірнеше оператордың біреуі таңдалады.

Таңдау операторының C++ - те жазылуының жалпы түрі:

switch (өрнек)

{ case 1- тұрақты: 1- оператор; break;

case 2- тұрақты: 2- оператор; break;



default: оператор;



}

Бұл оператор былайша жұмыс істейді:

Алдымен өрнектің мәні есептеледі, сонан соң өрнектің мәніне тең тұрақты ізделінеді. Сәйкесінше, сол тұрақтыдан кейін жазылған оператор орындалады да, таңдау операторының жұмысы аяқталады. Егер тізімде есептелген мәнге тең тұрақты табылмаса, басқару default сөзінен кейін тұрған операторға беріледі.

Мысал 8. Апта күндерінің нөміріне байланысты оның қазақша – ағылшынша атауын экранға шығаратын бағдарлама құрыңдар.

main()


{ int n;

cout<<”1-ден 7-ге дейінгі санды енгіз”;

cin>>n;

switch (n)



{case 1: cout<<”Дүйсенбі- Monday”; break;

case 2: cout<<” Сейсенбі- Tuesday”; break;

case 3: cout<<” Сәрсенбі- Wednesday”; break;

case 4: cout<<” Бейсенбі- Thursday”; break;

case 5: cout<<” Жұма- Friday”; break;

case 6: cout<<” Сенбі- Saturday”; break;

case 7: cout<<” Жексенбі- Sunday”; break;

default: cout<<” Қате”;}

getch();

}

Мысал 9. Енгізілген 1- ден 4- ке дейінгі жыл мезгілінің нөміріне байланысты ондағы ай аттарының қазақша– ағылшынша атауын экранға шығаратын бағдарлама құрыңдар.

main()

{ int n;


cout<<”1-ден 4-ге дейінгі санды енгіз”;

cin>>n;


switch (n)

{case 1: cout<<”Желтоқсан- December, Қаңтар- January, Ақпан- February”; break;

case 2: cout<<” Наурыз- March, Сәуір-April, Мамыр- May”; break;

case 3: cout<<” Маусым-June, Шілде- July, Тамыз- August”; break;

case 4: cout<<” Қыркүйек- September, Қазан- October, Қараша- November”; break;

default: cout<<” Қате”;}

getch();

}

Мысал 10. Ертегідегі “Оңға жүрсең- атыңнан айрыласың, солға жүрсең- қиындыққа тап боласың, тіке жүрсең- дос табасың” әрекеттерінен таңдау жасау бағдарламасын құрыңдар. (таңдау шарты: оңға- “о”, солға- “с”, тіке- “т”)

#include

#include

main()

{ char x;



cout<<"Қай бағытқа барасың? Енгіз: o,c,t";

cin>>x;


switch (x)

{

case 'o': cout<<"Атыңнан айрыласың ";break;



case 'с': cout<<" Қиындыққа тап боласың";break;

case 't': cout<<"Дос табасың";}

getch();

}

Басқа бағдарламалау тілінен айырмашылығы С/C++ тілінде char типі бүтін сандық та, символдық та бола алады. Экранға қалай шығатындығы бұл шаманы қолдану тәсіліне байланысты болады.



Мысал 11.

#include

#include

main()


{ char x;

cin>>x;

printf("%c ",x);

printf("\n ",x);

getch();

}

Бағдарламаны орындатып, х- ке ‘А’ символын енгізсек,



x=А

x=65 мәндері экранға шығады. printf () операторында %c символдары жазылса, онда енгізілген символ, ал %d жазылса, енгізілген символдың ASCII коды экранға шығады



13сұрақ и тіліндегі цикл түрлері

Кейбір бағдарламаларда белгілі-бір шарттардың сақталуына тәуелді командалардың қандай да бір бөлігі бірнеше рет қайталанады. Мұндай әрекеттерді жүзеге асыратын командаларды қайталану ( цикл) командасы деп атайды. Басқа да бағдарламалау тілдеріндегі сияқты С++ тілінде бағдарламаның қайталанатын бөлігін бағдарламалау үшін цикл операторының 3 түрі қолданылады.

Олар: 1) параметрлі цикл (“үшін” циклі)

2) әзір циклі (жалғасу шарты бар цикл)

3) дейін циклі (аяқталу шарты бар цикл)

Параметрлі цикл

Оның жазылуының жалпы түрі:



for (1-өрнек;2- шартты_ өрнек; 3- өрнек)

цикл_ денесі;

мұндағы 1-өрнек цикл басында бір рет орындалады және цикл параметрінің бастапқы мәнін анықтайды;



2-шартты_ өрнек циклдің орындалуының шарты;

3- өрнек цикл параметрінің өзгеру қадамын анықтайды.

Мысалы: n факториалды (n!) есептеу бағдарламасының бөлігі:

p=1;

for (i=1; i<=n; i++)



p=p*i;

Бұл бөлікті басқаша жазуға да болады:

for (p=1; i=1; i<=n; i++)

p=p*i;


яғни, бастапқы мәнді цикл операторының ішіне кіргізуге болады.

Жақша ішінде кейбір элемент болмауы мүмкін, бұл жағдайда оларды бөлетін ; белгісін жазу міндетті.

p=1; i=1;

for (; i<=n; i++)

p=p*i;

Цикл денесін жақша ішінде жазуға болады, бұл жағдайда жақшадан кейін нүктелі үтір (;) белгісі қойылады:



for (p=1; i=1; i<=n; p=p*i, i++); немесе

for (p=1; i=1; i<=n; p*=i++) ;



Мысал 17. Екіден жиырмаға дейінгі барлық жұп сандардың қосындысын және көбейтіндісін табыңдар.

#include

#include

main()


{ int i; unsigned long int S=0, P=1;

for (i=2; i<=20; i=i+2)

{S+=i;

P*=i;}


cout<<"S="<

getch();

}

Нәтижеде S=110 P=3715891200 мәндері экранға шығады.



Цикл денесі құрама оператордан тұрса , онда олар {} фигуралық жақшаға алынады.

Паскаль тілінде бұл циклдегі қадам 1-ге ғана тең болса, мұнда қадамның мәні кез келген болады.



Мысал 18. Берілген бүтін санның барлық бөлгіштерін табыңдар.

main()


{ int i, n;

cout<<”Санды енгіз”; cin>>n;

for (i=1; i<=n; i++)

if (n%i==0) cout<<”i=”<

}

Мысал 19. Берілген санның көбейту кестесін шығарыңдар.

main()


{ int x,i;

cout<<"Sandi engiz ";cin>>x;

for (i=1; i<=9; i++)

{cout<

cout<<"\n";}

getch();


}

Әзір” циклі

“Әзір” циклінің жазылуының жалпы түрі:

while (шартты_ өрнек)

цикл денесі;

Бұл циклде әзір шартты өрнектің мәні 0- ден өзге болғанда, яғни цикл шарты ақиқат болғанда цикл денесі орындалады.



Мысал 20. Екі таңбалы барлық сандардың ішінен 5-ке бөлінетін және 10-ға бөлінбейтін сандарды экранға шығаратын және олардың санын табатын бағдарлама құрыңдар. Бағдарламаның орындалу нәтижесі 5- суретте көрсетілген.

main()


{ int x, k=0;

x=10;


while (x<=99)

{if (x%5==0 && x%10!=0)

{cout<<"\n x="<

x++;}


cout<<"\n k="<getch();


}

Мысал 21. x-тің -5-тен 5-ке дейін 0,2 қадаммен өзгерген мәндері үшін у=х2-1 функциясының мәндерін экранға шығарыңдар.

main()


{ float х, у;

х=-5;


while (х<=5)

{y=pow(x,2)-1;

cout<<”\n x= ”<

х+=0.2;}


}

Мысал 22. Барлық екі таңбалы жұп сандардың көбейтіндісін табатын бағдарлама құрыңдар.

main()


{ int i; unsigned long int P=1;

i=2;


while (i<=98)

{ P=P*i; i+=2; } //немесе P*=i; i+=2;

cout<<”P=”<< P;

}

Мысал 23. Екі натурал санның ең үлкен ортақ бөлгішін және ең кіші ортақ еселігін табатын бағдарлама құрыңдар.

#include

#include

main()

{ int a,b,EYOB, EKOE,k;



cout<<"Екі сан енгіз"; cin>>a>>b;

k=a*b;


while (a!=b)

if (a>b) a=a-b; else b=b-a;

EYOB=a;

cout<<"\n EYOB="<

cout<<"\n EKOE="<

getch();


}

Дейін” циклі

“Дейін” циклінің жазылу форматы:

do

цикл денесі

while (шартты_ өрнек);

Бұл циклде цикл денесі ең болмағанда бір рет орындалады. Шартты өрнектің мәні 0- ден өзге болғанда, яғни цикл шарты ақиқат болғанда цикл денесі орындалады, керісінше жағдайда цикл аяқталады. Бұл цикл Паскаль тіліндегі repeat .. until цикліне ұқсас, айырмашылығы бұл циклде Паскальда кері шарт жазылса, мұнда тура шарт жазылады.



Мысал 24. n факториал (n!) табу есебін “дейін” циклі арқылы жүзеге асырайық.

main()


{ int i, n; long int P;

cout<<"Cан енгіз"; cin>>n;

P=i=1;

do

P*=i; i++; //немесе P*=i++;



while (i<=n);

cout<<”n!=”<




}

Мысал 25. Алғашқы 10 жұп санның көбейтіндісі мен арифметикалық ортасын табыңдар.

main ()


{ int i, P=1, S=0;

i=2;


do

P*=i; S+=i;

i=i+2;

while (i<=20);



cout<<”Көбейтінді=”<
Арифм.орта=”<

}

Мысал 26. 1, 1/4, 1/9,…1/n2 тізбегінің әрқайсысы берілген Е- ден кем емес мүшелерінің қосындысын табыңдар.

main ()

{int i; float S, E;



cin >>E;

i=1;


do

S+=i/pow(i,2);

i++;

while (1/ pow(i,2) >E);



cout<<”S=”<

}

14 сұрақ си тіліндегі параметрлік цикл

Кейбір бағдарламаларда белгілі-бір шарттардың сақталуына тәуелді командалардың қандай да бір бөлігі бірнеше рет қайталанады. Мұндай әрекеттерді жүзеге асыратын командаларды қайталану ( цикл) командасы деп атайды. Басқа да бағдарламалау тілдеріндегі сияқты С++ тілінде бағдарламаның қайталанатын бөлігін бағдарламалау үшін цикл операторының 3 түрі қолданылады.

Олар: 1) параметрлі цикл (“үшін” циклі)

2) әзір циклі (жалғасу шарты бар цикл)

3) дейін циклі (аяқталу шарты бар цикл)



Параметрлі цикл

Оның жазылуының жалпы түрі:



for (1-өрнек;2- шартты_ өрнек; 3- өрнек)

цикл_ денесі;

мұндағы 1-өрнек цикл басында бір рет орындалады және цикл параметрінің бастапқы мәнін анықтайды;



2-шартты_ өрнек циклдің орындалуының шарты;

3- өрнек цикл параметрінің өзгеру қадамын анықтайды.

Мысалы: n факториалды (n!) есептеу бағдарламасының бөлігі:

p=1;

for (i=1; i<=n; i++)



p=p*i;

Бұл бөлікті басқаша жазуға да болады:

for (p=1; i=1; i<=n; i++)

p=p*i;


яғни, бастапқы мәнді цикл операторының ішіне кіргізуге болады.

Жақша ішінде кейбір элемент болмауы мүмкін, бұл жағдайда оларды бөлетін ; белгісін жазу міндетті.

p=1; i=1;

for (; i<=n; i++)

p=p*i;

Цикл денесін жақша ішінде жазуға болады, бұл жағдайда жақшадан кейін нүктелі үтір (;) белгісі қойылады:



for (p=1; i=1; i<=n; p=p*i, i++); немесе

for (p=1; i=1; i<=n; p*=i++) ;



Мысал 17. Екіден жиырмаға дейінгі барлық жұп сандардың қосындысын және көбейтіндісін табыңдар.

#include

#include

main()


{ int i; unsigned long int S=0, P=1;

for (i=2; i<=20; i=i+2)

{S+=i;

P*=i;}


cout<<"S="<

getch();

}

Нәтижеде S=110 P=3715891200 мәндері экранға шығады.



Цикл денесі құрама оператордан тұрса , онда олар {} фигуралық жақшаға алынады.

Паскаль тілінде бұл циклдегі қадам 1-ге ғана тең болса, мұнда қадамның мәні кез келген болады.



Мысал 18. Берілген бүтін санның барлық бөлгіштерін табыңдар.

main()


{ int i, n;

cout<<”Санды енгіз”; cin>>n;

for (i=1; i<=n; i++)

if (n%i==0) cout<<”i=”<

}

Мысал 19. Берілген санның көбейту кестесін шығарыңдар.

main()


{ int x,i;

cout<<"Sandi engiz ";cin>>x;

for (i=1; i<=9; i++)

{cout<

cout<<"\n";}

getch();


}

Әзір” циклі

“Әзір” циклінің жазылуының жалпы түрі:

while (шартты_ өрнек)

цикл денесі;

Бұл циклде әзір шартты өрнектің мәні 0- ден өзге болғанда, яғни цикл шарты ақиқат болғанда цикл денесі орындалады.



Мысал 20. Екі таңбалы барлық сандардың ішінен 5-ке бөлінетін және 10-ға бөлінбейтін сандарды экранға шығаратын және олардың санын табатын бағдарлама құрыңдар. Бағдарламаның орындалу нәтижесі 5- суретте көрсетілген.

main()


{ int x, k=0;

x=10;


while (x<=99)

{if (x%5==0 && x%10!=0)

{cout<<"\n x="<

x++;}


cout<<"\n k="<getch();


}

Мысал 21. x-тің -5-тен 5-ке дейін 0,2 қадаммен өзгерген мәндері үшін у=х2-1 функциясының мәндерін экранға шығарыңдар.

main()


{ float х, у;

х=-5;


while (х<=5)

{y=pow(x,2)-1;

cout<<”\n x= ”<

х+=0.2;}


}

Мысал 22. Барлық екі таңбалы жұп сандардың көбейтіндісін табатын бағдарлама құрыңдар.

main()


{ int i; unsigned long int P=1;

i=2;


while (i<=98)

{ P=P*i; i+=2; } //немесе P*=i; i+=2;

cout<<”P=”<< P;

}

Мысал 23. Екі натурал санның ең үлкен ортақ бөлгішін және ең кіші ортақ еселігін табатын бағдарлама құрыңдар.

#include

#include

main()

{ int a,b,EYOB, EKOE,k;



cout<<"Екі сан енгіз"; cin>>a>>b;

k=a*b;


while (a!=b)

if (a>b) a=a-b; else b=b-a;

EYOB=a;

cout<<"\n EYOB="<

cout<<"\n EKOE="<

getch();


}

“Дейін” циклі

“Дейін” циклінің жазылу форматы:



do

цикл денесі

while (шартты_ өрнек);

Бұл циклде цикл денесі ең болмағанда бір рет орындалады. Шартты өрнектің мәні 0- ден өзге болғанда, яғни цикл шарты ақиқат болғанда цикл денесі орындалады, керісінше жағдайда цикл аяқталады. Бұл цикл Паскаль тіліндегі repeat .. until цикліне ұқсас, айырмашылығы бұл циклде Паскальда кері шарт жазылса, мұнда тура шарт жазылады.



Мысал 24. n факториал (n!) табу есебін “дейін” циклі арқылы жүзеге асырайық.

main()


{ int i, n; long int P;

cout<<"Cан енгіз"; cin>>n;

P=i=1;

do

P*=i; i++; //немесе P*=i++;



while (i<=n);

cout<<”n!=”<




}

Мысал 25. Алғашқы 10 жұп санның көбейтіндісі мен арифметикалық ортасын табыңдар.

main ()


{ int i, P=1, S=0;

i=2;


do

P*=i; S+=i;

i=i+2;

while (i<=20);



cout<<”Көбейтінді=”<
Арифм.орта=”<

}

Мысал 26. 1, 1/4, 1/9,…1/n2 тізбегінің әрқайсысы берілген Е- ден кем емес мүшелерінің қосындысын табыңдар.

main ()

{int i; float S, E;



cin >>E;

i=1;


do

S+=i/pow(i,2);

i++;

while (1/ pow(i,2) >E);



cout<<”S=”<

}
15 cұрақ

Кейбір бағдарламаларда белгілі-бір шарттардың сақталуына тәуелді командалардың қандай да бір бөлігі бірнеше рет қайталанады. Мұндай әрекеттерді жүзеге асыратын командаларды қайталану ( цикл) командасы деп атайды. Басқа да бағдарламалау тілдеріндегі сияқты С++ тілінде бағдарламаның қайталанатын бөлігін бағдарламалау үшін цикл операторының 3 түрі қолданылады.

Олар: 1) параметрлі цикл (“үшін” циклі)

2) әзір циклі (жалғасу шарты бар цикл)

3) дейін циклі (аяқталу шарты бар цикл)

Әзір” циклі

“Әзір” циклінің жазылуының жалпы түрі:



while (шартты_ өрнек)

цикл денесі;

Бұл циклде әзір шартты өрнектің мәні 0- ден өзге болғанда, яғни цикл шарты ақиқат болғанда цикл денесі орындалады.



Мысал 20. Екі таңбалы барлық сандардың ішінен 5-ке бөлінетін және 10-ға бөлінбейтін сандарды экранға шығаратын және олардың санын табатын бағдарлама құрыңдар. Бағдарламаның орындалу нәтижесі 5- суретте көрсетілген.

main()


{ int x, k=0;

x=10;


while (x<=99)

{if (x%5==0 && x%10!=0)

{cout<<"\n x="<

x++;}


cout<<"\n k="<getch();


}

Мысал 21. x-тің -5-тен 5-ке дейін 0,2 қадаммен өзгерген мәндері үшін у=х2-1 функциясының мәндерін экранға шығарыңдар.

main()


{ float х, у;

х=-5;


while (х<=5)

{y=pow(x,2)-1;

cout<<”\n x= ”<

х+=0.2;}


}

Мысал 22. Барлық екі таңбалы жұп сандардың көбейтіндісін табатын бағдарлама құрыңдар.

main()


{ int i; unsigned long int P=1;

i=2;


while (i<=98)

{ P=P*i; i+=2; } //немесе P*=i; i+=2;

cout<<”P=”<< P;

}

Мысал 23. Екі натурал санның ең үлкен ортақ бөлгішін және ең кіші ортақ еселігін табатын бағдарлама құрыңдар.

#include

#include

main()

{ int a,b,EYOB, EKOE,k;



cout<<"Екі сан енгіз"; cin>>a>>b;

k=a*b;


while (a!=b)

if (a>b) a=a-b; else b=b-a;

EYOB=a;

cout<<"\n EYOB="<

cout<<"\n EKOE="<

getch();


}

Параметрлі цикл

Оның жазылуының жалпы түрі:



for (1-өрнек;2- шартты_ өрнек; 3- өрнек)

цикл_ денесі;

мұндағы 1-өрнек цикл басында бір рет орындалады және цикл параметрінің бастапқы мәнін анықтайды;



2-шартты_ өрнек циклдің орындалуының шарты;

3- өрнек цикл параметрінің өзгеру қадамын анықтайды.

Мысалы: n факториалды (n!) есептеу бағдарламасының бөлігі:

p=1;

for (i=1; i<=n; i++)



p=p*i;

Бұл бөлікті басқаша жазуға да болады:

for (p=1; i=1; i<=n; i++)

p=p*i;


яғни, бастапқы мәнді цикл операторының ішіне кіргізуге болады.

Жақша ішінде кейбір элемент болмауы мүмкін, бұл жағдайда оларды бөлетін ; белгісін жазу міндетті.

p=1; i=1;

for (; i<=n; i++)

p=p*i;

Цикл денесін жақша ішінде жазуға болады, бұл жағдайда жақшадан кейін нүктелі үтір (;) белгісі қойылады:



for (p=1; i=1; i<=n; p=p*i, i++); немесе

for (p=1; i=1; i<=n; p*=i++) ;



Мысал 17. Екіден жиырмаға дейінгі барлық жұп сандардың қосындысын және көбейтіндісін табыңдар.

#include

#include

main()


{ int i; unsigned long int S=0, P=1;

for (i=2; i<=20; i=i+2)

{S+=i;

P*=i;}


cout<<"S="<

getch();

}

Нәтижеде S=110 P=3715891200 мәндері экранға шығады.



Цикл денесі құрама оператордан тұрса , онда олар {} фигуралық жақшаға алынады.

Паскаль тілінде бұл циклдегі қадам 1-ге ғана тең болса, мұнда қадамның мәні кез келген болады.



Мысал 18. Берілген бүтін санның барлық бөлгіштерін табыңдар.

main()


{ int i, n;

cout<<”Санды енгіз”; cin>>n;

for (i=1; i<=n; i++)

if (n%i==0) cout<<”i=”<

}

Мысал 19. Берілген санның көбейту кестесін шығарыңдар.

main()


{ int x,i;

cout<<"Sandi engiz ";cin>>x;

for (i=1; i<=9; i++)

{cout<

cout<<"\n";}

getch();


}

Дейін” циклі

“Дейін” циклінің жазылу форматы:

do

цикл денесі

while (шартты_ өрнек);

Бұл циклде цикл денесі ең болмағанда бір рет орындалады. Шартты өрнектің мәні 0- ден өзге болғанда, яғни цикл шарты ақиқат болғанда цикл денесі орындалады, керісінше жағдайда цикл аяқталады. Бұл цикл Паскаль тіліндегі repeat .. until цикліне ұқсас, айырмашылығы бұл циклде Паскальда кері шарт жазылса, мұнда тура шарт жазылады.



Мысал 24. n факториал (n!) табу есебін “дейін” циклі арқылы жүзеге асырайық.

main()


{ int i, n; long int P;

cout<<"Cан енгіз"; cin>>n;

P=i=1;

do

P*=i; i++; //немесе P*=i++;



while (i<=n);

cout<<”n!=”<




}

Мысал 25. Алғашқы 10 жұп санның көбейтіндісі мен арифметикалық ортасын табыңдар.

main ()


{ int i, P=1, S=0;

i=2;


do

P*=i; S+=i;

i=i+2;

while (i<=20);



cout<<”Көбейтінді=”<
Арифм.орта=”<

}

Мысал 26. 1, 1/4, 1/9,…1/n2 тізбегінің әрқайсысы берілген Е- ден кем емес мүшелерінің қосындысын табыңдар.

main ()

{int i; float S, E;



cin >>E;

i=1;


do

S+=i/pow(i,2);

i++;

while (1/ pow(i,2) >E);



cout<<”S=”<



Достарыңызбен бөлісу:
1   2   3   4   5   6   7




©engime.org 2024
әкімшілігінің қараңыз

    Басты бет