else t=y;
return t;
}
Тапсырмалар
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
санының цифрларының қосындысының
кубына тең екендігін тексеру керек.
76
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.
16. Екі жай санның бір-бірінен айырмашылығы 2-ге тең болса, олар “егіздер” деп аталады
(мысалы, 41 және 43 сандары). [n, 2n] аралығындағы барлық “егіздерді” анықтау керек,
мұндағы n–2-ден үлкен бүтін сан.
10
зертханалық жұмыс. Файлдарды пайдалану
Зертханалық жұмысты орындауға арналған әдістемелік нұсқаулар
Тапсырма: Берілген есепті шығаруға арналған программа жазыңыздар.
Өткізілетін құжат: Берілген есептердің программа мәтіні және есептеу нәтижелері.
Зертханалық жұмысты қорғау сұрақтары
1.
Тұтынушы функциясын сипаттау дегеніміз не?
2.
Егер функцияның параметрлері жоқ болса, ол қалай сипатталады?
3.
Тұтынушы функциясы мен стандартты функциялардың айырмашылығы неде ?
4.
Функция аргументтерін беру жолдарын атаңыз?
5.
“Жергілікті” және “ауқымды” айнымалылардың айырмашылығы.
6.
“Жергілікті” айнымалылардың әрекет ету аймағы ұғымы.
7.
“Ауқымды” айнымалылардың әрекет ету аймағын түсіндіріңіз.
8.
Return
операторының қолданылуы және атқаратын қызметі.
Тапсырмалар
Вариант 1
1. Файлдан сандар оқып, солардың ішіндегі теріс сандар қанша екенін анықтайтын программа
құру керек.
2. Файлдан сөз тіркесін оқып, солардың ішіндегі 6 символдан артық сөздерді экранға
шығарып, басқа файлға жазып шығыңдар.
77
Вариант 2
1. Файлдан сандар оқып, солардың арифметикалық ортасын файл соңына қосып жазу керек.
2. Файлдан сөз тіркесін оқып, солардың керісінше жазылған нұсқасын басқа бір файлға жазып
шығыңдар.
Вариант 3
1. Файлдан сандар оқып, солардың максимумын анықтайтын программа құру керек.
2. Файлдан сөз тіркесін оқып, солардың ішіндегі бос орын орнына сызықша жазып оны
басқа бір файлға жазып шығу керек.
Вариант 4
1. Файлдан сандар оқып, солардың минимумын анықтайтын программа құру керек.
2.
Бір файлда екі сөйлем жазылған, соның екінші сөйлемін басқа файлға жазып шығу керек.
Вариант 5
1. Файлдан сандар оқып, солардың көбейтіндісін анықтайтын программа құру керек.
2. Сөз тіркесінен тұратын файлдағы бас әріптерді кіші әріптерге айналдырып, басқа файлға
жазып шығу керек.
Вариант 6
1. Файлдан сандар оқып, солардың нешеуі 5-тен артық екенін анықтау керек
2. Сөз тіркесінен тұратын екі файл берілген. Осы екі файлдағы сөз тіркестерін біріктіріп,
үшінші файлға жазып шығыңдар.
Вариант 7
1. Файлдан сандар оқып, солардың қосындысын анықтау керек
2. Сөз тіркесінен тұратын екі файл берілген. Осы екі файлдағы сөз тіркестерінің орнын
ауыстырып жазып шығу керек.
Вариант 8
1. Файлдан сөз тіркесін оқып, солардың ішіндегі ең ендісін анықтап, соның неше символдан
тұратынын анықтау қажет.
2. Файлдан сандар оқып, солардың тақтарын бір файлға, жұптарын екінші файлға жазып
шығыңдар.
Вариант 9
1. Файлдан бірнеше сөйлем оқып, сол сөйлемдердің “м” әрпінен басталатын бір сөйлемін ғана
экранға шығарып, соның ұзындығын анықтайтын программа құру керек.
2. Файлдан сандар оқып, солардың барлығын да бірге арттырып, шыққан сандарды басқа бір
файлға жазып шығыңдар.
Вариант 10
1. Файлдан бірнеше сөйлем оқып, сол сөйлемдердің ең соңғы сөйлемін ғана экранға
шығарып, соның ұзындығын анықтайтын программа құру керек.
2. Файлдан сандар оқып, соларды керісінше тәртіппен екінші бір файлға жазып шығыңдар.
Вариант 11
1. Файлдан сандар оқып, солардың цифрларын экранға сөзбен шығаратын программа құру
керек, мысалы, 0 орнына “нөл”, 1 орнына “бір”, т.с.с. 9 орнына “тоғыз” деп жазатын болуы
тиіс.
2. Файлдан сөз тіркесін оқып, солардың бірінші сөзі мен соңғы сөзін алмастырып, екінші бір
файлға жазып шығыңдар.
Вариант 12
1. Файлдан сөз тіркесін оқып, соларды керісінше жазып шығатын программа құру керек.
2. Файлдан сандар оқып, солардың алғашқы жартысы мен соңғы жартысының орнын
ауыстырып, нәтижесін жаңа файлға жазып шығу керек.
78
11-12
зертханалық жұмыстар. Құрылымдарды пайдалану
Тапсырма: Берілген есепті шығаруға арналған программа жазыңыздар.
Өткізілетін құжат: Берілген есептердің программа мәтіні және есептеу нәтижелері.
Зертханалық жұмысты қорғау сұрақтары
1.
С тілінде құрылымдар мен жолдар қалай сипатталады? Айырмашылықтарын
түсіндіріңіз.
2.
“Құрылымға нұсқауыш” термині дегеніміз не?
3.
Нұсқауыштарды құрылымдарға қатысты қолдану ерекшеліктерін атаңыз.
4.
Құрылымдармен жұмыс істеу ерекшеліктері.
5.
Құрылым элементтерін экранға шығару мүмкіндіктері.
Қысқаша теориялық мәліметтер
С тіліндегі құрылымдар өзара логикалық байланысқан әртүрлі типті мәліметтерді
байланыстырады. Мәліметтердің құрылымдық типтері келесі сипаттаумен анықталады:
struct құрылым_ аты
{
элементтерді сипаттау;
};
Құрылымға компьютер жадынан орын бөлу үшін құрылымдық айнымалыны анықтап алу
керек:
struct құрылым_аты айнымалы_аты;
Құрылымдарды анықтау барысында олардың элементтеріне бастапқы мәндерді
меншіктеуге болады. Құрылым элементтерінің мәндерін енгізу үшін ағымдық енгізу
операторы cin>> немесе форматпен енгізу операторы – scanf қолданылады.
Құрылымдармен келесі амалдарды орындауға болады:
1) Құрылымның адресін алу амалы. Құрылымның адресін алу үшін құрылымдық
айнымалыға нұсқауыш (&) амалы қолданылады.
2) Құрылымның элементін пайдалану үшін нүкте (.) амалы (тікелей ену) немесе (->)
(нұсқауыш бойынша ену) амалы қолданылады.
Құрылымдық айнымалы
float, int, char
типті айнымалылар сияқты
пайдаланылуы мүмкін. Мысалы:
struct gr
/* құрылым аты */
{char fio[10];
/
* құрылым элементі */
int est[25];
/* құрылым элементі */
int nomer;
/* құрылым элементі */
}
gruppa1;
/*құрылымдық айнымалы аты */
struct gr gruppa2;
/* құрылымдық айнымалыны хабарлау*/
Егер құрылымды сипаттаушы берілген файлдағы барлық функциялардың алдында
орналасса, онда ол құрылымды осы файлдағы барлық функциялар пайдалана алады.
Құрылымдық айнымалыны анықтау барысында оған алғашқы мәндерді меншіктеуге болады
(құрылым өрістеріне мән беруге болады). Мысалы:
struct date { int day,month,year;};
d[5]={{1,3,1980},
{5,1,1990},
{1,1,2002}};
Құрылымдарды пайдалану мысалы:
#include
#include
#include
struct Spisok {
char Fio[20];
79
char Grup[10];
int Ot[3];
float S_Bal;
} *sved;
void Vvod(int nom,struct Spisok *sved)
{printf("\n
Мәліметтерді енгізіңіз
:");
scanf(“%d”,nom+1);
printf("\n
фамилиясы
- ");
gets(sved.Fio);
printf("
топ нөмірі
- ");
gets(sved.Grup);
float s=0;
for(int i=0;i<3;i++) {
printf("\n
бағалары
- ");
scanf(“%d”,sved.Ot[i]);
s+=sved.Ot[i];
}
sved.S_Bal=s/3.;
return;}
void main(void)
{struct Spisok Stud[50]; int i,N; char Bukva;
clrscr();
printf("\n 50-
ден кіші бүтін сан енгізіңіз
");
scanf(“%d”,&N);
for(i=0;i
printf ("\n
студенттердің тізімі:
");
for(i=0;i
printf("\n %20s %10s %4.2f",Stud[i].Fio,
Stud[i].Grup,Stud[i].S_Bal);
printf ("\n
Фамилиядағы әріпті іздеу
");
scanf(“%c”,&Bukva);
printf("\n
Студенттер туралы мәлімет
");
int kod_p=0;
for(i=0;i
if(Stud[i].Fio[0]==Bukva){ kod_p=1;
printf("\n %20s %10s%4.2f",Stud[i].Fio,
Stud[i].Grup,Stud[i].S_Bal);}
if(kod_p==0) printf("
Ондай жазба жоқ
!");
printf ("\n
Жазбаны іздеу
");
Vvod(-1,sved);
kod_p=0;
for(i=0;i
if(memcmp(sved,&Stud[i],sizeof(sved))==0) { kod_p=1;
printf("\n
Іздеу:
\n %20s %10s",Stud[i].Fio,
Stud[i].Grup);}
if(kod_p==0) printf("Ондай жазба жоқ!");
getch();}
Тапсырмалар
Келесі мәліметтерден құралған төрт студент туралы ақпаратты енгізіңіз:
-
тегі және инициалы;
-
туған жылы;
-
оқуға түскен жылы;
-
бірінші семестрдің бағасы:
-
физика;
80
-
жоғарғы математика;
-
информатика;
1.
Алфавит бойынша реттелген студенттердің тізімін шығару керек.
2.
Туған жылы бойынша реттелген студенттердің тізімін көрсету қажет.
3.
Оқуға түскен жылы бойынша реттелген озат студенттердің тізімін шығару керек.
4.
Сессияны 4 және 5-ке тапсырған студенттердің анкеталық мәліметтері шығарылуға тиіс.
5.
Тегі (фамилиясы) Б әрпінен басталатын студенттердің тізімін және олардың барлық
пәндер бойынша бағаларын көрсету керек.
6.
Оқу озаттарының анкеталық мәліметтерін шығару қажет.
7.
Тегі А әріпінен басталатын студенттердің тізімін және олардың туған жылдары көрсетілуі
тиіс.
8.
Сессияда 3 деген бағалары бар студенттердің анкеталық мәліметтерін шығару керек.
9.
Тегі В және Г әріпінен басталатын студенттердің тізімін және олардың бағаларын
шығаратын программа құру керек.
10.
Сессияны 3-сіз тапсырған студенттердің тізімін және олардың туған жылдарын шығару
керек.
11.
Барлық студенттердің жалпы орта балын және осы орта балдан жоғары балл жинаған
студенттердің тізімі көрсетілуі тиіс.
12.
Барлық студенттердің жалпы орта балын және осы орта балға тең балл жинаған
студенттердің тізімін шығару керек.
13.
Сессияда “екілік” алған студенттердің анкеталық мәліметтерін шығару керек.
14.
Информатика пәнін 5-ке тапсырған студенттердің анкеталық мәліметтерін экранға
шығару қажет.
15.
Физиканы 4-ке және жоғарғы математиканы 5-ке тапсырған студенттердің анкеталық
мәліметтері шығарылуы тиіс.
13-14
зертханалық жұмыстар. Графикалық режимді пайдалану
Тапсырма: Берілген есепті шығаруға арналған программа жазыңыздар.
Өткізілетін құжат: Берілген есептердің программа мәтіні және есептеу нәтижелері.
Зертханалық жұмысты қорғау сұрақтары
1.
ІBM PC компьютерлері бейнемониторының қандай түрлері бар? Олардың айырмашы-
лығы неде?
2.
Графикалық режимнің атқаратын қызметі қандай? Оны программада қалай іске қосады?
3.
Графикалық режим қандай функция арқылы орнатылады?
4.
Монитордың мәтіндік және графикалық режимдерінің мүмкіндіктері.
5.
Экранның түсін және оған шығарылатын символдардың түсін қалай өзгертуге болады?
6.
Курсорды экранның кез келген нүктесіне қалай көшіреміз?
7.
Графикалық режимде экранда қалай терезе құруға болады?
8.
Графикалық режимде экранды қалай тазартуға болады?
9.
Clrscr, Clreol, Dellіne және Іnslіne функцияларының ортақ қасиеттері мен айырмалары.
Тапсырмалар
1
. Қағазға оралған “кәмпиттiң” бейнесiн: диагональдары жүргiзiлген горизонталь
тiктөртбұрыш пен оның екi жағына жалғасып жатқан тең қабырғалы үшбұрыштар салыңдар.
Тiктөртбұрыштың сол жақ төменгi төбесiнiң координатасы (х, у), биiктiгi а-ға, ұзындығы 2а-
ға тең болсын. Үшбұрыштың биiктiктерi а/2. Тiкбұрыштың диагональдары мен
қабырғаларынан пайда болған қарама-қарсы екi үшбұрышты бояңдар.
2
. Үш тiстi және жарты дөңгелек пiшiндi аркасы бар мұнара салыңдар. Мұнараның сол жақ
төменгi төбесiнiң координатасы (х, у), табанының ұзындығы а. Қалған өлшемдерiн а арқылы
өрнектеп табыңдар. Мұнараны бояңдар.
81
3
. Куб салыңдар. Кубтың алдыңғы сол жақ төменгi төбесiнiң координатасы (
х,
у), бүйiр қыры
а. Жоғарғы бүйiр бетiн бояңдар, оң жақ бүйiр бетiнде диагональ жүргiзiңдер.
4
. Алтыбұрышты тiк пирамида салыңдар. Табанының алдыңғы сол жақ төбесiнiң
координатасы (
х,
у), табанындағы қыры
а. Қалған өлшемдерiн
а арқылы өрнектеп табыңдар.
Пирамиданың екi бүйiр жақтарын бояңдар.
5
. Тiктөртбұрышты қиық пирамида салыңдар. Пирамида табанының төменгi сол жақ
төбесiнiң координатасы (
х,
у), табанындағы қыры
а, жоғарғы жақтың қыры —
а/2. Қалған
өлшемдерiн
а арқылы өрнектеп табыңдар. Пирамиданың оңжақ бүйiр бетiн бояңдар.
6
. Қарайтылған “Е” әрпi тәрiздi фигура салатын программа құрыңдар. Әрiп құрайтын
нүктелердiң абсциссалары мен ординаталары жиым элементтері ретiнде берілген. Сурет салу
үшiн циклге енгiзiлетiн тек қана бiр LINE операторын пайдаланыңдар.
7
. Экранда боялған шырша салатын программа жазыңдар. Сурет элементтерін жиымда
сақтап, өшiрiп және содан кейiн қайтадан экранға шығарыңдар.
8
. Боялған 7 шыршаның суретiн салатын программа жазыңдар. Шыршалар бiр-бiрiне ұқсас,
горизонталь бойында бiр қалыпта орналасады, шыршалардың биiктiгi солдан оңға қарай
сызықтық түрде өсуi керек. Шыршаларды бойлап Қызыл Телпек оларды уақытша “үсiп
қалмасын” деп бір затпен жауып шығатын болсын.
9
. Шахмат тақтасының бейнесін салыңдар.
10
. Экранда қарайтылған
М әрпi пiшiндес фигура салатын және бағыттауыш тілсызық (→,
←, ↑, ↓
) пернелер арқылы басқарылып, фигураның көлемiн + және – пернелерiнiң көмегiмен
өзгертетін программа құрыңдар.
11
. Циклдiк операторды пайдаланып 10 басқышы бар саты салыңдар, оның жұп және тақ
нөмiрлi басқыштарының көлемi әр түрлi болатын программа құрыңдар.
12
. Шеңберге iштей бесбұрышты жұлдыз салыңдар.
13.
Экранның сол жақ шетіне көк түсті терезе салып, оны оң жаққа қарай қадамын бір
символ етіп жылжытып отыратын программа құру керек.
14.
Экранға біртіндеп үлкейе бастайтын шағын қызыл терезе салу қажет. Үлкею қадамын
Х
координатасы үшін 3, ал
У координатасы үшін 1 етіп алыңыздар.
15.
Экранға біртіндеп бір символ аумағына дейін кішірейе бастайтын барынша үлкен сары
терезе салу қажет. Кішірею қадамын
Х координатасы үшін 3, ал
У координатасы үшін 1 етіп
алыңыздар.
16.
Экранға сиып тұратындай етіп 9 терезе салыңыздар да, олардың ішіне әртүрлі физика
формулаларын жазыңдар.
17.
Төмендегі фигураларды сызу қажет:
a) төбелерінің координаталары (100,100), (150, 100), (80, 170) болатын үшбұрышты;
б) төбелерінің координаталары (80, 80), (170, 80), (170, 150), (80, 150) болатын
тіктөртбұрышты;
в) төбелерінің координаталары (100, 100), (150, 100), (170, 120), (150, 140), (100, 140)
болатын бесбұрышты;
г) төбелерінің координаталары (120, 100), (140, 120), (140, 140), (120, 160), (100,140),(100,
120)
болатын алтыбұрышты;
д) жоғарыдағы тапсырмаларды, бояумен толтыра орындап шығыңдар.
18.
Қыры 30 пиксель болатын шаршы сызып, ішін бояу керек. Шаршының центрі экранның
центірімен сәйкес келетіндей және қырлары экранның өстік координаталарына параллель
болуы тиіс.
19.
Қырлары 30 және 50 пиксель болатын тіктөртбұрыш сызып, ішін бояу керек.
Тіктөртбұрыштың центрі экранның центірімен сәйкес келетіндей және қырлары
экранның өстік координаталарына параллель болуы тиіс.
20.
Центрі экранның центірімен сәйкес келетін, радиусы 40 пиксельге тең дөңгелек сызып,
ішін бояңыздар.
Достарыңызбен бөлісу: