
- •Программалаудың парадигмалары: құрылымдық, модулдік және объектілі-бағытталған программалау.
- •2.Компьютердің логикалық схемасы. Программалау, компиляциялау және программаның орындалу орталары.
- •Программалау тілдерінің негізгі нысандары: типтер, тұрақтылар, айнымалылар, процедуралар. Олардың мақсатыжәне ара қатынасы.
- •5 Кіріс-шығыс операторлары.Кіріс-шығыс функциялары мен кітапханасы.
- •6.Функциялар және процедуралар, параметрлерді беру тәсілдері. Функция және процедура мысалдары.
- •10.2 Процедуралар
- •7.Циклды бағдарламалау орталары. Циклдан шығу әдістері. Цикл операторларына мысал. Рекурсивті функциялар.
- •8.Функциялар. Функцияның фактілі және формальды параметрлері. Айнымалы санды параметрлі функциялар. Рекурсивті функциялар.
- •9.Программаларды өңдеудің негізгі принциптері. Құрылымдық программалау, принциптері
- •10.Функциялар және көрсеткіштер. Көрсеткішпен жіберуде көрсеткіштерді функцияның нақты аргументі ретінде пайдалану.
- •12.Қолданбалы функцияларды құру.№есептеу үшін функцияларды тестілеу және анықтау. Көрсеткіш сілтемесімен берілетін фактілі аргументтер, функцияларды құру.
- •13.Алгоритм түсінігі. Алгоритмдерді талдау принциптері. O-нотация.
- •15,Сызықтық және циклдік тізімдер, стектер, дектер, кезек(файл) және екілік ағаштарды өңдеу, инициализациялау, хабарлау.
- •Сұрыптаудың негізгі алгоритмдері: қосу бойынша, таңдау бойынша сұрыптау.
- •18. Сұрыптаудың негізгі алгоритмдері: көпіршік бойынша сұрыптау. Сұрыптау алгоритмін талдау.
- •19.Сұрыптаудың негізгі алгоритмдері: шейкер сұрыптау, Шелл әдісі бойынша сұрыптау. Сұрыптау алгоритмін талдау.
- •20.Сұрыптаудың негізгі алгоритмдері: қосылу бойынша сұрыптау, тез сұрыптау. Сұрыптау алгоритмін талдау.
- •Жүктелуші модуль
- •Абсолютті модуль
- •24.Бағдарламаны тестілеу және қайта ретке келтіру.
- •Объектіге-бағытталған тілдер бағдарламасының негізгі конструкциялары. Операция және функцияларды қайта жүктеу түсінігі.
- •Объект және кластарды сипаттау. Конструктор және деструктор. Класс элементтеріне қол жетімділікті басқару сұрақтары.
- •Бірлік және көптік мұралау концепциялары. Туынды кластарды ашу және жабу.
- •Бірлік мұралау
- •Көптік мұралау
- •Полиморфизм принциптері. Абстрактілі кластар. Контейнерлі кластар.
- •29. Полиморфизм принциптері. Полиморфизм әр түрлілгі және оларды іске асыру.
- •Класс және функция шаблондары. Шешуші жағдайларда өңдеу және генерациялау.
- •Объектіге – бағытталған бағдарламалауды талдау және жобалау концерциялары. Бағдарламалық өнімдердің өмірлік циклдері.
- •Объектіге – бағытталған бағдарламалаудың құралдары және оларды объектіге – бағытталған талдауда қолдану.
9.Программаларды өңдеудің негізгі принциптері. Құрылымдық программалау, принциптері
10.Функциялар және көрсеткіштер. Көрсеткішпен жіберуде көрсеткіштерді функцияның нақты аргументі ретінде пайдалану.
Функцияға көрсеткіш — С тілінің өте мықты құралы. Функция жадыда белгілі бір адрес бойынша орналасады, және ол адресті көрсеткішке оның мәні ретінде меншіктеуге болады. Функция адресі болып оның кіріс нүктесі саналады. Осы адрес функцияны шақырғанда қолданылады. Көрсеткіш функция адресін сақтағандықтан, ол осы көрсеткіш көмегімен шақырылуы мүмкін. Ол сонымен қатар адресті басқа функцияларға аргумент ретінде жібере алады.
С тіліндегі бағдарламада функция адресі қызметін жақшасыз және аргументсіз аты атқарады. Қолданушы енгізген екі жолды салыстыратын келесі бағдарламаны қарастырайық. p көрсеткіші мұнда функцияға көрсеткіш болып тұр.
#include<stdio.h>
#include <string.h>
void check(char *a, char *b,
int (*cmp)(const char *, const char *));
int main(void)
{
char s1[80], s2[80];
int (*p)(const char *, const char *);
/* указатель на функцию */
p = strcmp;
/* strcmp функция адресін р көрсеткішіне меншіктейді */
printf("Введите две строки.\n");
gets(s1);
gets(s2);
check(s1, s2, p); /* p көрсеткіші арқылы strcmp функция адресін жібереді. */
return 0;
}
void check(char *a, char *b,
int (*cmp)(const char *, const char *))
{
printf("Проверка на совпадение.\n");
if(!(*cmp)(a, b)) printf("Равны");
elseprintf("Не равны");
}
main()-де р көрсеткішінің жариялауын қарастырайық:
int (*p)(const char *, const char *);
Бұл жариялау компиляторға р-ның const char* типті екі параметрі бар функцияға көрсеткіш және int типті мәнді қайтарады. р-ның айналасындағы компилятормен жариялаудың дұрыс интерпретациясы үшін қажет. Жариялаудың осындай түрі басқа да функцияларға көрсеткіштер үшін де қолданылады.Тек ол үшін қайтарылатын типтер мен функция параметрін өзгерту керек.
check() функциясын қарастырайық. Онда 3 параметр жарияланған: (a және b) символдық типіне көрсеткіш және cmp функциясына көрсеткіш. cmp функциясының көрсеткіш форматы р көрсеткішінікіндей. Сондықтан cmp-да constchar * типті екі параметрі бар және int мәнін қайтаратын фугкцияға көрсеткішті сақтауға болады. р-ның жарияламасында айтылғандай, *cmp айналасына қойылатын дөңгелек жақшалар осы жарияны компилятор көмегімен дұрыс интерпритациялау үшін қажет.
Программа басында р көрсеткішіне жолдарды салыстырумен айналысатын стандартты кітапханалық strcmp() функциясының адресі еншіленеді.Одан кейін программа қолданушыдан екі жолды енгізуді сұрайды да, передает указатели на них функции check(), которая их сравнивает.
check() ішінде көрсетілген
(*cmp)(a, b)
a және b аргументтері бар, cmp-ға нұсқайтын strcmp() функциясын қосады. *cmp айналасындағы жақшалар міндетті түрде қойылады. Бұдан басқа да, көрсеткіштің көмегімен функцияны іске қосу тәсілдері бар:
cmp(a, b);
Бірақ бірінші тәсіл жиірек қолданылады (біз де сол тәсілді қолдануға кеңес береміз), себебі екінші тәсілде cmp көрсеткіші фунцияның атына ұқсап кетеді де, программаны оқу кезінде шатастыруы мүмкін. Бірінші тәсілдің өз кезегінде артықшылықтары бар: мысалы, функция функцияның атына емес, фунцияға сілтеу арқылы іске қосылатыны жақсы көрініп тұр. С-да алғашында бірінші тәсілдің жұмыс істегенін де ескерген жөн.
check() функциясын шақыруды strcmp() атын қолдану арқылы жазуға болады:
check(s1, s2, strcmp);
Бқл жағдайда бағдарламаға қосымша көрсеткіш р-ны енгізу қажеттілігі болмайды.
11-14.Массивтер. Массивтерді анықтау және хабарлау. Көрсеткіштер көмегімен функция массивтерін өңдеу.
Массив дегеніміз - бір атпен аталған, әртүрлі индекстелген бір типті
элементтер жиынтығы.
Қасиеттері:
Массивтің қасиеттерін анықтайтын 4 негізгі принципі бар:
-массивте элементтер деп аталатын мәндер сақталады;
-массивтің барлық элементтері бір типті болуы керек;
-жадыда массивтің барлық элементі тізбектеліп орналасады және бірінші
элемент адрестің нөлдік индексін білдіреді;
-массив атауы тұрақты болып табылады және массивтің бірінші элементінің
адресінен тұрады.
Mассивтің сипатталуы:
<элементтің типі> <массив аты> [<элементтер саны>];
Мысалы, int a[12]; {12 элементтен тұратын массив}
char s[20]; {20 элементтен тұратын массив}
#define KOL 10 {}
int [KOL];
Массивті инициялизациялау 3 тәсілмен анықталады:
- массивті құру барысында;
- массивті құру барысында бастапқы тұрақтыларды көрсету;
- программаның орындалу барысында;
- құру барысында массивтің бастапқы мәндері берілмесе, онда автоматты
түрде массив 0-мен толтырылады(NULL).
Массив элементін қолданғанда индекс ретінде үш түрлі мән беруге болады:
1. Сандық тұрақты.
2. Айнымалы.
3. Өрнек.
include<stdio.h>
#include<conio.h>
#define SIZE 5 // массив өлшемі
void main()
{
int a SIZE ; // массив
int n=0; // санағыш
int i; // индекс
clrscr();
puts(" \n Бүтін сандар массивін анықтау ");
puts(" Әр санды енгізген сайын Enter пернесін басыңыз ");
for (i=0; i SIZE; i++)
{
printf("a%i=", i+1);
scanf(“%i”, & ai);
if (ai!=0) n++;
}
printf(" массивте %i нөлдік емес элемент бар\n", n);
puts("\nЖұмысты аяқтау үшңн Enter пернесін басыңыз ");
getch();
}