QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

查看: 1615|回复: 0
收起左侧

[原创] 分享几个自己对编程成果(C语言版)

[复制链接]
发表于 2010-9-11 22:00:32 | 显示全部楼层 |阅读模式 来自: 中国云南昆明

马上注册,结识高手,享用更多资源,轻松玩转三维网社区。

您需要 登录 才可以下载或查看,没有帐号?注册

x
好久没来论坛发言了,来分享几个我编写对程序,对工科学生也许会有点启发。6 D7 d  e" G) t% i& ]4 l: M

3 x; u5 w# t9 Z3 v; j1 R! p用迭代法求解方程超越方程的解" A3 D# N! e5 d- _$ n
#include "math.h"1 \+ O1 i- m5 x) M$ K2 t) D
main()$ [, b. b" P) L! L6 q+ R& j
{5 N  A( D. B. w2 W
double x1,x2;  H; Z% A( l7 O( u" t
x1=1;
  f) x5 c. ^  G; {6 }+ j5 w2 fx2=2;% [2 ]9 h1 i6 P) S6 J% [
while(x2-x1>0.000001||x1-x2>0.000001)
1 a8 c+ Q  n( P' R' ? {
$ `/ F& N: x1 E  H3 S x1=x2;6 x3 u* O2 S. e3 A, c" s$ N
x2=log10(x1+2);# g# e3 Q9 C; B- k. M8 K$ E
printf("x2=%lf\n",x2);+ T% f) v' G7 F! Z; o2 Y$ V
}
; s( r  z' p8 L+ ?4 D1 {# M7 Tprintf("result is %lf\n",x2);! c% y$ O' e5 }
}$ A5 |: U+ P- `7 w8 b, b5 `

3 F9 B8 y2 P6 \& ~; ]2 _3 l2 |0 u$ P& H1 Q1 e8 y

6 d* m) q. B/ [$ \7 z: g对分法解方程
: {. q, n7 r5 }3 ^2 Ydouble f(double x)! X( M' k0 `9 n' A
{
: ~$ F8 M8 B: t4 u6 C8 H6 ddouble y;
/ H! S8 p3 N  o9 t; w# @y=x*x*x+2*x-5;* [. J4 D. M: Y7 W/ Q+ R' g
return y;
6 Q/ v7 N0 @1 }, }, ?2 f}* b4 g- u& ]7 O1 Y1 d. N
main()
# H0 T% b% a, b: d4 z) V% d{
7 V; |' u- ]) p& N+ Kdouble a=1,b=2;
( i2 {. U5 x3 V$ a, O7 X) idouble c,d,r;" A! Z2 W/ x3 `/ B
int i;
: l. j" K+ a5 t( `0 nfor(i=0;i<20;i++)
' D3 B) y/ C; L% w, |7 o3 y {
: X) z2 T- u1 g' I; P9 z c=(a+b)/2;
, n: L+ i" u3 Z# H7 s d=f(c);
  P0 {1 I3 _/ p5 o- _2 z8 Z  @ if(d==0)% \  r5 C1 [/ H8 i
  {# Y# H% |+ j" l; ?* o" e; b" E
  r=c;
' I7 D1 ?6 F& S" b/ j  break;
& |  L3 d8 @% x& U! {  }/ z" y1 ~2 K6 {) q+ `* J$ c/ M( a
else' m2 P2 K% Y% ~8 g4 g# V2 `2 f& S# F
  {
  ^1 D3 a+ h. c& m  if(d>0)
* S% r: s/ k/ z- M8 W' F: F  b=c;3 c7 @, @" J5 v8 ^
  else
4 `  v" V/ e2 D" Z1 d, {5 Y+ i  a=c;' {5 o! t1 H0 p
  }
2 u9 E2 v: Y. I6 x2 \" v' B) f }
2 V; O& D  O+ U. ~$ S* Wr=c;5 W9 Y1 Y& e6 ], c
printf("The result of ""x^3+2*x-5=0"" is %lf\n",r);7 p: k, T2 G. |; C7 H
}/ P  m1 w% Z, q$ x9 D4 m

( H4 B. a; r- G: |4 n! _* [0 k
, e( q+ s# A2 ?+ ~+ X0 C一下程序段将以0为起点0.05为步长以2*PI为终点计算各个自变量的正弦值,并将计算结果以点的坐标的形式(x,y)打印到文件中,方便绘图软件处理。使用这种方法,即使不懂C语言的图形操作也可以绘制出高质量的曲线来。' u$ I/ r+ ^( i0 r/ [

  z# X. |+ W) Q/ W1 M+ K#define PI 3.1415926, a5 b9 J( B  t
#include<stdlib.h>
9 P* H7 Q; g+ A1 D#include<stdio.h>
* J. a5 w# X+ D3 ~9 C7 s( o#include<math.h>. t4 a  a! q/ g* f
main()1 G& d2 [5 C$ C  n* I+ v
{" v* ^5 ]4 p3 ^2 ]/ j5 Z
FILE * pf;0 I( t' @9 r  y7 {+ _+ S
double x,y;  {, ^( F, G1 u4 `/ k
char xx,yy;% b$ [5 @6 o- h% j5 K2 i
x=0.0;) M" B$ ?1 n  }: [: n( W
if((pf=fopen("d:\\file1.txt","w"))==NULL)
# z3 m( W. e8 a% U& ~$ w {
/ L- b: O7 w: U# v0 s% x printf("cannot open this file\n");
: q4 g6 [5 S0 S9 x- i$ G exit(1);- Y3 C2 U' p& `8 ]
}
1 o2 {! m" z( N3 Awhile(x<=(PI*2.0))
0 m! m, m; [+ }# H' H{# b: ~, ~/ n7 D
y=sin(x);
! V# S, d" P! I+ Dfprintf(pf,"%lf,%lf\n",x,y);
  w9 U) x  e  A3 {- jx+=0.05;
) g' X2 x4 Y- j}( q, i2 {1 ~8 y
fprintf(pf,"%lf,%lf\n",2*PI,sin(2*PI));
# T$ s2 _1 D' b" ^6 |1 O8 D' [, zfclose(pf);. Y9 |- t1 c* y$ e
}
3 F% \2 }/ |* r; Y$ n2 W' c
发表回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Licensed Copyright © 2016-2020 http://www.3dportal.cn/ All Rights Reserved 京 ICP备13008828号

小黑屋|手机版|Archiver|三维网 ( 京ICP备2023026364号-1 )

快速回复 返回顶部 返回列表