Đọc bản danh sách học sinh dưới đây:
- Bản danh sách gồm những cột nào?
- Tên học sinh trong danh sách được xếp theo thứ tự nào?
- Đọc danh sách theo hàng ngang (không đọc tên cột).
Bản danh sách gồm những cột nào ?
Em quan sát hàng ngang trên cùng, đó là tên mỗi cột.
Bản danh sách gồm những cột sau : số thứ tự, họ và tên, giới tính (nam, nữ), ngày sinh và nơi ở.
Cô giáo có danh sách tên các bạn trong lớp em. Theo em, danh sách đó có được sắp xếp theo thứ tự nào không? Vì sao cần sắp xếp tên trong danh sách như vậy?
`-` Danh sách đó được sắp xếp theo thứ tự của bảng Alphabet (thứ tự các chữ).
`-` Cần sắp xếp tên trong danh sách như vậy để dễ dàng tìm kiếm, nhận dạng ra tên của các bạn nhanh hơn.
theo em, danh sách đó có được sắp xếp theo thứ tự bảng chữ cái, vì để dễ dàng nhớ được tên hơn, và dựa vào những chữ lần lượt trong bảng chữ cái để dễ nhận biết hơn
Tên học sinh trong danh sách được xếp theo thứ tự nào ?
Em chú ý vào chữ đầu tiên trong tên của các bạn.
Tên học sinh theo danh sách được xếp theo thứ tự bảng chữ cái.
Viết chương trình tìm kiếm vị trí tên của một người trong mỗi danh sách sau đây:
a) Danh sách học sinh của lớp em.
b) Danh sách tên của các chủ tài khoản ngân hàng (kí tự không dấu) và đã sắp thứ tự theo bảng chữ cái.
a) Danh sách học sinh của lớp:
def tim_vi_tri_ten_hs(ten, danh_sach_hs):
for i, ten_hs in enumerate(danh_sach_hs):
if ten_hs == ten:
return i
return -1
danh_sach_hs = ["Nam", "An", "Binh", "Chung", "Duc", "Huong"]
ten_can_tim = "An"
vi_tri = tim_vi_tri_ten_hs(ten_can_tim, danh_sach_hs)
if vi_tri >= 0:
print(f"Vi tri cua ten '{ten_can_tim}' trong danh sach la {vi_tri}")
else:
print(f"Ten '{ten_can_tim}' khong nam trong danh sach")
b) Danh sách tên các chủ tài khoản ngân hàng đã sắp xếp theo thứ tự bảng chữ cái:
def tim_vi_tri_ten_tk(ten, danh_sach_tk):
left, right = 0, len(danh_sach_tk) - 1
while left <= right:
mid = (left + right) // 2
if danh_sach_tk[mid] == ten:
return mid
elif danh_sach_tk[mid] < ten:
left = mid + 1
else:
right = mid - 1
return -1
danh_sach_tk = ["An", "Binh", "Duc", "Huong", "Nam"]
ten_can_tim = "Huong".upper()
vi_tri = tim_vi_tri_ten_tk(ten_can_tim, danh_sach_tk)
if vi_tri >= 0:
print(f"Vi tri cua ten '{ten_can_tim}' trong danh sach la {vi_tri}")
else:
print(f"Ten '{ten_can_tim}' khong nam trong danh sach")
Đọc bản danh sách theo hàng ngang.
Cách đọc :
Số 1 : Nguyễn Vân Anh, nữ; sinh ngày 5-3-1996; Nơi ở: số 5, phố Quang Trung.
Số 9 : Trần Xuân Ích, nam; sinh ngày 16-7-1996; Nơi ở : số 24, phố Lương Văn Can.
Cho A là danh sách tên các học sinh trong lớp được sắp xếp theo thứ tự bảng chữ cái, viết thương trình tìm kiếm nhị phân để tìm ra các học sinh có tên là Minh.
def binary_search(names, target):
low = 0
high = len(names) - 1
while low <= high:
mid = (low + high) // 2
mid_name = names[mid]
if mid_name == target:
return mid
elif mid_name < target:
low = mid + 1
else:
high = mid - 1
return -1
# Danh sách tên học sinh trong lớp (đã được sắp xếp theo thứ tự bảng chữ cái)
class_names = ["An", "Bình", "Cường", "Đạt", "Hoàn", "Minh", "Nam", "Thảo", "Trung"]
# Tên học sinh cần tìm
target_name = "Minh"
# Gọi hàm tìm kiếm nhị phân
result = binary_search(class_names, target_name)
if result != -1:
print("Học sinh có tên là", target_name, "được tìm thấy tại vị trí", result)
else:
print("Học sinh có tên là", target_name, "không tồn tại trong danh sách.")
Cho danh sách Bảng điểm là kết quá học tập gồm các cột Họ và tên, điểm Toán, điểm ngữ văn, điểm Tin bọc... Hãy viết chương trình sắp xếp Bảng điểm theo điểm môn Tin học giảm dần.
Gợi ý: Mỗi phân tử của Bảng điểm là một danh sách con, ứng với một học sinh. So sánh theo thành phân điểm Tin học của danh sách con để sắp xếp.
Tham khảo:
#include <stdio.h>
#define GIOI "\nXep loai gioi"
#define KHA "\nXep loai kha"
#define TB "\nXep loai trung binh"
#define YEU "\nXep loai yeu"
/*
Format code: Alt + Shift + F
*/
int main()
{
// Nhập điểm 3 môn
float diemToan;
float diemVan;
float diemAnh;
float dtb;
printf("\nNhap diem toan = ");
scanf("%f", &diemToan);
printf("\nNhap diem van = ");
scanf("%f", &diemVan);
printf("\nNhap diem anh = ");
scanf("%f", &diemAnh);
dtb = (diemToan + diemVan + diemAnh) / 3;
printf("\nDTB = %.2f", dtb);
if (dtb < 4)
{
printf(YEU);
}else if (dtb < 6.5){
printf(TB);
}else if(dtb < 8.0){
printf(KHA);
}else{
printf(GIOI);
}
}
Lập danh sách một nhóm từ 3 đến 5 bạn trong tổ học tập của em theo mẫu sau:
Ghi chép lại thông tin của các bạn trong tổ và lập danh sách theo mẫu. Lưu ý: sắp xếp tên các bạn theo thứ tự bảng chữ cái, trình bày sạch đẹp.
Số thứ tự | Họ và tên | Nam, nữ | Ngày sinh | Nơi ở |
---|---|---|---|---|
1 | Ngô Hồng Anh | Nữ | 13-06-1996 | xã Phước Lợi, huyện Cần Giuộc, tỉnh Long An. |
… | … | … | … | … |
Số thứ tự | Họ và tên | Nam , nữ | Ngày sinh | Nơi ở |
---|---|---|---|---|
1. | Hoàng Minh Đức | Nam | 3-2-2009 | xã Phước Lợi, huyện Cần Giuộc, tỉnh Long An. |
2. | Nguyễn Thảo Mai | Nữ | 17-5-2009 | xã Phước Lợi, huyện Cần Giuộc, tỉnh Long An. |
3. | Nguyễn Thanh Tú | Nam | 3-3-2009 | xã Phước Lợi, huyện Cần Giuộc, tỉnh Long An. |
4. | Hoàng Ngọc Yến | Nữ | 17-8-2009 | xã Phước Lợi, huyện Cần Giuộc, tỉnh Long An. |
Một CSDL các bản nhạc, trên một trang website âm nhạc, được tổ chức như mô tả trong Hình 13.1, gồm có danh sách các tên nhạc sĩ với mã (định danh) là Aid (Hình 13.1a), danh sách các tên ca sĩ với mã (định danh) là Sid (Hình 13.1b), danh sách các bản nhạc với tên bản nhạc, mã nhạc sĩ (tác giả bản nhạc ) và mã Mid-định danh bản nhạc (Hình 13.1c), danh sách các bản thu âm gồm có mã bản nhạc và mã ca sĩ (Hình 13.1d). Hãy quan sát và trả lời các câu hỏi sau:
1. Nhạc sĩ sáng tác bản nhạc "Trường ca sông Lô" là nhạc sĩ nào? Nhạc sĩ sáng tác bản nhạc "Xa khơi” là nhạc sĩ nào?
2. Bản thu âm trong Hình 13.1d tương ứng với dòng 0005 TN là bản thu âm của bản nhạc nào, do ca sĩ nào thể hiện?
1. Nhạc sĩ sáng tác bản nhạc "Trường ca sông Lô" là Văn Cao
Nhạc sĩ sáng tác bản nhạc "Xa khơi" là nhạc sĩ: Nguyễn Tài Tuệ
2. Nhạc sĩ sáng tác bản nhạc "Trường ca sông Lô" là Văn Cao
Nhạc sĩ sáng tác bản nhạc "Xa khơi" là nhạc sĩ: Nguyễn Tài Tuệ
Cho danh sách tên các nước sau đây:
Bolivia, Albania, Scotland, Canada, Vietnam, Iceland, Portugal, Greendland, Germany
a) Em hãy sắp xếp danh sách tên các nước theo thứ tự trong bảng chữ cái.
b) Em hãy liệt kê các bước tìm kiếm tên nước Iceland trong danh sách đã sắp xếp theo thuật toán tìm kiếm nhị phân.
c, Vẽ sơ đồ khối.
Làm giúp mình với mình cần gấp