Інформатика Алгоритмізація та програмування

[ виправити ] текст може містити помилки, будь ласка перевіряйте перш ніж використовувати.

скачати

Міністерство освіти і науки Російської федерації
Федеральне агентство з освіти
Саратовський Державний Технічний Університет
Кафедра «Інформатика»
Курсова робота
Тема: «Інформатика. Алгоритмізація та програмування »
 
Виконав
студент АМФ ПСМ-21
Зеленін-Адамов С.Г.
                                                                                               Номер залікової книжки 040106
Перевірив асистент
кафедри «Інформатика»
Можаєва Н.А.

Саратов 2006

ЗМІСТ
Завдання 1. 3
Завдання 2. 7
Завдання 3. 10
Завдання 4. 13
Завдання 5. 17
Список використаної літератури .. 21


Завдання 1.

Виконати розрахунок максимальної потужності двигуна автомобіля і розрахунок зовнішньої характеристики двигуна при наступних початкових умовах:
m o,
кг
V max, км / год
K в
кг / м 3
F,
м 2
Ψ v
n N
хв -1
K v
η тр
6000
100
0,62
3,9
0,021
3000
1,2
0,88
РІШЕННЯ.
Максимальна потужність двигуна тягача за умови забезпечення заданої максимальної швидкості розраховується за формулою:
, (1)
де Ne max - шукана максимальна потужність, кВт;
N v - Потужність на режимі максимальної швидкості, кВт;
      K v - Відношення частоти обертання колінчастого вала двигуна при максимальній швидкості руху тягача до номінальній частоті обертання:
, (2)
n N - частота обертання колінчастого вала двигуна на режимі максимальної потужності (номінальна), хв -1
      n v - частота обертання колінчастого вала двигуна при максимальній швидкості автомобіля, хв -1.
Потужність на режимі максимальної швидкості визначається за формулою (3):

, (3)
де m 0   - Маса тягача, кг;
Ψ v   - Сумарний коефіцієнт опору дороги;
V max - Задана максимальна швидкість тягача;
η тр - ККД трансмісії;
K в   - Коефіцієнт опору повітря, кг / м 3;
F - лобова площа тягача, м 2.
Зовнішня характеристика двигуна представляє собою залежність потужності, крутного моменту від частоти обертання колінчастого вала двигуна при повному відкритті заслінки карбюратора.
При відомому значенні максимальної потужності Ne max потужність в будь-якій іншій точці характеристики може бути знайдена за формулою Лейдерман:
(4)
де Ne - потужність двигуна при довільному значенні частоти обертання колінчастого вала, кВт;
Ne max - максимальна потужність двигуна, кВт;
n - задана частота обертання колінчастого вала, хв -1;
n N - Частота обертання колінчастого вала на режимі максимальної потужності, хв -1;
a, b, c - коефіцієнти, які вживаються для бензинових двигунів, рівні 1.
Крутний момент в будь-якій точці характеристики визначається за формулою:

                              Me = 9549 (Ne / n), (5)
Складемо схему алгоритму. В алгоритмі буде три блоки: введення вихідних даних, розрахунок за формулами (1) - (5) і вивід результату.
SHAPE \ * MERGEFORMAT
Початок
m o, V max, K в, F, Ψ v, n N, K v, η тр


a = 1, b = 1, c = 1


Nv, Nemax, Ne, Me, nv
Кінець


За наведеною блок-схемою була складена програма, лістинг якої наведено нижче.
program lab1;
var m0, vmax, Ke, F, Fv, nN, Ky, n_tr: real; {peremennye - ishodnye dannye}
Nv, Ne_max, n_v, Ne, Me: real; {peremennye - rezultaty}
BEGIN
{----------- VVOD ISHODNYH DANNYH -----}
writeln ('Vvedite ishodnye dannye:');
write ('m0 ='); readln (m0);
write ('Vmax ='); readln (Vmax);
write ('Ke ='); readln (Ke);
write ('F ='); readln (F);
write ('Fv ='); readln (Fv);
write ('nN ='); readln (nN);
write ('Ky ='); readln (Ky);
write ('n_tr ='); readln (n_tr);
{---------- RASCHET -------------------}
Nv: = 2.725E-03 * m0 * Fv * Vmax / n_tr +2.14 e-05 * Ke * F * sqr (Vmax) * Vmax / n_tr;
Ne_max: = Nv / (Ky * (1 + Ky * (1 + Ky)));
n_v: = Ky * nN;
Ne: = Ne_max * (n_v / nN + sqr (n_v / nN)-sqr (n_v / nN) * n_v / nN);
Me: = 9549 * (Ne / n_v);
{---------- VIVOD REZULTATA -----------}
writeln ('Nv =', Nv);
writeln ('Ne_max =', Ne_max);
writeln ('n_v =', n_v);
writeln ('Ne =', Ne);
writeln ('Me =', Me);
End.
Вирішення цієї ж завдання було проведено в ЕТ Excel. Нижче представлений лист з рішенням і результатами.



