Динамикалық тізімдермен жұмыс



Мазмұны

Кіріспе ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... 5

1 С++ бағдарламалау тілі ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... 6
1.1 Динамикалық құрылымдар ... ... ... ... ... ... ... ... ... .8
1.2 Тізімдермен жұмыс ... ... ... ... ... ... ... ... ... ... ... ... ... ...

2 Бағдарламаны жобалау ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ..20
2.1 Есептің шешілу әдісі ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... 20
2.2 Бағдарламаның алгоритмі ... ... .. ... ... ... ... ... ... ... ... ... ... ... ... ... ... .20

3 Құжаттау ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...21
3.1 Қолданушыға нұсқау ... ... ... ... ... ... ... ... ... ... ... ... ... ... ..21
3.2 Бағдарламалаушыға нұсқау ... ... ... ... ... ... ... ... ... ... ... ... ..21

Қорытынды ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... 22

Қолданылған әдебиеттер ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... .23

Қосымша ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...24
Кіріспе

Бұл курстық жұмыс «Бағдарламалау технологиясы» пәні бойынша орындалған және С++ тілінде динамикалық тізімдерді қолдануға негізделген. Бағдарламаны орындау үшін осы тілде динамикалық тізімдер қолданылады. Олар С++ тілінде деректер қорын құруға мүмкіндік береді.
Курстық жұмыстың тақырыбы «Динамикалық тізімдермен жұмыс». Жұмыстың жалпы мақсаты студенттерді С++ тілінде бағдарламалар құру әдісіне үйрету және осы тілді тереңдей оқып меңгеру. Жұмыс үш бөлімнен және қорытынды мен қосымшалардан тұрады. Бірінші бөлімінде С++ тілі туралы және динамикалық құрылым, оның ішінде тізімдерге түсініктеме берілген, яғни оның мүмкіндіктері көрсетілген. Екінші бөлімде есептің шешілу әдісі көрсетілген, яғни бағдарламаның жұмысына қажетті модульдер, функциялар және т.б. Мұнда бағдарламаның алгоритмі көрсетілген. Үшінші бөлімде құжаттау, яғни бағдарламалаушыға нұсқау көрсетілген. Жұмыстың қосымша бөлімінде бағдарламаның листингі және бағдарламаның нәтижесі көрсетілген.
ҚОЛДАНЫЛҒАН ӘДЕБИЕТТЕР ТІЗІМІ

1. П. Лукас. С++ под рукой. – Киев: НПИФ «ДиаСофт», 1993.
2. Г. Шилдт. Теория и практика С++. BHV-Санкт-Петербург. 1997
3. А.И. Голуб. Правила программирования на С и С++. М.: Бином. 1996.
4. Т. Бадд. Объектно-ориентированное программирование в действии. Питер.1997.
5. Дж. Круглински. Основы Visual C++. 2003
6. C++Builder 5. Руководство разработчика. В2 т. Т.2. Сложные вопросы программирования. Вильямс 2001.
7. Г. Буч Объектно-ориентированный анализ и проектирование с примерами приложений на С++, 2-е изд./Перю с англ. – М.: «Издательство Бином», СПб.: «Невский диалект », 2001.
8. Э. Гамма, Р. Хелм, Р. Джонсон, Дж. Влиссидес. Прёмы объектно- ориентированного проектирования. Паттерны проектирования. – СПб: Питер, 2001

Аннотация

Курстық жұмыс С++ бағдарламалау тілінде орындалды.
Бұл курстық жұмыс Динамикалық тізімдермен жұмыс тақырыбында жасалды.
Курстық жұмыстың мақсаты – динамикалық тізімдерді қолданып, С++ тілінде
бағдарламалар құруды жетік меңгеру.
Курстық жұмыс 3 бөлімнен тұрады:Олар С++ бағдарламалау тілі,
Бағдарламаны жобалау және құжаттау. Сонымен қатар, қорытынды мен
қолданылған әдебиеттер және қосымша қарастырылған.

Мазмұны

