Tìm kiếm theo tiêu đề

Tin tức cộng đồng

[MỜI HỢP TÁC] Các kỳ thi Olympic Quốc tế 2026 (IMO - IEO - ISO)

Kính gửi Quý Lãnh đạo, Ban Giám hiệu và Quý Thầy/Cô, FermatTech (Đối tác Google tại VN) phối hợp cùng SCO Ấn Độ trân trọng kính mời tham gia 3 kỳ thi uy tín dành cho HS từ lớp 1 - 12: - IMO: Olympic Toán Quốc tế. - IEO: Olympic Tiếng Anh Quốc tế. - ISO: Olympic Khoa học...
Xem tiếp

Tin tức thư viện

Chức năng Dừng xem quảng cáo trên violet.vn

12087057 Kính chào các thầy, cô! Hiện tại, kinh phí duy trì hệ thống dựa chủ yếu vào việc đặt quảng cáo trên hệ thống. Tuy nhiên, đôi khi có gây một số trở ngại đối với thầy, cô khi truy cập. Vì vậy, để thuận tiện trong việc sử dụng thư viện hệ thống đã cung cấp chức năng...
Xem tiếp

Hỗ trợ kĩ thuật

  • (024) 62 930 536
  • 0919 124 899
  • hotro@violet.vn

Liên hệ quảng cáo

  • (024) 66 745 632
  • 096 181 2005
  • contact@bachkim.vn

Bài 11. Kiểu mảng

Wait
  • Begin_button
  • Prev_button
  • Play_button
  • Stop_button
  • Next_button
  • End_button
  • 0 / 0
  • Loading_status
Tham khảo cùng nội dung: Bài giảng, Giáo án, E-learning, Bài mẫu, Sách giáo khoa, ...
Nhấn vào đây để tải về
Báo tài liệu có sai sót
Nhắn tin cho tác giả
(Tài liệu chưa được thẩm định)
Nguồn: Tự soạn
Người gửi: Vũ Văn Sáng
Ngày gửi: 16h:42' 09-03-2008
Dung lượng: 152.0 KB
Số lượt tải: 51
Số lượt thích: 0 người
Chương IV:
Kiểu dữ liệu có cấu trúc
Tiết 19
Kiểu mảng
1. Kiểu mảng một chiều. ?
2. Kiểu mảng hai chiều. ?

1. Kiểu mảng một chiều.
* Giới thiệu tổng quát về mảng một chiều. ?
a) Khai báo. ?
b) Một số ví dụ. ?
* Củng cố bài: ?
1. Kiểu mảng một chiều.
* Giới thiệu tổng quát về mảng một chiều:

- Mảng một chiều là dãy hữu hạn các phần tử cùng kiểu.
- Mảng được đặt tên và mỗi phần tử của mảng có 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 số các phần tử của mảng.
- Các NNLT ( trong đó có Pascal) có các quy tắc, cách thức cho phép xác định:
+ Tên kiểu mảng một chiều.
+ Số lượng phần tử.
+ 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ử của mảng
1. Kiểu mảng một chiều.
* Giới thiệu tổng quát về mảng một chiều:

- Bài toán: Nhập vào nhiệt độ (trung bình) của mối ngày trong tuần, tính và đưa ra màn hình nhiệt độ trung bình của cả tuần và số lượng ngày trong tuần có nhiệt độ cao hơn nhiệt độ trung bình của tuần.
- Chương trình viết trong Pascal:
*CT dùng các biến đơn: ?
* Chương trình có sử dụng kiểu dữ liệu mảng một chiều để mô tả dữ liệu. CT giải bài toán với N ngày:?

Program Nhietdo_tuan;
Uses crt;
Var t1, t2, t3, t4, t5, t6, t7, Tb: real;
dem: integer ;
BEGIN
Write(` Nhap nhiet do cho 7 ngay`);
Readln(t1, t2, t3, t4, t5, t6, t7);
Tb:= (t1+ t2+ t3+ t4+ t5+ t6+ t7)/7;
Dem:= 0;
If t1>Tb then dem:= dem+1;
If t2>Tb then dem:= dem+1;
If t3>Tb then dem:= dem+1;
If t4>Tb then dem:= dem+1;
If t5>Tb then dem:= dem+1;
If t6>Tb then dem:= dem+1;
If t7>Tb then dem:= dem+1;
Writeln(` Nhiet do TB cua tuan:`, Tb :6:2);
Writeln(` So ngay co nhiet do cao hon TB:`, dem);
Readln;
END.
?


Program Nhietdongay;
Const max=366;
Type Kmang = array[1..max] of real;
Var Nhietdo: Kmang;
dem, i, N: Byte;
Tong; Tbinh: real;
BEGIN
Write(` Nhap so ngay:`); Radln(N);
Tong:=0;
For i:= 1 to N do
Begin
Write(` Nhiet do ngay thu`, i,`:`); Readln(Nhietdo[i]);
Tong:= Tong +Nhietdo[i];
end;
dem:=0;
Tbinh:= Tong/N;
For i:= 1 to N do
If Nhietdo[i] > Tbinh then dem:= dem+1;
Writeln(` Nhiet do TB cua `, N,` ngày la:`, Tbinh: 8:3);
Writeln(` So ngay co nhiet do cao hon nhiet do TB la:`, dem);
Readln;
END. ?
1. Kiểu mảng một chiều.
* Giới thiệu tổng quát về mảng một chiều:

