Главная   Добавить в избранное Завдання з програмування на Visual Basic | практическая работа


Бесплатные Рефераты, дипломные работы, курсовые работы, доклады - скачать бесплатно Бесплатные Рефераты, дипломные работы, курсовые работы, доклады и т.п - скачать бесплатно.
 Поиск: 


Категории работ:
Рефераты
Дипломные работы
Курсовые работы
Контрольные работы
Доклады
Практические работы
Шпаргалки
Аттестационные работы
Отчеты по практике
Научные работы
Авторефераты
Учебные пособия
Статьи
Книги
Тесты
Лекции
Творческие работы
Презентации
Биографии
Монографии
Методички
Курсы лекций
Лабораторные работы
Задачи
Бизнес Планы
Диссертации
Разработки уроков
Конспекты уроков
Магистерские работы
Конспекты произведений
Анализы учебных пособий
Краткие изложения
Материалы конференций
Сочинения
Эссе
Анализы книг
Топики
Тезисы
Истории болезней


 





Завдання з програмування на Visual Basic - практическая работа


Категория: Практические работы
Рубрика: Программирование, компьютеры и кибернетика, ИТ технологии
Размер файла: 53 Kb
Количество загрузок:
144
Количество просмотров:
3163
Описание работы: практическая работа на тему Завдання з програмування на Visual Basic
Подробнее о работе: Читать или Скачать
Смотреть
Скачать



Завдання з програмування на VBA

2009 рiк

Завдання 1

Обчислити суму перших 5-ти членiв арифметичної прогресiї за формулами:

Sn = n*(a1 + an)/2,

a1 = 1,3*x2 + 4,8*cos2y,

an = a1 + d*(n-1),

де n = 5, y = 1,87, d = 5,83, x = e2,5.

Розвязок

Програмуємо вiдповiдну програму на VBA, спочатку декларуючи потрiбнi змiннi, а потім задаючи їхні значення. Далi програмуємо задані розрахункові формули. Для виводу результату розрахунку в документ Word застосовуємо оператор WordBasic.Insert. Нижче наведений текст програми Завдання1, скопійований з редактора Visual Basic for Application.

Attribute VB_Name = "Модуль1"

Iгор Каплик - жовтень, 2006 р.

Sub Завдання1()

Dim S, a1, an, x, y, d

Dim n

n = 5

d = 5.83

y = 1.87

x = Exp(2.5)

a1 = 1.3 * x ^ 2 + 4.8 * Cos(y) ^ 2

an = a1 + d * (n - 1)

S = n * (a1 + an) / 2

WordBasic.Insert "Sn = "

WordBasic.Insert Str(S)

End Sub

Для виклику цієї програми на виконання iз середовища Word набираємо Сервіс > Макрос > Макроси > Завдання1 > Выполнить, або (Alt+F8) > Завдання1 > Выполнить. В результаті отримаємо таке: Sn = 1025.07072799505

Завдання 2

Задано дiйснi числа а, b, с (а ? 0). Знайти дiйснi корені рівняння

ax2 + bx + c = 0.

Якщо дiйснiх коренів немає, на друк вивести повідомлення "Корені комплексні".

Розвязок

Рішення цього повного квадратного рівняння виражаються формулою:

x1,2 = (-b ± D1/2) / 2a,

де D = b2 - 4ac -- детермінант. Якщо D < 0, то рівняння не має дійсних коренів.

У вiдповiдностi з цим i програмуємо це завдання з використанням операторів умовного переходу If... Then... Else. Оскільки в умові завдання не сказано про конкретні значення коефiцiєнтiв рівняння, будемо задавати їх всередині програми довільно.

Текст програми Завдання2 наведений нижче.

Attribute VB_Name = "Модуль2"

Iгор Каплик - жовтень, 2006 р.

Sub Завдання2()

Dim X1, X2, D, a, b, c

a = 5

b = 7

c = -10

D = b ^ 2 - 4 * a * c

If D >= 0 Then

X1 = -b + Sqr(D): X2 = -b - Sqr(D)

WordBasic.Insert "X1 = "

WordBasic.Insert Str(X1)

WordBasic.ParaDown

WordBasic.Insert "X2 = "

WordBasic.Insert Str(X2)

Else: WordBasic.Insert "Корені рівняння комплексні!"

End If

End Sub

Задаючи значення a = 5, b = 7, c = -10, отримаємо таку вiдповiдь:

X1 = 8.7797338380595

X2 = -22.7797338380595

Якщо ж задати значення a = 5, b = 7, c = 10 отримаємо вiдповiдь:

Корені рівняння комплексні!

Завдання 3