Кіріспе ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ..
... ... ... ... ... ... ... ... ... ... ... 5
1 С++ бағдарламалау
тілі ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... .
... ... ... 6
1.1 Динамикалық құрылымдар ... ... ... ... ... ... ... ... ... .8
1.2 Тізімдермен
жұмыс ... ... ... ... ... ... ... ... ... ... ... ... ... ... .
2 Бағдарламаны
жобалау ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ..
... ... ... .20
2.1 Есептің шешілу әдісі ... ...
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... .20
2.2 Бағдарламаның алгоритмі ... ... ..
... ... ... ... ... ... ... ... ... ... ... ... ... ... ..20
3 Құжаттау ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... 21
3.1 Қолданушыға нұсқау ... ... ... ... ... ... ... ... ... ... ... ... ... ... ..21
3.2 Бағдарламалаушыға нұсқау ... ... ... ... ... ... ... ... ... ... ... ... ..21
Қорытынды ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
... ... ... ... ... ... ... ... ... ..22
Қолданылған әдебиеттер
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... .
... .23
Қосымша
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... .
... ... ... ... ... ... ... ... ... ... ... ... 24

Кіріспе

Бұл курстық жұмыс Бағдарламалау технологиясы пәні бойынша орындалған
және С++ тілінде динамикалық тізімдерді қолдануға негізделген. Бағдарламаны
орындау үшін осы тілде динамикалық тізімдер қолданылады. Олар С++ тілінде
деректер қорын құруға мүмкіндік береді.
Курстық жұмыстың тақырыбы Динамикалық тізімдермен жұмыс. Жұмыстың
жалпы мақсаты студенттерді С++ тілінде бағдарламалар құру әдісіне үйрету
және осы тілді тереңдей оқып меңгеру. Жұмыс үш бөлімнен және қорытынды мен
қосымшалардан тұрады. Бірінші бөлімінде С++ тілі туралы және динамикалық
құрылым, оның ішінде тізімдерге түсініктеме берілген, яғни оның
мүмкіндіктері көрсетілген. Екінші бөлімде есептің шешілу әдісі көрсетілген,
яғни бағдарламаның жұмысына қажетті модульдер, функциялар және т.б. Мұнда
бағдарламаның алгоритмі көрсетілген. Үшінші бөлімде құжаттау, яғни
бағдарламалаушыға нұсқау көрсетілген. Жұмыстың қосымша бөлімінде
бағдарламаның листингі және бағдарламаның нәтижесі көрсетілген.

1 С++ бағдарламалау тілі

