找回密码
 注册
查看: 2141|回复: 8

fortran里程序怎样实现:如何插入或删去一点?

[复制链接]
发表于 2004-9-18 22:02:41 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

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

x
主要思想:在数组中插入一点,或删去一点
举个例子:有个一维数组X(i),i=5,其对应的数值为:
x1=1,x2=3,x3=9,x4=10,x5=11
         ★插入一点★
  先判断相邻两点值之差是否超过某个值(比如设定此值为5),。若是超过,则在两者中间插入一点,该点的数值取为两者的平均值;插入点后面的编号相应增加1。
      上面的数组中,显然(x3-x2)>5,则在中间插入一点,值为6。即x3=6 。后面的编号增加1,即x4=9,x5=10,x6=11
        ★删去一点★
  先判断某点值与前后两点值之差是否小于某个值(比如设定此值为1),若是小于,则去掉此点;后面的编号相应减少1。
      
      上面的数组中,显然(x4-x3)<=1;(x5-x4)<=1,则在删去4点,后面编号减少1,即x3=9,x4=11

请高手帮忙写个节省cpu的通用程序(因为数组很大,有i=1000)
这样就得优化程序、请帮忙,
若是fortran90高手的,不妨写个带有指针、链表的程序。
谢谢。
gnxie@163.com
CFD&NHT
发表于 2004-9-23 04:50:01 | 显示全部楼层

fortran里程序怎样实现:如何插入或删去一点?

either define a larg static array or use dynamic allocation array.
发表于 2004-10-1 02:54:15 | 显示全部楼层

fortran里程序怎样实现:如何插入或删去一点?

自己定义结构或者使用指针
发表于 2004-10-27 10:54:18 | 显示全部楼层

fortran里程序怎样实现:如何插入或删去一点?

通过FORTRAN的指针和串行功能就可以简单的实现!
"怎么没人精通fortran。亏我对大家期望很高呀", 这样的话以后不要说!
发表于 2004-10-27 12:17:24 | 显示全部楼层

fortran里程序怎样实现:如何插入或删去一点?

算法很重要. 算法太滥再快的电脑也没用.
你的问题用带指针的链表很容易解决. 不愿意用真的指针,用数组作个假指针也行. 这些基本的算法应该自己学了.
BTW, 链表的缺点是不能随机读写. 如果你需要大量随机读写, 最好处理完再转成数组. 不过1000的数组其实很小. 什么算法都问题不大.
 楼主| 发表于 2004-10-31 22:43:49 | 显示全部楼层

fortran里程序怎样实现:如何插入或删去一点?

下面引用由dut2004/10/27 10:54am 发表的内容:
通过FORTRAN的指针和串行功能就可以简单的实现!
"怎么没人精通fortran。亏我对大家期望很高呀", 这样的话以后不要说!

我就是不会用指针和串行功能,可否抽个时间给我说说原理.看书比较费劲 .谢谢!
发表于 2004-11-2 13:31:42 | 显示全部楼层

fortran里程序怎样实现:如何插入或删去一点?

下面引用由CFDNHT2004/10/31 10:43pm 发表的内容:
我就是不会用指针和串行功能,可否抽个时间给我说说原理.看书比较费劲 .谢谢!
要是给钱,这样的话尽管说
发表于 2004-11-3 16:40:20 | 显示全部楼层

fortran里程序怎样实现:如何插入或删去一点?

作者的目的很明显:就是希望通过这种方法来做自适应网格,为什么不试试现成的自适应网格?成套的理论很现成的算法都很多耶!
 楼主| 发表于 2004-11-5 15:26:26 | 显示全部楼层

fortran里程序怎样实现:如何插入或删去一点?

看彭国伦的《fortran95程序设计》看了n遍了,总算有点懂。但就是不知道怎么应用自己编程
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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