Програму написану мовою Паскаль копіюю і вставляю в проект, потім виправляю суттєві відмінності.

Завдання 2.

Обчислити функцію , Для з кроком .

a
b
h
f (x)
Початок відрізка
Кінець відрізка
Крок по відрізку
9
-12
0
1

початок
X =- 12
X <-7
X <=- 3
f =
f, x
кінець
f =
f =
X = X +1
x £ 0

РІШЕННЯ
Виконаємо схему алгоритму.





Ця схема була реалізована на мові Паскаль в трьох варіантах: були задіяні цикли з передумовою, з постусловіем і з параметром. Листинги програм наведено нижче.
а) Цикл з постусловіем
program lab 21;
  var x, f: real;
begin
x: =- 12;
repeat
if x <-7 then f: = sin ((3.14/12) * x)
else
if x <=- 3 then f: = 2 * cos ((3.14 / 6) * x + (3.14/12))
else
f: = 5 * sin ((3.14/12) * x);
writeln ('f (', x: 3:1 ,')=', f: 6:2);
x: = x +1;
until x> 0;
readln;
end.
б) Цикл з передумовою
program lab 22;
  var x, y: real;
begin
x: =- 12;
while x <= 0 do
begin
if x <-7 then y: = sin ((3.14/12) * x)
else
if x <=- 3 then y: = 2 * cos ((3.14 / 6) * x + (3.14/12))
else
y: = 5 * sin ((3.14/12) * x);
writeln ('f (', x: 3:1 ,')=', y: 6:2);
x: = x +1;
end;
readln;
end.
в) Цикл з параметром
program lab 23;
  var
x, y, a, b, h, n1: real;
n, i: integer;
begin
x: =- 12;
a: =- 12; b: = 0; h: = 1;
n1: = (ba) / h; n: = round (n1);
for i: = 0 to n do
begin
if x <-7 then y: = sin ((3.14/12) * x)
else
if x <=- 3 then y: = 2 * cos ((3.14 / 6) * x + (3.14/12))
else
y: = 5 * sin ((3.14/12) * x);
writeln ('f (', x: 3:1 ,')=', y: 6:2);
x: = x +1;
end;
readln;
end.
Вирішення цієї ж завдання було проведено в Excel. При обчисленні функції використовувалася логічна функція ЕСЛИ. Лист з вирішенням завдання розміщений нижче.

Програму написану мовою Паскаль копіюю і вставляю в проект, потім виправляю суттєві відмінності.


Задача 3

Застосувати метод розподілу відрізка навпіл на інтервалі і знайти з точністю корені рівняння .




9
-3
0

РІШЕННЯ
Алгоритм методу половинного поділу полягає в наступному:
1. Вибрати нульове наближення x 0 = (a + b) / 2.
2. Якщо f (x 0) = 0, то x 0 очевидно є коренем рівняння.
3. Якщо f (x 0) ≠ 0, то перевірити умови f (x 0) Ч f (a) <0 і f (x 0) Ч f (b) <0 і вибрати той з відрізків [a, х 0], [ х 0, b], на межах якого виконана одна з цих умов (тобто функція f (х) має на кінцях відрізка протилежні знаки).
4. Обраний відрізок знову розділити навпіл і обчислити значення x 1.
5. Для х 1 перевірити умову   f (х 1) = 0 і, якщо воно не виконується, повернутися до п. 4.
6. Процес поділу відрізків навпіл продовжити до тих пір, поки довжина відрізка, на кінцях якого функція має протилежні знаки, не буде менше e.
7. Прийняти, що умова f (x k) = 0 виконано, якщо
Нижче приведені блок-схема алгоритму і лістинг програми на мові Паскаль.
SHAPE \ * MERGEFORMAT
початок
Введення a, b, eps
x = (a + b) / 2, i = 0
F (x) =
F (x) = 0
Abs (F (x)) <eps
F (x) * F (a)> 0
x: = b
x = (a + b) / 2, i = i +1
кінець
Друк x, i
x: = a
істина
брехня


