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

Мазмұны

Кіріспе ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... 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 С++ ... ... ... ... ... ... ... ... ... ... Бағдарламаның ... ... ... Қолданушыға нұсқау………………………………………………….21
3.2 Бағдарламалаушыға нұсқау…………………………………………..21
Қорытынды...................................................................
.....................................22
Қолданылған ... ... ... ... ... пәні бойынша орындалған
және С++ тілінде динамикалық тізімдерді қолдануға негізделген. Бағдарламаны
орындау үшін осы тілде динамикалық тізімдер ... Олар С++ ... ... құруға мүмкіндік береді.
Курстық жұмыстың тақырыбы «Динамикалық тізімдермен жұмыс». ... ... ... С++ ... ... құру әдісіне үйрету
және осы тілді тереңдей оқып меңгеру. Жұмыс үш бөлімнен және ... ... ... Бірінші бөлімінде С++ тілі туралы және динамикалық
құрылым, оның ішінде тізімдерге ... ... яғни ... ... ... ... ... шешілу әдісі көрсетілген,
яғни бағдарламаның жұмысына қажетті модульдер, функциялар және т.б. ... ... ... ... ... құжаттау, яғни
бағдарламалаушыға нұсқау көрсетілген. Жұмыстың қосымша ... ... және ... ... көрсетілген.
1 С++ бағдарламалау тілі
Қазіргі кезде кеңінен қолданылатын ... ... бірі – ... Borland ... ... ... Хайлсбергтің
жетекшілігімен құрастырылған. С++-тың түп ... ... ... Вирт ... ... ... ... тарайды.
Бастапқыда Паскаль тілі программалауды алғаш үйренушілер үшін ... ... ... ... ... ... өңдеудегі
А.Хайлсбергтің үлкен еңбегінің нәтижесінде С++ қазіргі заман ... ... ... ... ... С++ - жоғарғы деңгейлі
программалау жүйесі. Оның логикалық ... әр ... ... дәл
шешуге көмегін тигізеді. Сондықтан , оқушылар мен ... ... С++ ... ... ... бастап,
программалаудың қыр-сырын меңгертудің маңызы зор.
1972 жылы AT&T ... ... ... жаңа C (Си) ... ... ... Ол — ... және алгоритмдерді басшылықка алып
дайындалған процедуралық ... ... ... ... ... жеке ... ... жасайтын операторлар
да енгізілген. Олар арқылы байланыс порттарын, ... ... және т.б. ... ... басқаруға мүмкіндік
жасалды. Ал, алғашқы кездерде жеке ... ... ... қол ... ... ... ... жумыс істейтін
төменгі деңгейлі ассамблер тілі ғана болатын.
Си тілі бірте-бірте дамытылып, қазіргі кезде пайдаланылып келе ... жылы ... жүзі ... ... ... ANSI C ... да ... (ANSI - стандарттардың Америкалық ұлттық институты). ANSI C ... ... ... стандартты кітапханалар да бар. ... де жоқ ... ол ... және ... программаларды дайындауға
бейім, бірақ айнымалыларға рұқсат етілмеген қол ... ... ... және ... класты баска кластың ішкі класы (мұрагер)
ретінде жариялау мүмкін емес. ... ... - ... ... ... енетін ерекшеліктерді ескеріп, Borland International Inc
фирмасы C ... ... жаңа Turbo C ... Си) ... ... ... ... шығарды. Кейіннең Turbo C++ 2.0, Turbo C++ 3.0
және олардың кеңейтілген Borland C++ нұсқалары да пайда болды: Borland ... Borland C++ 3.0, Borland C++ 3.1, Borland C++ 4.0 және ... MS DOS, Windows ... ... жұмыс істеу
мүмкіндіктері жеткілікті.
C++ тілі де ... тіл, ... онда ОБП ... ... ... қарастырылған. ОБП тілінде қолданылатын негізгі ұйымдар: класс,
объект, оқиға, қасиеттер мен әдістер. Бұл ұғымдар:
объект - ... ... типі ... ... айнымалы;
оқиға - объект жағдайының өзгеруі; қасиеттер - объект ... әдіс - ... ... ... ... не процедура,
функция.
класс - пайдаланушы анықтайтын тип. Тип қасиеттер мен әдістерді бірге
қосып сипаттайды. Программада осы ... жеке ... ... ... үшін ... ... және ... принциптері
енгізілген. Мұрагерлік — программада негізгі ... ... ... класта сақталуы, т.б.
Тілде жадпен жұмыс істеуге арналған арнайы конструктор, деструктор
функциялары да бар. ... ... ... ... үшін жадтан арнайы
орын бөледі, деструктор бөлінген жадты тазалайды.
Мысал үшін фигуралық объектілерді ... ... ... ... фигуралар типі. Класс жазық және кеңістіктегі у ... екі ішкі ... ... (C ... ... ... типтер деп
атайды). Жазық фигуралар класы төбелері бар (мысалы, үшбұрыш, төртбұрыш)
және ... ... ... ... ... екі ішкі ... ... иерархиялық мұрагер типтер).
1.2 Динамикалық құрылымдар
Динамикалық құрылымдар анықтамасы ... ... ... ... шектестігінің болмауымен, оны ... ... ... ... ... ... ... элементтері жадының алдын-ала айта алмайтын адрсетер
бойынша орналасатындықтан, мұндай құрылымның элементінің адресі бастапқы
немесе алдыңғы ... ... ... ... ... ... ... үшін көрсеткіштер қолданылады, олар арқылы
элементтер арасында анық байланыстар орнатылады. Деректерді ... ... ... деп ... ... құрылымның элементі екі өрістен
тұрады:
• Ақпараттық өріс немесе деректер өрісі, ... ... ... сақталады; жалпы жағдайда ақпараттық ... ... ... – вектор, массив, не басқа динамикалық құрылым
болып табылады;
• Байланысу өрісі, берілген элементті құрылымның басқа элементтерімен
байланыстыратын бір ... ... ... ... ... ... ... – құрылымның едәуір
өзгеруін қамтамасыз ету ... ... ... ... ... қол ... көлемімен ғана
шектеледі;
• Құрылым элементтерінің логикалық тізбегін өзгерту ... ... ... ... ... ... ғана ... Құрылымның иілгіштігі.
Сонымен бірге, байланысты көрсетудің кемшіліктері де жоқ ... ... ... ... жады ... Байланысқан құрылым элементтеріне қатынас уақыт бойынша тиімсіздеу
болуы мүмкін.
Соңғы кемшілігі едәуір қиындықтар ... ... ... ... бола ... ... Егер ... аралас
көрсетуде кез келген элементтің адресін есептеу үшін бізге барлық ... ... және ... ... ... ... онда ... көрсету үшін элементтердің адресі бастапқы
деректерден есептелінбейді. Байланысты құрылымның дескрипторы ... ... ... бір немесе бірнеше көрсеткіштен тұрады, әрі қарай
қажетті ... ... ... ... ... бойынша орындалады.
Сондықтан байланысты көрсету деректердің логикалық құрылымы элемент
нөмірі бойынша қатынас ... ... ... ... түріндегі есептерде
ешқашан қолданылмайды, ... ... ... ... бастапқы
ақпараттарды (кестені, тізімді, ағашты және басқа) ... ... ... ... ... жұмыс
Динамикалық құрылымдардан бағдарламада сызықтық ... ... ... ... ... ... ең болмағанда екі
өрістен тұратын, құрылымды (struct) құрайды. Олар ... ... ... арналған өрістер. Деректер өрісі және көрсеткіштер ... ... ... ... кез ... типте болуы мүмкін: негізгі,
құрамды және көрсеткіш ... ... ... ... ... Node{
Data d; // Data деректер типі алдын анықталуы тиіс Node *р:
}:
Элементтер жиынын байланыстырудың ең ... ... - ... ... ... ... Мұндай тізім бірбағытты (бірбайланысты)
деп аталады. Егер ... ... ... ... ... элементке
қоссақ, екібағытты тізім алынады. Егер соңғы ... ... ... дөңгелек тізім алынады.
Тізімнің әрбір элементі кілттен тұрады. Кілт ... не ... сан, ... болады және деректер өрісінің бөлігі болып табылады. Тізіммен жұмыс
кезінде кілт ретінде деректер өрісінің әр ... ... ... ... егер ... туған жылы, жұмыс ... және ... ... сызықты тізім құрылса, жазбаның кез келген бөлігі кілт ... ... ... ... ... болсақ, кілт фамилия болады, ал
іздеу кезінде, мысалы ... ... онда кілт стаж ... Әр ... ... ... ... мүмкін.
Тізімдерге келесі амалдарды орындауға болады:
тізімді бастапқы қалыптастыру (алғашқы элементті құру);
тізімнің соңына элементті қосу;
берілген кілтімен элементті ... ... ... ... ... қою ... кілтімен элемент алдына
не соңына);
берілген кілтімен элементті жою;
кілт бойынша тізімді реттеу.
Екібағытты сызықтық тізімді ... ... ... ... ... үшін ең ... бір көрсеткіш – тізімнің басына болуы
керек. Тағы бір көрсеткішті – ... ... ... ... Қарапайымдылық
үшін, тізім бүтін сандардан тұрады десек, онда ... ... ... Node{
int d;
Node *next;
Node *prev;
}:
Төменде 5 саннан тұратын тізім ... ... ... ... және ... экранға шығаратын, бағдарлама келтірілген. Тізімнің басындағы
көрсеткіш pbeg, тізімнің соңында — pend, көмекші ... — pv ... деп ... ... ... d;
Node *next;
Node *prev;
}:
Node * first(int d);
void add(Node **pend, int d);
Node * find(Node * const pbeg, int ... ... **pbeg, Node **pend, int ... * ... * const pbeg, Node **pend, int key, int ... main(){
Node *pbeg = first(l); // Тізімнің бірінші элементін қалыптастыру
Node *pend = pbeg; // ... ... ... ... (int i - 2; iprev = ... pv;
}
// Тізімнің соңына қосу
void add(Node **pend, int d){
Node *pv = new Node;
pv->d = d;
pv->next = 0;
pv->prev = ... = ... = ... Кілт ... ... ... * ... * const pbeg, int d)
{ Node *pv = pbeg; while ... == d)break; pv = ... ... ... жою
bool remove(Node **pbeg, Node **pend, int key)
{ if(Node *pkey = find(*pbeg, key)){
if (pkey == *pbeg){
*pbeg = (*pbeg)->next;
(*pbeg)->prev = ... if (pkey == ... *pend = ... = 0;}
else{
(pkey->prev)->next = pkey->next;
(pkey->next)->prev = pkey->prev;}
delete pkey;
return true;
}
return false;
}
// Элементті қою
Node * insert(Node * const pbeg, Node **pend, int key, int ... *pkey = ... ... Node *pv = new ... = d;
pv->next = pkey->next;
pv->prev = pkey;
pkey->next = pv;
if( pkey != *pend) (pv->next)->prev = pv;
else *pend = pv;
return ... 0; ... ... ... 1 2 200 3 4
Функцияның ішінде өзгертілмейтін барлық параметрлер ... ... ... ... мүмкін көрсеткіштер (мысалы,
тізімнен соңғы элементі жою кезінде тізімнің ... ... ... ... ... ... ... элементті жою функциясы remove. Оның параметрлері тізімнің
басына және ... ... ... ... ... кілті. 1
қатарда pkey жергілікті көрсеткішімен жады бөлінеді, оған find ... ... табу ... ... ... Бұл ... сәтті болғанда элементке көрсеткішті, тізімде мұндай кілтпен элемент
жоқ ... 0 ... Егер pkey ... емес мән ... if ... ... ... да, басқару 2 операторға ... егер ... ... ... false ... ... орындалады (оператор 6).
Тізімнен жою элементтің тізімнің басында, ортасында немесе соңында
орналасқанына байланысты әр ... ... 2 ... ... ... ... тұр ма деп ... – бұл жағдайда pbeg
көрсеткішін бірінші ... next ... ... адрестегі тізімнің
келесі элементіне көрсететін, тізімнің басына түзету ... ... ... ... ... көрсеткіш өрісінде алдыңғы элементке 0 мәнінде
болуы керек.
Егер жойылатын элемент тізімнің соңында болса ... 3), ... pend ... ... ... ... керек, адресін соңғы
элементтің prev өрісінен алуға болады. Сонымен бірге, жаңа соңғы ... ... ... ... ... ... жою тізімнің ортасында орындалатын болса, алдыңғы және келесі
элментпен екі ... ... ... ету ... ... ... жады элементтен босайды, функция true мәнін қайтарады.
Байланысқан тізімді сұрыптау элементтер арасындағы ... ... ... - ... ... ... ... элементі оның
кілтінің мәнімен анықталатын орынға жаңа тізімге қойылады.
2 ... ... ... динамикалық тізімдермен жұмысты жүзеге асыру үшін С++
тілінің ... ... ... ... ... ... құру мүмкіндігіне ие боламыз.
2.1 Есептің шешілу әдісі
Берілген есепті шешу үшін біз С++ ... ... ... ... С++ та ... қосу үшін ... қосу ... С++
кейін арқылы драйвер ізделеді. Ең алдымен бағдарламаның
басында # include ... ... ... және драйвер іске қосылады. ... ... ... ... ... ... ... Осыдан келіп графикалық режим
closegraph(); арқылы жабылады.
2.2 Бағдарламаның алгоритмі
Берілген ... ... ... басы, берілгендері,
функцияның протативі, графикалық режимді іске қосу және ... ... ... ... ... ... Қолданушыға нұсқау
Жалпы мағлұматтар
Бұл программа C++ тілінде жазылған. Оны жазу үшін C++тіліндегі
файлдары, ... ... ... ... ... ... техникалық жобдықтар
Программаны жазып тексеру үшін компьютер, ал оны баспаға шығару үшін
принтер қажет.
3.2 Бағдарламаушыға нұсқау
Программаның шақырылуы мен ... ... ... С++ ... ... С++ ... ... Бұл әрекетті орындау үшін
File менюіндегі Open… командасы орындалады. Бұл ... ... ... ... ашылады. Терезеде файлдар тізімі беріледі. Бұл терезеден
бір файлды ашу ... ... ... ... ашу үшін тағы бір Open as ... как) ... ... командадан айырмашылығы құжатты ашқан кезде типін көрсетіп
кетуіміз керек.
б) программаны орындау-Ctrl+F9
в) нәтижесін ... ... ... құжатты сақтау үшін бес ... ... Олар ... ... ... a copy ... ... as…(Сохранить как)
Save for Web (Сохранить для Web )
GIF 89 a Export…(Экспорт GIF 89 a )
Егер құжатты ... ... ... ... үшін Save командасын
қолданамыз. Save as командасы құжатты ... рет ... және оның ... (құжат атын, форматын) өзгертіп сақтау кезінде қолданылады. Бұл
команданы орындау кезінде мына параметрлерді көрсету керек:
-файлды ... ... ... атын ... ... ... ... шығу Alt+
ҚОРЫТЫНДЫ
Курстық жұмыстың тақырыбы «Динамикалық тізімдермен жұмыс». Жұмыстың
жалпы мақсаты студенттерді С++ тілінде бағдарламалар құру ... ... осы ... тереңдей оқып меңгеру. Жұмыс үш бөлімнен және қорытынды мен
қосымшалардан тұрады. Бірінші ... С++ ... тілі ... ... ... ... ... Екінші бөлімде есептің
шешілу әдісі көрсетілген, яғни бағдарламаның жұмысына ... ... және т.б. ... ... алгоритмі көрсетілген. Үшінші
бөлімде құжаттау, яғни бағдарламалаушыға нұсқау көрсетілген
Қорыта келгенде, оқушылар мен студенттерге C++ ... ... ... ... ... ... зор. Соңғы жылдары
Программистер арасында да Паскаль программалау тілі кеңінен тарай бастады.
Бұл тілдердің ... өз ... ... ... табылады.
ҚОЛДАНЫЛҒАН ӘДЕБИЕТТЕР ТІЗІМІ
1. П. Лукас. С++ под рукой. – Киев: НПИФ «ДиаСофт», 1993.
2. Г. Шилдт. ... и ... С++. ... ... А.И. ... ... программирования на С и С++. М.: Бином. 1996.
4. Т. Бадд. ... ... в ... Дж. Круглински. Основы Visual C++. 2003
6. C++Builder 5. ... ... В2 т. Т.2. ... ... ... 2001.
7. Г. Буч Объектно-ориентированный анализ и проектирование с примерами
приложений на С++, 2-е изд./Перю с англ. – М.: ... ... ... ... », ... Э. Гамма, Р. Хелм, Р. Джонсон, Дж. ... ... ... ... ... проектирования. – СПб: Питер,
2001

