QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

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

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

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

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

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

x
好久没来论坛发言了,来分享几个我编写对程序,对工科学生也许会有点启发。
' m% U$ F  p4 b- D1 c$ T) E# |! {/ p4 V. J! H0 M5 b; d
用迭代法求解方程超越方程的解
3 o* b; T# P/ ^( J8 d, e: ~+ [& D#include "math.h"
  p# K& n0 ?* m+ w5 Z5 R4 wmain()* N( [: e; k$ A# Q& D) E2 m
{
! q, _( r- U' S# ldouble x1,x2;
% C/ p% y3 N% _2 y% L. ^x1=1;" ~6 B% t2 `( @8 Y. P
x2=2;2 j; J6 e- W% b, z0 b8 z0 X
while(x2-x1>0.000001||x1-x2>0.000001)
% C: p3 H2 v5 C% |3 G# @ {
- h$ V0 I3 O0 g8 A  }$ {/ p x1=x2;( |' J, [3 t! x- R* P
x2=log10(x1+2);+ L5 D6 Y; I" h6 q* A9 R5 Y
printf("x2=%lf\n",x2);/ C) H$ }0 a* I: _, |
}
, x$ C0 {9 x1 y' @printf("result is %lf\n",x2);
" J4 C: e  A( N  F2 n% s+ Y. S}- c, U( u5 b$ a! i+ t. [% y

) }6 s& |1 B- H; o$ u9 z& a( m, a$ Q, ~9 T2 r
* x! }2 z) Y3 Z& s8 A( J0 T! c
对分法解方程
9 X2 {# y" Y& W; qdouble f(double x)
* b4 D. L- L6 V2 Q6 V. j{; m6 w4 M# f( c, f# Y1 S
double y;
( |4 B. q  A" j3 qy=x*x*x+2*x-5;* Q" z. Q/ x+ Q) f3 M
return y;! B* f7 H" C6 e6 _4 _$ A
}
# G1 [, }5 f7 k, `6 ?9 E' gmain()
* h1 ^6 Q2 ?% ]. }* J{9 m" f& M! [/ p5 v0 l
double a=1,b=2;
- i) @) t1 h- C' L& u9 c2 ~0 Odouble c,d,r;  |, K& j# R1 C
int i;6 V4 O! u# ?5 b7 d+ y0 Y) r* z
for(i=0;i<20;i++)
3 k5 r* d% i2 P% e6 N0 A {, [0 p3 G0 y4 n7 G
c=(a+b)/2;' i4 z' i) P6 S& @3 I3 b* O. |) }8 _
d=f(c);/ V8 E# F/ p! k
if(d==0)9 ?1 }! D2 q+ u* L" V
  {/ f1 T6 H( J) J; e1 R% J
  r=c;
& t% l- X4 X7 ?( E6 J  break;7 j  X( v3 `1 [, a- A  {
  }) T8 U5 M+ g4 w# ^
else! H6 a  X4 ?/ g8 j4 g6 T) `
  {
! ~1 T( v: t) a* V! ^  if(d>0)
" }9 F0 k1 @: u+ U4 e. ^  b=c;
( ~% d, q0 p4 R/ N3 j! W  else/ Y! j# o1 H* O: Y" `6 O0 g
  a=c;
: i$ N! g5 N5 O  r, g$ r; C  }! c# j4 G. W; e/ }7 y2 c
}' L) U! |" Z7 `8 X! k
r=c;
0 X  C: ~; _8 e  }printf("The result of ""x^3+2*x-5=0"" is %lf\n",r);' r+ d2 [+ f# A4 m4 J3 ~
}
/ i0 N) I7 j0 U1 u" ~" e5 G
2 O* h' B/ s6 M6 w1 t: W
  z3 Z  e6 l* \( D  E' Q一下程序段将以0为起点0.05为步长以2*PI为终点计算各个自变量的正弦值,并将计算结果以点的坐标的形式(x,y)打印到文件中,方便绘图软件处理。使用这种方法,即使不懂C语言的图形操作也可以绘制出高质量的曲线来。
+ Y. M; c1 H# a
9 e9 {" ?1 d4 l9 M5 O#define PI 3.1415926
% N* A( q. x* S- h( h& C& I#include<stdlib.h>
3 y7 {9 w: U+ _' e& p" X#include<stdio.h>
0 f2 ]* q/ D) f6 b( w, @#include<math.h>- Y' L* G2 [* m' O: `
main()
' t( X0 x- A) K2 }4 X3 H+ H5 r{
  K+ L2 v8 W1 b; FFILE * pf;( ^& D+ Q% S, u
double x,y;) D+ L2 A7 L( g' w
char xx,yy;
- A9 Q$ F9 f! j8 zx=0.0;
8 l  Z3 E4 o) q! ~if((pf=fopen("d:\\file1.txt","w"))==NULL)# H" z% j- U! o$ A8 q
{
1 X0 r' D( C" y4 J0 @ printf("cannot open this file\n");9 B; g# O! A. V* c" ?6 R# _9 W/ t7 S, L
exit(1);
7 B; @! a2 a5 v+ @% { }9 w7 H$ l" J! R
while(x<=(PI*2.0))
' ~9 q0 J; i* h7 _* s{
$ s. ^0 l/ o" I+ P6 y4 O# Py=sin(x);  J8 Y6 b/ U, c4 J5 ]2 O9 |' |1 c
fprintf(pf,"%lf,%lf\n",x,y);+ H* F8 I/ ?4 N% U1 o! N
x+=0.05;  t1 A2 k2 `7 S$ @
}! z' h7 [2 |1 v$ b1 p
fprintf(pf,"%lf,%lf\n",2*PI,sin(2*PI));. K% h1 @: g- R8 h
fclose(pf);
1 r$ ?% k2 z6 F6 e+ M}
1 j/ P% c8 U* j  G+ y' n! U+ o
发表回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

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