Главная Случайная страница


Полезное:

Как сделать разговор полезным и приятным Как сделать объемную звезду своими руками Как сделать то, что делать не хочется? Как сделать погремушку Как сделать так чтобы женщины сами знакомились с вами Как сделать идею коммерческой Как сделать хорошую растяжку ног? Как сделать наш разум здоровым? Как сделать, чтобы люди обманывали меньше Вопрос 4. Как сделать так, чтобы вас уважали и ценили? Как сделать лучше себе и другим людям Как сделать свидание интересным?


Категории:

АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника






Приклад виконання курсової роботи.





Як приклад розглянемо виконання курсової роботи за наступним завданням: Маємо n речей, вага яких a1, a2,..., an. Поділити ці речі на дві групи так, щоб загальна вага кожної з груп були максимально близькими. Скласти програму з використанням графічних можливостей.

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

Нехай задано список предметів з масою кожного предмету. Треба розділити цей список на дві групи таким чином, щоб сумарна маса кожної групи предметів була приблизно однакова.

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

2. Вхідні та вихідні дані.

Вхідними даними є кількість предметів та масив даних, що відповідає списку предметів з їх мас. Заданий масив будемо отримувати з деякого файлу, що його зберігає. Вихідними даними є два масива, які відповідають переліку предметів з масами для кожної з отриманих двох груп. Для організації масивів будемо використовувати в якості елементів запис, який складається з двох полів: назви предмету та маси предмету. Введемо наступні позначення:

найменування величини ідентифікатор тип коментарі
файл даних f тип запису типізований файл, який зберігає дані
елемент масиву – запис x запис масив – список заданих предметів
nazv рядкова
mas дійсний
Вихідний масив 1 x1 тип запису перша група предметів
Вихідний масив 2 x2 тип запису друга група предметів
Індекси масивів i, k, l цілий тип  
Кількість елементів заданого масиву n цілий тип  
Похибка ds дійсний тип  
Сума елементів масиву 1 s1 дійсний тип сума мас елементів масиву 1
Сума елементів масиву 2 s2 дійсний тип сума мас елементів масиву 1

 

3. Побудова математичної моделі:

Для отримання оптимального розв’язку в якості оптимальної функції виберемо суму мас отриманої групи предметів:

(1)

Тому треба отримати такі масиви x1 та x2, для яких виконується наступне:

(2)

Для отримання таких масивів вхідний масив треба впорядкувати по спаданню елементів, а далі вибирати по одному предмету в одну та другу групу по черзі.

Вхідні дані подаються у вигляді типізованого файлу, який складається з записів. При послідовному перегляді файлу записи переносяться у масив x. Елементи цього масиву впорядковані за місцем їх розташування у файлі вхідних даних. Далі до такого масиву легко застосувати відомі методи впорядкування масиву по спаданню значень.

Масиви x1 та x2 будемо отримувати, якщо з файлу x по черзі будемо заносити по одному елементу у масиви x1 та x2.

Після отримання вихідних масивів знайдемо значення функції для кожного з масивів x1 та x2.

В кінці знайдемо похибку

(3)

Якщо знайдена похибка (3) не перевищує 30%, то отриманий розв’язок можна вважати правильним.

4. Опис алгоритму.

Крок 1. Зчитування натиснутої клавіші. Якщо натиснута клавіша “1”, то відбувається перехід до кроку 2, якщо натиснута клавіша “2”, то відбувається перехід до кроку 1.1.

Крок 1.1. Вихід з програми.

Крок 2. Цикл “поки” не кінець файлу, виконується до кроку 2.1.

Крок 2.1. Зчитується елементи масиву x.

Крок 3. Цикл “для” всіх i:=1 до n виконуємо до кроку 7.

Крок 4. Знаходимо максимальний елемент масиву x (підалгоритм MAX) та встановлюємо значення відповідного елементу в 0.

Крок 5. Заносимо значення знайденого максимального елементу в масив x1: k:=k+1; x1(k):=max;

Крок 6. Знаходимо максимальний елемент масиву x (підалгоритм MAX) та встановлюємо значення відповідного елементу в 0.

