Вимоги до оформлення програмного продукта

Кафедра ЕОМ

 

" Програмування "

Методичні вказівки

до курсової роботи (Частина 2)

з дисципліни

" Програмування "

 

для студентів напряму

6.050102 “Комп’ютерна інженерія”

 

 

 

 

Львів – 2011


Методичні вказівки до курсовоїроботи на тему "Програмування" з дисципліни “Програму-вання" для підготовки студентів напряму 6.050102 “Комп’ютерна інженерія” / Укл. Т.А. Матвейчук – Львів: Видавництво НУ “Львівська політехніка”, 2010 – 17 с.

 

 

Укладач: Матвейчук Т.А., ст. викладач каф.ЕОМ

 

Відповідальний

за випуск: Мельник А.О., д-р техн. наук, проф.

 

 

Рецензенти: Мороз І.В., ст. викладач каф.ЕОМ

 

Юрчак І.Ю., доцент кафедри САПР, к.т.н.

 

 


МЕТА РОБОТИ

Дослідження внутрішнього представлення в пам’яті комп’ютера базових і похідних типів даних статичної структури та динамічних структур даних.

ВИМОГИ ДО ПОРЯДКУ ВИКОНАННЯ ТА ОФОРМЛЕННЯ

КУРСОВОЇ РОБОТИ

Індивідуальні завдання на курсову роботу вибираються студентом самостійно згідно з його анкетними даними. Можливі їх корегування керівником під час виконання роботи.

Виконуючи курсову роботу студент повинен розробити, відлагодити та протестувати програму на мові С++ (або іншій, узгодивши із керівником курсової роботи) і оформити звіт.

 

Вимоги до оформлення програмного продукта

Роздруківки програм з необхідними коментарями виносяться в додатки. При цьому назви програмних блоків у тексті записки й відповідних фрагментів програм у додатках повинні бути однаковими.

Для оформлення роздруківки тексту програми рекомендується використовувати шрифт гарнітури Courier розміром 10 або 12. Допустиме шрифтове виділення службових слів і синтаксичних конструкцій мови програмування. Текст програми оформляється відповідно до загальноприйнятих норм оформления:

1. Кількість операторів в рядку повинна дорівнювати 1.

2. Всі оператори, що входять у складений оператор, повинні бути зміщені вправо на однакову кількість позицій, "Драбинка" повинна відображати структурну вкладеність мовних конструкцій. Рекомендується відступ не менше 2-х і не більше 8-і пробілів. Прийнятого відступу потрібно дотримуватись у всьому тексті програми.

3. Операторні дужки (тобто те, що обмежує складений оператор), що відносяться до одного блоку, повинні розташовуватися в такий спосіб: відкриваюча дужка повинна знаходитись на тому ж рядку, що й оператор, який відкриває блок, а закриваюча повинна знаходитись в тому ж стовпчику, з якого починається оператор, що відкриває блок. Допускається розташовувати відкриваючу дужку на рядку, що іде за оператором, що відкриває блок, у тому ж стовпчику, з якого починається цей оператор.

4. Рядок вихідного тексту програми повинен цілком розташовуватись в одному типографському рядку (до 80 символів залежно від шрифту). Недотримання цього правила говорить про занадто велику вкладеність блоків, що означає невдалий алгоритм або структуру програми. У такому випадку рекомендується переосмислити структуру програми, ввести додаткові функції, замінивши якісь більші частини коду їхніми викликами, переробити алгоритм і т.п.

5. Якщо синтаксис мови дозволяє, бажано відокремлювати знаки операцій пробілами від операндів. Як і у звичайному тексті, після ком повинен випливати пробіл.

6. Визначення функцій або логічні частини програми варто відокремлювати одна від одної порожніми рядками.

7. Ідентифікатори (назви змінних, типів, підпрограм) повинні бути значимими настільки, щоб читаючий текст програми міг розуміти їхній зміст без присутності поруч автора. При необхідності оголошення змінної або типу може супроводжуватися коментарем. Ідентифікатори рекомендується підбирати зі слів англійської мови.

8. Текст програми повинен містити коментарі, що відображають функціональне призначення того або іншого блоку програми, структуру програми. Коментарі варто писати українською мовою й по суті так, щоб програміст, що не брав участь у розробці програми (але має досвід роботи мовою С++), міг без особливих проблем розібратися в логіці програми.

9. Для кожної користувацької функції повинна бути описана у вигляді коментаря специфікація, що містить наступну інформацію:

 

- призначення функції;

- опис семантики параметрів, переданих у функцію, якщо вона неочевидна;

- опис семантики значення, що повертається, якщо вона неочевидна.

 

2.2. Вимоги до оформлення пояснювальної записки

 

Пояснювальна записка має бути написана українською мовою. Вона може бути надрукована або написана від руки. В обох випадках текст має розміщуватись на одному боці аркуша паперу формату А4. Рекомендується розміщувати до 30 рядків на сторінці, використовувати шрифт гарнітури Times New Roman розміром 12.

На аркушах необхідно залишити поля з усіх чотирьох боків. Розмір лівого поля - 25 мм, правого - не менше 10 мм, верхнього і нижнього - не менше 20 мм.

На аркушах, де починаються розділи, зміст, вступ, висновки, список літератури (всі ці пункти мають починатись з нової сторінки) рекомендується збільшувати розмір верхнього поля до 40 мм.

Чорнило, яким виконується робота, має бути чорним, фіолетовим чи синім .

Звіт має бути стислим, чітким, лаконічним і містити лише інформацію, яка має пряме відношення до курсової роботи.

 

2.3. Зміст звіту

 

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

 

II. Рекомендується наступний склад розділів пояснювальної записки:

 

Зміст

2. Завдання 2: Динамічні структури даних

2.1. Теоретична частина

2.2. Частина 1. Побудова АТД

2.2.1. Постановка задачі

2.2.2. Динаміка вмісту

2.2.3. Результати виконання програми

2.3. Частина 2. Застосування АТД

2.3.1. Постановка задачі

2.3.2. Алгоритм розв’язання задачі

2.3.3. Результати виконання програми

Висновки

Список літератури

Додатки

 

IIІ. Змістовне наповнення пунктів:

В теоретичній частині мають наводитись всі теоретичні дані, які необхідні для розробки алгоритму. Орієнтовно теоретична частина має займати 2 – 4 сторінки тексту.

Постановка задачі має містити індивідуальні завдання зі своїми конкретними значеннями.

В пункті алгоритм розв’язання задачі надається словесний опис основних прийомів, що застосовуються для знаходження розв’язку.

Результати виконання програми мають містити роздруковані копії екранів з результатами.

В додатках розміщуються тексти програм з коментарями.

 

Текст розділів може розділятися на підрозділи, пункти і підпункти. Розділи повинні нумеруватися арабськими цифрами в межах всієї записки. Зміст, вступ, висновки, список літератури і додатки не нумеруються.

Підрозділи необхідно нумерувати арабськими цифрами в межах кожного розділу. Номер підрозділу складається з номера розділу і номера підрозділу, розділених крапкою. Наприклад: "3.1." (перший параграф третього розділу). Пункти (якщо вони використовуються) нумеруються аналогічно. Наприклад: "3.1.2." (другий пункт першого параграфу третього розділу).

Нумерація сторінок має бути наскрізною: першою сторінкою є титульна сторінка, другою - зміст, третьою - вступ і т.д. Номер сторінки проставляється у верхньому правому куті. На перший сторінці (титульна сторінка) номер сторінки не пишеться.

3. ВАРІАНТИ ЗАВДАНЬ

3.3. Завдання 2. Частина 1: Побудова АТД

Змоделювати абстрактний тип даних (АТД) на базі статичного масиву, який використати в другій частині цього завдання. Переписати основні операції роботи з АТД і продемонструвати їх застосування при додаванні та вилученні елементів в АТД. Для реалізації цього задати послідовність з К > 10 цілих чисел (числа вводити з клавіатури). Всі парні числа додавати в АТД, а кожне непарне число має вилучати з АТД один елемент. Виводити на екран динаміку вмісту АТД під час обробки заданої послідовності.

3.4. Завдання 2. Частина 2: Застосування АТД

І. Розв’язати задачу використовуючи АТД "СТЕК"

 