Пән: Информатика
Жұмыс түрі: Реферат
Көлемі: 8 бет
Бұл жұмыстың бағасы: 200 теңге









Ұқсас жұмыстар
Тақырыб Бет саны
Мәліметтердің динамикалық құрылымы25 бет
Алматы қаласында ауыр металдар мөлшері бойынша жерді аумақтарға бөлу83 бет
Динамикалық айнымалылар құрылымы22 бет
Жылу қазандықтары шығарылымдарын зиянсыздандыру және оларды іске асыру технологияларын негіздеу мен жасау туралы24 бет
Зерттеу процессі кезіндегі экспериментті жоспарлау әдістері туралы11 бет
Металдардың бұзылуы8 бет
Популяцияның негізгі қасиеттері15 бет
"психологиялық кеңес беру"19 бет
AutoCAD-та блоктармен жұмыс жасау11 бет
SCADA жүйесі және интернет жайлы14 бет


Исходниктер
Пәндер
Көмек / Помощь
Арайлым
Біз міндетті түрде жауап береміз!
Мы обязательно ответим!
Жіберу / Отправить


Зарабатывайте вместе с нами

Рахмет!
Хабарлама жіберілді. / Сообщение отправлено.

Сіз үшін аптасына 5 күн жұмыс істейміз.
Жұмыс уақыты 09:00 - 18:00

Мы работаем для Вас 5 дней в неделю.
Время работы 09:00 - 18:00

Email: info@stud.kz

Phone: 777 614 50 20
Жабу / Закрыть

Көмек / Помощь