Крок 7. Заносимо значення знайденого максимального елементу в масив x2: l:=l+1; x2(l):=max;

Крок 8. Знаходимо суми елементів масиву x1 (s1) та x2 (s2) (підалгоритм SUM).

Крок 9. Цикл “поки” i<k та s1>s2, виконуємо:

Крок 10. Обмін елементів з однаковими індексами x1(i) та x2(i).

Крок 11. Знаходження величини похибки ds:=abs(s1-s2)/s1*100 та виведення її на екран.

Крок 12. Виведення на екран елементів масивів x1 та x2.

Кінець.

Далі треба описати всі згадані підалгоритми аналогічним чином.

 

5 Опис програми.

В цьому розділі треба спочатку описати структуру файлу, запису, масивів, з якими надалі працює програма. Далі треба описати виконання всіх підалгоритмів з вказівкою на локальні, глобальні змінні, формальні та фактичні параметри. В деталях описати основні структурні одиниці програми – розгалуження, цикли. Особливу увагу треба звернути на опис графічної частини програми.

Спочатку треба описати типи змінних, які використовуються у програмі. Це записи, які складаються з двох полів: name – рядкова змінна та vaga – дійсна величина. Тому описуємо тип spis:

Type spis=record

 

name:string;

 

vaga:real;

 

end;

 

Але самі елементи об’єднані у більш складну структуру – масив з записів. Визначимо ще один тип

msp= array [1..10] of spis;

Далі описуємо змінні: var f,f1,f2:file of spis;

x,xl,xpr:msp;

n,i,il,ipr:word;

fx1,fx2,dfx:real;

Після цього треба дати пояснення до кожного підалгоритму, який буде використовуватися, наприклад:

Підалгоритм “Сорт”:

procedure sort(var a:msp);

 

var temp:spis; i,j:word;

 

begin

 

for i:=1 to n-1 do

 

for j:=i+1 to n do

 

if a[i].vaga>a[j].vaga then

 

begin

temp:=a[i];

a[i]:=a[j];

a[j]:=temp;

end;

end;

У процедурі фактичний параметр а є як вхідний, так і вихідний, тому що він перетворюється при виконанні процедури. В цьому разі потрібно його описати як параметр-змінна з службовим словом var. Роль локальних змінних виконують змінні temp – для тимчасового зберігання поточного елементу списку, та i,j – індекси для організації циклів. У процедурі використана властивість присвоєння значень всіх полів запису при звертанні до подібних записів.

У такій послідовності описуємо всі процедури та функції, що використовуються у програмі. Якщо є окремий модуль, описують також і його з необхідними поясненнями. В кінці описують основну програму.

Обов¢язково треба пояснити, які конструкції операторів використовувалися при написанні програми. Наприклад, конструкція for i:=1 to n-1 do

Це оператор, який описує регулярний цикл. Кількість його виконань – n-1 раз. Змінна і є лічильником. За типом вона повинна бути цілою величиною. Зверніть увагу на те, що при описі Ви не повинні коментувати всі оператори, але пояснювати всі різні конструкції операторів. Один раз пояснивши конструкцію for, більше її не пояснювати.

Самий текст програми в цьому розділі не приводять, він іде як додаток.

 

6 Інструкція до застосування програми.

В цьому розділі треба вказати конкретні кроку до застосуванню програми. Наприклад: для запуску програми треба послати на виконання файл vag.exe. Далі з¢являється повідомлення – заставка. За командами-поясненнями треба ввести дані. І таке інше.

 

7 Висновки.

В кінці роботи треба вказати, що саме було зроблено саме Вами у курсовій роботі, які питання були самостійно розглянуті та розроблені.

 

Не забувайте про те, що курсова робота обов¢язково складається з двох частин: програми та пояснювальної записки. І навіть сама чудова і оригінальна програма не може замінити документ – пояснювальну записку. Цей документ зберігається в архівах вузу і є віддзеркаленням вашої роботи над курсовим проектуванням.

Date: 2016-07-05; view: 297; Нарушение авторских прав; Помощь в написании работы --> СЮДА...



mydocx.ru - 2015-2024 year. (0.006 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию