Bài viết này sẽ cung cấp một lời giải chi tiết cho Bài 11 trong sách Tin học 11 - Kết nối tri thức, Cánh diều, Chân trời sáng tạo. Với sự trợ giúp từ các giáo viên và trang thiết bị hiện đại, việc giải quyết bài tập Tin học 11 Bài 11 sẽ trở nên dễ dàng hơn đối với học sinh lớp 11.
Giải Tin học 11 Bài 11 (sách mới)
Giải Tin học 11 Bài 11 Kết nối tri thức
- Giải Tin học 11 Bài 11: Cơ sở dữ liệu Xem lời giải
Giải Tin học 11 Bài 11 Cánh diều
- Giải Tin học 11 Bài 11: Thực hành thiết kế và lập trình theo mô đun Xem lời giải
Giải Tin học 11 Bài 11 Chân trời sáng tạo
Môn Tin học 11 Chân trời sáng tạo sẽ học chung sách với môn Tin học 11 bộ sách Kết nối tri thức. Ngoài ra, tùy thuộc vào trang thiết bị và đội ngũ giáo viên, trường THPT có thể lựa chọn sách Tin học 11 Cánh diều.
Lưu trữ: Giải Tin học 11 Bài 11: Kiểu mảng (sách cũ) Chúng ta chỉ xét hai kiểu mảng thông dụng với nhiều ngôn ngữ lập trình là kiểu mảng một chiều và kiểu mảng hai chiều.
- Kiểu mảng một chiều
- Mảng một chiều là một dãy hữu hạn các phần tử có cùng kiểu. Mảng được đặt tên và mỗi phần tử mang một chỉ số. Để mô tả mảng một chiều, cần xác định kiểu của các phần tử và cách đánh chỉ số các phần tử.
- Với mảng một chiều, ta quan tâm đến:
- Tên kiểu mảng một chiều.
- Số lượng phần tử trong mảng.
- Kiểu dữ liệu của phần tử.
- Cách khai báo biến mảng.
- Cách tham chiếu đến phần tử.
Tại sao ta lại phải sử dụng mảng? Giả sử ta muốn đo nhiệt độ trung bình trong 1 tháng và đưa ra những ngày nào có nhiệt độ cao hơn trung bình. Nếu chỉ sử dụng kiến thức từ đầu chương trình đến giờ, ta sẽ phải khai báo 30 biến để lưu giữ giá trị nhiệt độ của các ngày trong tháng. Sau đó, ta phải gõ lại rất nhiều lệnh if gây ra sự nhàm chán.
a) Khai báo. Cách 1: Khai báo trực tiếp biến mảng một chiều
Var <tên biến mảng> : array[kiểu chỉ số] of <kiểu phần tử>;
Cách 2: Khai báo gián tiếp biến mảng qua kiểu mảng một chiều
Type <tên kiểu mảng>=array[kiểu chỉ số] of <kiểu phần tử>; Var <tên biến mảng>:<tên kiểu mảng>;
Trong đó:
- Kiểu chỉ số thường là đoạn số nguyên liên tục có dạng n1..n2, với n1 là chỉ số đầu và n2 là chỉ số cuối (n1≤n2).
- Kiểu phần tử là kiểu dữ liệu của các phần tử trong mảng.
- Tham chiếu đến phần tử mảng ta viết:
<tên biến mảng>[chỉ số];
Ví dụ:
Var nhietdo:array[1..30] of integer;
Muốn tham chiếu tới phần tử thứ 20, ta sẽ viết là
nhietdo[20]
.
b) Một số ví dụ Ví dụ 1. Tìm phần tử lớn nhất của dãy số nguyên Input: Số nguyên dương N (N≤250) và dãy N số nguyên dương A1, A2,..,An, mỗi số đều không vượt quá 500. Output: Chỉ số và giá trị của phần tử lớn nhất trong dãy số đã cho (nếu có nhiều phần tử lớn nhất thì chỉ cần đưa ra một trong số chúng.
program vidu1; uses crt; var arrayint:array[1..250] of integer; n,i,mi:integer; begin clrscr; writeln('nhap vao so phan tu '); readln(n); for i:=1 to n do begin writeln('phan tu thu ',i,'='); readln(arrayint[i]); end; mi:=1; for i:=2 to n do begin if arrayint[i]>arrayint[mi] then mi:=i; end; writeln('gia tri lon nhat la ',arrayint[mi],' chi so la ',mi); readln; end.
Ví dụ 2: Sắp xếp dãy số nguyên bằng thuật toán tráo đổi.
program sapxep; uses crt; const Nmax=250; var N,i,j,t:integer; A:array[1..Nmax] of integer; begin clrscr; write('nhap so luong phan tu cua day N='); readln(N); for i:=1 to N do begin write('phan tu thu ',i,'='); readln(A[i]); end; for j:=N downto 2 do for i:=1 to j-1 do if A[i]>A[i+1] then begin t:=A[i]; A[i]:=A[i+1]; A[i+1]:=t; end; writeln('day da duoc sap xep la '); for i:=1 to N do write(A[i]:4); readln; end.
- Kiểu mảng hai chiều Mảng hai chiều: Là bảng các phần tử cùng kiểu.
Ta có thể coi mảng hai chiều là mảng một chiều mà mỗi phần tử của mảng một chiều lại là một mảng khác.
Ví dụ:
Var b:array[1..9] of array[1..10] of integer;
Khai báo b
là một mảng một chiều gồm 9 phần tử. Mỗi phần tử của mảng b
lại là một mảng một chiều gồm 10 phần tử. Cách khai báo: Ngoài khai báo theo cách trên, ta có thêm 2 cách nữa để khai báo mảng hai chiều. Cách 1:
Var <tên biến mảng>:array[kiểu chỉ số hàng, kiểu chỉ số cột] of <kiểu phần tử>;
Cách 2:
Type <tên kiểu mảng>=array[kiểu chỉ số hàng, kiểu chỉ số cột] of <kiểu phần tử>; Var <tên biến mảng>:<tên kiểu mảng>;
Ví dụ:
Var b:array[1..9,1..10] of integer;
Hoặc
Type mang2chieu=array[1..9,1..10] of integer; Var B:mang2chieu;
Muốn tham chiếu đến phần tử trong mảng hai chiều, ta sử dụng 2 chỉ số là chỉ số hàng và chỉ số cột. Ví dụ: Mang2chieu[5,6]
b) Một số ví dụ: Ví dụ 1: Tính và in ra bảng nhân.
program bangnhan; uses crt; var bnhan: array[1..9,1..9] of integer; i,j:integer; begin clrscr; for i:=1 to 9 do for j:=1 to 9 do bnhan[i,j]:=i*j; for i:=1 to 9 do begin for j:=1 to 9 do write(bnhan[i,j]:4); writeln(); end; readln; end.
Ví dụ 2. Chương trình sau nhập vào từ bàn phím các phần tử của mảng hai chiều B gồm 5 hàng, 7 cột với các phần tử là các số nguyên và một số nguyên k. Sau đó, đưa ra màn hình các phần tử có giá trị nhỏ hơn k.
program vidu2; uses crt; var arr: array[1..5,1..7] of integer; i,j,k:integer; begin clrscr; for i:=1 to 5 do for j:=1 to 7 do begin write('a[',i,']','[',j,']='); readln(arr[i,j]); end; write('k='); readln(k); write('cac phan tu nho hon k la:'); for i:=1 to 5 do for j:=1 to 7 do if arr[i,j]<k then write(arr[i,j]:4); readln; end.
Lưu ý: Ngoài mảng một chiều và hai chiều, ta còn có thể có các mảng nhiều chiều.
Xem thêm các bài giải bài tập Tin học lớp 11 hay, chi tiết khác:
- Giải bài tập Tin học 11 trang 50, 51
- Bài 11: Kiểu mảng
- Bài tập và thực hành 3
- Bài tập và thực hành 4
- Bài 12: Kiểu xâu
- Bài tập và thực hành 5
- Bài 13: Kiểu bản ghi
- Giải bài tập Tin học 11 trang 79,80
- Sổ lò xo Art of Nature Thiên Long màu xinh xỉu
- Biti's ra mẫu mới xinh lắm
- Tsubaki 199k/3 chai
- L'Oreal mua 1 tặng 3