Скласти блок-схему та програму для обчислення вiдповiдних кожному варіанту виразів. Завдання виконати для таких варiантiв:

а) Змінна у при повтореннях циклу змінюється вiд початкового значення у = 1 до кінцевого у = 9 з кроком 1.

б) Змінна у, що змінюється при повтореннях циклу, є одновимірним масивом у = {1,5; 3; 0,6; 0,9}.

Вивести початкові дані та результати обчислень у вигляді таблиці значень X, P, Z, де:

X = (ln y + a*cos c) / (ey - tg a - sin2 c)

sin X + |X - y|1/2 * sin2 b при X > у

P = 1,35 * X2 при X = у

ln |X + 1,45y| * tg (bc) при X < у

Z = P + 0,5b2 + cos (P - a)

а = 4,32; b = 6,89; c = 171/2

Розвязок

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

n -- кiлькiсть повторень циклу: для а) n = 9, для б) n = 4;

t(n) -- масив значень змінної у;

i -- лічильник: для а) i = 1, 2, ..., 9, для б) i = 1, 2, 3, 4;

var$ -- строкова константа, яка може приймати значення "а)" або "б)" в залежності вiд вибраного варіанту розрахунків.

Блок-схема програми Завдання3 наведена на рисунку.

Масив t(n) заповнюється в залежності вiд значення константи var$, яке вводиться у вiкнi InputBox "Номер варіанта розрахунку", показаному на рисунку нижче.

Нижче наведений текст програми Завдання3.

Attribute VB_Name = "Модуль3"

Iгор Каплик - жовтень, 2006 р.

Sub Завдання3()

Dim x, z, p, a, b, c, y, t(9), var$

Dim n, i

a = 4.32

b = 6.89

c = Sqr(17)

var$ = InputBox("Введiть значення а) чи б) для номера варіанта" & var$,

"Номер варiанта розрахунку")

If var$ = "" Then GoTo EndSub

WordBasic.Insert "a =" & Str(a): WordBasic.InsertPara

WordBasic.Insert "b =" & Str(b): WordBasic.InsertPara

WordBasic.Insert "c =" & Str(c): WordBasic.InsertPara

If var$ = "a)" Then n = 9

For i = 1 To n t(i) = i

Next

End If

If var$ = "б)" Then n = 4

t(1) = 1.5: t(2) = 3: t(3) = 0.6: t(4) = 0.9

End If

WordBasic.Insert "Варiант - " & var$ & "; n =" & Str(n)

WordBasic.InsertPara: WordBasic.Insert "y = "

For i = 1 To n

WordBasic.Insert Str(t(i)) & "; "

Next

WordBasic.InsertPara: WordBasic.InsertPara

WordBasic.Insert "| y | x | p | z |"

WordBasic.InsertPara

For i = 1 To n

y = t(i)

x = (Log(y) + a * Cos(c)) / (Exp(y) - Tan(a) - Sin(c) ^ 2)

If x > y Then p = Sin(x) + Sqr(Abs(x - y)) * Sin(b) ^ 2

If x = y Then p = 1.35 * x ^ 2

If x < y Then p = Log(Abs(x + 1.45 * y)) * Tan(b * c)

z = p + 0.5 * b ^ 2 + Cos(p - a)

WordBasic.Insert Str(y) & "|" & Str(x) & "|" & Str(p) & "|" _

& Str(z) & "|"

WordBasic.InsertPara

Next

End Sub

При виборі варіанта а) отримаємо такий результат:

a = 4.32

b = 6.89

c = 4.12310562561766

Варіант - a); n = 9

y = 1; 2; 3; 4; 5; 6; 7; 8; 9;

y| x | p | z |

1| 6.16921036251777 | .625618747883335| 23.5106051035047|

2|-.398860206108572 | .123457564548993| 23.3662361501907|

3|-7.67044472021885E-02| .195591633792759| 23.3769597339635|

4|-1.97047675076656E-02| .236271096733771| 23.3842595618880|

5|-5.44692028846779E-03| .266678755930375| 23.3903486513538|

6|-1.52164514501239E-03| .291309521209447| 23.3956949504055|

7|-4.16081978834523E-04| .312086912073758| 23.4005023378817|

8|-1.07952008248923E-04| .330073751199657| 23.4048895849838|

9|-2.51459877725051E-05| .345936497380926| 23.4089361125556|

При виборі варіанта б) розрахунку результат буде іншим:

a = 4.32

b = 6.89

c = 4.12310562561766

Варіант - б); n = 4

y = 1.5; 3; .6; .9;

y | x | p | z |

1.5|-1.45204156144273 |-.04368718002541 | 23.3506847944415|

3 |-7.67044472021885E-02| .195591633792759| 23.3769597339635|

.6 | 2.26534231611546 | 1.18799513455253| 23.9240910970412|

.9 | 3.86856538687228 |-.104324993260116| 23.3476284888521|

Завдання 4

Обчислити наближене значення суми спадного ряду

S(t) = У hn(t), n = 1 ? ?,

hn(t) = [(n-1)/(n+1)]n(n-1)*(t2-1,6)1/2/(4,8c2+cos d)

з точністю е = 10-5 для значень параметру t0 ? t ? t1 iз кроком Дt.

Точність обчислень визначається умовою R = |hn(t)| ? е. При розробці програми передбачити переривання обчислень при n > n0 на випадок, якщо виконання умови R ? е не відбудеться при прогумованих n0 членів ряду, де n0 -- обмежувач просумованих членів ряду.

Вихiднi дані:

с = 2,9; d = 0,41; t0 = 2,5; t1 = 3,5; Дt = 0,01

Розвязок

Визначимо обмежувач просумованих членів ряду:

n0 = (t1 - t0) / Дt = (3,5-2,5)/0,01 = 100

Нижче наведена програма Завдання4 даного завдання на язику VBA. Для забезпечення безумовного виходу з програми ми використали мітку EndSub. Щоб простежувати процес обчислень, ми вивели на друк поточні значення величин n, t, hn та Sn.

Attribute VB_Name = "Модуль4"

Iгор Каплик - жовтень, 2006 р.

Sub Завдання4()

Dim c!, d!, t0!, t!, t1!, dt!, ht!, S!, eps!, n, n0

c! = 2.9: d! = 0.41: t0! = 2.5: t1 = 3.5: dt = 0.01

eps! = 0.00001: n0 = (t1! - t0!) / dt n = 0: S = 0

WordBasic.Insert " n t hn Sn"

WordBasic.InsertPara

For t! = t0! To t1! Step dt

n = n + 1

If n = n0 Then GoTo EndSub

ht! = ((n - 1) / (n + 1)) ^ (n * (n - 1)) * _

Sqr(t ^ 2 - 1.6) / (4.8 * c ^ 2 + Cos(d))

S! = S! + ht!

WordBasic.Insert Str(n) & "; " & Str(t!) & "; " & _

Str(ht!) & "; " & Str(S!)

WordBasic.InsertPara

If ht! <= eps! Then GoTo EndSub

Next

EndSub: End Sub

Після виклику програми на виконання отримаємо такі результати:

n t hn Sn

1; 2.50; 5.223155E-02; 5.223155E-02

2; 2.51; 5.834686E-03; 5.806623E-02

3; 2.52; 8.248814E-04; 5.889111E-02

4; 2.53; 1.155269E-04; 5.900664E-02

5; 2.54; 1.604442E-05; 5.902269E-02

6; 2.55; 2.216024E-06; 0.0590249

Завдання 5

Скласти блок-схему та програму для персонального компютера за такої умови. Задано масив Х = {x} з n = 20 чисел:

Х = {-20; 15; 3; -9; 7; -6; 14; -13; 6; -7;

9; -12; 5; 7; -2; 17; 10; -1; 16; -3}

Знайти мiнiмальне по модулю значення х та його номер k.

Розвязок

Блок-схема даного алгоритму представлена нижче на рисунку.

Нижче наведена розроблена програма на VBA.

Attribute VB_Name = "Модуль5"

Iгор Каплик - жовтень, 2006 р.

Sub Завдання5()

Dim x(20), t, i, k

x(1) = -20: x(2) = 15: x(3) = 3: x(4) = -9: x(5) = 7

x(6) = -6: x(7) = 14: x(8) = -13: x(9) = 6: x(10) = -7

x(11) = 9: x(12) = -12: x(13) = 5: x(14) = 7: x(15) = -2

x(16) = 17: x(17) = 10: x(18) = -1: x(19) = 16: x(20) = -3

t = Abs(x(1))

For i = 2 To 20

If Abs(x(i)) < t Then

t = Abs(x(i)): k = i

End If

Next

WordBasic.Insert "Мiнiмальне абсолютне значення - х =" & Str(t) & _

"; k =" & Str(k)

End Sub

Після виклику програми Завдання5 на виконання отримаємо такий результат:

Мiнiмальне абсолютне значення - х = 1; k = 18

Завдання 6

Скласти блок-схему та програму, яка б виводила на друк сгенерований, сформований та впорядкований масиви. Генерувати i вивести на друк одновимірний масив Х = {xi}, i = 1 ? n, n = 13 в дiапазонi цілих чисел [-30; 40]. Сформувати i вивести на друк масив Y iз елементів масиву Х, які стоять на парних місцях. Впорядкувати масив Y за спаданням модулів його елементів.

