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

Tin tức cộng đồng

5 điều đơn giản cha mẹ nên làm mỗi ngày để con hạnh phúc hơn

Tìm kiếm hạnh phúc là một nhu cầu lớn và xuất hiện xuyên suốt cuộc đời mỗi con người. Tác giả người Mỹ Stephanie Harrison đã dành ra hơn 10 năm để nghiên cứu về cảm nhận hạnh phúc, bà đã hệ thống các kiến thức ấy trong cuốn New Happy. Bà Harrison khẳng định có những thói quen đơn...
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:
Người gửi: Trần Thùy Dương
Ngày gửi: 19h:43' 02-12-2021
Dung lượng: 778.5 KB
Số lượt tải: 311
Số lượt thích: 0 người
CHÀO MỪNG CÁC THẦY CÔ VỀ DỰ GIỜ
KIỂU MẢNG (TIẾT 3)
Ví dụ 2: Bài toán sắp xếp
Cho dãy A gồm N số nguyên a1, a2,..., aN. Sắp xếp dãy A trở thành dãy không giảm (tức là số hạng trước nhỏ hơn hoặc bằng số hạng sau).
* INPUT: Nhập số nguyên dương n (n? 250) và dãy n số nguyên dương a1,a2,...,an.
* OUTPUT: Dãy số A được sắp xếp theo trình tự không giảm.
KIỂU MẢNG (TIẾT 3)
1. Kiểu mảng một chiều:
a. Khai báo
b. Một số ví dụ
Ví dụ 2: Bài toán sắp xếp
Cho dãy A gồm N số nguyên a1, a2,..., aN. Sắp xếp dãy A trở thành dãy không giảm (tức là số hạng trước nhỏ hơn hoặc bằng số hạng sau).
Ý tưởng: + So sánh 2 số hạng liên tiếp nhau, nếu số trước lớn hơn số sau thì đổi chỗ chúng cho nhau.
+ Đổi để đưa số lớn nhất về vị trí cuối cùng.
+ Làm tương tự đối với những số còn lại cho đến khi không còn có sự đổi chỗ xảy ra nữa.

KIỂU MẢNG (TIẾT 3)
1. Kiểu mảng một chiều:
a. Khai báo
b. Một số ví dụ
Hãy cho biết để giải bài toán trên, ở lớp 10 chúng ta dùng thuật toán gì?
Là Thuật toán s?p x?p tráo đổi hay thu?t toán n?i b?t
Ví dụ 2: Bài toán sắp xếp
Cho dãy A gồm N số nguyên a1, a2,..., aN. Sắp xếp dãy A trở thành dãy không giảm (tức là số hạng trước nhỏ hơn hoặc bằng số hạng sau).
HS số 1 thực hiện NV1, HS số 2 thực hiện NV2, … HS số 6 thực hiện NV6, hoạt động cá nhân trong 3’.
Sau đó thực hiện PHT 2, hoạt động nhóm 7’ trình bày ra bảng phụ.
KIỂU MẢNG (TIẾT 3)
1. Kiểu mảng một chiều:
a. Khai báo
b. Một số ví dụ
Minh họa hoán đổi giá trị của hai phần tử, bằng cách dùng biến trung gian (TG).
TG := x (1)
x := y (2)
y := TG (3)
CT
Khai báo mảng A và các biến
Nhập N và các phần tử của mảng
Xử lí mảng bằng thuật toán sắp xếp tráo đổi
In mảng A đã sắp xếp ra màn hình
PROGRAM Sapxep;
Uses crt;
Type dayso = Array[1..250] of integer;
Var
i, j , n , tg : integer;
A : dayso;
BEGIN
Clrscr;
write(‘ Nhap vao so phan tu cua day so : ’);
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
Tg := A[i];
A[i]:=A[i+1];
A[i+1]:=Tg;
end;
Writeln(‘ Day so duoc sap xep ’);
For i:=1 to n do Write(A[i]:5);
Readln
END.
Chương trình pascal
Tìm tòi khám phá
- Tìm hiểu các thuật toán sắp xếp khác: với thời gian thực hiện nhanh hơn thuật toán sắp xếp tráo đổi như: QuickSort(SX nhanh) và MergeSort(SX trộn trực tiếp)và chương trình Pascal tương ứng cho các thuật toán đó.
- Làm bài tập sau:
Bài 1: Viết chương trình tạo mảng A gồm n số nguyên (n<=100), mỗi số có giá trị tuyệt đối không vượt quá 300. Tính tổng các phần tử của mảng là bội số của một số nguyên dương k cho trước, với k nhập từ bàn phím. In tổng vừa tính ra màn hình.
3
2
9
7
6
Cho dãy số sau: 3 2 9 7 6
Giả sử:
? Mỗi phần tử được xem như một bọt nưuớc;
Lượt 1:
i chạy từ đầu dãy đến vị trí [cuối dãy -1]
Khi a[i]>a[i+1] tức là bọt nước bên trên nặng hơn bọt nước bên dưới => bọt nước trên chìm xuống và bọt nước bên dưới nổi lên (tráo đổi vị trí).
Sau lượt thứ nhất, bọt nước có trọng lượng lớn nhất sẽ chìm xuống đáy.
? Trọng lưuợng của bọt nuước thứ i là giá trị của A[i].
Lượt 2:
i chạy từ đầu dãy đến vị trí [cuối dãy - 2] (bỏ qua phần tử cuối).
Sau lượt thứ hai bọt nước có trọng lượng lớn thứ hai nằm sát trên bọt nước lớn nhất.
Quá trình duyệt, tráo đổi được lặp đi lặp lại cho đến khi chỉ còn duyệt hai phần tử và thu được dãy không giảm.
Nhận xét:
Số phần tử ở các lượt duyệt (j) sẽ giảm từ n xuống hai phần tử.
Tại mỗi lượt duyệt:
- Cho i chạy từ 1 đến số phần tử -1,
nếu A[i]>A[i+1] thì
tráo đổi vị trí A[i] và A[i+1]
thông qua biến trung gian (Tg).
Hãy cho biết trong Pascal nhận xét 1 được thể hiện bằng lệnh gì ?
1
For j := n downto 2 do
2
For i := 1 to j-1 do
IF A[i]>A[i+1] then
Tg := A[i];
A[i] := A[i+1];
A[i+1]:=Tg;
Begin
end;
 
Gửi ý kiến