- •"Алгоритмдеу және бағдарламалау негіздері" пәні бойынша
- •"Алгоритмдеу және бағдарламалау негіздері" пәні бойынша
- •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) Тізбектелген, циклдық, тармақталу
- •Мазмұны
- •"Алгоритмдеу және бағдарламалау негіздері" пәні бойынша
Тақырыбы: Ішкі сұрыптау алгоритміне программа құру.
Тапсырмалар:
1. a1 a2 . . . ап тұтас немесе нақты сандардың кемуі бойынша реттелген массиві берілген делік және b кейбір саны берілген (сәйкесінше тұтас немес нақты), бұл үшін a1, .... ап, сандары арасында b санын осы орынға қойғаннан кейін реттілік бұзылмайтындай орын табу қажет. Егер массивтің кейбір элементтері өзара теңдік нәтижесінде b санын түрлі орындарға қою мүмкін болса, онда массивтің басына жақын орынды анықтау талап етіледі.
2. а1,…,an, b1, …, bm.(a1 а2 . . . аn) нақты сандары берілген. ki—а1,…,an (I=1, . . , m) арасында bi орнын іздеу есебінің шешімі болатын k1, ...,km натурал сандар алу.
3. Ақшалай лотерея ұтысының кестесі ұтқан нөмірлердің массивімен а1,…,an және рубльмен ұтқан массивпен р1 , . . ., рп (рi—ai (i= 1, ...,n) нөміріне түскен ұтыс) берілген. b1, ..., bm нөмірлі билеттерге түскен қосынды ұтысты анықтау. Тең бөлу алгоритмін қолдану.
4. Пусть место некоторого числа b кейбір санының орны среди упорядоченных по неубыванию ai, ..., ап кемімеуі бойынша реттелгендер арасында кемімеуі бойынша реттілікті бұзбай осы санды қою мүмкін болатын тізбектің басынан барынша қашықтатылған орын ретінде таңдалады. выбирается как наиболее удаленное от начала последовательности место, на которое можно вставить это число, не нарушая этим упорядоченности по неубыванию.
әдебиет:
1. Негізгі –5, 6, 8, 9, 10
2. Қосымша - 2
Әдістемелік нұсқау:
Задача №1называется задачей поиска места элемента. Для b имеется, n + 1 возможность: b a1, a1<b a2, ..., an-1<b an, ап<b и решением задачи поиска места элемента b будет соответственно одно из чисел 1, . . ., п+ 1. Для решения задачи полезен алгоритм, который называется алгоритмом деления пополам: взять первоначально 1 и n+ 1 в качестве границ поиска места элемента; далее, до тех пор, пока границы не совпадут, шаг за шагом сдвигать эти границы следующим образом: сравнить b с as, где s— целая часть среднего арифметического границ; если as < b, то заменить прежнюю нижнюю границу на s+ 1, а верхнюю оставить без изменения, иначе оставить без изменения нижнюю границу, а верхнюю заменить на s; когда границы совпадут, став равными некоторому числу t, вынолнение вышеописанного алгоритма закончится с результатом t. (Число сравнений, требуемых этим алгоритмом, не превосходит [log2(n+1)]+1.)
К задаче №2 применить алгоритм деления пооплам.
При решении Тапсырмалар №4 внести изменение в описание алгоритма деления пополам и соответственно дать новое решение Тапсырмалар №1 сформулированного выше.
№25-26 жұмыс
Тақырыбы: Сұрыптау алгоритмі
Тапсырмалар:
Алгоритм фон Неймана упорядочения массива а1, ..., ап по неубыванию (алгоритм сортировки слияниями) основан на многократных слияниях уже упорядоченных групп элементов массива. Вначале весь массив рассматривается как совокупность упорядоченных групп по одному элементу в каждом. Слиянием соседних групп получаем упорядоченные группы, каждая из которых содержит два элемента (кроме, может быть, последней группы, которой не нашлось парной). Далее, упорядоченные группы укрупняются тем же способом и т. д.
Написать программу, реализующую алгоритм фон Неймана.
Пусть дан массив a1, ..., ап. Требуется переставить ai, ..., ап так, чтобы вначале в массиве шла группа элементов, больших того элемента, который в исходном массиве располагался на первом месте, затем—сам этот элемент, потом—группа элементов, меньших или равных ему. Число сравнений и перемещений, каждое в отдельности, не должно превышать п—1
На преобразовании массива, описанном в задаче 2, основывается также следующий алгоритм поиска значения k-го по величине элемента массива a1, ..., ап (т. е. того элемента, который бы занял место с номером k после упорядочения массива). Пусть в результате преобразования, описанного в задаче 2, первый элемент занял р-е место; если k = p, то поиск закончен; если k < р, то надо перейти к поиску k-ro по величине элемента в начальной группе элементов, содержащей р—1 элемент (задача упростилась, так как р— 1 < n); если же k > р, то надо перейти к поиску (k—p)- го по величине элемента во второй группе элементов (задача упростилась, так как п—р< < п). Написать программу, реализующую этот алгоритм.
Пусть слова, которые можно выделить в массиве символов a1, ..., ап, требуется переставить в лексикографическом порядке. Так как разные слова могут иметь разную длину, то без больших затруднений можно менять местами только слова, стоящие рядом. Написать программу, предполагая, что длина слова не превосходит пятнадцати.
әдебиет:
1. Негізгі –5, 6, 8, 9, 10
2. Қосымша - 2
Әдістемелік нұсқау:
В задании №1 приходится оперировать не только с массивом а1, ..., ап, но и с вспомогательным массивом b1, ..., bn (первоначальные значения его элементов не играют роли).
Рис.1.
Рис. 1 демонстрирует два последовательных этапа укрупнения: массивы а1 ..., ап и b1, ..., bn представлены в виде отрезков, которые разбиты на части, изображающие упорядоченные группы. Число упорядоченных групп убывает, следовательно, настанет такой момент, когда в массиве а1, ..., ап или b1, ..., bn будет содержаться только одна упорядоченная группа. А это означает, что массив упорядочен. Для слияния двух упорядоченных групп, содержащих соответственно р и q элементов, достаточно произвести не более p + q сравнений. Следовательно, для одного этапа укрупнения достаточно произвести не более п сравнений. Столько же требуется на одном этапе и перемещений. Можно показать, что алгоритм фон Неймана требует в целом приблизительно п log2 п сравнений и столько же перемещений. Из рассмотренных до сих пор алгоритмов только алгоритм сортировки бинарными вставками требовал столь небольшого числа сравнений. Однако алгоритм фон Неймана выгодно отличается от последнего алгоритма тем, что требует меньше перемещений элементов а1,...,ап (хотя и требует дополнительного массива bi, ..., bn).
В задании №3 алгоритм не содержит рекурсий.
Задача №4 не является, конечно, задачей сортировки массива, но тем не менее алгоритм сортировки обменами оказывается здесь полезным. Алгоритм сортировки обменами и предписывает только такие обмены.
№27-28 жұмыс
