有时候我们想输入的数据是在一个Excel表格或者其他什么形式中,或者说这里数据是实时变化的并不利于直接在程序中输入,耳而应该在程序之外将数据存储,实现数据与程序的分离存储,这个时候就涉及到程序与数据之间的传递

下面简要介绍一个如何进行数据与程序之间的传递

下面的讲解都是基于如下的问题模型

有个城市都需要采购一定量的物品,但每个城市只允许在自身所在的城市采购,城市i的最低需求量为need(i),最大供应量为supply(i),单件采购成本为cost(i),如何采购总成本最小?

模型:设order(i)为城市i的采购量,则问题的数学模型为

1.直接粘贴复制

开始的程序

model:
sets:
cities/!待输入的数据个数;/:cost,need,supply,order;
endsets
min=@sum(cities:cost*order);
@for(cities:need<=order;order<=supply);
data:
cost,need,supply=!待输入的数据值;;
enddata
end

直接利用把存储在Excel或者其他什么地方的数据复制粘贴过来,这里需要注意lingo里面的复制是按列进行的(这里在前面已经讲过),不注意的话可能会发生数据赋值的错乱

粘贴的选项

可以依次试一下上面的不同粘贴格式的效果

下面是我直接在Excel中Ctrl+C与Ctrl+V实现的

model:
sets:
cities/
Seattle
Detroit
Chicago
Denver  /:cost,need,supply,order;
endsets
min=@sum(cities:cost*order);
@for(cities:need<=order;order<=supply);
data:
cost,need,supply=
12  1600    1700
28  1800    1900
15  1200    1300
20  1000    1100    ;
enddata
end
2.读取ldt数据文件:@file(数据文件名);
这里默认数据文件与程序文件在同一子目录下面,否则找不到数据文件而报错
model:
sets:
cities/@file(数据文件.ldt)/:@file(数据文件.ldt);
endsets
min=@sum(cities:cost*order);
@for(cities:need<=order;order<=supply);
data:
cost=@file(数据文件.ldt);
need=@file(数据文件.ldt);
supply=@file(数据文件.ldt);
enddata
end

如果路径不一致,也可以手动添加,Edit --> insert new object...

应当注意此时的文件类型的ldt格式,

具体里面内容:Seattle,Detroit,Chicago,Denver~cost,need,supply,order~12,28,15,20~1600,1800,1200,1000~1700,1900,1300,1100 注意中间的不同赋值用~间隔

3.存取Excel数据文件:@ole(文件名,元素名);

model:
sets:
cities/@ole('原始数据1.xls','cities')/:cost,need,supply,order;
endsets
min=@sum(cities:cost*order);
@for(cities:need<=order;order<=supply);
data:
cost,need,supply=@ole('原始数据1.xls'); !读取数据文件
@ole('原始数据1.xls','order')=order; !将计算结果存入表格中
enddata
end

对于路径不一致的情况解决方式与上述一样

