Поможем написать учебную работу
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
МІНІСТЕРСТВО ОСВІТИ ТА НАУКИ УКРАЇНИ
ХАРКІВСЬКИЙ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ РАДІОЕЛЕКТРОНІКИ
Методичні вказівки
до проведення лабораторних занять, та курсової роботи з курсу “Програмування” для студентів 3 курсу спеціальності “Компютерні системи та мережі” 7.091501
Затверджено
Кафедрою ЕОМ
Протокол №1 від 31.08.05
Харків 2005
Методичні вказівки до проведення лабораторних занять, курсової роботи з курсу “Програмування” для студентів 3 курсу спеціальності “Компютерні системи та мережі” 7.091501/ Упорядники Н.Г.Аксак- Харків: ХНУРЕ, 2005.- 15с.
Упорядники: Н.Г.Аксак
1 ЗАГАЛЬНІ ПОЛОЖЕННЯ
Лабораторний практикум - це важлива складова у вивченні цієї дисципліни. Виконання лабораторних робіт, наведених в данних методичних вказівках, дозволить придбати практичні навички рішення задач різноманітного рівня складності.
Відповідно до учбово-професійної програми цілями викладання дисципліни є:
знайомство з сучасними інформаційними технологіями;
вивчення апаратних та програмних засобів персональних компютерів;
вивчення основних принципів алгоритмізації і програмування.
2 ЦІЛІ ТА ЗАДАЧІ КУРСУ
2.1.Програма знань і уміння
У результаті вивчення дисципліни студент повинен
знати:
основи алгоритмізації та принципи програмування на мовах високого рівня ;
основи обектно-орієнтованого програмування на мові С++;
вміти:
використовувати методи алгоритмізації та програмування на мовах високого рівня;
застосовувати на практиці обектно-орієнтоване програмування для вирішення практичних задач.
Студенти-заочники вивчають «Програмування» у відповідності до навчального плану спеціальності (7.091501) один семестр (табл.2.1).
2.2.Мета викладання курсу
Мета викладання курсу :
одержання студентами необхідних знань та навичок програмування на обектно-орієнтованій мові С++..
3 МЕТОДИЧНІ ВКАЗІВКИ ДО ПІДГОТОВКИ ВИКОНАННЯ ПРАКТИЧНИХ, ЛАБОРАТОРНИХ РОБІТ ТА ЗАВДАНЬ ДЛЯ КОНТРОЛЬНИХ РОБІТ
Середовище візуальної розробки програм С++ Builder
1.1 Мета роботи
1.2 Методичні вказівки до організації самостійної роботи.
При підготовці до виконання роботи необхідно пропрацювати потрібний розділ літератури [15,16,17].
1.3 Опис лабораторної установки
Для усіх робіт завдання виконуються на обчислювальній сітці з встановленням Borland C++ Builder 5.
1.4 Порядок виконання роботи та методичні вказівки до її виконання
На робочому місці починайте знайомство з середовищем візуальної розробки програм С++ Builder 5.
Програма на С++ що виконується, повинна бути уведена та перетворена у програму в системі команд компютера. Це перетворення на першому етапі виконує компілятор, який проглядає текст (часто два поглядання ) та формує обєктний код, який обробляється компоновщиком. На цьому етапі виконується підключення бібліотек, стиковка окремих модулів програми, тобто розвязання зовнішніх посилань. Це перетворення виглядає таким чином :
Похідний текст програми _
< имя >.cpp | Препроцесорна обробка,
| компіляція
Обєктний код _|
< имя >.obj _
|
Робоча програма | Компоновка
< имя >.exe _|
C++ Builder 5 створює ще декілька файлів з різними розширеннями, які зараз не обговорюються.
Зауважимо, що С++ не має засобів взаємодії з користувачем. Так С++ не має операторів уведення-виведення, засобів створення вікон та елементів Windows. Засоби взаємодії (вікна, кнопки, меню та інш. ) звуться інтерфейсом користувача. Windows графічна операційна система, яка забезпечує графічний інтерфейс GUI. GUI складається з елементів оформлення та управління. Елементи управління керуються мишею. Елементи оформлення пасивні їх можливо бачити, читати, слухати (звукове оформлення ).
Інтерфейс користувача потребує спеціальних бібліотек. Ці бібліотеки розроблені для різних операційних систем та апаратних платформ, і тому, одна і та ж програма на С++ може виконуватися на різних типах платформ. Для цього необхідно змінити бібліотеку та знову виконати компіляцію. Використання бібліотек для організації GUI викликає значні труднощі. Тому, розроблене середовище яке дає змогу зосередитися не на оформленні інтерфейсу, а на логіці роботи програми.
Різні елементи управління компоненти (кнопки, перемикачі, значки) переміщуються у вікні за допомогою миші. Програміст лише визначає, як повинна реагувати програма при різних подіях :
Візуальні редактори (мастера) кількома запитаннями визначають намір програміста, та іноді дозволяють розробити програму не написавши ні одного оператора.
Після виконання bcb.exe відкривається середовище розробки (ср), яке містить:
рядок меню;
панель швидкого доступу;
палітру компонентів;
інспектор обєктів;
вікно програми, що розробляється;
рядок стану.
Рядок меню містить такі складові:
File (файл), Edit (правка), Search (пошук), View (перегляд), Project (проєкт), Run (виконати ), Component (компонент), Database (база даних), Tools (сервіс), Help (допомога )
File
має багато пунктів, які інтуїтивно зрозумілі. Запамятайте, якщо в кінці строки:
три крапки, то при виборі цього пункту буде відчинено вікно;
-при виборі цього пункту зявиться список файлів або варіантів.
Для розробки консольного додатку потрібно вибрати
File/New…
відчиняється вікно:
New Items
в якому вибрати
Console Wizard і клацнути мишею на ОК. У черговому вікні
Console Application Wizard
вибрати :
Window Type Execution Type
◉ Console ◉ Exe
Window (GUI) DLL
і клацнути мишею на Finish.
В вікні додатку, що розробляється зявиться імя проекту
project1.cpp
Кожне чергове звертання викликає відкриття project2.cpp, project3.cpp і так далі.
Відкриття файлу:
File/Open
Якщо необхідно декілька файлів, то після вибору File /Open натиснути Ctrl. Натиснув Enter будуть відкриті всі помічені файли.
File /Reopen дає змогу побачити список нещодавно файлів, були використані та відкрити любий з них (два рази клацнути мишею),
File/Close, File/Close all закриває та винищує із памяті проект (проекти):
Close-поточний ,Close all- всі.
File /Exit вихід із середовища С++ Builder в операційну систему.
Edit та Search містять команди редагування та пошуку, які будуть розглядатися далі
View містить команди
Project Manager-перегляд структури проекту - графічне зображення файлів у поточному проекті;
Object Inspector (F 11)- інспектор обєктів; перегляд властивостей обєктів та їх реакції на різні події (стає активним вікно Object Inspector);
Class Explorer переглядач класів (відкривається вікно у вікні програми, що розробляється)
Component List /Window List …-швидкий вибір елементів з тих, до яких було звернення;
Component List /Debug Windows-використання відладчика - завдання міста зупинки, змінних, які проглядаються та інше.
View/New Edit Window відкрити чергове вікно редагування;
View/Toolbars - вилучити ( відновити ) окремі елементи середовища розробки на екрані.
Project містить команди
Add to Project…
Remove from Project…
Добавити та вилучити із проекту деякі елементи;
View Source в вікні програми, що розробляється відображається поточний проект;
Compile Unit компіляція поточного файлу <імя>.cpp;
Make <імя проекту - компіляція та компоновка тих частин проекту, які були оновлені;
Build <імя проекту - компіляція та компоновка проекту в цілому ( і тих частин, які не змінювались після попередньої компіляції )
Options…
- відкриває вікно Project Options з багатьма сторінками ( Linker, Advanced Compiler, C++, Pascal та інші ), користуючись якими можливо настроїти параметри проекту на потрібний варіант розробки додатку.
Run
містить команди виконання та відладки (покрокове виконання, установлення контрольних місць, інспектування обєктів, перегляд змінних та інше) додатку, який був сгенерований.
Tools
містить команди настройки підсистем інтегрованого середовища, надає доступ до інших програмних засобів (наприклад, перегляд та редагування баз даних).
Команда Environment Options установлення середовища відкриває вікно з такими сторінками:
Preferences на якій Autosave options, Editor files, Desktop;
Library відображення, установлення шляхів для бібліотек;
Editor режим роботи редактора (ins, overwrite по умовчанню, tab = … та інше);
Display установлення типу шрифту (Editor font), розміру шрифту (Size);
Colors установлення кольору символу, фону.
Панель швидкого доступу
забезпечує швидкий засіб вибору дії без використання меню. Містить командні кнопки для використання часто потрібних дій.
містить набір заготівель для елементів управління, з яких буде збиратись інтерфейс програми, що розробляється. Кожен компонент подається значком. Палітра компонентів має 14 панелей, на яких компоненти зібрані по конкретним галузям застосування.
Інспектор обєктів
використовується для завдання властивостей обєктів та визначення їх реакції на різні події.
Вікно програми, що розробляється
призначається для розміщення
вікна візуального проектировщика або
вікна редактора програм.
Переключення між вікнами клавішею F12.
Вікно редактора складається з двох панелей :
переглядання класів;
редактора вихідного тексту програми.
Панель переглядання класів відображає структуру звязків між різними обєктами програми і дозволяє переміщатися по її тексту. Панель переглядання класів згортається, якщо клацнути мишею на кнопці у правому верхньому кута панелі ; відкривається, якщо вибрати
View/Class Explorer
Рядок стану
відображає:
номери поточного рядка та колонки, розділених двокрапкою;
Modified, якщо поточне вікно редагування містить зміни, які не збережені. Після збереження змін у дисковому файлі це повідомлення зникає;
Insert-текст вставляється у поточну позицію, або
Overwrite - заміна тексту у позиції курсору. Клавіша Ins перемикає цей режим.
Приклад рядка стану:
7 : 34 Modified Insert |
Розробка та виконання простої програми. Найпростіші конструкції мови.
Змінні та масиви.
2.1 Мета роботи
2.2 Вказівки з підготовки та виконання роботи.
Необхідно пропрацювати потрібний розділ літератури .
Текстовий редактор призначається для набору вхідних файлів .За умовчанням редактор знаходиться у режимі вставки, коли введений текст розміщується в тому місці, де знаходиться курсор та при цьому текст розсувається вправо.
Режим накладання змінює існуючий текст новим. Перемикання режимів виконується клавішею Ins.
Необхідно ознайомитися з технологією розробки та виконання програм у середовищі C++ Builder. Для цього опрацювати потрібний розділ літератури. Інформацію про те, яким чином побудувати додаток, C++ Builder здобуває із файлу проекту. Процедура побудови додатку для роботи під Windows значно сложніша та відрізняється від звичайної схеми, коли вихідний файл з текстом програми обробляється компілятором, потім, якщо не було помилок, обєктний модуль надходить компоновщику, після чого формується готовий до виконання файл з розширенням .exe. Для роботи під Windows, крім файлів з вихідним текстом програми, у процесі розробки, будуються файли форм, ресурсів та деякі інші. У файлах ресурсів зберігаються різні типи графічних зображень, які використовуються у програмі .Файли форм у двійковому коді містять опис форми та усіх її компонентів.
Розробка консольного додатку.
Розглянемо розробку консольного додатку Win32. Такі програми можуть виконуватись під Windows 95/ 98/ NT. Консольний додаток виконується у такій послідовності.
Після запуску C++ Builder необхідно закрити автоматично створений проект File/Close all.
Створюється проект для консольного додатку. Для цього використовується команда File/New…
На екрані зявляється вікно для вибору нового елементу, що розобляється New Items.
В цьому вікні слід обрати елемент Console Wizard ( Мастер консолі ) та клацнути мишею на ОК.
3 Далі C++ Builder запускає мастер по генерації проекту для консольних додатків, після чого зявляється вікно з назвою Console Application Wizard (Вікно мастера консольних додатків)
4 В цьому вікні по умовчанню задані
Window Type Execution Type
◉ Console ◉ Exe
Window (GUI) Dll
Тому, слід клацнути мишею на Finish. Після чого зявиться вікно редактора коду, в якому знаходиться шаблон з текстом програми. Далі наберіть програму, використовуючи цей шаблон, або віддалить текст шаблону та наберіть програму знову. При цьому для проекту створюється, як найменше, два файли - вихідний файл проекту з розширенням .срр (його зміст відображається у редакторі коду) та інформаційний файл проекту, який містить установлені програмістом параметри компілятора, імена вихідних та бібліотечних файлів проекту.
5 Для виконання програми необхідно клацнути мишею на кнопці “Запуск програми” на панелі швидкого доступу. Якщо помилок немає, буде згенерований ехе-файл і автоматично виконаний.
3 Лабораторна робота №2
3.1 Мета роботи.
3.2 Вказівки з підготовки та виконання роботи.
Необхідно пропрацювати потрібний розділ лекційного матеріалу та. Розробити програму, у якій:
1 Описати змінні усіх типів та показчики на них. Ініціалізувати змінні та покажчики.
2 Вивести значення змінних, використовуючи їх імена та покажчики
3 Описати одно-, двох- та трьохвимірні масиви різних типів (числові, символьні), покажчики на ці масиви та їх перетини;
ініціалізувати масиви та покажчики.
Контрольні питання
4. Методичні вказівки до організації самостійної роботи студентів
Теоретичний матеріал, необхідний для виконання індивідуального завдання, студенти повинні вивчити самостійно.
Лабораторну роботу виконують в режимі діалогу на персональних ЕОМ, використовуючи мови програмування С++.
Для роботи в інтегрованому середовищі студенти повинні вивчити відповідний матеріал по літературним джерелам .
Після обробки програми й отримання роздруківки студент повинен оформити звіт, в який включаються: найменування теми лабораторної роботи; умова задачі та вихідні дані; схема алгоритму рішення задачі; роздруківки програми.
При захисті лабораторної програми студент повинен зуміти пояснити роботу програми й відповісти на контрольні питання.
Під час виконання роботи студент отримує практичні навички створення й налагодження програм.
При підготовці до виконання роботи необхідно ознайомитися із загальною структурою програми, описом міток, операторами привласнення, переходу, складеним оператором, умовним оператором, операторами виводу. При створенні програми рекомендується початкове значення всіх використовуваних змінних вводити через оператор привласнення.
5 МЕТОДИЧНІ ВКАЗІВКИ ДО ВИКОНАННЯ КУРСОВОЇ РОБОТИ
5.1 Цілі та задачі курсової роботи
Мета курсової роботи - отримання практичних навичок використання програмування при вирішенні практичних завдань.
Задачі курсової роботи: оволодіння сучасними програмними засобами для вирішення практичних завдань; отримання практичних навичок розробки програм; підвищення якості практичної підготовки спеціалістів.
Один з найпростіших способів відсортувати масив - сортування вставками. У звичайному житті ми зіштовхуємося із цим методом при грі в карти. Щоб відсортувати наявні у вас карти, ви виймаєте карту, зрушуєте карти, що залишилися, а потім вставляєте карту на потрібне місце. Процес повторюється доти, поки хоч одна карта не на місці. Як середнє, так і гірший час для цього алгоритму - O(n2). Подальшу інформацію можна одержати в книжці Кнута [1998].
На мал.5.1(a) ми виймаємо елемент 3. Потім елементи, розташовані вище, зрушуємо вниз - доти, поки не знайдемо місце, куди потрібно вставити 3. Це процес триває на мал.5.1(b) для числа 1. Нарешті, на мал.5.1(c) ми завершуємо сортування, помістивши 2 на потрібне місце.
Якщо довжина нашого масиву дорівнює n, нам потрібно пройтися по n - 1 елементам. Щораз нам може знадобитися зрушити n - 1 інших елементів, одержуючи алгоритм із часом роботи O(n2).
Сортування вставками ставиться до числа методів сортування по місцю. Інакше кажучи, їй не потрібна допоміжна пам'ять, ми сортуємо елементи масиву, використовуючи тільки пам'ять, займану самим масивом. Крім того, вона є стійкої - якщо серед ключів, що сортируються є однакові, після сортування вони залишаються у вихідному порядку.
Хоча ідея Шелла значно поліпшує сортування вставками, резерви ще залишаються. Один з найбільш відомих алгоритмів сортування - швидке сортування, запропоноване Ч.Хоором. Метод і справді дуже швидкий, недарма по-англійському його так і величають QuickSort до невдоволення всіх спелл-чекеров.
Цьому методу потрібно O(n lg n) у середньому й O(n2) у найгіршому разі. На щастя, якщо прийняти адекватні обережності, найгірший випадок украй малоймовірний. Швидкий пошук не є стійким. Крім того, йому потрібно стек, тобто він не є й методом сортування на місці. Подальшу інформацію можна одержати в роботі Кормена [1990].
Теорія
Алгоритм розбиває масив, що сортується на розділи, потім рекурсивно сортує кожний розділ. У функції Partition (мал. 5.2) один з елементів масиву вибирається в якості центрального. Ключі, менші центрального варто розташувати ліворуч від нього, ті, які більше, - праворуч.
int function Partition (Array A, int Lb, int Ub); begin select a pivot from A[Lb]...A[Ub]; reorder A[Lb]...A[Ub] such that: all values to the left of the pivot are <= pivot all values to the right of the pivot are >= pivot return pivot position; end; procedure QuickSort (Array A, int Lb, int Ub); begin if Lb < Ub then M = Partition (A, Lb, Ub); QuickSort (A, Lb, M - 1); QuickSort (A, M + 1, Ub); end; |
Мал. 5.2: Швидкий пошук |
На мал. 5.3 (a) у якості центрального обраний елемент 3. Індекси починають змінюватися з кінців масиву. Індекс i починається ліворуч і використається для вибору елементів, які більше центрального, індекс j починається праворуч і використається для вибору елементів, які менше центрального. Ці елементи міняються місцями - див. мал. 5.3 (b). Процедура QuickSort рекурсивно сортує два подмассива, у результаті виходить масив, представлений на мал. 5.3 (c).
У процесі сортування може знадобитися пересунути центральний елемент. Якщо нам повезе, обраний елемент виявиться медіаною значень масиву, тобто розділить його навпіл. Припустимо на хвилинку, що це й справді так. Оскільки на кожному кроці ми ділимо масив навпіл, а функція Partition зрештою перегляне всі n елементів, час роботи алгоритму є O(n lg n).
В якості центрального функція Partition може попросту брати перший елемент (A[Lb]). Всі інші елементи масиву ми порівнюємо із центральним і пересуваємо або вліво від нього, або вправо. Є, однак, один випадок, що безжалісно руйнує цю прекрасну простоту. Припустимо, що наш масив із самого початку відсортований. Функція Partition завжди буде одержувати в якості центрального мінімальний елемент і тому розділить масив найгіршим способом: у лівому розділі виявиться один елемент, відповідно, у правом залишиться Ub - Lb елементів. Таким чином, кожний рекурсивний виклик процедури quicksort усього лише зменшить довжину сортируемого масиву на 1. У результаті для виконання сортування знадобиться n рекурсивних викликів, що приводить до часу роботи алгоритму порядку O(n2). Один зі способів побороти цю проблему - випадково вибирати центральний елемент. Це зробить найгірший випадок надзвичайно малоймовірним.
У наведеній реализації алгоритму на Си оператори typedef T і compGT варто змінити так, щоб вони відповідали даним, збереженим у масиві. У порівнянні з основним алгоритмом є деякі поліпшення:
Функція qsort зі стандартної бібліотеки Си заснована на алгоритмі quicksort. Для цієї реалізації рекурсія була замінена на ітерації. У таблиці 5.1 приводиться час і розмір стека, затрачувані до й після описаних поліпшень.
кількість |
час (µs) |
розмір стека |
||
до |
после |
до |
после |
|
16 |
103 |
51 |
540 |
28 |
256 |
1,630 |
911 |
912 |
112 |
4,096 |
34,183 |
20,016 |
1,908 |
168 |
65,536 |
658,003 |
460,737 |
2,436 |
252 |
Таблиця 5.1: Вплив поліпшень на швидкість роботи і розмір стека |
Метод, запропонований Дональдом Л. Шеллом, є нестійким сортуванням по місцю. Ефективність методу Шелла пояснюється тим, що елементи, що зрушують, швидко попадають на потрібні місця. Середній час для сортування Шелла рівняється O(n1.25), для гіршого випадку оцінкою є O(n1.5). Подальші властивості див. у книжці Кнута [1998].
На мал. 5.4(a) був наведений приклад сортування вставками. Ми спочатку виймали 1, потім зрушували 3 і 5 на одну позицію вниз, після чого вставляли 1. Таким чином, нам були потрібні два зрушення. Наступного разу нам було потрібно ще два зрушення, щоб вставити на потрібне місце 2. На весь процес нам було потрібно 2 + 2 + 1 = 5 зрушень.
На мал. 5.4(b) ілюструється сортування Шелла. Ми починаємо, роблячи сортування вставками із кроком 2. Спочатку ми розглядаємо числа 3 і 1: витягаємо 2, зрушуємо 3 на 1 позицію із кроком 2, вставляємо 2. Потім повторюємо те ж для чисел 5 і 2: витягаємо 2, зрушуємо вниз 5, вставляємо 2. І т.д. Закінчивши сортування із кроком 2, робимо її із кроком 1, тобто виконуємо звичайне сортування вставками. Усього при цьому нам знадобиться 1 + 1 + 1 = 3 зрушення. Таким чином, використавши спочатку крок, більший 1, ми домоглися меншого числа зрушень.
Можна використати самі різні схеми вибору кроків. Як правило, спочатку ми сортуємо масив з більшим кроком, потім зменшуємо крок і повторюємо сортування. У самому кінці сортуємо із кроком 1. Хоча цей метод легко пояснити, його формальний аналіз досить важкий. Зокрема, теоретикам не вдалося знайти оптимальну схему вибору кроків. Батіг[1] провів безліч експериментів і знайшов наступну формулу вибору кроків h для масиву довжини N:
у послідовності h1 = 1, hs+1 = 3hs + 1, ... взяти ht, якщо ht+2 >= N.
Ось декілька перших значень h:
h1 = 1
h2 = (3 x 1) + 1 = 4
h3 = (3 x 4) + 1 = 13
h4 = (3 x 13) + 1 = 40
h5 = (3 x 40) + 1 = 121
Щоб відсортувати масив довжиною 100, насамперед знайдемо номер s, для якого hs >= 100. Відповідно до наведених цифр, s = 5. Потрібне нам значення перебуває двома рядками вище. Таким чином, послідовність кроків при сортуванні буде такою: 13-4-1. Ну, звичайно, нам не потрібно зберігати цю послідовність: чергове значення h перебуває з попередні по формулі
hs-1 = [hs / 3].
У реализации сортування Шелла на Си варто змінити оператори typedef T і порівняння compGT так, щоб вони відповідали даним, збереженим у масиві. Основна частина алгоритму - сортування вставками із кроком h.
5.2 Тематика курсових робіт
1. Даний масив А (5,5). Знайти суму елементів четвертого рядка, визначити кількість додатних елементів. Елементи третього рядка вислідної матриці замінити нулями.
2. Масив D (20) упорядкувати по зростанню методом сортування вставками, знайти максимальний і мінімальний елементи.
3. Скласти матриці А(6,6) і B(6,6). Елементи третього рядка вислідної матриці замінити нулями. В вислідній матриці підрахувати кількість додатних і відємних елементів кожного стовпця.
4. Помножити матрицю B(7,7) на скаляр D=0,2. Знайти суму елементів шостого рядка, визначити кількість додатних елементів.
5. Знайти різницю двох матриць А(3,4) і B(3,4). В вислідній матриці елементи другого стовпця зменшити на число 5, знайти максимальний і мінімальний елементи.
6.Добуток двох матриць А(4,5) і B(4,5) помножити на скаляр C=5,2. Елементи третього сповбця вислідної матриці замінити одиницями.
7. Матрицю D (8,8) Розбити матрицю на 9 квадратних підматриць розміром 3x3.
8. Масив B(22) упорядкувати по зростанню методом Шелла. Знайти додатки парних та непарних елементів.
9. Створити масив C з різниць сусідніх елементів масиву B(13). Відсортувати елементи отриманого масиву С по зростанню методом швидкого сортування.
10. Заданий масив C(30). Скласти програму формування масиву сум:
B(1)=C(1)+C(6)+C(11)+...+C(26)
B(2)=C(2)+C(7)+C(12)+...+C(27)
..............................
Знайти мінімальне та максимальне значення сум.
11. В цілочисельному масиві найменший елемент замінити цілою частиною середнього арифметичного, найбільший елемент замінити додатком всіх елементів. Якщо найменших елементів кілька, то замінити останній.
12. Заданий масив А(24). Сформувати масив B(24), в якому на початку будуть розміщені по зростанню всі додатні елементи з масиву А(24), а в кінці - всі відємні елементи по спаданню.
13. У матриці C(4,5)=А(4,5)+B(4,5) поміняти місцями елементи другого і третього стовпців, елементи стовбця замінити одиницями, елементи пятого стовбця упорядкувати по убуванню.
14. У матриці C(4,4)=А(4,5)*B(5,4) і визначити суму першого і шостого рядків. Знайти мінімальні та максимальні елементи у кожному рядку та стовбці.
15. Обчислити суму елементів другого рядка матриці C(8,8)=А(8,5)·B(5,8). Поміняти місцями перший та останній рядки.
16. Розбити матрицю X(6,6) на чотири квадратних матриці розміром 3x3. Діагональні елементи першої матриці замінити на одиниці, другої на 2, третьої на 3, четвертої на 4.
17. Знайти добуток двох матриць А(3,5) і B(5,2). Вислідну матрицю транспонувати. Знайти мінімальний та максимальний елементи вислідної матриці.
18. Задані матриці А(5,5) і B(5,5). Отримати нові матриці C(5,5), D(5,5), Е(5,5), що дорівнюють відповідно різниці, сумі, та додатку матриць А і B. Знайти мінімальні елементи в матриць в отриманих матрицях.
19. Відсортувати масив А(30) по спаданню методом швидкого сортування та методом Шелла. Підрахувати кількість дій у кожному медоді.
20. Заданий масив А(10), парні числа цього масиву записати в масив А1, розмістивши їх по зростанню, непарні записати в масив А2, розмістивши їх по спаданню.
21. Задані масиви А(10) і B(12), відсортувати по спаданню методом Шелла.
Записати їх в масив C(22), також відсортований по спаданню. Знайти суми парних та непарних елементів.
22. Обчислити суму елементів в головній діагоналі матриці
C(5,5)=А(5,5)·B(5,5). Знайти мінімальні та максимальні елементи у кожному рядку висхідної матриці.
23. Дані два масиви А(10) і B(12). Отримати в масиві С їх перетин (сукупність) елементів, які знаходяться і в А, і в В. На друк вивести масиви А, В, С - усі з текстовими повідомленнями.
24. У матриці порядку 5 переставити стовпці по зростанню сум елементів рядків.
25. Дані матриці А(5,5) і B(5,5). Сформувати матрицю MC, елементи якої дорівнюють 0, якщо відповідний елемент матриці А більший від елемента матриці В, в противному випадку елементи матриці дорівнюють 1.
26. В кожному рядку матриці M(4,4) визначити кількість елементів, що діляться на три та записати їх в масив.
27. У дійсній матриці розміром 6x9 поміняти місцями рядки, що містять найбільший і найменший елементи. Передбачається, що ці елементи зустрічаються один раз і знаходяться в різних рядках.
28. У матриці розміром 5x6 переставити рядки по убуванню значень найменших елементів рядків.
5.3 Структура , зміст курсової роботи та вимоги до оформлення курсової роботи
Структура курсової роботи складається з пояснювальної записки з наведеним у ній керівництвом для використання розроблених та використаних програмних засобів.
Пояснювальна записка повинна мати:
1.Титульний лист.
2.Лист з власним завданням.
3.Вступ (де підкреслюється мета, використані засоби програмування та можливе місце впровадження роботи)
4.Теоретича частина (з обґрунтуванням, розглядаються прийняті методи аналізу та програмування).
5.Спеціальна частина (доводиться опис алгоритму та програми, керівництво користувача, де наводяться призначення програми, умови виконання програми).
6.Додаток (текст програми).
7.Використана література.
Обсяг записки складає 10...15 аркушів формату А4.
Текстові документи повинні відповідати ДСТУ 3.008-95.
5.4 Методичні вказівки до виконання курсової роботи
При виконанні курсової роботи треба користуватись рекомендованою літературою.
Доцільно обєднати виконання лабораторних робіт і відповідні етапи проектування, але такі етапи, як аналіз завдання та вибір методів моделювання і програмування треба виконати на самому першому етапі після отримання завдання.
ЛІТЕРАТУРА
ПРИМІТКА: Консультації по виконанню контрольної та курсової робіт можно одержати по електронної пошті: axak@kture.kharkov.ua
Методичні вказівки до проведення лабораторних занять, виконання контрольних робіт та курсової роботи з курсу “Програмування” для студентів 3 курсу спеціальності “Компютерні системи та мережі” 7.091501/ Упорядники Н.Г.Аксак- Харків: ХНУРЕ, 2005.- 15с.
Упорядники: Н.Г.Аксак
__
PAGE 18