- •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)
6.5 Типтердің үйлесімділігі
Кейде, мысалы, өрнектерде және салыстыру операцияларында типтердің үйлесімділігі қажет. Сонымен қатар типтердің үйлесімділігі меншіктеу бойынша үйлестіру үшін маңызды предпосылка болып табылады.
Типтердің үйлесімділігі орын алады, егер келесі шарттардың кемінде біреу орындалса:
- типтердің екеуі де бірдей болса;
- типтердің екеуі де нақты типтер болса;
- типтердің екеуі де бүтінсанды болса;
- бір тип екіншінің ішкі диапазоны болатын болса;
- типтердің екеуі де бірдей бір базалық типтің ішкі диапазоны болатын болса;
- типтердің екеуі де базалық типтері үйлесімді болатын жиындық типтер болса;
- типтердің екеуі де компоненттер саны бірдей болатын қапталған жолдық типтер болса;
- бір тип жолдық, ал екінші тип жолдық немесе қапталған жолдық немесе символдық тип болса;
- бір тип нұсқағыш (Pointer), ал екінші көрсерткіштердің кез келген типі болатын болса;
Т1 типтің мәні Т2 типпен меншіктеу бойынша үйлесімді болып табылады (яғни, Т1:=Т2 рұқсат етілген), егер келесі шарттардың біреуі орындалатын болса:
- Т1 және Т2 барабар типтерге ие болатын болса, және олардың біреуі де файлдық тип немесе өзінің деңгейлерінің біреуінде файлдық типтегі компонентті қамтығын құрылымды тип болмаса;
- Т1 және Т2 үйлесімді реттік типтер болып табылса, және Т2 типтің мәндері Т1-дің мүмкін болатын мәндер аралығына түсетін болса;
- Т1 және Т2 нақты типтер болып табылса, және Т2 типтің мәндері Т1-дің мүмкін болатын мәндер аралығына түсетін болса;
- Т1 нақты тип, ал Т2 бүтінсанды тип болып табылса;
- Т1 және Т2 жолдық типтер болса;
- Т1 жолдық тип, ал Т2 символдық тип болып табылса;
- Т1 жолдық тип, ал Т2 қапталған жолдық тип болатын болса;
- Т1 және Т2 үйлесімді қапталған жолдық типтер болатын болса;
- Т1 және Т2 үйлесімді жиындық типтер болып, және Т2 тип мәнінің брлық мүшелері Т1-дің мүмкін болатын мәндер аралығына түсетін болса;
- Т1 және Т2 үйлесімді "нұсқағыш" типтер болып табылса;
Егер меншіктеу бойынша үйлесімділік қажет болып алдыңғы тізімдегі бір де бір шарты орындалмаса компиляциялау кезеңіндн қате туралы хабарлама беріледі.
Динамикалық массивтер (Delphi, C). Динамикалық деп программаның орындалу барысында өлшемі өзгерілуі мүмкін болатын массивті атайды. Динамикалық массивтің өлшемін өзгерту үшін сондай массивтерді сүйемелдейтін программалау тілі құрамына кірістірілген функция немесе операторды ұсынуы тиіс. Динамикалық массивтер деректермен икемділеу жұмыс жасауға мүмкіндік береді, себебі деректердің сақталатын көлемдерін болжамдамауға, ал нақтылы қажет болатын көлемдеріне сәйкес массив өлшемін реттеуге мүмкіндік береді. Динамикалық емес кәдімгі массивтерді статикалық деп те атайды.
Паскальдағы статикалық массив мысалы:
wordArray : array [Word] of Integer; // Статикалық, өлшемі = High(Word) + 1
multiArray : array [Byte, 1..5] of Char; // Статикалық массив, 2 өлшемді
rangeArray : array [5..20] of String; // Статикалық массив, өлшемі= 16
Бір типті айнымалы-массивтерді бір біріне меншіктеуге болады, бұл кезде бір массивтің мазмұны екінші массивке көшіріледі: a1:=a2;
Массив типінің параметрін мәні бойынша жіберу барысында массив мазмұны – нақтылы параметр массивке - формальды параметрге көшіріледі:
procedure p(arr: array [1..10] of integer);
...
p(a1);
Әдетте, бұл жағдайда массивтің мазмұнын көшіру қажет емес, сондықтан массивті сілтеме бойынша жіберген дұрыс:
procedure r(var arr: array [1..10] of integer);
...
r(a1);
Массивтің элементтеріне индекстері бар айнымалылар арқылы сілтейді:
a1[3]:=a2[5];
b['f',w3]:='Hello';
c[3][4]:=3.14;
Массивтермен жұмыс жасағанда ең жиі кездесетін қате – индекстің өзгеру шекарасынан шығып кету (ол динамикалық массивтерде орын алмайды). Pascal ABC –те мұндай қатенің пайда болуы программа жұмысының аяқталуына әкеледі.
Жазба типі элементтердің немесе өрістердің берілген бір мөлшер санын қамтиды, ол элементтерінің типтері әртүрлі болуы мүмкін. Жазба типінің сипаттамасы әр өріс типін және өріс идентификаторын қамтиды.
Жазба типінің фиксацияланған бөлігі әр өріс үшін идентификаторы мен типімен бірге өрістердің фиксацияланған тізімін қамтиды. Әр өріс әрдайым бірдей бір тәсіл арқылы ізделінетін ақпаратты қамтиды. Жазба типіне мысал:
record
year: integer;
month: 1..12;
day: 1..31;
end
Әр вариант кемінде бір тұрақты арқылы идентификатталған. Барлық тұрақтылар бір бірінен өгеше болуы және қасиет орісінің типіне үйлесімді болатын реттік типке ие болуы тиіс. Варианттық және фиксацияланған өрістерге қол жеткізу бірдей. Варианттық бөлімде міндеті емес идентификаторды - өріс қасиетінің идентификаторын көрсетуге болады. Өріс қасиетінің идентификаторы бар кезде ол жазбаның қосымша фиксирленген өрісінің – қасиет өрісінің идентификаторы болып қалады. Программа қасиет өрісінің мәнін қазіргі кезде қандай вариант белсенді болып тұрғанын көрсету үшін қолдануы мүмкін. Қасиет өрісі көрсетілмесе программа вариантты басқа критерий бойынша таңдайды.
Жазба типтерінің мысалы:
Record firstName,lastName : string[40]; birthDate : Date; case citizen: boolean of True: (birthPlace: string[40]); False : (country : string[20]; entryPort : string[20]; entryDate : Date; exitDate : Date); end |
record x,y : real; case kind : Figure of rectangle : (height,wigth: real); triangle : (size1,side2,angle: real); circle : (radius: real); end
|