Термінова допомога студентам
Дипломи, курсові, реферати, контрольні...

Курсова з інформатики

РефератДопомога в написанніДізнатися вартістьмоєї роботи

Скласти програму визначення мінімального числа квітів, необхідні забарвлення карти довільній конфігурації в такий спосіб, щоб країни знайомилися з однаковою забарвленням не стикалися. Схему кордонів карти уявити масивом. На зовнішніх файлах розмістити 3 — 4 схеми розташування країн. Результати у вигляді тексту із зазначенням вибраних для кожної із багатьох країн квітів. Бажано завершити програму… Читати ще >

Курсова з інформатики (реферат, курсова, диплом, контрольна)

Міністерство шляхів Російської Федерации.

Далекосхідний державний университет.

шляхів сообщения.

Кафедра «Інформаційні технологій і системи «.

Курсова робота з информатике.

Варіант № 9.

Виконав: ст.

419 г. Киршев І. Ф.

Проверил:

Березнев Д. П.

1998 Скласти програму визначення мінімального числа квітів, необхідні забарвлення карти довільній конфігурації в такий спосіб, щоб країни знайомилися з однаковою забарвленням не стикалися. Схему кордонів карти уявити масивом. На зовнішніх файлах розмістити 3 — 4 схеми розташування країн. Результати у вигляді тексту із зазначенням вибраних для кожної із багатьох країн квітів. Бажано завершити програму графічним приложением.

Переменные:

" num «- номер файла, обираний пользователем.

" filen «- ім'я файла.

" g[1.100] - масив, використовуваний «генератором перебору всіх варіантів «.

" s: array[i, j] «- масив «зв'язків «показує, чи є зв’язок між країнами «і «і «j » .

" n «- кількість квітів, що використовуються забарвлення. «max — максимально можливу кількість країн (визначається при зчитуванні данных).

" s1, s2,k, j, i, a «- перемінні, до роботи «генератора » .

" f, f1 «- перемінні до роботи з файлами.

" function get: integer; «.

Функція зчитує поточне число, з файла що з перемінної - «f «і шукає максимальну кількість із усіх считанных.

Поки рядок = «» чи символ является:

— цифрой,.

— «- «,.

— «. «зчитує символ.

Якщо символ является:

— цифрой,.

— «- «,.

— «. », він додається в рядок «p.s » .

Рядок цифр «p.s «перетворюється на число. Якщо «max «менше ніж, то «max «прирівнюється считанному числу.

" function pr: boolean; «.

Функція перевіряє, чи можна країну — і зафарбувати кольором — g[i] (Чи можна заглиблюватися по дереву).

Перебирає все розфарбовані країни (від «1 «до «i-1 ») і порівнює кольору кожної їх із кольором країни «і «.

" function gen (n:integer):boolean; «.

Функція, визначальна можливість забарвлення країн «n «-ым кол-вом цветов.

Кожному елементу масиву «g «привласнює значення однакову «0 ». Поточному номера аналізованої країни «і «задає значення «1 ». Повторює действия:

Повторює действие:

До номера кольору аналізованої країни додати «1 «(«g[i]: =g[i]+1; «), поки не можна країну «і «розфарбувати в колір «g[i] «чи колір «і «-ой країни не більшою за кількість «n ». Якщо колір «і «-ой країни, більше числа «n «то:

номера кольору рассматриваемой.

країни прирівнює «0 «і знижує номер аналізованої країни на «1 » .

Інакше підвищує номер аналізованої країни на «1 », поки номер аналізованої країни не дорівнює «1 «чи номер аналізованої країни не більше кількості стран.

Значення функції одно «True », якщо номер аналізованої країни більше кількості стран.

Основна программа:

Висновок повідомлень користувачеві (див. робочу программу).

Запит номери файла («num »).

Виконуються дії зміну «num «запитує символ натиснутої клавіші, якщо натиснута клавіша немає від 1 до 3 то виводиться повідомлення про помилку доки натиснута клавіша від 1 до 3.

Формується ім'я вихідного файла filen:= «input „+num+ “ .txt » .

Повідомлення користувачеві про обраному файле.

Зчитування данных.

Відкривається файл «filen «для зчитування данных.

" max:=0 " .

Кожній осередку масиву зв’язків присвоюється «ложь».

Поки файл не скінчився зчитуються пара країн, в масив зв’язку з індексами: [країна, із меншим номером, з великим] присвоюється значення истина.

Закривається файл «filen » .

Блок, визначальний мінімум квітів. Початкова кількість квітів = 1.

Повторювати действия:

Підвищити кількість квітів на одиницю. Поки що можлива розфарбування всіх країн даним кількістю цветов.

Запис данных.

Створити файл «Output.txt ». Вважати до нього кількість квітів. Вважати до нього список забарвлення країн. Закрити файл.

Текст программы.

program mag; uses crt; var num: char; filen: string; g: array [1.100]of integer; s: array[1.100,1.100]of boolean; max, s1, s2,j, n, i, a: integer; f: file of char; f1: text;

{ Функція зчитує поточне число, з файла що з пеpеменной — f. }.

function get: integer; var k, c: integer; s: string; ch: char; begin p. s:= «»; k:=50; while ((p.s= «»)or (k=43)or (k=45)or ((k>47)and (k47)and (k1 then for j:=1 to i-1 do if s[j, i] then if g[i]=g[j] then pr:=false; end;

function gen (n:integer):boolean; begin for j:=1 to max do g[j]: =0; i:=1; repeat repeat g[i]: =g[i]+1; until pr or (g[i]>n); if (g[i]>n) then begin g[i]: =0; i:=i-1; end else i:=i+1; until (i=1)or (i>max); gen:=i>max; end; begin clrscr; writeln («Haжмите цифру, який вказує номер файла »); writeln («від якого будуть счтываться дані. »); writeln («»); for i:=1 to 3 do writeln («» ,і, «- файл input » ,і, «.txt »);

{Запpос номеpа файла.} repeat num:=readkey; if not ((num= «1 »)or (num= «2 »)or (num= «3 »)) then writeln («Ви у чомусь помилилися »); until (num= «1 »)or (num= «2 »)or (num= «3 »); filen:= «input „+num+ “ .txt »; writeln («»); writeln («Вибрано файл — «, filen); writeln («»);

{Зчитування данных}.

Assign (f, filen); Reset (f); max:=0; for s1:=1 to 100 do for s2:=1 to 100 do s[s1,s2]: =false; while not eof (f) do begin s1:=get; s2:=get; if s1>s2 then s[s2,s1]: =true else s[s1,s2]: =true; end;

Close (f);

n:=1; repeat n:=n+1; until gen (n);

{ Висновок даних в файл — «output.txt » .}.

Assign (f1, «output.txt »); Rewrite (f1); writeln (f1, «Країн = «, max); writeln (f1, «»); writeln (f1, «N cтран = «, n); for j:=1 to max do writeln (f1, «cтрана — «, j, «, колір — «, g[j], «»);

Close (f1); end.

Koнец.

Дані з Input1. txt:

1 2 1 7 2 7 2 3 2 8 3 4 3 9 3 8 4 9 4 5 5 6 5 9 5 13.

6 13 6 14 6 15 7 8 7 11 8 9 8 10 8 11 9 10 9 12 9 13.

10 11 10 12 10 14 11 15 12 14 13 14 14 15.

Результат в output. txt:

Країн = 15.

N країн = 4 країна — 1, колір — 1 країна — 2, колір — 2 країна — 3, колір — 1 країна — 4, колір — 2 країна — 5, колір — 1 країна — 6, колір — 2 країна — 7, колір — 3 країна — 8, колір — 4 країна — 9, колір — 3 країна — 10, колір — 1 країна — 11, колір — 2 країна — 12, колір — 2 країна — 13, колір — 4 країна — 14, колір — 3 країна — 15, колір — 1.

Показати весь текст
Заповнити форму поточною роботою