1. Перетворити вираз з інфіксної форми запису в префіксну.

Вказівки до розв’язання задачі: При перетворенні інфіксний рядок зчитуйте справа наліво і префіксний рядок створюйте також справа наліво. В стеку зберігати операції з однаковим пріоритетом.

 

2. Перетворити вираз з інфіксної форми запису без дужок в постфіксну форму.

 

3. Перетворити вираз з інфіксної форми запису з дужками в постфіксну форму.

 

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

Вказівки до розв’язання задачі: При обчисленні виразу, представленого в інфіксній формі застусовуйте два стеки – один для операндів, другий для операторів.

 

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

 

6. Перевірити баланс дужок в арифметичному виразі, який містить тільки один тип дужок – круглі.

 

7. Написати програму синтаксичного аналізу відповідностей відкриваючих і закриваючих дужок в арифметичному виразі, що має три набори дужок "(" i ")", "<" i ">", "[" i "]". Роздрукувати таблицю відповідностей дужок, причому в таблиці повинно бути зазначено, для яких дужок відсутні парні їм дужки. Для ідентифікації дужок використати їх порядкові номери у виразі.

 

Приклад: Для арифметичного виразу:

1 2 3 4 5 6

(a+b1)/2+6.5]*{4.8+sin(x)

 

має бути виведена таблиця виду:

Дужки

відкриваюча закриваюча

1 2

- 3

5 6

4 -

Прочерки в таблиці означають відсутність відповідної дужки.

 

8. Написати програму, що визначає, чи має символьний рядок, що вводиться з клавіатури, правильну форму виду a D b D c D ... D z , де кожний рядок a, b, c, ..., z називається подібним і має форму виду x C y, де x - рядок, що складається з літер A і B, а y - рядок, обернений до рядка x (наприклад, якщо x = AАBABB, то y повинен дорiвнювати BBABАA). Отже, рядок має правильну форму, якщо він складається з будь-якої кiлькостi подiбних рядків, що роздiленi символом D. Визначити чи введений рядок є правильним.

 

9. Мажоруючим елементом в послідовності A[1..N] називається елемент, що зустрічається в послідовності більше ніж N/2 разів. В послідовності може бути не більше одного мажоруючого елемента. Визначити, чи є в послідовності мажоруючий елемент, і якщо є, то який.

Приклад: Послідовність 3, 3, 4, 2, 4, 4, 2, 4, 4 має мажоруючий елемент 4, тоді як в послідовності 3, 3, 4, 2, 4, 4, 2, 4 мажоруючого елемента немає.

Вказівки до розв’язання задачі: Створіть стек і додавайте або вилучайте зі стеку елементи за таким правилом:

- на першому кроці покладіть в стек A[1];

- на i-ом кроці (i=2, ..., N) повторіть такі дії:

якщо стек порожній, то покладіть в нього A[і]; інакше, якщо елемент A[і] співпадає з елементом, що знаходиться у вершині стеку, то додайте A[і] в стек; інакше вилучіть один елемент з вершини стеку.

Якщо стек не буде порожнім, то в ньому залишаться лише співпадаючі елементи. Якщо в послідовності є мажоруючий елемент, те він і залишиться в стеку після N-го кроку. Для перевірки (у випадку не порожнього стеку після виконання N-го кроку) чи є елемент у стеку мажоруючим (якщо в стеку більше одного елемента, то вони всі однакові), перегляньте послідовність ще раз і підрахуйте, скільки раз зустрічається в ній елемент, що залишився в стеку. Якщо це число більше N/2, то цей елемент є мажоруючим, інакше - мажоруючого елемента в послідовності немає.

 

10. Задано n однакових на вигляд каменців, деякі з яких насправді різні по вазі. Є прилад, що дозволяє для двох каменців визначити, однакові вони чи різні (але не показує, який тяжчий). Відомо, що серед цих каменців більшість (більше n/2) однакових. Зробивши не більше n зважувань, знайти хоча б один камінець з цієї більшості.

Вказівки до розв’язання задачі: Дивіться вказівки до попередньої задачі.

ІІ. Розв’язати задачу використовуючи АТД "ЧЕРГА"

1. У магазині стоїть черга з m покупців. Час обслуговування покупця з черги – це випадкове ціле число в діапазоні від 1 до t1. Час додавання нового покупця до черги - це випадкове ціле число в діапазоні від 1 до t2.

Промоделювати стан черги:

а) вивести повідомлення про час виникнення подій ( обслуговування та додавання покупця ) за період часу T (T >> t1, T >> t2);

б) показати залишок черги;

в) розв’язати задачу, передбачивши, що через випадковий час від 1 до t3 до початку черги додається „пільговий” покупець, який обслуговується першим, а через випадковий час від 1 до t4 не витримує та йде з черги останній покупець.

 

2. Автостоянка має одну полосу, на якій може бути розмiщено до 10 автомобiлiв. Машини в'їжджають з пiвденного кiнця стоянки i від'їжджають з пiвнiчного. Якщо автомобiль власника, що прийшов на стоянку забрати його, не розташований пiвнiчнiше за всі решту, то всi автомобiлi, що стоять пiвнiчнiше його, виїжджають iз зупинки, потiм виїжджає його машина і всі машини повертаються в початковому порядку. Якщо машина залишає гараж, то всi машини розташованi пiвденнiше, перемiщаються вперед на стiльки позицій, скiльки є вiльних мiсць в пiвнiчнiй частинi. Написати програму зчитування групи рядків, кожний з яких мiстить літеру "A" для прибуття i літеру "D" для вiдправлення, а також номер машини. Машини прибувають i вiдправляються в порядку, що задає цей список рядків. Програма має видавати повiдомлення при кожному прибутті або вiдправленні машини. При прибутті машини в ньому повинно говоритись, чи є на стоянці вiльне мiсце. Якщо вiльне мiсце вiдсутнє, машина чекає до тих пiр, поки воно не звiльниться, або до моменту зчитування рядка, що повідомляє про вiдправлення цього автомобiля. Якщо з'являється вiльне мiсце, повинно видаватись iнше повiдомлення. При вiдправленнi автомобiля повiдомлення повинно мiстити в собi кiлькiсть перемiщень машини в серединi стоянки (включаючи її вiдправлення, але не прибуття; це число рiвне 0, якщо машина була вiдправлена під час очiкування вільного місця).

 

3. Написати програму, що моделює обчислювальну систему з кiлькома користувачами. Кожен користувач має свiй унiкальний iдетифiкацiйний номер ID i бажає виконати на ЕОМ ряд операцiй. У будь-який момент часу ЕОМ може виконувати одночасно тiльки одну операцiю. Кожний вхiдний рядок вiдповiдає одному користувачу i мiстить його ID, за яким йде початок роботи, а за ним - набiр цiлих чисел, кожне з яких представляє тривалість кожної з виконуваних користувачем операцiй. Вхiднi данi впорядкованi по зростанню часу початку роботи. Весь час задається в секундах. Вважається, що користувач не видає запрос на проведення наступної операцiї до тих пiр, поки не закiнчилось виконання попередньої, а ЕОМ виконує операцiї за принципом "перший, що поступив, обслуговується першим". Програма повинна iмiтувати роботу системи i виводити повiдомлення, що мiстять ID користувача i час початку i закiнчення проведення операцiї. В кiнцi процесу моделювання вивести середній час очiкування для кожної операцiї. Час очiкування - це рiзниця мiж тим часом, коли був виданий запрос на виконання операцiї, i початком її виконання.

 

4. Фiрма KRESS по зберiганню i збуту побутової техніки отримує вантажi з товарами по рiзним цiнам. Пізніше фiрма продає ці товари з 20-% надбавкою, причому товари, що отриманi раніше, продаються у першу чергу (стратегiя "перший отриманий - продається першим"). Товари з першої партії грузів продаються по ціні, на 20% вищій ніж закупочна. Після того як вся перша партія повністю розпродана, приступають до продажі другої партії, також по збільшеній на 20% цені, і т.д.

