Hãy nhập câu hỏi của bạn vào đây, nếu là tài khoản VIP, bạn sẽ được ưu tiên trả lời.
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.")
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")
with open('XAU.INP', 'r') as input_file, open('XAU.OUT', 'w') as output_file:
for line in input_file:
length = len(line.strip())
output_file.write(f'{length}\n')
Để lưu trữ danh sách học sinh và thông tin điểm thi của họ, bạn có thể sử dụng một danh sách chứa nhiều danh sách con. Mỗi danh sách con sẽ chứa tên học sinh (dạng chuỗi) và ba điểm số (dạng số) của họ tương ứng với ba bài thi.
Ví dụ, để tạo một mảng danh sách học sinh với thông tin điểm số, ta có thể sử dụng mã như sau:
# Nhập danh sách học sinh và điểm số
students = []
n = int(input("Nhập số lượng học sinh: "))
for i in range(n):
name = input(f"Nhập tên học sinh thứ {i+1}: ")
mark1 = float(input(f"Nhập điểm bài thi 1 của {name}: "))
mark2 = float(input(f"Nhập điểm bài thi 2 của {name}: "))
mark3 = float(input(f"Nhập điểm bài thi 3 của {name}: "))
students.append([name, mark1, mark2, mark3])
# Tính điểm trung bình và in ra danh sách học sinh và điểm trung bình của họ
for student in students:
name = student[0]
mark1 = student[1]
mark2 = student[2]
mark3 = student[3]
avg_mark = (mark1 + mark2 + mark3) / 3
print(f"Học sinh {name} có điểm trung bình là {avg_mark}")
ds=list(map(str,input().split()))
c={}
for i in ds:
if i in c:
c[i] =c[i]+1
else:
c[i] = 1
print('số tên khác nhau là',len(c))
print('mỗi tên có số lần xuất hiện là:')
for i in c:
print(i, c[i])
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);
}
}
- Ta có thể đặt tên các phần tử của danh sách học sinh là họ tên của các học sinh. Ví dụ: nếu lớp có 30 học sinh, chúng ta có thể tạo một danh sách với 30 phần tử và lưu trữ họ tên của các học sinh tại các chỉ số tương ứng của danh sách. Ví dụ: tên học sinh thứ nhất được lưu trữ tại vị trí danh sách thứ 0, tên học sinh thứ hai được lưu trữ tại vị trí danh sách thứ 1, và cứ như vậy.
- Để tổ chức dữ liệu khảo sát, chúng ta có thể sử dụng một cấu trúc dữ liệu gọi là "bảng điểm" (scoreboard) hoặc "bảng đánh giá" (rating table). Cấu trúc này có thể được triển khai dưới dạng một mảng.
- Em sẽ dụng cấu trúc dữ liệu 2 chiều để mô tả danh sách các địa điểm này
def sequential_search(names, target):
found = []
for name in names:
if name == target:
found.append(name)
return found
# Danh sách tên học sinh trong lớp
class_names = ["An", "Bình", "Cường", "Đạt", "Hoàn", "Minh", "Nam", "Thảo", "Hoàn", "Trung"]
# Tên học sinh cần tìm
target_name = "Hoàn"
# Danh sách tên học sinh trong lớp
class_names = ["An", "Bình", "Cường", "Đạt", "Hoàn", "Minh", "Nam", "Thảo", "Hoàn", "Trung"]
# Tên học sinh cần tìm
target_name = "Hoàn"
# Gọi hàm tìm kiếm tuần tự
found_names = sequential_search(class_names, target_name)
if len(found_names) > 0:
print("Các học sinh có tên là", target_name, "là:", found_names)
else:
print("Không tìm thấy học sinh nào có tên là", target_name)