Các loại số nguyên trong Pascal Các kiểu dữ liệu trong Pascal

Bất kỳ chương trình nào được viết bằng bất kỳ ngôn ngữ lập trình nào đều được thiết kế cơ bản để xử lý dữ liệu. Dữ liệu có thể là số, văn bản, đồ họa, âm thanh, v.v. Một số dữ liệu là dữ liệu nguồn, số khác là kết quả, thu được bằng cách xử lý dữ liệu nguồn của chương trình.

Dữ liệu được lưu trữ trong bộ nhớ của máy tính. Chương trình truy cập chúng bằng cách sử dụng tên biến được liên kết với các vị trí bộ nhớ nơi dữ liệu được lưu trữ.

Các biến được mô tả trước mã chương trình chính. Tên của các biến và loại dữ liệu được lưu trữ trong chúng được chỉ ra ở đây.

Có rất nhiều kiểu dữ liệu trong ngôn ngữ lập trình Pascal. Ngoài ra, người dùng có thể tự xác định loại của riêng mình.

Loại biến xác định dữ liệu nào có thể được lưu trữ trong vị trí bộ nhớ liên kết với nó.

Loại biến số nguyên chỉ có thể được liên kết với các giá trị số nguyên thông thường trong khoảng -32768 đến 32767. Pascal có các kiểu số nguyên khác (byte, longint).

Loại biến thực tế lưu trữ số thực (phân số).

Biến đổi Boolean(Boolean) loại (boolean) chỉ có thể nhận hai giá trị - ĐÚNG VẬY(1, đúng) hoặc SAI(0, sai).

Kiểu ký tự (char) có thể lấy các giá trị từ một chuỗi ký tự được sắp xếp cụ thể.

Loại khoảng do người dùng xác định và chỉ được hình thành từ các loại thứ tự. Đại diện cho một tập hợp con các giá trị trong một phạm vi cụ thể.

Bạn có thể tạo kiểu dữ liệu của riêng mình bằng cách liệt kê các giá trị mà một biến thuộc loại đó có thể nhận. Đây là cái gọi là kiểu dữ liệu liệt kê.

Tất cả những điều trên đều là những kiểu dữ liệu đơn giản. Nhưng cũng có những cái phức tạp, có cấu trúc, dựa trên các kiểu đơn giản.

Mảng là một cấu trúc chiếm một vùng duy nhất trong bộ nhớ và bao gồm một số thành phần cố định cùng loại.

Dây là một dãy ký tự. Hơn nữa, số lượng ký tự này không được nhiều hơn 255. Hạn chế này là một tính năng đặc trưng của Pascal.

Ghi là một cấu trúc bao gồm một số thành phần cố định được gọi là trường. Dữ liệu trong các trường khác nhau của bản ghi có thể có nhiều loại khác nhau.

bộđại diện cho một tập hợp gồm nhiều phần tử nhưng có cùng kiểu liệt kê.

Các tập tinđối với Pascal, chúng là các chuỗi cùng loại dữ liệu được lưu trữ trên các thiết bị bộ nhớ ngoài (ví dụ: ổ cứng).

Khái niệm về kiểu dữ liệu như con trỏ liên quan đến việc lưu trữ động dữ liệu trong bộ nhớ máy tính. Thông thường, sử dụng kiểu dữ liệu động sẽ hiệu quả hơn trong lập trình so với sử dụng kiểu dữ liệu tĩnh.

Kiểu dữ liệu số đơn giản nhất trong Pascal là kiểu số nguyên, được thiết kế để lưu trữ số nguyên. Số nguyên trong Pascal thường được chia thành hai loại: có dấu và không dấu. Số có dấu là loại số nguyên bao gồm cả số dương và số âm, số không dấu chỉ là số dương.

Dưới đây là hai bảng có kiểu số nguyên. Đầu tiên chúng ta sẽ viết ra kiểu số nguyên có dấu:


KiểuBytePhạm vi giá trị
nói ngắn gọn1 -128 ... 127
nhỏ2 -32768 ... 32767
số nguyên, longint4 -2147483648 ... 2147483647
int648 -9223372036854775808 ... 9223372036854775807

Và cái này các kiểu số nguyên không dấu:


KiểuBytePhạm vi giá trị
byte1 0 ... 255
từ2 0 ... 65535
từ dài, hồng y4 0 ... 4294967295
uint648 0 ... 18446744073709551615

Như bạn có thể thấy, cột đầu tiên chứa tên của loại, cột thứ hai - số byte chiếm trong bộ nhớ bởi các số thuộc loại này và cột thứ ba - phạm vi các giá trị có thể tương ứng. Có hai loại số có dấu - số nguyên và số dài (nghĩa đen là "số nguyên" và "số nguyên dài"), đồng nghĩa với nhau. Tức là bạn có thể sử dụng tên này hoặc tên khác trong phần mô tả.

Tương tự, trong bảng thứ hai (số nguyên không âm trong Pascal), cũng có hai loại số nguyên đồng nghĩa 4 byte - longword và cardinal , vì vậy hãy sử dụng cái này hoặc cái kia.

Bạn cũng có thể nhận thấy rằng nếu chúng ta di chuyển có điều kiện các số của bảng đầu tiên sang bên phải so với 0 (di chuyển khoảng sang bên phải sao cho số tối thiểu là 0), thì chúng ta sẽ nhận được các khoảng số nguyên trong bảng thứ hai nằm ở các hàng tương ứng. Vì vậy, nếu trong loại shortint 1 byte, chúng ta thêm 128 vào ranh giới bên trái và bên phải, chúng ta sẽ nhận được loại byte (0..255); nếu trong loại Smallint 2 byte, chúng ta thêm 32768 vào các ranh giới, chúng ta sẽ nhận được từ loại không dấu 2 byte tương ứng (0..65535), v.v.

Tất cả điều này xảy ra bởi vì trong các kiểu số nguyên không dấu, các số có thể được chia chính xác thành hai: một nửa số thành phần âm, một nửa thành phần dương. Tại sao trong số đã ký, đường viền bên trái có giá trị tuyệt đối lớn hơn đường viền bên phải 1? - bạn hỏi. Ví dụ: trong loại shortint, mức tối thiểu là -128, trong khi mức tối đa chỉ là 127 (giảm modulo 1). Và điều này là do vế phải cũng bao gồm số 0, và bạn cần biết và ghi nhớ điều này.

Vậy tại sao số nguyên trong Pascal lại phải chia thành nhiều loại như vậy? Ví dụ: tại sao không vượt qua với loại số nguyên lớn nhất trong PascalABC.Net và Pascal miễn phí – int64 – gần 9 triệu rưỡi (!) với cả dấu trừ và dấu cộng? Có, vì một lý do tầm thường (?) đơn giản - tiết kiệm bộ nhớ. Nếu bạn cần cộng hai số dương nhỏ một byte (0..255) và bạn mô tả những số này là int64 (8 byte), thì việc này sẽ chiếm nhiều bộ nhớ hơn 8 lần. Và nếu chương trình lớn và có nhiều biến, thì mức tiết kiệm bộ nhớ sẽ tăng rất mạnh. Hơn nữa, sẽ không có ý nghĩa gì khi sử dụng các kiểu số nguyên có dấu nếu bài toán liên quan đến các đại lượng như độ dài, khối lượng, khoảng cách, thời gian, v.v.

Trong phần Sách bài toán Abrahamyan của trang web (tiểu mục Số nguyên), hãy quan sát cách sử dụng các loại số nguyên khác nhau trong Pascal.

Trong bất kỳ chương trình nào, bạn cần xác định loại và loại đại lượng sẽ được sử dụng để giải bài toán. Theo loại, các đại lượng đơn giản (trong lập trình đều được gọi là dữ liệu) được chia thành hằng số và biến.

Hằng số– đây là dữ liệu có giá trị không thể thay đổi trong quá trình thực hiện chương trình. Đã nhập vào khối const.

Nói chung, việc mô tả một hằng số chưa được gõ đơn giản được thực hiện như sau:

Const constant_name = biểu thức;

Các hằng số được gõ được mô tả như sau:

Hằng_name: type = biểu thức;

Những điều sau đây có thể được sử dụng trong các biểu thức:

· số hoặc một tập hợp các ký tự trong dấu nháy đơn;

· Các hoạt động toán học;

· các hoạt động quan hệ và logic;

· hàm abs(x), round(x), trunc(x);

· các hàm chr(x), ord(x), pred(x), succ(x) và các hàm khác.

Định dạng mô tả không đổi:

id=giá trị;

1. Số nguyên - được xác định bằng các số được viết ở dạng thập phân hoặc thập lục phân, không có dấu thập phân.

2. Số thực - được xác định bằng số được viết ở dạng dữ liệu thập phân.

3. Ký tự là bất kỳ ký hiệu nào của máy tính cá nhân được đặt trong dấu nháy đơn.

4. Chuỗi – được xác định bởi một chuỗi các ký tự tùy ý được đặt trong dấu nháy đơn.

5. Boolean - đây là Sai hoặc Đúng.

Loại hằng số không được chỉ định nhưng được xác định tự động trong quá trình biên dịch: các giá trị của biểu thức được tính toán ngay lập tức và sau đó chỉ được thay thế bằng tên.

Biến- Đây là dữ liệu có thể thay đổi trong quá trình thực hiện chương trình. Mỗi biến có vị trí/vị trí bộ nhớ được đặt tên riêng. Những thứ kia. biến là một loại thùng chứa trong đó bạn có thể đặt một số dữ liệu và lưu trữ nó ở đó. Các biến có tên, loại và giá trị.

Tên biến phải bắt đầu bằng một chữ cái, không được chứa dấu cách và chỉ được chứa:

· các chữ cái trong bảng chữ cái Latinh;

· gạch dưới.

Ví dụ: A, A_1, AA, i, j, x, y, v.v. Tên sai: My 1, 1A. Tên biến có thể dài tới 126 ký tự, vì vậy hãy cố gắng chọn tên biến có ý nghĩa. Tuy nhiên, trình biên dịch phân biệt 63 ký tự đầu tiên trong tên. Nhưng nó không phân biệt chữ thường và chữ in hoa, cả trong tên biến và cách viết mã định danh dịch vụ.

Loại biến – phải được xác định trong khối mô tả biến VAR. Giá trị của một biến là một hằng số cùng loại.

Mọi chương trình đều hoạt động với dữ liệu. Dữ liệu, theo nghĩa rộng của từ này, là đối tượng mà chương trình xử lý. Loại của một cái đã cho là đặc điểm của nó. Phụ thuộc vào loại:

· Dữ liệu này sẽ được lưu trữ dưới dạng nào,

Có bao nhiêu ô nhớ sẽ được phân bổ để lưu trữ,

Giá trị tối thiểu và tối đa nó có thể nhận là bao nhiêu,

· những hoạt động nào có thể được thực hiện với nó.

Một số kiểu dữ liệu Pascal đơn giản:

1. Các kiểu số nguyên (ShortInt, Integer, LongInt, Byte, Word).

2. Các loại thực (Real, Single, Double, Extended, Comp).

