Контрольная работа по "Информатика VBA"

Автор работы: Пользователь скрыл имя, 03 Декабря 2014 в 08:22, контрольная работа

Описание работы

Дан массив. 1)Определить элементы массива >-3 и < 9 2)определить элементы массива кратные 5 3)определить элементы массива больших их количества
Программа.
Sub Маркевич ()
Dim c(100) As Double, a As Integer, n As Integer
Range(Cells(1, 1), Cells(50, 50)).Clear

Файлы: 1 файл

Отчёт по информатике Маркевич (1).docx

— 24.05 Кб (Скачать файл)

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ

Мытищинский филиал

Федерального государственного бюджетного образовательного учреждения высшего профессионального образования

«МОСКОВСКИЙ ГОСУДАРСТВЕННЫЙ СТРОИТЕЛЬНЫЙ УНИВЕРСИТЕТ»

 

 

 

                                                Отчет по информатике.

 

Направление подготовки - 270800 - Строительство

Профиль подготовки - «Промышленное и гражданское строительство»

Квалификация выпускника - Специалист

Форма обучения – Очная

Выполнил студент: ПГСф 2-1с

Маркевич А.И.

 

 

 

 

 

 

 

 

 

 

2014г.

Работа №1.

 

Задание.

Дан массив. 1)Определить элементы массива >-3 и < 9  2)определить элементы массива кратные 5 3)определить элементы массива больших их количества

Программа.

Sub Маркевич ()

Dim c(100) As Double, a As Integer, n As Integer

Range(Cells(1, 1), Cells(50, 50)).Clear

n = Val(InputBox("n="))

Cells(1, 1) = "Массив"

Cells(1, 3) = "Задание 1"

Cells(1, 6) = "Задание 2"

Cells(1, 9) = "Задание 3"

For i = 2 To n

c(i) = Int(Rnd * 100)

Cells(i, 1) = c(i)

Next i

k1 = 0

For i = 2 To n

If (c(i) > -3) And (c(i) < 9) Then

c(i) = c(i)

Cells(i, 2) = c(i)

k1 = k1 + 1

Cells(3, 3) = "k1=" & k1

End If

Next i

If k1 = 0 Then

Cells(3, 3) = "таких элементов нет"

End If

MsgBox ("1З.k=" & k1)

p = 1

k2 = 0

For i = 2 To n

If (c(i) Mod 5 = 0) Then

c(i) = c(i)

Cells(i, 5) = c(i)

k2 = k2 + 1

p = p * c(i)

Cells(2, 6) = "k2=" & k2

Cells(3, 6) = "p=" & p

End If

Next i

If p = 1 And k2 = 0 Then

Cells(3, 6) = "таких элементов нет"

End If

For i = 2 To n

Cells(i, 9) = c(i)

If c(i) < n Then

c(i) = n

Cells(i, 9) = c(i)

End If

Next i

End Sub

 

 

 

 

 

 

Работа №2. Прогиб консольной балки.

Задание.

С помощью метода Элера, найти изгиб и изгибающий момент в консольной балки.

Программа:

Option Explicit

Sub Маркевич()

Range(Cells(1, 1), Cells(100, 100)).Clear

Dim x As Double, y As Double, z As Double, L As Integer, n As Integer, x0 As Double, y0 As Double, z0 As Double, h As Double, G As Integer, S As Integer

Worksheets("Лист2").Select

x0 = 0

y0 = 0

z0 = 0

h = 0.1

S = Val(InputBox("первая цифра зачетки="))

G = Val(InputBox("вторая цифра зачетки="))

n = Val(InputBox("число точек углубления балки"))

Cells(2, 1) = "x="

Cells(2, 2) = "y="

Cells(2, 3) = "z="

For L = 1 To n

   z = z0 + h * F(z, x)

   y = y0 + (h * (z + z0)) / 2

   x = x0 + h

   Cells(1, 1) = "координаты точки изгиба по x="

   Cells(1, 2) = "координаты точки изгиба по y="

   Cells(1, 3) = "координаты точки изгиба по z="  

Cells(L + 3, 1) = x 'координаты точек изгиба

Cells(L + 3, 2) = y

Cells(L + 3, 3) = z

Cells(1, 5) = "изгибающий момент балки="

Cells(1, 6) = "прогиб балки="

Cells(2, 5) = "M(x)="

Cells(2, 6) = "F(z, x)="

Cells(L + 3, 5) = M(x)

Cells(L + 3, 6) = F(z, x)

z0 = z

y0 = y

x0 = x

Next L

End Sub

Private Function M(ByVal x As Double) As Double

M = 1 / Sqr((1 + 0.02 * (3 + 12) * x ^ 2) ^ 3)

