free pascal中强制把非整型数转化为整型的函数?

其中a,max,x,y:integer; 写的式子a:=(max*x)/y系统显示错误类型是incompatible types:got 'extended' expected smallint' 于是想到用一个函数来强制转化max*x)/y为整型 。。

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)
②.自定义类型:枚举与子界。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-12-21
不一定要转整型的啊,如果数据大于longint时才要实型转整型的,而longint已经是十位数了,一般再出错,就是你程序中有步骤不对。当然,如果要转也可以用
b:=trunc(max*x)/y

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

a就变为整数
但是会把小数部分舍去本回答被网友采纳
第2个回答  2013-06-15
你可以用两个办法一个是把/换成div
或者把结果取整a:=trunc((max*x)/y)
第3个回答  2013-06-15
....你这,你有没有想过运算结果不是整数?~~~~ 这样,把a单独设成实型,没你想的那么麻烦 a:real;
相似回答