Тапсырмалар 1. Үш натурал сандар берілген. Олардың ең үлкен ортақ бөлгішін (ЕҮОБ) анықтайтын
функцияны құру керек.
2. а,b,c,d кесінділері берілген. Осы кесінділердің кез келген үшеуін қарастыра отырып, олардан үшбұрыш тұрғызуға болатын/болмайтынын анықтап, үшбұрыш тұрғызылатын жағдайда, оның ауданын табу керек. Үшбұрыштың ауданы ) )( )( ( z p y p x p p S − − − ∗ =, мұндағы p=(x+y+z)/2.
3. Натурал N саны берілген. Ол екі x және y бүтін сандарының квадраттарының қосындысына тең болатын болса N=x 2+y 2, онда x, y сандарын анықтайтын функцияны құру керек.
4. Нақты x, y (x>0, y>1) сандары берілген, y k-1 ≤ x < y k шартын қанағаттандыратындай k бүтін санын (оң, теріс немесе нөлге тең) табу керек.
5. Натурал N саны берілген (N > 99). Ондағы жүздіктер санын анықтаңыз.
6. Натурал N саны берілген (N≤ 99). N саны N санының цифрларының қосындысының кубына тең екендігін тексеру керек.
7. Натурал N саны берілген (N > 10000). N санының алғашқы K разрядтарының қосындысын анықтаңыз (K ≤ 4).
8. Натурал n, m сандары берілген, n санының соңғы m цифрларының көбейтіндісін табу керек.
9. Натурал N саны берілген. N санының жазбасынан басқа цифрлардың ретін өзгертпей 0 және 5 цифрларын алып тастау керек. Мысалы, 59015509 санынан 919 саны шығады.
10. Натурал N саны берілген. K 2-қа бөлінетін және K 3-қа бөлінбейтін барлық натурал K-ларды табу керек.
12. Егер N цифрдан тұратын натурал санның цифрларының қосындысын n-ші дәрежеге шығарғанда, сол санның өзіне тең болатын болса, ондай сан Армстронг саны деп аталады (мысалы, 153=13+53+33 ). Екі, үш және төрт цифрдан тұратын барлық Армстронг сандарын табу керек.
13. 1-ден n-ға дейін нөмірленген (n=10) n елді мекен бар. Кейбір қос елді мекендер жолдармен қосылған. Осы жолдар арқылы бірінші елді мекеннен n-шісіне жетуге болатынын немесе болмайтынын анықтау керек. Жолдар туралы ақпарат i-ші және ј-ші елді мекендердің жолдармен қосылғанын білдіретін i және j ( i14. Екі ұшбұрыштың төбелерінің координаталары берілген. Олардың қайсысының ауданы үлкен екенін анықтау керек.
15. Жазықтықтағы үш түзу akx+bky=ck (k = 1,2,3) теңдеулерімен берілген. Егер ол түзулер қос-қостан қиылысып, үшбұрыш құрайтын болса, сол үшбұрыштың ауданын табу керек.
16. Екі жай санның бір-бірінен айырмашылығы 2-ге тең болса, олар “егіздер” деп аталады (мысалы, 41 және 43 сандары). [n, 2n] аралығындағы барлық “егіздерді” анықтау керек, мұндағы n – 2-ден үлкен бүтін сан.
№ 9-10 өзіндік жұмыстар. Сөз тіркестерін өңдеу
Жұмысты орындауға арналған әдістемелік нұсқаулар
Сөз тіркестері немесе тіркестер (string – строки) – қостырнақшаға алынған символдар тізбегі. Әрбір тіркес соңына компилятор ‘ \0’ басқару симолымен белгіленетін нөлдік байт (тіркес соңы белгісі немесе нөл-терминатор) қосады.
Тіркестер char типті бір өлшемді символдар жиымы ретінде қарастырылады. Жиым элементтерінің саны тіркестегі элементтер санынан бірге (нөлдік байтқа) артық болады.
Сондықтан егер тіркесте k символ болса, онда жиымды сипаттауда k+1 элемент көрсетілуі тиіс. Программадағы сөз тіркесі бірнеше жолға да орналаса береді. Оны келесі жолға тасы-малдау үшін кері слеш ( \ ) және Enter пернесін басу қолданылады. Кері слеш таңбасын компилятор жолдарды жалғастыру деп түсінеді.
Тіркестермен жұмыс істеу кезінде нұсқауыштарды қолданған ыңғайлы болып саналады.
Мысал. Программаға енгізілген символдар тіркесін кері бағытта жазып шығу қажет.
#include void main()
{
int top,bot;
char string[10],temp;/*тіркесті символдар жиымы ретінде
сипаттау*/
printf(“Сөз енгізіңіз:”);
scanf("%s",string);
/* сөз тіркесін енгізуде & символы қолданылмайды, өйткені жиым
аты оның алғашқы элементіне нұсқауыш болып саналады */
bot=strlen(string)-1;
for(top=0;top < bot; top++,bot--)
{
temp=string[top];
string[top]=string[bot];
string[bot]=temp;
}
printf("%s\n",string);
}
Бір символды енгізу/шығару. Символдарды біртіндеп енгізу/шығару үшін printf()
және scanf() функцияларының %c форматы қолданылады.
Бір символды енгізу үшін getchar() – параметрсіз функциясы да қолданылады, ол пернеден символдарды бір-бірлеп енгізеді. Сөз тіркесі пернесі басылғанша енгізіле береді, оған дейін оны өзгертуге де болады. Ал бір символды экранға шығару үшін putchar(ch) функциясын қолданамыз, мұндағы ch – шығарылатын символ. Осы аргумент ретінде жеке символ (басқару символдарын да пайдалануға болады), айнымалы идентифи-каторы, мәні бір символ болып келетін функция да қолданыла береді.getch() – параметрсіз функция, басылған перненің кодын (int) береді, экранға ешқандай символ шығармайды.
putch(c) – бір символды (c – cимволдық айнымалы немесе константа), яғни бір
таңбаны ғана экранға шығарады.
Бұлар conio.h тақырып файлы бойынша жұмыс істейді.
Мысал. Бір символ енгізіп, оны экранға шығару керек болсын делік.
#include void main()
{
char ch;
ch=getchar();
putchar(ch);
}
Мысал. Символдарды пернесі басылғанша енгізіп, экранға шығару програм-масы. Программа нүкте символы терілгенде барып аяқталады.
#include #define STOP ‘.’
void main()
{ char ch;
while((ch=getchar())!= STOP)
putchar(ch);
}
Мұнда while сөзінен кейінгі тұрған шартта бірден үш әрекет іске асырылған: getchar() функциясы арқылы символ енгізу; символды ch айнымалысына меншіктеу; енгізуді аяқтауды тексеру. Символдар тіркесін енгізуді аяқтау үшін, препроцессор директивасымен анықталған STOP идентификаторы қолданылып отыр.
Сөз тіркестерін енгізу функциялары scanf(), gets(str).
Scanf() функциясы тіркестік айнымалылар мәнін %s форматымен енгізеді, бірақ ол тіркесті тек бірінші босорын таңбасына дейін ғана енгізе алады.
Ал gets(str) функциясы арасында босорыны бар тіркестерді енгізеді, енгізу ENTER пернесімен аяқталады.
Екі функция да тіркес соңына нөлдік байт қосып жазады. Оның үстіне тіркес –
символдық жиым болып, ал жиым аты – оның компьютер жадындағы алғашқы адресіне сілтеме болғандықтан, тіркестік айнымалы атының алдына «&» символы жазылмайды. Сөз тіркестерін шығару функциялары printf(), puts() printf() – экранға %s форматымен сөз тіркесін шығарады;
puts(str) – экранға сөз тіркесін шығарып, курсорды бірден келесі жолдың басына алып барады, мұндағы str – тіркестік константа немесе тіркестік айнымалы. Бұлар stdio.h тақырып файлы бойынша жұмыс істейді.
Екі функция да символдық жиымды нөлдік байтқа дейін шығарады. printf() функциясы символ тіркесі шығарылған соң, курсорды келесі жолға көшірмейді, ол үшін арнайы формат (\n) жазылуы тиіс. Ал puts() функциясы символдар шығарылған соң, автоматты түрде курсорды келесі жол басына көшіреді.
Сөз тіркестерімен орындалатын басқа операциялар да стандартты функциялар арқылы атқарылады. Ол функциялар жұмыс істеуі үшін string.h тақырыптық файлы қажет.
Жалпы сөз тіркестеріне қолдану үшін stdlib.h немесе string.h тақырыптық файлдары қолданылады.