Қазіргі кезде кеңінен қолданылатын программалау жүйесінің бірі – С++.
Американың Borland корпорациясының қызметкері Андерсон Хайлсбергтің
жетекшілігімен құрастырылған. С++-тың түп нұсқасы Швейцария ғалымы
Никлаус Вирт жасаған Паскаль программалау тілінен тарайды.
Бастапқыда Паскаль тілі программалауды алғаш үйренушілер үшін өте
тиімді құрал болып табылған. Қарапайым Паскальды өңдеудегі
А.Хайлсбергтің үлкен еңбегінің нәтижесінде С++ қазіргі заман талабына
сай, қуатты программалау жүйесіне айналды. С++ - жоғарғы деңгейлі
программалау жүйесі. Оның логикалық құрылымы әр түрлі есептерді дәл
шешуге көмегін тигізеді. Сондықтан , оқушылар мен студенттерге
программалаудың негізін С++ тілін оқытып үйретуден бастап,
программалаудың қыр-сырын меңгертудің маңызы зор.
1972 жылы AT&T атаулы Американың корпорациясы жаңа C (Си) программалау
тілін дайындап шыкты. Ол — құрылымдық және алгоритмдерді басшылықка алып
дайындалған процедуралық жоғары деңгейлі тіл.
Тілге жылдам орындалатын, жеке биттермен операция жасайтын операторлар
да енгізілген. Олар арқылы байланыс порттарын, магниттік дискілерде
жинақтауыштарды және т.б. аппаратттық кұралдарды басқаруға мүмкіндік
жасалды. Ал, алғашқы кездерде жеке типті компьютерлердің аппараттық
кұралдарына қол жеткізе алатын машиналық командалармен жумыс істейтін
төменгі деңгейлі ассамблер тілі ғана болатын.
Си тілі бірте-бірте дамытылып, қазіргі кезде пайдаланылып келе жаткан,
1983 жылы дүние жүзі елдері басшылықка алған ANSI C нұсқасы да жарыққа
шықты (ANSI - стандарттардың Америкалық ұлттық институты). ANSI C тілінің
түрлі нұсқаларына енгізілген стандартты кітапханалар да бар. Тілдің
кемшілігі де жоқ емес, ол жүйелік және қолданбалы программаларды дайындауға
бейім, бірақ айнымалыларға рұқсат етілмеген қол жеткізу механизмін
қамтамасыз етпейді және құрьшатын класты баска кластың ішкі класы (мұрагер)
ретінде жариялау мүмкін емес. Мұндай объектілі - бағдарлы программалау
(ОБП) тілдеріне енетін ерекшеліктерді ескеріп, Borland International Inc
фирмасы C тілінің дамытылған жаңа Turbo C (Турбо Си) нұскасын 1980
жылдардың басында жарықка шығарды. Кейіннең Turbo C++ 2.0, Turbo C++ 3.0
және олардың кеңейтілген Borland C++ нұсқалары да пайда болды: Borland C++
2.0, Borland C++ 3.0, Borland C++ 3.1, Borland C++ 4.0 және т.б.
Олардың MS DOS, Windows операциялық жүйелерінде жұмыс істеу
мүмкіндіктері жеткілікті.
C++ тілі де процедуралық тіл, бірақ онда ОБП тілінің ерекшеліктері кең
түрде қарастырылған. ОБП тілінде қолданылатын негізгі ұйымдар: класс,
объект, оқиға, қасиеттер мен әдістер. Бұл ұғымдар:
объект - құрылымы класс типі арқылы сипатталатын айнымалы;
оқиға - объект жағдайының өзгеруі; қасиеттер - объект сипаттамалары
(параметрлері); әдіс - класс элементтерін іздейтін команда не процедура,
функция.
класс - пайдаланушы анықтайтын тип. Тип қасиеттер мен әдістерді бірге
қосып сипаттайды. Программада осы кластың жеке даналары дайындалады. ОБП-да
класс үшін мұрагерлік, инкапсуляция және полиморфизм принциптері
енгізілген. Мұрагерлік — программада негізгі класс типінің туынды
иерархиялық класта сақталуы, т.б.
Тілде жадпен жұмыс істеуге арналған арнайы конструктор, деструктор
функциялары да бар. Конструктор класс типті айнымалы үшін жадтан арнайы
орын бөледі, деструктор бөлінген жадты тазалайды.
Мысал үшін фигуралық объектілерді қарастырайық. Мұндағы класс –
геометриялық фигуралар типі. Класс жазық және кеңістіктегі у фигуралар
болып екі ішкі класқа бөлінеді (C тілінде оларды мұрагер типтер деп
атайды). Жазық фигуралар класы төбелері бар (мысалы, үшбұрыш, төртбұрыш)
және төбелерсіз (мысалы, шеңбер, эллипс) болып екі ішкі класка бөлінеді
(олар иерархиялық мұрагер типтер).

1.2 Динамикалық құрылымдар

Динамикалық құрылымдар анықтамасы бойынша жадыда құрылым
элментттерінің физикалық шектестігінің болмауымен, оны өңдеу процесі
кезінде құрылым өлшемінің тұрақсыздығымен сипатталады.
Динамикалық құрылымның элементтері жадының алдын-ала айта алмайтын адрсетер
бойынша орналасатындықтан, мұндай құрылымның элементінің адресі бастапқы
немесе алдыңғы элементтен алынбайды. Динамикалық құрылымның элементтерінің
арасында байланыс орнату үшін көрсеткіштер қолданылады, олар арқылы
элементтер арасында анық байланыстар орнатылады. Деректерді жадыда бұлай
көрсету байланысты деп аталады. Динамикалық құрылымның элементі екі өрістен
тұрады:
• Ақпараттық өріс немесе деректер өрісі, мұнда құрылым құрылған
деректер сақталады; жалпы жағдайда ақпараттық өрістің өзі
жинақталған құрылым – вектор, массив, не басқа динамикалық құрылым
болып табылады;
• Байланысу өрісі, берілген элементті құрылымның басқа элементтерімен
байланыстыратын бір немесе бірнеше көрсеткіштерден тұрады.
Деректерді байланысты көрсетудің артықшылығы – құрылымның едәуір
өзгеруін қамтамасыз ету мүмкіндігі;
• Құрылымның өлшемі машиналық жадының қол жетерлік көлемімен ғана
шектеледі;
• Құрылым элементтерінің логикалық тізбегін өзгерту кезінде жадыда
деректерді орналастыру емес, көрсеткіштерді түзету ғана талап
етіледі;
• Құрылымның иілгіштігі.
Сонымен бірге, байланысты көрсетудің кемшіліктері де жоқ емес:
• Байланыс өрістеріне қосымша жады шығындалады;
• Байланысқан құрылым элементтеріне қатынас уақыт бойынша тиімсіздеу
болуы мүмкін.
Соңғы кемшілігі едәуір қиындықтар туғызатындықтан, деректерді
байланысты көрсетуге соған бола шектеу қойылады. Егер деректерді аралас
көрсетуде кез келген элементтің адресін есептеу үшін бізге барлық жағдайда
элементтің нөмірі және құрылымның дескрипторындағы ақпарат жеткілікті
болса, онда байланысты көрсету үшін элементтердің адресі бастапқы
деректерден есептелінбейді. Байланысты құрылымның дескрипторы құрылымға
кіруге мүмкіндік беретін бір немесе бірнеше көрсеткіштен тұрады, әрі қарай
қажетті элементті іздеу элементтен элементке тізбек бойынша орындалады.
Сондықтан байланысты көрсету деректердің логикалық құрылымы элемент
нөмірі бойынша қатынас жасайтын вектор немесе массив түріндегі есептерде
ешқашан қолданылмайды, бірақ логикалық құрылымы басқа бастапқы
ақпараттарды (кестені, тізімді, ағашты және басқа) қажет ететін есептерде
жиі қолданылады.
1.3 Тізімдермен жұмыс

