
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. 展开
如果我这么写,大家看看对吗?如果错了,又错在哪里了呢?原因是什么呢?:
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. 展开
2个回答
展开全部
你写的这个程序还是有不少错误的
暂且先不考虑精度问题,首先分析你的程序
第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)、输入/输出接口和其他功能部件集成在一块 在一个小块的集成电路上,从而实现对整个电路或系统的数字式控制。单片机不是完成某一个逻辑功能的芯片,而是...
点击进入详情页
本回答由意法半导体(中国)投资有限公司提供
展开全部
你这个逻辑上没有错,但实际运行的时候很容易不对;
因为毕竟系统里是用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的第三个字符……
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询