free pascal中强制把非整型数转化为整型的函数? free pascal问题:给定一个整数,请将该数各个位上的...

作者&投稿:贠魏 (若有异议请与网页底部的电邮联系)
Pascal用到的数和符号

1、PASCAL语言的字符表

是ASCII字符集,主要有:
 ⑴26个英文字母(不分大小写)
 ⑵十个数字符号
 ⑶特殊符号。如+-*/=><][:;.等

2、标识符

以字母开头的字母数字序列(大小写等效,可跟下划线_),用来标识常量、变量、程序、函数等。
自定义标识符时要注意遵循此规则。

3、标准标识符与保留字

标准标识符有40个,五类(false true maxint Boolean real integer char abs trunc read write)详见书P16。
保留字是Pascal语言中具有特定的含义的字符。在PASCAL7.0中书写保留字的时候,字符颜色会变为白色。一共36个保留字(program function begin end procedure var const array if then else case for to do repeat until while and div in mod not or nil)。

4、常量和变量:

程序设计中经常要用到常量和变量,这些都必须先定义后才能使用。

1).常量指程序运行过程中,其值不能改变的量。

分为四类:

⑴整型常量
十进制整数表示,不能有小数点。Maxint表示计算机中最大的整数=32767,即(27-1),由一个字节存贮,第一位为符号位。补码表示,范围为:-32768~32767。运算速度快。
可进行+、-、*、DIV(整除)、MOD(取余)
注意不能用/,因为得到的结果可能不为整型。

⑵实型常量

包括正实数、负实数和零。运算慢,无法精确表示。有两种表示方法:十进制表示法和科学记数法。
可进行+、-、*、/运算。整数与实数运算时自动转为实数进行运算。

⑶字符常量

字符常量是由单个字符组成的,所有字符都来自ASCII字符集。字符的数据是用两个单引号把单个字符括起来表示的。
每个字符都有一个序值(在ASCII字符集的位置),可以用六个关系运算符来比较大小。

⑷布尔型常量

只有true和false两个值。也有序,true 为1,false为0。
布尔型有三个运算符:and or not
const <常量标识符>=<常量>;
  例:const pi:=3.14;

2).变量

变量是指在程序执行过程中,其值可以改变的量。变量三要素:变量名、变量类型、变量值。
⑴变量名用一个合法的标识符来表示。
⑵变量在某一固定时刻是用来存放常量的,而常量是有类型的数据,因而变量也是有类型的。类型不能有两义性。
⑶变量值。在程序中由赋值语句来赋值。
var <变量标识符列表>:<类型>;
  例:var a,b:integer; c,d:real;

5、表达式

程序中由运算对象(操作数)和运算符(操作符)按照一定次序组成的有意义的式子称为表达式。
操作符(算术、关系、布尔)
操作数(因子(无符号常量、变量、函数调用、not 布尔因子、项、括号括起来的表达式)、项、简单表达式组成)。

具体优先顺序:
⑴括号内先算
⑵函数
⑶运算符优先顺序

NOT
* / DIV MOD AND
+ - OR
< <= > >= = <>

⑷同级运算按从左到右的次序。
注意:运算符两端,除实型和整数型外不允许为两种不同的数据类型。
表达式的数据类型根据它的值来划分。(所以表达式分为算术表达式、字符表达式、布尔表达式)
书写表达式的注意事项:
⑴只可出现圆括号;⑵运算符不能省略;⑶表达式中的所有字符必须写在同一行上。

6、标准函数的使用。

对于在程序中反复出现的程序段,我们可以把它作为一个独立的整体,指定一个标识符,以后作用的时候只要给出它的标识符就可以了,这样的程序段我们称为子程序。
子程序主要包括函数与过程。我们先来看一下系统内部定义的标准函数。
标准函数是由系统预先定义、用户可以直接使用的函数。
格式:函数名(自变量);
使用时注意自变量的类型和函数的类型,两者类型可能不同(如类型转换函数),不同函数对自变量的要求也不同。

