Bài tập chèn xóa số trong mảng tc năm 2024

Bài 1. Viết chương trình thực hiện các công việc sau: a. Khai báo một mảng số nguyên gồm 3 hàng và 4 cột. b. Khởi tạo giá trị của mảng vừa nhập lần lượt như sau: 8 4 - 1 5 2 2 6 9 11 2 5 4 c. Xuất lại toàn bộ mảng đang lưu trữ để kiểm chứng. Bài 2. Viết chương trình dùng câu lệnh while để nhập và xuất giá trị cho một mảng số nguyên gồm 4 hàng và 3 cột. Gợi ý: dựa trên tính chất câu lệnh while và for để xây dựng lại phần nhập và xuất mảng 2 chiều. Bài 3. Viết chương trình thực hiện các công việc sau: a. Cho phép người dùng nhập vào một mảng số nguyên gồm r hàng và c cột (tối đa 10 hàng và 15 cột, nếu nhập sai thì yêu cầu nhập lại cho đến khi đúng mới tiếp tục). Gợi ý: dùng vòng lặp do.. để kiểm soát việc nhập giá trị hàng và cột có hợp lệ hay không? b. Tính tổng các giá trị lưu trữ trong mảng. c. Tìm giá trị nhỏ nhất, lớn nhất đang lưu trữ trong mảng. Gợi ý: dùng 1 giá trị min để chứa giá trị nhỏ nhất trong mảng. Khởi tạo min là giá trị đầu tiên trong mảng, rồi tiến hành so sánh min với các giá trị còn lại để tìm min. Tương tự cho max. d. Cho biết vị trí của giá trị nhỏ nhất hay lớn nhất ở hàng mấy? cột bao nhiêu (Giả sử người dùng nhập không có giá trị nào trùng nhau). Gợi ý: dựa trên giá trị đã tìm được ở câu c, lưu trữ vị trí ứng với giá trị nhỏ nhất hay lớn nhất (có thể lồng ghép trong lúc tìm min hay max) bằng 2 biến hang va cot. Vì đề toán có giả sử không có giá trị trùng nhau trong mảng nên chắc chắn rằng trong mảng chỉ có 1 giá

trị nhỏ nhất hoặc lớn nhất, việc lưu trữ giá trị nhờ vào giá trị biến đếm ở 2 vòng lặp khi duyệt mảng. Bài 4. Viết chương trình thực hiện các công việc sau: a. Cho phép người dùng nhập vào một mảng số nguyên gồm r hàng và c cột (tối đa 5 hàng và 6 cột, nếu nhập sai thì yêu cầu nhập lại cho đến khi đúng mới tiếp tục). Gợi ý: dùng vòng lặp do.. để kiểm soát việc nhập giá trị hàng và cột có hợp lệ hay không? b. Cho người dùng nhập vào một vị trí cột/hàng cần tính tổng. Hãy tiến hành tính tổng các giá trị lưu trữ trong cột/hàng mà người dùng yêu cầu. Lưu ý: vị trí cột hay hàng phải hợp lệ. Gợi ý: vị trí cột hay hàng hợp lệ là vị trí từ 0 đến số lượng phần tử tối đa trên cột hay hàng

  • 1 (hoặc từ 1 đến số lượng phần tử tối đa trên cột hay hàng). c. Cho người dùng nhập vào một giá trị x bất kỳ. Hãy tìm xem x có tồn tại trong mảng hay không? Nếu có thì tồn tại bao nhiêu lần? Tại các vị trí nào? Bài 5. Viết chương trình cho nhập vào một ma trận vuông cấp n (chứa các số nguyên). Sau đó tính tổng các giá trị trên đường chéo chính và đường chéo phụ của ma trận vừa nhập. Ví dụ: cho ma trận Thì tổng các giá trị trên đường chéo chính là = 1 + 15 + 2 = 18, tổng các giá trị trên đường chéo phụ là = 6 + 15 + 0 = 21. Gợi ý: các vị trí điều chéo chính đều là [0][0], [1][1], [2][2]. Tương tự cho đường chéo phụ Bài 6. Viết chương trình cho nhập vào hai ma trận (chứa các số nguyên). Sau đó tính kết quả tổng và tích hai ma trận đó. Bài 7. Viết chương trình thực hiện các yêu cầu sau: a. Xây dựng các hàm:

3 6 11 14

4 5 12 13

