พื้นฐานปาสคาลพื้นฐาน rapidqเว็บภาษาไทยเว็บภาษาอังกฤษ

string = array of char
สตริง เป็นข้อมูลชนิดตัวอักษรหลายตัว เรียงกันรูปแถวลำดับ (array)

เราสามารถแสดงอักษรของ string ทีละตัวอักษรได้
ในโดยเขียนในลักษณะของ array of char ดังนี้

uses crt ; var s : string; begin clrscr ; s := 'nobita'; write ( s[3] ); readln ; end.
โปรแกรมจะแสดง อักษร b เพียงตัวเดียว (ตัวอักษรตัวที่ 3)
array หมายเลข 0 ของ string
จะเก็บอักษร asscii เบอร์ที่ตรงกับ
จำนวนของอักษรของ string นั้นๆ
อย่างเช่น ด้านบน s[0] จะเท่ากับ chr(6)

การที่ s[0] เก็บตัวอักษร asscii เบอร์ที่ตรงกับจำนวนอักษร
หมายความว่า string สามารถมีขนาดตั้งแต่ 0 - 255 ตัวอักษร


คำสั่งในการแก้ไขสตริง โพรซีเจอร์ .. insert (ข้อความแทรก,var ข้อความที่จะแก้ไข, ตำแหน่ง ) s := 'game'; insert ('play ', s, 1); {หลังจาก procedureทำงาน s เท่ากับ 'play game' } delete (var ข้อความที่จะแก้ไข, ตำแหน่ง, จำนวนอักษร) s := 'game'; delete ( s, 1, 2); {หลังจาก procedureทำงาน s เท่ากับ 'me' } ฟังค์ชั่น .. หาตำแหน่ง pos(ข้อความที่จะค้นหา, ข้อความ) s := 'game'; write(pos('am', s)); {แสดง 2} substring copy(ข้อความ, ตำแหน่ง, จำนวนอักษร) s:=copy( 'thailand', 7, 2 ); write ( s ); {แสดง nd}
การประกาศชนิดข้อมูล

ชนิดข้อมูลโดยทั่วไป compiler จัดสรรไว้ให้แล้ว
ตัวอย่างเช่น string char integer real boolean
แต่อย่างไรก็ตาม เพื่อให้โปรแกรมทำงานตรงกับความต้องการ
หรือทำให้โปรแกรมดูเข้าใจได้ง่ายและเป็นระเบียบมากยิ่งขึ้น
ผู้เขียนโปรแกรม สามารถจะสร้างชนิดข้อมูลขึ้นมาใหม่ดังต่อไปนี้

1. ลดความยาวของชนิดข้อมูล string
type
    s30 = string[30];
var
    person_name : s30;
เป็นการประกาศตัวแปรเป็น string ที่มีความยาวได้ไม่เกิน 30 ตัวอักษร

2. ประกาศตัวแปร array มาสร้างเป็นชนิดข้อมูล
type
    score_of_student = array[1..50] of integer;
var
   mor1_1score : score_of_student;
   mor1_2score : score_of_student;

3. ประกาศข้อมูลชนิดช่วง
type
    num_of_student = 1..50 ;
    exam_score = 1..100;
    grade = 'A'..'F' ;
var
    mor3_1num : num_of_student;
    mor3_2num : num_of_student;
    math_score : exam_score;
    EnGrade : grade;

4. ประกาศเป็น enumerated (ตัวแปรชนิดกำหนดเอง)
type
   days = (sun,mon,tue,wed,thu,fri,sat);
var
   day : days;
begin
   day := mon;
    {ในการทราบลำดับของข้อมูล ของตัวแปรจะใช้ function ord() ดังนี้}
    write (ord(day));
readln;
end.

ตัวแปรชนิด enumerated ไม่ใช่ตัวแปรสตริง
การประกาศตัวแปรชนิดนี้จะเป็นการ
ประกาศตัวแปรชนิด ordinal (ตัวแปรที่มีลำดับ)

5. ในภาษา pascal นี้ยังสามารถสร้างชนิดของตัวแปรได้อีกหลายชนิด
เช่น record, file, pointer, object, set แต่ในเบื้องต้นจะศึกษาเพียงเท่านี้ครับ




array แบบหลายมิติ

การประกาศ ตัวแปร 2 มิติ

var list : array[1..3,1..5] of string; หรือ type s = array[1..5] of string; var list : array[1..3] of s;
เป็นการประกาศตัวแปร list[1,1],list[1,2],list[1,3],list[1,4],list[1,5], list[2,1],list[2,2],list[2,3],list[2,4],list[2,5], list[3,1],list[3,2],list[3,3],list[3,4],list[3,5] เป็นชนิด string การใช้งานก็เหมือนกับ array ธรรมดา เช่น list[1,1] := 'doraemon'; * การประกาศ array 3 4 มิติก็จะใช้วิธีการเขียนคล้ายๆ กัน
best view with ie 5.0++, screen 600x800