Pascal 变量类型

  • 变量类型

    变量不过是我们程序可以操作的存储区域的名称。Pascal中的每个变量都有一个特定的类型,该类型确定变量的内存大小和布局。可以存储在该内存中的值的范围;以及可以应用于该变量的一组操作。变量的名称可以由字母,数字和下划线字符组成。它必须以字母或下划线开头。Pascal 不区分大小写,因此此处的大写和小写字母含义相同。根据上一章介绍的基本类型,将有以下基本变量类型-
    类型 说明
    Character 通常是一个八位位组(一个字节)。 这是整数类型。
    Integer 机器最自然的整数大小。
    Real 单精度浮点值。
    Boolean 指定正确或错误的逻辑值。 这也是一个整数类型。
    Enumerated 指定用户定义的列表。
    Subrange 表示变量,其值在一定范围内。
    String 存储字符数组
    Pascal编程语言还允许定义各种其他类型的变量,我们将在后续章节中介绍这些变量,如“指针”,“数组”,“记录”,“集和”和“文件”等。在本章中,让我们仅研究基本变量类型。
  • Pascal 中的变量声明

    在 Pascal 程序中使用它们之前,必须先声明所有变量。所有变量声明后跟var关键字。声明指定变量列表,后跟冒号(:)和类型。变量声明的语法是-
    
    var
    variable_list : type;
    
    在此,type 必须是有效的 Pascal 数据类型,包括字符,整数,实数,布尔值或任何用户定义的数据类型等,并且variable_list可以包含一个或多个用逗号分隔的标识符名称。这里显示了一些有效的变量声明-
    
    var
    age, weekdays : integer;
    taxrate, net_income: real;
    choice, isready: boolean;
    initials, grade: char;
    name, surname : string;
    
    在上一教程中,我们讨论了 Pascal 允许声明类型。可以通过名称或标识符来标识类型。此类型可用于定义该类型的变量。例如,
    
    type
    days, age = integer;
    yes, true = boolean;
    name, city = string;
    fees, expenses = real;
    
    现在,这样定义的类型可以在变量声明中使用-
    
    var
    weekdays, holidays : days;
    choice: yes;
    student_name, emp_name : name;
    capital: city;
    cost: expenses;
    
    请注意type 声明和 var声明之间的区别。type 声明指示类型的类别或类,例如整数,实数等,而var 声明指示变量可以采用的值的类型。您可以将 Pascal 中的type声明与C中的typedef进行比较。最重要的是,var 声明是指将要存储变量值的内存位置。type 声明不是这样。
  • Pascal 中的变量初始化

    为变量分配一个带有冒号和等号的值,后跟一个常量表达式。分配值的一般形式是-
    
    variable_name := value;
    
    默认情况下,Pascal中的变量不初始化为零。它们可能包含垃圾值。因此,在程序中初始化变量是一种更好的做法。变量可以在其声明中进行初始化(分配初始值)。初始化后跟var关键字,初始化的语法如下-
    
    var
    variable_name : type = value;
    
    一些例子是-
    
    age: integer = 15;
    taxrate: real = 0.5;
    grade: char = 'A';
    name: string = 'John Smith';
    
    让我们看一个例子,它利用了到目前为止讨论的各种类型的变量-
    
    program Greetings;
    const
    message = ' Welcome to the world of Pascal ';
    
    firstname: string = 'Alex';
    surname: string = 'Mo';
    begin
       writeln('Please enter your first name: '+ firstname); 
       
       writeln('Please enter your surname: '+ surname);
       
       writeln;
       writeln(message, ' ', firstname, ' ', surname);
    end.
    
    尝试一下
    编译并执行上述代码后,将产生以下结果-
    
    Please enter your first name: Alex
    Please enter your surname: Mo
    
    Welcome to the world of Pascal Alex Mo
    
  • 枚举变量

    您已经了解了如何使用简单的变量类型,例如整数,实数和布尔值。现在,让我们看一下枚举类型的变量,可以将其定义为-
    
    var
    var1, var2, ...  : enum-identifier;
    
    声明枚举类型后,可以声明该类型的变量。例如,
    
    type
    months = (January, February, March, April, May, June, July, August, September, October, November, December);
    Var
    m: months;
    ...
    M := January;
    
    以下示例说明了概念-
    
    program exEnumeration;
    type
    beverage = (coffee, tea, milk, water, coke, limejuice);
    
    var
    drink:beverage;
    
    begin
       writeln('Which drink do you want?');
       drink := limejuice;
       
       writeln('You can drink ', drink);
    end.
    
    尝试一下
    编译并执行上述代码后,将产生以下结果-
    
    Which drink do you want?
    You can drink limejuice
    
  • 子范围变量

    子范围变量声明为-
    
    var
    subrange-name : lowerlim ... uperlim;
    
    子范围变量的示例是-
    
    var
    marks: 1 ... 100;
    grade: 'A' ... 'E';
    age: 1 ... 25;
    
    以下程序说明了概念-
    
    program exSubrange;
    var
    marks: 1 .. 100;
    grade: 'A' .. 'E';
    
    begin
       writeln( 'Enter your marks(1 - 100): ');  
       readln(marks); {这里从标准输入读取}
       
       writeln( 'Enter your grade(A - E): ');
       readln(grade); {这里从标准输入读取}
       
       writeln('Marks: ' , marks, ' Grade: ', grade);
    end.
    
    在本地编译执行,并进行交互