C语言程序解线性方程组

C语言程序解线性方程组,第1张

给,下面的代码已经编译运行确认,肯定好用了,试试吧:)

#include<conio.h>

#include<stdio.h>

#include<math.h>

#include<stdlib.h>

#define NUMBER 20

#define Esc 0x1b

#define Enter 0x0d

float A[NUMBER][NUMBER+1] ,ark

int flag,n

void exchange(int r,int k)

float max(int k)

void message()

int main()

{

float x[NUMBER] /*此数组用于存放方程解*/

int k,i,j

char celect

system("cls")

printf("\n用Gauss列主元消元法解线性方程组")

printf("\n1.解方程组请按Enter.")

printf("\n2.退出程式请按Esc.")

celect=getch()

if(celect==Esc)

exit(0)

printf("\n 输入方程组的维数:n=")

scanf("%d",&n)

printf("\n现在输入系数矩阵A和向量b:")

for(i=1i<=ni++)

{

printf("\n请输入a%d1--a%d%d系数和向量b%d: \n",i,i,n,i)

/*实现将每一行中的系数和向量一次性输入,数之间用空格格开,输完后回车确定*/

for(j=1j<=n+1j++) /*将刚才输入的数存入数组*/

scanf("%f",&A[i][j])

}

for(k=1k<=n-1k++)

{

ark=max(k)

if(ark==0)/*判断方程是否为线性方程,即是否合法*/

{

printf("\n此方程组不合法!")message()

}

else if(flag!=k)

exchange(flag,k)

for(i=k+1i<=ni++)

for(j=k+1j<=n+1j++)

A[i][j]=A[i][j]-A[k][j]*A[i][k]/A[k][k]

}

x[n]=A[n][n+1]/A[n][n]

for( k=n-1k>=1k--)

{

float me=0

for(j=k+1j<=nj++)

{

me=me+A[k][j]*x[j]

}

x[k]=(A[k][n+1]-me)/A[k][k]

}

for(i=1i<=ni++)

{

printf("\nx%d=%f",i,x[i])

}

message()

getch()

return 1

}

void exchange(int r,int k) /*交换行的矩函数*/

{

int i

for(i=1i<=n+1i++)

A[0][i]=A[r][i]

for(i=1i<=n+1i++)

A[r][i]=A[k][i]

for(i=1i<=n+1i++)

A[k][i]=A[0][i]

}

float max(int k) /*比校系数大小的函数*/

{

int i

float temp=0

for(i=ki<=ni++)

if(fabs(A[i][k])>temp)

{

temp=fabs(A[i][k])

flag=i

}

return temp

}

void message() /*实现菜单选择的函数*/

{

printf("\n 继续运算按 Enter ,退出程式按 Esc!")

switch(getch())

{

case Enter: main()

case Esc: exit(0)

default:{printf("\n不合法的输入!")message()}

}

}

学生在运用数学“怎么做”知识时发生的错误。根据程序性知识典型错题的成因分析及教学策略,程序性知识是指怎样进行认知活动的知识,在简易方程中解设未知数、按题意列方程、解方程、答结果这一系列的 *** 作行为,那数学程序性知识错误就是学生在运用数学“怎么做”知识时发生的错误,这类知识的错误在实践和研究中占大多数,究其原因,一方面是没有理解陈述性知识的意义,另一方面是没有掌握程序性知识本身。学生如果没有掌握这类知识,必将影响其策略性知识的掌握和运用。数学来自希腊语,是研究数量、结构、变化、空间以及信息等概念的一门学科,从某种角度看属于形式科学的一种。

陈述性知识和程序性知识是安德森提出的。

当代认知心理学家安德森把人类掌握知识的表征形式分为:陈述性知识与程序性知识。陈述性知识也叫“描述性知识”,是关于事物及其关系的知识,它包括事实、规则、发生的事件、个人的态度等。

程序性知识也叫“ *** 作性知识”,是个人没有有意识的提取线索,因而其存在只能借助某种作业形式间接推测的知识。这类知识主要用来解决“做什么”和“怎么做”的问题。这种知识具有动态的性质。

程序性知识与陈述性知识的联系

陈述性知识的获得常常是学习程序性知识的基础,程序性知识的获得又为获取新的陈述性知识提供了可靠保证;陈述性知识的获得与程序性知识的获得是学习过程中两个连续的阶段,如“解方程首先要知道等式两边平衡的规则”,能说出这一规则的是陈述性知识。

而 *** 作过程的技能则是程序性知识。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/7707444.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-08
下一篇 2023-04-08

发表评论

登录后才能评论

评论列表(0条)

保存