pascal程序问题

大致题目是这样的:“输入一个7位小数,并且整数部分是0;输出它的前三位小数,再输出它的第4-6位小数;”这个题目,需要用到函数的知识,对吗?还需要写founctiona,... 大致题目是这样的:“输入一个7位小数,并且整数部分是0;输出它的前三位小数,再输出它的第4-6位小数;” 这个题目,需要用到函数的知识,对吗?还需要写founction a,b:integer;吗?请编一下这个程序,并且写上过程分析,谢谢!注:程序一定要正确!
如果我这么写,大家看看对吗?如果错了,又错在哪里了呢?原因是什么呢?:
Program e_11(input,output);
founction b,c:integer;
var
a:real;
begin
0.9999999>=a>=0.0000000
writeln('Please input a:');
read(a);
b:=trunc(1000a);
c:=trunc(1000(1000a-b));
writeln(b,c);
end.
展开
 我来答
courage17340
2013-07-22 · TA获得超过205个赞
知道小有建树答主
回答量:227
采纳率:0%
帮助的人:301万
展开全部

你写的这个程序还是有不少错误的

暂且先不考虑精度问题,首先分析你的程序

第2行,function不是这么写的。首先你拼错了这个单词,其次格式不对,再次这题完全用不着函数。不过看下面之后估计那是想定义两个integer变量,那么var部分写成这样:

var
  a:real;
  b,c:integer;

然后第6行,0.9999999>=a>=0.0000000这个语句有语法错误,假如是注释的话写成这样:

//0.9999999>=a>=0.0000000

第9行,1000a不是合法的表达式,应该写成这样:

b:=trunc(1000*a);

第10行同理:

c:=trunc(1000*(1000*a-b));

第11行也不对,应该写成:

writeln(b);writeln(c);

不过即使这样还是不行,实数类型(浮点数)存在严重的精度问题,最好这样写:

var
  s:string;
begin
  readln(s);
  writeln(copy(s,3,3));
  writeln(copy(s,6,3));
  readln;
end.
更多追问追答
追问
谢谢你,我还没有学习浮点数,问下你最后一个程序是什么意思?什么3,3 ;6,3的?
追答
那是字符串,copy(s,3,3)就是复制字符串s中第3位起的前3个字符
比如输入
0.123456
那么就输出
123
然后下面一句同理
输出
456
意法半导体(中国)投资有限公司
2023-06-12 广告
单片机,即单片微控制器,也称为单片微型计算机,是将中央处理器(CPU)、存储器(ROM,RAM)、输入/输出接口和其他功能部件集成在一块 在一个小块的集成电路上,从而实现对整个电路或系统的数字式控制。单片机不是完成某一个逻辑功能的芯片,而是... 点击进入详情页
本回答由意法半导体(中国)投资有限公司提供
taobingxue
2013-07-21 · TA获得超过2.3万个赞
知道大有可为答主
回答量:1148
采纳率:80%
帮助的人:991万
展开全部

你这个逻辑上没有错,但实际运行的时候很容易不对;

因为毕竟系统里是用2进制存储浮点数的,所以会有一定舍入,特别real的精确度也就八九位,所以舍入的影响是比较明显的;

比如你读入1.0,之后9位小数输出就可能是0.999999999;而0.999999999也可能变成1;

你如果改成double,可能会稍微好一点,但最靠谱的方法是用字符串读入……

var
     s:string;
begin
    readln(s);
    writeln(s[3],s[4],s[5]);
    writeln(s[6],s[7],s[8]);
end.
追问
谢谢你啊,我以后得认真了。这里的s是什么意思啊?s[3],3又是什么意思?string是什么意思???????string是什么变量????谢谢
追答
基本数据类型…………
integer/longint/int64 2字节,4字节,8字节整数
real/double 4字节,8字节实数;
char 字符
boolean 布尔
string 字符串,限制长度256,相当于一个 s:array [1..256] of char;
ansistring 不限长度字符串

s[3]就是字符串s的第三个字符……
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式