3. Logic (Boolean).

4. Nhân vật (Char).

5. Các kiểu chuỗi (String, String [n]).

9. Toán tử vô điều kiện trong Pascal. Mô tả và sử dụng.

Loại toán tử

đi đến<метка>;

Mục đích – chuyển quyền điều khiển trong chương trình cho người vận hành được đánh dấu bằng nhãn<метка>. Nhãn có thể là tên (được viết theo quy tắc cho tên ngôn ngữ) hoặc số nguyên không dấu được mô tả trong câu lệnh Nhãn nhãn và được đặt trước câu lệnh có nhãn, nhưng chỉ ở một vị trí trong chương trình. Một nhãn được phân tách khỏi toán tử bằng ký hiệu “:”. Quá trình chuyển đổi sang nhãn có thể xảy ra nhiều lần trong một khối, nhưng bản thân nhãn chỉ có thể xuất hiện một lần. Nếu không có sự chuyển giao điều khiển tới một nhãn nào đó thì sẽ không có lỗi.

Toán tử nhảy vô điều kiện thường không được phép trong lập trình có cấu trúc. Mặc dù nó cho phép bạn rút ngắn văn bản chương trình nhưng việc sử dụng nó trong Pascal bị hạn chế bởi một số quy tắc và khuyến nghị. Cấm nhảy vào bên trong một câu lệnh ghép, vào bên trong hoặc vào đầu chương trình con và thoát khỏi chương trình con đến chương trình đã gọi nó. Không nên di chuyển ra ngoài trang (màn hình) của văn bản chương trình, ngoại trừ việc di chuyển đến các câu lệnh cuối cùng của chương trình. Tất cả điều này là do khả năng bỏ qua các câu lệnh quan trọng để chương trình hoạt động chính xác. Thông thường, toán tử nhảy vô điều kiện chỉ được sử dụng để quay về phần đầu của thân vòng lặp nếu vòng lặp được xây dựng bằng cách sử dụng các toán tử có điều kiện và vô điều kiện.

Lưu ý rằng câu lệnh sau goto cũng phải được đánh dấu bằng nhãn khác (nếu goto không phải là câu lệnh cuối cùng trong nhóm câu lệnh). Nếu không, không có cách nào để chuyển sang câu lệnh goto tiếp theo.

10. Toán tử rẽ nhánh trong Pascal. Mô tả và sử dụng.

Các toán tử cho phép bạn chỉ chọn một trong số nhiều tùy chọn có thể có để thực thi chương trình (nhánh) bao gồm

Những thứ kia. Những câu lệnh này cho phép bạn thay đổi thứ tự thực hiện tự nhiên của các câu lệnh chương trình.

nếu như<условие>sau đó< оператор 1 >

khác<оператор 2> ;

nếu a>=b thì Max:=a khác Max:=b;

Trong câu lệnh if, chỉ có một câu lệnh có thể được thực thi trên cả hai nhánh (then và else)!

Một ví dụ về vấn đề về toán tử nhánh trong Pascal. Nhập hai số nguyên và hiển thị số lớn nhất trong số đó.

Ý tưởng giải pháp: bạn cần hiển thị số đầu tiên nếu nó lớn hơn số thứ hai hoặc số thứ hai nếu nó lớn hơn số thứ nhất.

Đặc điểm: hành động của người thực hiện phụ thuộc vào một số điều kiện nhất định (nếu... ngược lại...).

var a, b, max: số nguyên;

writeln("Nhập hai số nguyên");

nếu a > b thì max:=a khác max:=b;

writeln("Số tối đa", max);

Điều kiện khó khăn

Một điều kiện phức tạp là một điều kiện bao gồm một số điều kiện (quan hệ) đơn giản được kết nối bằng logic

hoạt động:

Not – NOT (phủ định, đảo ngược)

Và – Và (nhân logic, kết hợp,

thực hiện đồng thời các điều kiện)

Hoặc – HOẶC (cộng, tách logic,

đáp ứng ít nhất một trong các điều kiện)

Xor – OR độc quyền (chỉ thực thi

một trong hai điều kiện, nhưng không phải cả hai)

Điều kiện đơn giản (mối quan hệ)

< <= > >= = <>

Thứ tự thực hiện (ưu tiên = thâm niên)

Biểu thức trong ngoặc đơn

<, <=, >, >=, =, <>

Tính năng - mỗi điều kiện đơn giản phải được đặt trong ngoặc đơn.

toán tử lựa chọn trường hợp

Câu lệnh tình huống cho phép bạn chọn giữa một số tùy chọn.

Toán tử biến thể bao gồm

Từ một biểu thức được gọi là bộ chọn,

Danh sách các toán tử, mỗi toán tử được đánh dấu bằng một hằng số cùng loại với bộ chọn.

Bộ chọn chỉ được là kiểu dữ liệu thứ tự, không phải kiểu dữ liệu longint.

Bộ chọn có thể là một biến hoặc một biểu thức.

Danh sách các hằng số có thể được chỉ định bằng một bảng liệt kê rõ ràng hoặc bằng một khoảng hoặc bằng cách kết hợp chúng. Sự lặp lại của các hằng số không

cho phép.

Loại công tắc và loại của tất cả các hằng số phải tương thích.

Trường hợp< выражение {селектор}>của

<список констант 1> : < оператор 1>;

< список констант K> : < оператор K>;

Câu lệnh case được thực hiện như sau:

1) giá trị của bộ chọn được tính toán;

2) kết quả thu được được kiểm tra xem liệu nó có thuộc một danh sách hằng số cụ thể hay không;

3) nếu tìm thấy danh sách như vậy thì không cần kiểm tra thêm nữa mà chỉ thực hiện toán tử tương ứng với

nhánh được chọn, sau đó điều khiển được chuyển sang câu lệnh theo sau từ khóa end, đóng toàn bộ

xây dựng trường hợp;

4) nếu không có danh sách các hằng số phù hợp thì toán tử theo sau từ khóa else sẽ được thực thi; nếu không có chi nhánh nào khác,

sau đó không có gì được thực hiện.

Trong câu lệnh nhánh case, chỉ có thể thực thi một câu lệnh trên tất cả các nhánh!

Nếu bạn cần thực thi nhiều hơn một, bạn cần sử dụng dấu ngoặc nhọn của toán tử đầu cuối.

trường hợp Index mod 4 của

1: x:= y*y – 2*y;

11Toán tử .Option (lựa chọn) trong Pascal. Mô tả và sử dụng.

Toán tử lựa chọn (tùy chọn, chuyển đổi) thực hiện lựa chọn một trong các lựa chọn thay thế có thể, tức là. các lựa chọn để tiếp tục chương trình.

Định dạng ghi:

Trường hợp – sự lựa chọn, lựa chọn;

S – bộ chọn, biểu thức kiểu thứ tự;

Ki – hằng số lựa chọn, hằng số có kiểu phù hợp với kiểu bộ chọn;

OPi – bất kỳ toán tử nào, kể cả trống;

Toán tử lựa chọn thực hiện cấu trúc sau:

Hoạt động của toán tử lựa chọn trong Pascal: Biểu thức bộ chọn được ước tính. Giá trị tính toán được so sánh tuần tự với các hằng số thay thế và điều khiển được chuyển đến toán tử hằng số lựa chọn, trùng với giá trị bộ chọn được tính toán. Câu lệnh được thực thi và quyền điều khiển được chuyển ra ngoài câu lệnh select. Nếu giá trị tính toán của bộ chọn không khớp với bất kỳ hằng số nào, thì điều khiển sẽ được chuyển sang nhánh Else, trong trường hợp này sự hiện diện của nó là không cần thiết, điều khiển sẽ được chuyển ra bên ngoài toán tử lựa chọn.

Sơ đồ khối của toán tử lựa chọn.

Cấu trúc của câu lệnh lựa chọn có thể được triển khai bằng cách sử dụng các câu lệnh điều kiện lồng nhau, nhưng điều này làm giảm khả năng hiển thị của chương trình. Khuyến nghị không quá 2-3 mức đầu tư.

12. Các loại toán tử vòng lặp trong Pascal, mục đích của chúng.

5. Thuật toán xây dựng chu trình. Các loại chu kỳ.

Có ba loại thuật toán vòng lặp: vòng lặp có tham số (gọi là vòng lặp số học), vòng lặp có điều kiện trước và vòng lặp có hậu điều kiện (được gọi là vòng lặp).

12.13 Vòng lặp số học. Trong một chu trình số học, số bước (lặp lại) của nó được xác định duy nhất theo quy tắc thay đổi tham số, được chỉ định bằng cách sử dụng giá trị ban đầu (N) và cuối cùng (K) của tham số và bước (h) về sự thay đổi của nó. Nghĩa là, ở bước đầu tiên của chu kỳ, giá trị tham số là N, ở bước thứ hai - N + h, ở bước thứ ba - N + 2h, v.v. Ở bước cuối cùng của chu trình, giá trị của tham số không lớn hơn K, nhưng sự thay đổi tiếp theo của nó sẽ dẫn đến giá trị lớn hơn K.

Vòng đếm được sử dụng khi một phần tuần hoàn của chương trình phải được lặp lại một số lần cố định. Những vòng lặp như vậy có một biến số nguyên gọi là bộ đếm vòng lặp.

Nếu một đoạn chương trình cần được lặp lại một số lần xác định thì cấu trúc sau sẽ được sử dụng:

VÌ<имя счетчика цикла> = <начальное значение>CÁI ĐÓ<конечное значение>LÀM<оператор>;

FOR, TO, DO - các từ dành riêng (tiếng Anh: for, to, performance);

<счетчик (параметр) цикла>- một biến kiểu INTEGER, thay đổi trên một phân đoạn từ<начального значения>, tăng một đơn vị vào cuối mỗi bước của chu kỳ;

<оператор>- bất kỳ toán tử nào (thường là ghép).

Có một dạng khác của toán tử này:

VÌ<имя счетчика цикла>:= <начальное значение>XUỐNG<конечное значение>LÀM<оператор> :

Thay TO bằng DOWNTO (tiếng Anh: down to) nghĩa là bước thay đổi thông số chu trình bằng -1, tức là bộ đếm đang giảm dần từng bước một.

12.14 Vòng lặp với điều kiện tiên quyết. Số bước trong chu trình không được xác định trước và phụ thuộc vào dữ liệu đầu vào của tác vụ. Trong cấu trúc tuần hoàn này, giá trị của biểu thức điều kiện (điều kiện) trước tiên được kiểm tra trước khi thực hiện bước tiếp theo của vòng lặp. Nếu biểu thức điều kiện đúng thì phần thân vòng lặp sẽ được thực thi. Sau đó, quyền điều khiển lại được chuyển sang kiểm tra điều kiện, v.v. Những hành động này được lặp lại cho đến khi biểu thức điều kiện có giá trị là FALSE. Lần đầu tiên điều kiện không được đáp ứng, chu kỳ kết thúc.

Toán tử lặp lại được sử dụng phổ biến nhất này là:

TRONG KHI<условие>LÀM<оператор>;

WHILE, DO - từ dành riêng (tiếng Anh: bye, do);