Написати програму, яка зчитує з текстового файлу записи про торговi операцiї двох типiв: операцiї по закупцi i операцiї по продажу. Запис про продажу мiстить префiкс "Р", після якого йде кiлькiсть товару, що продається. Запис про закупку мiстить префiкс "Z" , кiлькiсть товару і вартiсть всієї партiї. Пiсля зчитування запису про закупку товару виводити повідомлення про кiлькiсть товару, вартiсть одиниці товару i загальну вартiсть всiєї партiї. Пiсля зчитування запису про операцiю продажу товару виводити повідомлення про кiлькiсть товару, продану з кожної партії, цiну, по якiй був проданий кожний товар, суму, на яку були продані товари з кожної партії, а також загальну суму проданого товару, середню ціну одиниці товару і суму отриманого прибутку. Якщо кiлькiсть товару що є на складi недостатня для виконання замовлення на продаж товару, то продати всi товари зі складу і вивести повідомлення: "ХХХ одиниць товару немає на складi".

 

Приклад: Якщо фiрма продала 200 одиниць товару, в які входили 70 одиниць з закупочною цiною 125 грн., 100 одиниць з закупочною цiною 110 грн. i 30 одиниць з закупочною цiною 100 грн., то надрукувати (згадайте про 20-% надбавку) таку послідовність повідомлень:

Фiрма KRESS продала 200 виробiв:

70 штук по ціні 150 грн. на суму 10500 грн.

100 штук по ціні 132 грн. на суму 13200 грн.

30 штук по ціні 180 грн. на суму 5400 грн.

Всього продано товарів на суму 29100 грн. за ціною 145,5 грн. кожний.

Отримано прибутку на суму 6350 грн.

 

5. У місті розташовано n автобусних зупинок, позначених числами з N={1,2,....,n}. В текстовому файлі записано k автобусних маршрутів, заданих послідовностями сусідніх зупинок при русі автобуса в одному напрямку:

М1={P11,P12,...,P1m1},

М2={P21,P22,...,P2m2},

.....

Mk={Pk1,Pk2,...,Pkmk}, де Pij натуральне число з N.

Написати програму, що по заданих номерах зупинок I і J визначає найбільш швидкий шлях переміщення пасажира з зупинки I у зупинку J з використанням наявних маршрутів автобусів при умові, що час руху між сусідніми зупинками у всіх маршрутах однаковий і у 3 рази менший за час зміни маршруту. Автобуси можуть рухатись в обох напрямках.

Вказівки до розв’язання задачі: Ідея рішення грунтується на використанні черг. Для кожної зупинки введіть трійку чисел (О,М,Z), де О - номер зупинки, М - номер маршруту, Z - величина затримки. При виборі чергового елемента з черги можливі дві ситуації:

