У нас: 141825 рефератів
Щойно додані Реферати Тор 100
Скористайтеся пошуком, наприклад Реферат        Грубий пошук Точний пошук
Вхід в абонемент


Міністерство освіти і науки України

РЕФЕРАТ

на тему:

«Поняття компонента в програмуванні»

Зміст

1. Мови та системи програмування

2. Технологія програмування та проектування програмного забезпечення (ПЗ)

3. Пошук за ключем у масиві

4. Сортування вибором

5. Сортування простими вставками

6. Список використаної літеатури.

Мови та системи програмування

1. Процедурні та проблемно-орієнтовані мови: особливості організації і напрямки розвитку. Основні концепції і можливості мов , , , , , , , .

2. ( і ) та . Етапи трансляції: лексичний, синтаксичний, семантичний аналіз, оптимізація, генерація об'єктного коду, збирання.

3. , що створюється транслятором: статична, автоматична, базована та динамічна пам'ять. Методи гешування.

4. Організація передачі параметрів між програмовими модулями. , за найменуванням, за результатом. Проблеми комплексування різномовних модулів.

5. Мови, що орієнтовані на паралельну та розподілену обробку. Особливості реалізації.

6. Генератори систем програмування. Макрогенератори та розширювані системи програмування, .

7. : багатомовні системи, параметричні системи та метатранслятори.

8. Діалогові системи програмування: призначення та архітектура. Форми організації діалогу. Способи мовного спілкування: відеоформи, меню, електронні таблиці, використання функціональних клавіш і т. п.. Діалог на природній мові.

Технологія програмування та проектування програмного забезпечення (ПЗ)

1. Основні стадії та етапи проектування програм та документування. Технічне завдання. Ескізний, технічний, робочий проекти. Впровадження та супроводження, моделі життєвого циклу ПЗ.

2. . Понятійні засоби специфікації. Денотаційна, операційна та аксіоматична семантики. Класифікація мов специфікацій.

3. Якість програмового забезпечення. Методи налагодження та тестування програм, .

4. Організація роботи колективів програмістів. Бригада головного програміста. Планування виробництва ПЗ. Проектування послідовних та паралельних програм.

5. Поняття рекурсії. Рекурсивні означення та рекурсивні програми. Властивості рекурсивних алгоритмів. Функціональні і рекурсивні структури даних.

6. . Теорема про структурування програм. Багатоосновні алгебри структур даних. Теоретико-множинні структури даних.

7. Схеми програм над пам'яттю. . Повторне використання ПЗ. Модифікованість алгоритмів та програм.

8. . Мови: , .

9. . Концепції та приклади. Мова .

10. . Приклади систем програмування "за правилами". Мова .

1. Пошук за ключем у масиві

1.1. Лінійний пошук Читачеві колись доводилося шукати своє прізвище в списках, надрукованих не в алфавітному порядку? Або уявіть собі словник на 100 тисяч слів, розташованих там без упорядкування за алфавітом. Потрібне слово шукати там доведеться довго. Дуже довго. Звичайно, якщо воно випадково не потрапило в самісінький початок. А якщо в кінець чи середину? А пошук слова в “нормальному” словнику займає чомусь кілька секунд незалежно від його розташування там. У цьому параграфі ми наведемо два алгоритми. Перший описує пошук “підряд” у невпорядкованій послідовності, другий – той пошук, до якого ми звикли, шукаючи слова в словниках. Замість слів розглянемо цілі значення елементів масиву. Тип значень може бути й іншим – головне, щоб їх можна було порівнювати. Нехай елементи масиву A[1], A[2], … , A[n] та змінна key (”ключ”) мають той самий тип T.

Пошук за ключем полягає в пошуку номера i такого, що A[i]= key. За відсутності такого номера результатом будемо вважати 0. Нехай діють означення const maxn = 1000; type T = integer; Indx = 1 maxn; (17.1) ArT = array [Indx] of T; Подамо розв’язання задачі функцією function srcseq ( var A : ArT; n : Indx; key : T) : integer; var i : integer; begin i := 0; while ( i A[2], то поміняємо їхні значення місцями. Потім порівняємо A[2] і A[3] та за необхідності обміняємо їхні значення. В результаті A[3] має найбільше значення серед A[1], A[2], A[3]. Продовжимо такі порівняння та обміни до кінця масиву: для всіх i від 1 до n-1 виконати якщо A[i]>A[i+1], то значення A[i] та A[i+1] обмінюються. Якщо значення елементів розглядати як розміри бульбашок, то ці порівняння та обміни схожі на те, як більші бульбашки відтісняють менших униз і спливають нагору. Тому цей метод називається бульбашковимсортуванням. У результаті найбільша бульбашка стає верхньою, тобто останній елемент A[n] має найбільше значення. Наприклад, послідовність значень перетвориться на . Далі почнемо все спочатку і перемістимо друге за величиною значення до передостаннього елемента A[n-1], перетворивши, наприклад, на . Потім третє за величиною значення перемістимо до A[n-2] тощо. Останній крок складається лише з порівняння A[1] A[i+1] then swap (A[i], A[i+1]) end Тут і далі процедура swap задає обмін значень своїх параметрів. Як бачимо, разом виконується (n-1)+(n-2)+…+1= nЧ (n-1)/2 порівнянь. Очевидно, що найбільше можливе число елементарних дій за цим способом прямо пропорційне кількості порівнянь. Тому час сортування масиву з n елементів у такий спосіб прямо пропорційний nЧ (n-1).

Задача 1. Якщо при черговому виконанні циклу із заголовком for i:=1 to k-1 do процедури Bubbles1 не було жодного обміну, то масив уже відсортовано. Тому подальші проходи масивом зайві. Переробити процедуру сортування так, щоб її виконання закінчувалося за відсортованого масиву

3.Сортування вибором здійснюється так. Проглянемо елементи масиву від першого до останнього, визначимо елемент із найменшим значенням, та обміняємо це значення з першим. Потім так само виберемо найменше значення серед A[2] .A[n] і обміняємо його зі значенням A[2], потім виберемо наступне найменше та обміняємо з A[3] тощо. Написати процедуру сортування вибором.

4. Сортування простими вставками дозволяє створити відсортований масив із значень, що читаються, наприклад, із клавіатури. Перше значення записується на перше місце, тобто присвоюється першому елементу масиву. Друге значення порівнюється з першим і, якщо перше менше, то воно “витісняється” на друге місце. Інакше нове значення йде на друге місце. Потім третє порівнюється


Сторінки: 1 2