WWW.REFERATCENTRAL.ORG.UA - Я ТУТ НАВЧАЮСЬ

... відкритий, безкоштовний архів рефератів, курсових, дипломних робіт

ГоловнаІнформатика, Компютерні науки → Обробка масивів - Курсова робота

Обробка масивів - Курсова робота

Завдання. Скласти на одній з алгоритмічних мов програму, що запускається і видає на екран меню з двох пунктів (табуляція, вихід).
На вибір першої опції меню згенерувати два однакових масиви Х и Y цілих чисел у діапазоні від -20 до 32 (кількість елементів - 2000). Масив X відсортувати методом вибору, Y - методом пухирця, визначивши витрачений час на кожний з методів. Зробити висновки.
На вибір другої опції меню опції чи меню натисканні користувачем на клавішу ESC здійснити вихід із програми.
Зміст
" Вступ………………………………………………………………….3
" Загальний опис роботи з файлами…………………………3
" Компоновка………………………………………………….5
" Інструкція користувачу……………………………………………...9
" Лістинг програми……………………………………………………10
" Висновки…………………………………………………………….18
Вступ
Ітераціия властива людині, рекурсія божественна. - Л. Пітер Дойч
Всі нетривіальні програми складаються з декількох роздільно компільованих одиниць (їх прийнято називати просто файлами). Розглянемо, як роздільно відкомпільовані функції можуть бути в обігу одна до одної, як такі функції можуть спільно користуватися даними (розділяти дані), і якомога забезпечити погодженість типів, що використовуються в різних файлах програми. Сюди входять передача параметрів, параметри за замовчуванням, перевантаження імен функцій, та опис і визначення функцій.
Мати всю програму в одному файлі зазвичай неможливо, оскільки коди стандартних бібліотек і операційної системи знаходяться десь в іншому місці. Крім того, зберігати весь текст користувачевої програми в одному файлі як правило непрактично і незручно. Спосіб організації програми в файли може допомогти читачу охопити всю структуру програми, а також дати можливість компілятору реалізувати цю структуру. Оскільки одиницею компіляції є файл, то в усіх випадках, коли в файл вноситься модифікація (яка б мала вона на була), весь файл потрібно компілювать ще раз. Навіть для програми помірних розмірів час, що витрачається на перекомпіляцію, можна значно зменшити з допомогою розбиття програми на файли підходящих розмірів.
Звичайна СІ-програма являє собою визначення функції main, що для виконання необхідних дій викликає інші функції. Зв'язок між функціями здійснюється по даним шляхом передачі параметрів і повернення значень функцій. Але компілятор мови СІ дозволяє також розбити програму на декілька окремих частин (вихідних файлів), відкорегувати кожну частину окремо, і після цього об'єднати всі частини в одину, що виконується файлом за допомогою редактора зв'язків. При такій структурі вихідної програми функції,що знаходяться в різних вихідних файлах можуть використовувати глобальні зовнішні змінні.
Всі функції в мові СІ по визначенню зовнішні і завжди доступні з будь-яких файлів. Наприклад, якщо програма складається з двох вихідних файлів, як показано нижче., то функція main може викликати будь-яку з трьох функцій fun1, fun2, fun3, а кожна з цих функцій може викликати будь-яку іншу.
main ()
{ ...
}
fun1 ()
{ ...
} fun2 ()
{...
}
fun3 ()
{...
}
file1.c
file2. c
Приклад програми з двох файлів
Для того, щоб функція, що визначається могла виконувати будь-які дії, вона повинна використовувати змінні. В мові СІ всі змінні повинні бути оголошені до їхнього використання. Оголошення встановлюють відповідність імені та атрибутів змінної, функції або типу. Визначення змінної викликає виділення пам'яті для зберігання її значення. Клас пам'яті, що виділяється визначається специфікатором класу пам'яті, і визначає час життя і область видимості змінної, зв'язані з поняттям блоку програми. В мові СІ блоком вважається послідовність оголошень, визначень і операторів, укладена в фігурні дужки. Існують два види блоків - складений оператор і визначення функції, що складається з складеного оператора, який є тілом функції, і що передує тілу заголовка функції (в який входять ім'я функції, типи значення ,що вертається і формальних параметрів). Блоки можуть включати в себе складені оператори, але не визначення функцій. Внутрішній блок називається вкладеним.
Розглянемо приклад з калькулятором. Він був представлений у вигляді одного вихідного файлу. Якщо ви його набили, то у вас напевне були невеликі труднощі з розташуванням описів в правильному порядку, і довелося використати по меншій мірі один 'фальшивий' опис, щоб компилятор зміг обробити взаємно рекурсивні функції expr (), term () і prim (). В відзначимо, що програма складається з чотирьох частин (лексичного аналізатора, програми синтаксичного розбору, таблиці імен і драйвера), але це ніяк не було відбите в тексті самої програми. По суті, калькулятор був написаний по-іншому. Так це не робиться; навіть якщо в цій програмі 'навикид' зневажити всіма міркуваннми методики програмування, експлуатації і ефективності компіляціє, автор все одно розіб'є цю програму в 200 рядків на декілька файлів, щоб програмувати було приєиніше. Програма, що складається з декількох роздільно компільованих файлів, повинна бути погодженої в сенсі використання імен і типів, точно так же, як і програма, що складається з одного вихідного файлу. В принципі, це може забезпечити і компоновщик.
Компоновщик - це програма, що стикує окремо скомпільовані частини разом. Компоновщик часто (плутаючи) називають загрузчиком. В UNIX компоновщик називається ld. Однак компоновщики, наявні в більшості систем, забезпечують дуже слабку підтримку перевірки погодженості. Програміст може компенсувати нестачу підтримки з боку компоновщика, надавши додаткову інформацію про типи (опису). Після цього погодженість програми забезпечується перевіркою погодженості описів, що знаходяться в окремо компільованих частинах. Засоби, що це забезпечують, в CІ розроблені так, щоб сприяти такій явній компоновці.
Компоновка
Якщо не вказане інше, то ім'я, що не є
Loading...

 
 

Цікаве