pascal的几个问题

来源:百度知道 编辑:UC知道 时间:2024/06/04 07:59:29
1.在不知道用户具体要使用哪种类型时怎么办?有什么方法解决
如:你只知道用户会用整形或实型,但是都有可能(我们让用户输入数据),要求用户输入整形时程序里也是整形的,用户输入实形时程序里也是实形的。
2.
type
stype=record
name:string[20];
number:integer;
sex:(male,female);
class:integer;
address:string[30];
end;
sex:(male,female);是什么意思,定义的是什么类型?
3.为什么我的TurboPascal7不能用eofln这个函数呢?书上有这个函数的,
但是执行后显示没有这个函数
4.过程和函数的具体区别,我怎么觉得没区别呢?

1.
var st:string;a,b,c:integer;d:real;
begin
readln(st);{输入字符串}
val(st,a,b);{把st转换为整型的a,如果有错误,则在第b位出错}
if b<>0 then val(st,d,b);{如果不是整型,就转换为实型d}
end.

2.sex:(male,female);表示定义一个类型sex,sex只能有male,female这两种值。

3.现在好像都不用eofln了,用eoln

4.就是有没有返回值的区别。其实它们很多时候是可以灵活地使用的。

加分哦!

1:
这要求用范围大的类型,并且你自己去判断
如果输入的是实型,则 trunc(n)<>n {trunc为取整函数}
否则 trunc(n)=n;
2:
这是枚举类型,是用户自定义的类型,
sex:(male,female);
指sex为male(男)或female(女)
但不能直接读入或输出,必须用ord(sex)去枚举,看书吧,这个类型没什么大用,但一时说不明白,书上应该比较清楚。
3。
eof 和 eoln 是两个函数。
另外,你最好用FreePascal吧,这个版本比较好——无论是使用还是竞赛。
4
函数必须自己有值:
function f():...;
可以没有自变量:
function f:...;

而函数的话不能有值:
procedure p();

procedure p;