Файл қосу
Символдардың массивы
МАЗМҰНЫ Глосарий Пәннің оқу бағдарламасы - (Syllabus) Дәрістердің қысқаша мазмұны Тәжірибелік сабақтарды өткізуге қажет әдістемелік нұсқаулар ОӨЖ тақырыптары Материалды меңгергендігін бағалауға арналған сұрақтары Глоссарий CASE (Computer- Aided Software/System Engineering - разработка программного обеспечения/программных систем с использованием компьютерной поддержки) - программалық жабдықтарды/ программалық жүйелерді компьютердің қолдауымен құру; COM (Component Object Model - компонентный модель объекта) - компоненттік объектілер моделі, бұл - бинарлық программалық компоненттерді (немесе программалық коды екілік форматта жазылған компоненттерді) біріктірудің объектіге бағдарланған технологиясы болып табылады. Бұл технологияның артықшылығы бинарлық деңгейдегі стандартты сақтай отырып кез-келген программалау тілінде, кез-келген ортада жасалған компоненттерді кез-келген программада пайдалана беруге болады RAD (Rapid Application Development- быстрая разработка приложений)- қосымшалар құруды жылдамдату; UML (Unified Modeling Language - унифицированный язык моделирования) - модельдеудің унифицацияланған тілі (немесе модельдеудің ортақ түрге келтірілген түрі). МСТ (мемлекеттік стандарт) - белгілі бір салаларға байланысты ережелерді тағайындайтын мемлекеттік деңгейде қабылданған арнайы құжат. Верификация - ақырғы ӛнімнің, яғни программалық жабдықтың, алдын-ала анықталған талаптарға сәйкес жасалғандығын тексере отырып, программалық жабдықтың дұрыстығын дәлелдеу. Программалық жабдықтарды верификациялауда <<Хоардың аксиоматикалық семантика әдісі>>, <<Флойдтың индуктивті тұжырымдамалар әдісі>> және т.б. арнайы формальды әдістер қолданылады. Глоссарий - терминдер мен ұғымдардың түсіндірме сӛздігі. Инкапсуляция- бір объектіге тән барлық қасиеттердің, әдістер мен әрекеттердің капсуланың қызметін атқаратын бір құрылымға немесе типке жинақталуы. Иерархия - бұл белгіл бір жүйедегі элементтердің бір- біріне бағынышты түрде реттеліп орналасуын білдіреді. Мысалы тума класстардың, түпкі кластарға бағынышты болуын <<кластар иерархиясы>> немесе <<объектілер иерархиясы>> деп атайды. Класс(class)- инкапсуляция, қабылдаушылық және полиморфизм қағидаларына сәйкес анықталатын объектілерді программада сипаттау және қолдану үшін құрылатын жаңа құрылымдық тип. Кез-келген объект белгілі бір кластың ӛкілі, бір данасы немесе айнымалысы болып есептеледі. Кроссплатформалы программалық жабдықтар - екі немесе одан да кӛп түрліше аппараттық платформаларда немесе түрліше операциялық жүйелерде жұмыс жасай беретін программалық жабдықтар. Мысалы, операциялық жүйеге тәуелсіз, яғни Linux және Windows тобына жататын операциялық жүйелердің барлығында дерлік жұмыс жасай беретін C, С++, PureBasic және Free Pascal -- кроссплатформалы программалау тілдері болып есептеледі. Қабылдаушылық- белгілі бір түп-объектіден тарайтын және оның барлық қасиеттерін, әдістері мен әрекеттерін қабылдап алып, сақтап қалатын кӛп тума-объектілерінің болуы. Тума-объектінің түп-объектіден берілген қасиеттерін, әдістері мен әрекеттерін ӛзгертуге болмайды, бірақ оны жаңа элементтермен толықтыруға болады және одан тарайтын жаңа тума-объектілер алуға болады. Мұның нәтижесінде объектілердің пайда болуын, қайсысы-қайдан тарайтынынын кӛрсететін, объектілер /немесе кластар/ иерархиясы пайда болады, оның ең түпкі немесе жоғарғы объектісі TObject класы болып табылады . Нотация - қандайда болмасын бір ұғымдар мен түсініктерді және олардың арасындағы байланыстарды кӛрсету үшін, арнайы келісім бойынша қабылданған шартты түрде алынған белгілеулердің жиынтығы. Мысалы, алгоритмдерді кӛрсетуде мәтіндік нотация (псевдокод) және графикалық нотация (блок- схемалар) қолданылатыны белгілі. Пакеттер(packages)- бұл визуалдық компоненттер мен басқа да объектілердің, функциялардың және т.б. кітапханаларын біріктіре отырып қамтитын, қосымшаға динамикалық түрде қосылатын DLL модульдің немесе кітапхананың арнайы бір түрі. Полиморфизм- түрлі объектілердің, нәтижелері әр түрлі болатын, бірақ атаулары бірдей әрекеттерді орындай алуы. Мысалы, Windows терезелерінде ең жиі қолданылатын объектілердің бірі, батырмаларды алатын болсақ, бір терезеде бірнеше батырма тұрады, олардың кез-келгеніне <<шерткенде немесе сырт еткізгенде>>, олар түрліше қызметтерді орындайды Программалық жабдық (soft) - қандайда болмасын белгілі бір саланың есептерін шешуге арналған, программалау тілдерінің бірінде жүзеге асырылған компьютерлік программалардың жиынтығы. Программалық жабдықтар қазіргі заманғы ақпараттық жүйелердің негізгі бӛлігі, құраушысы болып табылады. Программалық жабдықтың ӛмірлік циклы- оны құру туралы идеяның пайда болған уақытынан бастап, оны жасаған фирманың программалық жабдықты әрі қарай қолдап жетілдіруді тоқтатқанға дейінгі уақыты. Программаның интерфейсі - қолданушы мен программалық жабдықтың арасындағы қатынас, байланыс. Мысалы, Windows операциялық жүйесінің интерфейсі- қолданушыға ӛте ыңғайлы графикалық интерфейс (Graphical User Interface, GUI), кейде оны <<визуальды интерфейс>> деп те атайды. Программалау технологиясы - программалық жабдықтарды жасау процесінде қолданылатын қолданылатын арнайы әдістер мен құралдардың жиынтығы. Техникалық тапсырма- программалық жабдықты құру мақсаттары, оған қойылатын талаптар, жасау уақыты мен кезеңдері, тапсырыс берушіге ӛткізу мерзімі және т.б. кӛптеген мәліметтер қамтылған, программалық жабдық туралы толық мәлімет беретін құжат. Техникалық тапсырманы жасауға тапсырыс беруші де және оны орындаушы да қатысуы керек. ЭЕМ (электронды есептеуіш машина) - қазіргі дербес компьютерлердің бұрынғы атауы. ДӘРІСТІҢ ҚЫСҚАША МАЗМҰНЫ №1 Дәріс Тақырыбы: Ақпараттандыру мен объектілік-бағытталған программмалау Дәріс жоспары: o Ақпараттандыру және программмалық инженерия. o Объектілік-бағытталған программалаудың концептуалды орны. o С++ тілі жайлы Бъярн Страуструп. o Visual Studio өңдеу ортасындағы қосымша архитектура Дәрістің қысқаша мазмұны Ақпараттандыру біздің жоғалмайтын дамуымыздың цивилизациясы болды, қазіргі уақытпен салыстырғанда көрсетілген сенімділік, көзге көрсетерлік және өз уақытындағы білім барлық жерде барлық түрде адамның мақсатына ұмтылуына қарай. Ақпараттандырудың өзекті техникалық проблемасы есептеуіш техниканың және телекоммуникацияның сенімді, нақты және экономикалық қолдану құралдарды көп шығару, адамдардың мақсатының барлық түріне бағытталған ақпараттық жүйелер үшін білім Базасы және деректер базасының өндірісті шығару ұйымы болып табылады. Программалық жүйелердің өмірлік циклы программалық продукт немесе программалық жүйелерді құру процесінде орындалуы тиіс тапсырмалар, іс-әрекеттер, процестерді анықтайды. Программалық құрудағы процесс жұмыс стадиясында уақыт бойынша реттелген, байланысқан және біріктірілген, берілген тапсырмаларға жауап беретін ПЖ құру үшін керекті және жеткілікті көрсетеді. ПЖ классикалық өмірлік циклының құрамына келесі стадиялар кіреді: * Системалық анализ; * ПЖ сұраныс анализі; * Жобалау; * Кодтау; * Тестілеу; * Эксплуатация және шығарып салу; Эксплуатациядан түсіру; Арнайы құрылған және кітапханалық кластарды программалау қазіргі программалаудың ең негізгі тәсілі болып табылады. Мысалы, Windows жүйесінде терезе оның ең негізгі объектісі болып табылады. Office 2000 толығымен класта және осы кластардың объектілерімен жұмыс істеуінен салынған. Бұнда бәрі, яғни жеке символдардан бастап қосымшалардан аяқтағанда, кейбір кластың объектісі ретінде қарастырылады. Кейбір пәндік облыста кәсіби есептерді шешуді класс құрудан бастаған жөн, ал содан кейін есепті шешу процесін пәндік облыстың кластарындағы объектермен жұмыстың терминдерінде сипаттау керек. Объектілк-бағытталған программалау объекттерді, олардың атрибуттары мен қылықтарын модельдец сияқты программалау процесінің тиімді жолдарын қарастыруды қамтамасыз етеді. Қазіргі қосымшалар, яғни өзіне локальды және глобальды желілерге кіру мүмкіндігін қосатындар, сандық есептесу, жалпақ және үш өлшемді графиктері күрделі құрылымды деректер базасына кіру , қолданушымен интеративтік байланыс ереже бойынша С++ ортасында құрылады. Сонымен қатар, С++ код фрагменттерімен және басқа тілде жазылған программалармен бірге жұмыс істей алады, ал сондықтан ғылыми зерттеулер мен академиялық оқу айналасында кеңінен қолданылады. Әрбір MFC - қосымшасы, оны жоғарғы деңгейде анықтайтын класқа, CwinApp-дан алынған туындысына тәуелді болып келетін theApp объектісімен байланысады. Ереже бойынша қосымшаның құрылымы Document-View архитектурасымен анықталады. Бұл қосымшаның бір немесе бірнеше документ- объекттерден тұратынын білдіреді, яғни олардың кластары CDocument класынан алынған тьуынды болып есептеледі. Документтердің әрбірімен документтің кейпін анықтайтын және CView-ден алынған туынды болатын бір немесе бірнеше кейпі-объект кластары байланысты. CFrameWnd (<<терезе-рамка>>) және одан алынған туындылар дисплейдегі терезе-рамкаларды анықтайды.Қолданушы интерфейсін жобалау кезінде құрылатын басқару элементтері басқару элементі кластарының отбасына тәуелді.Қосымшалардың жұмыс істеу процесінде пайда болатын диалогтік терезелер - бұл кластардың объектілері, Cdialog-тан алынған туынды. Ұсынылатын әдебиеттер * Программирование на Visul C++/ С.В. Глушаков, А.В. Коваль А.В., С.А. Черепнин; Худож.-оформ.А.С. Юхтман.-М.:ООО <<Издательство АСТ>>; Харьков: <<Фолио>>, 2003.-726 с. * Баженова И.Ю. Visual C++6.0(VISUAL STUDIO 98).Уроки программирования М.: Диалог-МИФИ, 2001-416 с. * Вендров А.М. Проектирование программного обеспечения экономических информационных систем: Учебник.-М.: Финансы и статистика, 2000.-352 с. * Буч Г. Объектно-ориентированное проектирование с примерами применения: Пер. с англ.- -М.: Конкорд, 1992.-519 с. №2 Дәріс Тақырыбы: С++ лексикалық негіздері. Скалярлық типтер және өрнектер. Дәрістің жоспары: * Лексикалық негіздер: алфавит, лексемалар, идентификаторлар, сөйлемдер. * Деректердің типтері және модельдері.Негізгі және туынды типтер. * Айнымалылар және константалар. Анықтамалар және сипаттамалар. Типтердің айналуы және өрнектері. Дәрістің қысқаша мазмұны С++ тегі программа - бұл алдын ала анықталған мағынаға иеленген С++ тілінің синтаксистік құрылымының терминдеріндегі деректер өңдеудің кейбір процестерін сипаттайтын жасанды тілдегі мәтін. С++ тілінің құрылу схемасы жоғарғы деңгейдегі жасанды тілдер үшін ұқсас: Алфавит --> Лексемалар --> Скалярлы типтер және өрнектер --> Операторлар --> Адрестер, көрсеткіштер, массивтер, жад --> Функциялар, кластар, объекттер. С++ өзекті сөздері - бұл тілдегі ішкі қолданулар үшін сақталған идентификаторлар. Барлығы 50 шақты сөз сақталған: char do long for class const return void while және т.б. Программистке өзекті сөздерді көмекші сөздер ретінде қолдануға тиым салынады. Бұдан басқа программистке бір немесе екілік сызылған символдан басталатын идентификаторды таңдау ұсынылмайды, себебі бұл символдар С++ нақтылануы және стандартты кітапханалар үшін сақталған. Костанта-бұл деректердің символдары немесе бекітілген сандық қатарлы мәндерін көрсету үшін қолданылатын лексемалар. Константа арқылы деректер типінің ішкі көрінісі көрсетіледі. Константаның ішкі көрінісі деректерді өңдеудің ықтималды әдістерін қамтамасыз етеді. Деректер типінің көптүрлігі және оларды өңдеу операциялары кез келген программалау тілінің мүмкіндігін анықтайды. Деректер түсінігі латын тілінен datum-факт дегенді білдіреді. Осымен байланысты деректерді кез келген көріністің немесе нақты бекіту үшін жеткілікті бағалы көрсетілетін абстрактты идеялар көрінісі деп атай бастады. Деректер және олардың мағыналық мазмұны табиғи тілде бекітіледі, себебі тіл соны немесе басқаны көрсетуі үшін жеткілікті мазмұнды. Деректер моделі - бұл деректердің нақты мәні бойынша ақпараттың мазмұнын түсінуге мүмкіндік беретін абстракцияның құралы. Деректердің моделі шын әлемді деректерді компьютерлік өңдеуінің бірқалыпты ерекшеліктеріне модельдейді. Деректердің атомарлы бірлігі ретінде <объект аты, объект қасиеті, мәні, қасиеті, уақыты> түсініктер тізбегін қабылдайды. Атауына айнымалымен белгіленген жад ұяшығының адресі сәйкес келеді, ал ұяшықтың құрамы мәні болып табылады. Содан айнымалы - бұл атауланған облысы сияқты объекттің жеке кезі. Айнымалының мәнін анықтағанда оған сәйкес келетін жад облысына кейбір код кіргізіледі. Бұл программаны орындау уақытында не месе компиляция кезінде болады. Бірінші жағдайда инициалдау туралы айтылады, екінші жағдайда - меншіктеу. Константалар айнымалылар сияқты деректер сақтауға арналған, бірақ айнымалыдан айырмашылығы константаны өзгертуге болмайды.Құрылған константаны инициалдау қажет. С++ тілінде константаның 2 түрі қарастырылған: литералды және типтелген. Литералды константа - бұл программа өзінің мәніндегі енгізілмелі мән. Мысалы, int myLusy= 1936 мәніндегі myLusy сөзі int типінің айнымалысы болып табылады, 1936 саны локальды константа.Литеральды константалар символды, қатар, бүтін және затты болып бөлінеді. Символды константа-бұл `z`,'@' апострофтарына қорытындыланған жеке символ. Қатарлы константалар - "О, егер тағдырға өз терезеңе сияқты бір қараса ғой!" екі тырнақшамен қорытындыланған символдардың тізбектілігі. Ұсынылатын әдебиет * Программирование на Visul C++/ С.В. Глушаков, А.В. Коваль А.В., С.А. Черепнин; Худож.-оформ.А.С. Юхтман.-М.:ООО <<Издательство АСТ>>; Харьков: <<Фолио>>, 2003.-726 с. * Глушаков С.В., Коваль А.В., Смирнов С.В. Язык программирования С++: Учебный курс/Худож.- оформитель А,С.Юхтман. - Харьков: Фолио; М.: ООО <<Издательство АСТ>>, 2001.-500 с. №3 Дәріс Тақырыбы: С++ тілінің операторлары және операциялары Дәріс жоспары: + Арифметикалық операциялар. Операцияны орындаудағы тәртіптер мен приоритеттер. + Шартты операторлар + Циклдық операторлар. Дәрістің қысқаша мазмұны С++ тің мүмкінділігі деректердің сақталатын типтерінің көптүрлігімен, әрі деректердің сәйкес келетін типтерге операциялардың көптүрлігімен анықталады. Операциялар өздігінен қайтымды мән болып табылатын бір (унарлы) немесе бірнеше операндылармен (бинарлы) орындалатын кейбір іс-әрекеттерді көрсетеді.Базалық арифметикалық операцияларға: (+) қосу операциясын, (-) айырым, (*) көбейту,(/) бөлу және модуль бойынша (%), яғни сол операндыны оңға бөлгендегі қалдықтың есебі. Операциямен қайтымды мәнді тиімді қолдану үшін меншіктеу операторы және оның модификациясы арналған: (+=) меншіктеумен қосу, (-=) меншіктеумен айырым, (*=) меншіктеумен көбейту, (/=) бөлу, меншіктеумен модуль және соңынан қарастырылатын басқа да қатарлар. Шартты операторлар С++ тілі программаның жеке алынған бұтақтарың орындау ретін басқаруға мүмкіндік беретін құрылымның жинағымен иемденеді. Мысалы сіз кейбір шарттарды тексеру шешіміне байланысты басқаруды программаның сол немесе басқа бөлігіне беруіңізге болады. Бұтақталудың орындалуына шартты операторлар қолданылады. If операторы If операторышындық тексерудегі кейбір шарттардың шешіміне байланысты программаның бұтақталуын шығарады. if (тексерілетін шарт) оператор1; оператор2; Тексерілетін шарт кез-келген өрнек болуы мүмкін, бірақ көбінесе ол салыстыру операторын қамтиды. if-else операторлары if операторы else өзекті сөзімен келесі түрді иеленеді: if (тексерілетін шарт) сөйлем1; else сөйлем2; сөйлем3; switch операторы Switch бұтақталу операторы if-else басқару құрылымының альтернативасы болып табылады және келесі синтаксисті иеленеді. switch (өрнек) { константалы_өрнек: операторлар группасы break; case константалы_өрнек: операторлар группасы; break; ....... default константалы өрнек: операторлар группасы; Цикл операторлары Ол кіру нүктесін, тексерілмелі шарт және шығу нүктесін иеленеді. Шығу нүктесін иеленбеген цикл шексіз деп аталады. Шексіз цикл үшін тексерілмелі шарт әрқашан шындық мән қабылдайды. Шарттың тексерілуі цикл денесін орындау (for, while циклдары) алдында немесе аяқталғаннан кейін орындалуы мүмкін. For циклдары For циклінің синтаксисі мынадай түрлері бар: For ( өрнек1; өрнек2;өрнек3) Оператор немесе операторлар блогы; While циклдары Do-while циклдары Do-while while опертаорынан айырмашылығы ол аодымен дене (оператор немесе блок), ал артыншаақиқат мәнде тексереді. Мұндай құрылым цикл денесінің міндеттітүрде бір рет болса да орындалуыфн міндеттейді. Оператордың синтаксисі мынадай түрлерді иеленеді: Do Оператор немесе операторлар блогы; While(өрнек) Ұсынылатын әдебиет * Visual C++/C.В. программалау. Глушаков А.В., Коваль А.В., Черепнин С.А.; Сурет- безенд. Юхтман А.С. - М.:ООО <<Издательство АСТ>>; Харьков: <<Фолио>>,2003.-726 бет * Глушаков А.В., Коваль А.В., Смирнов С.В. Программалау тілі С++. Оқу курсы/ Сурет-безенд. Юхтман А.С. - Харьков: Фолио; М.: ООО <<Издательство АСТ>>, 2001.-500 бет. №4 Дәріс Тақырып: Статикалық және динамикалық массивтер. Объектілердің бағдарлауыштары мен адрестері. Символдардың массивтері Дәріс жоспары: * Массивтер мен көрсеткіштер * Көп өлшемді массивтер * Массивтердің динамикалық бөлінуі * Символдардың массивы Дәрістің қысқаша мазмұны С++ тілі басқа да көптеген биік деңгейдегі тілдер сияқты, программистке массивтерді біртипті мәліметтерді жинақтаумен жұмыс істеуге мүмкіндік береді. Массивке кіретін мұндай мәліметтердің жеке бірлігі массив элементі деп аталады. Массив - бұл бірыңғай шамалар тізбегінің бір атаумен аталып реттелген жиыны. Егер айнымалы бір массив элементтеріне адрестелуі үшін массивтің элемент мағынасы салынған барлық элементтер атауына және индекс немесе ұяшық есіне ортақ бір атау болу керек. Массивті бір типті мәліметтердің күрделенуіне байланысты массивті өлшем бір өлшемді , екі өлшемді және көп өлшемді массивтер болып бөлінеді. Массив өлшемі индексті өрнектердің сандарымен анықталады. Осыған байланысты массив элементтерін айнымалы индексті деп атайды да а[l], b[i+j] - бір өлшемді массивтер, c[3] [4], d[j][i] - екі өлшемді масситер, f[1][3]...[n], s[k][d+3]...[n] - n - өлшемді массивтер. Баздық типтері бар массивтердің инициализациясын оларды хабарлағанда шығаруға болады. Бұны хабарлағаннан кейін теңдік (=) белгісінен соң элементтер мағынасын, олардың массивтегі ретімен фигуралы жақшалар, үтір арқылы аталады. Программалық қамтамасыз ету өңдеушісінің жадқа кіру мүмкіндігі С++ мықты құралы болып есептеледі. Бұл мақсат үшін айнымалылардың арнайы типі - көрсеткіштер қарастырылады. Көрсеткіштің хабарландыруы келесі синтаксистер болады: Объект түрінің* идентификаторы: Хабарланған массивтің атауы бірінші элементтің адресінің компиляторымен ассоцияланады. Содан массив атауын қоладу арқылы көрсеткішке нөлдік элементтің адресін меншіктеуге болады. Char ArrayOf Char[] = {`W','O','R','L','D'}; Char* pArr=ArrayOfChar; pArr көрсеткішінің атын ауыстырғанда ArrayOf Char[0] құраушысына кіру мүмкіндігіне иеленуге болады. Көп өлшемді массивтің анықтамасы әр мөлшерлі элементтердің саны, типі, мөлшері туралы мағлұматтарды құрау керек. Тип массив_аты [k][k2]...[kn]; Осыған дейін анықталған массивтер статистикалық болып хабарланды және осыдан стеті жадта немесе программаның деректер облысында сақтады. Егер массив элементтерінің саны көп болмаса, онда мұндай орналасу ақталады. Бірақ көбінесе деректерді сақтау үшін арнайы функциялар тізбегін қолдану арқылы кіретін динамикалық қолдану жиі болады. Объект астында динамикалық жадты белгілеу келесі өрнектердің көмегімен орындалады: malloc; calloc; new; Жадтың белгіленген ресурстарын босату мына өрнектермен шығарылады:. free; delete; С++ стандартына символдардың бірнеше жинақтары енгізілген. Дәстүрлі 8-битті символдардың жинағы <<қысқа символ>> деп аталады. Сонымен қатар <<ұзын>> деп аталатын 1 битті символдардың көмегі қосылған. Әрбір символдар жинағы үшін кітапханада функциялар бар. ANSI C сияқты С++ -те символдық қатардың көрсетілуі үшін арнайы тип жоқ. Оның орнына С++-те қатар терминаторымен, нөлдік (`\0') мәнді символ аяқталатын сhar типті элементтер массиві сияқты көрсетіледі. Нөл терминаторымен аяқталатын қатарлар жиі ASCIIZ қатары деп аталады. Символды қатарлар 2 тырнақшамен жабылған символды константалар жинағынан тұрады. "Бұл символ қатары..." char buffer[10] ; Ұсынылатын әдебиет 1. Visual C++/C.В. программалау. Глушаков А.В., Коваль А.В., Черепнин С.А.; Сурет- безенд. Юхтман А.С. - М.:ООО <<Издательство АСТ>>; Харьков: <<Фолио>>,2003.-726 бет 2.Глушаков А.В., Коваль А.В., Смирнов С.В. Программалау тілі С++. Оқу курсы/ Сурет-безенд. Юхтман А.С. - Харьков: Фолио; М.: ООО <<Издательство АСТ>>, 2001.-500 бет. №5 Дәріс Тақырыбы: Функциялар, Көру облысы, Локальды және глобальды айнымалылар. Жад кластары. Кіріктірілетін функциялар. Дәріс жоспары: * Функциялар, олардың параметрлері және аргументтері. * Көріну облысы. Локальды және глобальды айнымалылар. * Жад кластары. * Кіріктірілетін, рекурсивті және математикалық функциялар. Дәрістің қысқаша мазмұны Программада қолдануға шамаланатын әрбір функция оның ішінде хабарлануы, анықталуы және шақырылуы керек. Әдетте функцияның хабарландырулары тақырыпты файлдарда орналастырылады, содан кейін олар #include директивасының көмегімен программаның бастапқы текстіне қосылады. Функцияның хабарламасы оның келесі түрде хабарланатын пртотипін мазмұндайды: Қайтымды тип FuncName (хабарлантын параметрлердің тізімі); Мұндағы қайтымды тип - функциямен қайтарылатын деректердің типі. Егер деректердің қайтарылатын типі көрсетілмесе, онда компилятор int-ті функциямен қайтарылатын тип деп санайды. Хабарланатын параметрлердің тізімі үтірмен ажыратылған функцияның әрбір параметрлерінің атауы мен типін көрсетеді. Параметрдің атауын түсіруге рұқсат етіледі. Функцияның хабарланатын параметрлерінің тізімі бос болуы мүмкін. Функцияның прототипінің мысалдарын көрсетейік: int swap(int, int); double max (double par1, double par2); void func(); Функцияның анықтамасы оның тақырыбына және мағыналық жүктемені таситын, фигуралық жақшаға алынған меншікті денесінен тұрады. Егер функция мән қайтарса, Void типінен жақсы, қайтарылатын мән сияқты функция денесінде сол типтің параметріндей return операторы қатысуы керек. Егер қайтарылатын мән келешекте программада (void) қолданылмайтын жағдай болса, яғни return операторы параметрсіз жалғасады және біржола түсіріледі, онда функциядан қайту жабылатын жақшаның жетістігі бойынша орындалады. Функция нақты іс-әрекетті орындауы үшін, ол прграммада шақырылуы керек. Функцияға қарау кезінде қойылған тапсырмаларды орындайды, ал жұмыс аяқталуы кезінде кейбір мәндерді шешімі ретінде қайтарады. Функцияның шақырылуы өздігінен артынан дөңгелек жақша ішінде үтірмен ажыратылған аргументтер тізімі жүретін функцияның идентификатор нұсқауларын көрсетеді: Функция аты (аргумент 1, аргумент2,...., аргумент N); Функцияның әрбір аргументі келешекте есеп процесінде қолдану үшін функция днесіне берілетін константаны, өрнекті және айнымалыны көрсетеді. Функцияның аргументтер тізбегі бос болуы мүмкін. Функция басқа функцияларды шақыра алады, ал олар өз кезегінде үшіншілердің шақырылуын шығар алады және т.б. Сонымен қатар функция өзін шақыра алады. Бұл құбылыс программалауда рекурсия деп аталады.Бұрыннан көрсетілгендей, С++ тегі кез- келген программа міндетті түрде өзіне басты функция main() қосады.Программаны орындау осы функциядан басталады. Стандартты математикалық функцияның прототипі math.h. тақырыпты файлда анықталған. Бұнда күнделікті жұмыста қолданатын функциялардың прототипі негізделген: санды дәрежелеу, түбірден алу, лагорифмдік, тригонометриялық, гипеболалық функциялар және т.б. Ұсынылатын әдебиет * Программирование на Visul C++/ С.В. Глушаков, А.В. Коваль А.В., С.А. Черепнин; Худож.-оформ.А.С. Юхтман.-М.:ООО <<Издательство АСТ>>; Харьков: <<Фолио>>, 2003.-726 с. * Глушаков С.В., Коваль А.В., Смирнов С.В. Язык программирования С++: Учебный курс/Худож.- оформитель А,С.Юхтман. - Харьков: Фолио; М.: ООО <<Издательство АСТ>>, 2001.-500 с. №6 Дәріс Тақырыбы: Кластар және объекттер. Кластардың құрылымы. Кластардың мұрагерлігі. Дәріс жоспары: * Объектілік- бағытталған программалау әдістемелігі және концепциялары * Кластар. Конструкторлар және деструкторлар. * Жай және күрделі мұрагерлік. Дәрістің қысқаша мазмұны ОБП әдістемелігінде клас түсінігі бір типті объектілер тобы ретінде анықталады. Сонымен қатар әрбір кластың өкілі объект болып табылады. Әрбір объект оның осы мүшесінің ағымды мағынасын анықтайтын өзінің ерекше жағдайлары бар.Кластардың функционалды белгісін я, оның мүшесінің функцияларымен берілетін әрекеттерінен анықтайды. Әр класта мәліметтерді сақтайтын арнайы жадтар бөлінеді және әрбір облыстың осы типтегі мәліметтерде мүмкін бола алатын операциялар қалыптастырады. Берілген кластың объектілерін құру конструктор деп аталатын арнайы функция - мүше арқылы жүреді, ал жою-деструктор деп аталатын басқа функция-мүше арқылы. Класс ішкі деректерді қол жетпес ете алады, яғни оларды ашылған, жабылған және қорғалған ретінде көрсетеді. Класс осы типтегі объекттердің басқа әлеммен қарым-қатынасы үшін нақты анықталған интерфейс құрады. Объектілік-бағытталған жобалауда шешілетін есеп алгоритмдік модель түрінде емес, сұраныстармен алмасатын әр түрлі кластардың объектілері түрінде көрсетіледі. Сұраныс алған объект оған сәйкес функция-мүше шақырумен жауап береді. Класс түсінігі ОБП әдістемелігінде сияқты С++ тілінде өзекті болып табылады, онда класс- кеңінен функциональды толтырылған синтаксистік құрылым: class <класс аты> {//кластың жабылған фуекция-мүше және дерек -мүшесі public: //кластың ашылған фуекция-мүше және дерек - мүшесі } Кластың хабрландыруының ішінде көрсетілген функциялар мен айнымалылар осы кластың мүшесі бола бастайды. Кластың хабарламасының ішінде көрсетілген айнымалылар осы кластың дерек-мүшесі деп аталады; класс хабарламасының ішінде көрсетілген функциялар кластың функция-мүшесі деп аталады. Класта хабарланған барлық функциялар мен айнымалылар осы класс үшін жабық бола бастайды. Ендеше бұл олардың осы кластың тек басқа мүшелеріне ғана мүмкіндігі бар екенін білдіреді. Кластың ашық мүшелерін хабарлау үшін артынан қос нүкте еретін public сөзінен кейін хабарланған барлық функциялар мен айнымалылар кластың басқа мүшелері үшін және программаның кез-келген басқа бөлігі үшін мүмкіндік бар. Сәйкес кластың объектісін құру үшін деректер типінің спецификаторы ретінде кластың атын қолдану керек. Мысалы: AnyClass ob1, оb2; Класс объектісі құрылғаннан кейін "нүкте" операциясын қолданып, кластың ашық мүшелеріне өтуге болады. Кейбір объектті құрғанда, оны инициалдау керек. Бұл мақсат ұшін С++ конструктор деп аталатын фнкция-мүше береді. Класс конструкторы оның класының объектісі құрылған сайын шақырылады. Конструктор мүшесі болып келетін кластың аты қандай болса, оның да аты сондай және ол қайтарылмалы мәнге иеленбеген. Класс деструкторы объектті жою кезінде шақырылады. Ол глобальды объекттерге программа аяқталған кезде шақырылады, ал локальдылар үшін - ол көріну облысынан шыққанда. Конструктор мен деструкторларға көрсеткіштер алу мүмкін емес. Класс мүшелері statik модификаторымен хабарлануы мүмкін. Кластың статистикалық мүшесі класс облысының шегіне ғана кіру мүмкіндігі бар функция немесе глобальды айнымалы сияқты қарастырыла алады. Statik модификаторымен анықталған кластың дерек-мүшесі осы кластың барлық көрсетушілерімен бөлінеді, себебі шын мәнініде бұл айнымалының тек бір ғана данасы бар. Шын мәнінде, статистикалық деректер-мүшелер жады кластың ешбір көрсетушілері болмаса да бөлінеді.Сондықтан статистикалық деректер-мүшелерді хабарлап қана қоймай, оларды анықтауы керек. Статистикалық деректер-мүшелеріне қарапайым функция-мүше көмегімен кіру мүмкіндігінен еш айырмашылығы жоқ, бірақ ол үшін берілген кластың кем дегенде бір объектісін құру керек. С++ тілі класқа бір немесе бірнеше басқа кластардың дерек-мүше мен функция - мүше мұрагерленуіне мүмкіндік береді. Бұдан жаңа класты туынды класс деп атайды. Элементтері мұрагерленетін класты өзінің туынды класы үшін арналған базалық класс деп атайды. Мұрагерлік кластардың кейбір жалпы қылықтарын бір базалық класқа абстрактауға мүмкіндік береді. Туынды кластар жалпы қылықтарды мұрагерлене базалық кластың кейбір функция - мүшесін қайта анықтап, бірнеше өзгерту енгізе алады, немесе жаңа дерек - мүше мен функция-мүше енгізу арқылы толтыра алады. Осыдан туынды класты анықтау қысқарады, себебі оны туынды кластардан ерекшелейтін қылықтарын ғана анықтау керек. Ұсынылатын әдебиет * Программирование на Visul C++/ С.В. Глушаков, А.В. Коваль А.В., С.А. Черепнин; Худож.-оформ.А.С. Юхтман.-М.:ООО <<Издательство АСТ>>; Харьков: <<Фолио>>, 2003.-726 с. * Глушаков С.В., Коваль А.В., Смирнов С.В. Язык программирования С++: Учебный курс/Худож.- оформитель А,С.Юхтман. - Харьков: Фолио; М.: ООО <<Издательство АСТ>>, 2001.-500 с. * Баженова И.Ю. Visual C++6.0(VISUAL STUDIO 98).Уроки программирования .-М.: Диалог-МИФИ, 2001-416 с №7 Дәріс Тақырыбы: С++ тіліндегі ағынды енгізу-шығару Дәріс жоспары: * Ағындар * Ағындарды шығару * Ағындарды енгізу * Форматталған емес енгізу-шығару * Ағындардың монипуляторлары Дәрістің қысқаша мазмұны Енгізу-шығарудың әрбір операциясы деректер типіне нәзік жолмен орындалады.С++ тілінде байттық енгізу-шығару ағыны шығарылады. Енгізу-шығару механизмі деректердің құрылғыдан оперативті жадқа және сенімді жолмен қорытындыланады. С++ тілі енгізу-шығару үшін <<төменгі>> және <<жоғарғы>> деңгейлерге мүмкіндік береді. Төменгі деңгейдегі енгізу-шығару деректердің кейбір байт сандарын құрылғыдан жадқа немесе жадтан құрылғыға қайта жіберу керек екеніне жалпыланады. Енгізу-шығару жоғарғы деңгейі, деректердің байт саны элементтері бойынша біріктіріледі, мысалы бүтін сандар, жылжымалы үтір сандар, символдар, жолдар және қолданушымен анықталған деректер типі. С++ тілі форматталған және форматталған емес енгізу-шығару үшін де мүмкіндік береді. Форматталған емес енгізу-шығару файлдардың жоғары жылдамдықпен қайта берілуінің орындалуына мүмкіндік береді, бірақ ол қолданылуы қиын тек әлі толық емес деретерді қайта өңдейді. Форматталған енгізу-шығару құрылымды деректерді өңдейді, бірақ оларды өңдеуге қосымша уақыт қажет, бұл үлкен көлемді деректерді тасымалдау кезінде кемшілік болуы мүмкін. С++тегі программалардың көбісітақырыпты файлды қосады, яғни ол енгізу-шығарудың барлық операциялары үшін керекті және негізгі ақпаратты құрйды. тақырыптық файлы ағынның параметрлік монипулятор көмегі кезінде форматталған енгізу-шығаруды өңдеу үшін пайдалы ақпаратты құрайды. тақырыптық файлы файлдармен операция жүргізу үшін қажетті ақпаратты құрайды. тақырыптық файлы форматталған енгізу-шығаруды жадқа енгізу үшін қажетті ақпараттарды құрайды. тақырыптық файлы программалар үшін маңызды мағлұматтар қосады, яғни оларды С және С++ тілдер стилінің бірігуінен енгізу-шығару операцияларын орындау үшін қолданады. Iostream кітапханасы енгізу-шығару операциясының кең спектрін өңдеу үшін көп кластарды құрайды: * istream класы ағындардың енгізу операциясын ұстайды; * ostream класы ағындардың шығару операциясын ұстайды; * iostream класы ағындардың енгізу, әрі шығару операциясын ұстайды; * istream және ostream кластары тікелей мұрагерленген ios базалық класының туынды кластары болып табылады; * iostream класы көп мұрагерленген istream және ostream кластарының туынды класы болып табылады; Солға (<<) жылжыту операциясы шығаруды ағында белгілеу үшін шамадан тыс жүктелген және ол ағынға орналастыру опеарциясы деп аталады Оңға (>>) жылжыту операциясы енгізуді ағында белгілеу үшін шамадан тыс жүктелген және ол ағыннан алу операциясы деп аталады. Cin енгізуі istream класының стандартты ағынының объектісі енгізудің стандартты құрылғысына байланған, әдетте пернелер тақтасына.Cout шығару ostream класының стандартты ағынының объектісі шығарудың стандартты құрылғысына байлаған, әдетте дисплей экранына. Ostream класының cerr объектісі қателіктер туралы хабарлама шығраудың стандартты құрылғысына байланған. Деректердің шығарылатын ағындары cerr объект3с3 8ш3н буферленген емес болып табылады. Endl ағынының монипуляторы жаңа жолға көшуді шақырады, сонымен қатар шығару буферінің жойылуына әкеп соқтырады. С++ компиляторы енгізу және шығару кезінде автоматты түрде деректердің типін анықтайды. Он алтылық форматта адрес көрсетіледі. Адрес басылымы үшін көрсеткіш типін void типіне әкелуге болады. Put функция-элементі бірлік символ шығарады.put функциясының шақырылуы алқаланған болуы мүмкін. Ағынды енгізу ағыннан >> алу операциясымен орындалады. Бұл операция автоматты түрде кіру ағынындағы ажыратқыш символдарды ескермейді.>> операциясы false-ні қайтарады, егер ағында файл соңының белгісі кездессе. Ағыннан алу операциясы дұрыс емес типті деректерді енгізген кезде,failbit битті орнатуға операцияның сәтті емес аяқталуы кезінде badbit битін орнықтыруға әкеп соқтырады. Артынан деректерді енгізуге болады, яғни while тақырып циклының шартты операторында ағыннан алу операциясы қолдану арқылы. Ағыннан алу операциясы false- ні қайтарады,егер файл соңының белгісі кездессе. Форматты емес енгізу-шығару read және write функция-элементі көмегімен орындалады. Олардың әрқайсысы кейбір байт сандарын символды массивқа енгізеді немесе одан шығарады. Бұл байттар қандай да бір форматтауға ұшырамайды және жаңа байттар сияқты енгізіледі немесе шығарылады. Gcount функция-элементі соңғы read операциясымен оқылған символдардың саны туралы хабарлайды. Read функция-элементі символды массивқа көрсетілген символдар санын енгізеді. Егер символдардың аз саны оқылса , онда failbit биті орнатылады. Ұсынылатын әдебиет * Программирование на Visul C++/ С.В. Глушаков, А.В. Коваль А.В., С.А. Черепнин; Худож.-оформ.А.С. Юхтман.-М.:ООО <<Издательство АСТ>>; Харьков: <<Фолио>>, 2003.-726 с. * Глушаков С.В., Коваль А.В., Смирнов С.В. Язык программирования С++: Учебный курс/Худож.- оформитель А,С.Юхтман. - Харьков: Фолио; М.: ООО <<Издательство АСТ>>, 2001.-500 с. * Харви Дейтел, Пол Дейтел, Как программировать на С++: Третье издание. Пер. с англ.-М.: ЗАО <<Издательство БИНОМ>>, 2001 г. -1152 с.: ил. №8 Дәріс Тақырыбы: тақырып. С++ ортасында файлдармен жұмыс. Дәріс жоспары: + Файлдар мен ағындар. + Тізбекті кіру мүмкіндігінің файлы. + Кездейсоқ кіру файлдары Дәрістің қысқаша мазмұны С++ те әрбір файл байттардан тізбектелген ағыны ретінде қарастырылады. Әрбір файл немесе файл соңының маркерімен немесе қолданатын жүйедегі деректердің қызметтік құрылымына жазылған байттардың көрсетілген санымен аяқталады. Файл ашылғанда объект құрылады және ағын осы объектпен байланысады.Сонымен қатар автоматты түрде төрт объект құрылады- cin, cout, cerr және clog. Осы объектпен байланысқан ағындар программалар арасында байланыс каналдарын және жеке файлдармен немесе құрылғылармен қамтамасыз етеді. С++ тегі файлдарды өңдеу үшін және тақырыптық файлдары қосылуы керек. файлы istream (файлдарды енгзу үшін), ofstream(файлдарға шығару үшін) және fstream(файлдарды енгізу-шығару үшін) ағындарының кластарының анықтамасын қосады. Файлдар осы ағындар кластардың объекттерін құру жолымен ашылады. Бұо ағындардың кластары сәйкес istream, ostream,iostream кластарынан алынған туынды болып табылады.Енгізу-шығару ағындарына арналған функция-элементтер, операциялар және монипуляторлар, сонымен қатар файлдардың ағындарына қолданылуы мүмкін. Файлдармен жұмыс істеу функциясының сипаттамасы stdio.h кітапханасында орналасқан. MFC кітапханасына файлдармен жұмыс істеуді қамтамасыз ету үшін бірнеше кластар қосылған. Төменде қарастырылатын кластар файлдармен жұмыс істеуді қамтамасыз ету үшін арналған Cfile базалық класынан мұрагерленген. Файлға кіру мүмкіндігін алу үшін, алдымен CFile класының объектісін құру керек. Класс құраушысы осы объектті құрғаннан кейін файлды ашуға рұқсат береді. Бірақ файлды кешіректеу ашуға да болады, яғни Open әдісін қолдану арқылы. Open әдісінің прототипінің келесі түрлері бар: virtual BOOL Open(LPCTSTR lpszFileName, UINT nOpenFlags, CFileException* pError=NULL); Файлмен жұмыс істеуді аяқтағаннан кейін, оны жабу керек. CFile класы ол үшін close арнайы әдісін иеленген. Егер CFile класының объектісі құрылса және файл ашылса, содан кейін объект жойылса, онда онымен байланысты файл автоматты түрде деструктор көмегімен жабылады. Файлдарға кіру үшін CFile класының бірнеше әдістері арналған:CFile: Read, ReadHuge, Write, WriteHuge, Flush. Методы Read және ReadHuge әдістері алдын ала ашылған файлдағы деректерді оқу үшін арналған. 32-разрядтік операциондық жүйелерде екі әдіс те файлдан 65535-тен астам байтты бір уақытта оқи алады. Cfile класының әдісі файлдың жолын орнықтыруға мүмкіндік береді. Бұл әдіс құрмайды, көшірмейді,файлдық атын өзгертпейді, ол тек Cfile класының объектісінде деректердің сәйкес элементін толтырады. CMemFile классы МҒС кітапханасына Cfile базалық класын мұрагерленген CMemFile класы кіреді. CMemFile класы файлды, операти втік жадта орналасқан, CMemFile класының объектілерімен көрсетеді,яғни CFile кластарының объектілерімен сияқты. Айырмашылығыс сонда, CmemFile объектісімен байланысқан файл дискта емес, компьютердің оперативті жадында орналасқан. Осындай файлмен операция жылдам орындалады, қарапайым файлдарға қарағанда. CmemFile класының объектілерімен жұмыс істей келе, жоғарыда көрсетілген CFile класының барлық әдістерін қолдануға болады. Деректерді сондай файлға жазуға немесе оларды санауға болады. Осы әдістерден басқа CMemFile класының құрамына қосымша әдістер қосылған. CMemFile класының объектілерін құру үшін екі әртүрлі құраушы (конструктор) арналған. CMemFile бірінші конструктор тек бір аса қажетті емес nGrowBytes параметрін иеленген: CMemFile(UINT nGrowBytes=1024); Бұл құраушы оперативтік жадта бос файл автоматты түрде ашылады. Осындай файлға жазылу басталып жатқанда, автоматты түрде жадтың блогы белгіленеді. Жад алу үшін CmemFile класының әдістері malloc, realloc және free стандартты функцияларын шақырады.Егер берілген жад блогы жеткілікті емес болса, онда оның өлшемі ұлғаяды.Файлдың жад блогын ұлғайту бөлікпен CMemBytes байт бойынша жүргізіледі. CMemFile класының объектісін жойғаннан кейін қолданылған жад автоматты түрде жүйеге оралады. Cfile базалық класынан мұрагерленген CstdioFile класы буферленген енгізу- шығаруды мәтіндік және екілік режимде қолдануға мүмкіндік береді. CStdioFile класының объектілері үшін CFile класының барлық әдістерін шақыруға болады.Мәтіндік файлға жазу үшін және оқу үшін CStdioFile класы екі жаңа әдісті қосады: ReadString және WroteStreang. Бірінші әдіс файлдан символдар қатарын оқуға мүмкіндік береді, ал екінші әдіс- жазу. Ұсынылатын әдебиет * Программирование на Visul C++/ С.В. Глушаков, А.В. Коваль А.В., С.А. Черепнин; Худож.-оформ.А.С. Юхтман.-М.:ООО <<Издательство АСТ>>; Харьков: <<Фолио>>, 2003.-726 с. * Глушаков С.В., Коваль А.В., Смирнов С.В. Язык программирования С++: Учебный курс/Худож.- оформитель А,С.Юхтман. - Харьков: Фолио; М.: ООО <<Издательство АСТ>>, 2001.-500 с. * Харви Дейтел, Пол Дейтел, Как программировать на С++: Третье издание. Пер. с англ.-М.: ЗАО <<Издательство БИНОМ>>, 2001 г. -1152 с.: ил. №9 Дәріс Тақырыбы: Программалық жабдықтарға және оларды жобалаудағы бастапқы мәліметтерге қойылатын талаптарды анықтау Программалық жабдықтың ӛмірлік циклының негізгі кезеңдерінің бірі- есептің қойылуы кезеңі. Мұнда программалық жабдықтың орындайтын қызметі және программалық жабдыққа қойылатын талаптар анықталады. Бұл талаптар екіге бӛлінеді: - функционалдық талаптар, яғни бұл болашақта жасалатын программаның қандай жұмыстарды, функцияларды орындайтынын анықтайды; - эксплуатациялық талаптар, бұл болашақ программалық жабдық қандай жағдайларда жұмыс жасайтынын анықтайды. Программалық жабдықтарға қойылатын негізгі эксплуатациялық талаптарға тӛмендегілер жатады : - дұрыстығы, техникалық тапсырмаға сәйкес жұмыс жасауы ; - универсалдығы - кез-келген мүмкін жағдайларда дұрыс жұмыс жасауы ; - сенімділігі - түрлі қателерден кейін дұрыс жауаптарды қайтара алуы; - тексерілуі - нәтижелерді тексеру мүмкіндігі; - нәтиженің дәлдігі - нәтижелер ауытқуының берілген шамадан аспауы; - қорғалған болуы - ақпараттың құпиялылығын сақтай алуы; - программалармен үйлесімділігі - басқа программалармен үйлесімді жұмыс жасау мүмкіндігі; - аппаратпен үйлесімділігі - кейбір құрылғылармен үйлесімді жұмыс жасау мүмкіндігі ; - тиімділігі - техникалық ресурстарды аз және жылдам пайдалану мүмкіндігі ; - бейімділігі - түрлі жағдайларға байланысты жасалатын модификацияларға бейімділігі; - қайта пайдаланыылуы - қайта жүктемей-ақ іске қосыла беруі ; - реентерабелділігі - бірнеше процестерде параллель қолданыла беруі. Техникалық тапсырма- программалық жабдықты құру мақсаттары, оған қойылатын талаптар, жасау уақыты мен кезеңдері, тапсырыс берушіге ӛткізу мерзімі және т.б. кӛптеген мәліметтер қамтылған программалық жабдық туралы толық мәлімет беретін құжат. Техникалық тапсырманы жасауға тапсырыс беруші де және оны орындаушы да қатысуы керек. Ол келесі бӛлімдерді қамтиды: - кіріспе; - программалық жабдықтар жасаудың қажеттілігін негіздеу; - программалық жабдықтардың қызметі; - программалық жабдықтарға қойылатын талаптар; - программалық жабдықтардың құжаттарына қойылатын талаптар; - техникалық-экономикалық кӛрсеткіштер ; - құру кезеңдерімен стадиялары; - программалық жабдықты қабылдау және бақылау тәртібі. №10 Дәріс Тақырыбы: Құрылымдық ұстанымға негізделген программалық жабдықтардың ерекшеліктері Программалық жабдықтың ӛмірлік циклындағы маңызды кезеңнің бірі - бұл программалық жабдықтарға қойылатын талаптарға анализ жасау негізінде программалық жабдықтардың ерекшелігін немесе спецификациясын анықтау болып табылады. Спецификация (specify-дәл анықтау- точно определять, spesisication- детальдары- детали, specific- ерекше сипаттамалары- особый отличительный характер) - бұл жасалатын программалық жабдықтардың және оған қойылатын шектеулердің формалды түрдегі дәл сипаттамалары. Сонымен, программалық жабдықтардың спецификациясы, бұл программалық жабдық туралы дәл және толық сипаттама. Спецификация негізгі екі бӛлімнен тұрады: - функционалдық бӛлім, программалық жабдықтардың орындайтын функцияларын сипаттайды; - эксплуатациялық бӛлім, техникалық құрал-жабдықтарға, ақпараттық қауіпсіздікті сақтауға қойылатын талаптарды анықтайды. Спецификацияның толықтығы, мұнда болашақ жасалатын программалық жабдықтарға қатысты барлық нәрселер ескерілуі керек, яғни программалық жабдықтарды жасаушы үшін (разработчик) ешқандай кедергі, қосымша мәселе болмауы керек. Спецификацияның дәлдігі, бұл - спецификация тапсырыс (заказчик) беруші мен оны орындаушы (разработчик) тарапынан бірдей мағынада қабылдануы керек. Программалық жабдықтардың спецификацияларын кӛрсету үшін кәдімгі табиғи тілдер жарамайды. Сондықтан дәл спецификацияларды кӛрсету үшін арнайы формальды модельдер қолданылады. Спецификацияларды анықтау кезеңіндегі формальды модельдерді екі топқа бӛледі: ұстанымдарға (құрылымдық, объектілік) тәуелді және тәуелсіз. Классификациясы тӛменде 3.9- суретте берілген. Программалық жабдықтардың спецификациясы жан-жақты кӛрсету үшін әдетте бірнеше модельді қатар пайдаланады. 3.9- сурет. Спецификацияларды анықтау кезеңіндегі формальды модельдер классификациясы Құрылымдық ұстанымға негізделген программалық жабдықтарды құруда, талдауда және жобалауда негізінен келесі модельдер элементтері қолданылады: - мәліметтер ағынының диаграммасы (DFD - Data Flow Diagrams) бұл ақпарат кӛзі мен оны қабылдаушының арасындағы әрекетті жүйенің (программалық жабдықтардың) процесі түрінде сипаттайды; - <<мәнді байланыс>> диаграммасы (ERD - Entity - relationship diagrams) жүйенің (программалық жабдықтардың) деректер қорын сипаттайды; - күйлер ауысуының диаграммасы (STD - State Transition Diagrams) жүйенің уақытқа байланысты күйінің ӛзгеріп отыруын сипаттайды; - процестердің спецификациясы, оны кӛрсету үшін әдетте тексттер, псевдокодтар, Flow-формалар , Насси-Шнейдерман диаграммалары қолданылады; - терминдер сӛздігі - бұл спецификациялы беруде қолданылатын терминдер, қысқартылған сӛздерге берілетін түсініктемелер. Күйлер ауысуының диаграммасы (диаграмма переходов состоянии) - бұл ақырғы автоматтардың графиктік формасы болып табылады. Ақырғы автоматтар (конечные автоматы)- техникалық құрылғының дербес іс-әрекетін (детерминированное поведение) модельдеу үшін қолданылатын математикалық абстракциялық ұғым, автоматтар теориясында анықталған. Күйлер ауысуының диаграммасының қызметі басқару кезіндегі оның реакцияларын немесе поведениелерін (спецификацияны анықтау кезіндегі) кӛрсету болып табылады. Мұнда басқарушы сигнал немесе қолданушының командасы болуы мүмкін. Бұл команданы алғаннан кейін, жүйе оған жауап ретінде бір әрекет жасайды, яғни сол күйін сақтап қалады, не болмаса басқа күйге ауысады. Автоматтар теориясына сәйкес, мұнда диаграмма тұрғызу үшін, анықталады: бастапқы күй (терминальное состояние); әсер етуші басқарушы сигнал (немесе кӛшу шарты); орындалатын әрекет немесе бірнеше варианттар. Функционалдық диаграммалардың қызметі программалық жабдықтар құрамындағы функциялардың ӛзара байланысуын, иерархиясын кӛрсетеді. Функционалдық диаграммалардың функционалдық модельдер деп те атайды. Функционалдық моделдің кӛп тараған түрінің бірі SADT (Structured Analysis and Design Technigue - технология структурного анализа и проектирования). Оны 1973 жылы Д. Росс ұсынған. Функционалдық диаграммаларды тұрғызу келесі қағидаларға негізделген : - әрбір функция бір блок ретінде қарастырылады; - әрбір блок үшін бастапқы мәлімет, басқарушы команда, функцияны орындаушы механизм (программалық жабдық немесе техникалық құрылғы) және нәтиже анықталады. Функционалдық диаграммадағы мәлімет, басқарушы команда, функцияны орындаушы механизм және нәтиже барлығы сызықтар (дугалар) түрінде беріледі, мысалы Бұл сызықтар іс жүзінде мәліметтердің жиынтығы, нәтижелердің жиынтығы, немесе басқарушы командалар жиынтығы болып табылады (3.10- сурет), мысалы: 3.10- сурет. Қарапайым функционалдық диаграммны кескіндеу Блоктар диаграммада байланысу реті бойынша сатылы түрде орналасады. SADT диаграммаларда блоктар байланысуының келесі түрлері бар: - кіріс блоктың шығыс дугасы келесі орындалатын блоктың кіріс дугасы болады: - басқарушы блоктын шығыс дугасы келесі блоктын басқарушы дугасы болады: №11 Дәріс Тақырыбы: Объектілік ұстанымға негізделген программалық жабдықтардың ерекшеліктері және оларға қойылатын талаптар Объектіге бағдарланған программалау - бұл программалық жабдықты, қандай да болмасын кластың ӛкілі болып табылатын, объектілердің жиынтығы түрінде құратын программалау методологиясы. Объектіге бағдарланған жобалау - бұл құрылатын ақпараттық жүйенің (немесе программалық жабдықтың) барлық статикалық және динамикалық модельдерін объектілі декомпозициялау процесі мен модельдердің логикалық, физикалық тұрғыдан беру тәсілдері негізінде жобалау методологиясы. Объектіге бағдарланған талдау - бұл жобаланатын жүйеге қойылатын талаптар, пәдік облыстағы анықталған кластар мен объектілер тұрғысынан қарастырылатын методология. Объектіге бағдарланған ұстанымның концептуалдық негіздеріне объектіге бағдарланған ұстанымның моделі жатады. Объектілік модельдеудің негізгі элементтері: абстаркциялау, инкапсуляция, модульділік және иерархия. Қосымша элементтері: типтелу, паралеллизм және тұрақтылық. Абстракциялау - бұл қандай да болмасын объектіні, ӛзге объектілерден ажырататын белгілері, сипаттамалары және т.б. арқылы бӛліп алу, жалпы абстракциялау объектінің сыртқы ерекшеліктеріне негізделеді. Объектіге бағдарланған ұстанымда, берілген объектінің дұрыс абстракциялануы, жобалаудың негізгі міндеттерінің бірі болып саналады. Инкапсуляция - бұл объектінің, ӛзінің ішкі элементерінің, бір бірінен ажыратылу процесі. Бұл процесс кезінде объектінің ішкі құрылымдары мен оқиғалары бір- бірінен дұрыс ажыратылады. Инкапсуляция объектінің интерфейсін қорғау үшін қолданылады немесе объектілік ұстанымда класстың ресурстарын, тек оның ӛзінің ғана пайдалануын қолдайды. Абстракциялау мен инкапсуляция бірін бірі толықтырады. Модульділік - бұл программалық жабдықтың декомпозициялану кезінде ӛзара байланысқан, бірақ ӛте әлсіз байланысқан модульдерге бӛліну қасиеттері. Инкапсуляция мен модульділік қасиеттері абстракцияларды бір- бірінен ажыратады. Иерархия - бұл жүйедегі абстракцияланудың бір- біріне бағынышты түрде реттеліп орналасуын тағайындайды. Бұл күрделі жүйедегі класстардың құрылымы (иерархиясы). Мысалы, жай және кӛп қабылдаушылықты айтуға болады. Типтелу - бұл абстракцияға байланысты класстарды бір бірінен ажырату үшін қойылатын шектеулер. Паралеллизм - бұл объектінің актив және пассив түрде болуын кӛрсетеді. Тұрақтылық - бұл объектінің ӛмір сүру уақытын кӛрсетеді. Объектіге бағдарланған ұстанымның негізгі түсініктері: объект, класс. Объект класстың экземпляры тұрғысынан қарастырылады. Объектінің күйі, оқиғасы және жеке қасиеттері болады. Объектіге әсер етуді әдіс деп атайды. Класс қабылдаушылық пен инкапсуляция және полиморфизмді (абстракцияны) қанағаттандыратын құрылымдық жиынтық тип ретінде қабылданған.. Объектіге бағдарланған анализ бен жобалау әдістері модельдеу тілі мен модельдеу процестерінің сипаттамаларынан тұрады. Модельдеу тілі жобаның сипаттамасын беру үшін қолданылатын нотация. Нотация - бұл модельдерде қолданылатын графиктік объектілердің жиынтығы. Модельдеу тілінің синтаксисі де нотациямен анықталады. Процесс - бұл жобаны құру кезінде жасалатын қадамдардың сипаттамалары. UML (Unified Modeling Language) - бұл 1980-1990 ж. қолданылып келген, объектіге бағдарланған анализ бен жобалаудың орнына келген әдіс болып табылады. UML алу үшін бірнеше авторлардың әдістерін біріктіруге тура келді: Boosh - авторы Гради Буч; OMT (object modeling technique) - авторы Джеймс Рамбо; OOSE (object oriented SoftWare engineering) - авторы Ивар Якобсон. UML тілінің негізгі мақсаттары мен мүмкіндіктері: - қолданушыға түсінікті болатын визуальды модельді құру; - модельдегі базалық концепциялардың кеңейтуге бейім болуы; - программалау тілдеріне, құру процессіне тәуелсіз болуы; - модельдеу тілінің формальды негізде болуын қамтамасыз етеді; - объектілік бағдарланған жабдықтар нарығына стимуляция жасайды; - практикалық тәжірибелердің ең жақсысын біріктіру және тарату; UML-дың пайда болу және даму тарихына сәйкес келесі нұсқалары белгілі (3.11- сурет. Википедия бойынша 2011 жылғы мәлімет): Нұсқа Қабылданған уақыты 1.1 ноябрь 1997[1] 1.3 март 2000[2] 1.4 сентябрь 2001[3] 1.4.2. июль 2004[2] 1.5 март 2003[4] 2.0 июль 2005[5] 2.1 Заңды түрде қабылданбаған [2] 2.1.1 август 2007[6] 2.1.2 ноябрь 2007[7] 2.2 февраль 2009[8] 2.3 май 2010[9] 2.4 beta 2 март 2011 3.11 - сурет. UML-дың нұсқалары туралы деректер UML 1.4.2 нұсқасы халықаралық ISO/IEC 19501:2005 стандартының негізі болып саналады. UML - де қолданылатын негізгі диаграммаларды келесі топтарға бӛліп қарастырады (3.12- сурет. Википедия бойынша 2011 жылғы мәлімет): Құрылымдық диаграммалар Structure Diagrams: (Ағылшын тілінде) Структурные диаграммы: (Орыс тілінде) Кластар диаграммасы Class diagram Диаграмма классов Компоненттер диаграммасы Component diagram Диаграмма компонентов Композит/ құрама құрылымдар: Кооперация диаграммасы (UML2.0) немесе келісімді үйлестіруші диаграмма Composite structure diagram: Collaboration (UML2.0) Композитной/составной структуры: Диаграмма кооперации (UML2.0) или диаграмма сотрудничества Таратылған диаграмма Deployment diagram Диаграмма развѐртывания Объектілер диаграммасы Object diagram Диаграмма объектов Пакеттер диаграммасы Package diagram Диаграмма пакетов Профильдер диаграммасы (UML2.2) Profile diagram (UML2.2) Диаграмма профилей (UML2.2) Ӛзгеру диаграммалары Behavior Diagrams: Диаграммы поведения: Қызмет диаграммасы Activity diagram Диаграмма деятельности Күй ауысу диаграммасы State Machine diagram Диаграмма состояний Прецеденттер диаграммасы Use case diagram Диаграмма прецедентов (вар-тов) Ӛзара әрекеттесу диаграммасы: - Коммуникация диаграммасы (UML2.0) / кооперация диаграммасы (UML1.x) - Ӛзара әрекеттесуді шолу диаграммасы (UML2.0) - Реттілік диаграммасы - Синхронизация диаграммасы (UML2.0) Interaction Diagrams: - Communication diagram (UML2.0) / Collaboration (UML1.x) - Interaction overview diagram (UML2.0) - Sequence diagram - Timing diagram (UML2.0) Диаграммы взаимодействия: - Диаграмма коммуникации (UML2.0) / Диаграмма кооперации (UML1.x) - Диаграмма обзора взаимодействия (UML2.0) - Диаграмма последовательности - Диаграмма синхронизации (UML2.0) 3.12- сурет. UML - де қолданылатын негізгі диаграммалар Мысалы, UML 2.3 нұсқасында қолданылатын диаграммалар <<құрылымын>> UML- дегі <<класстар диаграммасын>> (class diagram) пайдаланып келесі түрде кӛрсетуге болады (3.13 - сурет). Варианттар диаграммасы - бұл ұғымды Ивар Якобсон енгізген. Бұл варианттар диаграммасы жүйенің қандайда болмасын сыртқы әрекетіне жауап беруі. Әдетте, варианттар диаграммасы жүйе мен қолданушы арасындағы қатынасты сипаттайды. Программалық жабдықты жобалауда варианттар диаграммасы қолданушының қандай функцияларды орындау керектігін анықтау үшін жасалады. Мұнда байланыстың екі түрі қолданылады: USES (қолдану), EXTENDS (кеңейту) CASE құралдар варианттар диаграммасында детализацияны әр түрлі деңгейде қолданады. Мысалы: Якобсон он адам бір жыл жасайтын жобалардағы варианттар саны 20-дан аспау керек деп есептейді. 3.13- сурет. Диаграммалар құрылымы Класстар диаграммасы - жүйедегі класстардың статикалық құрылымын модельдеу үшін және класстар арасындағы байланысты кӛрсету үшін жасалады. Класстар диаграммасы объектіге бағдарланған ұстанымдағы негізгі диаграмма болып табылады. Класстар диаграммасының қызметі: жүйедегі объектілердің типін анықтау және олардың арасындағы байланысты кӛрсету болып келеді. Байланыстың статикалық екі түрі қолданылады: ассосация және подтиптер (тума типтер). Бұлардан басқа класстар диаграммасының элементтеріне атрибуттар, операциялар және объектілер арасындағы шектеулер жатады. Класстар диаграммасын жобалаудан бұрын, ол диаграмманың қандай мақсатта қолданылатынын анықтап алу керек. Класстар диаграммасын жобалаушы үш түрлі мақсатта қолдануы мүмкін: - концептуалдық аспект - мұнда класстар даграммасы зерттелетін пәндік облыстағы негізі ұғымдарды анықтайды. Бұл ұғымдар болашақта құрылатын класстарға сәйкес болу керек, бірақ іс жүзінде ол барлық уақытта бірдей орындалмайды. Сондықтан концептуалдық модель болашақ ақпараттық жүйемен әлсіз байланыста болады және ол программалау тіліне тәуелсіз болады; - спецификациялық аспект - мұнда құрылатын диаграмма ақпараттық жүйенің (программалық жабдықтың) интерфейсі деңгейінде жасалады. Класстың ӛзінің ішкі құрылымы қарасытырылмайды; - жүзеге асыру аспектісі (реализация) - мұнда класстар диаграммасы ақпараттық жүйеге (программалық жабдыққа) қатысатын класстарды ішкі құрылымдарымен қоса анықтайды. Бұл аспекті программистер үшін негізгі диаграмма болып табылады. №12 Дәріс Тақырыбы: Қолданушының интерфейсін құру. Қолданушы интерфейстерінің түрлері және оларды құру кезеңдері Программалау технологиясында, қолданушының компьютердің программалық және аппараттық жабдықтарымен жұмыс жасау үшін пайдаланатын әдістері мен құралдарының жиынтығын <<қолданушының интерфейсі>> деп атау келісілген. Қазіргі заманауи ақпараттық жүйелердің жұмыс жасау мүмкіндіктері қолданушының интерфейстерімен тығыз байланысты. Мысалы, қандай да болмасын объектінің (компьютер, программалық жабдық немесе подпрограмма) интерфейсі ӛзгермейтіндей тұрақты болса, онда объектінің ӛзін ӛзгертуге кӛбірек мүмкіндік болар еді, яғни оның басқа объектілермен (мысалы, қолданушымен) қарым-қатынас қағидалары қарастырылмайды. Есептеу жүйелеріндегі интерфейстерді компьютерлік техникаға қатынас тұрғысынан келесі топтарға бӛледі (3.14- сурет): - аппараттық интерфейс; - программалық интерфейс; - қолданушының интерфейсі. Қолданушының интерфейсі барынша қолданушыға жақын болуы қажет, себебі қолданушының назары программада емес, керісінше ӛзінің жасап жатқан құжатында болуы керек. Мысалы, жиі қолданылатын командалардың бірі 2-3 деңгейлерде яғни басқа бір ішкі мәзірлерде орналасса , оны іздеуге қолданушының біраз уақыты кетіп отыратын болса, онда интерфейсті қолданушыға жақын немесе ыңғайлы деп айтуға келмейді. Программалық жабдық үшін интерфейстің маңызы ӛте зор. Программа қанша жерден жақсы бола берсін, егер онымен жұмыс жасау ыңғайсыз болса, онда оны қолданушы қабылдай алмайды. Қолданушы интерфейстерінің қазіргі кӛп тарағаны- графиктік интерфейс. Мысалы, Windows операциялық жүйесінің кӛп таралуының бір себебі, оның қолданушыға ыңғайлы графиктік интерфейсінің болуы деп айтылып жүр. Қолданушының графиктік интерфейсі (Graphical User Interface, GUI) 1970-ші жылдардың ортасында, Xerox Palo Alto Research Center-де (PARC), Smalltalk ортасында жұмыс істейтін Alto және Star машиналары үшін жасалған алғашқы жұмыстардан басталды. Кейде оны <<визуальды интерфейс>> немесе <<терезелі графикалық орта>> деп атайды. Қазіргі заманауи жүйелердің кӛпшілігінде, мысалы, Microsoft Windows, Mac OS, Solaris, GNU/Linux, NeXTSTEP, OS/2, BeOS, Android, iOS, Bada, MeeGo жүйелерінде қолданушының графиктік интерфейстері пайдаланылған. Қолданушының графиктік интерфейсі графиканы растрлық экран дисплейінде қолдануға мүмкіндік береді. Графика экранда элементтердің нақты орнын кӛрсетеді, ақпаратты берудің визуальды ортасы және кӛрнекі графика және форматталған мәтіндер барлығы бірігіп <<не кӛрсең соны аласың>> (WYSIWYG - What you see is what you get) мүмкіндігін береді. Қазіргі қолданушылар компьютерді үйрену және жаңа программаларды меңгеру үшін кӛп уақыт шығындамайды. Windows үшін жазылған программалық жабдықтардың кӛбінде дерлік бір типтес қолданушы интерфейстері пайдаланылатындықтан, олар қолданушы үшін бір мағынада қабылданады. Windows жүйесі осыған кӛмектеседі. Windows үшін жазылған программалық жабдықтардың қолданушыға арналған интерфейсінің негізгі элементтері: терезелер, мәзірлер, сұхбат терезелері, суретті батырмалар және т.б. болып табылады. Қолданушының интерфейсін құру кезеңдері программалық жабдықты құзу кезеңдерімен сәйкес келеді және есептің қойылуы, талаптар мен спецификацияларды анықтау, жобалау, жүзеге асыру, тестілеу мен жӛндеу секілді кезеңдерді қамтиды. №13 Дәріс Тақырыбы: Программалық жабдықтарды тестілеу. Программалық жабдықтардың сапасын тексерудің түрлері Программалық жабдықтың ӛмірлік циклының бір кезеңін програмалық жабдықты тестілеу процесі құрайды. Программалық жабдықтарды тестілеу ӛте кӛп уақытты қажет ететін күрделі де ұзақ процесс. Программалық жабдықты тестілеудің мақсаты бұл құрылған программаның бастапқы техникалық тапсырмаға сәйкес толық орындалуын тексеру және оны қолданысқа енгізгенге дейін мүмкін болатын қателерін табу болып есептеледі. Тестілеу процесі программалық жабдыққа қатысты жасалатын валидация және верификация процесстерінің құрамына кіреді. Халықаралық ISO 9000:2000 стандарты бойынша, валидация (validation)- программалық жабдықтың қолданушының немесе тапсырыс берушінің нақты талаптарын дәл және толық қанағаттандыратындығын объективті фактілер негізінде дәлелдеу үшін жүргізілетін процесс. Верификация (verification)- программалық жабдықтың сапасына қатысты ішкі ережелер мен стандарттарға спецификациялардың сақталған- сақталмағандығына тексеру үшін жасалады. Мысалы, программалық жабдықты орындауға жіберіп, белгілі бір мәндер үшін шыққан нәтиженің дұрыс-бұрыстығын тексеру валидация процесіне жатады, ал программаны орындауға жібермей-ақ, оның кодын рецензиялау, синтаксистік жазылуларын тексеру және т.б. верификациялау процесіне кіреді. Қазіргі уақытта программалық жабдықтардың сапасын тексеру үшін жүргізілетін тестілеу процесстерін классификациялау бірнеше категориялар бойынша жасалған. Программалық жабдықтың ӛзін тестілеу объектісі ретінде қарастыратын тестілеу процесстеріне келесілер жатады: - функционалдық тестілеу (functional testing); - ӛнімділікке тестілеу (performance testing); - жүктемелерге тестілеу (load testing); - стресс-тесілеу (stress testing); - тұрақтылыққа тестілеу (stability / endurance / soak testing); - юзабилити-тестілеу (usability testing); - қолданушының интерфейсін тестілеу (UI testing); - қауіпсіздікке тестілеу (security testing); - локализацияға тестілеу (localization testing); - үйлесімділікке тестілеу (compatibility testing). Тестілеу процесінің автоматтандырылу дәрежесіне байланысты келесі топтарға бӛлінеді: - қолмен тестілеу (manual testing); - автоматтандырылған тестілеу (automated testing) ; - жартылай автоматтандырылған тестілеу (semiautomated testing). Тестілеу процесінде қолданылатын теориялық әдіс- тәсілдерге немесе механизмдерге байланысты тӛмендегідей түрлері анықталған : - <<қара жәшік>> әдісі бойынша тестілеу (black box); - <<ақ жәшік>> әдісі бойынша тестілеу (white box); - <<сұры жәшік>> (grey box). Программалық жабдықтың құрамына кіретін компоненттерінің бір- біріне тәуелсіздігін немесе ӛзара байланыстарын тексеру мақсатында жүргізілетін тестілеу түрлері: - компоненттік (модульдік) тестілеу (component/unit testing); - интеграциялық тестілеу (integration testing); - жүйелік тестілеу (system/end-to-end testing). Программалық жабдықты уақытқа қатысты алғанда тестілеудің тӛмендегідей түрлері қолданылады: - альфа-тестілеу (alpha testing) - қабылдау кезіндегі тестілеу (smoke testing) - жаңа қызметтерге тестілеу (new feature testing) - регресстік тестілеу (regression testing) - тапсыру кезіндегі тестілеу (acceptance testing) - бета-тестілеу (beta testing) Программалық жабдықтардың сапасын кӛтеру мақсатында жыл ӛткен сайын тестілеу процестерінің қатары жаңа әдістермен, жабдықтармен толығып келе жатқанын байқауға болады. №14 Дәріс Тақырыбы: Программалық жабдықтарды жӛндеу. Қателердің классификациясы Программалық жабдықты құру кезіндегі маңызды кезеңдердің бірі - программаны жӛндеу кезеңі. Программаны жӛндеу (Debugging -отладка) кезінде, программадағы қателер табылып, бӛліп алынып жӛнделеді. Программаны жӛндеу үшін арнайы жӛндеуші- программалар (отладчиктер) қолданылады. Программалау жүйелерінде кіріктірілген жӛндеуші- программалар болады. Олар программистке программаны бақылап отыру мүмкіндігін береді, яғни қажет болған кезде тоқтату , қайта жүктеу, қадамдап орындау және т.б. сияқты әрекеттерді орындауды ұйымдастырады. Программист ӛзінің құрған қосымшасы орындалған кезде болуы мүмкін қателерді анықтап, ол қателер бола қалған жағдайда программаның қалай жұмыс жасауы керек екенін алдын-ала қамтамасыз етуі тиіс. Жалпы программалау кезінде жіберілетін қателерді келесі топтарға бӛледі: синтаксистік қателер, логикалық қателер және динамикалық қателер. Синтаксистік қателерге программа мәтінін теру кезінде операторлардың қате жазылуы, операторларды айыру белгілерінің қойылмауы, программа соңының кӛрсетілмеуі және т.б. жатады. Әдеттте синтаксистік қателерді анықтау компилятордың қызметіне жатады, яғни программа синтаксистік қатесі жӛнделмейінше компиляциядан ӛтпейді. Логикалық қателер, есеп алгоритмінің дұрыс құрылмауынан болады. Логикалық қатесі бар программалар түсініксіз жұмыс жасайды, мысалы, цикл алгоритмінде циклдан шығу шарты дұрыс құрылмаған болса, онда программа ешбір тоқтамастан қайталанып, нәтиже бермей жұмыс жасауы мүмкін, сол сияқты, есептеу алгоритмдерінде кӛбейтіндінің бастапқы мәнін нольге тең деп алғанда нәтижеде үнемі ноль шығуы мүмкін және т.б. . Мұндай қателерді программаны тестілеу, яғни әртүрлі мәндер үшін орындап кӛру арқылы табады. Динамикалық қателер бұл- программаның орындалуы кезінде пайда, болып оның орындалу тәртібінің бұзылуына немесе нәтижесіз тоқтап қалуына әкеліп соқтыратын қателер. Динамикалық қателерді немесе <<орындау уақыты кезіндегі қателер>> (<<ошибка времени выполнения>>, Runtime errors) деп те атайды. Динамикалық қателерге, мысалы, есептеу кезінде бӛлшек бӛлімінің нольге тең болуы, түбір астында теріс сан кездесіп қалуы, жады ресурстарының жетпей қалуы, программада кӛрсетілген маршрут бойынша файлдың табылмай қалуы, принтерде қағаздың бітіп қалуы және т.б. кӛптеген нәрселер жатады. Қосымшалардағы осындай динамикалық қателерге байланысты болатын жағдайларды <<ерекше жағдайлар>> деп атап, және олармен жұмыс жасау үшін программалау тілдерінде <<ерекше жағдайларды ӛңдеу>> түсінігі енгізілген. №15 Дәріс Тақырыбы: Программалық жабдықтарды құжаттау. Құжаттаудың ортақ жүйесі Программалық жабдықтарды құжаттау оның ӛмірлік циклындағы маңызды процесстердің бірі болып есептеледі. Программалық жабдықтың құжаттарына баспа түрінде немесе цифрлық түрде дайындалған программаны құрушыға арналған құжаттар, қолданушыға арналған нұсқаулықтар, анықтамалықтар, диалог түріндегі электрондық нұсқаулықтар және т.б. жатады. Қазіргі уақытта программалық жабдықтың құжаттарын қолданылу саласына қарай келесі топтарға бӛліп жүр: - архитектуралық - жобалаушы құжаттар, негізінен программаны құрушыларға арналған. Мысалы, архитектура - жобалаушы құжаттарда программисттер деректер құрылымының не себепті класстар түрінде анықталғанын, немесе паттерннің не үшін таңдалғанын, немесе оларды жетілдіру үшін не істеу керек екенін баяндай алады, мұндай мәселелер программалық жабдықтың техникалық құжатына да, қолданушының құжатына да кірмейді; - техникалық құжаттар программада қолданылған алгоритмдерді, қолданушының интерфейстерін, программаның кодын анықтайтын техникалық сипаттағы құжаттар болып табылады. Қазіргі уақытта программалық жабдықтың техникалық құжатын жасаудың автоматтандырылған жүйелері (мысалы, Doxygen, javadoc, NDoc сияқты құжаттандыру генераторлары) қолданылып жүр; - қолданушының құжаттары программалық жабдықты кәсіби қызметтерінде пайдаланатын қолданушыларға арналады. Бұл құжатта программалық жабдықты қалай пайдалану қолданушыға түсінікті түрде дәл және толық берілуі тиіс; - маркетингтік құжаттар программалық жабдықты нарықта насихаттау үшін жасалады. Мұнда кӛпшіліктің назарын аударатын реклама түріндегі материалдар, программалық жабдықтың артықшылықтары және т.б деректер қамтылады. Программалық жабдықтарды құжаттаудың ортақ жүйесін Қазақстан Республикасының деңгейінде және халықаралық деңгейде қабылданған стандарттар құрайды. Программалық жабдықтарды құжаттандыруға байланысты Қазақстан Республикасы деңгейінде СТ РК ИСО/МЭК 6592-2002 - <<Ақпараттық технологиялар. Компьютерлік қолданбалы жүйелерді құжаттандыру бойынша нұсқаулық>>, СТ РК ГОСТ Р ИСО/МЭК ТО 16326-2006 - <<Бағдарламалық инженерия. Жобаны басқару кезіндегі СТ РК 34.019 қолдануға нұсқаулық>>, СТ РК ГОСТ Р ИСО/МЭК 15910-2006 (ГОСТ Р ИСО/МЭК 15910-2002, IDT)- << Ақпараттық технологиялар. Бағдарламалық құралдарды қолданушыға құжат дайындау процессі>> және т.б. халықаралық деңгейдегі стандарттар қолданылып жүр. Тәжірибелік сабақтарды өткізуге қажет әдістемелік нұсқаулар №1 Тақырып: Visual C++ ортасында бір өлшемді массивтерді өңдеудегі типтік сандық есептерді прогаммалау 1. Жұмыстың орындалу тәртібі 1. Берілген варианттағы бастапқы деректер үшін программаның жоспарын жасау. 2. Visual C++ ортасында Win32ConsoleApplication типті бос жоба ашу және С++ программасында бастапқы текст үшін проектке атауланған файл қосу 3. Код редакторын ашу және программа кодын енгізу; 4. Орындай келе программа кодын түзету: компиляцияны және синтаксистік қателерді түзеу, атқарылған программаның компоновкасы мен қателіктерді түзеу және, атқарылған программаны орындау; 5. Программа жұмысының дұрыстығын дәлелдеу; 2. Бақылау сұрақтары 1. Программаның бастапқы текстін өңдеу кезінде VC++ ортасында транслятор программасы қандай функцияны орындайды? 2. Программаның бастапқы текстін өңдеу кезінде VC++ ортасында препроцессор программасы қандай функцияны орындайды? 3. Программаның бастапқы текстін өңдеу кезінде VC++ ортасында компоновщик программасы қандай функцияны орындайды? 4. Консольды режимдегі С++ те кез-келген программаны орындау қандай функциядан басталады? 5. Латын алфавитының әріптер тізбегін, ондық цифрды және цифрдан басталмайтын сызылған символдарды көрсететін С++ лексемасы қалай аталады? 6. С++ ортасында мүмкіндігі бар бүтін типті деректерді атаңдар? 7. Сиволды және затты типтегі константалардың айырмашылығы неде? 8. Қандай ESC - тізбектілігі дыбыс сигналының берілуін қамтамасыз етеді? 9. Программаны орындау процесінде константаның мәнін өзгертуге бола ма? 10. Қандай өзекті сөзбен деректердің логикалық тип идетифицияланады? 3. Ұсынылатын әдебиет 1. Глушаков С.В. , Коваль А.В., Черепнин С.А. Язык программирования С++, учебный курс: Харьков: <<Фолио Аст>>, 2001-500 с. 2. Программирование на Visul C++/ С.В. Глушаков, А.В. Коваль А.В., С.А Черепнин; Худож.-оформ.А.С. Юхтман.-М.:ООО <<Издательство АСТ>>; Харьков: <<Фолио>>, 2003.-726 с. 3. Баженова И.Ю. Visual C++ 6.0.(VISUAL STUDIO 98).Уроки программирования. - М.: Диалог-МИФИ, 2001. - 416 с. Бақылау тапсырмалары 1. Visual Studio C++6.0 қосымшасын дайындаудың интегралдық ортасы. Мәзір командалары. 2. Қосымшалардың типтері және олардың Windows-тағы құрылымы. 3.Негізгі және туынды типтер. Объекттер және олардың атрибуттары. 4. Операциялар. Операциялардың таңбалары. Операциялардың приоритеті. 5. Айнымалы мен массивтердің анықтамасы және сипаттамасы. 6. Өрнектер және типтердің түрленуі. №2 Тақырып: Visual C++ ортасында екі өлшемді массивтерді өңдеудегі типтік сандық есептерді программалау 1. Жұмыстың орындалу тәртібі 1. Орыс тіліндегі функционалды менюмен қойылған есептерді шешу үшін программа жобасын жасау. 2. Visual C++ ортасында Win32ConsoleApplication типті бос жоба ашу және С++ программасында бастапқы текст үшін проектке атауланған файл қосу 3. Код редакторын ашу, ойлап табу және программа кодын енгізу; 4. Орындай келе программа кодын түзету: компиляцияны және синтаксистік қателерді түзеу, атқарылған программаның компоновкасы мен қателіктерді түзеу және, атқарылған программаны орындау; 5. Программа жұмысының дұрыстығын дәлелдеу; 2. Бақылау сұрақтары 1. Деректердің мәнін сақтауға шақырылған программа объектісіне анықтама беріңдер? 2. Айнымалының бір типтен екінші типке түрленуін қамтамасыз ететін оператордың не қажеті бар? 3. <<Қосумен меншіктеу>> операциясының алгоритмдік мазмұнын айтындар? 4. <<Азайтумен меншіктеу>> операциясының алгоритмдік мазмұнын айтындар? 5. <<Көбейтумен меншіктеу>> операциясының алгоритмдік мазмұнын айтындар? 6. <<Разрядтік көбейту>> операциясының алгоритмдік мазмұнын айтындар? 7. Деректер типінің өлшемін есептеуді қандай функция шығарады? 8. for циклының алгоритмдік мазмұнын айтындар? 10. Екі өлшемді массив элементіне дұрыс қарайлауды жазыңдар? 3. Ұсынылатын әдебиет 1. Глушаков С.В. , Коваль А.В., Черепнин С.А. Язык программирования С++, учебный курс: Харьков: <<Фолио Аст>>, 2001-500 с. 2. Программирование на Visul C++/ С.В. Глушаков, А.В. Коваль А.В., С.А Черепнин; Худож.-оформ.А.С. Юхтман.-М.:ООО <<Издательство АСТ>>; Харьков: <<Фолио>>, 2003.-726 с. 3. Баженова И.Ю. Visual C++ 6.0.(VISUAL STUDIO 98).Уроки программирования. - М.: Диалог-МИФИ, 2001. - 416 с. Бақылау тапсырмалары 1. Visual Studio C++6.0 қосымшасын дайындаудың интегралдық ортасы. Мәзір командалары. 2. Қосымшалардың типтері және олардың Windows-тағы құрылымы. 3.Негізгі және туынды типтер. Объекттер және олардың атрибуттары. 4. Операциялар. Операциялардың таңбалары. Операциялардың приоритеті. 5. Айнымалы мен массивтердің анықтамасы және сипаттамасы. 6. Өрнектер және типтердің түрленуі. 7. Функциялар және көп өлшемді массивтер. №3 Тақырып: <<Стакан>> типті цилиндрлік детальдарды жобалау үшін диалогтік Windows- қосымшасын жасау 1. Жұмыстың орындалу тәртібі 1.Стакан типті цилиндрлік детальдарды жобалау есептерін шешу үшін Windows- қосымшасының жобасын жасау; 2. Win32ConsoleApplication консольды жоба ортасын қолдана отырып, стакан машинажабдықтау деталін үш беттен жобалау үшін класс жасау және түзету; 3. MFCAppWizard қосымшасының мастер ортасында жобаның нұсқасын логикалық типті интерфейспен құру; 4. Орындай келе, консольды және диалогтік жобаларда Стакан класының программа кодын түзету: компиляцияны және синтаксистік қателерді түзеу, атқарылған программаның компоновкасы мен қателіктерді түзеу және, атқарылған программаны орындау; 5. Программа жұмысының дұрыстығын дәлелдеу; 2. Бақылау сұрақтары 1. tanh(x) функциясының прототипі қай тақырыптық файлда анықталған? 2. Айнымалының өмір сүру уақыты түсінігін анықтау? 3. Қандай операция программаның кез-келген орнынан глобальды айнымалыға баруға мүмкіндік береді? 4. Функциялардың қайсысы файлдық ағыннан символды енгізуді орындайды? 5. Программадағы нақты функцияға қалай баруға болады? 6. Кластың қандай функция-мүшесі оның деректерін инициалдау үшін арналған? 7. Қандай функция-мүше класс объекттерін жадтан жою үшін арналған? 8. << Статистикалық мәтін>> басқару элементінің функционалдық тағайындалуы? 9. <<Редакциялау терезесі>> басқару элементінің функционалдық тағайындалуы? 10. Класс объектісінің іс-әрекеті облысында мүмкіндігі болуы үшін, класс мүшесі қандай кіру спецификаторын иеленуі керек? 3. Ұсынылатын әдебиет 1. Глушаков С.В. , Коваль А.В., Черепнин С.А. Язык программирования С++, учебный курс: Харьков: <<Фолио Аст>>, 2001-500 с. 2. Программирование на Visul C++/ С.В. Глушаков, А.В. Коваль А.В., С.А Черепнин; Худож.-оформ.А.С. Юхтман.-М.:ООО<<Издательство АСТ>>; Харьков:<<Фолио>>,2003.-726 с. 3. Баженова И.Ю. Visual C++ 6.0.(VISUAL STUDIO 98).Уроки программирования. - М.: Диалог-МИФИ,2001-416 с. Бақылау тапсырмалары 1. Visual Studio C++6.0 қосымшасын дайындаудың интегралдық ортасы. Мәзір командалары. 2. Программа мәтіндерін редакциялау 3. МҒС кластарының кітапханасы. МҒС көмегімен кластарды құрау. 4. MFC AppWizard(exe) көмегімен қосымшаны диалогтік интерфейспен құру. 5. Диалогтік терезеге басқару элементін орнату. 6. МҒС кітапханасының диалогтік терезелерінің кластары. 7. МҒС кітапханасының басқарудың терезелік элементтерінің кластары. №4 Тақырып: Графикалық ақпаратты шығару үшін бір терезелік Windows-қосымшасын жасау 1. Жұмыстың орындалу тәртібі 1. Visual C++ ортасында MFCAppWizard қосымшаның мастері көмегімен жоба нұсқауын жасау; 2. Редактор терезесін ашу және программа мәтінін енгізу; 3. Орындай келе программа кодын түзету: компиляцияны және синтаксистік қателерді түзеу, атқарылған программаның компоновкасы мен логикалық қателіктерді түзеу және, атқарылған программаны орындау; 4. Программа жұмысының дұрыстығын дәлелдеу; 2. Қорытынды сұрақтар 1. Документтің ішкі көрінісінің негізгі мүмкіндіктері қандай класпен орындалады? 2. Деректерді әр түрлі графикалық құрылғыларға шығару үшін қолданылатын базалық класты ата? 3. МҒС кітапханасының қандай класында растрлық бейнелермен жұмыс істеу инкапсулданған? 4. <<Құрылғының контекстісі>>объектісінің ағайындалуы? 5. Қандай да бір суретоперациясын орындау үшін, дұрыс іс-әрекеттер тізбегін айтындар? 6. Растрлік бейнелерді өңдеу әдісі қандай класта инкапсулданған? 7. Жабық облыстарды толтыру әдісі қандай класта инкапсулданған? 8. Сызықтарды суреттеу әдісі қандай класта инкапсулданған? 9. Жабық облысты өңдеу қандай класта инкапсулданған? 10. Шрифттарды өңдеу қандай класта инкапсулданған? 3. Ұсынылатын әдебиет 1. Глушаков С.В. , Коваль А.В., Черепнин С.А. Язык программирования С++, учебный курс: Харьков: <<Фолио Аст>>, 2001-500 с. 2. Программирование на Visul C++/ С.В. Глушаков, А.В. Коваль А.В., С.А Черепнин; Худож.-оформ.А.С. Юхтман.-М.:ООО<<Издательство АСТ>>; Харьков:<<Фолио>>,2003.-726 с. 3. Баженова И.Ю. Visual C++ 6.0.(VISUAL STUDIO 98).Уроки программирования. - М.: Диалог-МИФИ,2001-416 с. №5 Тақырыбы: <<Ақпараттандыру және объектілік-бағыталған программалау>> Сұрақтарға жазбаша түрде жауап беру және пәннің келесі тақырыптары бойынша есептер шығару: 1. <<Ақпараттандыру және объектілік-бағыталған программалау>> 1.1. Ақпараттандыру - бұл арнайы өлшемдердің кешені , қазіргі уақытпен салыстырғанда көрсетілген сенімділік, көзге көрсетерлік және өз уақытындағы .................. барлық түрде адамның мақсатына ұмтылуына қарай. 1.2. Жаңа программалық жүйелердің нағыз қасиеті ................ болып табылады, яғни ол .......... жаңа ақпараттық технологиялардың аппараттық платформасын, технологиялық және социалды-экономикалық процестер мен объекттерді ақпараттандыру үшін қолданылады, қатарға келтіреді. 1.3. Программалық инженерия өндірістік ................... құрудың индустриалды жолдарын шын әлемді модельдеудің эффекті әдістемелігін қолданумен қамтамасыз ететін әдістер жиынтығы мен құралдарды байланыстырады. 1.4. Адамдар, өсімдіктер, жануарлар, ұшақтар, автомобиьдер, ғимараттар, компьютерлер - бұның бәрі .................... 1.5. Объекттер ......................... бір-біріне жіберу арқылы байланысады. 1.6. Жаңа программалау- бұл көп арнайы құрылған және кітапханалық ........................... программалау. 1.7. Класс- бұл біріңғай ........................ жиынтығы. 1.8. Объекттің атрибуттары оның ..................... анықтайды. 1.9. Объекттің әдістері оның ................................ анықтайды. 1.10. Барлық зат есімдер, яғни кейбір пәндік облысты модельдеу тапсырмасының мазмұнды постановкасның мәтінінде көрсетілген, оның көп ........................... претенденттер болып табылады. 1.11. Етістіктер және етістіктік фразалар, яғни кейбір пәндік облысты модельдеу тапсырмасының мазмұнды постановкасында сәйкес зат есімдермен арақатынасады. №6 Тақырыбы: С++ тің лексикалық негіздері. Скалярлық типтер және өрнектер. 2. С++ тің лексикалық негіздері. Скалярлық типтер және өрнектер. 2.1. Типтің жаңа түсінігі берілген типтің айнымалыларын қабылдай алатын, және ................ теру кезінде оларға қолдануға болатын, көп ................... базаланады. 2.2. Intel платформасының ПК үшін деректердің базалық типін білдіретін, өзекті сөздердің тізімін жазып беріңдер. 2.3. Константа- барлық программаны орындау барысында ............................. емес деректерді сақтауға арналған жад облысы. 2.4. Ішкі көрінісі бойынша келесі сандар тізбегінен дұрыс ондық константаларды анықтандар: 1234 56.47 1е256 45,909 -2468976524. 2.5. Ішкі көрінісі бойынша келесі сандар тізбегінен дұрыс нақты константаларды анықтандар: 2345 678,543 0.98 .234 -.159 9е8 4е+3 0.345е-9 2.23е-5000. 2.6. Көрсетілген ESC-тізбегінің қайсысы дыбыстық сигналдың берілуін қамамасыз етеді: \t \n \f \a \b \r . 2.7 Арифметикалық айнымалылардың сипаттамасын белгілеңдер және олар үшін жадта жадтың қанша байты бөлінетінін анықтаңдар: float u,b,w; double n; char Letter; void MyFunction(); bool Flag; 2.8. Дұрыс басты мәнмен келесі айнымалыларды олардың сйкес типтерімен инициалдаңдар: float u,b,w; double n; char Letter; bool Flag; long int m,f; 2.9. Програманың айнымалы-объектісі, яғни жадтың бірнеше ұяшықтарын алатын және ......................... сақтау үшін арналған. 2.10. Айнымалының типін қалай түрлендіруге болады және не үшін. Айнымалы типінің нақты және нақты емес түрлендірілуіне мысал келтір. 2.11. float и типа double деректер типі жылжымалы үтірмен ондық бөлшектердің қандай нақты көрсетілуімен қамтамасыз етеді. №7 Тақырыбы: С++ тілінің операциялар және операторлары. 3. С++ тілінің операциялар және операторлары. 3.1. С++ операторларының келесі қай түрі y=ax3 +5 өрнегінің мәнін табады? a) y=a*x*x*x+5; b) y=a*x*x*(x+5); c) y=(a*x)*x*(x+5); d) y=(a*x)*x*x+5; e) y=a*(x*x*x)+5; f) y=a*x*(x*x+5); 3.2. Келесі операторлардың ішіндегі іс-әрекеттің орындалу ретін көрсетіңдер және олардың орындалуынан кейінгі х айнымалысының мәнін анықтаңдар. a) x = 7+3*6/2-1; b) x = 2%2+2*2-2/2; c) x = (3*9*(3+(9*3/(3)))); 3.3. Бастапқы айнымалылар мынадай мәндер алсын: i=1,j=2,k=3,m=2. Келесі операторлардың әрқайсысы нені шығарады? Әр жағдайда жақша керек пе? a) cout << (i==1)< =1 && j<4)< =i | | k==m)< =k)< m))< = 0) sum += z; 3.7. Келесі программаның әрбір үзіндісінен қатені табыңдар және оны қалай түзеу керек екенің түсіндіріңдер. a) x = l; while (x <= 10); x++; } b) for (у = .1; у != 1.0; у += .1) cout << у << endl; c) switch (n) { case 1: cout << "Сан тең 1" << endl; case 2: cout << "Сан тең 2" << endl; break; default: cout << "Сан тең емес не 1, не 2" << endl; break; } 3.8. Келесі программа экранға нені шығарады? #include main() { int y,x=1, tt=0; while (x<=10) { y=x*x; cout < main() { int count=1; while(count<=10) { cout << (count% 2 ? "****" : "++++++++") < > және <<Алгоритм>> түсініктерінің мазмұнды айырмашылығы * Алгоритмдердің құрылымы және құрылымдардың типтері * Есеп түсінігі және есептердің стандартты формулировкасы. * Ақпараттандыру және объектілік- бағытталған программалау * С++ тілінің лексикалық негіздері. * Скалярлық типтер және өрнектер. * С++ тілінің операциялары және операторлары * Статистикалық және динамикалық массивтер. Объектердің адрестері және көрсеткіштері. Жадтың ұйымдастырылуы. * Функциялар, көрсеткіштер, сілтемелер. Функцияның толып кетуі * Кластар және объектер. Кластардың құрылымы. Кластардың мұрагерлігі. * С++ тіліндегі енгізу-шығару ағыны * С++ ортасында файлдармен жұмыс * Visual C++ ортасында бір өлшемді массивтерді өңдеудің типтік сандық есептерін программалау * Visual C++ ортасында екі өлшемді массивтерді өңдеудің типтік сандық есептерін программалау * Стакан типті цилиндірлік детальдарды жобалау үшін диалогтік Windows- қосымшасын құру. * Графиктік SDI- қосымшаны * MFC кластарын қолданумен құру * Типтер және өрнектер. Бір өлшемді массивтер * Visual Studio C++6.0. қосымшасын құрудың интегралды ортасы * Қосымшалардың типтері олардың Windows-тағы құрылымы. * MFC (Microsoft Foundation Classes) кластарының кітапханасы. Кластардың иерархиясы. MFC көмегімен қосымшалардың жазылуы. * Қосымшалардың құрылымы және оның негізгі терезесін анықтайтын кластар. * Windows астындағы Басты меню қосымшасы және онымен жұмыс. Динаимкалық және жылжымалы меню. * Графикамен жұмыс. Сурет объектілерін орнату функциясы. Сурет режимдері. Бейне режимдерін орнықтыру. * Басқарудың негізгі элементтері. Түймеше. Редакциялау терезесі аралас тізім. Айналу сызығы. * Басқарудың негізгі элементтері. Түймеше. Редакциялау терезесі аралас тізім. Айналу сызығы * Басқарудың қосымша элементтері.Тақырып элементін құру. Ползунок. Спин-түймеше. * Стандарты диалогті терезелер.Файлдарды ашу және сақтау терезелері.Бет, басылым, түс таңдау параметрлерін орнықтыру. Іздеу және ауыстыру. * Басылым және мәтінмен жұмыс істеу функциялары. * Функциялар, көрсеткіштер, сілтемелер. Функцияны программалау тәжірибесі. * Кластар және объекттер. Графиктік қорытындыны программалау тәжірибесі. * МFC кластарының кітапханасы. MDI-интерфейсімен қосымшаны программалау.
Пәндер
- Іс жүргізу
- Автоматтандыру, Техника
- Алғашқы әскери дайындық
- Астрономия
- Ауыл шаруашылығы
- Банк ісі
- Бизнесті бағалау
- Биология
- Бухгалтерлік іс
- Валеология
- Ветеринария
- География
- Геология, Геофизика, Геодезия
- Дін
- Ет, сүт, шарап өнімдері
- Жалпы тарих
- Жер кадастрі, Жылжымайтын мүлік
- Журналистика
- Информатика
- Кеден ісі
- Маркетинг
- Математика, Геометрия
- Медицина
- Мемлекеттік басқару
- Менеджмент
- Мұнай, Газ
- Мұрағат ісі
- Мәдениеттану
- ОБЖ (Основы безопасности жизнедеятельности)
- Педагогика
- Полиграфия
- Психология
- Салық
- Саясаттану
- Сақтандыру
- Сертификаттау, стандарттау
- Социология, Демография
- Спорт
- Статистика
- Тілтану, Филология
- Тарихи тұлғалар
- Тау-кен ісі
- Транспорт
- Туризм
- Физика
- Философия
- Халықаралық қатынастар
- Химия
- Экология, Қоршаған ортаны қорғау
- Экономика
- Экономикалық география
- Электротехника
- Қазақстан тарихы
- Қаржы
- Құрылыс
- Құқық, Криминалистика
- Әдебиет
- Өнер, музыка
- Өнеркәсіп, Өндіріс
Қазақ тілінде жазылған рефераттар, курстық жұмыстар, дипломдық жұмыстар бойынша біздің қор #1 болып табылады.
Ақпарат
Қосымша
Email: info@stud.kz