1). Продовжується рух по тому ж маршруту. У цьому випадку в чергу занесіть трійки типу (О',М,Z), де О' - номер зупинки, сусідньої з О, у маршруті М, Z=0.

2). Змінюється маршрут. У цьому випадку в чергу занесіть трійки типу (О,М',Z), де М' - номер зміненого маршруту, Z=3 (затримка на пересадку).

Всі нові трійки породжуються тільки трійками з затримкою, рівною 0. У випадку трійки з ненульовою затримкою занесіть її знову в чергу зі зменшеним на 1 значенням затримки.

 

6. Надрукувати в порядку зростання перші n натуральних чисел, у розклад яких на прості множники входять тільки числа 2, 3, 5.

Вказівки до розв’язання задачі: Введіть три черги x2, x3, x5, у яких зберігайте елементи, що відповідно в 2, 3, 5 разів більше надрукованих, але ще не надруковані. Найменший з ненадрукованих елементів, нехай це x, ділиться націло на одне з чисел 2, 3, 5. x знаходиться в одній з черг і є в ній першим (менші надруковані, а елементи черг не надруковані). Надрукуйте x, вилучіть його і додайте його кратні. Довжини черг не перевищують числа надрукованих елементів.

 

7. Дано позначення двох полів шахівниці (наприклад, A5 і C2). Знайти мінімальне число ходів, які потрібні шаховому коневі для переходу з першого поля на друге.

Вказівки до розв’язання задачі: Ідея рішення ґрунтується на використанні черги. Спочатку в чергу міститься елемент, що визначає вихідне положення шахового коня, а відповідна клітка поля позначається як така, яку відвідали.

На кожному з наступних кроків алгоритму (поки черга не порожня або не позначена кінцева клітка) виконуються наступні дії.

  • Із черги вилучається черговий елемент, що визначає деяку позицію (x,y).
  • Знаходяться клітки в межах поля, які досяжні з (x,y) одним ходом шахового коня, і які ще не позначені.
  • Елементи, що відповідають знайденим кліткам, додаються в чергу, а клітки позначаються як такі, яких відвідали.

При цьому спочатку всі клітки повинні бути непозначені, а мітку бажано ставити таку, щоб можна було відновити шлях між полями. Для цього мітку поля можна визначити як позицію поля, з якої вона була позначена.

 

8. У магазині стоїть черга з m покупців. Час обслуговування покупця з черги – це випадкове ціле число в діапазоні від 1 до t1. Час додавання нового покупця до черги - це випадкове ціле число в діапазоні від 1 до t2. Промоделювати стан черги. Вивести повідомлення про час виникнення подій ( обслуго-вування та додавання покупця ) за період часу T (T >> t1, T >> t2).

 

9. У магазині стоїть черга з m покупців. Час обслуговування покупця з черги – це випадкове ціле число в діапазоні від 1 до t1. Час додавання нового покупця до черги - це випадкове ціле число

 

в діапазоні від 1 до t2. Промоделювати стан черги. Показати залишок черги.

 

10. У магазині стоїть черга з m покупців. Час обслуговування покупця з черги – це випадкове ціле число в діапазоні від 1 до t1. Час додавання нового покупця до черги - це випадкове ціле число в діапазоні від 1 до t2. Промоделювати стан черги. Розв’язати задачу, передбачивши, що через випадковий час від 1 до t3 до початку черги додається „пільговий” покупець, який обслуговується першим, а через випадковий час від 1 до t4 не витримує та йде з черги останній покупець.

 

ІІІ. Розв’язати задачу використовуючи АТД "СПИСОК "

1. Многочлен виду , де представити у вигляді зв’язаного списку в якому кожний вузол має три поля: одне – для коефіцієнта Сi , друге – для показника степеня ni , третє – для вказівника на наступний вузол списку. Для описаного представлення многочленів програмно реалізувати таку операцію:

Додавання двох многочленів.

 

2. Многочлен виду , де представити у вигляді зв’язаного списку в якому кожний вузол має три поля: одне – для

 

коефіцієнта Сi , друге – для показника степеня ni , третє – для вказівника на наступний вузол списку. Для описаного представлення многочленів програмно реалізувати таку операцію:

Множення многочлена на одночлен.

 

3. Многочлен виду , де представити у вигляді зв’язаного списку в якому кожний вузол має три поля: одне – для коефіцієнта Сi , друге – для показника степеня ni , третє – для вказівника на наступний вузол списку. Для описаного представлення многочленів програмно реалізувати таку операцію:

Диференціювання многочлена.

 

4. Поліном від трьох змінних ( X , Y , Z ) представити у вигляді циклічного списку, в якому кожний вузол має п’ять полів: одне – для коефіцієнта члена поліному , друге – для показника степеня змінної X , третє – для показника степеня змінної Y, четверте – для показника степеня змінної Z, п’яте – для вказівника на наступний вузол списку. Елементи списку мають бути впорядковані спочатку по зменшенню степеня Х, пізніше по зменшенню степеня Y, а після цього по зменшенню степеня Z. Структура збереження поліномів повинна забезпечувати ефективне виконання такої операції над ними:

Додавання двох поліномів.

 

5. Поліном від трьох змінних ( X , Y , Z ) представити у вигляді циклічного списку, в якому кожний вузол має п’ять полів: одне – для коефіцієнта члена поліному , друге – для показника степеня змінної X , третє – для показника степеня змінної Y, четверте – для показника степеня змінної Z, п’яте – для вказівника на наступний вузол списку. Елементи списку мають бути впорядковані спочатку по зменшенню степеня Х, пізніше по зменшенню степеня Y, а після цього по зменшенню степеня Z. Структура збереження поліномів повинна забезпечувати ефективне виконання такої операції над ними:

Обчислення полінома по заданим значенням X , Y , Z .

 

6. Написати програму для роботи з розрідженими матрицями, представленими у вигляді зв’язаних списків:

Транспонування розрідженої матриці.

 

7. Написати програму для роботи з розрідженими матрицями, представленими у вигляді зв’язаних списків:

Додавання двох матриць.

 

8. Написати програму роботи з довгими числами (довгі числа – це числа, що виходять за діапазон допустимих значень будь-якого стандартного цілого або дійсного типу). Структура збереження довгих чисел повинна забезпечувати ефективну роботу з довільними (додатними і від’ємними) довгими цілими числами. Реалізувати роботу з довгими числами:

Додавання двох довгих чисел.

9. Написати програму роботи з довгими числами (довгі числа – це числа, що виходять за діапазон допустимих значень будь-якого стандартного цілого або дійсного типу). Структура збереження довгих чисел повинна забезпечувати ефективну роботу з довільними (додатними і від’ємними) довгими цілими числами. Реалізувати роботу з довгими числами:

Порівняння двох довгих чисел (дорівнює, не дорівнює, більше, менше).

 

10. Написати програму роботи з довгими числами (довгі числа – це числа, що виходять за діапазон допустимих значень будь-якого стандартного цілого або дійсного типу). Структура збереження довгих чисел повинна забезпечувати ефективну роботу з довільними (додатними і від’ємними) довгими цілими числами. Реалізувати роботу з довгими числами:

 

Обчислення значення n!, де n > 12.

ІV. Вибір варіанту індивідуального завдання

Вибір АТД:

№ = [(день народження) + (місяць народження) + (ASCII–код першої літери прізвища – велика латинська літера) ] % 3 + 1

Примітка: 1 – стек, 2 – черга, 3- список.

Вибір номера завдання:

№ = [(день народження) + (ASCII–код першої літери прізвища – велика латинська літера) ] % 10 + 1

 

СПИСОК ЛІТЕРАТУРИ

1. Грегори К. Использование Visual С++. Специальное издание. - М.: «Диалектика», 1999.

2. Мешков А.В., Тихомиров Ю.В. Visual С++ и MFC. Пер. с англ. – 2-е изд. перераб. и доп. – СПб.: БХВ - Петербург, 2002. – 1040 с.

3. Страуструп Б. Язык программирования С++. Третье издание. - М.: «Издательство Бином», 1999.

4. Трамбле Ж., Соренсон П. Введение в структуры данных. – М.:Машиностроение, 1982

5. Уильям Топп, Уильям Форд. Структуры данных в С++. – М.:Бином, 2000 - 700 с

 


 

ЗМІСТ

1. Мета роботи……………………………………..……………………………………………3

2. Вимоги до порядку виконання та оформлення курсової роботи.......................………....3

2.1. Вимоги до оформлення програмного продукта………………………………….…3

2.2. Вимоги до оформлення пояснювальної записки……………………………………4

2.3. Зміст звіту………………………………..………………………………………….…4

3. Варіанти завдань………………………………..……………………………………….……5

3.1. Завдання 1. Частина 1: Внутрішні формати базових типів…………………….……5

3.2. Завдання 1. Частина 2: Внутрішні формати похідних типів……………………...…6

3.3. Завдання 2. Частина 1: Побудова АТД..…………………………………………....…9

3.4. Завдання 2. Частина 2: Застосування АТД..…………………………………………9

Список літератури ………...……….....................…………………………………………......15


 

Навчальне видання

 

 

Методичні вказівки

до курсової роботи

" Програмування"

 

з дисципліни

“Програмування"

 

для підготовки студентів напряму

6.050102 “Комп’ютерна інженерія

 

 

Укладач Т.А.Матвейчук, ст. викладач каф.ЕОМ

 

Редактор

Комп’ютерне складання

 

 

Підписано до друку 2010 р.

Формат 70 х 100 1/16. Папір офсетний.

Друк на різографі. Умовн. друк. арк. ...... Обл.-вид. арк. ......

Наклад ..... прим. Зам.

 

Поліграфічний центр

Видавництва Національного університету “Львівська політехніка”

вул. Колесси, 2, 79000, Львів