cách nhập và xuất mảng trong pascal
Chúng ta sẽ đi từng bước một, rất chi tiết để các em dễ hiểu nhé!
1. Nhập mảng trong Pascal
Nhập mảng có nghĩa là chúng ta sẽ nạp dữ liệu từ bàn phím vào các phần tử của mảng.
Bước 1: Khai báo biến mảng
Trước khi nhập dữ liệu, chúng ta cần khai báo mảng đó. Trong Pascal, cú pháp khai báo mảng là:
VAR ten_bien_mang: ARRAY[hang_so_dau..hang_so_cuoi] OF kieu_du_lieu;
Ví dụ: Nếu chúng ta muốn khai báo một mảng tên \(a\) có 10 phần tử kiểu số nguyên, ta sẽ viết:
VAR
a: ARRAY[1..10] OF Integer;
Ở đây:
– \(a\) là tên của mảng.
– \(ARRAY[1..10]\) chỉ ra rằng mảng này có chỉ số từ 1 đến 10. Các chỉ số này gọi là “chỉ số mảng” hoặc “chỉ số phần tử”.
– \(OF Integer\) chỉ ra rằng các phần tử của mảng này sẽ lưu trữ dữ liệu kiểu số nguyên.
Bước 2: Sử dụng vòng lặp để nhập từng phần tử
Để nhập hết tất cả các phần tử của mảng, chúng ta thường sử dụng vòng lặp. Vòng lặp \(FOR\) là lựa chọn phù hợp nhất ở đây vì chúng ta biết trước số lượng phần tử cần nhập.
Cú pháp chung của vòng lặp FOR trong Pascal là:
FOR bien_dem := gia_tri_dau TO gia_tri_cuoi DO
BEGIN
// Các lệnh thực hiện trong mỗi lần lặp
END;
Khi nhập mảng, chúng ta sẽ cho biến đếm của vòng lặp đi từ chỉ số đầu tiên đến chỉ số cuối cùng của mảng. Trong mỗi lần lặp, chúng ta sẽ đọc giá trị từ bàn phím và gán cho phần tử mảng tương ứng với chỉ số hiện tại của biến đếm.
Ví dụ tiếp theo, giả sử chúng ta đã khai báo mảng \(a\) có 10 phần tử kiểu số nguyên. Để nhập 10 giá trị cho mảng này, chúng ta sẽ làm như sau:
FOR i := 1 TO 10 DO
BEGIN
Write(‘Nhap phan tu thu ‘, i, ‘: ‘); // Yêu cầu người dùng nhập
Readln(a[i]); // Đọc giá trị nhập vào và gán cho phần tử thứ i của mảng a
END;
Giải thích:
– \(FOR i := 1 TO 10 DO\): Vòng lặp này sẽ chạy với biến \(i\) lần lượt nhận các giá trị từ 1 đến 10.
– \(BEGIN … END;\): Khối lệnh này sẽ được thực hiện trong mỗi lần lặp.
– \(Write(‘Nhap phan tu thu ‘, i, ‘: ‘);\): Dòng lệnh này sẽ hiển thị thông báo trên màn hình để yêu cầu người dùng nhập giá trị cho phần tử thứ \(i\).
– \(Readln(a[i]);\): Dòng lệnh này sẽ đọc giá trị mà người dùng nhập từ bàn phím và lưu trữ vào phần tử thứ \(i\) của mảng \(a\) (ký hiệu là \(a[i]\)).
Như vậy, sau khi vòng lặp này kết thúc, mảng \(a\) sẽ chứa 10 giá trị mà người dùng đã nhập.
2. Xuất mảng trong Pascal
Xuất mảng có nghĩa là chúng ta sẽ hiển thị các giá trị của các phần tử mảng ra màn hình.
Bước 1: Sử dụng vòng lặp để xuất từng phần tử
Tương tự như khi nhập mảng, chúng ta cũng sử dụng vòng lặp \(FOR\) để duyệt qua từng phần tử của mảng và hiển thị chúng ra màn hình.
Ví dụ: Giả sử chúng ta muốn xuất tất cả các phần tử của mảng \(a\) (đã được nhập ở trên).
FOR i := 1 TO 10 DO
BEGIN
Write(a[i], ‘ ‘); // Xuất giá trị của phần tử thứ i, cách nhau một khoảng trắng
END;
Writeln; // Xuống dòng sau khi xuất xong mảng
Giải thích:
– \(FOR i := 1 TO 10 DO\): Vòng lặp này cũng chạy với biến \(i\) từ 1 đến 10.
– \(Write(a[i], ‘ ‘);\): Dòng lệnh này sẽ hiển thị giá trị của phần tử mảng \(a\) tại vị trí \(i\) (tức là \(a[i]\)), sau đó thêm một dấu cách để các phần tử không bị dính liền nhau.
– \(Writeln;\): Sau khi vòng lặp kết thúc (đã xuất hết các phần tử), lệnh này sẽ xuống dòng để con trỏ sang dòng mới, giúp cho việc hiển thị kết quả được gọn gàng hơn.
Ví dụ tổng hợp: Chương trình nhập và xuất mảng
Bây giờ, chúng ta sẽ kết hợp cả hai phần trên để tạo thành một chương trình hoàn chỉnh. Giả sử chúng ta muốn nhập 5 số nguyên và sau đó xuất chúng ra màn hình.
PROGRAM NhapXuatMang;
VAR
arr: ARRAY[1..5] OF Integer; // Khai báo mảng arr có 5 phần tử kiểu Integer
i: Integer; // Biến đếm cho vòng lặp
BEGIN
// Phần nhập mảng
Writeln(‘— NHAP MANG —‘);
FOR i := 1 TO 5 DO
BEGIN
Write(‘Nhap phan tu thu ‘, i, ‘: ‘);
Readln(arr[i]);
END;
// Phần xuất mảng
Writeln(‘— XUAT MANG —‘);
FOR i := 1 TO 5 DO
BEGIN
Write(arr[i], ‘ ‘);
END;
Writeln; // Xuống dòng sau khi xuất
Readln; // Để màn hình chờ, không bị đóng ngay
END.
Khi chạy chương trình này, các em sẽ thấy nó yêu cầu nhập 5 số, sau đó sẽ hiển thị 5 số đó ra màn hình, cách nhau bởi dấu cách.
Lưu ý quan trọng:
* Kích thước của mảng (ví dụ \(1..5\) trong \(ARRAY[1..5]\)) cần được khai báo rõ ràng.
* Chỉ số mảng trong Pascal thường bắt đầu từ 1, nhưng cũng có thể bắt đầu từ 0 hoặc một số nguyên nào đó tùy thuộc vào cách khai báo. Tuy nhiên, theo Sách giáo khoa lớp 8, chúng ta thường làm quen với chỉ số bắt đầu từ 1.
* Luôn đảm bảo rằng chỉ số khi truy cập vào mảng (\(arr[i]\)) nằm trong phạm vi đã khai báo (từ chỉ số đầu đến chỉ số cuối). Nếu không, chương trình sẽ báo lỗi.
Hy vọng với những hướng dẫn chi tiết này, các em đã nắm vững cách nhập và xuất mảng trong Pascal. Các em hãy thử tự mình viết các chương trình tương tự với kích thước mảng và kiểu dữ liệu khác nhau nhé! Nếu có bất kỳ thắc mắc nào, đừng ngần ngại hỏi thầy/cô.
Để nhập và xuất mảng trong Pascal, bạn có thể sử dụng câu lệnh \(readln\) và \(writeln\):
Ví dụ:
program Mang;
var
a: array[1..5] of integer;
i: integer;
begin
writeln(‘Nhap vao cac phan tu cua mang:’);
for i:= 1 to 5 do
begin
write(‘a[‘,i,’] = ‘);
readln(a[i]);
end;
writeln(‘Cac phan tu trong mang la:’);
for i:= 1 to 5 do
begin
writeln(a[i]);
end;
readln;
end.
* Chương trình trên khai báo một mảng \(a’ với kích thước là 5. Sau đó, vòng lặp \)for’ sẽ nhập giá trị cho từng phần tử của mảng và hàm `writeln’ sẽ in các phần tử trong mảng ra màn hình.
\(\textit{#pthao}\)
program Mang;
const
MAX = 100;
var
a: array[1..MAX] of integer;
n, i: integer;
begin
// Nhập số lượng phần tử của mảng
writeln(‘Nhap so luong phan tu cua mang (toi da ‘, MAX, ‘ phan tu):’);
readln(n);
// Nhập giá trị cho từng phần tử của mảng
writeln(‘Nhap gia tri cho cac phan tu cua mang:’);
for i := 1 to n do
begin
write(‘a[‘, i, ‘] = ‘);
readln(a[i]);
end;
// Xuất giá trị của mảng ra màn hình
writeln(‘Gia tri cua mang la:’);
for i := 1 to n do
writeln(‘a[‘, i, ‘] = ‘, a[i]);
readln;
end.