Trong phần khai báo của chương trình trên đã khai báo (định nghĩa) kiểu mảng một chiều (sau từ khoá Type), sau đó khai báo biến mảng một chiều là Nhietdo ( sau từ khoá var):

Type Kmang = array[1..max] of real;
Var Nhietdo: Kmang;



Khai báo (đn) kiểu mảng
một chiều gồm
max số thực
Khai báo biến mảng
Nhietdo qua kiểu mảng
1. Kiểu mảng một chiều.
a) Khai báo:
* Cách 1: Khai báo trực tiếp biến mảng một chiều:
Cú pháp:
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 sau khi khai báo kiểu mảng một chiều:
Cú pháp:
Type = array [kiểu chỉ số] of < kiểu phần tử>;
var < tên biến mảng> : < tên kiểu mảng>;
* Giải thích:
- kiểu chỉ số: Thường là đoạn số nguyên liên tục dạng n1..n2 ; n1, n2 là hằng hoặc biểu thức nguyên xác định chỉ số đầu (n1) và chỉ số cuối (n2); n1- kiểu phần tử: là kiểu của các phần tử của mảng.
- tên kiểu mảng; tên biến mảng: Do người lập trình đặt, tuân theo quy tắc đặt tên.
? ?
1. Kiểu mảng một chiều.
a) Khai báo:
Vận dụng :
1.Khai báo biến mảng nào sau đây là đúng?
A. Var a, b: array[1..100] of integer ;
B. Var c= Array [ 1..20] of byte;
C. Var d : array [ 1...20] of real;
D. Var x.y: array [ 1..50] of integer ;
2. Khai báo như sau đúng hay sai vì sao?
Type mang = array [ 1..50] of integer ;
Var x, y= mang;

?

1. Kiểu mảng một chiều.
a) Khai báo:
* Tham chiếu tới phần tử của mảng một chiều:
xác định bởi tên biến mảng cùng với chỉ số, được viết trong cặp ngoặc [ và ].
Ví dụ:


Nhietdo[15]
Nhietdo[146]
Củng cố bài và công việc về nhà.
1. Có thể khai báo biến mảng một chiều theo những cách nào? ?
2. Giả thiết a và b là hai mảng một chiều đã được khai báo như sau:
Var a,b: array[1..20] of integer;
Giả thiết a[i] và b[i] ( I nhận giá trị từ 1 đến 20) đã được xác định . Xét đoạn chương trình sau:
dem := 0;
For i:=1 to 20 do
if a[i] <> b[i] then dem:=dem+1;
Writeln(dem);
Khẳng định nào sau đây là đúng?
A. Đoạn chương trình trên đếm số phần tử của a khác các phần tử của b.
B. Đoạn chương trình trên đếm số phần tử khác nhau của a và b.
C. Đoạn chương trình trên đếm số cặp phần tử tương ứng khác nhau của a và b.
D. Cả A, B, C đều sai.
Củng cố bài và công việc về nhà.
+ Nắm vững cú pháp khai báo biến mảng một chiều.
+ Ôn lại các thuật toán sắp xếp, tìm kiểm đã học ở lớp 10.
+ Tìm hiểu trước bài tập trong ví dụ 1, 2, 3 và phần mảng 2 chiều.
+ Làm các bài tập : 4.1; 4.4; 4.6; 4.7; 4.9 SBTTin11.



Stop
Kiểu mảng một chiều.
b. Một số ví dụ.
1. Ví dụ 1: Lập trình nhập một dãy A gồm N (N được nhập từ bàn phím và N? 250) số nguyên, dương A1, A2.AN, mỗi số đều không vượt quá 500. Đưa ra màn hình chỉ số của phần tử lớn nhất trong dãy đã 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).

1. Ví dụ 1:
Thuật toán:
B1: Nhập N và dãy số nguyên, dương A1, A2.AN.
B2: Max?A1; i?2;
B3: Nếu i>N thì đưa ra max rồi kết thúc.
B4:
B4.1: Nếu Ai> max thì max?Ai.
B4.2: i?i+1;
Stop - Xem CTVD1
2. Ví dụ 2: ( Sắp xếp dãy số nguyên bằng thuật toán tráo đổi).
Lập trình nhập một dãy A gồm N (N được nhập từ bàn phím và N? 250) số nguyên, dương A1, A2.AN, mỗi số đều không vượt quá 500. Đưa ra màn hình dãy A không giảm.
( * Nhắc lại thuật toán lớp 10?)
Stop - Xem CTVD2.
Ví dụ 3: ( Thuật toán tìm kiếm nhị phân)
Lập trình nhập một dãy A gồm N (N được nhập từ bàn phím và N? 250) số nguyên, dương A1, A2.AN,và số nguyên k. Đưa ra màn hình chỉ số i mà Ai=k hoặc thông báo " Khong tim thay" nếu không có số hạng nào của A bằng k.
Ví dụ 3:
Thuật toán: Xem SGKTin học 10 hoặc SGKTin lớp 11 (58).

Stop - Xem CTVD3
Củng cố bài.
+ Tại sao tham chiếu tới mảng một chiều hay sử dụng cấu trúc lặp For - do?
+

 
Gửi ý kiến