Bài 10. Viết chương trình gán các giá trị số nguyên từ 1 đến n 2 cho các phần tử của ma trận vuông có kích thước n x n ( 2 <= n <= 10) được nhập từ bàn phím theo dạng xoắn ốc. Ví dụ n = 4: 1 2 3 4 12 13 14 5 11 16 15 6 10 9 8 7 Bài 11. Viết chương trình đặt chỗ ngồi cho 1 máy bay. Máy bay có 13 hàng ghế, mỗi hàng có 6 ghế. Hàng 1 và 2 là hạng thương gia, hàng 3 đến 7 là hạng phổ thông, hàng 8 trở đi là hạng tiết kiệm. Chương trình in ra bảng đặt chỗ ngồi có dạng như sau:

Chương trình yêu cầu người dùng nhập vào loại vé (thương gia, phổ thông hay tiết kiệm) và chỗ ngồi muốn đặt. Chương trình kiểm tra và in thông báo thích hợp, đồng thời có menu cho phép người dùng lựa chọn. ------HẾT---------

Bài 4. Viết hàm đệ qui tính giá trị của xn ; với x, n là số nguyên. Sau đó xây dựng chương trình để mô phỏng và kiểm tra hàm vừa xây dựng. Bài 5. Viết hàm đệ qui đếm số chữ số của một số nguyên không âm. Sau đó xây dựng chương trình để mô phỏng và kiểm tra hàm vừa xây dựng. Bài 6. Viết hàm đệ qui trả về số đảo ngược của một số nguyên không âm. Sau đó xây dựng chương trình để mô phỏng và kiểm tra hàm vừa xây dựng. Bài 7. Viết hàm đệ qui tính tổng các chữ số chẵn/lẻ của một số nguyên không âm. Sau đó xây dựng chương trình để mô phỏng và kiểm tra hàm vừa xây dựng. Bài 8. Viết hàm đệ qui chuyển một số nguyên dương từ hệ thập phân sang nhị phân. Sau đó xây dựng chương trình để mô phỏng và kiểm tra hàm vừa xây dựng. Bài 9. Viết hàm đệ qui chuyển một số nguyên ở dạng nhị phân sang hệ thập phân. Bài 10. Viết hàm đệ qui tìm ước số chung lớn nhất của hai số nguyên. Sau đó xây dựng chương trình để mô phỏng và kiểm tra hàm vừa xây dựng. Gợi ý: ước chung lớn nhất của 2 số nguyên a và b có thể được tính bằng thuật giải Euclid như sau: Bước 1: nếu b = 0 thì trả về kết quả là a và kết thúc, ngược lại sang bước 2. Bước 2: chia a cho b và gán d là số dư. Sang bước 3 Bước 3: gán giá trị b cho a và d cho b. Quay lại bước 1. Bài 11. Viết hàm đệ qui tính tổng các giá trị của một mảng một chiều lưu trữ số nguyên. Sau đó xây dựng chương trình để mô phỏng và kiểm tra hàm vừa xây dựng. Bài 12. Viết hàm đệ qui tìm giá trị nhỏ nhất của một mảng một chiều lưu trữ số nguyên. Sau đó xây dựng chương trình để mô phỏng và kiểm tra hàm vừa xây dựng. Bài 13. Viết hàm đệ qui để xuất ra một tam giác Pascal. Biết rằng 1 tam giác Pascal có dạng như sau với chiều cao là 5: ------HẾT---------

BÀI TẬP THỰC HÀNH CHƯƠNG 3 : CON TRỎ