Program lab3;
function f1 (x: real): real;
begin
f1: = cos (0.2 * x * x-2);
end;
var
x, a, b, e: real;
iteraz: integer;
begin
write ('Input a ='); readln (a);
write ('Input b ='); readln (b);
write ('Input e ='); readln (e);
iteraz: = 0;
x: = (a + b) / 2;
while (f1 (x) <> 0) and (abs (ab)> e) do
begin
x: = (a + b) / 2;
iteraz: = iteraz +1;
if (f1 (a) * f1 (x)) <0 then b: = x
else a: = x;
writeln ('n =', iteraz, 'x =', x: 3:6, 'f (x) =', f1 (x): 3:6);
end;
  readln;
end.
Вирішення цієї задачі було проведено і в MS Excel. Лист з вирішенням задачі і відповіддю наведено нижче.

Завдання 4.

Обчислити визначений інтеграл методом прямокутників: або трапецій, на вибір.
, , , , З точністю .
Формула методу прямокутників:
Формула методу трапецій: .




9
-3π
0

РІШЕННЯ
Алгоритм методу трапецій полягає в наступному:
1. Відрізок [a, b] розбивається на n рівних частин.
2. Інтеграл являє собою площу криволінійної трапеції, обмеженої віссю OX, прямими x = a і x = b і графіком функції. Очевидно, що інтеграл від функції на відрізку дорівнює сумі інтегралів від цієї ж функції на кожному з маленьких відрізків, отриманих в результаті розбиття. Але на кожному з маленьких відрізків ми наближено замінюємо площа криволінійної трапеції на площу прямолінійною трапеції з основою (заввишки), що дорівнює довжині маленького відрізка, і висотами (підставами) f (x n) і f (x n +1), де x n - ліва межа відрізка, x n +1 - права межа відрізка. Підстава (висота трапеції) дорівнює
(Ba) / n, і таким чином площа трапеції дорівнює
(F (x n) + f (x n +1)) (ba) / 2n. У нас всього n трапецій, причому кожні дві сусідні трапеції мають однакові висоти (підстави). Таким чином, в суму кожне з f (x n) крім f (a) і f (b) увійде двічі, і таким чином весь інтеграл обчислюється як , Де .
3. У методі трапецій не визначений крок (кількість відрізків розбиття). Очевидно, що чим більше кількість відрізків, тим більш точним буде результат. Тому, задаємо початкове значення n (наприклад n = 10) і обчислюємо інтеграл.
4. Після цього подвоюємо n і знову обчислюємо інтеграл (п. 2). Порівнюючи отримані результати, робимо висновок, чи досягнута необхідна точність.
5. Якщо результати відрізняються один від одного менше ніж на ε, то необхідна точність досягнута. Якщо ні, то знову подвоюємо n і обчислюємо інтеграл ще раз (повертаємося до п. 4).
Нижче представлена ​​блок-схема алгоритму і лістинг програми.
SHAPE \ * MERGEFORMAT
ПОЧАТОК
a =- 3 ∙ pi, b = 0, n = 10, e = 0.001
f (x) =
S: = 0, h: = (ba) / n, x: = a
i = 1, n, 1
S: = S + h * (f (x) + f (x + h)) / 2, x: = x + h
S1 = S, n = 2 * n, x: = a, h: = (ba) / n
i = 1, n, 1
S: = S + h * (f (x) + f (x + h)) / 2, x: = x + h
| S1-S | <e
брехня
істина
Друк S, n
КІНЕЦЬ

program pr4;
uses crt;
var
h, a, b, S, dS, P, x, eps: real;
n, i: integer;
function f (x: real): real;
begin
f: = 0,1 * sin (0.1 * x +0.0025 * x * x) / cos (0.1 * x +0.0025 * x * x);
end;
begin
clrscr;
writeln ('input a, b, n, eps, please');
write ('a');
readln (a);
write ('b');
readln (b);
write ('n');
readln (n);
write ('eps');
readln (eps);
s: = 0;
repeat P: = S;
h: = (ba) / 2;
S: = 0;
x: = a;
for i: = 1 to n do
begin
x: = x + h;
S: = S + f (x);
end;
S: = S * h;
write ('n =', n: 3, 'h =', h: 12:9);
n: = n * 2;
until abs (PS) / (s * 100) <eps;
writeln;
writeln ('Result S =', S: 10:6, 'dS =', dS: 12:9);
writeln;
writeln ('Process ended');
writeln ('Press any key to exit');
repeat until keydivssed;
end.
Дане завдання було вирішене також в MS Excel. Лист з вирішенням задачі наведено нижче. Необхідна точність була досягнута при n = 10.

Програма виконана на мові Microsoft Visual Basic 6.0