<условие>- biểu thức của loại logic;

<оператор>- một toán tử tùy ý (có thể ghép).

Một tính năng đặc biệt của vòng lặp có điều kiện tiên quyết là nếu biểu thức điều kiện ban đầu sai thì phần thân vòng lặp sẽ không bao giờ được thực thi.

Vòng lặp có điều kiện tiên quyết được sử dụng khi việc thực hiện vòng lặp được liên kết với một số điều kiện logic. Câu lệnh vòng lặp có điều kiện tiên quyết có hai phần: điều kiện thực hiện vòng lặp và phần thân vòng lặp.

12.15 Vòng lặp có hậu điều kiện (vòng lặp). Giống như vòng lặp có điều kiện trước, trong thiết kế tuần hoàn có điều kiện hậu, số lần lặp lại của thân vòng lặp không được xác định trước; nó phụ thuộc vào dữ liệu đầu vào của tác vụ. Không giống như vòng lặp có điều kiện trước, phần thân của vòng lặp có điều kiện sau sẽ luôn được thực thi ít nhất một lần, sau đó điều kiện sẽ được kiểm tra. Trong thiết kế này, phần thân vòng lặp sẽ được thực thi miễn là giá trị của biểu thức điều kiện là sai. Khi nó trở thành đúng, lệnh sẽ ngừng thực thi.

Toán tử này trông giống như:

LẶP LẠI<тело цикла>CHO ĐẾN KHI<условие>:

REPEAT, UNTIL - từ dành riêng (tiếng Anh: lặp lại cho đến khi không);

<условие>- một biểu thức thuộc loại logic, nếu giá trị của nó là đúng thì vòng lặp sẽ thoát.

Cần lưu ý rằng trong cấu trúc này, chuỗi các câu lệnh xác định phần thân của vòng lặp không được đặt trong dấu ngoặc toán tử BEGIN ... END, vì chúng là cặp REPEAT ... UNTIL.

Vòng lặp hậu điều kiện tương tự như vòng lặp tiền điều kiện, nhưng chúng đặt điều kiện sau phần thân vòng lặp.

Không giống như vòng lặp có điều kiện trước, có thể kết thúc mà không bao giờ thực hiện phần thân vòng lặp (nếu điều kiện thực hiện là sai ở lần vượt qua đầu tiên của vòng lặp), phần thân vòng lặp có điều kiện sau phải được thực thi ít nhất một lần, sau điều kiện nào được kiểm tra.

Một trong các toán tử thân vòng lặp phải tác động đến giá trị của điều kiện thực hiện vòng lặp, nếu không vòng lặp sẽ được lặp lại vô số lần.

Nếu điều kiện đúng thì vòng lặp sẽ thoát, ngược lại các câu lệnh vòng lặp sẽ được lặp lại.

16. Mảng- đây là tập hợp các phần tử cùng loại, được thống nhất bằng một tên chung và chiếm một vùng bộ nhớ nhất định trong máy tính. Số phần tử trong mảng luôn hữu hạn. Nói chung, mảng là một kiểu dữ liệu có cấu trúc bao gồm một số phần tử cố định cùng loại. Mảng nhận được tên là loại (hoặc hàng) thông thường vì chúng kết hợp các phần tử cùng loại (đồng nhất về mặt logic), được sắp xếp (quy định) bởi các chỉ số xác định vị trí của từng phần tử trong mảng. Bất kỳ loại dữ liệu nào cũng có thể được sử dụng làm phần tử của một mảng, do đó, việc có mảng bản ghi, mảng con trỏ, mảng chuỗi, mảng, v.v. là hoàn toàn hợp pháp. Các phần tử của mảng có thể là dữ liệu thuộc bất kỳ loại nào, kể cả dữ liệu có cấu trúc . Kiểu phần tử mảng được gọi là cơ sở. Một đặc điểm của ngôn ngữ Pascal là số phần tử mảng được cố định trong quá trình mô tả và không thay đổi trong quá trình thực thi chương trình. Các phần tử tạo nên mảng được sắp xếp sao cho mỗi phần tử có một bộ số (chỉ số) tương ứng xác định vị trí của nó trong chuỗi tổng thể. Mỗi phần tử riêng lẻ được truy cập bằng cách lập chỉ mục các phần tử của mảng. Chỉ mục là biểu thức của bất kỳ loại vô hướng nào (thường là số nguyên), ngoại trừ số thực. Loại chỉ mục xác định ranh giới để thay đổi giá trị chỉ mục. Cụm từ mảng được sử dụng để mô tả một mảng.

Mảng là tập hợp dữ liệu thực hiện các chức năng tương tự và được chỉ định bằng một tên. Nếu mỗi phần tử của mảng chỉ có một số sê-ri được gán cho nó thì mảng đó được gọi là tuyến tính hoặc một chiều.

17. Mảng một chiều– đây là một số cố định các phần tử cùng loại, được thống nhất bằng một tên và mỗi phần tử có một số duy nhất và các số phần tử là liên tiếp.

Để mô tả các đối tượng như vậy trong lập trình, trước tiên bạn phải nhập kiểu tương ứng vào phần mô tả kiểu.

Kiểu mảng được mô tả như sau:

Tên loại = Mảng [loại chỉ mục] Của loại phần tử;

Tên biến: tên loại;

Một biến mảng có thể được mô tả ngay trong phần mô tả biến Var:

Var Tên biến: mảng [loại chỉ mục] Thuộc loại phần tử;

Mảng là một từ phục vụ (dịch từ tiếng Anh là “mảng”);

Of là một từ phục vụ (dịch từ tiếng Anh là “from”).

Loại chỉ mục – bất kỳ loại thứ tự nào, ngoại trừ loại số nguyên và loại longint.

Bản thân loại phần tử có thể là bất cứ thứ gì ngoại trừ loại tệp.

Số phần tử trong một mảng được gọi là thứ nguyên của nó. Có thể dễ dàng tính toán rằng với phương pháp cuối cùng mô tả một tập hợp chỉ mục, kích thước mảng bằng: giá trị chỉ mục tối đa – giá trị chỉ mục tối thiểu + 1.

Ví dụ:

mas = mảng thực;

Mảng X là một chiều, bao gồm 20 phần tử kiểu thực. Các phần tử mảng được lưu trữ tuần tự trong bộ nhớ máy tính.

Khi sử dụng các biến để biểu thị một chỉ mục, giá trị của chúng phải được xác định tại thời điểm sử dụng và trong trường hợp biểu thức số học, kết quả của chúng không được vượt quá ranh giới giá trị tối thiểu và tối đa của các chỉ số mảng.

Các chỉ mục phần tử mảng có thể bắt đầu bằng bất kỳ số nguyên nào, kể cả số nguyên âm, ví dụ:

Kiểu bb = Mảng [-5..3] Của Boolean;

Mảng kiểu này sẽ chứa 9 biến logic, được đánh số từ -5 đến 3.

18. Mảng hai chiều trong Pascalđược coi là mảng một chiều có kiểu phần tử cũng là một mảng (mảng các mảng). Vị trí của các phần tử trong mảng Pascal hai chiều được mô tả bằng hai chỉ số. Chúng có thể được trình bày dưới dạng bảng hình chữ nhật hoặc ma trận.

Xét một mảng Pascal hai chiều có kích thước 3*3, nghĩa là nó sẽ có ba dòng và mỗi dòng sẽ có ba phần tử:

Mỗi phần tử có một số riêng, giống như mảng một chiều, nhưng bây giờ số này đã bao gồm hai số - số hàng chứa phần tử và số cột. Do đó, số phần tử được xác định bằng giao điểm của một hàng và một cột. Ví dụ: 21 là phần tử xuất hiện ở hàng thứ hai và cột đầu tiên.

Mô tả mảng Pascal hai chiều.

Có một số cách để khai báo mảng Pascal hai chiều.

Chúng ta đã biết cách mô tả mảng một chiều, các phần tử của nó có thể thuộc bất kỳ loại nào và do đó, bản thân các phần tử có thể là mảng. Hãy xem xét mô tả sau đây về các loại và biến:

Các thao tác cơ bản với mảng Pascal hai chiều

Mọi điều đã nói về các phép toán cơ bản với mảng một chiều cũng đúng với ma trận. Hành động duy nhất có thể được thực hiện trên toàn bộ ma trận cùng loại là phép gán. Nghĩa là, nếu chương trình của chúng ta mô tả hai ma trận cùng loại, ví dụ:

ma trận= mảng số nguyên;

thì trong quá trình thực hiện chương trình, bạn có thể gán cho ma trận a giá trị của ma trận b (a:= b). Tất cả các hành động khác được thực hiện theo từng phần tử và tất cả các thao tác hợp lệ được xác định cho kiểu dữ liệu của các phần tử mảng đều có thể được thực hiện trên các phần tử. Điều này có nghĩa là nếu một mảng bao gồm các số nguyên thì các phép toán xác định cho số nguyên có thể được thực hiện trên các phần tử của nó, nhưng nếu mảng bao gồm các ký tự thì các phép toán được xác định để làm việc với các ký tự có thể được áp dụng cho chúng.

21. Công nghệ làm việc với văn bản. Trình soạn thảo và xử lý văn bản: mục đích và khả năng.

Các trình soạn thảo văn bản nâng cao hơn (ví dụ: Microsoft Word và OpenOffice.org Writer), đôi khi được gọi là trình xử lý văn bản, có nhiều khả năng tạo tài liệu (chèn danh sách và bảng, công cụ kiểm tra chính tả, lưu các bản sửa lỗi, v.v.).

Để chuẩn bị cho việc xuất bản sách, tạp chí và báo trong quá trình bố cục xuất bản, các chương trình xử lý văn bản mạnh mẽ được sử dụng - hệ thống xuất bản trên máy tính để bàn (ví dụ: Adobe PageMaker, Nhà xuất bản Microsoft Office).

Để chuẩn bị các trang Web và trang Web xuất bản trên Internet, các ứng dụng chuyên dụng (ví dụ: Microsoft FrontPage) được sử dụng.

Trình soạn thảo văn bản là các chương trình tạo, chỉnh sửa, định dạng, lưu và in tài liệu. Một tài liệu hiện đại có thể chứa, ngoài văn bản, các đối tượng khác (bảng, sơ đồ, hình ảnh, v.v.).

Chỉnh sửa là một phép chuyển đổi thêm, xóa, di chuyển hoặc sửa nội dung của tài liệu. Việc chỉnh sửa tài liệu thường được thực hiện bằng cách thêm, xóa hoặc di chuyển các ký tự hoặc đoạn văn bản.

Định dạng là thiết kế văn bản. Ngoài các ký tự văn bản, văn bản được định dạng còn chứa các mã vô hình đặc biệt cho chương trình biết cách hiển thị trên màn hình và in trên máy in: sử dụng phông chữ nào, kiểu và kích thước của ký tự, đoạn văn và tiêu đề như thế nào. nên được định dạng.

Văn bản được định dạng và không được định dạng có phần khác nhau về bản chất. Sự khác biệt này phải được hiểu. Trong văn bản được định dạng, mọi thứ đều quan trọng: kích thước của các chữ cái, hình ảnh của chúng và vị trí một dòng kết thúc và một dòng khác bắt đầu. Nghĩa là, văn bản được định dạng gắn bó chặt chẽ với các thông số của tờ giấy mà nó được in.

Khi thiết kế tài liệu văn bản, bạn thường cần thêm các thành phần hoặc đối tượng phi văn bản vào tài liệu. Các trình soạn thảo văn bản nâng cao cho phép bạn thực hiện việc này - chúng có nhiều cơ hội để chèn hình ảnh, sơ đồ, công thức, v.v. vào văn bản.

Tài liệu giấy và điện tử. Tài liệu có thể là giấy hoặc điện tử. Tài liệu giấy được tạo và định dạng để cung cấp bản trình bày tốt nhất có thể khi in trên máy in. Tài liệu điện tử được tạo và định dạng để trình bày tốt nhất trên màn hình máy tính. Việc thay thế dần luồng văn bản giấy bằng văn bản điện tử là một trong những xu hướng phát triển của công nghệ thông tin. Giảm tiêu thụ giấy có tác dụng tích cực trong việc bảo tồn tài nguyên thiên nhiên và giảm ô nhiễm môi trường.

Định dạng của tài liệu giấy và tài liệu điện tử có thể khác nhau đáng kể. Đối với tài liệu giấy, cái gọi là định dạng tuyệt đối được chấp nhận. Một tài liệu in luôn được định dạng để vừa với một tờ giấy in có kích thước (định dạng) đã biết. Ví dụ: chiều rộng của dòng tài liệu phụ thuộc vào chiều rộng của tờ giấy. Nếu một tài liệu được thiết kế để in trên các tờ giấy khổ lớn, thì nó không thể được in trên những tờ giấy nhỏ - một phần của tài liệu sẽ không vừa với chúng. Nói một cách dễ hiểu, việc định dạng một tài liệu in luôn yêu cầu trước tiên phải chọn một tờ giấy rồi liên kết nó với trang này. Đối với tài liệu in, bạn luôn có thể chỉ ra chính xác (theo bất kỳ đơn vị đo lường nào) kích thước phông chữ, lề, khoảng cách giữa các dòng hoặc đoạn văn, v.v.

Đối với các tài liệu điện tử, cái gọi là định dạng tương đối là phổ biến. Tác giả của tài liệu không thể dự đoán trước kích thước máy tính hoặc màn hình mà tài liệu sẽ được xem. Hơn nữa, ngay cả khi biết trước kích thước màn hình, vẫn không thể dự đoán được kích thước của cửa sổ mà người đọc sẽ xem tài liệu sẽ là bao nhiêu. Do đó, các tài liệu điện tử được tạo ra để thích ứng với kích thước và định dạng cửa sổ hiện tại một cách nhanh chóng.

Tác giả của một tài liệu điện tử cũng không biết những phông chữ nào có sẵn trên máy tính của người đọc trong tương lai, và do đó không thể chỉ ra chính xác phông chữ nào mà văn bản và tiêu đề sẽ được hiển thị. Nhưng nó có thể đặt định dạng làm cho tiêu đề xuất hiện lớn hơn văn bản trên bất kỳ máy tính nào.

Định dạng tương đối được sử dụng để tạo tài liệu Internet điện tử (còn gọi là trang Web) và định dạng tuyệt đối được sử dụng để tạo tài liệu in trong trình xử lý văn bản.

22.Các thành phần cấu trúc chính của một tài liệu văn bản. Phông chữ, kiểu dáng, định dạng.

Định dạng phông chữ (ký tự).

Ký hiệu là chữ cái, số, dấu cách, dấu chấm câu và ký tự đặc biệt. Các biểu tượng có thể được định dạng (thay đổi diện mạo của chúng). Trong số các thuộc tính chính của biểu tượng là: phông chữ, kích thước, kiểu dáng và màu sắc.

Phông chữ là một tập hợp đầy đủ các ký tự có kiểu dáng nhất định. Mỗi font đều có tên riêng, ví dụ Times New Roman, Arial, Comic Sans MS. Đơn vị phông chữ là điểm (1 pt = 0,367 mm). Kích thước phông chữ có thể được thay đổi trong giới hạn rộng. Ngoài kiểu ký tự thông thường (thông thường), kiểu in đậm, in nghiêng và in nghiêng đậm thường được sử dụng.

Tùy thuộc vào cách chúng được trình bày trên máy tính, có sự khác biệt giữa phông chữ raster và vector. Các phương pháp đồ họa raster được sử dụng để thể hiện các phông chữ raster; các ký tự phông chữ là các nhóm pixel. Phông chữ bitmap chỉ có thể được chia tỷ lệ theo một số yếu tố nhất định.

Trong phông chữ vector, các ký tự được mô tả bằng công thức toán học và có thể thu nhỏ tùy ý. Trong số các phông chữ vector, phông chữ TrueType được sử dụng rộng rãi nhất.

Bạn cũng có thể thiết lập các tùy chọn định dạng ký tự bổ sung: gạch chân các ký tự với các kiểu dòng khác nhau, thay đổi hình thức của ký tự (chỉ số trên, chỉ số dưới, gạch ngang), thay đổi khoảng cách giữa các ký tự.

Nếu bạn dự định in tài liệu có màu, bạn có thể đặt các màu khác nhau cho các nhóm ký tự khác nhau.

Để kiểm tra chính tả và cú pháp, các mô-đun phần mềm đặc biệt được sử dụng, thường có trong bộ xử lý văn bản và hệ thống xuất bản. Những hệ thống như vậy chứa từ điển và quy tắc ngữ pháp cho một số ngôn ngữ, giúp sửa lỗi trong các tài liệu đa ngôn ngữ.

24. Cơ sở dữ liệu là một mô hình thông tin cho phép bạn lưu trữ dữ liệu một cách có trật tự về một nhóm đối tượng có cùng tập thuộc tính.

Có một số loại cơ sở dữ liệu khác nhau: dạng bảng (quan hệ), phân cấp và mạng.

Cơ sở dữ liệu dạng bảng.

Cơ sở dữ liệu dạng bảng chứa danh sách các đối tượng cùng loại, nghĩa là các đối tượng có cùng bộ thuộc tính. Thật thuận tiện khi biểu diễn cơ sở dữ liệu như vậy dưới dạng bảng hai chiều.

Trong cơ sở dữ liệu quan hệ, tất cả dữ liệu được trình bày dưới dạng các bảng đơn giản, được chia thành các hàng và cột, tại giao điểm của dữ liệu. Các truy vấn trên các bảng như vậy sẽ trả về các bảng mà bản thân chúng có thể là chủ đề của các truy vấn tiếp theo. Mỗi cơ sở dữ liệu có thể chứa nhiều bảng.

Ưu điểm chính của bảng là sự rõ ràng của chúng. Hầu như ngày nào chúng ta cũng xử lý thông tin dạng bảng. Ví dụ, hãy xem nhật ký của bạn: lịch học được trình bày ở đó dưới dạng bảng. Khi đến ga, chúng tôi xem lịch trình tàu chạy. Nó trông như thế nào? Đây là cái bàn! Ngoài ra còn có bảng vô địch bóng đá. Và nhật ký của giáo viên, nơi ông chấm điểm cho bạn, cũng là một cái bàn.

Tóm lại, các tính năng của cơ sở dữ liệu quan hệ có thể được xây dựng như sau:

1. Dữ liệu được lưu trữ trong các bảng gồm các cột (“thuộc tính”, “trường”) và hàng (“bản ghi”);

2. Tại giao điểm của mỗi cột và hàng có đúng một giá trị;

3. Mỗi cột có tên riêng, dùng làm tên của nó và tất cả các giá trị trong một cột đều cùng loại.

4. Truy vấn cơ sở dữ liệu trả về kết quả dưới dạng bảng, cũng có thể hoạt động như đối tượng truy vấn.

5.Các hàng trong cơ sở dữ liệu quan hệ không có thứ tự - việc sắp xếp được thực hiện tại thời điểm phản hồi cho truy vấn được tạo.

6.Thông thường thông tin trong cơ sở dữ liệu không được lưu trữ trong một bảng mà trong nhiều bảng có liên quan với nhau.

Trong cơ sở dữ liệu quan hệ, một hàng của bảng được gọi là ghi âm, và cột là cánh đồng. Mỗi trường bảng có một tên.

Lĩnh vực- đây là những đặc điểm khác nhau (đôi khi được gọi là thuộc tính) của một đối tượng. Giá trị trường trong một dòng đề cập đến một đối tượng.

Khóa chính trong cơ sở dữ liệu, một trường (hoặc một tập hợp các trường) được gọi có giá trị không lặp lại trong các bản ghi khác nhau.

Mỗi trường có thêm một thuộc tính rất quan trọng liên quan đến nó: Loại lĩnh vực. Loại trường xác định tập hợp các giá trị mà một trường nhất định có thể đảm nhận trong các bản ghi khác nhau.

Có bốn loại trường chính được sử dụng trong cơ sở dữ liệu quan hệ:

Số;

Tượng trưng;

Hợp lý.

25. Hệ thống quản lý cơ sở dữ liệu và nguyên tắc làm việc với chúng. Tìm kiếm, xóa và sắp xếp dữ liệu trong cơ sở dữ liệu. Điều kiện tìm kiếm (biểu thức logic); sắp xếp và sắp xếp các phím.

Hệ thống quản lý cơ sở dữ liệu (DBMS).

Để tạo cơ sở dữ liệu, cũng như thực hiện các hoạt động tìm kiếm và sắp xếp, các chương trình đặc biệt được sử dụng - hệ thống quản lý cơ sở dữ liệu (DBMS).

Vì vậy, cần phân biệt giữa chính cơ sở dữ liệu (DB) - bộ dữ liệu được sắp xếp và hệ thống quản lý cơ sở dữ liệu (DBMS) - các chương trình quản lý việc lưu trữ và xử lý dữ liệu. Ví dụ: ứng dụng Access, có trong bộ ứng dụng văn phòng Microsoft Office, là một DBMS cho phép người dùng tạo và xử lý cơ sở dữ liệu dạng bảng.

Cơ sở dữ liệu quan hệ về cơ bản là một bảng hai chiều. Bản ghi ở đây được hiểu là một hàng của một bảng hai chiều, các phần tử của nó tạo thành các cột của bảng. Tùy thuộc vào loại dữ liệu, các cột có thể là số, văn bản hoặc ngày. Các hàng của bảng được đánh số.

Làm việc với DBMS bắt đầu bằng việc tạo cấu trúc cơ sở dữ liệu, tức là bằng việc xác định:

số cột;

tên cột;

loại cột (văn bản/số/ngày);

chiều rộng cột.

Các chức năng chính của DBMS:

Quản lý dữ liệu trong bộ nhớ ngoài (trên đĩa);

Quản lý dữ liệu trong RAM;

Ghi nhật ký các thay đổi và khôi phục cơ sở dữ liệu sau khi bị lỗi;