End Function

Private Function F(ByVal z As Double, ByVal x As Double) As Double

     F = 0.02 * (3 + 12) * M(x) * Sqr((1 + z ^ 2) ^ 3)

End Function

 

 

 

 

 

Работа №3. Задача теплопроводности.

Задача: Определить распределение температуры по толщине стены для заданного промежутка времени.

Программа:

Option Explicit

Sub Маркевич()

Dim u0(100) As Double, u1(100) As Double, g As Integer, s As Integer, n As Integer, h As Double, ae As Integer, tau As Double, i As Integer, k As Integer, t As Double, M As Integer, q As Double, x As Double

Worksheets("Лист3").Select

ae = 1

g = Val(InputBox("первая цифра зачетки="))

s = Val(InputBox("вторая цифра зачетки="))

n = Val(InputBox("число узлов по толщине стены"))

M = Val(InputBox("число узлов по времени"))

h = 1 / n

q = (h ^ 2) / (2 * ae)

For i = 0 To n

x = i * h

u0(i) = g + (g + 3 * s) * x - 2 * (g + s) * x ^ 2

u1(i) = u0(i)

Next i

For k = 0 To M

t = k * q

For i = 1 To n - 1

 u1(i) = u0(i) + (q * ae / (h ^ 2)) * (u0(i + 1) - 2 * u0(i) + u0(i - 1))

Next i

For i = 1 To n - 1

 u0(i) = u1(i)

Next i

Next k

 Cells(1, 2) = "промежуток времени"

 Cells(2, 2) = "t=" & t

 For i = 0 To n

  Cells(1, 1) = "распределение температуры по толщине стены за промежуток времени t"

 Cells(i + 2, 1) = u1(i)

Next i

End Sub

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Работа №4. Задача Дирихле.

Задача: Решить уравнения в частных производных с заданными значениями функции на границе расчетной области.

Программа.

Sub Маркевич()

Const N1 = 7, N2 = 5

DL1 = 1

DL2 = 1

Dim U(N1, N2) As Double

Worksheets("Лист4").Select

 

g = 1

s = 5

C = -8 * (s / DL1 + g / DL2) 'F(i,j)

H1 = DL1 / N1

H2 = DL2 / N2

For i = 0 To N1

x = H1 * i

For J = 0 To N2

Y = H2 * J

U(i, J) = 0

 

If ((i = 0) Or (i = N1)) Then U(i, J) = 4 * g * Y * (DL2 - Y) / DL2

If ((J = 0) Or (J = N2)) Then U(i, J) = 4 * s * x * (DL1 - x) / DL1

Next J

Next i

K = 0

5

Z = 0

For i = 1 To N1 - 1

For J = 1 To N2 - 1

R = U(i, J)

 

p = (U(i - 1, J) + U(i + 1, J)) / H1 / H1

p = p + (U(i, J - 1) + U(i, J + 1)) / H2 / H2 - C

U(i, J) = p / (2 / H1 / H1 + 2 / H2 / H2)

Z = Z + Abs(U(i, J) - R)

Next J

Next i

K = K + 1

If ((Z > 0.001) And (K < 100)) Then GoTo 5

Worksheets("Лист1").Select

Cells(1, 1) = " количество итераций = "

Cells(2, 1) = "  k = " & K

For J = 0 To N2

For i = 0 To N1

Cells(1, 6) = "ЗНАЧЕНИЕ ФИЗ. ВЕЛИЧИНЫ :"

Cells(J + 3, i + 3) = " U(I, J)= " & U(i, J)

Next i

Next J

End Sub

 

 

 

Работа №5. Метод Гаусса.

Задача: решить систему линейного уравнения.

Программа:

Sub Маркевич()

Const n = 3

Dim a(n, n) As Double, b(n) As Double, x(n) As Double, i As Double, j As Double, k As Double, e As Double

For i = 1 To n

For j = 1 To n

a(i, j) = Cells(i, j)

Next j

b(i) = Cells(i, 5)

Next i

 

For i = 1 To n - 1

For j = 1 + i To n

a(j, i) = -(a(j, i) / a(i, i))

For k = i + 1 To n

a(j, k) = a(j, k) + a(j, i) * a(i, k)

Next k

b(j) = b(j) + a(j, i) * b(i)

Next j

Next i

x(n) = b(n) / a(n, n)

For i = n - 1 To 1 Step -1

e = b(i)

For j = i + 1 To n

e = e - x(j) * a(i, j)

Next j

x(i) = e / a(i, i)

Next i

For i = 1 To n

Cells(i, 7) = x(i)

Next i

End Sub


Информация о работе Контрольная работа по "Информатика VBA"