Bài 1. Viết chương trình thực hiện các yêu cầu sau: a. Khai báo 2 biến x và y kiểu số nguyên. b. Khai báo con trỏ p để trỏ đến biến kiểu số nguyên. c. Cho con trỏ p trỏ đến x. d. Con trỏ p nhận giá trị lưu trữ là 8 0. e. Xuất địa chỉ của biến x. f. Xuất địa chỉ lưu trong con trỏ p. g. Xuất giá trị của biến mà p trỏ đến. h. Xuất giá trị của biến x. Giá trị này có phải là giá trị mà p lưu trữ? Bài 2. Viết chương trình thực hiện các yêu cầu sau: a. Khai báo một mảng số nguyên tối đa 30 phần tử. b. Khởi tạo một mảng số nguyên với giá trị ngẫu nhiên (các giá trị nhỏ hơn 10). c. Khai báo biến con trỏ p trỏ đến mảng vừa khởi tạo. d. Dùng con trỏ và ký pháp độ dời để xuất các giá trị đang lưu trữ trong mảng. e. Dùng con trỏ và ký pháp chỉ số để xuất các giá trị đang lưu trữ trong mảng. Bài 3. Viết chương trình dùng cấp phát động để cho phép 2 con trỏ lưu trữ giá trị của 2 số nguyên. Sau đó dựa trên địa chỉ mà con trỏ trỏ đến để tìm ước chung lớn nhất của 2 giá trị số nguyên này bằng thuật giải Euclid. Gợi ý: thuật giải Euclid xem lại ở BTTH Lab2. - Bước 1: Nếu b là 0 thì kết quả là a, ngược lại thì sang b - Bước 2: tính d = số dư của phép chia a cho b - Bước 3: gán a = b, b = số dư ở b2. Quay trở lại b Bài 4. Viết chương trình dùng cấp phát động, cho phép:

  • Nhập vào một mảng số nguyên một chiều tối đa 30 phần tử.
  • Dùng con trỏ và ký pháp độ dời để xuất ra các phần tử là số lẻ trong mảng.
  • Trả về địa chỉ của giá trị phần tử lớn nhất trong mảng (giả sử các giá trị trong mảng không trùng nhau).

CHƯƠNG 4: CHUỖI

Sinh viên thực hiện các bài tập sau sử dụng C-string hoặc string Bài 1. Viết chương trình nhận vào 2 chuỗi ký tự s1 và s2 (kể cả khoảng trắng). Tìm và xóa tất cả chuỗi s2 trong s1. Bài 2. Viết chương trình nhận vào một chuỗi ký tự, thống kê cho biết chuỗi đó có các ký tự gì, mỗi ký tự xuất hiện bao nhiêu lần. Bài 3. Xây dựng hàm nhận vào một chuỗi ký tự (không khoảng trắng), kiểm tra xem chuỗi đó có phải là chuỗi palindrome hay không? Viết chương trình kiểm chứng hàm vừa xây dựng. Ví dụ: chuỗi “Anna”, “hih” là chuỗi palindrome (chuỗi đối xứng). Bài 4. Định nghĩa các hàm sau và viết chương trình minh họa: a. Hàm nhận vào một chuỗi ký tự, trả về chuỗi đảo của chuỗi vừa nhập b. Hàm nhận vào một chuỗi ký tự, trả về số từ trong chuỗi c. Hàm nhận vào một chuỗi ký tự, trả về chuỗi đã được chuẩn hóa theo quy tắc: xóa hết các khoảng trắng thừa đầu và cuối chuỗi, chỉ giữ lại giữa 2 từ một khoảng trắng, chuyển về chữ hoa các ký tự đầu từ Bài 5. Viết chương trình cho phép người dùng nhập password (tối đa 10 ký tự) và hiển thị dưới dạng ký tự “*”. Sau đó kiểm tra xem đúng password là “svCQ” hay không? Nếu đúng thông báo đã đăng nhập thành công, nếu sai yêu cầu nhập lại. Tối đa cho phép nhập 3 lần. Ví dụ: Nhap mat khau: ******* Nhap sai! Nhap lai! Nhap mat khau: **** Dang nhap thanh cong! Bài 6. Xây dựng hàm nhận vào một chuỗi ký tự có dạng: “ngay-thang-nam” với mỗi giá trị ngày, tháng là 2 ký tự, năm là 4 ký tự (Ví dụ: “ 06 - 01 - 2007 ”), hàm trả về xem ngày đó là ngày thứ mấy trong năm. Viết chương trình kiểm chứng hàm vừa xây dựng. Bài 7. Viết chương trình nhập vào chuỗi ngày tháng năm theo định dạng: “thang/ngay/nam”. Sau đó trả về định dạng tương tự nhưng theo qui cách khung giờ quốc tế. Ví dụ: Nhập “07/21/55” hoặc “7/21/1955” Thì kết quả: July 21, 1955 Bài 8. Viết hàm nhận vào tham số là ba chuỗi s1, s2, s3. Hàm này thực hiện chức năng tìm kiếm và thay thế tất cả chuỗi con s2 trong s1 bằng chuỗi s3 và trả về chuỗi kết quả. Viết chương trình kiểm chứng hàm vừa xây dựng

Bài 9. Xây dựng chương trình nhập vào hai chuỗi s1, s2 và một vị trí x. Chèn chuỗi s2 vào s1 tại vị trí x nếu x là vị trí hợp lệ. In chuỗi kết quả ra màn hình. Bài 10. Viết hàm mã hóa chuỗi theo nguyên tắc sau: - Nếu là chữ cái: thay bằng ký tự đứng sau nó trong bảng mã ascii n ký tự theo hướng xoay vòng (với n được nhập từ bàn phím), ví dụ n = 2: ‘A’ thay bằng ‘C’, ‘B’ thay bằng ‘D’, ‘Y’ thay bằng ‘A’, ‘Z’ thay bằng ‘B’. - Nếu là chữ số: thay bằng chữ số cách nó n giá trị theo hướng xoay vòng (với n được nhập từ bàn phím), ví dụ n = 2 : ‘0’ thay bằng ‘ 2 ’, ‘1’ thay bằng ‘3’, ‘8’ thay bằng ‘0’, ‘9’ thay bằng ‘1’. - Viết chương trình kiểm chứng hàm vừa xây dựng, giả sử nhập “Hello128”, n = 2, chuỗi mã hóa là “Jgnnq340”

  • In danh sách sinh viên gồm các thông tin: Số thứ tự , mã số sinh viên, họ tên, điểm trung bình, xếp loại. Biết:
    • điểm trung bình = ( (điểm toán + điểm văn) * 2 + điểm ngoại ngữ)/
    • Xếp loại sinh viên: Nếu điểm trung bình từ 8 trở lên thì xếp loại là “Giỏi” Nếu điểm trung bình từ 6 đến < 8 thì xếp loại là “Khá” Nếu điểm trung bình từ 5 đến < 6 thì xếp loại là “TB” Nếu điểm dưới 5 thì xếp loại “Dưới TB”
  • Viết hàm main kiểm chứng chương trình. Bài 4. Định nghĩa kiểu dữ liệu SanPham gồm các thông tin như sau:
  • Mã sản phẩm kiểu char (tối đa 10 ký tự)
  • Tên sản phẩm kiểu string.
  • Đơn giá kiểu double
  • Số lượng tồn kho kiểu int Viết chương trình dùng cấp phát động để:
  • Nhập thông tin cho tối đa 30 sản phẩm.
  • Xuất thông tin của các sản phẩm vừa nhập.
  • Sửa thông tin của một sản phẩm bất kỳ do người dùng yêu cầu.
  • Xóa thông tin của một sản phẩm bất kỳ do người dùng yêu cầu.
  • Sắp xếp lại toàn bộ sản phẩm theo trình tự số lượng tồn kho tăng dần. B. BÀI TẬP VỚI class Xây dựng lớp (class) MyTime với ba thành phần là giờ, phút, giây kiểu số nguyên có mức độ truy xuất là private. Xây dựng các phương thức (hàm) khởi tạo giá trị, nhập, xuất dữ liệu, các phép toán tăng/giảm n giây. Viết hàm main kiểm chứng chương trình Bài 5. Lưu ý: toàn bộ định nghĩa class chuyển sang lưu trữ ở header file. Bài 6. Xây dựng lớp (class) MaTrix gồm các thông tin:
  • Số dòng, số cột kiểu int
  • Con trỏ trỏ đến mảng 2 chiều lưu trữ số nguyên.
  • Xây dựng các phương thức o Khởi tạo một MaTrix chứa các số nguyên từ 0 đến 50 o In MaTrix o Các phương thức cộng, trừ, nhân hai MaTrix Viết hàm main kiểm chứng chương trình ------HẾT---------

Viết chương trình đọc nội dung hai tập tin trên lưu vào hai mảng hai chiều, tính tổng hai ma trận và ghi ra file matrix3. Bài 6. Viết chương trình khai báo một struct SinhVien gồm mã sinh viên và họ tên kiểu string, năm sinh kiểu int. Sau đó thực hiện các yêu cầu sau:

  • Dùng cấp phát động để khai báo mảng một chiều kiểu SinhVien.
  • Nhập thông tin cho tối đa 10 sinh viên.
  • Lưu trữ danh sách sinh viên ra file student Bài 7. Viết chương trình đọc file student trong Bài 6 vào một danh sách, tìm kiếm và in ra thông tin sinh viên có mã sinh viên do người dùng nhập vào. ----HẾT-----

