[求助] 用VB数组解决矩阵乘法
carneades2009/10/30软件综合 IP:江苏
我尝试用VB的数组编写一个3*3矩阵计算器,可是在遇到表达式的时候,要么卡壳,要么得到一些莫名其妙的结果。麻烦会得分帮忙看一下那里出问题了,应该怎么改。谢谢!

本程序的功能除了实现矩阵乘法,还要求出每个矩阵的行列式。(通过矩阵下方的“”det()=按实现)

我已经用C语言实现了这种算法,代码如下:
#include <stdio.h>
#include <math.h>
void main()
{
  #define M 3 /*left row*/
  #define S 3 /*left column & right row*/
  #define N 3 /*right column*/

  int a[M][S],b[S][N],c[M][N]={0,0,0}/*Adjust the number of "0" when n is changed!*/;
  int i,j,s;
  char ch='Y';

  do{

  printf("Input the elements of the left matrix by row.\n");
  for(i=0;i<M;i++)
  {
    for(j=0;j<S;j++)
    {
      scanf("%d",&a[i][j]);
    }
    printf("\n");
  }

  printf("Input the elements of the right matrix by row.\n");
  for(i=0;i<S;i++)
  {
    for(j=0;j<N;j++)
    {
      scanf("%d",&b[i][j]);
    }
    printf("\n");
  }

  printf("The product is:\n");
  for(i=0;i<M;i++)
  {
    for(j=0;j<N;j++)
    {
      for(s=0;s<S;s++)
      {
         c[i][j]+=a[i][s]*b[s][j];
      }
      printf("%d\t",c[i][j]);
    }
    printf("\n");
  }

  printf("Continue?(Y/N)\n");
  ch=getchar();
  
  }while(ch=='Y'||ch=='y');
} product.jpg

attachment icon matrix1.rar 2.10KB RAR 30次下载
product2.jpg
来自:计算机科学 / 软件综合
11
已屏蔽 原因:{{ notice.reason }}已屏蔽
{{notice.noticeContent}}
~~空空如也
carneades 作者
15年3个月前 IP:未同步
161573
谢谢楼上诸位的关注!

学了C语言后就觉得VB的语句忒啰嗦。
我最近学习线性代数,同学们苦于矩阵运算的麻烦,希望我给他们做一个程序。
我现在用最土得办法——把行列式展开成代数式求解,这居然还卡壳!

Private Sub cmda_Click()
    Dim a11 As Integer, a12 As Integer, a13 As Integer
    Dim a21 As Integer, a22 As Integer, a23 As Integer
    Dim a31 As Integer, a32 As Integer, a33 As Integer
    Dim dta As Integer
    
    a11 = Val(a11.Text): a12 = Val(a12.Text): a13 = Val(a13.Text)
    a21 = Val(a21.Text): a22 = Val(a22.Text): a23 = Val(a23.Text)
    a31 = Val(a31.Text): a32 = Val(a32.Text): a33 = Val(a33.Text)
    
    dta = (a11 * a22 * a33) + (a12 * a23 * a31) + (a21 * a32 * a13) - (a31 * a22 * a13) - (a21 * a12 * a33) - (a32 * a23 * a11)
    
    dta.Text = Str(dta)
End Sub

在运行这段语句的时候,卡在a11 = Val(a11.Text): 这里了。说什么“编译错误,无效限定符”。
控件的名字弄得跟变量一样要紧吗?
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论

想参与大家的讨论?现在就 登录 或者 注册

所属专业
上级专业
同级专业
carneades
笔友
文章
18
回复
479
学术分
0
2008/08/18注册,7年5个月前活动
暂无简介
主体类型:个人
所属领域:无
认证方式:邮箱
IP归属地:未同步
文件下载
加载中...
{{errorInfo}}
{{downloadWarning}}
你在 {{downloadTime}} 下载过当前文件。
文件名称:{{resource.defaultFile.name}}
下载次数:{{resource.hits}}
上传用户:{{uploader.username}}
所需积分:{{costScores}},{{holdScores}}下载当前附件免费{{description}}
积分不足,去充值
文件已丢失

当前账号的附件下载数量限制如下:
时段 个数
{{f.startingTime}}点 - {{f.endTime}}点 {{f.fileCount}}
视频暂不能访问,请登录试试
仅供内部学术交流或培训使用,请先保存到本地。本内容不代表科创观点,未经原作者同意,请勿转载。
音频暂不能访问,请登录试试
支持的图片格式:jpg, jpeg, png
插入公式
评论控制
加载中...
文号:{{pid}}
投诉或举报
加载中...
{{tip}}
请选择违规类型:
{{reason.type}}

空空如也

加载中...
详情
详情
推送到专栏从专栏移除
设为匿名取消匿名
查看作者
回复
只看作者
加入收藏取消收藏
收藏
取消收藏
折叠回复
置顶取消置顶
评学术分
鼓励
设为精选取消精选
管理提醒
编辑
通过审核
评论控制
退修或删除
历史版本
违规记录
投诉或举报
加入黑名单移除黑名单
查看IP
{{format('YYYY/MM/DD HH:mm:ss', toc)}}