Private Sub Command1_Click ()
Dim i As Integer
Dim x (1 To 40) As Double
Dim f (1 To 40) As Double
Dim f1 (1 To 40) As Double
Dim s (1 To 40) As Double
a = -3 * 3.14
b = 0
e = 0.1
n = 40
h = (b - a) / n
i = 1
x (i) = a
f (i) = 0.1 * Tan (0.1 * x (i) + 0.025 * x (i) ^ 2)
f1 (i) = f (i)
s (i) = h * f (i)
For i = 2 To n
x (i) = x (i - 1) + h
f (i) = 0.1 * Tan (0.1 * x (i) + 0.025 * x (i) ^ 2)
f1 (i) = f1 (i - 1) + f (i)
s (i) = h * f1 (i)
Next
For i = 1 To n
Print "s ="; s (i)
Next
If Abs (s (n) - ​​s (n - 1)) <e Then Print "подвійте n"
End Sub
Private Sub Form_Load ()
End Sub

Завдання 5.

Дана прямокутна матриця C i, j,, розміром . Якщо дана матриця є квадратною, знайти суму елементів головної діагоналі, в іншому випадку знайти суму всіх членів матриці.
РІШЕННЯ
Складемо схему алгоритму.
SHAPE \ * MERGEFORMAT
початок
m, n
i = 1 до m
j = 1 до n
C
m = n
«Прямокутна»
«Квадратна»
S = 0
i = 1 до m
S = 0
i = 1 до m
j = 1 до n
j = i
S = S + C
S = S + C
S
кінець



Program Lab_5;
uses crt;
var
i, j, m, n: integer;
b, a: array [1 .. 10,1 .. 10] of real;
s: real;
begin
clrscr;
write ('chislo stolbcov n ='); Readln (n);
write ('chislo strok m ='); readln (m);
begin
if m = n then
s: = 0;
for i: = 1 to n do
begin
for j: = 1 to m do
begin
write ('a [', i ,',', j ,']='); readln (a [i, j]);
end;
writeln;
end;
begin
if i = j then s: = s + a [i, j];
writeln (s: 6:3);
end;
if i <> j then
begin
s: = 0;
for i: = 1 to n do
begin
for j: = 1 to m do
begin
s: = s + a [i, j];
end;
writeln (s: 6:3);
end;
end;
readln;
end;
end.
Дане завдання було вирішене також в MS Excel. Лист з вирішенням задачі наведено нижче.

Програма виконана на мові Microsoft Visual Basic 6.0

Private Sub Command1_Click ()
Dim i, j, m, n As Integer
Dim s As Double
Dim c (1 To 50, 1 To 50) As Double
m = 3
n = 3
For i = 1 To m
For j = 1 To n
c (i, j) = 7 * i - j
Next
Next
s = 0
For i = 1 To m
For j = 1 To n
If m = n Then s = s + c (i, i) Else s = s + c (i, j)
Next
Next
Print s
End Sub
Private Sub Form_Load ()
End Sub
Список літератури
1. Інформатика: Базовий курс. / С. В. Симонович та ін СПб.: Питер, 2005
2. Острейковскій В. А. Інформатика: Учеб. для вузів. - М.: Вищ. шк., 2000. - 511 с.: Іл.
3. Алексєєв Є. В. та ін Обчислювальна техніка та програмування. Практикум з програмування: Практ. посібник / В. Є. Алексєєв, А. С. Ваулин, Г. Б. Петрова; Під ред. А. В. Петрова. - М.: Вищ. шк., 1991. - 400 с.: Іл
4. Глушаков С. В., Мельников І. В. Персональний комп'ютер: Навчальний курс / Худож. оформлювач А. С. Юхтман. - Харків: Фоліо; М.: ТОВ «Видавництво АСТ», 2001. - 520 с. - (Домашня б-ка).
5. Леонтьєв В. Новітня енциклопедія персонального комп'ютера. - М.: ОЛМА-ПРЕСС, 1999. - 640 с.
6. Козлов В.В., Можаєва Н.А., Зуєва Н.Г. Інформатика. Алгоритмізація і програмування. Мет. Вказівки і завдання до курсової роботи, 2006. -32с

Додати в блог або на сайт

Цей текст може містити помилки.

Програмування, комп'ютери, інформатика і кібернетика | Курсова
60.4кб. | скачати


Схожі роботи:
Алгоритмізація та програмування
Алгоритмізація і програмування розгалужуються процесів
Алгоритмізація і програмування процесів на Fox
Алгоритмізація і програмування процесів обробки даних у середовищі СУБД типу Fox
Алгоритмізація
Алгоритмізація завдань
Алгоритмізація навчання
Алгоритмізація процесу навчання молодших школярів
Основні поняття математичного програмування Побудова моделі задачі лінійного програмування
© Усі права захищені
написати до нас