lingo入门教程之三 --- 文件数据处理相关推荐

  1. 转载:【opencv入门教程之三】:图片的载入|显示|输出

    本系列文章由@浅墨_毛星云 出品,转载请注明出处. 文章链接: http://blog.csdn.net/poem_qianmo/article/details/20537737 作者:毛星云(浅墨) ...

  2. 转载:【opencv入门教程之三】:组件结构

    本系列文章由zhmxy555(毛星云)编写,转载请注明出处. 文章链接: http://blog.csdn.net/poem_qianmo/article/details/19925819 作者:毛星 ...

  3. 【OpenCV入门教程之三】 图像的载入,显示和输出 一站式完全解析

    [-] 一开胃菜之一  关于OpenCV的命名空间 二开胃菜之二  关于Mat类型 三图像的载入和显示 imread函数 namedWindow函数 imshow函数 四输出图像到文件imwrite函 ...

  4. Python入门教程之文件读写操作知识

    Python是随着人工智能时代的来临而火爆起来的编程语言,入门简单.功能强大,吸引了人们的广泛学习加入.想要学好Python,一定要从基础学起,然后进阶深入学习,今天千锋小编就给大家分享Python培 ...

  5. MongoDB最简单的入门教程之三 使用Java代码往MongoDB里插入数据

    前两篇教程我们介绍了如何搭建MongoDB的本地环境. 这篇教程我们会介绍如何使用Java代码来连接MongoDB. 如果您是基于Maven进行依赖管理的Java项目,只需要在您的pom.xml里加入 ...

  6. React.js 官网入门教程 分离文件 操作无法正常显示HelloWord

    对着React官网的教程练习操作,在做到分离文件练习时,按照官网步骤来却怎么也无法正常显示HelloWord. 经测试,html文件中内容改为: <!DOCTYPE html> <h ...

  7. java 根号_没见过的 Java 入门教程之三!例程使用中文标识符代码:各种变量

    提醒:编程语言的语法是最机械的.在阅读过程中,请尽量关注于程序做了些什么,而一些语法细节可以暂时忽略.入门之后,在今后的读写代码过程中,语法自然会熟练起来. 如需完整教程文字版,私信联系. 五 变量- ...

  8. egg.js入门教程视频文件(转载于cnode社区)

    记得上篇博客我满怀欣喜的去搞富文本,结果撞的头破血流. 简直是惨不忍睹.后来我也说了,我的那个有比较严重的问题,后期会考虑重构.(第一版已经放弃了) 之后我说我会去看关于后端nodejs koa框架方 ...

  9. 一部适合有一点点lingo编程基础的人阅读的lingo入门教程——重学lingo,发现很多遗忘的小知识,并将其整理成册——运算符、数学函数、金融函数、概率密度函数、变量定界与集操作函数

    一.序言 lingo是一款处理优化问题十分好用的软件. 虽然常常使用,但却许久未曾再系统的学习过,前段时间,重学MATLAB,发现了很多遗忘的知识点,今日,决定重学lingo,将易于遗忘的那些基本的语 ...

  10. 微信小程序入门教程之三:脚本编程

    这个系列教程的前两篇,介绍了小程序的项目结构和页面样式. 今天,接着往下讲,教大家为小程序加入 JavaScript 脚本,做出动态效果,以及如何跟用户互动.学会了脚本,就能做出复杂的页面了. 本篇的 ...

最新文章

  1. spring security 自定义认证登录
  2. 深入解析Java编译器学习笔记
  3. 【趋势】中国移动阅读市场AMC模型+实力矩阵+趋势预测
  4. 预测未来 盘点大数据分析领域五大趋势
  5. win10 看计算机配置要求,win10怎么看电脑配置
  6. 剑指offer——31.栈的压入、弹出序列(想法不错,比剑指的简单)
  7. 站长吧asp工具设置_网站更换域名需要怎么办?网站更换域名如何设置?
  8. springBoot入门第一章springBoot第一个程序
  9. 计算机视觉CV:图像处理面试题
  10. 搜索引擎提交软件_网站如何被搜索引擎快速收录?
  11. ABBYY FineReader添加盖章戳记
  12. vision画流程图的软件_流程图制作软件visio|流程图制作软件visio vs2010 中文版 - 软件下载 - 绿茶软件园|33LC.com...
  13. 提升睡眠质量:程序猿工作伴侣(睡眠革命)
  14. 干货!史上最全Java进阶好书清单来了!
  15. zoc license code
  16. 如何下载并安装Firebug插件
  17. 机器学习笔记(机器学习很难么???那必然难啊!!!)
  18. android vcf iphone6,安卓通讯录导入到iphon最简单的方式(安卓通讯录导入iphon
  19. 利用游戏软件注入漏洞渗透安卓手机
  20. 紫光fpga logos2 pango design 开发工具 黑金 axp100开发板资料 带 ddr 以及高速收发器例子

热门文章

  1. 摄像头(Camera)图像测试(以Imatest为主要工具)V1.0
  2. 有关mysql触发器的感悟_有关mysql触发器实例分享
  3. bootice添加黑苹果引导_懒人黑苹果安装教程:CLOVER(四叶草)引导
  4. NumPy下载与安装
  5. 你知道手动探针台系统的用途及组成部分吗?
  6. xp系统怎样添加桌面计算机,如何为XP系统计算机设置桌面
  7. Centos7 tomcat优化
  8. Java制作验证码的完整代码
  9. 接收诊断响应的相关CAPL函数,具有较高的可复用性
  10. java转换json格式_java中常见的JSON格式转换方法: