Pages

Giáo trình Pascal cơ bản

[Tài liệu gốc]

TABLE OF CONTENTS
Giới thiệu
Ngôn ngữ lập trình Pascal
Phần mềm TURBO PASCAL
Lưu ý về giáo trình
TYPOGRAPHY - 2
Chương 1: Hệ thống TURBO PASCAL
1.1.  BEFORE USE - 4
1.2.  IMPORTANT NOTE!!! - 4
1.3.  FILES ON THE DISTRIBUTION DISK - 4
1.4.  STARTING TURBO PASCAL - 5
1.5.  INSTALLATION - 6
1.5. 1.  INSTALLATION OF EDITING COMMANDS - 7
1.6.  THE MENU - 8
1.6.1.  LOGGED DRIVE SELECTION - 8
1.6.2.  WORK FILE SelECTION - 9
1.6.3.  MAIN FILE SELECTION - 10
1.6.4.  EDIT COMMAND - 10
1.6.5.  COMPILE COMMAND-11
1.6.6.  RUN COMMAND - 11
1.6.7.  SAVE COMMAND - 11
1.6.8.  DIRECTORY COMMAND - 11
1.6.9.  QUIT COMMAND - 12
1.6.10.  COMPILER OPTIONS - 12
1.7.  THE TURBO EDITOR - 12
1.7.1.  THE STATUS LINE - 13
1.7.2.  EDITING COMMANDS - 13
1.7.3.  A NOTE ON CONTROL CHARACTERS - 15
1.7.4.  BEFORE YOU START: HOW TO GET OUT - 15
1.7.5.  BASIC MOVEMENT COMMANDS - 16
1.7.6.  EXTENDED MOVEMENT COMMANDS - 18
1.7.7.  INSERT  AND DELETE COMMANDS - 20
1.7.8.  BLOCK COMMANDS - 21
1.7.9.  MISCELLANEOUS EDITING COMMANDS - 23
1.8.  THE TURBO EDITOR VS. WORDSTAR - 28
1.8.1.  CURSOR MOVEMENT - 28
1.8.2.  MARK SINGLE WORD - 28
1.8.3.  END EDIT - 28
1.8.4.  LINE RESTORE - 28
1.8.5.  TABULATOR - 29
Page ii  T ABLE OF CONTENTS
1.8.6.  AUTO INDENTATION - 29
Chapter 2.  BASIC LANGUAGE ELEMENTS - 30
2.1.  BASIC SYMBOLS - 30
2.2.  RESERVED WORDS - 30
2.3.  STANDARD IDENTIFIERS - 31
2.4.  DELIMITERS - 32
2.5.  PROGRAM LINES - 32
Chapter 3.  STANDARD .SCALAR TYPES - 33
3.1.  INTEGER  - 33
3.2.  BYTE - 33
3.3.  REAL - 33
3.4.  BOOLEAN - 34
3.5.  CHAR - 34
Chapter 4.  USER-DEFINED LANGUAGE ELEMENTS - 3S
4.1.  IDENTIFIERS  - 35
4.2.  NUMBERS - 35
4.3.  STRINGS - 36
4.3.1.  CONTROL CHARACTERS - 37
4.4.  COMMENTS - 37
4.5.  COMPILER DIRECTIVES - 38
Chapter S.  PROGRAM HEADING AND PROGRAM BLOCK - 39
5.1.  PROGRAM HEADING - 39
5.2.  DECLARA TION PART - 39
5.2.1.  LABEL DECLARATION PART - 40
5.2.2.  CONSTANT DEFINITION PART - 40
5.2.3.  TYPE DEFINITION PART - 41
5.2.4.  VARIABLE DECLARATION PART - 41
5.2.5.  PROCEDURE AND FUNCTION DECLARATION PART - 42
5.3.  ST A TEMENT PART - 42
Chapter 6.  EXPRESSIONS - 43
6.1.  OPERATORS - 43
6.1.1.  UNARY MINUS - 43
6.1.2.  NOT OPERATOR - 44
6.1.3.  MUL TIPL YING OPERA TORS - 44
6.1.4.  ADDING OPERATORS - 45
6.1.5.  RELATIONAL OPERATORS - 45
TABLE OF CONTENTS  Page iii
6.2.  FUNCTION DESIGNATORS - 46
Chapter 7.  STATEMENTS - 47
7.1.  SIMPLE STATEMENTS - 47
7.1.1.  ASSIGNMENT STATEMENT - 47
7.1.2.  PROCEDURE STATEMENT - 47
7.1.3.  GO TO STATEMENT - .48
7.1.4.  EMPTY STATEMENT - 48
7.2.  STRUCTURED STATEMENTS - 49
7.2.1.  COMPOUND STATEMENT - 49
7.2.2.  CONDITIONAL STATEMENTS - 49
7.2.2.1.  IF  STATEMENT - 49
7.2.2.2.  CASE STATEMENT - 50
7.2.3.  REPETITIVE STATEMENTS - 51
7.2.3.1.  FOR STATEMENT - 52
7.2.3.2.  WHILE STATEMENT - 52
7.2.3.3.  REPEA T STATEMENT - 53
Chapter 8.  SCALAR AND SUBRANGE TYPES - 54
8.1.  SCALAR TYPE - 54
8.2.  SUBRANGE TYPE - 55
8.3.  TYPE CONVERSION - 56
8.4.  RANGE CHECKING - 56
Chapter 9.  STRING TYPE - 58
9.1.  STRING TYPE DEFINITION - 58
9.2.  STRING EXPRESSIONS - 58
9.3.  STRING ASSIGNMENT - 59
9.4.  STRING PROCEDURES - 60
9.4.1.  DELETE - 60
9.4.2.  INSERT  - 60
9.4.3.  STR - 61
9.4.4.  VAL - 61
9.5.  STRING FUNCTIONS - 62
9.5.1.  COpy - 62
9.5.2.  CONCAT - 62
9.5.3.  LENGTH - 63
9.5.4.  POS - 63
9.6.  STRINGS AND CHARACTERS - 63
Page iv  T ABLE OF CONTENTS
Chapter 10.  ARRAY TYPE - 65
10.1.  ARRAY DEFINITION - 65
10.2.  MULTIDIMENSIONAL ARRAYS - 66
10.3.  CHARACTER ARRAYS - 67
10.4.  PREDEFINED ARRAYS - 67
Chapter 11.  RECORD TYPE - 68
11.1.  RECORD DEFINITION - 68
11.2.  WITH STATEMENT - 70
11.3.  VARIANT RECORDS - 71
Chapter 12.  SET TYPE - 73
12.1.  SET TYPE DEFINITION - 73
12.2.  SET EXPRESSIONS - 74
12.2.1.  SET CONSTRUCTORS - 74
12.2.2.  SET' OPERATORS - 75
12.3.  SET ASSIGNMENTS - 76
Chapter 13.  TYPED CONSTANTS - 77
13.1.  UNSTRUCTURED TYPED CONSTANTS - 77
13.2.  STRUCTURED TYPED CONSTANTS - 78
13.2.1.  ARRAY CONSTANTS - 78
13.2.2.  MULTI-DIMENSIONAL ARRA Y CONSTANTS - 79
13.2.3.  RECORD CONSTANTS - 79
13.2.4.  SET CONSTANTS - 80
Chapter 14.  FILE TYPES - 81
14.1.  FILE TYPE DEFINITION - 81
14.2.  OPERA TIONS ON FILES - 82
14.2.1.  ASSIGN - 82
14.2.2.  REWRITE - 82
14.2.3.  RESET - 82
14.2.4.  READ - 83
14.2.5.  WRITE - 83
14.2.6.  SEEK - 83
14.2.7.  FLUSH - 83
14.2.8.  CLOSE - 84
14.2.9.  ERASE - 84
14.2.10.  RENAME - 84
14.3.  FILE STANDARD FUNCTIONS - 85
14.3.1.  EOF - 85
T ABLE OF CONTENTS  Page v
14.3.2.  FILEPOS - 85
14.3.3.  FILESIZE - 85
14.4.  USING FILES - 86
14.5.  TEXT FILES - 88
14.5.1.  OPERATIONS ON TEXT FILES - 88
14.5.1.1.  READLN - 89
14.5.1.2.  WRITELN - 89
14.5.1.3.  EOLN - 89
14.5.1.4.  SEEKEOLN - 89
14.5.1.5.  SEEKEOF - 89
14.5.2.  LOGICAL DEVICES - 91
14.5.3.  ST ANDARD FILES - 92
14.6.  TEXT INPUT AND OUTPUT - 95
14.6.1.  READ PROCEDURE - 95
14.6.2.  READLN PROCEDURE - 98
14.6.3.  WRITE PROCEDURE - 98
14.6.3.1.  WRITE PARAMETERS - 99
14.6.4.  WRITELN PROCEDURE - 100
14.7.  UNTYPED FILES - 101
14.7.1.  BLOCKREAD AND BLOCKWRITE - 101
14.8.  I/O CHECKING - 103
Chapter 15.  POINTER TYPES - 105
15.1.  DEFINING A POINTER VARIABLE - 105
15.2.  ALLOCA TING VARIABLES (NEW) - 106
15.3.  MARK AND RELEASE - 106
15.4.  USING POINTERS - 107
15.5.  DISPOSE - 109
15.6.  GETMEM - 110
15.7.  FREEMEM - 111
15.8.  MAXAVAIL - 111
15.9.  HINTS - 111
Chapter 16.  PROCEDURES AND FUNCTIONS - 112
16.1.  PARAMETERS - 112
16.1.1.  RELAXATIONS ON PARAMETER TYPE CHECKING - 114
16.1.2.  UNTYPED VARIABLE PARAMETER S - 115
16.2.  PROCEDURES - 116
16.2.1.  PROCEDURE DECLARATION - 116.
16.2.2.  STANDARD PROCEDURES - 118
16.2.2.1.  CLREOL - 118
Page vi  T ABLE OF CONTENTS
16.2.2.2.  CLRSCR - 118
16.2.2.3.  CRTINIT - 119
16.2.2.4.  CRTEXIT - 119
16.2.2.5.  DELAY - 119
16.2.2.6.  DELLINE - 119
16.2.2.7.  INSLINE  - 119
16.2.2.8.  COTOXY - 120
16.2.2.9.  EXIT - 120
16.2.2.10.  HALT - 120
16.2.2.11.  LOWVIDEO - 120
16.2.2.12.  NORMVIDEO - 120
16.2.2.13.  RANDOMIZE - 121
16.2.2.14.  MOVE - 121
16.2.2.15.  FILLCHAR - 121
16.3.  FUNCTIONS - 121
16.3.1.  FUNCTION DECLARATION - 121
16.3.2.  STANDARD FUNCTIONS - 123
16.3.2.1.  ARITHMETIC FUNCTIONS - 124
16.3.2.1.1.  ABS - 124
16.3.2.1.2.  ARCTAN - 124
16.3.2.1.3.  COS - 124
16.3.2.1.4.  EXP - 124
16.3.2.1.5.  FRAC - 124
16.3.2.1.6.  INT - 125
16.3.2.1.7.  LN - 125
16.3.2.1.8.  SIN - 125
16.3.2.1.9.  SQR - 125
16.3.2.1.10.  SQRT - 125
16.3.2.2.  SCALAR FUNCTIONS - 126
16.3.2.2.1.  PRED - 126
16.3.2.2.2.  SUCC - 126
16.3.2.2.3.  ODD - 126
16.3.2.3.  TRANSFER FUNCTIONS - 126
16.3.2.3.1.  CHR - 126
16.3.2.3.2.  ORO - 126
16.3.2.3.3.  ROUND - 127
16.3.2.3.4.  TRUNC - 127
16.3.2.4.  MISCELLANEOUS STANDARD FUNCTIONS - 127
16.3.2.4.1.  HI - 127
16.3.2.4.2.  KEYPRESSED - 127
16.3.2.4.3.  LO - 128
TABLE OF CONTENTS  Page vii
16.3.2.4.4.  RANDOM - 128
16.3.2.4.5.  RANDOM(NUM) - 128
16.3.2.4.6.  PARAMCOUNT - 128
16.3.2.4.7.  PARAMSTR - 128
16.3.2.4.8.  SIZEOF - 129
16.3.2.4.9.  SWAP - 129
16.3.2.4.10.  UPCASE - 129
16.4.  FORWARD REFERENCES - 129
Chapter 17.  INCLUDING FilES - 132
Chapter 18.  OVERLAY SYSTEM - 134
18.1.  CREATING OVERLAYS - 137
18.2.  NESTED OVERLAYS - 139
18.3.  AUTOMATIC OVERLAY MANAGEMENT - 140
18.4.  PLACING 0 VERLA Y FILES - 141
18.5.  EFFICIENT USE OF OVERLAYS - 141
18.6.  RESTRICTIONS IMPOSED ON OVERLAYS - 141
18.6.1.  DATA AREA - 141
18.6.2.  FORWARD DECLARATIONS - 142
18.6.3.  RECURSION - 142
18.6.4.  RUN-TIME ERRORS - 142
Chapter 19.  IBM PC GOODIES - Omitted from this edition
Chapter 20.  PC-DOS AND MS-DOS - Omitted from this edition
Chapter 21.  CP /M-86 - Omitted from this edition
Chapter 22.  CP/M-80 - 143
22.1.  EXECUTE COMMAND - 143
22.2.  COMPILER OPTIONS - 143
22.2.1.  MEMORY ICOM FILE/CHN FILE - 144
22.2.2.  ST ART ADDRESS - 145
22.2.3.  END ADDRESS - 145
22.2.4.  COMMAND LINE PARAMETERS - 145
22.2.5.  FIND RUNTIME ERROR - 146
22.3.  ST ANDARD IDENTIFIERS - 146
22.4.  CHAIN AND EXECUTE - 146
22.5.  OVERLAYS - 149
22.5.1.  OVRDRIVE PROCEDURE - 149
Page viii  T ABLE OF CONTENTS
22.6.  FILES - 150
22.6.1.  FILE NAMES - 150
22.6.2.  TEXT FILES - 150
22.7.  ABSOLUTE VARIABLES - 150
22.8.  ADDR FUNCTION - 151
22.9.  PREDEFINED ARRAYS - 152
22.9.1.  MEM ARRAY - 152
22.9.2.  PORT ARRAY - 152
22.10.  ARRAY SUBSCRIPT OPTIMIZATION - 153
22.11.  WITH STATEMENTS - 153
22.12.  POINTER-RELATED ITEMS  - 153
22.12.1.  MEMAVAIL - 153
22.12.2.  POINTERS AND INTEGERS - 153
22.13.  CPIM FUNCTION CALLS - 154
22.13.1.  BDOS PROCEDURE AND FUNCTION - 154
22.13.2.  BDOSHL FUNCTION - 154
22.13.3.  BIOS PROCEDURE AND FUNCTION - 154
22.13.4.  BIOSHL FUNCTION - 155
22.14.  USER-WRITTEN 1/0 DRIVERS - 155
22.15.  - EXTERNAL SUBPROGRAMS - 156
22.16.  IN-LINE MACHINE CODE - 157
22.17.  INTERRUPT HANDLING - 158
22.18.  INTERNAL DATA FORMATS - 159
22.18.1.  BASIC DATA TYPES - 160
22.18.1.1.  SCALARS - 160
22.18.1.2.  REALS - 160
22.18.1.3.  STRINGS - 161
22.18.1.4.  SETS - 1.61
22.18.1.5.  FILE INTERFACE BLOCKS - 162
22.18.1.6.  POINTERS - 163
22.18.2.  DATA STRUCTURES - 163
22.18.2.1.  ARRAYS - 163
22.18.2.2.  RECORDS - 164
22.18.2.3.  DISK FILES - 164
22.18.2.3.1.  RANDOM-ACCESS FILES - 164
22.18.2.3.2.  TEXT FilES - 165
22.18.3.  PARAMETERS - 165
22.18.3.1.  VARIABLE PARAMETERS - 165
22;-18.3.2.  VALUE PARAMETERS - 165
22.18.3.2.1.  SCALARS - 165
22.18.3.2.2.  REALS - 166