13. n
натурал саны берілген. Есептеңіз:
a)
∑
=
n
k
k
1
1
;
б)
∑
=
n
k
k
1
5
1
;
в)
∑
=
+
n
k
k
1
2
)
1
2
(
1
; г)
∑
=
+
−
n
k
k
k
k
1
)
1
2
(
)
1
(
;
103
1
101
...
1
5
1
3
1
1
1
+
+
+
+
89
№ 5-6 өзіндік жұмыстар. Жиымдарды өңдеу
Тапсырмаларды орындау үшін әдістемелік нұсқаулар
Жиым немесе массив – бір типтегі элементтердің реттелген жиыны. Олар бір атаумен
–
идентификатормен аталады да, индексті айнымалы ұғымына сәйкес келеді. Мысалы,
мынадай тізбек 0 1 1 2 3 5 8 13 21
Фибоначчи тізбегінің 9 элементін құрайды (алғашқы екі санды таңдап алып, келесі санды
алдыңғы екеуін қосу жолымен алады). Ал мынау өзіне және бірге бөлінетін жай сандар
тізбегінің алғашқы 7 элементі: 1 3 5 7 11 13 17
Осындай бір текті тізбектерді жиым түрінде С тілінде сипаттап, оған бастапқы мән беріп
инициалдау үшін былай жазамыз:
int fib[8]={0, 1, 1, 2, 3, 5, 8, 13, 21};
немесе
int fib[]={0, 1, 1, 2, 3, 5, 8, 13, 21};
деп көрсетеміз.
Жиым элементтерін енгізу немесе оларды түрлендіру үшін цикл операторлары
қолданылады. Төменде 10 элементі бар жиымды 0-ден 9-ға дейінгі сандармен толтырып,
сонан кейін оларды кері бағытта экранға шығару мысалы көрсетілген:
main ()
{int ia[10];
int index;
for (index = 0; index <10; index ++)
ia[index] = index;
for (index = 9; index >=0; index --)
printf(“ %i”, ia[index]);
}
Есеп. Бақытты билет нөмірлерін экранға шығару керек.
//
бақытты
билеттер нөмірлерін шығару
#include
#include
main()
{ int a,b,c,x,y,z;
clrscr();
for (a=0; a<9; a++)
for (b=0; b<9; b++)
for (c=0; c<9; c++)
for (x=0; x<9; x++)
for (y=0; y<9; y++)
for (z=0; z<9; z++)
if (a+b+c==x+y+z)
printf("%i%i%i%i%i%i\n",a,b,c,x,y,z);
}
Тапсырмалар
1. Кез келген сандардың бiрөлшемдi А(10) жиымындағы оң элементтердi екi есе кемiтiңдер,
ал терiс элементтерi болса, онда оларды индекстерiнiң мәнiмен ауыстырыңдар.
2. Бiрөлшемдi А(10) жиымындағы терiс элементтердiң ең үлкенiн табыңдар.
3. Бiрөлшемдi А(20) жиымындағы –5-тен кiшi элементтердiң қосындысын және олардың
жалпы санын, сонымен бiрге 5 санына еселiк болатын элементтердiң нөмiрлерiн анықтаңдар.
4. Бiрөлшемдi А(10) жиымындағы оң элементтердiң квадраттарының арифметикалық
ортасын есептеңдер.
5. Бiрөлшемдi А(100) жиымындағы терiс элементтердiң бiрiншi тобындағы элементтердiң
санын анықтаңдар.
6. Бiрөлшемдi жиым мәндерi берiлген диапазонда жататын элементтерiнiң нөмiрiн басып
шығарыңдар.
7. Бiрөлшемдi А(10) жиымындағы оң элементтердiң iшiнде мәнi ең кiшiсiн және оның
индексiн (нөмiрiн) табыңдар.
90
8. Бiрөлшемдi жиымда 2-элементтi бiрiншi орынға, 3-нi 2-шiмен және т.б. алмастырулар
орындай отырып, 1-элементi соңғы орынға қойыңдар.
9. Берiлген оң сандар тiзбегiндегi қосындысы берiлген саннан асып кетпейтiн элементтердiң
санын табыңдар.
10. Ұтыс билетiнiң нөмiрi алты орынды сан. Билет “бақытты” (алдыңғы және соңғы үш
цифрының қосындысы өзара тең) немесе “табысты” (жұп орындарда тұрған цифрлардың
қосындысы тақ орында тұрғандардың қосындысына тең) болатындығын анықтаңдар.
11. Оң және терiс сандар тiзбегiндегi бiрiншi терiс санға дейiнгi орналасқан сандар тiзбегiнiң
өсу ретiмен орналасатындығын анықтаңдар.
12. N
кәсiпорынның бiр жылғы электр энергиясын тұтынуы туралы дерек бар. Осы бойынша
энергия тұтынудың арифметикалық ортасын және энергияны ең көп үнемдеген кәсiпорынды
анықтаңдар.
13. 14 аудан бойынша жанармай қорының мөлшерi белгiлi. Жанармаймен еңжақсы
қамтылған үш ауданды анықтаңдар.
Көп өлшемді жиымға тапсырмалар
1. Өлшемi 4х8 болатын бүтiн сандар жиымындағы барлық жұп нөмiрлi элементтерiнiң
қосындысын табыңдар.
2. Бүтiн сандардың 5х5 өлшемдi жиымындағы бас диагональда орналасқан барлық
элементтердiң қосындысын табыңдар.
3. Бүтiн сандардың 7х4 өлшемдi жиымындағы максимал элементтiң жолы мен бағана
нөмiрлерiн табыңдар.
4. Бүтiн сандардың 6х5 екiөлшемдi жиымы бар. Элементтерiнiң арифметикалық орта мәнi
максимал болатын жолдың нөмiрiн табыңдар.
5. Бүтiн сандардың 5х9 өлшемдi жиымында бiрдей нөмiрлi жол мен бағананың орнын
алмастырыңдар.
6. Бүтiн сандардың екi өлшемдi жиымындағы жолдың максимал элементтерiнiң арасындағы
минимал элементтi табыңдар.
7.
Бүтiн сандардың екiөлшемдi жиымында максимал элементi бар бағанды өшіріп тастаңдар.
8. Бүтiн сандардың екiөлшемдi жиымындағы қайталанбайтын барлық элементтердi
табыңдар.
9. Екiөлшемдi жиымды 1-ден 100-ге дейiнгi бүтiн сандармен орама (спираль) бойымен
толтырыңдар.
1
0. Бүтiн сандардың екiөлшемдi жиымының барлық элементтерiн сол жолдардағы
элементтердiң қосындысынан солардың ішіндегі ең кiшi элементтер айырмасымен
алмастырыңдар.
1
1. Бүтiн сандар жиымының жолдарын кему ретi бойынша сұрыптаңдар.
1
2. Жиымның тақ орындардағы бағаналарында тұрған элементтерді өсу ретiмен орналастыра
отырып сұрыптаңдар.
1
3. Шеберханада шығарылған түрлi тетiк бөлшектер мен олардың бағасы берiлген. Осы
мәлiметтерді а) бағалардың өсуi және ә) тетiк бөлшек атауларын алфавиттiк ретi бойынша
сұрыптаңдар.
7-8
өзіндік жұмыстар. Тұтынушы функциясын пайдалану
Жұмысты орындауға арналған әдістемелік нұсқаулар
Функцияны алдын ала сипаттау барысында программалық файлдың басында оның
прототипі көрсетіледі, өйткені main функциясында оның айнымалылары типтері белгілі
болуы тиіс. Ол келесі түрі жазылады:
<нәтиже_типі> <функция _ аты>(<тип> <айнымалы1>, <тип>
<айнымалы2>, …<тип> <айнымалыN>);
Прототиптегі жай жақшаларға алынған айнымалылар идентификаторларын көрсетпесе де
болады, өйткені тілдің компиляторы оларды өңдемейді.
Параметрлер тізімімен берілген fun функциясын сипаттаудың мысалы:
91
float fun(int, float, int, int);
Функция прототипі компиляторға программа мәтінінде негізгі программадан (main())
кейін оның толық анықтамасы келтірілетінін білдіреді.
Функцияның толық анықталуының жазылу түрі төмендегідей:
<нәтиже_типі> < функция _ аты >(параметрлер
тізімі)
{ функция коды
}
Нәтиже_типі return операторының көмегімен функцияның шақырылу нүктесіне
қайтарылатын мәннің типін көрсетеді. Егер функция типі көрсетілмесе, қайтарылатын мән
int
типті деп саналады. Параметрлер тізімі үтірмен ажыратылған типтер мен параметрлер
аттарының тізбегінен тұрады. Егер функцияның параметрлері болмаса да, жай жақшалар
бәрі бір міндетті түрде көрсетілуі тиіс.
Return
операторы берілген функциядан бірден шығып, нәтиженің оны шақырушы
функцияға қайтарылуын қамтамасыз етеді, яғни бұл оператор функция жұмысы нәтижесін
қайтару қызметін атқарады. Функция тұлғасында бірнеше return операторы болуы немесе
бірде бір рет кездеспеуі де мүмкін екендігін айта кеткен жөн. Мұндай жағдайда шақырушы
функцияға қайту оның тұлғасындағы соңғы оператор орындалғаннан кейін барып жүзеге
асырылады.
Екі бүтін санның ішіндегі үлкенін анықтайтын функцияның мысалы:
int maxi(int x, int y)
{
if (x>y)
return (x);
else
return (y);
}
Егер қайтарылатын мәннің типі көрсетілмесе, ол int типті болып есептеледі.
Си тіліндегі мәнді қайтаратын барлық функциялар өрнектердің оң жағында жазылуы
тиіс, өйтпеген жағдайда ешқандай да нәтиже қайтарылмайды. Бірақ функция нәтижесінің
адресі қайтарылатын жағдайда, ол сол жақта болуы керек.
Егер функция ешқандай мән қайтармайтын болса, онда ол
void
(бос) типті функция
ретінде сипатталуы тиіс. Мысалы, дисплей экранына бір толық жолды шығару үшін келесі
функцияны жазамыз:
void lin(char a)
{
int k;
for(k=0; k<80; k++)
printf(“%c”, a);
}
Егер функцияда ешқандай параметр болмаса, онда функцияны декларациялау
барысында жай жақша ішіне
void
сөзін жазған дұрыс. Мысалы, негізгі функция
тақырыбының көбінесе былай жазылуы мүмкін:
void main(void)
.
Си тілінде әрбір функция – программаның жеке бөлігі, оны орындау үшін осы
функцияны шақыру керек. Мысалы, goto операторы арқылы басқаруды кез келген
функцияның тұлғасына беруге болмайды.
Функция келесі түрде шақырылады:
<функция_аты>(аргументтер_тізімі);
мұндағы аргументтер ретінде тұрақтыларды, айнымалыларды, өрнектерді (олардың мәндері
функцияны шақырудан бұрын программада анықталады) қолдануға болады. Функцияны
шақыру тізімінің аргументтері сол функцияның анықталу параметрлерінің тізімімен саны
жағынан, орналасу ретімен, сәйкес параметрлері типтерімен толықтай үйлесуі тиіс.
92
Аргументтер жоқ болған жағдайда да, функция атынан кейінгі жай жақшалардың болуы
міндетті.
Тапсырмалар
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
2
саны
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-
ларды табу керек.
11.
Натурал n және m сандары берілген, A(n,m) мәнін есептеу керек, мұндағы
=
=
−
−
=
≠
−
=
+
=
0
,
0
)),
1
,
(
,
1
(
0
,
0
),
1
,
1
(
0
,
1
)
,
(
m
n
егер
m
n
A
n
A
m
n
егер
n
A
n
егер
m
m
n
A
12.
Егер N цифрдан тұратын натурал санның цифрларының қосындысын n-ші дәрежеге
шығарғанда, сол санның өзіне тең болатын болса, ондай сан Армстронг саны деп аталады
(мысалы, 153=1
3
+5
3
+3
3
). Екі, үш және төрт цифрдан тұратын барлық Армстронг сандарын
табу керек.
13.
1-
ден n-ға дейін нөмірленген (n=10) n елді мекен бар. Кейбір қос елді мекендер
жолдармен қосылған. Осы жолдар арқылы бірінші елді мекеннен n-шісіне жетуге болатынын
немесе болмайтынын анықтау керек. Жолдар туралы ақпарат i-ші және ј-ші елді мекендердің
жолдармен қосылғанын білдіретін i және j ( iОл тізбектің аяқталғанының белгісі – қос нөл (00).
14.
Екі ұшбұрыштың төбелерінің координаталары берілген. Олардың қайсысының ауданы
үлкен екенін анықтау керек.
15.
Жазықтықтағы үш түзу a
k
x+b
k
y=c
k
(k =
1,2,3) теңдеулерімен берілген. Егер ол түзулер
қос-қостан қиылысып, үшбұрыш құрайтын болса, сол үшбұрыштың ауданын табу керек.
16.
Екі жай санның бір-бірінен айырмашылығы 2-ге тең болса, олар “егіздер” деп аталады
(мысалы, 41 және 43 сандары). [n, 2n] аралығындағы барлық “егіздерді” анықтау керек,
мұндағы n – 2-ден үлкен бүтін сан.
93
№ 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();
94
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
тақырыптық
файлдары қолданылады.
Тапсырмалар
1.
п символдан тұратын сөз тіркесі берілген.
а) осы тіркес ішінде x әрпі неше рет кездеседі екен;
б) берілген тіркес ішінде цифрлар символы неше рет кездеседі;
в) осы тіркес ішіндегі барлық леп белгісін нүктемен алмастырыңыз;
г) осы тіркес ішіндегі бір нүктені көп нүктемен (яғни үш нүктемен) алмастырыңыз;
д) осы тіркес ішінде неше үтір және неше сызықша бар екендігін анықтау керек;
е) осы тіркес ішіндегі ең қысқа сөзді экранға шығарыңыз;
ж) осы тіркес ішіндегі ең ұзын сөзді экранға шығарыңыз;
и) осы тіркес ішіндегі неше сөз бар екенін анықтаңыз;
к) осы тіркес ішіндегі ең бірінші үтірдің нешінші символ екенін табыңыз;
л) осы тіркес ішіндегі ең соңғы үтірдің нешінші символ екенін табыңыз;
м) осы тіркесті экранға кері бағытта жазып шығыңыз;
н) осы тіркес ішіндегі алғашқы үтірге дейінгі сөздерді экранға шығарыңыз;
2. Символдар тіркесі берілген.
95
а) сол тіркестегі барлық '*' символын алып тастап қалғандарын екі рет қайталап
жазыңыз;
б) сол тіркестегі жақшалар арасында жазылған символдарын жақшасымен бірге өшіріңіз.
Жақша ішінде жақша жоқ деп есептеңіз.
в) сол тіркестегі ең алғашқы қос нүктеден кейін жазылған символдарды экранға
шығарыңыз;
г) сол тіркестегі барлық үлкен әріптерді кіші әріптермен алмастырыңыз;
д) тіркес ішінде екі нүкте бар деп есептеп, осы нүктелер арасында орналасқан барлық
символдарды экранға шығарыңыз;
е) сол тіркес ішіндегі цифрларды алып тастап, қалған тіркесті экранға шығарыңыз;
ж) сол тіркестегі үлкен әріптер санын есептеңіз.
и) сол тіркестегі қатар орналасқан бес 'ав' әріптерінің бар немесе жоқтығын анықтаңыз;
к) сол тіркестегі қатар орналасқан бірнеше бос орындарды бір бос орынмен
алмастырыңыз.
3
. Берiлген сөздің жұп нөмiрлi орындарында қанша “ о” әрпi бар екендiгiн анықтайтын
программа жазыңдар.
4
. Студенттің фамилиясы, есiмi және әкесiнiң аты бос орындармен бөлiнiп берiлген.
Студенттің аты-жөнінің инициалдарын (алғашқы әрiптерiн) басып шығаратын программа
жазыңдар.
5
. Сөз тіркесіндегi а әрпiн өшіретін программа жазыңдар.
6
. Мәтiндегi соңғы әрiппен бiрдей әрiптердi жоятын программа жазыңдар.
7.
Z, Х сөздері берілген. Z сөзiнде кездесетiн барлық әрiптердi Х сөзiнен өшіріп тастайтын
программа жазыңдар.
8
. Берiлген сөздегi әр түрлi әрiптердiң санын есептейтiн программа жазыңдар.
9
. Сөздердiң әрбiр үшiншi әрпiн жоятын программа жазыңдар.
10
. Берiлген мәтiндегi “ Айна” сөзiн “ Асыл” сөзiне өзгертетiн программа жазыңдар.
11
. Пернетақтадан енгiзiлген символды жазылған сөз тiркесінен өшіретін программа
жазыңдар. Өшіру процесiн жеке функция етіп қарастырыңдар.
12
. Берiлген мәтiндегi кездесетiн “ а” әрпiн “ о” әрпiне ауыстырыңдар.
13.
Бос орындармен бөлініп жазылған үш сөзден тұратын сөйлемдегi ең қысқа сөздiң
ұзындығын есептеп шығаратын программа жазыңдар.
11-12
өзіндік жұмыстар. Файлдарды өңдеу
Жұмыстарды орындауға арналған әдістемелік нұсқаулар
Файлдармен жұмыс істегенде бірнеше стандартты функцияларды қолдану керек. Файлды
ашу үшін fopen() функцияcы қолданылады, мысалы:
fp=fopen(name,mode)
мұнда
fp
–
файлға сілтейтін нұсқауыш;
name
–
файлдың аты, көбінесе символдық тіркес
арқылы жазылады;
mode
–
бұл параметр файл қандай режимде қолданылатынын көрсетеді,
бұл да символдар тіркесімен төмендегідей түрде жазылады:
"r" –
файлды оқу үшін ашу (файл бұрын ашылған болуы тиіс);
"w" –
бос файлды информация жазу үшін ашу;
"a" –
файл соңына мәлімет қосып жазу үшін оны ашу;
"r+"–
файлдан информация оқу және оған информация жазу үшін ашу);
"w+"–
бос файлдан информация оқу және оған мәлімет жазу үшін файл ашу (бұрын файл
болса, ол өшіріледі);
"a+"–
файлдан информация оқу және оның соңына информация қосып жазу үшін ашу).
fprintf
және
fscanf
функцияларын пайдалану
fprintf -
файлға информация жазу үшін, ал
fscanf –
файлдан информация оқу үшін
қолданылады. Олардың жалпы жазылу түрі:
fprintf(fp, “спецификация шаблоны”,p);
96
p-
өрнек
;
Файлға сілтейтін нұсқауыш келесі түрде сипатталады:
FILE *fp;
fscanf(fp, “спецификация шаблоны”,адрес);
Тапсырмалар
1. Файлдан сандар оқып, солардың ішіндегі теріс сандар қанша екенін анықтайтын программа
құру керек.
2.
Файлдан сөз тіркесін оқып, солардың ішіндегі 6 символдан артық сөздерді экранға
шығарып, басқа файлға жазып шығыңдар.
3. Файлдан сандар оқып, солардың арифметикалық ортасын файл соңына қосып жазу керек.
4. Файлдан сөз тіркесін оқып, солардың керісінше жазылған нұсқасын басқа бір файлға жазып
шығыңдар.
5. Файлдан сандар оқып, солардың максимумын анықтайтын программа құру керек.
6. Файлдан сөз тіркесін оқып, солардың ішіндегі бос орын орнына сызықша жазып оны басқа
бір файлға жазып шығу керек.
7. Файлдан сандар оқып, солардың минимумын анықтайтын программа құру керек.
8.
Бір файлда екі сөйлем жазылған, соның екінші сөйлемін басқа файлға жазып шығу керек.
9. Файлдан сандар оқып, солардың көбейтіндісін анықтайтын программа құру керек.
10. Сөз тіркесінен тұратын файлдағы бас әріптерді кіші әріптерге айналдырып, басқа файлға
жазып шығу керек.
11. Файлдан сандар оқып, солардың нешеуі 5-тен артық екенін анықтау керек
12. Сөз тіркесінен тұратын екі файл берілген. Осы екі файлдағы сөз тіркестерін біріктіріп,
үшінші файлға жазып шығыңдар.
13. Файлдан сандар оқып, солардың қосындысын анықтау керек
14. Сөз тіркесінен тұратын екі файл берілген. Осы екі файлдағы сөз тіркестерінің орнын
ауыстырып жазып шығу керек.
15. Файлдан сөз тіркесін оқып, солардың ішіндегі ең ендісін анықтап, соның неше символдан
тұратынын анықтау қажет.
13-14
өзіндік жұмыстар. Графикалық режимде жұмыс істеу
Жұмыстарды орындауға арналған әдістемелік нұсқаулар
Графикалық режимдегі жұмыстарды атқаратын ТурбоС нұсқасында бірсыпыра
графикалық функциялар бар, солардың негізгілеріне тоқталып өтеміз.
Графикалық режим орнату, одан шығу, мәтін жазу, сызық салу функциялары
Графикалық режим драйверін іске қосу функциясы
initgraph(&Driver,&Mode,Path);
Driver
параметрі бейнелік жүйе драйверін анықтайды, Mode параметрі – бейнелік жүйе
жұмыс режимін береді, ал Path параметрі – драйвер файлының орнын көрсетеді. Көбінесе
Driver
параметрі мәні ретінде detect болатын бүтін константа қолданылады. Мұндайда init-
graph
функциясының өзі графикалық драйвер типін анықтап, ең дұрыс режимді таңдап
алады. Тақырыптық файлы:
Драйвер дұрыс оқылған соң, initgraph( ) функциясы 4К көлемінде (келісім бойынша) ішкі
графикалық буфер ұйымдастырады да, экран түсі, сызықтар түсі анықталып, дисплей
адаптері графикалық режимге кіреді. Экран тазаланып, курсор сол жақ жоғарғы бұрышқа
орнатылады.
Егер BGI-файлдар ағымдағы бумада болса, initgraph() функциясының үшінші параметрі
ретінде бос орын мәнін беруге болады
initgraph(&Driver,&Mode," ");
Графикалық режимнен шығу және оған бөлініп берілген жады бөлігін босату үшін,
яғни бейнеадаптер буферін тазартып, бұған дейінгі мәтіндік режимді қалпына келтіру
мақсатында мына функция қолданылады
closegraph();
97
Графикалық режимде сызық түстерін, тұйық сызықтар ішін түрлі түске бояуға болады.
Ол үшін мәтіндік режимдегідей түстер кодтары және олардың ағылшынша атаулары
қолданылады.
Сызықтар түсін тағайындау функциясы
setcolor(col);
мұндағы
сol – түс атауы немесе түс коды. Сызық және мәтіндер түсі осы функциямен
беріледі. Ал сызық типі
setlinestyle()
функциясы арқылы тағайындалады.
Түстер бүтін сан түріндегі кодпен немесе константа түрінде бас әріппен жазылатын
ағылшынша түс атауларымен беріледі.
Мысалы:
setcolor(YELLOW); setcolor(3); setcolor(5);
Экранның фоны түсін өзгерту функциясы
setbkcolor (түсі);
Мысалы:
setbkcolor(BLUE); setbkcolor(14);
Өзіндік жұмыс нұсқалары
1.Экранда шағын үй бейнесін салатын программа құру керек.
2.Экранда олимпиада жалауын (түрлі түсті 5 сақина) салатын программа құру керек.
3.Экранда ракета бейнесін салатын программа құру керек.
4.Экранда кеме бейнесін салатын программа құру керек.
5.Экранға әр түрлі радиустағы шеңберлер салып олардың ішін бояу керек. Сызық түстері
мен ішкі бояу түстері өзгеріп тұруы қажет.
6.Экранда бес жұлдыз бейнесін салатын программа құру керек.
7.Экранда алты жұлдыз бейнесін салатын программа құру керек.
8.Экранда сегіз жұлдыз бейнесін салатын программа құру керек.
9.Экранда Қазақстан Республикасы туын салатын программа құру керек.
10.Экранда Ресей туын (түрлі түсті үш төртбұрыш) салатын программа құру керек.
1
1. Дисплей экранына велосипедшінің схемалық бейнесін шығару программасын жасаңыз.
Программаны жібергенде велосипедші велосипед педалін аяғымен айналдырып, өз қимылын
бастайды.
1
2. Дисплей экранына адамның схемалық бейнесін шығару программасын жасаңыз.
Программаны жібергенде адам аяқ-қолын сәйкесінше қозғалтып өз жүрісін бастайды.
1
3. Дисплей экранының жоғарғы бөлігіне бұлт бейнесін шығару программасын жасаңыз.
Программаны жібергенде бұлт жылжып, одан жаңбыр жауа бастайды. Сонымен қатар бұлт
көлемі біртіндеп кішірейеді.
98
АЛМАТЫ ЭКОНОМИКА ЖӘНЕ СТАТИСТИКА АКАДЕМИЯСЫ
«Информатика» кафедрасы
«050703-
Ақпараттық жүйелер» мамандығына арналған
«
Программалау технологиялары» пәні бойынша
СТУДЕНТТІҢ ӨЗІНДІК ЖҰМЫСЫН ОРЫНДАУЫ БОЙЫНША
ӘДІСТЕМЕЛІК НҰСҚАУЛАР
Алматы, 2014
99
1.
Сызықтық алгоритмдер
Берілген есептердің блок-схемасы мен есептеу программасын жазыңдар.
1.
Төмендегі функциялардың мәндерін берілген аралықта h қадаммен есептеңіздер.
а)
1
cos
5
+
=
+
x
x
e
y
, x
∈[0;4], h
=0,5; ә)
x
y
π
cos
10
−
=
, x
∈[-1;1], h= 0,1;
б)
x
x
x
y
2
3
sin
3
−
=
, x
∈[1;2], h
= 0,2; в)
)
1
ln(
x
y
+
=
, x
∈[2;3], h=0,1;
2.
x, y, z берілген. a, b-ны есептеу керек:
b=x*(arctg z + e
-(x + 3)
);
3.
x, y, z берілген. a, b-ны есептеу керек:
a = y +
|
3
/
|
3
2
3
x
y
x
y
x
+
+
,
b = (1 + tg
2
2
z
) ;
4.
x, y, z берілген. a, b-ны есептеу керек:
a =
y
x
2
sin
2
/
1
)
6
/
cos(
2
+
−
π
,
b =
5
/
3
1
2
2
z
z
+
+
;
5.
x, y, z берілген. a, b-ны есептеу керек:
a =
x
y
x
x
x
y
x
+
+
−
+
+
+
|
)
1
/(
2
|
2
)
(
sin
1
2
2
2
,
b = cos
2
(arctg
z
1
) ;
6.
x, y, z берілген. a, b-ны есептеу керек:
a = ln | (y-
|
| x )(x-
4
/
2
x
z
y
+
)| ,
b = x -
!
3
2
x
+
!
5
2
x
.
7.
Екі нақты сан берілген. Солардың арифметикалық ортасын және модульдерінің
геометриялық ортасын табыңдар.
8.
Үшбұрыш төбелерінің координаттары берілген. Сол үшбұрыштың периметрі мен
ауданын анықтаңдар.
9.
Арифметикалық прогрессия мүшелерінің a, a + d, … , a + ( n – 1 )d қосындысын берілген
a, d, n
мәндері арқылы анықтаңдар.
10.
Тікбұрышты үшбұрыштың гипотенузасы мен бір катеті берілген. Соның екінші катеті
мен іштей сызылған шеңбер радиусын табыңдар.
11.
Массалары m1 және m2, ара қашықтықтары r болып келген денелердің бір бірін тарту
күшін F анықтаңдар.
12.
x, y нақты сандары берілген. Көбейту, қосу және алу амалдары арқылы ғана мына өрнек
мәнін 3x2y2 – 2xy2 – 7x2y – 4y2 + 15xy + 2x2 – 3x + 10y + 6 есептеңдер. Амалдар саны
сегіз көбейтуден және сегіз қосу мен алудан аспайтын болсын.
13.
h биіктіктен жерге құлайтын тастың түсу уақытын табыңдар .
14.
Егер биіктігі мен табанының ұзындығы белгілі болса, ұшбұрыш ауданын есептеу
программасын жазыңыз.
100
2-3.
Тармақталу алгоритмдері
Берілген есептердің блок-схемасы мен есептеу программасын жазыңдар.
1.
а)
( )
≥
+
<
+
=
;
5
,
7
;
5
,
6
5
3
2
x
егер
x
x
егер
x
x
f
ә)
<
<
−
+
−
≥
+
=
;
0
3
,
9
3
;
3
,
5
)
(
4
3
x
егер
x
x
егер
x
x
f
б)
>
+
≤
+
+
=
;
5
,
35
;
5
,
6
3
)
(
5
2
3
2
x
егер
x
x
егер
x
x
x
f
2
. Берiлген үш санның үшбұрыш қабырғаларын құрайтындығын тексеретiн алгоритм
жазыңдар.
3
. A(x, y) нүктесiнiң x байланысты "иә" немесе "жоқ" деп жауап беретiн алгоритм жазыңдар.
4. A(x
1
, y
1
), B(x
2
, y
2
) нүктелерiнiң қайсысы координаттар жүйесiнiң бас нүктесiне
жақын жатқандығын анықтаңдар.
5
. Берiлген n шардың түстерi бойынша олардың нешеуi қызыл, нешеуi көк екенiн
анықтау керек (басқа түстi шарлар жоқ).
4.
Циклдік алгоритмдер
Берілген есептердің блок-схемасы мен есептеу программасын жазыңдар.
1.
Төмендегі қосындыларды есептеу қажет:
а) 1 + 1/2 + 1/3 + ... + 1/10; ә) 5 + 8 + 11 + ... + 35; б) 1 + 3 + 3
2
+ 3
3
+ ... + 3
10
;
в)
;
11
10
...
5
4
4
3
3
2
)
г
;
2
1
...
2
1
2
1
2
1
1
10
3
2
+
+
+
+
+
+
+
+
+
ғ) 4⋅6⋅8⋅...⋅20;
д) 2 + 2
2
+ 2
3
+ ... + 2
10
; е) 15⋅16⋅17⋅...⋅25; ж)
;
!
10
1
...
!
4
1
!
3
1
!
2
1
1
+
+
+
+
+
з)
;
!
11
10
...
!
5
4
!
4
3
!
3
2
1
+
+
−
+
−
и) (1+sin0.1)(1+sin0.2)…(1+ sin10);
к)
;
100
sin
...
2
sin
1
sin
1
...
2
sin
1
sin
1
1
sin
1
+
+
+
+
+
+
+
2.
Төмендегі қосындыларды берілген n саны үшін есептеу керек:
а)
);
1
1
)...(
3
1
1
)(
2
1
1
)(
1
1
1
(
2
2
2
2
n
+
+
+
+
ә)
;
sin
...
1
sin
cos
...
1
cos
2
sin
1
sin
2
cos
1
cos
1
sin
1
cos
n
n
+
+
+
+
⋅
+
+
⋅
б)
;
3
)
1
(
3
...
6
3
n
n
+
−
+
+
+
в)
2
...
2
2
+
+
+
;
3.
Берілген қатардың 1/1, 2/1, 3/2, 5/3, ... n-ші мүшесін анықтау керек, мұнда үшінші
мүшеден бастап, санның алымы алдыңғы екі мүшенің алымдарының қосындысына, ал
бөлімдері алдыңғы екі мүшенің бөлімдері қосындысына тең болады. Бөліміндегі
сандар (1,1, 2, 3, 5, ...) Фибоначи тізбегі деп аталады.
4.
Градусты радианға айналдыру. α бұрышы -360°-тан 360°-қа дейін (қадамы 30°градус)
өзгергенде, бұрыштардың радиандық шамасын табу керек.
5.
Радианды градусқа айналдыру. Алыңғы есепке кері есепті шығарыңыз: бұрыштың -
2
π-
ден +2π-ге дейінгі аралықта (қадамы π/6) радианмен берілген шамасын градусқа
айналдырыңыз.
n
түбірлер
101
6.
Дюймді метрге айналдыру. Кесіндінің ұзындығы дюйммен (1 дюйм = 2,54 см)
берілген. 1-ден 50 дюймге (қадамы 2 дюйм) дейінгі шамаларды метрлік жүйеге
ауыстырып, оны метр, сантиметр және миллиметр арқылы жазу керек. Мысалы, 21
дюйм = 0 м 53 см 3,4 мм.
7.
Уақыт аралығы. Бір тәулік ішіндегі екі уақыт аралығының басы мен соңы сағат,
минут және секунд арқылы берілген. Осы берілген уақыт аралығының ұзақтығын
сағат, минут және секунд арқылы бейнелеңіз.
8.
Уақыттың жуық мәнін табу. Ағымдағы уақыт (сағат, минут және секунд) h, m, s
айнымалылары арқылы берілген. Берілген осы уақытты
а) сағат пен минуттың бүтін мәніне дейін дөңгелектеңіз, мысалы,
14 сағ 21 мин 45 сек = 14 сағ 22 мин.
ә) сағаттың бүтін мәніне дейін дөңгелектеңіз, мысалы,
9 сағ 59 мин 23 сек = 10 сағ.
9.
Мильді километрге және керісінше айналдыру. К-дан аспайтын арақашықтықты :
а) мильден километрге ауыстырыңыз (К=10, қадамы 0,5);
ә) километрден мильге айналдырыңыз (К=20, қадамы 0,75);
10.
Қоңыраулар кестесі. Университеттегі сабақтың басталу уақыты (8 сағ.30 мин.), бір
сабақтың ұзақтығы (50 мин), жәй (5 мин) және үлкен үзіліс (15 мин. 3-сабақтан кейін)
мөлшерлері, бір күнгі сабақтар саны (6) берілген. Бір күнгі қоңыраулар кестесін
жасаңыз.
5
. Жиымдарды (массивтерді) өңдеу тапсырмалары
1. а1, а2, …, а10 жиымы берілген. Осы жиымның ең үлкен элементін және оның нөмірін
табыңыздар. Егер жиымда бұндай элемент бірнешеу болса олардың санын анықтаңыздар.
Бастапқы мәндер: 7,2; 3,5; -1; 0; 3,3; 6,1; 7,2; -3,6; 5; 7,2.
2. Бір өлшемді жиым 20 элементтен тұрады. Төмендегі қосындыларды табыңыз:
а) жұп нөмірлі элементтер қосындысы (Р);
б) тақ нөмірлі элементтер қосындысы (L);
в) нөмірлері 5-ке еселі элементтер қосындысы (Z);
А=(1; 3; -2; 4,5; 9; 0,56; 7; 3; 9; 12,9; 32; 6,5; 7; 6,2; 8; 2; -4,5; 9,2; 4).
3.
в
1
,
в
2
, …,
в
10
жиымы берілген. Жиымның ең бірінші теріс элементтен кейін орналасқан
барлық элементтерді нөлмен алмастырыңыз. Бастапқы мәндер: 2,3; 4,4; 6,5; 1,6; 1; -7,1; 96,3;
3,4; 5,5; 6,6.
4.
Берілген А= (а
1
,
а
2
, …,
а
14
) векторының: К – теріс элементтерінің санын және М – оң
элементтерінің санын есептеңіз. А=(0; 1,22; -3; 4; 0,32; -6; 2; -1,75; 9; 0; 0,11; -4,5; 13; -2).
5. Нақты сандардан тұратын В=( в
1
,
в
2
, …,
в
11
) векторының барлық теріс компоненттерін
олардың квадратымен алмастырыңыз, ал оң компоненттерін өзгеріссіз қалдырыңыз.
Бастапқы мәндер: 3,6; -2,1; 7; 4,5; -4,6; -1; -0,75; 8; 11; 5; 3.
6.
Натурал n саны және a, b нақты сандары берілген.
,
ih
a
r
i
+
=
n
a
b
h
/
)
(
−
=
болса,
n
r
r
r
,...,
,
1
0
тізбегі мүшелерін анықтаңыздар.
7.
1
3
2
1
=
=
=
x
x
x
;
3
1
−
−
+
=
i
i
i
x
x
x
, мұндағы
,
4
=
i
5, ... . Енді
∑
=
100
1
2
i
i
i
x
қосындысын табу керек.
8.
Нақты a, x, ε тәрізді оң сандар берілген.
a
y
=
0
;
)
(
2
1
1
1
−
−
+
=
i
i
i
y
x
y
y
;
,
1
=
i
2, ... заңдылығына сәйкес
,...
,
2
1
y
y
тізбегіндегі ең алғаш
ε
<
−
−
2
1
2
n
n
y
y
теңдігін қанағаттандыратын
n
y
мәнін табу керек.
9.
Натурал n саны және нақты a
1
,a
2
,…,a
n
сандары берілген. Төменде көрсетілген амалдарды
есептеңіздер:
a)
n
a
a
a
a
a
a
+
+
+
+
...
,...,
,
2
1
2
1
1
;
б)
n
a
a
a
a
a
a
a
1
3
1
2
1
2
1
,...,
,
,
:
102
в)
n
a
a
a
a
a
+
+
+
...
,...,
,
1
2
1
1
;
г)
n
n
a
a
a
a
a
a
a
a
a
...
)
1
(
,...,
,
,
2
1
1
3
2
1
2
1
1
+
−
−
д)
n
n
a
a
a
a
)
1
(
,...,
,
,
3
2
1
−
−
−
;
е)
!
,...,
!
2
,
!
1
2
1
n
a
a
a
n
+
+
+
.
10.
Нақты сандары берілген. тізбегін шығару керек.
11.
Мынадай u
0
= 0; u
1
= 1; u
i
= u
i-1
+ u
i-2
; (i = 2,3,…)
заңдылыққа сәйкес келетін келетін
u
0
, u
1
, ...
Фиббоначи тізбегі берілген.
a) Натурал
1
>
n
саны берілген,
n
u
u
u
,...,
,
1
0
тізбегін табыңыздар;
б) Натурал
1
>
n
саны берілген. Егер
,...
,
1
0
f
f
тізбегі
;
0
0
=
f
;
1
1
=
f
2
2
1
−
−
−
+
+
=
i
i
i
i
u
f
f
f
заңдылығына сай болса, осы тізбек мүшелерін табыңыздар.
12.
,...
,
2
1
x
x
тізбегі мынадай заңдылықтарға бағынады:
a)
;
0
1
=
x
;
8
5
2
=
x
;
4
3
2
2
1
−
−
+
=
i
i
i
x
x
x
,...)
4
,
3
(
=
i
;
б)
;
1
1
=
x
;
3
.
0
2
=
x
2
)
1
(
−
+
=
i
i
x
i
x
;
,...)
4
,
3
(
=
i
;
в)
;
1
3
2
1
=
=
=
x
x
x
3
1
)
4
(
)
1
)(
3
(
−
−
+
+
−
+
=
i
i
i
x
i
x
i
x
,
,...)
5
,
4
(
=
i
.
Тізбектің алғашқы 20 мүшесін табыңыздар.
6
. Көп өлшемді массивтерді (матрицаларды) өңдеу тапсырмалары
1. Өлшемі n * m A матрицасы берілген. Матрицада өзара тең екі элемент бар
екендігін тексеріңіз.
2.
Өлшемі n * m A матрицасында барлық теріс элементтерді нөлмен алмастырып, ал
оң элементтерді квадраттаңыз.
3.
3
2
1
,
,
a
a
a
бүтін сандары берілген. В(3,3) матрицасын құру керек, мұндағы
.
3
j
i
ij
a
b
−
=
4.
Мөлшерлері m*n, A және B матрицаларының тең екендігін тексеретін программа
жазыңыз. Егер матрицалар тең болса, онда экранға "A = B" мәтінін және
матрицаның біреуін, кері жағдайда "A тең емес B" мәтінін және екі матрицаны да
шығарыңыз.
5.
Мөлшері m* m матрицаның жолдары мен бағаналарының орнын алмастыратын
программа жазыңыз.
6.
Берілген n * m өлшемді матрицаның әр бағанасы элементтерінің арифметикалық
ортасын табыңыз.
7.
Мөлшері m*n берілген А матрицасының кез келген екі жолдарының орнын
ауыстыратын программа жазыңыз.
8.
Мөлшері m*n берілген А матрицасының кез келген екі бағаналарының орнын
ауыстыратын программа жазыңыз.
9.
Нөлге тең элементтері жоқ n * m өлшемді матрица берілген. Берілген
матрицаның әр элементін осы матрицаның ең үлкен элементінің модуліне бөліп,
жаңа матрица құрыңыз.
10.
Мөлшері m*n берілген А матрицасының k-шы бағанасының элементтерін S
санына көбейтетін программа жазыңыз.
11.
Мөлшері m*n В матрицасы берілген. Нөмірі k болатын жолдың және бірінші
нөмірлі бағана элементтерінің таңбасын кері таңбаға ауыстыратын программа
жазыңыз ( жол мен бағананың қилысындағы элементті нөлге алмастырыңыз).
12.
Нақты сандардан тұратын квадрат матрица берілген. Осы матрицаның бас
диагоналінің және одан жоғары орналасқан элементтерін нөлмен алмастырыңыз.
70
2
1
,...,
,
à
a
a
1
70
3
2
,
,...,
,
a
a
a
a
103
7-8
. Тұтынушы функцияларын пайдалану тапсырмалары
1.
п натурал саны берiлген . Экранға сол п саны цифрларының кері бағытта жазылған
нұсқасын шығару керек. Жаңа санды табу үшін функция жазу қажет.
2.
Цилиндр көлемін есептейтін
Volume
атты функция қолданылатын программа жазыңыз-
дар. Функция параметрлері ретінде цилиндрдің радиусы мен биіктігі алынады.
3.
Мүмкін болатын алмастырулар санын төмендегі формула бойынша есептейтін программа
құрыңыздар:
.
)!
(
!
!
k
n
k
n
C
k
n
−
=
Факториал есептеуді функция түрінде жазу керек.
4.
Берiлген санның белгілі бір пайызын (процентін) қайтаратын
Payiz
функциясын
пайдаланатын программа жазыңыздар. Функция аргументі ретінде берілген сан мен
оның қайтарылатын пайыз мөлшері беріледі.
5.
Салынған ақшаның пайыздық өсімін (процентін) есептейтін
Osim
функциясын
пайдаланатын программа жазыңыздар. Функция үшін бастапқы мәлімет ретінде
салынған ақша мөлшері, өсім пайызы (бір жылдық) және салынатын мерзімі (күндер
саны) көрсетіледі.
6.
Екілік санды соған парапар (эквивалентті) ондық санға түрлендіретін программа жазу
керек. Түрлендіру әрекеті функция түрінде жазылуы тиіс.
7.
Он алтылық санды соған парапар (эквивалентті) ондық бүтін санға түрлендіретін
программа жазу керек. Түрлендіру әрекеті функция түрінде жазылуы тиіс.
8.
Аргумент ретінде дауысты әріп (символ) берілсе – 1-ді, ал дауыссыз әріп берілсе – 0-ді
қайтаратын Dauys функциясын пайдаланатын программа жазыңыздар.
9.
Екілік санды соған парапар (эквивалентті) он алтылық санға түрлендіретін программа
жазу керек. Түрлендіру әрекеті функция түрінде жазылуы тиіс.
10.
Латынның кіші әріптерін бас әріптерге және керісінше түрлендіретін Turlen функциясын
пайдаланып, сөз тіркестерін өңдейтін программа жазу керек.
11.
Он алтылық санды соған парапар (эквивалентті) екілік бүтін санға түрлендіретін
программа жазу керек. Түрлендіру әрекеті функция түрінде жазылуы тиіс.
12.
Экранға бірдей символдардан тұратын сөз тіркесін шығаратын Output функциясы бар
программа жазыңыздар. Функция үшін параметр ретінде символ таңбасы мен тіркес
ұзындығы көрсетіледі.
13.
Келесі өрнекті есептейтін программа жазыңыздар:
Факториалды есептеу функция түрінде берілуі тиіс.
9-10.
Сөз тіркестерін өңдеу тапсырмалары
1.
Берiлген сөздегi әр түрлi әрiптердiң санын есептейтiн программа жазыңдар.
2.
Сөздердiң әрбiр үшiншi әрпiн жоятын программа жазыңдар.
3.
Берiлген мәтiндегi “ Айна” сөзiн “ Асыл” сөзiне өзгертетiн программа жазыңдар.
4.
Пернетақтадан енгiзiлген символды жазылған сөз тiркесінен өшіретін программа
жазыңдар. Өшіру процесiн жеке функция етіп қарастырыңдар.
5.
Берiлген мәтiндегi кездесетiн “ а” әрпiн “ о” әрпiне ауыстырыңдар.
6.
Енгiзiлген сөз тіркесін керiге айналдыратын, яғни символдарды керi тәртiпте
орналастыратын программа құрыңдар.
7.
Енгiзiлген сөздiң палиндром болатынын/болмайтынын анықтайтын программа
құрыңдар.
8.
Пернетақтадан енгiзiлген символдарды ASCII кестесiнде нөмiрлерiнiң өсу ретi
бойынша сұрыптайтын программа жазыңдар.
9.
Бос орындармен бөлініп жазылған үш сөзден тұратын сөйлемдегi ең қысқа сөздiң
ұзындығын есептеп шығаратын программа жазыңдар.
10.
Экранға жылжымалы жолды шығаратын программа жазыңдар.
∑
=
=
n
m
i
i
i
x
m
n
x
f
)!
2
(
)
,
,
(
2
104
11.
Сөйлемдегi жүйелі жақшаға алынған мәтіндерді және жақшаның өзiн өшіретін
программа құрыңдар.
12.
Ұзындығы 25 символдан артпайтын сөз тіркесін алып, одан мүмкіндігінше бірнеше
жаңа сөз құрастырыңдар.
13.
Сөз тіркесіндегі кездесетін “а” әрпін “ә” әрпімен ауыстыратын программа құру керек.
11-12.
Файлдармен жұмыс істеу тапсырмалары
1. Файлдан сандар оқып, солардың ішіндегі теріс сандар қанша екенін анықтайтын программа
құру керек.
2. Файлдан сөз тіркесін оқып, солардың ішіндегі 6 символдан артық сөздерді экранға
шығарып, басқа файлға жазып шығыңдар.
3
. Файлдан сандар оқып, солардың арифметикалық ортасын файл соңына қосып жазу керек.
4
. Файлдан сөз тіркесін оқып, солардың керісінше жазылған нұсқасын басқа бір файлға жазып
шығыңдар.
5
. Файлдан сандар оқып, солардың максимумын анықтайтын программа құру керек.
6
. Файлдан сөз тіркесін оқып, солардың ішіндегі бос орын орнына сызықша жазып оны басқа
бір файлға жазып шығу керек.
7
. Файлдан сандар оқып, солардың минимумын анықтайтын программа құру керек.
8.
Бір файлда екі сөйлем жазылған, соның екінші сөйлемін басқа файлға жазып шығу керек.
9
. Файлдан сандар оқып, солардың көбейтіндісін анықтайтын программа құру керек.
10
. Сөз тіркесінен тұратын файлдағы бас әріптерді кіші әріптерге айналдырып, басқа файлға
жазып шығу керек.
11
. Файлдан сандар оқып, солардың нешеуі 5-тен артық екенін анықтау керек
1
2. Сөз тіркесінен тұратын екі файл берілген. Осы екі файлдағы сөз тіркестерін біріктіріп,
үшінші файлға жазып шығыңдар.
13
. Файлдан сандар оқып, солардың қосындысын анықтау керек
14
. Сөз тіркесінен тұратын екі файл берілген. Осы екі файлдағы сөз тіркестерінің орнын
ауыстырып жазып шығу керек.
15
. Файлдан сөз тіркесін оқып, солардың ішіндегі ең ендісін анықтап, соның неше символдан
тұратынын анықтау қажет.
16
. Файлдан сандар оқып, солардың тақтарын бір файлға, жұптарын екінші файлға жазып
шығыңдар.
17
. Файлдан бірнеше сөйлем оқып, сол сөйлемдердің “м” әрпінен басталатын бір сөйлемін
ғана экранға шығарып, соның ұзындығын анықтайтын программа құру керек.
18
. Файлдан сандар оқып, солардың барлығын да бірге арттырып, шыққан сандарды басқа
бір файлға жазып шығыңдар.
19
. Файлдан бірнеше сөйлем оқып, сол сөйлемдердің ең соңғы сөйлемін ғана экранға
шығарып, соның ұзындығын анықтайтын программа құру керек.
20
. Файлдан сандар оқып, соларды керісінше тәртіппен екінші бір файлға жазып шығыңдар.
2
1. Файлдан сандар оқып, солардың цифрларын экранға сөзбен шығаратын программа құру
керек, мысалы, 0 орнына “нөл”, 1 орнына “бір”, т.с.с. 9 орнына “тоғыз” деп жазатын
болуы тиіс.
22
. Файлдан сөз тіркесін оқып, солардың бірінші сөзі мен соңғы сөзін алмастырып, екінші бір
файлға жазып шығыңдар.
23
. Файлдан сөз тіркесін оқып, соларды керісінше жазып шығатын программа құру керек.
24
. Файлдан сандар оқып, солардың алғашқы жартысы мен соңғы жартысының орнын
ауыстырып, нәтижесін жаңа файлға жазып шығу керек.
105
13-14.
Графикалық режимде жұмыс істеу тапсырмалары
1. Шеңберге iштей бесбұрышты жұлдыз салыңдар.
2. “Жаңбыр“ программасын жазыңдар — экранда (кездейсоқ күйде) 50 нүкте жоғарыдан
төменге қарай қозғалып келе жатқандай болуы тиіс. Нүктелердiң бiрi экранның төменгi
шекарасына жеткенде, ол қайтадан экранның жоғарғы бөлiгiнде пайда болуы керек.
3. “Жаңбыр” программасын кейбiр нүктелер шапшаң, кейбiреулерi баяу қозғалатындай етiп
өзгертiңдер.
4.
Қара экранға 1-ден 16-ға дейінгі сандарды 16 түрлі түске бояп шығару қажет. Әрбір сан
бөлек жолда орналасатын болсын.
5. Қағазға оралған “кәмпиттiң” бейнесiн: диагональдары жүргiзiлген горизонталь
тiктөртбұрыш пен оның екi жағына жалғасып жатқан тең қабырғалы үшбұрыштар салыңдар.
Тiктөртбұрыштың сол жақ төменгi төбесiнiң координатасы (х, у), биiктiгi а-ға, ұзындығы 2а-
ға тең болсын. Үшбұрыштың биiктiктерi а/2. Тiкбұрыштың диагональдары мен
қабырғаларынан пайда болған қарама-қарсы екi үшбұрышты бояңдар.
6. Үш тiстi және жарты дөңгелек пiшiндi аркасы бар мұнара салыңдар. Мұнараның сол жақ
төменгi төбесiнiң координатасы (х, у), табанының ұзындығы а. Қалған өлшемдерiн а арқылы
өрнектеп табыңдар. Мұнараны бояңдар.
7. Куб салыңдар. Кубтың алдыңғы сол жақ төменгi төбесiнiң координатасы (х, у), бүйiр қыры
а. Жоғарғы бүйiр бетiн бояңдар, оңжақ бүйiр бетiнде диагональ жүргiзiңдер.
8. Алтыбұрышты тiк пирамида салыңдар. Табанының алдыңғы сол жақ төбесiнiң
координатасы (х, у), табанындағы қыры а. Қалған өлшемдерiн а арқылы өрнектеп табыңдар.
Пирамиданың екi бүйiр жақтарын бояңдар.
9. Тiктөртбұрышты қиық пирамида салыңдар. Пирамида табанының төменгi сол жақ
төбесiнiң координатасы (х,у), табанындағы қыры а, жоғарғы жақтың қыры — а/2. Қалған
өлшемдерiн а арқылы өрнектеп табыңдар. Пирамиданың оңжақ бүйiр бетiн бояңдар.
10. Қарайтылған “Е” әрпi тәрiздi фигура салатын программа құрыңдар. Әрiп құрайтын
нүктелердiң абсциссалары мен ординаталары жиым элементтері ретiнде берілген. Сурет салу
үшiн циклге енгiзiлетiн тек қана бiр LINE операторын пайдаланыңдар.
11. Экранда боялған шырша салатын программа жазыңдар. Сурет элементтерін жиымда
сақтап, өшiрiп және содан кейiн қайтадан экранға шығарыңдар.
12. Боялған 7 шыршаның суретiн салатын программа жазыңдар. Шыршалар бiр-бiрiне ұқсас,
горизонталь бойында бiр қалыпта орналасады, шыршалардың биiктiгi солдан оңға қарай
сызықтық түрде өсуi керек. Шыршаларды бойлап Қызыл Телпек оларды уақытша “үсiп
қалмасын” деп бір затпен жауып шығатын болсын.
13.
Экранға біртіндеп үлкейе бастайтын шағын қызыл терезе салу қажет. Үлкею қадамын Х
координатасы үшін 3, ал У координатасы үшін 1 етіп алыңыздар.
14.
Алдын ала тазартылған экранды ақ түске бояп, жеті атаңыздың аттарын жеті түрлі түспен
шығарыңыздар.
15.
Экранның сол жақ шетіне көк түсті терезе салып, оны оң жаққа қарай қадамын бір
символ етіп жылжытып отыратын программа құру керек.
16.
Экранға шахмат тақтасының бейнесін салатын программа құрыңдар.
17.
Экранға сиып тұратындай етіп 9 терезе салыңыздар да, олардың ішіне әртүрлі физика
формулаларын жазыңдар.
18. Циклдiк операторды пайдаланып 10 басқышы бар саты салыңдар, оның жұп және тақ
нөмiрлi басқыштарының көлемi әр түрлi болатын программа құрыңдар.
19.
Қызыл экранға 0..9 аралығындағы 1000 кездейсоқ санды ақ түспен шығару қажет. Мұнан
соң экран түсін жасылға бояп, сандарды сары түспен шығарыңыздар.
20.
Экранды барлық (8) фон түстеріне 5 секунд кідіріспен бояп шығыңыздар. Экранның сол
жақ жоғарғы бұрышына оның нөмірін жазып қою керек.
106
«050703-
Ақпараттық жүйелер» мамандығына арналған
«
Программалау технологиялары» пәнінің
ОҚУ-ӘДІСТЕМЕЛІК ҚАМТАМАСЫЗ ЕТІЛУ КАРТАСЫ
Негізгі оқу-әдістемелік әдебиеттердің болуы
(дана)
Студенттер
контингенті
Ескерту
Оқулықтар мен
оқу құралдары
Электрондық
оқулықтар мен
оқу құралдары
ПОӘК
қ/б
о/б
қ/б
о/б
қ/б о/б
қ/б
о/б
20
2
0
0
5
5
8
0
107
Баспаға беруге 20.12.2014 қол қойылды. Форматы 60х84 1/16.
Офсетті қағаз. Таралымы 30 экз. Шартты баспа табағы 6,75.
АЭСА баспа орталығы
Алматы қ., Жандосов көшесі, 59
108
Document Outline - 9. Дәрістер мен зертханалық жұмыстар жоспары
- 9. Дәрістер мен зертханалық жұмыстар жоспары
- Аралық бақылауға арналған тест сұрақтары
- 1- коллоквиум сұрақтары
- 2- коллоквиум сұрақтары
- 15. Студенттің білімін бағалау жүйесі
- 1.1 Негізгі түсініктер мен анықтамалар
- 1.2 Компьютерде есеп шығару кезеңдері
- 1.3 Алгоритмдерді бейнелеу тәсілдері
- 1.6 Программалау тілдері
- Switch көп нұсқалы таңдау операторы. Программада кездесетін бірнеше нұсқаның бірін таңдап алу керек болған жағдайда, switch ауыстырғыш операторы қолданылады. Оператордың орындалу схемасы төмендегі 6.3 суретте келтірілген. Оның жалпы жазылуы:
- FOR цикл операторы
- Жиымды өңдеу есептерінің түрлері (кластары)
- Жиымды сұрыптау (іріктеу, реттеу)
- Құрылымдарды пайдалану мысалы:
- Бақылау сұрақтары
- Бақылау сұрақтары
- 13.1. Графикалық режим орнату, одан шығу, мәтін жазу, сызық салу функциялары
- Экранға мәтін шығару функциясы outtext ("Мәтін");
- Экрандағы көрсетілген орынға мәтін шығару функциясы
- 13.2. Сызық стильдерін беру
- Кодтары
- Іші боялған контурлы эллипс салу функциясы
- 5 зертханалық жұмыс. Бір өлшемді жиымдарды өңдеу
- Тапсырмалар нұсқалары
- 1 нұсқа
- 2 нұсқа
- 3 нұсқа
- 4 нұсқа
- 5 нұсқа
- 6 нұсқа
- 7 нұсқа
- 8 нұсқа
- 9 нұсқа
- 10 нұсқа
- 11 нұсқа
- 12 нұсқа
- 13 нұсқа
- 6 зертханалық жұмыс. Көп өлшемді жиымдарды өңдеу
- 7 зертханалық жұмыс. Сөз тіркестерін өңдеу
- 8-9 зертханалық жұмыстар. Тұтынушы функциясын пайдалану
- Құрылымдарды пайдалану мысалы:
5>
Достарыңызбен бөлісу: |