Мәліметтердің динамикалық құрылымы
Кіріспе
І.Программалау технологиясы
1.С++ программмалау тілінің пайда болу тарихы.
1.2.С++ программалау тілі.Алфавит
1.2.1.Берілгендер типі
1.2.2.Қызметші сөздер
ІІ. Мәліметтердің динамикалық құрылымы
2.1. Мәліметтер құрылымы, динамикалық құрылым
2.2. Өздеріне сілтемелейтін структуралар.
2.3. Жадыны динамикалық үлестіру.
2.4. Байланысқан тізімдер. Тізімдермен жұмыс.
2.5. Стектер. Бұтақтар.
ІІІ.Курстық тапсырмалар
3.1.Логикалық тапсырма
3.2.Бір өлшемді массив бойынша тапсырма
3.3.Екі өлшемді массив бойынша тапсырма
3.4.Сөз тіркесін өңдеу бойынша тапсырма
Қорытынды
Пайдаланылған әдебиеттер
І.Программалау технологиясы
1.С++ программмалау тілінің пайда болу тарихы.
1.2.С++ программалау тілі.Алфавит
1.2.1.Берілгендер типі
1.2.2.Қызметші сөздер
ІІ. Мәліметтердің динамикалық құрылымы
2.1. Мәліметтер құрылымы, динамикалық құрылым
2.2. Өздеріне сілтемелейтін структуралар.
2.3. Жадыны динамикалық үлестіру.
2.4. Байланысқан тізімдер. Тізімдермен жұмыс.
2.5. Стектер. Бұтақтар.
ІІІ.Курстық тапсырмалар
3.1.Логикалық тапсырма
3.2.Бір өлшемді массив бойынша тапсырма
3.3.Екі өлшемді массив бойынша тапсырма
3.4.Сөз тіркесін өңдеу бойынша тапсырма
Қорытынды
Пайдаланылған әдебиеттер
Бұл курстық жұмыс «Бағдарламалау технологиясы» пәні бойынша орындалған және С++ тілінде динамикалық тізімдерді қолдануға негізделген. Бағдарламаны орындау үшін осы тілде динамикалық құрылымдар қолданылады. Олар С++ тілінде деректер қорын құруға мүмкіндік береді.
Курстық жұмысымның тақырыбы «Мәліметтердің динамикалық структурасы».
Курстық жұмысымның тақырыбы «Мәліметтердің динамикалық структурасы».
ПАЙДАЛАНЫЛҒАН ӘДЕБИЕТТЕР
1. Б. С. Ахметов, А. Б. Қуанғалиева, К. Т. Сауанова. Программалау технологиясы. Алматы, ҚККА баспаханасы, 2007ж
2. К. З. Халықова, Г. Ж. Ануарбекова. Си тілінде программалау. Абай атындағы ҚазҰПУ, 2009ж
3. Камардинов О. Турбо С және ТурбоС++ тілдерінде программалау. Түркістан, ХҚТУ баспасы, 2005ж
4. Б. Бөрібаев, А. Махметова. Алгоритмдеу және программалау тілдері. Алматы, ҚККА, 2007ж
5. Дейтел Х., Дейтел П., Бином М. Как программировать на СИ. 2000г
6. Н. С. Заурбеков, Б. Ж. Жұмажанов. Алгоритмдеу және программалау. «Экономика», 2004ж
7. Бөрібаев Б., Дүйсебекова К. Си тілінде программалау: Оқу - әдістемелік құрал. Алматы, 2007. 208 бет.
8. Керниган Б., Ритчи Д. Язык программирования Си. –М.: Финансы и статистика, 1999. 288стр.
9. Котлинская Г.П., Галиновский О.И. Программирование на языке СИ. Мн.: ВШ, 1991.-155стр
10. Б. Бөрібаев, А. Махметова. Алгоритмдеу және программалау тілдері. Оқу құралы. Алматы-2007
11. Ж. С. Исмагулова. Алгоритмизация и языки программирования. Метод.указания для выполнения лабораторных работ. КазАТК, 2008г.
12. Аляев Ю. А., Козлов О.А. алгоритмизация и языки программирования Pascal, C++, Visual Basic. Москва, Бином – ПРЕС, 2003г
13. О. Камардинов. Паскаль тілінде программалау. Оқулық. Алматы, ИИА, 1999ж.
14. Ж. К. Масанов, Б. А. Белгибаев, А. С. Бижанова, К. К. Макулов. Турбо – Паскаль программалау тілі. Оқу құралы. КазАТК, 2004ж
15. Ә. Е. Көксеген, Ә. О. Сейфуллина. Алгоритмдеу және программалау тілдері. Оқулық. Алматы 2011ж., 192 бет.
1. Б. С. Ахметов, А. Б. Қуанғалиева, К. Т. Сауанова. Программалау технологиясы. Алматы, ҚККА баспаханасы, 2007ж
2. К. З. Халықова, Г. Ж. Ануарбекова. Си тілінде программалау. Абай атындағы ҚазҰПУ, 2009ж
3. Камардинов О. Турбо С және ТурбоС++ тілдерінде программалау. Түркістан, ХҚТУ баспасы, 2005ж
4. Б. Бөрібаев, А. Махметова. Алгоритмдеу және программалау тілдері. Алматы, ҚККА, 2007ж
5. Дейтел Х., Дейтел П., Бином М. Как программировать на СИ. 2000г
6. Н. С. Заурбеков, Б. Ж. Жұмажанов. Алгоритмдеу және программалау. «Экономика», 2004ж
7. Бөрібаев Б., Дүйсебекова К. Си тілінде программалау: Оқу - әдістемелік құрал. Алматы, 2007. 208 бет.
8. Керниган Б., Ритчи Д. Язык программирования Си. –М.: Финансы и статистика, 1999. 288стр.
9. Котлинская Г.П., Галиновский О.И. Программирование на языке СИ. Мн.: ВШ, 1991.-155стр
10. Б. Бөрібаев, А. Махметова. Алгоритмдеу және программалау тілдері. Оқу құралы. Алматы-2007
11. Ж. С. Исмагулова. Алгоритмизация и языки программирования. Метод.указания для выполнения лабораторных работ. КазАТК, 2008г.
12. Аляев Ю. А., Козлов О.А. алгоритмизация и языки программирования Pascal, C++, Visual Basic. Москва, Бином – ПРЕС, 2003г
13. О. Камардинов. Паскаль тілінде программалау. Оқулық. Алматы, ИИА, 1999ж.
14. Ж. К. Масанов, Б. А. Белгибаев, А. С. Бижанова, К. К. Макулов. Турбо – Паскаль программалау тілі. Оқу құралы. КазАТК, 2004ж
15. Ә. Е. Көксеген, Ә. О. Сейфуллина. Алгоритмдеу және программалау тілдері. Оқулық. Алматы 2011ж., 192 бет.
Пән: Информатика, Программалау, Мәліметтер қоры
Жұмыс түрі: Курстық жұмыс
Тегін: Антиплагиат
Көлемі: 28 бет
Таңдаулыға:
Жұмыс түрі: Курстық жұмыс
Тегін: Антиплагиат
Көлемі: 28 бет
Таңдаулыға:
Мазмұны
Кіріспе
І.Программалау технологиясы
1.С++ программмалау тілінің пайда болу тарихы.
1.2.С++ программалау тілі.Алфавит
1.2.1.Берілгендер типі
1.2.2.Қызметші сөздер
ІІ. Мәліметтердің динамикалық құрылымы
2.1. Мәліметтер құрылымы, динамикалық құрылым
2.2. Өздеріне сілтемелейтін структуралар.
2.3. Жадыны динамикалық үлестіру.
2.4. Байланысқан тізімдер. Тізімдермен жұмыс.
2.5. Стектер. Бұтақтар.
ІІІ.Курстық тапсырмалар
3.1.Логикалық тапсырма
3.2.Бір өлшемді массив бойынша тапсырма
3.3.Екі өлшемді массив бойынша тапсырма
3.4.Сөз тіркесін өңдеу бойынша тапсырма
Қорытынды
Пайдаланылған әдебиеттер
Кіріспе
Бұл курстық жұмыс Бағдарламалау технологиясы пәні бойынша
орындалған және С++ тілінде динамикалық тізімдерді қолдануға негізделген.
Бағдарламаны орындау үшін осы тілде динамикалық құрылымдар қолданылады.
Олар С++ тілінде деректер қорын құруға мүмкіндік береді.
Курстық жұмысымның тақырыбы Мәліметтердің динамикалық структурасы.
Жұмыстың жалпы мақсаты студенттерді С++ тілінде бағдарламалар құру әдісіне
үйрету және осы тілді тереңдей оқып меңгеру. Жұмыс үш бөлімнен және
қорытынды мен қосымшалардан тұрады. Бірінші бөлімінде С++ тілі туралы.
Екінші бөлімде динамикалық құрылым, оның ішінде тізімдерге түсініктеме
берілген, яғни оның мүмкіндіктері көрсетілген Мұнда бағдарламаның алгоритмі
көрсетілген. Үшінші бөлімде курстық тапсырмалар көрсетілген.
І. Программалау технологиясы
Программалау технологиясы деп – программалық қамсыздандыруды жасау
процесінде қолданылатын әдістер мен құралдарды атайды. Кез келген
технология сияқты программалау технологиясы мынадай техникалық
инструкциялардың жиынын құрайды:
1. Технологиялық операциялардың орындалу тәртібін көрсету
2. Қандай да бір операцияның орындалуы үшін қажетті шарттардың тізімін
жасау
3. Әрбір операцияның өзін сипаттау
Мұнда операция үшін бастапқы мәліметтер, нәтежелер, нұсқаулар,
нормативтер, стандарттар бағалау критерилерімен әдістері және тағы басқалар
анықталады.
Жалпы түрде технологиялардың екі түрін бөліп қарастырады.
1. Нақты жұмыс кезеңдер немесе осы кезеңдердің есептерін шешуде
қолданылатын технологиялар. Олардың негізін нақты есепті шешу
мүмкіндігін беретін шектеулі түрде қолданылатын әдіс құрайды.
2. Бірнеше кезеңді немесе жасау процесін толығымен қамтитын
технологиялар. Бұлардың негізі әдетте методология, яғни түрлі
жұмыс кезеңдерін қолданатын әдістер жиынтығын анықтайтын
негізгі әдісті құрайды.
Программалаудың ғылым ретіндегі дамудың негізгі кезеңдерін атап
өтейік.
1. Стихиялық программалау. Алғашқы ЭЕМ-дердің пайда болған кезінен
бастап ХХ ғасырдың 60-шы жылдарының ортасына дейінгі уақытты
қамтитын бұл кезең программалар құрылымы өте қарапайым болған.
Fortran Algol сияқты жоғары деңгейлі программалау тілдерінің
жасалуы есептеулерді, программалауды айтарлықтай жеңілдетті. Бұл
кезеңнің типтік программасы негізгі программадан глобальды
берілгендер не олардың бөліктерін өңдейтін көмекші программалардан
құралады.
2. Программалауды құрылымдық тұрғыда жасау ХХ ғасырдың 60-70 жылдарды
қамтиды. Бұл кезеңде программалауды құрылымдық тұрғыда жасау
программалық қамсыздандыруды жасаудың барлық қадамдарының
орындалуын қамтитын технологиялық тәсілдер жиынтығын қарастырады.
Құрылымдық тұрғыда қарау негізін күрделі жүйелерді жеке кішігірім
көмекші программалар түрінде жүзеге асыру мақсатында декомпозициялау
( бөліктерге бөлу) алынады. Декомпозицияның басқа принциптерінің (
объекті логикалық ) пайда болуымен бұл әдіс процудуралық декомопозияс
деген атауға ие. Құрылымдық программалау принциптерін қолдану процедуралық
программалау тілдерінің негізіне алынады. Мұндай тілдердің кеңінен танымал
болған түрлері ретінде мыналарды атауға болады. PLI 1, ALGOL-68, Pascal,
C.
Құрылымдық программалаудың даму нәтежесінде модульдік программалау
пайда болды. Ол технологияны Pascal, C ( С++), Ago, Modula тілдерін
ұстанады.
Компоненттік тұрғыда қарастыру және CASE технологиялары компоненттік
тұрғыдан қарастыру кезңнде программалық қамсыздандыру физикалық түрде бөлек
болатын дайын түрдегі компоненттерден құрастыру орындалады. Мұндай
жекеленген бөліктер бір бірімен екілік интерфейс көмегімен
байланыстырылады. Компоненттік тұрғыдағы технологиялар COM (component
ofgect Model-объектілердің компоненттік модулі) және COBBA ( Comman Ofgect
Reguest Brokec Architecture – объектілер сұраныстарын өңдеуші орындаушысы
бар жалпы архитехтура) Тратылған қосымшаларды жасау технологияларына
негізделеді.
Қазіргі заманғы программалық жүйелердің көпшілігі өте күрделі. Олардың
күрделілігінің көптеген себептері бар. Негізгісі - жүйелер шешетін
есептердің логикалық күрделілігі. Программалау жүйелер жасау жоғары.
Жоғарылататын қосымша факторлар ретінде мыналарды атауға болады:
- Программалық жүйелерге қойылатын талаптардың формальді
түрде сипаттау күрделілігі.
- Дискреттік жүйелердің іс - әрекетін сипаттаудың қажетті
құралдарының болмауы
- Ұжымдық түрде жұмыс істеу ( ұжымдар енетін мамандардың
көбеюі жұмысты ұйымдастыруды қиындатады)
- Программалық кодтардың қайталану деңгейін көбейту
қажеттілігі ( кодтардың түрлі жағдайларда қолданыла алуы
үшін олар әмбебап болып жасалуы тиіс)
Күрделі жүйелерді жасауды блоктық – шаруашылық тұрғыда қарастыруға
болады. Күрделі жүйелер бір- бірімен байланысқан өзара тәуелді ішкі жүйелер
жиынтығы түрінде қарстырылады. Қазіргі кезде күрделі жүйелер жай күрделі
түріндегі иерархияға негізделген.
Мұндай иерархиядағы кез келген жүйе неғұрлым қарапайымырақ басқа
жүйенің дамытылуының нәтежесінде пайда болады. Иерархияның осындай түрі
объектіге бейімделген программалаудың мұрагерлік деп аталатын механизмінде
қолданылады. Элементарлық деңгейде жүйе түрлі түрде бірктірілген ішкі
жүйелерден құралады. Иерархияның мұндай түрін бүтін бөлік деп атайды.
Программалық жүйелер көп жағдайда табиғат және техникалық жүйелер
әрекеттерінің бейнеленуі болғандықтан иерархиялық жүйелердің қасиеттерін
иемденеді. Иерархиялық жүйелердің осы қасиет негізінде оларды зерттеу
немесе жасаудың блоктық- иерархиялық тұрғысы қарастырылады. Бұл тұрғы
бойынша алдымен объектілердің бөліктерін жасау, содан кейін объектінің
өзін сол бөліктерден жинап құрастыру орындалады.
Күрделі объектіні салыстырмалы түрде тәуелсіз болатын бөліктерге бөлу
процесі Декомпозиция деп аталады. Декомпозиция кезінде жеке бөліктер
кезіндегі арасындағы байланыстар бөлік ішіндегі элементтер байланыстарынан
нашарлау болатынын ескереді. Сонымен қатар бөлікшелерден тұтас объект жинау
мүмкіндігі болуы үшін бөліктердің арасындағы байланыстардың барлығы
анықталуы тиіс. Өте күрделі объектілер кезінде декомпозиция процесі
бірнеше рет орындалады. Әрбір блок өз ретінде бірнеше блоктарға,ал олар
келесі блоктарға бөліну жасалуы жеңіл болатын блок түріне дейін
декомпозицияланып отырады. Бұл әдіс қадамдық детализация ( нақтылау ) деп
аталады.
Декомпозицияның нәтежесінде әдісте иерархия схемасы түрінде
көрсетіледі. Оның төменгі деңгейінде салыстырмалы түрде жай бөліктер, ал
жоғарғы деңгейде жасалатын объектінің өзі орналасады. Демек блоктық
иеррхиялық тұрғыда программалау негізіне декомпозиция және иерархиялық
түрде реттеу процестері алынады.Сонымен қатар мынадай маңызды принциптерде
қарастырады:
- қарама – қайшылықсыздығы – элементтердің бір-бірімен өз-ара
үйлесімдігін бақылау;
- бір-неше рет қайталануы –бірдей болатын бөліктерді блок
ретінде бөліп алып , бір-неше рет қолдану,соның нәтижесінде
жұмысты жеңілдету;
- локальді (жергілікті) түрде блоктандыру (оптимизация) –иерархия
деңгейі аумағында ондайландыру.
Модельдер тілдерінің есептер қойылымдарының қандай да бір иерархиялық
деңгейді сипаттау әдістерінің жиынтығы жобалау деңгейі деп аталады.
Жобалау процесі кезінде әрбір обьектіні жан-жақты қарастыру
қажет.Блоктық иерархиялық тұрғыда программалау күрделі жүйелерді жасауда
мүмкіндіктерді ұсынады:
- күрделі жүйенің әр бөлігінің және толық жүйенің жұмысқа
жарамдығын тексеруді жеңілдігі;
- жүйелердің моделизациялануын жетілдіру мүмкіндігі.
1.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 тілінде оларды мұрагер типтер деп
атайды). Жазық фигуралар класы төбелері бар (мысалы, үшбұрыш, төртбұрыш)
және төбелерсіз (мысалы, шеңбер, эллипс) болып екі ішкі класка бөлінеді
(олар иерархиялық мұрагер типтер).
С++ программмалау тілінің пайда болу тарихы 1972 жылдан бастау алды.
Жоғарғы және төменгі деңгейдегі тілдер кездесетiн бұл программаны
Деннис Дитчи және Брайн Керниген деген ғалымдар жасап шығaрған. Бұл тілді
кейінірек Американың Ұлттық стандарттау орталығы растады.(ANSI)
1980 жылы Бьярна Страуструптың қабілетіне байланысты ANSI – дің
өкілі – С++ тілі пайда болды. Онда басқа да тілдердің жақсы
жақтары көрініс тапты. С++ тілі С тіліне қарағанда программистке
дәстүрлі құрылымдық және объектілік бағытталған программаларды
жасауға мүмкіндік береді.
С++ тілін қолданып жасалған программалық қамсыздандыру
идентификаторлар, кілттік сөздер, функциялар, тұрақтылар,
препроцессорлар, құрылымдар, массивтер және т.б элементтерден тұрады.
Программалауды объектілік тұрғыда жүргізу ХХ ғасырдың 80-шы жылдарының
ортасынан бастап 90-шы жылдардың соңына дейінгі уақытты қамтиды. Объектіге
бейімделген программалау программаны объектілер жиынтығы түрінде көрсетуге
негізделген күрделі программалық қамсыздандыруды жасаудың технологиясы
ретінде анықталады. Мұнда әрбір объект белгілі бір тип, яғни класс данасы
болып табылады. Ал, кластар қасиеттердің мұрагерлікке байланысты
иерархиялықты құрайды. Мұндай жүйедегі программалық объектілердің өзара
әрекеті хабарлама жіберу көмегімен орындалады. Программаның объектілік
құрылымы ең алғаш күрделі жүйелерді иметациялық модульдеудің simula (ХХ
ғасыр 60-шы жылдар) қолданған болатын. Объектілік тұрғыда программалаудың
Delphi, C++ Builden Visual C++ құралдары кеңінен таралған.
1.2. С++ программалау тілі.
С++ тілі тасымалданатын тіл, яғни мұнда жазылған қолданбалы
программалар бір компьютерден екінші компьютерге оңай тасымалданады. С++
тілі оңай компиляцияланатын тіл. Ол жүйелік программада қолданылады. С++
тілі кез – келген есепті шығару үшін қолайлы.
С++ тілінің негізгі элементтері алфавит, тұрақтылар, идентификаторлар,
қызметші сөздер, түсініктемелер жатады. С++ тілінің компиляторы
программаның қатарларын оқып, лексема деп аталатын символдар тобына бөледі.
Лексема – бұл С++ компиляторында өзінше мағынасы бар программа тексінің
бірлігі. Операция таңбалары, тұрақтылар, идентификаторлар, қызметші сөздер
лексемаға мысал бола алады.
С ++ тілінің алфавиті:
1. Латынның үлкен және кіші әріптері
2. Араб цифры
3. Арнайы символ
4. Операция
С++ тілінің әрпі және цифры:
- үлкен латын әрпі:
A B C D E F G H K L M N O P Q R S T U V W X Y Z
- кіші латын әрпі:
a b c d e f g h k l j I m n o p q r s t u v w x y z
- араб цифры
0 1 2 3 4 5 6 7 8 9;
Символдық тұрақты – () дәйекше белгісіне алынған әріп, цифр, арнайы
символ болуы мүмкін.
Символдық қатал – () тырнақша белгісіне алынған символдар тізбегі.
Турбо С++ – де жұмыс істегенде программаны жазуға, редакциялауға,
компиляциялауға, қиыстыруға және түзетуге болады. Осы барлық комплкстердің
мүмкіндіктері Интегралданған Ортаны Өңдеуге негізделген(ИОӨ).
Сонымен қатар Турбо С++ ортасын өңдеу программасы келесі қосымша
мүмкіндіктерді береді.Олар программа жазу процесін өте көп жеңілдетеді:
▪ монитор экранына бірнеше терезе шығады және экранға көшуге болады;
▪ тыщқан жәрдемінің болуы;
▪ көшіру және орналастыру командаларының болуы ( HELP терезесінен
EDIT терезесіне көшіруге болады.
▪ басқа программаны және кері қайтарманы шығару мүмкіндігі
▪ ИОӨ үш визуальды компоненттен тұрады: меню қатары – экранның жоғары
шетінде,терезелі аймақ – экранның ортасында және қалып-күй қатары –
экранның төменгі шетінде орналасқан. Нәтежесінде менюден бірнеше
элемент таңдағанда экранға диолог блогы шығады.
Менюдің барлық командаларын пайдаланудың негізгі құралы меню қатары
болып табылады. Турбо С++ ортасында көрініп және орындалған жұмыстың көп
бөлігі терезе болады. Терезе – экран аймағы, басқа тереземен байланысын
бағыттауға, бүұкіл экран ашуға, өзгертуге , көшуге болатын өлшемді айтамыз.
1.2.1 Берілгендер типтері
1-кесте
рс Типі өлшемі Аралығы
1 Unsigned char 8 [ 0;255]
2 Char 8 [ - 128;127]
3 Enum 16 [ - 32768;32767]
4 Unsigned int 16 [ 0;65535]
5 Short int 16 [ - 32768; 32767]
6 Unsigned short 16 [0;65535]
7 Int 16 [ - 32768; 32767]
8 Unsigned long 32 [0;4294967295]
9 Long 32 [-2147483648;2147483647]
10 Float 32 [3.4E-38...3.4E+38]
11 Double 64 [1.7E+308...1.7E+308]
12 Long double 80 [3.4E+4932,...1.1E+4932]
Жай жақшалардың қолданылуы:
1) шартты оператордың шартты жақшаға аламыз;
2) функцияда формальды параметрлер тізімі жақшаға алынады;
3) функция көрсеткішін анықтау қолданылады;
4) өрнектерді топтауға қолданылады;
5) циклде қолданылады;
6) макроанықтауыштарда қолданылады;
7) типтерді түрлендіруде қолданылады.
Идентификаторлар – бұл программада қолданылатын айнымалы, функция
белгі атаулары.Қызметші сөздер – бұл С++ тілінің компиляторында арнайы
қызмет атқаратын идентификаторлар.Қызметші сөздер берілген типін, жады
класын, квалификатор типін, модификатор, псевдо айнымалыларды және
операторларды анықтайды.
Кез келген атау немесе кез келген өрнекте өзінің типі болады.
Мысалы:
Int inch;
Бұл inch Int деген типті екенін анықтайды.
Тип атаудың дұрыс қолданылуын анықтайды немесе өрнектің.Толықтыруға
мынадай операторлар анықталған: +, - , * және .Stream.h файлын қосқаннан
кейін, типтің обьекті Int екінші операнды болуы да мүмкін. Обьектінің типі
операторлардың оған қалай қолданылуын анықтаумен қатар, оның мағынасында
қарайды.
Мысалы, оператор
Cout inch “ n = “ inch *2.54 “ int\n”;
Негізгі типтер мынадай:
char double float int long short
Бірінші төрт тпите бүтіндерді көрсету үшін қолданылады, ал екіншісі –
нүктесі бар сандар үшін қолданылады. Char типінде өлшемі болады, ал int –
те размері болады.
С++ - де өлшемдері бірлікпен өлшенеді Char типінде, сондықтан Char
бірлік өлшемді анықтайды.
Мысалы:
1= size of (char) = size of (shar) = size of (int) = size of
(long) = size of (f loat) = size of (double)
Const float pi = 3.14;
Const char plus = “+”;
Кез келген мына типтегі комбинацияға арифметикалық оператор
қолданылады:
+( плюс, унарлық және бинарлық)
- ( минус, унарлық және бинарлық)
* (көбейту)
(бөлу)
Сонымен қатар салыстыру операциясы :
= (тең)
= (тең емес)
(кіші)
(үлкен)
= (кіші не тең)
= (үлкен не тең)
Мына операциялар жаңа типтерді құракды:
* сілтеуіш
* константың сілтеуіші
& ссылка
[ ] вектор*2
( ) функция қайтармалы
Мысалы:
Char * p символға сілтеуіш
Char * const g символға константы сілтеуіш
Char v [10] 10 символ арасындағы вектор.
1.2.2 Қызметші сөздер
Қызметші сөздер –бұл С++ тілінің компиляторында арнайы қызмет
атқаратын идентификаторлар.Қызметші сөздер берілген типін,жады
класын,квалификаторлар типін,модификатор,псевдо айнымалыларды және
операторларды анықтайды.
Спецификатор атауына жататындар:
Негізгі берілгендер типтері:
1)char –символды
2)double- жылжымалы нүктедегі екілік дәлдіктегі нақты сан;
3)enum-саналатын тип;
4)float-жылжымалы нүктелі нақты сан;
5)int-бүтін;
6)long-ұзын бүтін;
7)short-қысқа бүтін;
8)struct-құрылымдық;
9)signed-таңбалы бүтін;
10)union-біріктірілген;
11)unsigned-таңбасыз бүтін;
12)void- мәні жоқ;
13)type def-белгіленуінің синонимі;
Квалификатор типі
Жады класы
1)auto-автоматты
2)extern-сыртқы
3)register-регистрлік
4)static-статистикалық.
Ескерту!
Барлық идентификаторлар латынның әріптерінен немесе сызықшадан
басталады.Ал,қалған әріптер бөлігі,цифрлардан тұруы мүмкін. Басқа символдар
рұхсат етілмейді.Алғашқы 32символы ғана мәнді болады.Мысалы: indx, Indx,
INDX үшеуі бірдей емес.
II. Мәліметтердің динамикалық структурасы
Мәліметтердің динамикалық структурасы - өлшемдері программаның
орындалу барысында өзгеретін (өсетін немесе кемитін) мәліметтер
структурасы. Байланысқан тізім - кез келген орнында қоюды және жоюды іске
асыруға болатын мәліметтер элементтерінің тізілген қатар жиынтығы.
Стектер қою жєне жоюдың орындалуына тек қана стектің бір ұшынан - үстінен
рұқсат береді. Кезектер деп күту сызығын айтуға болады. Қою кезектің
соңында, ал жою-кезектің басында іске асады. Екілік бұтағы тез іздеуді және
мәліметтерді сұрыптауды жеңілдетеді, мәліметтер элементтерінің қайталануын
тиімді жояды, каталогтардың файлдық структурасын және өрнектерді машиналық
тілге компиляциялауды ұсынады.
2.1. Мәліметтер құрылымы, динамикалық құрылым.
Мәліметтер құрылымы (Структура данных; data structure) — 1)
мәліметтерді ұйымдастыру схемасы; мысалы жиым немесе жазба құрылымын сатылы
түрде өрнектеу тәсілі; 2) қабылданған тәсілдердің бірі бойынша
біріктірілген және реттелген мәліметтер элементтерінің жиыны; мәліметтердің
арасындағы физикалық немесе логикалық қатынас.
Мәліметтер - ақпараттың құрамдас бөлігі. Тіркелу әдісіне сәйкес
мәліметтер әртүрлі тасуыштарда сақталады және тасымалданады. Ең кең тараған
мәліметтерді тасуыш кағаз болып табылады. Заттың оптикалық қасиеттерінің
өзгерісі лазерлік сәулелердің көмегімен жазылатын тасуыштар СD-ROM-да
қолданылады. Магниттік касиеттердің өзгерісін колданатын тасуыштар ретінде
магниттік таспалар мен дискілерді алуға болады.
Ақпараттық процесс барысында мәліметтер әдістердің көмегімен бір түрден
екінші түрге өзгереді. Мәліметтерді өңдеу көптеген амалдардын жиынтығынан
тұрады:
• мәліметтерді қалыптастыру;
• мәліметтерді сүзгілеу;
• мәліметтерді сұрыптау;
• мәліметтерді топтастыру;
• мәліметтерді архивтеу;
• мәліметтерді қорғау;
• мәліметтерді тасымалдау;
• мәліметтерді түрлендіру.
Жоғарыдағы мәліметтерге қолданылатын амалдар тізімі толық емес.
Бүкіл әлемде миллиондаған адамдар мәліметтерді кұру, өңдеу, түрлендіру және
тасымалдаумен айналысады, әрбір жұмыс үстелінде әлеуметтік, экономикалық,
ғылыми және мәдени процестерді басқару үшін қажет арнайы амалдар орындалып
отырады. Барлық мүмкін болатын амалдардың толық тізімін кұрастыру мүмкін
емес және оның қажеті де жоқ. Бұдан ақпаратпен жұмыс істеуге көп уақыт
кетеді, сондыктан оны автоматтандыру қажет деген корытындыға келеміз.
Динамикалық құрылымдар анықтамасы бойынша жадыда құрылым
элментттерінің физикалық шектестігінің болмауымен, оны өңдеу процесі
кезінде құрылым өлшемінің тұрақсыздығымен сипатталады.
Динамикалық құрылымның элементтері жадының алдын-ала айта
алмайтын адрсетер бойынша орналасатындықтан, мұндай құрылымның элементінің
адресі бастапқы немесе алдыңғы элементтен алынбайды. Динамикалық құрылымның
элементтерінің арасында байланыс орнату үшін көрсеткіштер қолданылады, олар
арқылы элементтер арасында анық байланыстар орнатылады. Деректерді жадыда
бұлай көрсету байланысты деп аталады. Динамикалық құрылымның элементі екі
өрістен тұрады:
Ақпараттық өріс немесе деректер өрісі, мұнда құрылым құрылған деректер
сақталады; жалпы жағдайда ақпараттық өрістің өзі жинақталған құрылым –
вектор, массив, не басқа динамикалық құрылым болып табылады;
Байланысу өрісі, берілген элементті құрылымның басқа элементтерімен
байланыстыратын бір немесе бірнеше көрсеткіштерден тұрады.
Деректерді байланысты көрсетудің артықшылығы – құрылымның едәуір
өзгеруін қамтамасыз ету мүмкіндігі;
Құрылымның өлшемі машиналық жадының қол жетерлік көлемімен ғана
шектеледі;
Құрылым элементтерінің логикалық тізбегін өзгерту кезінде жадыда
деректерді орналастыру емес, көрсеткіштерді түзету ғана талап етіледі;
Құрылымның иілгіштігі.
Сонымен бірге, байланысты көрсетудің кемшіліктері де жоқ емес:
Байланыс өрістеріне қосымша жады шығындалады;
Байланысқан құрылым элементтеріне қатынас уақыт бойынша тиімсіздеу
болуы мүмкін.
Соңғы кемшілігі едәуір қиындықтар туғызатындықтан, деректерді
байланысты көрсетуге соған бола шектеу қойылады. Егер деректерді аралас
көрсетуде кез келген элементтің адресін есептеу үшін бізге барлық жағдайда
элементтің нөмірі және құрылымның дескрипторындағы ақпарат жеткілікті
болса, онда байланысты көрсету үшін элементтердің адресі бастапқы
деректерден есептелінбейді. Байланысты құрылымның дескрипторы құрылымға
кіруге мүмкіндік беретін бір немесе бірнеше көрсеткіштен тұрады, әрі қарай
қажетті элементті іздеу элементтен элементке тізбек бойынша орындалады.
Сондықтан байланысты көрсету деректердің логикалық құрылымы элемент нөмірі
бойынша қатынас жасайтын вектор немесе массив түріндегі есептерде ешқашан
қолданылмайды, бірақ логикалық құрылымы басқа бастапқы ақпараттарды
(кестені, тізімді, ағашты және басқа) қажет ететін есептерде жиі
қолданылады.
СиС++-дегі массивтердің қатарында құрылымдар мен бірлестіктердің
берілген типіндегі агрегаттары да болады.Құрылым типі- біртұтас
берілгендерге арналған әртүрлі типтегі берілгендердің тізбектелген
жиынтығын білдіреді.Құрылымдық типтің бейнеленуі схема бойынша құрылады:
Struct идентификатор
{мүше диклараторлары} диклараторлар-инициализатор
Мұндай жарияламалар екі функция атқарады,біріншіден құрылымдық
типті,екіншіден осы типтегі ауысуларды жариялайды.
Struct негізгі сөзінен кейін идентификатор құрылымдық типтің
аумағындағы болып табылады.
Типтің атауының болмауы да мүмкін,мұндай жағдайда типтің бәрі атаусыз
болып программаның басқа бөліктерін берілген тип бойынша жариялау мүмкін
емес болады.Декларатор-инициализатор бейнеленетін ти туралы мәліметтер тип
сілтеуіштері мен берілгендер типі көрсетілген нақты құрылым типтерін
жариялайды.Декларатор-инициализатор қатыспай қалған жағдайда,тек құрылым
типі ғана белгіленеді.
Struct Point struct құрылым атауы
{int x,y;}құрылым мүшелерінің диклораторлары
Point 1,*ptr_to_point,arpoint[3] құрылымдық типтің
берілгенднрі
Құрылым мүшелері берілген типке сәйкес бейнеленеді және скалярды
мәліметтер ,сілтеуіштер ,массивтер немесе басқа құрылымдық типтегі
берілгендер бола алады. Мысалы: қабырғасы кордината осьіне паралель жатқан
тік бұрыштың құрылымдық типін құру үшін,бірнеше нұсқаларды
болады.
Struct Rect 1
{Point p1; сол жақ жоғары бұрыштың кординатасы
Point p2; оң жақ астыңғы бұрыштың кординатасы .
}
Struct Rect 2
{Point p[2];
}
Struct Rect 3
{Point p; сол жақ жоғары бұрыш
int width; ені .
int high; Тікбұрыштың биіктігі.
}
Біз бұған дейін берілген өлшемді құрылымдардың мағұлматтaрын ,
бірөлшемді , екі өлшемді индексті массивті және struct құрылымын
оқығанбыз . Бұ тарауға динамикалық құрылымның мағұлматтары олардың өсуі
мен қысқаруы бағдарламаарлық орындалу процессі енгізілген . Қатынас
тізімдері мағұлматтар элементінің жиінтығы болып табылады. Компиляторлар
мен операциялар жүйелерінде стектер айтулы роль атқарады . Енгізу және
шығару операциялары стектің ... жалғасы
Кіріспе
І.Программалау технологиясы
1.С++ программмалау тілінің пайда болу тарихы.
1.2.С++ программалау тілі.Алфавит
1.2.1.Берілгендер типі
1.2.2.Қызметші сөздер
ІІ. Мәліметтердің динамикалық құрылымы
2.1. Мәліметтер құрылымы, динамикалық құрылым
2.2. Өздеріне сілтемелейтін структуралар.
2.3. Жадыны динамикалық үлестіру.
2.4. Байланысқан тізімдер. Тізімдермен жұмыс.
2.5. Стектер. Бұтақтар.
ІІІ.Курстық тапсырмалар
3.1.Логикалық тапсырма
3.2.Бір өлшемді массив бойынша тапсырма
3.3.Екі өлшемді массив бойынша тапсырма
3.4.Сөз тіркесін өңдеу бойынша тапсырма
Қорытынды
Пайдаланылған әдебиеттер
Кіріспе
Бұл курстық жұмыс Бағдарламалау технологиясы пәні бойынша
орындалған және С++ тілінде динамикалық тізімдерді қолдануға негізделген.
Бағдарламаны орындау үшін осы тілде динамикалық құрылымдар қолданылады.
Олар С++ тілінде деректер қорын құруға мүмкіндік береді.
Курстық жұмысымның тақырыбы Мәліметтердің динамикалық структурасы.
Жұмыстың жалпы мақсаты студенттерді С++ тілінде бағдарламалар құру әдісіне
үйрету және осы тілді тереңдей оқып меңгеру. Жұмыс үш бөлімнен және
қорытынды мен қосымшалардан тұрады. Бірінші бөлімінде С++ тілі туралы.
Екінші бөлімде динамикалық құрылым, оның ішінде тізімдерге түсініктеме
берілген, яғни оның мүмкіндіктері көрсетілген Мұнда бағдарламаның алгоритмі
көрсетілген. Үшінші бөлімде курстық тапсырмалар көрсетілген.
І. Программалау технологиясы
Программалау технологиясы деп – программалық қамсыздандыруды жасау
процесінде қолданылатын әдістер мен құралдарды атайды. Кез келген
технология сияқты программалау технологиясы мынадай техникалық
инструкциялардың жиынын құрайды:
1. Технологиялық операциялардың орындалу тәртібін көрсету
2. Қандай да бір операцияның орындалуы үшін қажетті шарттардың тізімін
жасау
3. Әрбір операцияның өзін сипаттау
Мұнда операция үшін бастапқы мәліметтер, нәтежелер, нұсқаулар,
нормативтер, стандарттар бағалау критерилерімен әдістері және тағы басқалар
анықталады.
Жалпы түрде технологиялардың екі түрін бөліп қарастырады.
1. Нақты жұмыс кезеңдер немесе осы кезеңдердің есептерін шешуде
қолданылатын технологиялар. Олардың негізін нақты есепті шешу
мүмкіндігін беретін шектеулі түрде қолданылатын әдіс құрайды.
2. Бірнеше кезеңді немесе жасау процесін толығымен қамтитын
технологиялар. Бұлардың негізі әдетте методология, яғни түрлі
жұмыс кезеңдерін қолданатын әдістер жиынтығын анықтайтын
негізгі әдісті құрайды.
Программалаудың ғылым ретіндегі дамудың негізгі кезеңдерін атап
өтейік.
1. Стихиялық программалау. Алғашқы ЭЕМ-дердің пайда болған кезінен
бастап ХХ ғасырдың 60-шы жылдарының ортасына дейінгі уақытты
қамтитын бұл кезең программалар құрылымы өте қарапайым болған.
Fortran Algol сияқты жоғары деңгейлі программалау тілдерінің
жасалуы есептеулерді, программалауды айтарлықтай жеңілдетті. Бұл
кезеңнің типтік программасы негізгі программадан глобальды
берілгендер не олардың бөліктерін өңдейтін көмекші программалардан
құралады.
2. Программалауды құрылымдық тұрғыда жасау ХХ ғасырдың 60-70 жылдарды
қамтиды. Бұл кезеңде программалауды құрылымдық тұрғыда жасау
программалық қамсыздандыруды жасаудың барлық қадамдарының
орындалуын қамтитын технологиялық тәсілдер жиынтығын қарастырады.
Құрылымдық тұрғыда қарау негізін күрделі жүйелерді жеке кішігірім
көмекші программалар түрінде жүзеге асыру мақсатында декомпозициялау
( бөліктерге бөлу) алынады. Декомпозицияның басқа принциптерінің (
объекті логикалық ) пайда болуымен бұл әдіс процудуралық декомопозияс
деген атауға ие. Құрылымдық программалау принциптерін қолдану процедуралық
программалау тілдерінің негізіне алынады. Мұндай тілдердің кеңінен танымал
болған түрлері ретінде мыналарды атауға болады. PLI 1, ALGOL-68, Pascal,
C.
Құрылымдық программалаудың даму нәтежесінде модульдік программалау
пайда болды. Ол технологияны Pascal, C ( С++), Ago, Modula тілдерін
ұстанады.
Компоненттік тұрғыда қарастыру және CASE технологиялары компоненттік
тұрғыдан қарастыру кезңнде программалық қамсыздандыру физикалық түрде бөлек
болатын дайын түрдегі компоненттерден құрастыру орындалады. Мұндай
жекеленген бөліктер бір бірімен екілік интерфейс көмегімен
байланыстырылады. Компоненттік тұрғыдағы технологиялар COM (component
ofgect Model-объектілердің компоненттік модулі) және COBBA ( Comman Ofgect
Reguest Brokec Architecture – объектілер сұраныстарын өңдеуші орындаушысы
бар жалпы архитехтура) Тратылған қосымшаларды жасау технологияларына
негізделеді.
Қазіргі заманғы программалық жүйелердің көпшілігі өте күрделі. Олардың
күрделілігінің көптеген себептері бар. Негізгісі - жүйелер шешетін
есептердің логикалық күрделілігі. Программалау жүйелер жасау жоғары.
Жоғарылататын қосымша факторлар ретінде мыналарды атауға болады:
- Программалық жүйелерге қойылатын талаптардың формальді
түрде сипаттау күрделілігі.
- Дискреттік жүйелердің іс - әрекетін сипаттаудың қажетті
құралдарының болмауы
- Ұжымдық түрде жұмыс істеу ( ұжымдар енетін мамандардың
көбеюі жұмысты ұйымдастыруды қиындатады)
- Программалық кодтардың қайталану деңгейін көбейту
қажеттілігі ( кодтардың түрлі жағдайларда қолданыла алуы
үшін олар әмбебап болып жасалуы тиіс)
Күрделі жүйелерді жасауды блоктық – шаруашылық тұрғыда қарастыруға
болады. Күрделі жүйелер бір- бірімен байланысқан өзара тәуелді ішкі жүйелер
жиынтығы түрінде қарстырылады. Қазіргі кезде күрделі жүйелер жай күрделі
түріндегі иерархияға негізделген.
Мұндай иерархиядағы кез келген жүйе неғұрлым қарапайымырақ басқа
жүйенің дамытылуының нәтежесінде пайда болады. Иерархияның осындай түрі
объектіге бейімделген программалаудың мұрагерлік деп аталатын механизмінде
қолданылады. Элементарлық деңгейде жүйе түрлі түрде бірктірілген ішкі
жүйелерден құралады. Иерархияның мұндай түрін бүтін бөлік деп атайды.
Программалық жүйелер көп жағдайда табиғат және техникалық жүйелер
әрекеттерінің бейнеленуі болғандықтан иерархиялық жүйелердің қасиеттерін
иемденеді. Иерархиялық жүйелердің осы қасиет негізінде оларды зерттеу
немесе жасаудың блоктық- иерархиялық тұрғысы қарастырылады. Бұл тұрғы
бойынша алдымен объектілердің бөліктерін жасау, содан кейін объектінің
өзін сол бөліктерден жинап құрастыру орындалады.
Күрделі объектіні салыстырмалы түрде тәуелсіз болатын бөліктерге бөлу
процесі Декомпозиция деп аталады. Декомпозиция кезінде жеке бөліктер
кезіндегі арасындағы байланыстар бөлік ішіндегі элементтер байланыстарынан
нашарлау болатынын ескереді. Сонымен қатар бөлікшелерден тұтас объект жинау
мүмкіндігі болуы үшін бөліктердің арасындағы байланыстардың барлығы
анықталуы тиіс. Өте күрделі объектілер кезінде декомпозиция процесі
бірнеше рет орындалады. Әрбір блок өз ретінде бірнеше блоктарға,ал олар
келесі блоктарға бөліну жасалуы жеңіл болатын блок түріне дейін
декомпозицияланып отырады. Бұл әдіс қадамдық детализация ( нақтылау ) деп
аталады.
Декомпозицияның нәтежесінде әдісте иерархия схемасы түрінде
көрсетіледі. Оның төменгі деңгейінде салыстырмалы түрде жай бөліктер, ал
жоғарғы деңгейде жасалатын объектінің өзі орналасады. Демек блоктық
иеррхиялық тұрғыда программалау негізіне декомпозиция және иерархиялық
түрде реттеу процестері алынады.Сонымен қатар мынадай маңызды принциптерде
қарастырады:
- қарама – қайшылықсыздығы – элементтердің бір-бірімен өз-ара
үйлесімдігін бақылау;
- бір-неше рет қайталануы –бірдей болатын бөліктерді блок
ретінде бөліп алып , бір-неше рет қолдану,соның нәтижесінде
жұмысты жеңілдету;
- локальді (жергілікті) түрде блоктандыру (оптимизация) –иерархия
деңгейі аумағында ондайландыру.
Модельдер тілдерінің есептер қойылымдарының қандай да бір иерархиялық
деңгейді сипаттау әдістерінің жиынтығы жобалау деңгейі деп аталады.
Жобалау процесі кезінде әрбір обьектіні жан-жақты қарастыру
қажет.Блоктық иерархиялық тұрғыда программалау күрделі жүйелерді жасауда
мүмкіндіктерді ұсынады:
- күрделі жүйенің әр бөлігінің және толық жүйенің жұмысқа
жарамдығын тексеруді жеңілдігі;
- жүйелердің моделизациялануын жетілдіру мүмкіндігі.
1.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 тілінде оларды мұрагер типтер деп
атайды). Жазық фигуралар класы төбелері бар (мысалы, үшбұрыш, төртбұрыш)
және төбелерсіз (мысалы, шеңбер, эллипс) болып екі ішкі класка бөлінеді
(олар иерархиялық мұрагер типтер).
С++ программмалау тілінің пайда болу тарихы 1972 жылдан бастау алды.
Жоғарғы және төменгі деңгейдегі тілдер кездесетiн бұл программаны
Деннис Дитчи және Брайн Керниген деген ғалымдар жасап шығaрған. Бұл тілді
кейінірек Американың Ұлттық стандарттау орталығы растады.(ANSI)
1980 жылы Бьярна Страуструптың қабілетіне байланысты ANSI – дің
өкілі – С++ тілі пайда болды. Онда басқа да тілдердің жақсы
жақтары көрініс тапты. С++ тілі С тіліне қарағанда программистке
дәстүрлі құрылымдық және объектілік бағытталған программаларды
жасауға мүмкіндік береді.
С++ тілін қолданып жасалған программалық қамсыздандыру
идентификаторлар, кілттік сөздер, функциялар, тұрақтылар,
препроцессорлар, құрылымдар, массивтер және т.б элементтерден тұрады.
Программалауды объектілік тұрғыда жүргізу ХХ ғасырдың 80-шы жылдарының
ортасынан бастап 90-шы жылдардың соңына дейінгі уақытты қамтиды. Объектіге
бейімделген программалау программаны объектілер жиынтығы түрінде көрсетуге
негізделген күрделі программалық қамсыздандыруды жасаудың технологиясы
ретінде анықталады. Мұнда әрбір объект белгілі бір тип, яғни класс данасы
болып табылады. Ал, кластар қасиеттердің мұрагерлікке байланысты
иерархиялықты құрайды. Мұндай жүйедегі программалық объектілердің өзара
әрекеті хабарлама жіберу көмегімен орындалады. Программаның объектілік
құрылымы ең алғаш күрделі жүйелерді иметациялық модульдеудің simula (ХХ
ғасыр 60-шы жылдар) қолданған болатын. Объектілік тұрғыда программалаудың
Delphi, C++ Builden Visual C++ құралдары кеңінен таралған.
1.2. С++ программалау тілі.
С++ тілі тасымалданатын тіл, яғни мұнда жазылған қолданбалы
программалар бір компьютерден екінші компьютерге оңай тасымалданады. С++
тілі оңай компиляцияланатын тіл. Ол жүйелік программада қолданылады. С++
тілі кез – келген есепті шығару үшін қолайлы.
С++ тілінің негізгі элементтері алфавит, тұрақтылар, идентификаторлар,
қызметші сөздер, түсініктемелер жатады. С++ тілінің компиляторы
программаның қатарларын оқып, лексема деп аталатын символдар тобына бөледі.
Лексема – бұл С++ компиляторында өзінше мағынасы бар программа тексінің
бірлігі. Операция таңбалары, тұрақтылар, идентификаторлар, қызметші сөздер
лексемаға мысал бола алады.
С ++ тілінің алфавиті:
1. Латынның үлкен және кіші әріптері
2. Араб цифры
3. Арнайы символ
4. Операция
С++ тілінің әрпі және цифры:
- үлкен латын әрпі:
A B C D E F G H K L M N O P Q R S T U V W X Y Z
- кіші латын әрпі:
a b c d e f g h k l j I m n o p q r s t u v w x y z
- араб цифры
0 1 2 3 4 5 6 7 8 9;
Символдық тұрақты – () дәйекше белгісіне алынған әріп, цифр, арнайы
символ болуы мүмкін.
Символдық қатал – () тырнақша белгісіне алынған символдар тізбегі.
Турбо С++ – де жұмыс істегенде программаны жазуға, редакциялауға,
компиляциялауға, қиыстыруға және түзетуге болады. Осы барлық комплкстердің
мүмкіндіктері Интегралданған Ортаны Өңдеуге негізделген(ИОӨ).
Сонымен қатар Турбо С++ ортасын өңдеу программасы келесі қосымша
мүмкіндіктерді береді.Олар программа жазу процесін өте көп жеңілдетеді:
▪ монитор экранына бірнеше терезе шығады және экранға көшуге болады;
▪ тыщқан жәрдемінің болуы;
▪ көшіру және орналастыру командаларының болуы ( HELP терезесінен
EDIT терезесіне көшіруге болады.
▪ басқа программаны және кері қайтарманы шығару мүмкіндігі
▪ ИОӨ үш визуальды компоненттен тұрады: меню қатары – экранның жоғары
шетінде,терезелі аймақ – экранның ортасында және қалып-күй қатары –
экранның төменгі шетінде орналасқан. Нәтежесінде менюден бірнеше
элемент таңдағанда экранға диолог блогы шығады.
Менюдің барлық командаларын пайдаланудың негізгі құралы меню қатары
болып табылады. Турбо С++ ортасында көрініп және орындалған жұмыстың көп
бөлігі терезе болады. Терезе – экран аймағы, басқа тереземен байланысын
бағыттауға, бүұкіл экран ашуға, өзгертуге , көшуге болатын өлшемді айтамыз.
1.2.1 Берілгендер типтері
1-кесте
рс Типі өлшемі Аралығы
1 Unsigned char 8 [ 0;255]
2 Char 8 [ - 128;127]
3 Enum 16 [ - 32768;32767]
4 Unsigned int 16 [ 0;65535]
5 Short int 16 [ - 32768; 32767]
6 Unsigned short 16 [0;65535]
7 Int 16 [ - 32768; 32767]
8 Unsigned long 32 [0;4294967295]
9 Long 32 [-2147483648;2147483647]
10 Float 32 [3.4E-38...3.4E+38]
11 Double 64 [1.7E+308...1.7E+308]
12 Long double 80 [3.4E+4932,...1.1E+4932]
Жай жақшалардың қолданылуы:
1) шартты оператордың шартты жақшаға аламыз;
2) функцияда формальды параметрлер тізімі жақшаға алынады;
3) функция көрсеткішін анықтау қолданылады;
4) өрнектерді топтауға қолданылады;
5) циклде қолданылады;
6) макроанықтауыштарда қолданылады;
7) типтерді түрлендіруде қолданылады.
Идентификаторлар – бұл программада қолданылатын айнымалы, функция
белгі атаулары.Қызметші сөздер – бұл С++ тілінің компиляторында арнайы
қызмет атқаратын идентификаторлар.Қызметші сөздер берілген типін, жады
класын, квалификатор типін, модификатор, псевдо айнымалыларды және
операторларды анықтайды.
Кез келген атау немесе кез келген өрнекте өзінің типі болады.
Мысалы:
Int inch;
Бұл inch Int деген типті екенін анықтайды.
Тип атаудың дұрыс қолданылуын анықтайды немесе өрнектің.Толықтыруға
мынадай операторлар анықталған: +, - , * және .Stream.h файлын қосқаннан
кейін, типтің обьекті Int екінші операнды болуы да мүмкін. Обьектінің типі
операторлардың оған қалай қолданылуын анықтаумен қатар, оның мағынасында
қарайды.
Мысалы, оператор
Cout inch “ n = “ inch *2.54 “ int\n”;
Негізгі типтер мынадай:
char double float int long short
Бірінші төрт тпите бүтіндерді көрсету үшін қолданылады, ал екіншісі –
нүктесі бар сандар үшін қолданылады. Char типінде өлшемі болады, ал int –
те размері болады.
С++ - де өлшемдері бірлікпен өлшенеді Char типінде, сондықтан Char
бірлік өлшемді анықтайды.
Мысалы:
1= size of (char) = size of (shar) = size of (int) = size of
(long) = size of (f loat) = size of (double)
Const float pi = 3.14;
Const char plus = “+”;
Кез келген мына типтегі комбинацияға арифметикалық оператор
қолданылады:
+( плюс, унарлық және бинарлық)
- ( минус, унарлық және бинарлық)
* (көбейту)
(бөлу)
Сонымен қатар салыстыру операциясы :
= (тең)
= (тең емес)
(кіші)
(үлкен)
= (кіші не тең)
= (үлкен не тең)
Мына операциялар жаңа типтерді құракды:
* сілтеуіш
* константың сілтеуіші
& ссылка
[ ] вектор*2
( ) функция қайтармалы
Мысалы:
Char * p символға сілтеуіш
Char * const g символға константы сілтеуіш
Char v [10] 10 символ арасындағы вектор.
1.2.2 Қызметші сөздер
Қызметші сөздер –бұл С++ тілінің компиляторында арнайы қызмет
атқаратын идентификаторлар.Қызметші сөздер берілген типін,жады
класын,квалификаторлар типін,модификатор,псевдо айнымалыларды және
операторларды анықтайды.
Спецификатор атауына жататындар:
Негізгі берілгендер типтері:
1)char –символды
2)double- жылжымалы нүктедегі екілік дәлдіктегі нақты сан;
3)enum-саналатын тип;
4)float-жылжымалы нүктелі нақты сан;
5)int-бүтін;
6)long-ұзын бүтін;
7)short-қысқа бүтін;
8)struct-құрылымдық;
9)signed-таңбалы бүтін;
10)union-біріктірілген;
11)unsigned-таңбасыз бүтін;
12)void- мәні жоқ;
13)type def-белгіленуінің синонимі;
Квалификатор типі
Жады класы
1)auto-автоматты
2)extern-сыртқы
3)register-регистрлік
4)static-статистикалық.
Ескерту!
Барлық идентификаторлар латынның әріптерінен немесе сызықшадан
басталады.Ал,қалған әріптер бөлігі,цифрлардан тұруы мүмкін. Басқа символдар
рұхсат етілмейді.Алғашқы 32символы ғана мәнді болады.Мысалы: indx, Indx,
INDX үшеуі бірдей емес.
II. Мәліметтердің динамикалық структурасы
Мәліметтердің динамикалық структурасы - өлшемдері программаның
орындалу барысында өзгеретін (өсетін немесе кемитін) мәліметтер
структурасы. Байланысқан тізім - кез келген орнында қоюды және жоюды іске
асыруға болатын мәліметтер элементтерінің тізілген қатар жиынтығы.
Стектер қою жєне жоюдың орындалуына тек қана стектің бір ұшынан - үстінен
рұқсат береді. Кезектер деп күту сызығын айтуға болады. Қою кезектің
соңында, ал жою-кезектің басында іске асады. Екілік бұтағы тез іздеуді және
мәліметтерді сұрыптауды жеңілдетеді, мәліметтер элементтерінің қайталануын
тиімді жояды, каталогтардың файлдық структурасын және өрнектерді машиналық
тілге компиляциялауды ұсынады.
2.1. Мәліметтер құрылымы, динамикалық құрылым.
Мәліметтер құрылымы (Структура данных; data structure) — 1)
мәліметтерді ұйымдастыру схемасы; мысалы жиым немесе жазба құрылымын сатылы
түрде өрнектеу тәсілі; 2) қабылданған тәсілдердің бірі бойынша
біріктірілген және реттелген мәліметтер элементтерінің жиыны; мәліметтердің
арасындағы физикалық немесе логикалық қатынас.
Мәліметтер - ақпараттың құрамдас бөлігі. Тіркелу әдісіне сәйкес
мәліметтер әртүрлі тасуыштарда сақталады және тасымалданады. Ең кең тараған
мәліметтерді тасуыш кағаз болып табылады. Заттың оптикалық қасиеттерінің
өзгерісі лазерлік сәулелердің көмегімен жазылатын тасуыштар СD-ROM-да
қолданылады. Магниттік касиеттердің өзгерісін колданатын тасуыштар ретінде
магниттік таспалар мен дискілерді алуға болады.
Ақпараттық процесс барысында мәліметтер әдістердің көмегімен бір түрден
екінші түрге өзгереді. Мәліметтерді өңдеу көптеген амалдардын жиынтығынан
тұрады:
• мәліметтерді қалыптастыру;
• мәліметтерді сүзгілеу;
• мәліметтерді сұрыптау;
• мәліметтерді топтастыру;
• мәліметтерді архивтеу;
• мәліметтерді қорғау;
• мәліметтерді тасымалдау;
• мәліметтерді түрлендіру.
Жоғарыдағы мәліметтерге қолданылатын амалдар тізімі толық емес.
Бүкіл әлемде миллиондаған адамдар мәліметтерді кұру, өңдеу, түрлендіру және
тасымалдаумен айналысады, әрбір жұмыс үстелінде әлеуметтік, экономикалық,
ғылыми және мәдени процестерді басқару үшін қажет арнайы амалдар орындалып
отырады. Барлық мүмкін болатын амалдардың толық тізімін кұрастыру мүмкін
емес және оның қажеті де жоқ. Бұдан ақпаратпен жұмыс істеуге көп уақыт
кетеді, сондыктан оны автоматтандыру қажет деген корытындыға келеміз.
Динамикалық құрылымдар анықтамасы бойынша жадыда құрылым
элментттерінің физикалық шектестігінің болмауымен, оны өңдеу процесі
кезінде құрылым өлшемінің тұрақсыздығымен сипатталады.
Динамикалық құрылымның элементтері жадының алдын-ала айта
алмайтын адрсетер бойынша орналасатындықтан, мұндай құрылымның элементінің
адресі бастапқы немесе алдыңғы элементтен алынбайды. Динамикалық құрылымның
элементтерінің арасында байланыс орнату үшін көрсеткіштер қолданылады, олар
арқылы элементтер арасында анық байланыстар орнатылады. Деректерді жадыда
бұлай көрсету байланысты деп аталады. Динамикалық құрылымның элементі екі
өрістен тұрады:
Ақпараттық өріс немесе деректер өрісі, мұнда құрылым құрылған деректер
сақталады; жалпы жағдайда ақпараттық өрістің өзі жинақталған құрылым –
вектор, массив, не басқа динамикалық құрылым болып табылады;
Байланысу өрісі, берілген элементті құрылымның басқа элементтерімен
байланыстыратын бір немесе бірнеше көрсеткіштерден тұрады.
Деректерді байланысты көрсетудің артықшылығы – құрылымның едәуір
өзгеруін қамтамасыз ету мүмкіндігі;
Құрылымның өлшемі машиналық жадының қол жетерлік көлемімен ғана
шектеледі;
Құрылым элементтерінің логикалық тізбегін өзгерту кезінде жадыда
деректерді орналастыру емес, көрсеткіштерді түзету ғана талап етіледі;
Құрылымның иілгіштігі.
Сонымен бірге, байланысты көрсетудің кемшіліктері де жоқ емес:
Байланыс өрістеріне қосымша жады шығындалады;
Байланысқан құрылым элементтеріне қатынас уақыт бойынша тиімсіздеу
болуы мүмкін.
Соңғы кемшілігі едәуір қиындықтар туғызатындықтан, деректерді
байланысты көрсетуге соған бола шектеу қойылады. Егер деректерді аралас
көрсетуде кез келген элементтің адресін есептеу үшін бізге барлық жағдайда
элементтің нөмірі және құрылымның дескрипторындағы ақпарат жеткілікті
болса, онда байланысты көрсету үшін элементтердің адресі бастапқы
деректерден есептелінбейді. Байланысты құрылымның дескрипторы құрылымға
кіруге мүмкіндік беретін бір немесе бірнеше көрсеткіштен тұрады, әрі қарай
қажетті элементті іздеу элементтен элементке тізбек бойынша орындалады.
Сондықтан байланысты көрсету деректердің логикалық құрылымы элемент нөмірі
бойынша қатынас жасайтын вектор немесе массив түріндегі есептерде ешқашан
қолданылмайды, бірақ логикалық құрылымы басқа бастапқы ақпараттарды
(кестені, тізімді, ағашты және басқа) қажет ететін есептерде жиі
қолданылады.
СиС++-дегі массивтердің қатарында құрылымдар мен бірлестіктердің
берілген типіндегі агрегаттары да болады.Құрылым типі- біртұтас
берілгендерге арналған әртүрлі типтегі берілгендердің тізбектелген
жиынтығын білдіреді.Құрылымдық типтің бейнеленуі схема бойынша құрылады:
Struct идентификатор
{мүше диклараторлары} диклараторлар-инициализатор
Мұндай жарияламалар екі функция атқарады,біріншіден құрылымдық
типті,екіншіден осы типтегі ауысуларды жариялайды.
Struct негізгі сөзінен кейін идентификатор құрылымдық типтің
аумағындағы болып табылады.
Типтің атауының болмауы да мүмкін,мұндай жағдайда типтің бәрі атаусыз
болып программаның басқа бөліктерін берілген тип бойынша жариялау мүмкін
емес болады.Декларатор-инициализатор бейнеленетін ти туралы мәліметтер тип
сілтеуіштері мен берілгендер типі көрсетілген нақты құрылым типтерін
жариялайды.Декларатор-инициализатор қатыспай қалған жағдайда,тек құрылым
типі ғана белгіленеді.
Struct Point struct құрылым атауы
{int x,y;}құрылым мүшелерінің диклораторлары
Point 1,*ptr_to_point,arpoint[3] құрылымдық типтің
берілгенднрі
Құрылым мүшелері берілген типке сәйкес бейнеленеді және скалярды
мәліметтер ,сілтеуіштер ,массивтер немесе басқа құрылымдық типтегі
берілгендер бола алады. Мысалы: қабырғасы кордината осьіне паралель жатқан
тік бұрыштың құрылымдық типін құру үшін,бірнеше нұсқаларды
болады.
Struct Rect 1
{Point p1; сол жақ жоғары бұрыштың кординатасы
Point p2; оң жақ астыңғы бұрыштың кординатасы .
}
Struct Rect 2
{Point p[2];
}
Struct Rect 3
{Point p; сол жақ жоғары бұрыш
int width; ені .
int high; Тікбұрыштың биіктігі.
}
Біз бұған дейін берілген өлшемді құрылымдардың мағұлматтaрын ,
бірөлшемді , екі өлшемді индексті массивті және struct құрылымын
оқығанбыз . Бұ тарауға динамикалық құрылымның мағұлматтары олардың өсуі
мен қысқаруы бағдарламаарлық орындалу процессі енгізілген . Қатынас
тізімдері мағұлматтар элементінің жиінтығы болып табылады. Компиляторлар
мен операциялар жүйелерінде стектер айтулы роль атқарады . Енгізу және
шығару операциялары стектің ... жалғасы
Ұқсас жұмыстар
Пәндер
- Іс жүргізу
- Автоматтандыру, Техника
- Алғашқы әскери дайындық
- Астрономия
- Ауыл шаруашылығы
- Банк ісі
- Бизнесті бағалау
- Биология
- Бухгалтерлік іс
- Валеология
- Ветеринария
- География
- Геология, Геофизика, Геодезия
- Дін
- Ет, сүт, шарап өнімдері
- Жалпы тарих
- Жер кадастрі, Жылжымайтын мүлік
- Журналистика
- Информатика
- Кеден ісі
- Маркетинг
- Математика, Геометрия
- Медицина
- Мемлекеттік басқару
- Менеджмент
- Мұнай, Газ
- Мұрағат ісі
- Мәдениеттану
- ОБЖ (Основы безопасности жизнедеятельности)
- Педагогика
- Полиграфия
- Психология
- Салық
- Саясаттану
- Сақтандыру
- Сертификаттау, стандарттау
- Социология, Демография
- Спорт
- Статистика
- Тілтану, Филология
- Тарихи тұлғалар
- Тау-кен ісі
- Транспорт
- Туризм
- Физика
- Философия
- Халықаралық қатынастар
- Химия
- Экология, Қоршаған ортаны қорғау
- Экономика
- Экономикалық география
- Электротехника
- Қазақстан тарихы
- Қаржы
- Құрылыс
- Құқық, Криминалистика
- Әдебиет
- Өнер, музыка
- Өнеркәсіп, Өндіріс
Қазақ тілінде жазылған рефераттар, курстық жұмыстар, дипломдық жұмыстар бойынша біздің қор #1 болып табылады.
Ақпарат
Қосымша
Email: info@stud.kz