Динамикалық құрылымдардан бағдарламада сызықтық тізімдер жиі
қолданылады.
Кез келген деректердің динамикалық құрылымы ең болмағанда екі
өрістен тұратын, құрылымды (struct) құрайды. Олар деректерді сақтауға және
көрсеткішке арналған өрістер. Деректер өрісі және көрсеткіштер бірнеше
болуы мүмкін. Деректер өрісі кез келген типте болуы мүмкін: негізгі,
құрамды және көрсеткіш типті. Қарапайым элементті сипаттау төмендегідей
болады:
struct Node{
Data d; Data деректер типі алдын анықталуы тиіс Node *р:
}:
Элементтер жиынын байланыстырудың ең қарапайым тәсілі - әрбір
элементте келесісіне сілтеме болу. Мұндай тізім бірбағытты (бірбайланысты)
деп аталады. Егер әрбір элементке екінші сілтемені алдыңғы элементке
қоссақ, екібағытты тізім алынады. Егер соңғы элементті біріншісімен
көрсеткішпен байланыстырсақ, дөңгелек тізім алынады.
Тізімнің әрбір элементі кілттен тұрады. Кілт әдетте не бүтін сан, не
қатар болады және деректер өрісінің бөлігі болып табылады. Тізіммен жұмыс
кезінде кілт ретінде деректер өрісінің әр түрлі бөліктері алынуы мүмкін.
Мысалы, егер фамилия, туған жылы, жұмыс стажы, және жынысынан тұратын
жазбалардан сызықты тізім құрылса, жазбаның кез келген бөлігі кілт бола
алады: тізімді алфавит бойынша реттейтін болсақ, кілт фамилия болады, ал
іздеу кезінде, мысалы еңбек ардагерлерін, онда кілт стаж болады. Әр түрлі
элементтердің кілттері сәйкес келуі мүмкін.
Тізімдерге келесі амалдарды орындауға болады:
тізімді бастапқы қалыптастыру (алғашқы элементті құру);
тізімнің соңына элементті қосу;
берілген кілтімен элементті оқу;
3. тізімнің берілген орнына элементті қою (берілген кілтімен элемент алдына
не соңына);
берілген кілтімен элементті жою;
кілт бойынша тізімді реттеу.
Екібағытты сызықтық тізімді қарастырайық. Тізімді қалыптастырып,
онымен жұмыс істеу үшін ең ... жалғасы

Сіз бұл жұмысты біздің қосымшамыз арқылы толығымен тегін көре аласыз.
Ұқсас жұмыстар
Си бағдарламалау тілінде сызықтық тізімдерді таңдау және іздеу
Қазақстан үшін 1С:Бухгалтерия 8.0» туралы жалпы мағлұмат
Python сөздіктері
ПРОЛОГ - БАҒДАРЛАМАНЫҢ СИНТАКСИСІ ЖӘНЕ СЕМАНТИКАСЫ
Мәліметтердің динамикалық құрылымы
Java программалау тілі
Объектілі-бағдарлы программалаудың теориясын меңгеру
Қасиетті таңдау терезесі
Front page тілі туралы жалпы мағлұматтар мен міндеттер
Динамикалық блоктар
Пәндер