Hỗ trợ các ngôn ngữ cơ sở dữ liệu (ngôn ngữ định nghĩa dữ liệu, ngôn ngữ thao tác dữ liệu).

Trong các lệnh DBMS, điều kiện lựa chọn được viết dưới dạng biểu thức logic.

Một biểu thức logic, giống như một biểu thức toán học, được thực thi (được đánh giá), nhưng kết quả không phải là một con số mà là một giá trị logic: đúng hoặc sai.

Một biểu thức bao gồm một giá trị logic hoặc một quan hệ sẽ được gọi là biểu thức logic đơn giản.

Thường có những vấn đề trong đó không sử dụng các điều kiện riêng lẻ mà là một tập hợp các điều kiện (quan hệ) liên kết với nhau. Ví dụ: bạn cần chọn những học sinh có cân nặng trên 60 và chiều cao dưới 168.

Một biểu thức chứa các phép toán logic sẽ được gọi là biểu thức logic phức tạp.

Việc kết hợp hai (hoặc nhiều) câu lệnh thành một câu bằng cách sử dụng liên từ “và” được gọi là phép toán nhân hoặc kết hợp logic.

Là kết quả của phép nhân logic (kết hợp), có được sự thật nếu tất cả các biểu thức logic đều đúng.

Việc kết hợp hai (hoặc nhiều) câu lệnh sử dụng liên từ “hoặc” được gọi là phép toán cộng hoặc tách logic.

Là kết quả của phép cộng logic (phân tách), giá trị đúng sẽ đạt được nếu ít nhất một biểu thức logic là đúng.

Việc gắn trợ từ “không” vào một câu phát biểu được gọi là phép toán phủ định hoặc đảo ngược logic.

27. Bảng tính, mục đích và chức năng cơ bản.

Bảng tính là một chương trình xử lý dữ liệu số, lưu trữ và xử lý dữ liệu trong các bảng hình chữ nhật.

Một bảng tính bao gồm các cột và hàng. Tiêu đề cột được ký hiệu bằng các chữ cái hoặc tổ hợp các chữ cái (A, G, AB, v.v.), tiêu đề hàng được ký hiệu bằng số (1, 16, 278, v.v.). Một ô là giao điểm của một cột và một hàng.

Mỗi ô của bảng có địa chỉ riêng. Địa chỉ ô của bảng tính được tạo thành từ tiêu đề cột và tiêu đề hàng, ví dụ: A1, F123, R1. Ô thực hiện một số hành động được đánh dấu bằng khung và được gọi là ô đang hoạt động.

Loại dữ liệu. Bảng tính cho phép bạn làm việc với ba loại dữ liệu chính: số, văn bản và công thức.

Các số trong bảng tính Excel có thể được viết ở dạng số thông thường hoặc dạng số mũ, ví dụ: 195.2 hoặc 1.952E + 02. Theo mặc định, các số được căn chỉnh về bên phải trong một ô. Điều này được giải thích là do khi xếp các số chồng lên nhau (trong một cột của bảng) sẽ thuận tiện căn chỉnh theo chữ số (đơn vị dưới đơn vị, hàng chục dưới hàng chục, v.v.).

Công thức phải bắt đầu bằng dấu bằng và có thể bao gồm số, tên ô, hàm (Toán học, Thống kê, Tài chính, Ngày và Giờ, v.v.) và các ký hiệu toán học. Ví dụ: công thức “=A1+B2” cung cấp phép cộng các số được lưu trữ trong ô A1 và B2, đồng thời công thức “=A1*B” nhân số được lưu trữ trong ô A1 với 5. Khi bạn nhập công thức vào một ô , nó không phải là công thức được hiển thị mà là kết quả của các phép tính sử dụng công thức này. Nếu các giá trị ban đầu có trong công thức thay đổi, kết quả sẽ được tính lại ngay lập tức.

Liên kết tuyệt đối và tương đối. Công thức sử dụng tham chiếu đến địa chỉ ô. Có hai loại liên kết chính: tương đối và tuyệt đối. Sự khác biệt giữa chúng xuất hiện khi bạn sao chép công thức từ ô hiện hoạt sang ô khác.

Tham chiếu tương đối trong công thức được sử dụng để chỉ định địa chỉ ô được tính tương ứng với ô chứa công thức. Khi bạn di chuyển hoặc sao chép một công thức từ ô hiện hoạt, các tham chiếu tương đối sẽ tự động được cập nhật dựa trên vị trí mới của công thức. Liên kết tương đối có dạng: A1, BZ.

Nếu ký hiệu đô la đứng trước một chữ cái (ví dụ: $A1), thì tọa độ cột là tuyệt đối và tọa độ hàng là tương đối. Nếu ký hiệu đô la ở phía trước một số (ví dụ: A$1), thì ngược lại, tọa độ cột là tương đối và tọa độ hàng là tuyệt đối. Các liên kết như vậy được gọi là hỗn hợp.

Ví dụ: hãy viết công thức =A$1+$J31 trong ô C1, khi sao chép sang ô D2 sẽ có dạng =B$1+$B2. Liên kết tương đối thay đổi khi sao chép, nhưng liên kết tuyệt đối thì không.

Sắp xếp và tìm kiếm dữ liệu. Bảng tính cho phép bạn sắp xếp dữ liệu. Dữ liệu trong bảng tính được sắp xếp theo thứ tự tăng dần hoặc giảm dần. Khi sắp xếp, dữ liệu được sắp xếp theo một thứ tự nhất định. Bạn có thể thực hiện các sắp xếp lồng nhau, tức là sắp xếp dữ liệu theo nhiều cột và chỉ định trình tự sắp xếp cho các cột.

Trong bảng tính, bạn có thể tìm kiếm dữ liệu theo các điều kiện cụ thể - bộ lọc. Các bộ lọc được xác định bằng cách sử dụng các thuật ngữ tìm kiếm (lớn hơn, nhỏ hơn, bằng, v.v.) và các giá trị (100, 10, v.v.). Ví dụ: hơn 100. Kết quả của việc tìm kiếm sẽ tìm thấy những ô chứa dữ liệu phù hợp với bộ lọc đã chỉ định.

Xây dựng biểu đồ và đồ thị. Bảng tính cho phép bạn trình bày dữ liệu số dưới dạng biểu đồ hoặc đồ thị. Biểu đồ có nhiều loại khác nhau (thanh, bánh, v.v.); Việc lựa chọn loại biểu đồ phụ thuộc vào bản chất của dữ liệu.

28. Công nghệ xử lý thông tin trong bảng tính (ET). Cấu trúc bảng tính.

Bảng tính là một chương trình xử lý dữ liệu số, lưu trữ và xử lý dữ liệu trong các bảng hình chữ nhật. Một bảng tính bao gồm các cột và hàng. Tiêu đề cột được ký hiệu bằng các chữ cái hoặc tổ hợp các chữ cái (A, G, AB, v.v.), tiêu đề hàng được ký hiệu bằng số (1, 16, 278, v.v.). Một ô là giao điểm của một cột và một hàng. Mỗi ô của bảng có địa chỉ riêng. Địa chỉ ô của bảng tính được tạo thành từ tiêu đề cột và tiêu đề hàng, ví dụ: Al, B5, E7. Ô thực hiện một số hành động được đánh dấu bằng khung và được gọi là ô đang hoạt động. Các bảng tính mà người dùng làm việc trong ứng dụng được gọi là bảng tính. Bạn có thể nhập và thay đổi dữ liệu trên nhiều trang tính cùng một lúc và thực hiện các phép tính dựa trên dữ liệu từ nhiều trang tính. Tài liệu bảng tính có thể bao gồm nhiều trang tính và được gọi là sổ làm việc.

29. Các kiểu dữ liệu trong bảng tính (ET): số, công thức, văn bản. Quy tắc viết công thức.

Loại dữ liệu.

Bảng tính cho phép bạn làm việc với ba loại dữ liệu chính: số, văn bản và công thức.

Các số trong bảng tính Excel có thể được viết ở định dạng số hoặc hàm mũ thông thường, ví dụ: 195,2 hoặc 1,952Ё + 02. Theo mặc định, các số được căn chỉnh về bên phải trong một ô. Điều này được giải thích là do khi xếp các số chồng lên nhau (trong một cột của bảng) sẽ thuận tiện căn chỉnh theo chữ số (đơn vị dưới đơn vị, hàng chục dưới hàng chục, v.v.).

Văn bản trong bảng tính Excel là một dãy ký tự bao gồm chữ cái, số và dấu cách, ví dụ mục “32 MB” là văn bản. Theo mặc định, văn bản được căn trái trong một ô. Điều này là do cách viết truyền thống (từ trái sang phải).

Công thức phải bắt đầu bằng dấu bằng và có thể bao gồm số, tên ô, hàm (Toán học, Thống kê, Tài chính, Ngày và Giờ, v.v.) và các ký hiệu của phép toán. Ví dụ: công thức “=A1+B2” cung cấp phép cộng các số được lưu trữ trong ô A1 và B2, đồng thời công thức “=A1*5” nhân số được lưu trữ trong ô A1 với 5. Khi bạn nhập công thức vào một ô , nó không phải là công thức được hiển thị mà là kết quả của các phép tính sử dụng công thức này. Nếu các giá trị ban đầu có trong công thức thay đổi, kết quả sẽ được tính lại ngay lập tức.

Quy tắc viết công thức trong bảng tính

1. Công thức chứa số, tên ô, dấu phép tính, dấu ngoặc đơn, tên hàm

2. Các phép tính số học và dấu hiệu của chúng:

Tên thao tác Ký hiệu Tổ hợp phím

phép cộng + (Shift + +=)hoặc (+) trên bàn phím bổ sung

phép trừ – (-)

phép nhân * (Shift + 8) hoặc (*) trên bàn phím bổ sung

phép chia / (Shift + | \) hoặc (/) trên bàn phím bổ sung

lũy thừa ^ (Shift + 6) trong tiếng Anh

3. Công thức được viết thành dòng, các ký hiệu lần lượt được xếp nối tiếp nhau, nhập đầy đủ các ký hiệu phép toán; dấu ngoặc đơn được sử dụng.

4. Các phép toán trong ngoặc được thực hiện trước, nếu không có dấu ngoặc thì thứ tự thực hiện được xác định theo thứ tự ưu tiên của các phép toán. Theo thứ tự ưu tiên giảm dần, các thao tác được sắp xếp theo thứ tự sau:

1. lũy thừa

2. nhân, chia

3. cộng, trừ

Các thao tác có cùng mức độ ưu tiên được thực hiện theo thứ tự chúng được viết từ trái sang phải.

5. Công thức có thể được nhập ở chế độ hiển thị tính toán, tức là. Người dùng bắt đầu viết công thức vào ô hiện tại bằng dấu = và sau khi nhấn phím Enter, kết quả tính toán sử dụng công thức sẽ được hiển thị trong ô.

6. Công thức có thể được nhập ở chế độ hiển thị công thức, tức là. người dùng viết công thức vào ô hiện tại không có dấu = và công thức được hiển thị trong ô sau khi nhấn phím Enter.

30. Các chức năng tích hợp cơ bản. Liên kết tuyệt đối và tương đối trong bảng tính (ET).

Tham chiếu tương đối trong công thức được sử dụng để chỉ định địa chỉ ô được tính tương ứng với ô chứa công thức. Khi bạn di chuyển hoặc sao chép một công thức từ ô hiện hoạt, các tham chiếu tương đối sẽ tự động được cập nhật dựa trên vị trí mới của công thức. Liên kết tương đối có dạng: A1, ВЗ.

Tham chiếu tuyệt đối trong công thức được dùng để chỉ định địa chỉ ô cố định. Khi bạn di chuyển hoặc sao chép một công thức, tham chiếu tuyệt đối không thay đổi. Trong tham chiếu tuyệt đối, giá trị địa chỉ ô bất biến được đặt trước ký hiệu đô la (ví dụ: $A$1).

Nếu ký hiệu đô la đứng trước một chữ cái (ví dụ: $A1), thì tọa độ cột là tuyệt đối và tọa độ hàng là tương đối. Nếu ký hiệu đô la ở phía trước một số (ví dụ: A$1), thì ngược lại, tọa độ cột là tương đối và tọa độ hàng là tuyệt đối. Các liên kết như vậy được gọi là hỗn hợp. Ví dụ: hãy viết công thức =A$1+$B1 trong ô C1, khi sao chép sang ô D2 sẽ có dạng =B$1+$B2. Liên kết tương đối thay đổi khi sao chép, nhưng liên kết tuyệt đối thì không.

BÀI 2

Cơ bản về lập trình.

Giới thiệu Pascal. Loại dữ liệu. Hoạt động.

bảng chữ cái ngôn ngữPascal

Bất kỳ ngôn ngữ tự nhiên nào cũng bao gồm các yếu tố như ký hiệu, từ, cụm từ và câu. Một ngôn ngữ lập trình cũng có các yếu tố tương tự: ký hiệu, từ, biểu thức (cụm từ), toán tử (câu).

Các từ được hình thành từ một bộ sưu tập các ký hiệu. Biểu thức - đây là các nhóm từ và toán tử - Đây là sự kết hợp của các từ và cách diễn đạt. Ký hiệu ngôn ngữ là những ký hiệu cơ bản (chữ cái) được sử dụng để soạn thảo một số văn bản. Vì vậy, tập hợp các ký hiệu này tạo thành bảng chữ cái của ngôn ngữ.

Bảng chữ cái Pascal bao gồm:

1. Chữ hoa và chữ thường của bảng chữ cái Latinh, bao gồm các ký tự sau:

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z - chữ in hoa;

A b c d e f g h i j k l m n o p q r s t u v w x y z - chữ thường;

2. Chữ số Ả Rập thập phân: 0 1 2 3 4 5 6 7 8 9;

3. Chữ số thập lục phân (được cấu tạo từ chữ số thập phân và các chữ cái từ A đến F);

4. 32 chữ hoa và chữ thường của bảng chữ cái tiếng Nga;

5. Ký tự đặc biệt:

Sự kết hợp của các ký tự đặc biệt có thể tạo thành các ký tự ghép:

: = bài tập;

< >không công bằng;

>= lớn hơn hoặc bằng;

<= меньше или равно;

Phạm vi giá trị;

(* *) hoặc ( ) - bình luận.

Cấu trúc chương trình Pascal

Để trình biên dịch Passal hiểu chính xác những hành động được mong đợi từ nó, chương trình của bạn phải được định dạng đầy đủ theo cú pháp (quy tắc xây dựng chương trình) của ngôn ngữ này.

Bất kỳ chương trình Pascal nào cũng có thể bao gồm các khối sau (các phần tùy chọn được đánh dấu bằng dấu ngoặc vuông sau đây):

chương trình<имя_программы>;

[sử dụng<имена_подключаемых_модулей>;]

[ nhãn<список_меток>;]

[ hằng số<имя_константы> = <значение_константы>;]

[ kiểu<имя_типа> = <определение_типа>;]

[var<имя_переменной> : <тип_переменной>;]

[ thủ tục<имя_процедуры> <описание_процедуры>;]

[ chức năng<имя_функции> <описание_функции>;]

bắt đầu (bắt đầu phần chính của chương trình)

<операторы>

kết thúc. (*kết thúc nội dung chính của chương trình*)

Các phiên bản sau này của trình biên dịch ngôn ngữ Pascal không còn yêu cầu chỉ định tên chương trình, tức là dòng chương trình.<имя_программы>; có thể được bỏ qua. Nhưng điều này chỉ có thể thực hiện được nếu toàn bộ chương trình được chứa trong một tệp mô-đun. Nếu chương trình bao gồm một số phần độc lập - mô-đun, thì mỗi phần trong số chúng phải có một tiêu đề (chương trình hoặc đơn vị).

Bất kỳ phần tùy chọn nào được liệt kê đều có thể xuất hiện nhiều lần trong văn bản chương trình, trình tự chung của chúng cũng có thể thay đổi, nhưng phải luôn tuân theo quy tắc chính của ngôn ngữ Pascal: trước khi sử dụng một đối tượng, nó phải được khai báo và mô tả.

Trình biên dịch Pascal không phân biệt chữ thường và chữ in hoa và bỏ qua các ký tự khoảng trắng, do đó văn bản chương trình có thể được cấu trúc sao cho thuận tiện nhất cho việc đọc và gỡ lỗi.

Chỉ thị trình biên dịch

