Реферати

Реферат: Курсова по інформатиці

Електроустановки і системи електропостачання. КУРСОВИЙ ПРОЕКТ по дисципліні "Електротехніка й електроніка" на тему: "Електроустановки і системи електропостачання в теплоенергетиці" ЗМІСТ

Фізіологічні механізми емоцій. ВВЕДЕННЯ В повсякденному житті людини розум завжди протиставлявся почуттям, емоціям. Перший ототожнювався з гармонією, організацією, порядком, другі ж - з невизначеністю, непередбачуваністю, хаотичністю. Думка підлегла законам логіки, закони ж емоцій важко виявити і застосувати, якщо вони дійсно існують.

Критерії оцінки кандидатів при прийомі на роботу в кафі, ресторани. Критерії оцінки кандидатів при прийомі на роботу в кафі, ресторани Зміст Уведення 1. Критерії оцінки кандидатів при прийомі на роботу в кафі, ресторани

Образи Платона Каратаева і Тихона Щербатова в романі Л. Н. Толстого Війна і світ. Образи Платона Каратаева і Тихона Щербатова в романі Л. Н. Толстого "Війна і світ" Автор: Толстой Л. Н. Головні герої роману Л. Н. Толстого "Вой-па і світ" - представники дворянського стану. Однак автор прагне намалювати картину російського життя у всій її повноті, тому в оповіданні з'являються і персонажі з простолюду - Тихон Щербатий і Платон Каратаев.

Безробіття 9. Зміст: Уведення...... 3 1. Правовий статус безробітного...... 4 2. Поняття працевлаштування...... 11

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

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

шляхів повідомлення

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

Курсова робота по інформатиці

Варіант № 9

Виконав: ст. 419 р. Киршев И. Ф.

Перевірив:

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

1998

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

Змінні:

"num" - номер файла, вибираний користувачем.

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

"g[1..100] - масив, що використовується "генератором перебору всіх варіантів"

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

"n" - кількість кольорів, що використовуються для розфарбування.

"max - максимальна можлива кількість країн (визначається при ліченні даних).

"s1, s2, k, j, i, а" - змінні, для роботи "генератора".

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

"function get:integer;"

Функція прочитує поточне число, з файла пов'язаного із змінною - "f" і шукає максимальне число з всіх прочитаних.

Поки рядок = '' або символ є:

- цифрою,

- "-,

- "."

"прочитує символ.

Якщо символ є:

- цифрою,

- "-,

- ".,

"то він додається в рядок "s".

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

"function pr:boolean;"

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

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

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

Функція, що визначає можливість розфарбування країн "n"-им кол-вом кольорів.

Кожному елементу масиву "g" привласнює значення рівне "0". Поточному номеру країни, що розглядається "i" задає значення "1".

Повторює дії:

Повторює дію:

До номера кольору країни, що розглядається додати ""1" ( g[i]:=g[i]+1;"), поки не можна країну "i" розфарбувати в колір "g[i]" або колір "i"-ой країни не більше числа "n". Якщо колір "i"-ой країни більше числа "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;

{ Функція прочитує поточне число,

з файла пов'язаного із змінною - f. }

function get:integer;

var

k, з:integer;

s:string;

ch:char;

begin

s:=''; k:=50;

while (s='')(or(k=43)or(k=45)or(k > 47)(and(k <8)))and(not eof(f)) do

begin

read(f, ch); k:=ord(ch);

if (k=43)or(k=45)or(k > 47)(and(k < 58)) then s:=s+ch;

end;

val(s, з, k);

if max < з then max:=з;

get:=з;

end;

{ Функція перевіряє, чи можна країну - i

закраситьцветом - g[i]. }

function pr:boolean;

var j:integer;

begin

pr:=true;

if i > 1 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(' Натисніть цифру, вказуючу номер файла');

writeln(' з якого будуть счтиваться дані. ');

writeln('');

for i:=1 to 3 do

writeln(' ', i,' - файл input', i,'. txt');

{Запросномерафайла.}

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 країн = ', n);

for j:=1 to max do

writeln(f1,'страна - ', 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

1. Дана функцияf(х) = а+b*х*Sin(з*х+d), в якої коеффициентиа, b, з, dопределяются функциейRndс використанням процедуриRandomize. Постояннаяkопределяется в інтервалі[0.1;0.2]з шагом0.01. Скласти програму визначення першої точки перетину прямойу = k*хс функциейfдляx > 0.

Текст програми:

CLS

RANDOMIZE 1000

INPUT "точність"; t

a1 = RND(100)

q1 = RND(90)

q2 = RND(80)

q3 = RND(110)

DEF fnf (х) = a1 + q1 * х * SIN(q2 * х + q3) - k * х

а = 0: b = 110

FOR k =. 1 TO. 2 STEP. 01

GOSUB pod1

GOSUB pod2

PRINT "при k="; k

cor = (x1 + x2) / 2: у = fnf(cor) + k * х

PRINT "точка перетину"

"PRINT х="; cor; "у="; у;

а = x2

NEXT k

PRINT "Точність"; t

END

а = x2

NEXT k

PRINT "Точність"; t

END

pod1: 'відділення коріння в інтервалі а, в'

s = 10 * t: х = а

200: р = fnf(х) * f(х + s)

IF р > 0 THEN 1

x1 = х: x2 = х + s: RETURN

1 х = х + s: IF х < b - s THEN 200

RETURN

pod2: 'уточнення кореня'

10 х = (x1 + x2) / 2: у = fnf(х)

IF fnf(x1) * у > 0 THEN x1 = х ELSE x2 = х

IF ABS(x2 - x1) > t THEN 10

RETURN

Дані:

а = 0

b = 110

точність?. 001

Результати:

при k=. 1

точка перетину

х=. 0096875 у=. 7444314

при k=. 11

точка перетину

х=. 0196875 у=. 7470496

при k=. 12

точка перетину

х=. 0296875 у=. 7497169

при k=. 13

точка перетину

х=. 0396875 у=. 7524328

при k=. 14

точка перетину

х=. 0496875 у=. 7551972

при k=. 15

точка перетину

х=. 0596875 у=. 7580096

при k=. 16

точка перетину

х= 6.968751Е-02 у=. 7608697

при k=. 17

точка перетину

х= 7.968751Е-02 у=. 7637773

при k=. 18

точка перетину

х=. 0896875 у=. 7667319

при k=. 19

точка перетину

х=. 0996875 у=. 7697333

2. Відомі координати вершин четирехугольникаA, В, З, D. Найті точку перетину його діагоналей і найбільший радіус кола, яке має центр в цій точці і повністю лежить всередині цього чотирикутника. Координати точок розташувати на гнучкому диску.

Текст програми:

REM Програма знаходження точки перетину діагоналей 4-х косинця

REM і найбільшого радіуса кола лежачого в ньому.

"CLS

OPEN a:"zad2.dat" FOR INPUT AS #1

OPEN a:zad2.txt" FOR OUTPUT AS #2

DIM r(6)

INPUT #1, x1, y1, x2, y2, x3, y3, x4, y4

х = (x3 * y2 - x2 * y3)( * (x4 - x1) - (x4 * y1 - x1 * y4) * (x3 - x2)) / (y4

- y1) * (x3 - x2) - (y3 - y2) * (x4 - x1))

у = (y4 - y1)( * (х - x1) / (x4 - x1)) + y1

r(1) = ABS(x2 - x1)( * у - (y2 - y1) * х + x1 * y2 - y1 * x2) / SQR(x2 - x1) ^

2 + (y2 - y1) ^ 2)

r(2) = ABS(x3 - x2)( * у - (y3 - y2) * х + x2 * y3 - y2 * x3) / SQR(x3 - x2) ^

2 + (y3 - y2) ^ 2)

r(3) = ABS(x4 - x3)( * у - (y4 - y3) * х + x3 * y4 - y3 * x4) / SQR(x4 - x3) ^

2 + (y4 - y3) ^ 2)

r(4) = ABS(x1 - x4)( * у - (y1 - y4) * х + x4 * y1 - y4 * x1) / SQR(x1 - x4) ^

2 + (y1 - y4) ^ 2)

r(5) = ABS(x3 - x1)( * у - (y3 - y1) * х + x1 * y3 - y1 * x3) / SQR(x3 - x1) ^

2 + (y3 - y1) ^ 2)

r(6) = ABS(x4 - x2)( * у - (y4 - y2) * х + x2 * y4 - y2 * x4) / SQR(x4 - x2) ^

2 + (y4 - y2) ^ 2)

min = r(1)

FOR i = 2 TO 6

IF r(i) = 0 THEN GOTO 5

IF r(i) <in THEN min = r(i)

5 NEXT i

PRINT "Точка перетину діагоналей Про ("; х; ","; у; ")"

PRINT "Радіус кола лежачого в 4-х косинці ABCD, R= ", min

PRINT #2, "Точка перетину діагоналей Про ("; х; ","; у; ")"

PRINT #2, "Радіус кола лежачого в 4-х косинці ABCD, R= ", min

Дані з диска а:

1,1 2,1 1,2 2,2

Результати:

Точка перетину діагоналей Об (1.5, 1.5)

Радіус кола лежачого в 4-х косинці ABCD, R=. 5

3. Елементи двумерного массиваQ(m, n) (m > n) визначаються по одній з формул:

- якщо номер строкиi <номера столбцаj, то елементQ(i, j) обчислюється по формулі

- еслиi < j, тоQ(i, j) = eRnd*Sin(Rnd-0.5),

- еслиi = j, тоQ(i, j)=Log(10*Rnd)/Sin(Rnd),

- еслиi > j, тоQ(i, j)=Rnd*Q(j, i).

За отриманим таким чином даними знайти і видати на друк:

- рядок з найбільшим середнім значенням елементів,

