📜  Pascal-变量类型

📅  最后修改于: 2020-11-03 16:12:50             🧑  作者: Mango


变量不过是我们程序可以操作的存储区域的名称。 Pascal中的每个变量都有一个特定的类型,该类型确定变量的内存大小和布局。可以存储在该内存中的值的范围;以及可以应用于该变量的一组操作。

变量的名称可以由字母,数字和下划线字符。它必须以字母或下划线开头。 Pascal不区分大小写,因此此处的大写和小写字母含义相同。根据上一章介绍的基本类型,将有以下基本变量类型-

Pascal中的基本变量

Sr.No Type & Description
1

Character

Typically a single octet (one byte). This is an integer type.

2

Integer

The most natural size of integer for the machine.

3

Real

A single-precision floating point value.

4

Boolean

Specifies true or false logical values. This is also an integer type.

5

Enumerated

Specifies a user-defined list.

6

Subrange

Represents variables, whose values lie within a range.

7

String

Stores an array of characters.

Pascal编程语言还允许定义各种其他类型的变量,我们将在后续章节中介绍这些变量,如“指针”,“数组”,“记录”,“集”和“文件”等。在本章中,让我们仅研究基本变量类型。

Pascal中的变量声明

在Pascal程序中使用它们之前,必须先声明所有变量。所有变量声明后跟var关键字。声明指定变量列表,后跟冒号(:)和类型。变量声明的语法是-

var
variable_list : type;

在此,type必须是有效的Pascal数据类型,包括字符,integer,real,boolean或任何用户定义的数据类型等,并且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;

请注意类型声明和var声明之间的区别。类型声明指示类型的类别或类,例如整数,实数等,而变量说明指示变量可以采用的值的类型。您可以将Pascal中的类型声明与C中的typedef进行比较。最重要的是,变量名称是指将要存储变量值的内存位置。类型声明不是这样。

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 ';

type
name = string;
var
firstname, surname: name;

begin
   writeln('Please enter your first name: ');
   readln(firstname);
   
   writeln('Please enter your surname: ');
   readln(surname);
   
   writeln;
   writeln(message, ' ', firstname, ' ', surname);
end.

编译并执行上述代码后,将产生以下结果-

Please enter your first name:
John
Please enter your surname:
Smith
Welcome to the world of Pascal John Smith

枚举变量

您已经了解了如何使用简单的变量类型,例如整数,实数和布尔值。现在,让我们看一下枚举类型的变量,可以将其定义为-

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.

编译并执行上述代码后,将产生以下结果-

Enter your marks(1 - 100): 
100
Enter your grade(A - E):
A
Marks: 100 Grade: A