1

BÀI TẬP LUYỆN TẬP MÔN HỌC KỸ THUẬT LẬP TRÌNH

(Mảng hai chiều, chuỗi, cấu trúc, file)

CHUỖI KÍ TỰ

  1. Viết chương trình bao gồm các chức năng sau: o Xác định số lần xuất hiện của từng kí tự trong chuỗi. o In các từ trong chuỗi, mỗi từ trên một dòng. o Chuẩn hóa chuỗi (không có các khoảng trắng thừa, các từ được bắt đầu bằng kí tự chữ hoa, các kí tự còn lại là chữ thường). o Kiểm tra một kí tự có nằm trong chuỗi hay không? o Đếm số từ trong một chuỗi. o Loại bỏ các khoảng trắng thừa trong chuỗi. o Tách từ đầu tiên trong chuỗi. o Tách từ cuối cùng trong chuỗi. o Chuyển từ cuối cùng thành từ đầu tiên trong chuỗi. o In từ dài nhất (từ ngắn nhất) trong chuỗi. o Đảo ngược chuỗi. o Kiểm tra chuỗi có phải là một palindrome hay không? o Kiểm tra chuỗi có tuần hoàn hay không? o Thay thế các kí tự trong chuỗi nhập bằng các kí tự tương ứng trong chuỗi con. o Kiểm tra chuỗi con có nằm trong một chuỗi hay không? o Đếm số lần xuất hiện chuỗi con trong một chuỗi. o Loại bỏ chuỗi con subs (nếu có) ra khỏi chuỗi s. o Chèn chuỗi con subs vào trong chuỗi s tại vị trí k. o Mã hóa và giải mã chuỗi dùng phép thay thế (substitution). o Mã hóa và giải mã chuỗi dùng bảng thay thế. Viết chương trình áp dụng các hàm trên.
  2. Viết chương trình xử lý chuỗi kí tự bao gồm các chức năng sau: (Chú ý: không được dùng hàm thư viện) o Tính chiều dài của chuỗi nhập. o Sao chép 2 chuỗi với nhau. o So sánh 2 chuỗi với nhau. o Tìm một kí tự trong chuỗi nhập. o Tìm chuỗi con trong chuỗi nhập. o Thêm chuỗi con vào trong chuỗi nhập tại vị trí k. o Xoá chuỗi con trong chuỗi nhập. o Loại bỏ các khoảng trắng thừa (kí tự Space, Tab) trong chuỗi nhập. o Chuẩn hóa chuỗi nhập. o Đảo ngược chuỗi nhập. o Kiểm tra 2 chuỗi nhập có gồm cùng các kí tự hay không? o Kiểm tra chuỗi nhập có đối xứng hay không? o Kiểm tra chuỗi nhập có tuần hoàn hay không? o Đếm tần số xuất hiện của các kí tự trong chuỗi nhập. o Đếm số từ trong chuỗi nhập. o Đếm số kí tự, số từ và số dòng trong chuỗi nhập. o Chuyển từ cuối cùng thành từ đầu tiên trong chuỗi nhập.

3

  1. In danh sách các sinh viên Đậu (TB >=5), Rớt (TB < 5) Lưu ý: các thao tác thêm, sửa, xóa đều được cập nhật vào file dữ liệu 4. Sử dụng cấu trúc (struct) viết ứng dụng quản lý sách trong thư viện với các thông tin như sau: mã sách (làm khóa chính, không được trùng), Tên sách, Tác giả, Nhà xuất bản, Năm xuất bản. Chương trình cho phép thực hiện các chức năng sau: a) Nhập mục sách từ file dữ liệu (text) b) Tìm kiếm, in thông tin một quyển sách theo mã sách, tên sách c) In danh mục sách theo tên tác giả d) In danh mục sách theo nhà xuất bản e) Thêm một quyển sách (có kiểm tra mã sách không được trùng) f) Xóa một quyển sách theo mã sách g) Xóa tất cả các quyển sách của một tác giả h) In danh mục sách theo Tên sách tăng dần i) In danh mục sách theo năm xuất bản giảm dần j) In danh sách thống kê số lượng sách theo từng nhà xuất bản với số lượng giảm dần Lưu ý: các thao tác thêm, sửa, xóa đều được cập nhật vào file dữ liệu