- рядок, в якому різниця рядом вартих елементів - найменша,

- Елементи квадратної матриці (n, n), з максимальною сумою діагональних елементів.

Текст програми:

CLS

2 INPUT "Число рядків стовпців"; m, n

IF m > = n THEN 1

PRINT "Число рядків повинне бути більше числа стовпців": GOTO 2

1 DIM q(m, m)

FOR i = 1 TO m

FOR j = 1 TO m

IF i < j THEN q(i, j) = EXP(RND) * SIN(RND -. 5)

IF i = j THEN q(i, j) = LOG(10 * RND) / SIN(RND)

IF i > j THEN q(i, j) = RND * q(j, i)

NEXT j

NEXT i

FOR i = 1 TO m

FOR j = 1 TO n

PRINT USING "##.### "; q(i, j);

NEXT j

PRINT

NEXT i

DIM s(m)

FOR i = 1 TO m

f = 0

FOR j = 1 TO n

f = f + q(i, j)

NEXT j: s(i) = f / n

NEXT i

PRINT

PRINT "Рядок з найбільшим середнім значенням"

max = s(1)

FOR j = 1 TO n

FOR i = 1 TO m

IF s(i) > = max THEN max = s(i): ii = i

NEXT i

PRINT USING "##.####"; q(ii, j);

NEXT j

PRINT

PRINT

PRINT "Рядок в якій різниця стоячих рядом ел-тов найменша"

min = ABS(q(1, 1) - q(1, 2))

FOR i = 1 TO m

FOR j = 2 TO n

z = ABS(q(i, j - 1) - q(i, j))

NEXT j

IF z > = min THEN 33

min = z: kk = i

33 NEXT i

FOR i = 1 TO n

PRINT USING "##.#### "; q(kk, i);

NEXT i

PRINT

s = 0

FOR i = 1 TO n

s = s + q(i, i)

NEXT i

k = 0

FOR i = 1 TO n

k = k + q(i + 1, i)

NEXT i

k(i) = k

PRINT

PRINT "Ел-ти квадратної матриці (n, n) з макс. сумою діагональних ел-тов"

max = s

FOR i = 1 TO n

FOR j = 1 TO n

IF k(i) > = s THEN PRINT USING " ##.#### "; q(i + 1, j);

IF k(i) < s THEN PRINT USING " ##.#### "; q(i, j);

NEXT j

PRINT

NEXT i

Дані:

Число рядків стовпців? 4,3

Результати:

Початкова матриця

3.842 -0.373 0.367

- 0.304 43.204 0.537

0.353 0.468 -0.708

0.201 -0.015 0.021

Рядок з найбільшим середнім значенням

- 0.303743.2038 0.5367

Рядок в якій різниця стоячих рядом ел-тов найменша

0.2005 -0.0149 0.0212

Ел-ти квадратної матриці (n, n) з макс. сумою діагональних ел-тов

3.8424 -0.3729 0.3669

- 0.3037 43.2038 0.5367

0.3530 0.4677 -0.7079

4. Скласти таблицю значень певного інтеграла

b

ò(х*tg(х)/(1+x2))*dxпри зміні верхньої межі в інтервалі[t1;][t2]

а

з шагомs.

Інтегрувати методом трапецій із заданою точністю. На друк видати змінну межу, результат. Друк організувати операторомPrintUsing.

Текст програми:

"CLS

OPEN a:z4.txt" FOR OUTPUT AS #1

DEF fna (х) = (х * TAN(х)) / (1 + х ^ 2)

INPUT "Нижня межа інтеграла"; а

INPUT "Введіть зміну верхньої межі інтеграла, b"; t1, t2

INPUT "Введіть крок"; s

INPUT "Точність"; t

FOR b = t1 TO t2 STEP s

PRINT "Верхня межа"; a; "Точність"; t

PRINT #1, "Верхня межа"; a; "Точність"; t

GOSUB INT2

PRINT USING " b=####.##### INTEGR=####.#####"; b; IN1

PRINT #1, USING " b=####.##### INTEGR=####.#####"; b; IN1

NEXT b

END

INT1:

dx = (b - a) / (n - 1)

IN1 = (fna(a) + fna(b)) / 2

х = а

5 х = х + dx

IN1 = IN1 + fna(а + dx)

IF х <THEN 5

IN1 = IN1 * dx

RETURN

INT2:

n = 100

45 GOSUB INT1: R = IN1

n = n + 20: GOSUB INT1

IF ABS(R - IN1) > t THEN 45

RETURN

Дані:

Нижня межа інтеграла? 2

Введіть зміну верхньої межі інтеграла, b? 3,5

Введіть крок?. 9

Точність?. 001

Результати:

Верхня межа 2 Точність. 001

b= 3.00000 INTEGR= -0.86889

Верхня межа 2 Точність. 001

b= 3.90000 INTEGR= -1.64549

Верхня межа 2 Точність. 001

b= 4.80000 INTEGR= -2.32331