Dòng bắt đầu bằng các ký hiệu ($ không phải là một nhận xét mà là một chỉ thị của trình biên dịch - một lệnh đặc biệt mà quá trình biên dịch và thực thi chương trình phụ thuộc vào. Chúng tôi sẽ xem xét các chỉ thị trong những phần mà chúng liên quan đến "theo ý nghĩa".

Ví dụ: dòng ($I-,Q+) vô hiệu hóa xác thực I/O nhưng cho phép kiểm soát tràn tính toán.

Số nhận dạng

Tên được đặt cho các đối tượng chương trình (hằng, kiểu, biến, hàm và thủ tục và toàn bộ chương trình) được gọi là mã định danh. Chúng chỉ có thể bao gồm các số, chữ cái Latinh và dấu "_" (dấu gạch dưới). Tuy nhiên, một số không thể bắt đầu một tên. Mã định danh có thể có độ dài bất kỳ, nhưng nếu hai tên có 63 ký tự đầu tiên giống nhau thì tên được coi là giống hệt nhau.

Bạn có thể đặt cho các đối tượng chương trình của mình bất kỳ tên nào, nhưng bạn phải đảm bảo rằng chúng khác với các từ dành riêng được Pascal sử dụng, vì trình biên dịch sẽ vẫn không chấp nhận các biến có tên "nước ngoài".

Dưới đây là danh sách các từ dành riêng phổ biến nhất:

triển khai mảng shl

chuỗi giao diện trường hợp

nhãn const rồi

sử dụng con trỏ tập tin

thủ tục xa var

cho chương trình trong khi

chuyển tiếp bản ghi với

chức năng lặp lại xor

Biến và kiểu dữ liệu

Biến là một đối tượng chương trình có giá trị có thể thay đổi trong khi chương trình đang chạy.

Kiểu dữ liệu là đặc điểm của phạm vi giá trị mà các biến thuộc kiểu dữ liệu đó có thể lấy.

Tất cả các biến được sử dụng trong chương trình phải được mô tả trong phần var đặc biệt bằng mẫu sau:

var<имя_переменной_1> [, <имя_переменной_2, _>] : <имя_типа_1>;

<имя_переменной_3> [, <имя_переменной_4, _>] : <имя_типа_2>;

Ngôn ngữ Pascal có một tập hợp lớn các kiểu dữ liệu khác nhau, nhưng bây giờ chúng tôi sẽ chỉ chỉ ra một số trong số đó. Chúng ta sẽ nói thêm về tất cả các loại dữ liệu.

Hằng số

Hằng là một đối tượng có giá trị được biết trước khi chương trình bắt đầu chạy.

Các hằng số cần thiết cho việc thiết kế các chương trình trực quan, không thể thiếu khi sử dụng các giá trị lặp đi lặp lại trong văn bản của chương trình và thuận tiện nếu cần thay đổi các giá trị này trong toàn bộ chương trình cùng một lúc.

Có ba loại hằng số trong Pascal:

Các hằng số không tên (chữ số và số, ký hiệu và chuỗi, bộ);

Các hằng số chưa được đặt tên;

Các hằng số được gõ tên.

Hằng số không tên

Các hằng không tên không có tên và do đó không cần phải khai báo.

Theo mặc định, loại hằng số không tên được xác định tự động:

Bất kỳ chuỗi số nào (có thể đứng trước dấu "-" hoặc "+" hoặc được chia nhỏ bằng một dấu chấm) được trình biên dịch coi là một hằng số không tên - một số (số nguyên hoặc số thực);

Bất kỳ chuỗi ký tự nào được đặt trong dấu nháy đơn đều được coi là một hằng số không tên - một chuỗi;

Bất kỳ chuỗi số nguyên hoặc ký hiệu nào được phân tách bằng dấu phẩy, được đóng khung bằng dấu ngoặc vuông, được coi là một hằng số không tên - một tập hợp.

Ngoài ra, còn có hai hằng số đặc biệt true và false liên quan đến kiểu dữ liệu Boolean.

Ví dụ về việc sử dụng hằng số không tên bao gồm các toán tử sau:

real2:= 12,075 + x;

string4:= "abc" + string44;

set5:= * set55;

boolean6:= đúng;

Các hằng số chưa được gõ

Các hằng được đặt tên, như tên gọi của chúng gợi ý, phải có tên. Vì vậy, những tên này phải được báo cáo cho trình biên dịch, nghĩa là được mô tả trong phần const đặc biệt.

Nếu bạn không chỉ định loại hằng số thì khi xuất hiện, chính trình biên dịch sẽ xác định loại (cơ sở) nào sẽ được gán cho nó. Bất kỳ hằng số nào đã được mô tả đều có thể được sử dụng khi khai báo các hằng, biến và kiểu dữ liệu khác. Dưới đây là một số ví dụ về mô tả các hằng số được đặt tên chưa được định kiểu:

Hằng số được gõ

Các hằng số được đặt tên được gõ là các biến (!) Có giá trị ban đầu đã được biết trước khi chương trình bắt đầu. Do đó, thứ nhất, các hằng đã gõ không thể được sử dụng để xác định các hằng, kiểu dữ liệu và biến khác, thứ hai, giá trị của chúng có thể bị thay đổi trong khi chương trình đang chạy.

Các hằng số được gõ được mô tả bằng mẫu sau:

hằng số<имя_константы> : <тип_константы> = <начальное_значение>;

Các ví dụ dưới đây cho thấy cách thực hiện việc này:

const n: số nguyên = -10;

b: boolean = đúng;

Chúng tôi sẽ cung cấp các ví dụ về các hằng số được gõ thuộc các loại khác khi chúng tôi nghiên cứu các loại dữ liệu tương ứng.

Các kiểu dữ liệu Pascal

Trình biên dịch Pascal yêu cầu thông tin về dung lượng bộ nhớ cần thiết để chạy chương trình phải được cung cấp trước khi chương trình chạy. Để làm được điều này, trong phần mô tả biến (var), bạn cần liệt kê tất cả các biến được sử dụng trong chương trình. Ngoài ra, bạn cũng cần cho trình biên dịch biết mỗi biến này sẽ chiếm bao nhiêu bộ nhớ.

Tất cả điều này có thể được truyền đạt tới chương trình bằng cách chỉ ra loại biến tương lai. Có thông tin về loại biến, trình biên dịch “hiểu” số byte cần được phân bổ cho nó, những hành động nào có thể được thực hiện với nó và nó có thể tham gia vào cấu trúc nào.

Để thuận tiện cho các lập trình viên, Pascal có nhiều kiểu dữ liệu tiêu chuẩn và ngoài ra còn có khả năng tạo các kiểu dữ liệu mới dựa trên các kiểu dữ liệu hiện có (tiêu chuẩn hoặc do chính lập trình viên xác định lại), được gọi là được xây dựng.

Việc phân chia thành các kiểu dữ liệu cơ bản và xây dựng trong Pascal được thể hiện trong bảng:

Các kiểu dữ liệu thứ tự (rời rạc)

Các kiểu dữ liệu địa chỉ

Các kiểu dữ liệu có cấu trúc

Các kiểu dữ liệu số học

Các kiểu dữ liệu cơ bản

Hợp lý

tượng trưng

Thực tế

Netipizi

chỉ mục được lập chỉ mục

Các loại đã xây dựng

Có thể liệt kê được

tuần = (su, mo, tu, we, th,fr,sa);

con trỏ gõ

Mảng

chuỗi chuỗi

kỷ lục kỷ lục

thủ tục

Sự vật

Khoảng (phạm vi)

Các kiểu dữ liệu do lập trình viên xây dựng

Kiểu dữ liệu thứ tự

Trong số các loại dữ liệu cơ bản, loại thứ tự nổi bật. Tên này có thể được biện minh theo hai cách:

1. Mỗi phần tử thuộc loại thứ tự có thể được liên kết với một số (thứ tự) duy nhất. Đánh số các giá trị bắt đầu từ số 0. Ngoại lệ là các kiểu dữ liệu shortint, số nguyên và longint. Việc đánh số của chúng trùng với giá trị của các phần tử.

2. Ngoài ra, trên các phần tử thuộc bất kỳ loại thứ tự nào, một thứ tự được xác định (theo nghĩa toán học của từ này), điều này phụ thuộc trực tiếp vào việc đánh số. Do đó, đối với hai phần tử bất kỳ thuộc loại thứ tự, người ta có thể nói chính xác phần tử nào nhỏ hơn và phần tử nào lớn hơn.

Các quy trình chuẩn xử lý các kiểu dữ liệu thứ tự

Các hàm và thủ tục sau đây chỉ được xác định cho các loại thứ tự:

1. Hàm ord(x) trả về số thứ tự của giá trị của biến x (liên quan đến loại mà biến x thuộc về).

2. Hàm pred(x) trả về giá trị trước x (không áp dụng cho phần tử đầu tiên của kiểu).

3. Hàm succ(x) trả về giá trị theo sau x (không áp dụng cho phần tử cuối cùng của loại).

4.Thủ tục inc(x) trả về giá trị theo sau x (đối với kiểu dữ liệu số học, giá trị này tương đương với toán tử x:=x+1).

5.Thủ tục inc(x,k) trả về giá trị thứ k theo sau x (đối với kiểu dữ liệu số học, giá trị này tương đương với toán tử x:=x+k).

6.Thủ tục dec(x) trả về giá trị trước x (đối với kiểu dữ liệu số học, giá trị này tương đương với toán tử x:=x-1).

7.Thủ tục dec(x,k) trả về giá trị k-e trước x (đối với kiểu dữ liệu số học, giá trị này tương đương với toán tử x:=x-k).

Thoạt nhìn, có vẻ như kết quả của việc sử dụng thủ tục inc(x) hoàn toàn giống với kết quả của việc sử dụng hàm succ(x). Tuy nhiên, sự khác biệt giữa chúng xuất hiện ở ranh giới trong phạm vi cho phép. Hàm succ(x) không thể áp dụng cho phần tử tối đa của một loại, nhưng thủ tục inc(x) sẽ không tạo ra bất kỳ lỗi nào, nhưng hoạt động theo quy tắc cộng máy, sẽ thêm phần tử tiếp theo vào số phần tử . Tất nhiên, số sẽ nằm ngoài phạm vi và do bị cắt bớt, sẽ biến thành số có giá trị nhỏ nhất của phạm vi. Hóa ra là các thủ tục inc() và dec() nhận biết bất kỳ loại thứ tự nào như thể “đóng trong một vòng”: ngay sau giá trị cuối cùng lại đến giá trị đầu tiên.

Hãy để chúng tôi giải thích mọi thứ đã được nói bằng một ví dụ. Đối với kiểu dữ liệu

gõ mười sáu = 0,15;

cố gắng thêm 1 vào số 15 sẽ cho kết quả như sau:

Đơn vị ban đầu sẽ bị cắt đi và do đó thu được inc(15)=0.

Tình huống tương tự ở giới hạn dưới của phạm vi cho phép của kiểu dữ liệu thứ tự tùy ý được quan sát thấy đối với thủ tục dec(x) và hàm pred(x):

tháng mười hai (min_element)= max_element

Các kiểu dữ liệu liên quan đến thứ tự

1. Kiểu boolean có hai giá trị: false và true, và các đẳng thức sau đây áp dụng cho chúng:

ord(false)=0, ord(true)=1, false

pred(true)=false, succ(false)=true,

inc(true)=false, inc(false)=true,

tháng mười hai(true)=false, tháng mười hai(false)=true.

2. Kiểu ký tự char chứa 256 ký tự ASCII mở rộng (ví dụ: “a”, “b”, “i”, “7”, “#”). Số ký tự được hàm ord() trả về giống với số ký tự trong bảng ASCII.

3. Hãy tóm tắt các kiểu dữ liệu số nguyên trong một bảng:

Loại dữ liệu

Số byte

Phạm vi

2147483648..2147483647

4. Các kiểu dữ liệu liệt kê được chỉ định trong phần kiểu bằng cách liệt kê rõ ràng các phần tử của chúng. Ví dụ:

gõ tuần =(sun,thứ hai,thứ ba,thứ tư,thứ năm,thứ sáu,thứ bảy)

Hãy nhớ lại rằng đối với kiểu dữ liệu này:

inc(sat) = mặt trời, dec(sun) = sat.

5. Các kiểu dữ liệu khoảng chỉ được xác định bởi ranh giới phạm vi của chúng. Ví dụ:

gõ tháng = 1..12;

bugni = mon..fri;

6. Các kiểu dữ liệu do người lập trình xây dựng được mô tả trong phần kiểu dữ liệu theo mẫu sau:

kiểu<имя_типа> = <описание_типа>;

Ví dụ:

gõ lat_bukvy = "a".."z","A".."Z";

Các kiểu dữ liệu cơ bản là tiêu chuẩn nên không cần mô tả chúng trong phần kiểu. Tuy nhiên, nếu muốn, điều này cũng có thể được thực hiện, ví dụ, bằng cách đặt tên ngắn cho các định nghĩa dài. Giả sử bằng cách giới thiệu một kiểu dữ liệu mới

gõ int = số nguyên;

Bạn có thể rút ngắn văn bản chương trình một chút.

Các kiểu dữ liệu thực

Hãy nhớ lại rằng các kiểu dữ liệu này là số học, không phải thứ tự.

Loại dữ liệu

Số byte

Phạm vi (giá trị tuyệt đối)

1.5*10-45..3.4*1038

2.9*10-39..1.7*1038

5.0*10-324..1.7*10308

3.4*10-4932..1.1*104932

Các kiểu dữ liệu được xây dựng

Chúng ta sẽ xem xét kỹ hơn các loại dữ liệu này (cùng với các phép toán được xác định cho chúng) trong một số bài giảng.

Hoạt động và biểu thức

Các phép tính toán học

Hãy nói về các thao tác - các hành động tiêu chuẩn được phép đối với các biến thuộc loại dữ liệu cơ bản này hoặc loại khác. Cơ sở sẽ là các phép toán số học và logic.

Lưu ý: Tất cả các toán tử được liệt kê bên dưới (ngoại trừ "-" và không) đều yêu cầu hai toán hạng.

1. Các phép toán logic (và - logic AND, hoặc - logic OR, không - logic NOT, xor - OR độc quyền) chỉ được áp dụng cho các giá trị thuộc loại boolean. Chúng cũng dẫn đến các giá trị boolean. Dưới đây là bảng giá trị cho các hoạt động này:

đúng sai đúng

sai sai sai

đúng sai sai

2. Các phép toán so sánh (=,<>, >, <, <=, >=) áp dụng cho tất cả các loại cơ bản. Kết quả của họ cũng là giá trị boolean.

3. Các phép tính số học số nguyên chỉ áp dụng được cho kiểu số nguyên. Kết quả của chúng là một số nguyên có kiểu phụ thuộc vào kiểu của toán hạng.

a div b - chia a cho b hoàn toàn (có lẽ không cần phải nhắc bạn rằng phép chia cho 0 bị cấm, vì vậy trong những trường hợp như vậy thao tác sẽ tạo ra lỗi). Kết quả sẽ có kiểu dữ liệu chung cho kiểu dữ liệu của toán hạng.

Ví dụ: (shortint div byte = số nguyên). Điều này có thể được giải thích theo cách này: số nguyên là loại tối thiểu trong đó cả byte và shortint đều là tập hợp con.

a mod b - lấy số dư khi chia a cho b. Loại kết quả, như trong trường hợp trước, được xác định bởi loại toán hạng và 0 là giá trị không hợp lệ cho b. Không giống như mod phép toán, kết quả của nó luôn là số không âm, dấu của kết quả của mod phép toán "lập trình viên" được xác định bằng dấu của toán hạng đầu tiên của nó. Do đó, nếu trong toán học (-2 mod 5) = 3, thì chúng ta có (-2 mod 5) = -2.

a shl k - dịch chuyển giá trị của a x k bit sang trái (điều này tương đương với việc nhân giá trị của biến a với 2k). Kết quả của phép toán sẽ có cùng loại với (các) toán hạng đầu tiên của nó.

a shr k - dịch chuyển giá trị của a x k bit sang phải (điều này tương đương với việc chia hoàn toàn giá trị của biến a cho 2k). Kết quả của phép toán sẽ có cùng loại với (các) toán hạng đầu tiên của nó.

và, hoặc, không, xor - các phép toán số học nhị phân hoạt động với các bit biểu diễn số nguyên nhị phân, tuân theo các quy tắc giống như các phép toán logic tương ứng.

4. Các phép tính số học tổng quát (+, -, *, /) áp dụng cho tất cả các loại số học. Kết quả của chúng thuộc về một kiểu dữ liệu chung cho cả hai toán hạng (ngoại lệ duy nhất là phép chia phân số /, kết quả của nó luôn là kiểu dữ liệu thực).

Các hoạt động khác

Có các thao tác khác dành riêng cho giá trị của một số kiểu dữ liệu tiêu chuẩn của Pascal. Chúng ta sẽ xem xét các hoạt động này trong các phần thích hợp:

#, in, +, *, : xem bài 5 “Ký hiệu. Dòng. Vô số"

@, ^: xem bài giảng 7 “Địa chỉ và con trỏ”

Hàm số học tiêu chuẩn

Các phép toán số học cũng bao gồm các hàm số học tiêu chuẩn. Chúng tôi cung cấp một danh sách chúng với một mô tả ngắn gọn trong bảng.

Chức năng

Sự miêu tả

Loại đối số

Loại kết quả

Giá trị tuyệt đối (mô đun) của một số

Môn số học

Tương tự như kiểu đối số

Arctang (tính bằng radian)

Môn số học

Thực tế

Cosin (tính bằng radian)

Môn số học

Thực tế

Số mũ (ví dụ)

Môn số học

Thực tế

Lấy phần phân số của một số

Môn số học

Thực tế

Lấy toàn bộ phần của một số

Môn số học

Thực tế

Logarit tự nhiên (cơ số e)

Môn số học

Thực tế

Kiểm tra xem một số có phải là số lẻ không

Ý nghĩa số

Thực tế

Làm tròn đến số nguyên gần nhất

Môn số học

Làm tròn xuống - đến số nguyên nhỏ hơn gần nhất

Môn số học

Sin (tính bằng radian)

Môn số học

Thực tế

Bình phương

Môn số học

Thực tế

Căn bậc hai

Môn số học

Thực tế

biểu thức số học

Tất cả các phép toán số học có thể được kết hợp với nhau - tất nhiên, có tính đến các kiểu dữ liệu được phép cho toán hạng của chúng.

Toán hạng của bất kỳ thao tác nào có thể là biến, hằng, lệnh gọi hàm hoặc biểu thức được xây dựng trên cơ sở các thao tác khác. Tất cả cùng nhau được gọi là một biểu thức.

Ví dụ về biểu thức số học:

(x<0) and (y>0) - một biểu thức có kết quả thuộc loại boolean;

z shl abs(k) - toán hạng thứ hai là lệnh gọi hàm tiêu chuẩn;

(x mod k) + min(a,b) + trunc(z) - sự kết hợp của các phép toán số học và lệnh gọi hàm;

Odd(round(x/abs(x))) - biểu thức "nhiều tầng".

Thứ tự tính toán

Nếu biểu thức chứa dấu ngoặc đơn thì các phép tính được thực hiện theo thứ tự sau: độ sâu lồng của dấu ngoặc đơn càng nhỏ thì phép tính trong dấu ngoặc đơn càng muộn. Nếu không có dấu ngoặc đơn thì các giá trị của phép toán có mức độ ưu tiên cao hơn sẽ được tính trước, sau đó là các giá trị có mức độ ưu tiên thấp hơn. Một số thao tác liên tiếp có cùng mức độ ưu tiên được tính theo trình tự từ trái sang phải.

Bảng 2.1. Ưu tiên (cho tất cả) Hoạt động Pascal

Các kiểu dữ liệu ngôn ngữ Pascal: phân loại và mô tả. Các kiểu dữ liệu số học và thứ tự, hành động với chúng. Biểu thức số học: hàm, phép tính và thứ tự thực hiện. Khả năng tương thích và chuyển đổi kiểu dữ liệu.

Trình biên dịch Pascal yêu cầu thông tin về dung lượng bộ nhớ cần thiết để chạy chương trình phải được cung cấp trước khi chương trình chạy. Để làm điều này, trong phần mô tả biến ( var) bạn cần liệt kê tất cả các biến được sử dụng trong chương trình. Ngoài ra, bạn cũng cần cho trình biên dịch biết mỗi biến này sẽ chiếm bao nhiêu bộ nhớ. Sẽ rất tốt nếu thỏa thuận trước về các hoạt động khác nhau áp dụng cho một số biến nhất định...

Tất cả điều này có thể được truyền đạt tới chương trình bằng cách chỉ ra loại biến tương lai. Có thông tin về loại biến, trình biên dịch “hiểu” số byte cần được phân bổ cho nó, những hành động nào có thể được thực hiện với nó và nó có thể tham gia vào cấu trúc nào.

Để thuận tiện cho người lập trình, Pascal có nhiều kiểu dữ liệu tiêu chuẩn, cộng thêm khả năng tạo kiểu mới.

Khi xây dựng các loại dữ liệu mới dựa trên các loại dữ liệu hiện có (tiêu chuẩn hoặc do chính lập trình viên xác định lại), chúng ta phải nhớ rằng bất kỳ tòa nhà nào cũng phải được xây dựng trên một nền tảng tốt. Vì vậy, bây giờ chúng ta sẽ nói về “nền tảng” này.

Dựa trên các kiểu dữ liệu cơ bản tất cả các loại ngôn ngữ Pascal khác đều được xây dựng, được gọi là: được xây dựng.

Việc phân chia thành các kiểu dữ liệu cơ bản và xây dựng trong Pascal được thể hiện trong bảng:

Các kiểu dữ liệu do lập trình viên xây dựng được mô tả trong phần kiểu theo mẫu sau:

kiểu<имя_типа> = <описание_типа>;

Ví dụ:

gõ Lat_Bukvy = "a" .. "z", "A" .. "Z";

Các kiểu dữ liệu cơ bản là chuẩn nên không cần mô tả trong phần kiểu. Tuy nhiên, nếu muốn, điều này cũng có thể được thực hiện, ví dụ, bằng cách đưa ra những định nghĩa dài tên ngắn gọn. Giả sử bằng cách giới thiệu một kiểu dữ liệu mới

gõ Int = Số nguyên;

Bạn có thể rút ngắn văn bản chương trình một chút.

Các loại thi công tiêu chuẩn cũng không cần phải mô tả trong phần kiểu. Tuy nhiên, trong một số trường hợp việc này vẫn phải thực hiện do yêu cầu về cú pháp. Ví dụ, trong danh sách tham số thủ tục hoặc chức năng Không thể sử dụng hàm tạo kiểu (xem bài giảng 8).

Kiểu dữ liệu thứ tự

Trong số các kiểu dữ liệu cơ bản, đáng chú ý nhất là các loại thứ tự. Tên này có thể được biện minh theo hai cách:

Các thủ tục tiêu chuẩn xử lý kiểu dữ liệu thứ tự

Chỉ dành cho số lượng các loại thứ tự Các chức năng và thủ tục sau đây được xác định:

  1. Chức năng thứ tự(x) trả về số thứ tự của giá trị của biến x (liên quan đến loại mà biến x thuộc về).
  2. Chức năng dự đoán(x) trả về giá trị trước x (không áp dụng cho phần tử đầu tiên của loại).
  3. Chức năng thành công(x) trả về giá trị theo sau x (không áp dụng cho phần tử cuối cùng của loại).
  4. Thủ tục Inc(x) trả về giá trị sau x (đối với các kiểu dữ liệu số họcđiều này tương đương với toán tử x:= x + 1).
  5. Thủ tục Inc(x, k) trả về giá trị thứ k sau x (đối với các kiểu dữ liệu số họcđiều này tương đương với toán tử x:= x + k).
  6. Thủ tục Tháng mười hai(x) trả về giá trị trước x (đối với các kiểu dữ liệu số họcđiều này tương đương với toán tử x:= x - 1).
  7. Thủ tục Tháng mười hai(x, k) trả về giá trị k–e trước x (đối với các kiểu dữ liệu số họcđiều này tương đương với toán tử x:= x - k).

Thoạt nhìn, có vẻ như kết quả của việc áp dụng quy trình Inc(x) hoàn toàn trùng khớp với kết quả áp dụng hàm thành công(x). Tuy nhiên, sự khác biệt giữa chúng xuất hiện ở ranh giới trong phạm vi cho phép. Chức năng thành công(x) không áp dụng được cho phần tử tối đa của một loại, nhưng đây là quy trình Inc(x) sẽ không tạo ra bất kỳ lỗi nào, nhưng hoạt động theo quy tắc cộng của máy, sẽ thêm đơn vị tiếp theo vào số phần tử. Tất nhiên, số sẽ vượt ra ngoài phạm vi và do bị cắt bớt, sẽ biến thành số có giá trị nhỏ nhất của phạm vi. Hóa ra các thủ tục Inc() Tháng mười hai() họ nhận thức bất kỳ loại thứ tự nào như thể “đóng trong một vòng”: ngay sau loại cuối cùng, giá trị đầu tiên lại xuất hiện.

Hãy để chúng tôi giải thích mọi thứ đã được nói bằng một ví dụ. Đối với kiểu dữ liệu

gõ Mười sáu = 0 .. 15 ;

cố gắng thêm 1 vào số 15 sẽ cho kết quả như sau:

1 1 1 1 1 1 0 0 0 0

Đơn vị ban đầu sẽ bị cắt đi, và do đó hóa ra Inc(15)=0 .

Tình huống tương tự ở giới hạn dưới của phạm vi cho phép của loại dữ liệu thứ tự tùy ý được quan sát thấy đối với quy trình Tháng mười hai(x) và chức năng dự đoán(x):

Các kiểu dữ liệu liên quan đến thứ tự

Bây giờ chúng ta hãy mô tả kiểu dữ liệu thứ tự một cách chi tiết.

  1. kiểu Boolean Boolean có hai giá trị: Sai và Đúng và các đẳng thức sau đây áp dụng cho chúng:
  2. Đến loại ký tự Char bao gồm 256 ký tự bảng ASCII mở rộng(ví dụ: "a", "b", "i", "7", "#"). Số ký tự được hàm trả về thứ tự() , khớp với số của ký hiệu này trong bảng ASCII.
  3. Kiểu dữ liệu số nguyên Hãy đặt nó vào một bảng:
  4. Có thể liệt kê được kiểu dữ liệu được chỉ định trong phần kiểu bằng cách liệt kê rõ ràng các phần tử của chúng. Ví dụ:

    gõ Tuần = (sun, mon, tue, wed, thu, fri, sat); 0 1 2 3 4 5 6

    Hãy nhớ lại rằng đối với kiểu dữ liệu này:

  5. Các kiểu dữ liệu khoảng chỉ được xác định bởi ranh giới phạm vi của chúng. Ví dụ:

    gõ Tháng = 1 .. 12 ;
    Budni = Thứ Hai .. Thứ Sáu;

  6. Lập trình viên có thể tạo các kiểu dữ liệu của riêng mình, là sự kết hợp của một số kiểu tiêu chuẩn. Ví dụ:

    gõ Valid_For_Identifiers = "a" .. "z", "A" .. "Z", "_", "0" .. "9";

Loại này bao gồm việc kết hợp một số khoảng và trong trường hợp này thứ tự của các chữ cái Latinh được thay đổi: nếu ở loại tiêu chuẩn