- •"Алгоритмдеу және бағдарламалау негіздері" пәні бойынша
- •"Алгоритмдеу және бағдарламалау негіздері" пәні бойынша
- •1. Пәннің оқу бағдарламасы - syllabus
- •1.1. Оқытушы жөнінде мәліметтер:
- •1.2. Пән бойынша мәліметтер:
- •1.3. Осыған дейінгі пәндер тізімі: Информатика, Математикалық талдау, Алгебра және геометрия, Математикалық логика.
- •1.4. Шектес пәндер тізімі: Сандық әдістер, Бағдарламалау тілі, Компьютерде тәжірибе
- •1.5. Пән мақсаты:
- •1.6. Пән бойынша берілген тапсырмаларды орындау және тапсыру графигі
- •11. Рашбаев ж.М. Массивті реттеу алгоритмдерін программалау. Оқу және методикалық әдебиеттер жөніндегі Республикалық баспа кабинеті. Алматы-1991 ж.
- •1.8. Бағалау ақпараттары
- •1.9. Курс саясаты және процедурасы
- •2. Пән бойынша оқу-әдістемелік кешен материалдары
- •2.1. Курстың тақырыптық жоспары
- •2.2. Дәріс сабақтар
- •1 Дәріс тақырыбы: Алгоритмдер. Алгоритмдерді талдау. Алгоритмдер құру.
- •2 Дәріс тақырыбы: Программа құру тілі. Программа құрылымы. Енгізу және шығару командалары.
- •3 Дәріс тақырыбы: Есептің қойылымы. Математикалық моделін тұрғызу. Алгоритмін құру. Есепті компьютерде шешу. Проектіні тексеру.
- •4 Дәріс тақырыбы: Циклдік алгоритм. Цикл түрлері. Цикл құрылымы.
- •5 Дәріс тақырыбы: Берілгендердің символдық типі. Жолдық тип.
- •6 Дәріс тақырыбы: Берілгендердің фундаментальді типі. Массив, жазба және жиынның қойылымы.
- •7 Дәріс тақырыбы: Рекурсивті алгоритмдер.
- •Мұндай рекурренттік қатынас п- факториалды санының рекурсивтік есептеу алгоритмін шамалайды.
- •8 Дәріс тақырыбы: Қосалқы программа. Функция. Процедуралық тип.
- •9 Дәріс тақырыбы: Ақпараттық құрылым. Сызықты тізім.
- •10 Дәріс тақырыбы: Ақпараттық құрылымдар. Стектер, кезектер.
- •1 Сурет
- •2 Сурет
- •4 Сурет
- •5 Сурет
- •11 Дәріс тақырыбы: Тізбекті үлестіру. Байланысқан үлестіру.
- •12 Дәріс тақырыбы: Бірбағытталған және екібағытталған байланысқан тізімдер. Көрсеткіштер.
- •13 Дәріс тақырыбы: Ақпараттық құрылым. Ағаш. Ағаштардың қойылымы.
- •14 Дәріс тақырыбы: Көпбайланысқан құрылымдар. Жадыны динамикалық бөлу.
- •15 Дәріс тақырыбы: Ішкі сұрыптау алгоритмдері: таңдау, қосу. Тікелей таңдауға талдау.
- •16 Дәріс тақырыбы: Ішкі сұрыптау алгоритмдері: Екілік қосылымға талдау жасау.
- •17 Дәріс тақырыбы: Көпіршікті және шейкерлік сұрыптауды талдау.
- •18 Дәріс тақырыбы: Бөліп алу көмегімен сұрыптау.
- •19 Дәріс тақырыбы: Медиананы табу.
- •20 Дәріс тақырыбы: Сызықты іздеу.
- •21 Дәріс тақырыбы: Екілік іздеу.
- •22 Дәріс тақырыбы: Қатарда іздеу. Кнут - Моррис - Пратт алгоритмі.
- •23 Дәріс тақырыбы: Қатарда іздеу. Боуер-Мура алгоритмі.
- •24 Дәріс тақырыбы: Жолды өңдеу алгоритмі. Рабин алгоритмі.
- •25 Дәріс тақырыбы: Қайталанбалы алгоритм.
- •26 Дәріс тақырыбы: Қайталанбалы алгоритм. Аттың жүрісі туралы есеп.
- •27 Дәріс тақырыбы: Программалаудың кейбір фундаментальді әдістері. Программаны құрастырудың технологиясы және таралуы.
- •28 Дәріс тақырыбы: Есептеуді тиімдеу. Программаны жөндеу және тестілеу әдістемесі.
- •29 Дәріс тақырыбы:
- •30 Дәріс тақырыбы: Объектіге-бағытталған программалау.
- •2.3. Зертханалық сабақ жоспарлары
- •Алгоритм. Қасиеттері. Алгоритм қойылымы.
- •2.4. Оқытушы жетекшілігімен жүргізілетін студенттердің өзбетіндік жұмысы
- •Орындаушы тәжірибе аяқталғаннан кейін шығыс ақпаратын немесе екі хабардың бірін береді.
- •65387 Санында – 5 цифр !
- •Тақырыбы: Ағаш. Ағашты қалыптастыру. Қалыпты ағашты құру.
- •Ноталардың дыбысталу жиілігі
- •Студенттердің өзбетіндік жұмыс жоспары
- •Тақырыбы: Берілгендер. Берілгендер типі, тұрақты және айнымалы. Өрнектер.
- •Тақырыбы: Динамикалық ақпаратты құрылым. Ағаш.
- •Тақырыбы: Ішкі жолдарды іздеу. Текстке сөз енгізу.
- •Тақырыбы: Ішкі сұрыптау алгоритміне программа құру.
- •Тақырыбы: Сұрыптау алгоритмі
- •Тақырыбы: Массивті сұрыптау алгоритмінің таралымы
- •Тақырыбы: Файлдық тип. Тексттік файлдар.
- •Тақырыбы: Файлмен жұмыс
- •Тақырыбы: Кіру және шығу файлдарымен жұмыс.
- •Тақырыбы: Файлдарды сұрыптау және последовательностей
- •Тақырыбы: Кнут-Морис- Пратта алгоритмін қолдану
- •Тақырыбы: Поиск подстроки в строке
- •Тақырыбы: Манипулирование строками
- •Тақырыбы: Рекурсивті алгоритмдердің таралымы. Лабиринт есебі.
- •Тақырыбы: Рекурсивті алгоритмдер құрастыру.
- •2 Мысал:
- •Тақырыбы: Мәтіндік режимде экранды басқару. Crt модулін қою.
- •2 Мысал: Күн жүйесінің динамикалық моделі.
- •2.6. Курс бойынша жазба жұмыстарының тақырыптамалары
- •Курстық жұмыс және проектілер тақырыптамалары
- •Алгоритм дегеніміз -
- •B) Тізбектелген, циклдық, тармақталу
- •Мазмұны
- •"Алгоритмдеу және бағдарламалау негіздері" пәні бойынша
5 Дәріс тақырыбы: Берілгендердің символдық типі. Жолдық тип.
Мәліметтердің бірнеше типтері бар: стандартты, саналатын, шектелетін. Мұндай типтер қарапайым есептерді шешуде кездеседі. Дегенмен де, бір типті мәліметтерді тізбекке топтаудың қолайлы екені белгілі –массивтер, символ жолдары, әртүрлі типті мәліметтерді бір объектіге жазу түрінде біріктіруге болады.
Сондай-ақ ұзындығы айнымалы болып келген бір типті шамалар тізбегін мәліметтер файлы түрінде беруге болады және оларды сақтауға болады. Сөйтіп құрама типтер құрама оператор тәрізді, басқа типтерден құралады. Сондықтан, мұнда құрама типтің құрылымы немесе құрылу әдісі маңызды роль атқарады. Құрама типтер: массивтер, жиындар, жолдар, жазулар, файлдар.
Жолдар. Символдық ақпаратпен жұмыс істеу.
Символдық ақпараттарды пернетақтадан енгізу және дисплейге шығару жолын қарастырамыз. Пернетақта және дисплей енгізу және шығару стандартты құрылғылары болып табылады да, оларды пайдалану үшін сәйкес INPUT, OUTPUT қызметші сөздерін пайдаланады. Символыдқ берілгендерді өңдеу, сиволдық (белгілік, литерлік) типті беретін CHAR қызметші сөзі қолданылады. CHAR типті айнымалының мән, сол машинада пайдалана алатын кез келген жеке символдар, белгілер бола алады. Егер программада мынадай бейнелеу болса: А,В: CHAR; онда меншіктеу операторын: А:=’k’, B:=A, B:=’5’, A:=’*’ және т.с.с. түрінде жазуға болады. Мұндағы ’’ (апостроф) символдық мән екенін білдіреді. Символдық мән дисплейден немесе принтер арқылы алынған қағаздан көрінгенде ’’ белгісі алынып қалады да, тек символдың өзі көрініп тұрады. Символдық берілгендер үшін =, (< >), >, <, >=, <= қатынас белгілері пайдаланылады, себебі барлық символра, белгілер, цифрлар реттеліп орналасқан. Тізімде қай символ бұрын орналасса, келесі символға қарағанда оның коды кіші деп есептеледі. Әріптер алфавит бойынша орналасады. Кіші латын әріптері бірінен соң бірі алфавит бойынша бір топ құра орналасады, мысалы: ...a, b,…z,…, ал араб цифрлары өсу бойынша: ...0,1,2,...9,... орналасады. Олай болса: ‘a’<’c’, ‘y’>’x’, ‘2’>’1’, ‘x’<>’z’, IF C=’c’ сияқты белгілерді жазуға болады. Әріптерді орналасауы бойынша параметрлі қайталану операторының көмегімен мына программа арқылы экранға шығаруға болады:
Program AR;
Var C:char;
Begin
For C:=’a’ to ‘z’ do
Write (c);
End.
Нәтижесінде дисплейден a, b,…zкөрінеді. Ал алфавитті кері ретепн алу қажет болса, онда төмендегіше жазамыз:
For C:=’z’ downto ‘a’ do
Символдық берілгендерді енгізудің төмендегідей ерекшеліктері бар:
1. Бос символ (пробел) Паскаль тілінде символ орнына жүретіндіктен, символдық айнымалылардың мәндері бос орынсыз жазылады, ол енгізу операторы Read көмегімен енгізіледі.
2. Бір айнымалыға бір ғана символ меншіктеледі.
3. Символдық айнымалылардың басқа ерекшелігі Enter, басылса да оны бос орын символы ретінде қабылдады.
4. Символдық айнымалыларды енгізгенде SHIFT, CAPS, РУС, ЛАТ – пернелерін басқанда оларды жеке символ ретінде қабылдайды да, мән орнына олардың кодтары қабылданады.
5. Символдық және сандық мәндерді енгізгенде, көбінесе EOLN стандартты функциясын пайдалану қолайлы болады. Бұл функцияның мәні жолдың соңы немесе мәндер беріліп болды дегенде білдіреді. Бұл функция көбінесе операторлық циклдерде жиі пайдаланылады.
6. WHILE NOT EOLN DO операторының алдына міндетті түрде READLN операторы тұруы қажет.
Мәтін деп жолдар тізбегін айтады. Паскаль тілінде жол символдар тізбегінен құралады. Әдетте мәтіндерді өңдегенде тек литерлік шамаларды пайдалану тиімсіз келеді, себебі көп есептерде символдарды өңдеу емес, жолдарды өңдеу қажет болады. Паскаль тілінде программада жолдық тұрақтыларды пайдалануға болатыны жоғарыда көрсетілді. Жолдық тұрақты деп енетін символдардың саны 256 артпайтын апостроф ішіне алынған символдар тізбегін айтады. Егер жолдың ішінде апострофты пайдалану қажет болса, оны екі апострофпен алмастырады. Мысалы: ‘Бізге керегі ”өзі” емес пе?’, ’көбейту’ және т.с.с. Жолдық тұрақтыларда бос орын символ ретінде қабылданады. Басқа тілдер тәрізді Паскаль тілінде де жолдық айнымалылар пайдаланылады. Жолдық айнымалылардың типін көрсету үшін тік жақша ішінде жолдың максимальды ұзындығы көрсетілген String қызметші сөзі пайдаланылады. Жолдық айнымалының типі программаның тип бөлігінен кейін қарастырылады немес тікелей айнымалы бөлігінде бейнеленеді. Айнымалы бөлігінде бейнеленуі:
Var
<айнымалы аты>: string [жолдың мах.ұзын.]
Var
Tex: string [29];
At: string [40];
Atay: string [275];
Мұндағы Atay-дағы жол ұзындығы дұрыс көрсетілмеген, себебі 275>255, сондықтан мұнда компьютердің қате деп хабар береді. ЭЕМ-ң жадысынан жолдың алатын көлемін байт өлшемі арқылы алуға болады, ол үшін жолдың максимум ұзындығына 1 қосу жеткілікті. Мысалы алдағы мысалда At-ң өлшемі 41 байт. Қосымша байт жолдың алдында орналасады да, онда жолдың ағымдағы ұзындығы сақталады. Сонымен, жолдың жадыға орналасу схемасын былай крсетуге болады:
У-те жолдың ағымдағы ұзындығы А сақталады;
У+1-де жолдың 1 символы,
У+2-де жолдың 2 символы,
..............................................
У+А-да ағымдағы жолдың соңғы символы,
У+А+1-бос ұяшық
..............................................
У+М-жолға берілген ұяшық.
Мұндағы У-жады ұяшығын, А-ағымдағы жолдың ұзындығын, М-жол үшін алынған максимум ұзындықты белгілейді.
Жолдық өрнектер алгоритмдік тілдегі арифметикалық өрнектерге сәйкес келеді. Жолдық өрнек деп амал белгілері, жолдық тұрақтылар, айнымалылар және функция атауларынан құралған, ұзындығы 256 символдан артпайтын тізбекті айтады.
Жолға төмендегі амалдар пайдаланылады.
1. Жалғастыру амалы, яғни «+» белгісімен белгіленеді. Мысалы, жолдық өрнек ’инфор’+’матика’ нәтижесі информатика.
2. Салыстыру амалдары, яғни =, (< >), >, <, >=, <= белгілері. Мысалы, өрнек ’инфор’ =’инфор’, нәтиже true, ’инфор1’ >’инфор2’ нәтиже False, ’ВВВ’ >’ВВ’ нәтиже False.
3. Меншіктеу амалы, яғни «:=» белгісі. Бірақ мұнда егер меншіктелетін мән ұзындығы типте көрсетілген ұзындықтан артық болса, онда артық символ алынып тасталады. Мысалы, Бейнелеу А: string [5]; өрнек А:=’информатика’, нәтиже ’инфор’
Жолдың символдарын олардың орналасу орындары (индексі) бойыншатабуға болады. Индекстің типі бүтін болады, ол айнымалы атауынан соң тік жақшаның ішіне алынып жазылады. Мысалы, S=’Программа’, S[2]=’р’, S[6]=’а’ береді.
Паскаль тілінде төмендегі стандартты функциялар пайдаланылады:
1. СНR(I)-I санына (кодына) сәйкес символды береді. Мысалы, СНR(1) =’!’, СНR(250) =’з’.
2. ORD(S) – S символының кодын береді. Мысалы, ORD(!)=1, ORD(з)=250.
3. СОРУ (S, N,M) – S жолының N-1 орындағы символынан бастап M символды бөліп алады. S жолдық айнымалы, N, M – бүтін сан. Егер жолдың ұзындығынан артық болса, онда нәтиже бос орын болады.
4. CONCAT (S1,S2,Sn) – жолдарды реті бойынша жалғастырады. Мысалы, CONCAT (‘a’,’b’,’c’)=’abc’
5. LENGTH (S) – S жолдық айнымалысының мәніндегі символдар санын береді, Мысалы, LENGTH (‘ABCD’)=4, LENGTH (‘a_f_M_D’)=7.
POS (S1,S2) – S1 кіші жолы S2 жолының бөлігі болатынын немесе болмайтынын анықтайды. Бұл функциядан шыққан нәтиже бүтін сан болады да, S1-мәні S2-мәніне сәйкес келетін орынды көрсететін санға тең болады. Егер нәтиже нөлге тең болса, онда S1 жолы S1 жолының бөлігі бола алмайды. Мысалы, POS (‘ab’, ‘abcd’)=1, POS (‘ab’, ‘array’)=0.
UPCASE (CH) – латын кіші әріптерін оған сәйкес үлкен әріпке аударады. Мысалы, UPCASE(‘a’)= ‘А’.
Жолдық процедуралар:
DELETE (S,M,N) – S-тің мәнінің M-ші орнынан бастап, N символды алып тастап нәтижені S-ке жазады.
INSERT (S1,S2,N) – S2-ң N позициясынан бастап S1 жолын S2 жолының арасына орналастырады да, нәтижені S2 жазады.
STR (I,S) – І санын жолға айналдырады да S-айнымалысына орналастырады.
VAL (S,I,cod) – сандық S жолын бүтін немесе нақты санға аударады да нәтижені І-ге жазады, cod=0 қате, оның мәні І-ші қате кеткен орынды көрсететін санға тең.
