欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

pascal的日常使用

程序员文章站 2022-04-05 12:48:45
...

文章链接:https://codemouse.online/archives/2020-03-04-153117

标识符

  • 注意:不可以使用program、begin、end、const、var、read、write、if、then、else这些关键字作为名字

常量

  • 格式:const 常量名=表达式;

    const pi = 3.14;st = ‘t’;

变量

  • 格式:var 变量名:变量类型;

    var i,j:integer;

  • 变量类型

    1. 整型(integer)
    2. 实型(real)
    3. 字符型(char)
    4. 布尔型(boolean)

一维数组

  • var 变量名:array[1…想要的长度] of 变量类型;

    var stu:array[1…5] of integer;

多维数组

  • 例子:
type
 MonthTemps = array [1..24, 1..31] of Integer;
 YearTemps = array [1..24, 1..31, Jan..Dec] of Integer; 

运算符

  • 算术运算符

    +、-、*、/、mod、div

  • 关系运算符

    >、>=、<、<=、=、<>

  • 逻辑运算符

    not、and、or

声明语句

  • 常量声明

格式:const 常量名=表达式

  • 类型声明

格式:type 类型名= 类型定义

  • 变量声明

格式:var 变量列表:类型

  • 赋值语句

格式:标识符:=表达式

  • read语句

read(变量列表)

  • write语句

    write(输出列表)

分支语句

  • 格式
If 条件表达式 then
  语句1
[else 
   语句2 ;]
   
case 表达式 of
    值表1:语句1;
    值表2:语句2;
   ……
   end;

注意:如果if下只有一条语句,不需要加分号,else下的语句一定要加分号

例:

if x>0 then
    y :=1
else
    y:= 0;

case number of
    0:today:=sun;
    1:today:=mon;
    2:today:=tues;
    3:today:=wed,
    4:today:=thu;
    5:today:=fir;
    6:today:=sat;
    end;

循环语句

  • 格式
1:for循环
for 循环变量:= 循环初值
	to | downto 循环终值 do 
	循环体;
2:while循环
while 条件表达式 do 
    循环体
3:repeat循环
repeat
    循环体;
until 条件表达式
  • 例:
1:for循环
for i:= 1 to 10 do 
     data[i]:= 1;
    
2:while循环    
i:=0; sum :=0;
while i<100 do 
begin
        sum:= sum+i;
        i:= i+1;
end; 

3:repeat循环 
procedure NumString(n:integer, var s:array[1..10] of char);
var v,j:integer;
begin
    v:=abs(n);
    j:=2;
    repeat
        s[j]:= chr(v mod 10 + ord(‘0’)) ;
        v:= v div 10;
        j:=j+1;
    until v = 0;
    if n<0 then s[1]:=‘-’
    else s[1]:=‘ ‘
end;

过程

  • 位置:在变量声明之后,主程序之前。
  • 要求:实参的个数和类型要与形参匹配
  • 格式:
procedure 过程名(形式参数表);
常量定义;
类型定义;
变量定义;
过程或函数定义
begin
    过程语句体;
end;
  • 例:
procedure NumString(n:integer, var s:array[1..10] of char);
var v,j:integer;
begin
    v:=abs(n);
	 j:=2;
     repeat
          s[j]:= chr(v mod 10 + ord(‘0’)) ;
          v:= v div 10;
	       j:=j+1;
     until v = 0;
     if n<0 then s[1]:=‘-’
	  else s[1]:=‘ ‘
end;
  • 调用


    NumString(-10, str);

函数

  • 位置:在变量声明之后,主程序之前。
  • 要求:实参的个数和类型要与形参匹配
  • 格式:
function 函数名(形式参数表):类型;
常量定义;
类型定义;
变量定义;
过程或函数定义
begin
    函数语句体;
end;
  • 例:
function max(a,b:integer):real;
var  m:integer;
begin
    m:=a;
    if(b>a) then m:=b;
    max:= m;
end;
  • 调用

    x:=max(x,y);

枚举

  • 类型定义

    type day=(sun,mon,tues,wed,thu,fri,sta);

  • 变量定义

    var payday,today,firstday: day;

  • 例:

program todaytomorrow(input,output);
type
	day=(sun,mon,tues,wed,thu,fri,sat);
var
	today,tomorrow:day;
	number:integer;
begin
	read(number);
	case number of
		0:today:=sun;
		1:today:=mon;
		2:today:=tues;
		3:today:=wed,
		4:today:=thu;
		5:today:=fir;
		6:today:=sat;
	end;
	if today = sat
	then tomorrow =sun
	else tomorrow = succ(day)
end.

子界类型

  • 类型定义

    子界类型定义了某种类型的取值范围 ,这种类型必须是有序类型(如整型、字符型)

  • 说明

    • 定义子界类型时,你不需要指定基类的名字,而只需提供该类型的两个常数。

    • 所用基类必须是有序类型,定义结果将是另一种有序类型。

    • 赋给子界类型变量的值必须是子界定义范围内的值 。

  • 例子:

type
  Ten = 1..10;
  OverHundred = 100..1000;
  Uppercase = 'A'..'Z'; 

记录(结构体)

  • 概念

描述统一事物的不同属性

  • 定义格式
type 名字 = record
    属性1: 类型;
    属性2: 类型;
    属性3: 类型;
    ...
    ...
  end; 
  • 例子:
type
    Student = record
    name:string;
    age: integer;
    sex: integer;
    end;
var
    p:Student;
    
    
p.name := 'codemouse';
p.age := 18;
p.sex := 1; 

指针

  • 概念

    指针是存放指定类型(或未定义类型)变量内存地址的变量

  • 类型定义

    type PointerToInt = ^Integer;

  • 变量定义

    var

    ​ P: ^Integer;

    ​ X: Integer;

  • 使用

    指向某地址: P := @X; X := 10;

    修改地址的值: P^ := 20;

  • 释放与申请

    var
      P: ^Integer;
    begin
      New (P);
      P^ := 20;
      ShowMessage (IntToStr (P^));  
      Dispose (P);
    end; 
    
相关标签: pascal pascal