Розвязок. Масив Х має 13 елементів, з яких х1 = -30, хn = 40, а iншi змінюються вiд х1 з кроком величин dx = (хn - х1) / (n - 1).

Формування масиву Z за спаданням модулів елементів масиву Y представляє собою процедуру сортування, для реалiзацiї якої є багато різних спецiалiзованих підпрограм. Але тут ми реалізуємо найпростіший алгоритм сортування вибором. Блок-схема алгоритму програми Завдання6 представлена на рисунку нижче.

Текст програми Завдання6, скопійований з редактора Visual Basic, наведений нижче.

Attribute VB_Name = "Модуль6"

Iгор Каплик - жовтень, 2006 р.

Sub Завдання6()

Dim x!(13), y!(6), z!(6), dx!, x1!, xn!, v!, n, m, i, j, k

n = 13: m = n / 2

x1! = -30: xn! = 40

dx! = (xn! - x1!) / (n - 1)

x!(1) = x1!

WordBasic.Insert "Масив Х:": WordBasic.InsertPara

WordBasic.Insert Str(x!(1)): WordBasic.InsertPara

For i = 2 To n

x!(i) = x!(i - 1) + dx!

WordBasic.Insert Str(x!(i)): WordBasic.InsertPara

Next

WordBasic.InsertPara

WordBasic.Insert "Масив Y:": WordBasic.InsertPara

For i = 1 To m

y!(i) = x!(2 * i): z!(i) = y!(i)

WordBasic.Insert Str(y!(i)): WordBasic.InsertPara

Next

WordBasic.InsertPara

WordBasic.Insert "Масив Z:": WordBasic.InsertPara

For i = 1 To m

k = i

For j = i + 1 To m

If Abs(z!(j)) > Abs(z!(k)) Then

k = j: v! = z!(i): z!(i) = z!(k): z!(k) = v!

End If

Next

WordBasic.Insert Str(z!(i)): WordBasic.InsertPara

Next

End Sub

Після виклику програми Завдання6 на виконання отримаємо такi результати:

Масив Х:

-30

-24.16667

-18.33333

-12.5

-6.666665

-.8333311

5.000002

10.83334

16.66667

22.5

28.33334

34.16667

40

Масив Y:

-24.16667

-12.5

-.8333311

10.83334

22.5

34.16667

Масив Z:

34.16667

-24.16667

22.5

-12.5

10.83334

-.8333311

Завдання 7

Скласти блок-схему та програму. Задано масив Y = {yi}, i = 1? n, n = 8. Обчислити середнє арифметичне елементів цього масиву, менших заданого числа А. Розвязок

Оскільки в завданні не вказані числа уi та А, візьмемо їх довільно:

Y = {-2; 15; 3; -9; 7; -6; 14; -13}, А = 6

Програма буде складатися з алгоритму вибору з масиву Y елементів yk, менших А, i обчислення їх середнього арифметичного С за формулою:

С = У yk / n, k = 1? n,

де n -- кiлькiсть елементів масиву Y, менших А.

Блок-схема програми Завдання7 наведена на рисунку вище.

Текст програми Завдання7 наведено нижче.

Attribute VB_Name = "Модуль7"

Iгор Каплик - жовтень, 2006 р.

Sub Завдання7()

Dim y!(8), a!, c!, i, j, k

y!(1) = -2: y!(2) = 15: y!(3) = 3: y!(4) = -9

y!(5) = 7: y!(6) = -6: y!(7) = 14: y!(8) = -13

n = 8: a! = 5

k = 0: c! = 0

For i = 1 To n

If y!(i) < a! Then c! = c! + y!(i): k = k + 1

End If

Next c! = c! / k

WordBasic.Insert "Середнє арифметичне С = " & Str(c!)

WordBasic.Insert ", k =" & Str(k)

End Sub

Після виклику програми на виконання отримаємо такий результат:

Середнє арифметичне С = -5.4, k = 5








 
Показывать только:


Портфель:
Выбранных работ  


Рубрики по алфавиту:
А Б В Г Д Е Ж З
И Й К Л М Н О П
Р С Т У Ф Х Ц Ч
Ш Щ Ъ Ы Ь Э Ю Я

 

 

Ключевые слова страницы: Завдання з програмування на Visual Basic | практическая работа

СтудентБанк.ру © 2015 - Банк рефератов, база студенческих работ, курсовых и дипломных работ, шпаргалок и докладов по различным дисциплинам, а также отчеты по практике и многое другое - бесплатно.
Лучшие лицензионные казино с выводом денег