РефератыИнформатика, программированиеРеРешение задач с помощью задания формул и создания макросов

Решение задач с помощью задания формул и создания макросов

ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ


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


«Нижегородский государственный университет им. Н.И. Лобачевского»


Экономический факультет


Кафедра Экономической информатики


Отчёт


по дисциплине «Информационные технологии»


Работу выполнила студентка


729 группы д/о


Кудреватых Валерия Евгеньевна


Нижний Новгород 2009


Задача 1


Просуммировать элементы столбцов заданной матрицы размером mхn. Результат получить в одномерном массиве размером n.


Способ 1.


Решим данную задачу с помощью задания формул и создания макросов.



Sub МакросМассив()


' МакросМассив Макрос


' Макрос записан 07.07.2009 (Gddess)


Range("A1").Select


ActiveCell.FormulaR1C1 = "=INT(10*RAND()-2)"


Range("A1").Select


Selection.AutoFill Destination:=Range("A1:C1"), Type:=xlFillDefault


Range("A1:C1").Select


Selection.AutoFill Destination:=Range("A1:C4"), Type:=xlFillDefault


Range("A1:C4").Select


Range("E1").Select


ActiveCell.FormulaR1C1 = "=SUM(RC[-4]:R[3]C[-4])"


Range("F1").Select


ActiveCell.FormulaR1C1 = "=SUM(RC[-4]:R[3]C[-4])"


Range("G1").Select


ActiveCell.FormulaR1C1 = "=SUM(RC[-4]:R[3]C[-4])"


End Sub


Способ 2.




Private Sub CommandButton1_Click()


Set List = Worksheets("Лист1")


Dim str As String ‘ объявление массива


n = 9 ‘количество столбцов


m = 4 ‘количество строк


ReDim A(1 To n, 1 To m) ‘указание размерности


For i = 1 To n


For j = 1 To m


A(i, j) = Int(Rnd * 10)


Cells(i + 1, j) = A(i, j)


Next j


Next i


ReDim b(1 To m)


For j = 1 To m


For i = 1 To n


Sum = Sum + A(i, j)


Next i


b(j) = Sum


Sum = 0


Next j


str = " "


For j = 1 To m


str = str + CStr(Format(b(j), "Fixed")) + " "


Cells(i, j + 5) = b(j)


Next


End Sub


Private Sub CommandButton3_Click()


Unload Me


End Sub


Способ 3.


Решим задачу с использованием форм.




Private Sub CommandButton1_Click()


Dim str As String


n = 3


m = 4


ReDim A(1 To n, 1 To m)


ReDim b(1 To m)


For i = 1 To n


For j = 1 To m


A(i, j) = Int((10 * Rnd) - 5)


Next j


Next i


str = " "


For i = 1 To n


For j = 1 To m


str = str + CStr(Format(A(i, j), "Fixed")) + " "


Next


Next


'Выведем результат


UserForm1.
Label4
.Caption = str


For j = 1 To m


For i = 1 To n


Sum = Sum + A(i, j)


Next i


b(j) = Sum


Sum = 0


Next j

>

str = " "


For j = 1 To m


str = str + CStr(Format(b(j), "Fixed")) + " "


Next


UserForm1.Label3.Caption = str


End Sub


Private Sub CommandButton2_Click()


Unload Me


End Sub



Задача 2


Нормировать вектор и найти его длину. Формула



Способ 1.


Решим данную задачу с помощью задания формул и создания макросов.



Sub Макрос1()


'' Макрос1 Макрос


' Макрос записан 06.12.2009 '



Range("A1").Select


ActiveCell.FormulaR1C1 = "=INT(10*слчис()-4)"


Range("A1").Select


ActiveCell.FormulaR1C1 = "=INT(10*RAND()-2)"


Selection.AutoFill Destination:=Range("A1:E1"), Type:=xlFillDefault


Range("A1:E1").Select


ActiveCell.FormulaR1C1 = _


"=SQRT(R[-1]C^2+R[-1]C[1]^2+R[-1]C[2]^2+R[-1]C[3]^2+R[-1]C[4]^2)"


Range("A3").Select


ActiveCell.FormulaR1C1 = "=R[-2]C/R[-1]C"


Selection.AutoFill Destination:=Range("A3:E3"), Type:=xlFillDefault


Range("A3:E3").Select


Range("A3").Select


ActiveCell.FormulaR1C1 = "=R[-2]C/R[-1]C1"


Selection.AutoFill Destination:=Range("A3:E3"), Type:=xlFillDefault


Range("A3:E3").Select


Range("E3").Select


End Sub


Способ 2



Private Sub CommandButton1_Click()


Set List = Worksheets("Лист2")


n = List.Cells(1, 2)


Dim Str As String


ReDim a(1 To n) ‘ указание размерности


ReDim c(1 To n) ‘указание размерности


For i = 1 To n


a(i) = Int((10 * Rnd) - 5)


List.Cells(2, i + 1) = a(i)


Next i


'najti dlinu vektora


Sum = 0


For i = 1 To n


Sum = Sum + a(i) ^ 2


Next i


a1 = Sqr(Sum)


'Выведем результат


List.Cells(3, 2) = a1


For i = 1 To n


c(i) = a(i) / a1


List.Cells(4, i + 1) = c(i)


Next i


End Sub



Способ 3


Решим задачу с использованием форм.



Private Sub CommandButton1_Click()


n = UserForm2.TextBox6


Dim Str As String


ReDim a(1 To n)


ReDim C(1 To n)


For i = 1 To n


a(i) = Int((10 * Rnd) - 5)


Str = Str + CStr(a(i)) + " "


Next i


'Выведем в форму в строчку


UserForm2.Label4.Caption = Str


'najti dlinu vektora


Sum = 0


For i = 1 To n


Sum = Sum + a(i) ^ 2


Next i


a1 = Sqr(Sum)


'Выведем результат


UserForm2.Label2.Caption = Format(a1, "##.###")


Str = ""


For i = 1 To n


C(i) = a(i) / a1


Str = Str + CStr(Format(C(i), "Fixed")) + " "


Next i


UserForm2.Label3.Caption = Str


End Sub


Private Sub CommandButton2_Click()


For i = 1 To n


C(i) = a(i) / a1


Next i


UserForm2.Label3.Caption = C(i)


End Sub


Private Sub CommandButton3_Click()


Unload Me


End Sub


Сохранить в соц. сетях:
Обсуждение:
comments powered by Disqus

Название реферата: Решение задач с помощью задания формул и создания макросов

Слов:724
Символов:7633
Размер:14.91 Кб.