①.算术函数
可参加算术运算,其自变量与函数值均为数值型。
⑴abs(x)。即|x|
⑵sqr(x), sqrt(x)
⑶sin(x), cos(x),arctan(x)
⑷exp(x), ln(x)

②.类型转换函数
⑴trunc(x)
⑵round(x)
⑶序号函数:ord(x)
⑷字符函数:CHR(X)的自变量为字符ASCII的十进制数值,IBMPC上取值为0到255,可打印字符为32到126。它正好与序号函数ORD(X)相反.如:CHR(65)='A',ORD(‘A')=65

③.顺序函数
在有序数据中求某个数据的前一项或后一项。
⑴前导函数:pred(x)
⑵后续函数:succ(x)

④.逻辑函数
函数值为布尔型的函数,在程序中主要用来作判断用。
⑴奇数函数odd(x)
⑵行结束函数eoln(x)
⑶文件结束函数eof(x)
回到前面的表达式进行例题讲解。

7、数据类型。

数据类型是数据的重要特征,决定了它的表示形式、取值范围和能参加的各种运算。

PASCAL的数据类型:(见书P24)
简单类型(不能再被分解)、结构类型(由其他类型组合而成)和指针类型。(静态数据类型和动态数据类型)(顺序类型、有序类型)

①.标准类型:四种。
实数类型除real外,其他的需在说明的开始部分(在const,var等前面)用{$N+}打开编译开关。
字符类型中还有字符串类型。用sting作标识符。可存取255个字符。
整型数取值范围:BYTE(0—255 8位) SHORINT(-128—127)
INTEGER(16),WORD(16),LONGINT(32)
②.自定义类型:枚举与子界。

不一定要转整型的啊,如果数据大于longint时才要实型转整型的,而longint已经是十位数了,一般再出错,就是你程序中有步骤不对。当然,如果要转也可以用
b:=trunc(max*x)/y

若a为实数
a:=trunc(max*x)/y

a就变为整数
但是会把小数部分舍去

你可以用两个办法一个是把/换成div
或者把结果取整a:=trunc((max*x)/y)

....你这,你有没有想过运算结果不是整数?~~~~ 这样,把a单独设成实型,没你想的那么麻烦 a:real;

Free Pascal编程找出由键盘任意输入三个整数中的最大数.用函数做.~

这个解释太拗口,也太狭义。。难道感动仅仅只是“同情或向慕”吗?个人觉得感动比这更为丰饶,更为辽阔、深邃。。我倒很愿意接受来自它字面的解释:感情动起来了。。感情能够动起来,这就是一种能力。。你的眼睛柔和起来,如温暖的阳光普照在眼前的事物上;你的耳朵敏锐起来,音乐才能清泉般淌入你的心灵;你的手心不由自主地出汗,好像无意中撞见了爱神维纳斯;你的足弓轻轻弹起,似乎想如赤足的祖先尽情狂奔在苍茫的大地上;你的内心像有一支羽毛轻轻划过,纤细而敏感的涟漪轻轻扩散……拥有这样的能力让你的人生更加充盈,让你的世界更加美好。。

var
s:string;
n,l:longint;
begin
readln(n);
if n=0 then write(0) else
begin
if n<0 then write('-');
str(abs(n),s); l:=length(s);
while s[i]='0' do //这个之前应该有一个赋值是i = l的吧,然后从整数变成的字符串最后一位开始往前查找,如果是0则让i往前移一位,即减一下(下面的dec(i)),因为翻转后,数字的最前面不应该含有0
begin
dec(i); //这个i相当于数组的下标
end;
while i>0 do // 当这个下标大于0的时候,说明这个字符串还没有遍历完
begin
write(s[i]); //这个就是把遍历到的非0的字符输出
dec(i); //因为必须让下标一直减小才能查找到字符串中的所有字符
end;
writeln;
end;
end.

PS:这个程序方法挺好的。