- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我意识到,标题暗示了一个简单的答案。不过,请仔细阅读。在我的本科学习中,我有一门名为计算数学和数值分析的类(class),在那里我学习了 C++。现在我昨天开始用 VBA 编码 - 只是为了好玩。我试图制作一个程序,可以计算多项式的根。经过一番来回,我设法写下了所有代码。我要做的最后一件事是在 Excel 中打印所有根。为此,我使用了一个名为“arroot”的数组。下面的子是我的主要:
Sub Main()
Dim fx As Double, Dim dffx As Double, Dim n As Integer
Dim x As Double, Dim root As Double, Dim arroot()
Dim a(15) As Long, Dim i As Integer
Sheet1.Cells.ClearContents
Call PolyCoef(n, a)
i = 0
Do
Call Table(n, a, x, fx, dffx)
Call NewRapHorner(n, a, fx, dffx, root)
Call HornerDivPol(n, a, root)
arroot(i) = root
i = i + 1
Loop While (Not n = 0)
Call Printroot(arroot)
End Sub
Private Sub Printroot(arroot())
Sheet1.Range("G3").Value = "Root"
Sheet1.Range("H3").Value = "x-value"
For i = 0 To UBound(arroot()) Step 1
Sheet1.Range("G" & 4 + i).Value = i + 1 & ". root"
Sheet1.Range("H" & 4 + i).Value = arroot(i)
Next
End Sub
Sub Main()
Dim fx As Double, Dim dffx As Double, Dim n As Integer
Dim x As Double, Dim root As Double, Dim arroot(15)
Dim a(15) As Long, Dim i As Integer
Sheet1.Cells.ClearContents
Call PolyCoef(n, a)
i = 0
Do
Call Table(n, a, x, fx, dffx)
Call NewRapHorner(n, a, fx, dffx, root)
Call HornerDivPol(n, a, root)
arroot(i) = root
i = i + 1
Loop While (Not n = 0)
Call Printroot(arroot)
End Sub
'Main Ends. Subs used in main are defined:
Private Sub PolyCoef(n As Integer, a() As Long)
Dim e As Integer
Sheet1.Range("A1").Value = "Enter n for polynomial"
Sheet1.Range("B1").Value = InputBox("Enter n", "Degree of the polynomial")
n = Sheet1.Range("B1").Value
e = n
Sheet1.Range("A3").Value = "Coefficients:"
Sheet1.Range("B3").Value = "Values:"
For i = 0 To n Step 1
Sheet1.Range("A" & i + 4).Value = i + 1 & ". coefficient, a" & e
Sheet1.Range("B" & i + 4).Value = InputBox("Enter coefficient", i + 1 & ". coefficient")
a(i) = Sheet1.Range("B" & i + 4).Value
e = e - 1
Next
End Sub
Private Sub Horner(n As Integer, a() As Long, x As Double, fx As Double, dffx As Double)
Dim e As Integer, Dim b(15), Dim c(15)
b(0) = a(0)
For i = 1 To n Step 1
b(i) = a(i) + x * b(i - 1)
Next
c(0) = b(0)
For i = 1 To n Step 1
c(i) = b(i) + x * c(i - 1)
Next
fx = b(n)
dffx = c(n - 1)
End Sub
Private Sub Table(n As Integer, a() As Long, x As Double, fx As Double, dffx As Double)
Dim xmax As Double, Dim dx As Double
x = InputBox("Enter first x-value", "Enter xmin")
xmax = InputBox("Enter last x-value", "Enter xmax")
dx = (xmax - x) / 19
Sheet1.Range("D3").Value = "x-value"
Sheet1.Range("E3").Value = "f(x)"
For i = 0 To 19 Step 1
Call Horner(n, a, x, fx, dffx)
Sheet1.Range("D" & 4 + i).Value = x
Sheet1.Range("E" & 4 + i).Value = fx
x = x + dx
Next
End Sub
Private Sub NewRapHorner(n As Integer, a() As Long, fx As Double, dffx As Double, root As Double)
Dim xnew As Double, Dim xold As Double, Dim eps As Double
Dim ite As Integer, Dim x0 As Double, Dim i As Integer
x0 = InputBox("Enter x-value close to root", "x-value")
eps = InputBox("Enter tolerance", "Tolerance")
ite = InputBox("Enter number of max iterations", "Max iterations")
i = 0
xnew = x0
root = 0
Do
xold = xnew
Call Horner(n, a, xnew, fx, dffx)
xnew = xnew - (fx / dffx)
i = i + 1
Loop While (Abs(xnew - xold) > eps And i < ite)
If i >= ite Then
MsgBox "Number of max iterations has been exeeded"
Else
root = xnew
End If
End Sub
Private Sub HornerDivPol(n As Integer, a() As Long, root As Double)
Dim b(15) As Long
b(0) = a(0)
For i = 1 To n Step 1
b(i) = a(i) + root * b(i - 1)
Next
For i = 1 To n Step 1
a(i) = b(i)
Next
n = n - 1
End Sub
Private Sub Printroot(arroot())
Sheet1.Range("G3").Value = "Root"
Sheet1.Range("H3").Value = "x-value"
For i = 0 To UBound(arroot()) Step 1
Sheet1.Range("G" & 4 + i).Value = i + 1 & ". root"
Sheet1.Range("H" & 4 + i).Value = arroot(i)
Next
End Sub
最佳答案
数组对于您想要在 VBA 中执行的操作不是很有效。
我建议创建一个像这样的集合:
Public yourArray As New Collection
Public yourArray As New Collection
Sub trieal()
i = 10
Do Until i = 1
yourArray.Add i
i = i - 1
Loop
For Each e In yourArray
Debug.Print (e)
Next
End Sub
关于arrays - 确定数组中的元素数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35849321/
我正在尝试制作一个素数列表。我已经对它进行了编码,但它只告诉我 1 - 100 的质数是 1。我不确定为什么会发生这种情况。我还想为它制作一个JFrame。 import javax.swing.JO
我正在尝试学习 lisp,但我在处理素数方面遇到了一些困难。我需要一个函数 is-prime,如果它是素数,我必须返回 t,如果不是,我必须返回 nil。 (prime 41) => t (prime
我正在尝试检查给定的数字是否是质数。首先采用试分割法。但该程序的行为很奇怪。这是我使用的。 int no; no = Integer.parseInt(jTextField1.getText());
判断一个数是否为素数。使用代码块 13.12 执行。编译器GNU GCC 4.7.0 #include main() { int input,check,count; printf(
从 Uncle Bob 的书 Clean Code(示例是用 Java 编写的,所以这是我的第一个 Java 翻译),我一直在研究素数的重构示例。 问题是:您将如何重构以下代码? 这里有 4 个版本:
此方法旨在递归地遍历该方法并判断数字是否为“ super 素数”。 super 素数是一个本身是素数的数字,每次它被 10 除时,所有这些数字也是素数。例如 2333 是超素数,因为 233 是素数,
这是一个接受输入并打印它是否为质数的代码最后一个 if 总是打印“false”,为什么? (print "Enter a positive integer") (setq num (read)) (s
我正在尝试生成一个 BigInteger 类型的随机质数,它介于我提供的最小值和最大值之间。 我知道 BigInteger.probablePrime(int bitlength, random),但
背景信息: 所以我想计算一个数内的所有质数,然后将它们相加。 sumPrimes(10) 应该返回 17 因为 2 + 3 + 5 + 7 = 17。 挑战来了 --> https://www.fre
我是 python 的初级程序员,对我正在编写的代码有疑问: number = int(input("Enter a random number: ")) for num in range(1, nu
质数又称素数。指在一个大于1的自然数中,除了1和此整数自身外,不能被其他自然数整除的数。素数在数论中有着很重要的地位。比1大但不是素数的数称为合数。1和0既非素数也非合数。质数是与合数相对立的两个概
复制代码 代码如下: <?php for($i = 2; $i < 1001; $i++) { $primes = 0; for($k = 1; $k <
ruby判断一个数是否为质数 质数又称素数。一个大于1的自然数,如果除了1和它自身外,不能被其他自然数整除的数;(除0以外)否则称为合数 。根据算术基本定理,每一个比1大的整数,要么本身是一个质数
关闭。此题需要details or clarity 。目前不接受答案。 想要改进这个问题吗?通过 editing this post 添加详细信息并澄清问题. 已关闭 8 年前。 Improve th
已关闭。此问题需要 debugging details 。目前不接受答案。 编辑问题以包含 desired behavior, a specific problem or error, and the
经过几个小时的谷歌搜索,我仍然处于停滞状态。如果有人指出我的公式或编码选择中的错误,我将不胜感激。请记住我是 Swift 的新手。我不习惯非 C 风格的 for 循环。 if textFiel
我已将我的问题上传为屏幕截图。 最佳答案 费马小定理 x^p mod p = x mod p or x^(p-1) mod p = 1 (if p does not divide x
初等数论 素数定义 设整数 \(p\ne 0,\pm 1\) 。如果 \(p\) 除了平凡约数以外没有其他约数,那么称 \(p\) 为素
我有以下数字数组: var array = [5,9,12,19,23,24,31,44,49,62]; 我试图找出每一个是偶数和合数,奇数和合数,还是奇数和素数。我首先尝试找到偶数和合数: for
import java.util.Scanner; public class array1 { public static void main(String [] args){
我是一名优秀的程序员,十分优秀!