- •1 Модуль. Алгоритмдеу және программалауға кіріспе
- •1 Тақырып. Кіріспе
- •1 Лекция
- •1.1 „Автоматтандыру есептерін программалау" курсының мақсаттары мен міндеттері.
- •1.2 Есептеуіш техника құралдарын пайдаланып ақпаратты өндеу және басқару жүйелерін әзірлеу. Компьютерлік жүйелердің ақпаратты өндеу және басқару әдістері мен міндеттері
- •2 Тақырып.Дербес компьютерді (дк) программалауды автоматтандырудың программалық құралдары
- •2 Лекция
- •2.1 Дербес компьютердің программалық қамтамасыз етілуі туралы
- •2.2 Программалауды автоматтандыру әдістері. Алгоритмдік тілдер және оларға қойылатын талаптар.
- •2.3 Процедуралы–бағытталған тілдер және объектке–бағытталған программалау туралы түсінік.
- •3.1 Программаларды құру құралдары
- •3.2 Программалаудың біртұтас жүйелері.
- •3.3 Техникалық есептер
- •3 Тақырып. Есептерді алгоритмдеу негіздері.
- •4 Лекция
- •4.1 Алгоритм анықтамасы. Алгоритмдерді бейнелеу тәсілдері.
- •4.2 Алгоритмдердің блок-схемаларын безендіру ережелері.
- •4.3 Алгоритм құрылымдарының түрлері.
- •4 Тақырып Негізгі процедураға бағытталған алгоритмдеу тілінде программалау
- •5 Лекция
- •5.1 Оқылатын алгоритмдеу тілінің негізгі түсініктері
- •5.3 Тілдің негізгі объектілерін жазу ережелері
- •5.4 Деректердің типтері
- •5.5 Деректердің стандартты типтері
- •6 Лекция
- •6.2 Өрнектер. Арифметикалық және логикалық өрнектер
- •7 Лекция Құрылымды деректер (типтер)
- •7.1 Массивтер
- •7.2 Жиындар
- •7.3 Жазбалар
- •Модуль 2 Алгоритмдік тілдерде программалаудың арнайы мәселелері
- •5 Тақырып Программадағы басқару құрылымдар
- •8.1 Алгоритмдік тілдің операторлары.
- •8.3 Басқару операторлары. Құрама және бос операторлар
- •8.4 Деректерді енгізу-шығаруды ұйымдастыру
- •8.5 Программаның құрылымы. Алгоритмнің схемасынан программаға өту
- •9 Лекция
- •9.1 Сызықты құрылымды алгоритмдерді программалау
- •9.2 Тармақталған құрылымды алгоритмдерді программалау
- •9.3 Таңдау операторы (case)
- •10 Лекция
- •10.1 Циклдік құрылымды алгоритмдерді программалау. Кейінгі шартты цикл операторы (repeat)
- •10.2 Алдынғы шартты цикл операторлары (while)
- •10.3 Параметрлі цикл операторлары (for)
- •10.4 Ішкі циклдерді құрастыру (массивтерді өндеу, массив компоненттерін реттеу есептерінің мысалдары негізінде)
- •11 Лекция
- •11.1 Жолдық деректер
- •Var s: string;
- •Var s1: string[40];
- •11.2 Символдық және жазбалар түріндегі деректерді өндеу есептерін программалау
- •12 Лекция
- •12.1 Пайдаланушының ішкі программалары (процедуралар) классификациясы. Ішкі программаларды рәсімдеу тәсілдері және оларды программа құрамында пайдалану.
- •13 Лекция
- •13.1 Сыртқы сақтауыш құрылғыларын (файлдық шамаларды) және динамикалық жадыны пайдалану арқылы программалау
- •14 Лекция
- •14.1 Тілдің графикалық мүмкіндіктерін пайдалану
- •Initgraph(var gd:integer, var gm:integer, pt:string);
- •15 Лекция
- •15.1 Объектке-бағдарлы программалау (обп) негіздері
- •15.2 Объекттер және олардың негізгі қағидалары
- •15.3 Объекттерді құру және оларды пайдалану
- •15.4 Өткен материалға шолу
- •15.5 Алған білімдердің студенттің алдағы оқу барысында және болашақ инженерлік тіршілігіндегі тәжірибелік мағынасы. Программалау тілдері мен технологиялардың даму перспективалары.
- •Өрнектер – тұрақтылар. Паскаль өрнектер-тұрақтыларды пайдалануға мүмкіндік береді. Ол өрнекті программаны орындау қажеттіліксіз компилятор орындайды. Өрнектер-тұрақтылардың мысалдары:
- •Түсініктемелер (комментарий)
- •6 Лекция
- •6.1 Блоктар, локальділік және амал жасау облысы
- •6.5 Типтердің үйлесімділігі
- •7.1 Ординалды типтер
- •7.2 Құрама құрылымдар
- •10.4 Жалғау операторы (with)
15 Лекция
15.1 Объектке-бағдарлы программалау (обп) негіздері
Негізгі қағидалар. ОБП программалаудың басты технологиялардың бірі болып табылады да жақсы құрылымдалған, сенімді және оңай модификацияланатын программаларды құруға мүмкіндік береді. Бұл тәсілдің артықшылықтарын объектке-бағытталған программалау тілдерінде пайдаланған оңай. Қазіргі программалау тілдерінің көбісі ОБП-ні сүйемелдейді, олардың қатарына C++, Java, Delphi жатады. ОБП-ні Турбо Паскаль да сүйемелдейді.
ОБП-ні пайдалану арқылы программаларды жетілдіру жобаланатын жүйенің объектілі моделін жетілдіруден басталады, ол үшін проблеманы объекттерге жіктеу (декомпозициядау) және олардың арасындағы тәуелділіктерді анықтау орындалады.
Объекттің сипаттамасы оның атрибуттар жиынтығы болып табылады. Тұрақты және айнымалы атрибуттарды ажыратады. Тұрақты атрибуттар объектті оның классы ішінде сипаттайды (мысалы, көп бұрыштың төбелер саны). Айнымалы атрибуттардың ағымдағы мәндері объекттің қалып-күйін сипаттайды – бұл атрибуттарды өзгерту арқылы біз объекттің қалып-күйлерін өзгертеміз (мысалы, көп бұрыштың төбелеріндегі бұрыштардың мәндерін). Кейде атрибуттардың типі және сонымен қатар, айнымалы атрибуттардың бастапқы мәні көрсетіледі. Бұл атрибуттардың бастапқы мәндер жиынтығы объекттің бастапқы қалып-күйін береді.
Үшбұрыштарға байланысты мысалда атрибуттар ретінде қабырғалардың ұзындықтары болуы мүмкін. Объекттерді классқа біріктіруге мүмкіндік беретін белгілер атрибуттуардан бұрын есептің мағынасы жағынан тиянақты бөлігі арқылы анықталады. Мысалы, тік бұрыштар және тікбұрышты үшбұрыштар атрибуттардың бірдей жиынтығы – екі межелес қабырғаларының ұзындықтары арқылы сипатталуы мүмкін. Бұл кезде олар түрлі геометриялық қасиеттерге ие болатын түрлі математикалық объекттер болып табылады.
Объекттерді класстарға біріктіру мәселені жалпылау қойылымында қарастыруға мүмкіндік береді. Класс атауға ие, ол атау осы класстың барлық объекттеріне қатысты. Сонымен қатар, класста объекттер үшін анықталған атрибуттардың атаулары ендіріледі. Класс сипатталуы «жазба» типті сипаттауға ұқсас екіндігі көрініп тұр, бұл кезде әр объекттің мағынасы сәйкес типті айнымалы немесе тұрақтының мағынасымен бірдей.
ОБП-дың келесі негізгі ұғымы - операция. Операция деп оны берілген класстың объектілеріне қолдануға болатын функцияны атайды (мысалы, үшбұрыштарды геометриялы түрде түрлендіру). Бірлей бір операцияны түрлі класстардың объектілеріне қолдануға болады – ондай операция полиморфты деп аталады. Мысалы, «вектор» және «кешенді сан» класстарының объектілері үшін «көбейту» операциясын анықтауға болады. Бұл полиморфты операцияның мысалы, себебі векторларды (скалярлы) өбейту және кешенді сандарды көбейту - әртүрлі математикалық операциялар болып табылады.
Әдіс деп берілген класстың объектілері үшін операциялардың жүзеге асырылуын атайды. Сонымен, операция – ол әдістің спецификациясы (сипатталуы), ал әдіс – операцияның жүзеге асырылуы. Логикалық тұрғыда әдістер бірдей бір операцияны орындай алады, бырақ, жүзеге кодтың әртүрлі фрагменттері арқылы асырылады. Кез келген операция өзі соған қолданылатын бір айқын емес аргумент – объектке ие, бырақ ол басқа да аргументтерге оны параметрлейтін параметрлерге ие болуы мүмкін. Әдіс тек класспен және объектпен ғана байланысқа, Объекттің кейбір атрибуттарының мәндеріне тек сол объекттің операциялары ғана қол жеткізе алады. Ондай атрибуттар жабық деп аталады. Ұқсама түрде объектте жабық (қосымша) рперацияларды да анықтауға болады.
Сонымен, классты беру үшін сол класстың аталуын көрсетіп, одан кейін оның атрибуттары мен операцияларын (немесе әдістерін) көрсету керек.
Жалпылау және мұрагерлік объекттердің түрлі класстары арасындағы ұқсастықтарды айқындауға және объекттердің көпдеңгейлі классификациясын анықтауға мүмкіндік береді. Мысал ретінде тағы да геометриялық фигуралар жиынтығын келтіруге болады. Жалпылау «бірөлшемді фигуралар» класын айқындап, «түзу» және «доға» класстарды «бірөлшемді фигуралар» класының ішкі класстары деп, ал «бірөлшемді фигуралар» класын - «түзу» және «доға» класстардың суперкласы деп санауға мүмкіндік береді. Егер бұл жағдайда суперкласстың атрибуттары мен операциялары оның әр ішкі класстарында жарамды деп келісім қабылдасақ (атрибуттар мен операцияларды ішкі класстар мұраланды деп айтады), онда «түзу» және «доға» класстардың бірдей атрибуттары мен операцияларын «бірөлшемді фигуралар» (суперкласс) класына шығаркға болады. Әр суперкласстың атрибуттары мен операцияларын оның барлық деңгейлеріндегі ішкі класстар мұра етіп алады, бұл класстарды сипаттау үрдісін едәуір жеңілдетеді және қысқартады.
Кейде оның суперкласстарының біреуінде анықталған операцияны ішкі класста қайта анықтау қажет болады. Ол үшін мұрагерлену нәтижесінде суперкласстан алынуы мүмкін болатын операция ішкі класста да анықталады. Ішкі класста мұрагерленген емес оның ішінде қайта анықталған операция пайдаланылады. Қайта анықтауды егер жаңа операция мұрагерленген операцияны кеңейтетін болса пайдалануға болады.
Сонымен, ОБП ақпаратты жасыру және деректер абстрактілі типтері тұжырымдамаларға негізделген. Мұндай тәсіл деректер, модульдер және жүйелер сияқты барлық ресурстарды объекттер ретінде қарастырады. Әр объект сол деректерге амалдарды қолдануға арналған процедуралар (әдістер) жиынтығымен қапталған деректердің кейбір құрылымын (немесе деректер типін) қамтиды. Осы методологияны пайдалана отырып, программалаушы өзінің жеке абстрактілі типін құрып, проблемалық облысты өзі құрған осы абстракцияларға бейнелей алады. Бұл бағытта программалаушы жүйеде пайдаланылатын ақпараттық объекттердің бөлшектері туралы ойланбай жүйенің жобасына көңіл бөледі. Осы методологияда көзделген программаны жетілдірудің негізгі қадамдары:
проблеманы анықтау;
болашақ программаға қойылатын талаптарды қанағаттандыратын қадамдардың жалпы тізбектілігі болып табылатын формальсыз стратегияны жетілдіру;
стратегияны формализациялау;
объекттер мен олардың атрибуттарын идентификаттау;
операцияларды идентификаттау;
интерфейстерді орнату;
операцияларды жүзеге асыру.