1. Trang chủ
  2. » Công Nghệ Thông Tin

C++ cho nguoi moi hoc bai 05

10 227 0

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 10
Dung lượng 0,91 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

BÀI TẬP TỔNG HỢP CUỐI KHÓA ttBài 1: Tính tiền lương ngày cho công nhân, cho biết trước giờ vào ca, giờ ra ca... BÀI TẬP TỔNG HỢP CUỐI KHÓA ttBài 3: Nhập vào một số nguyên, đếm và in ra t

Trang 1

LẬP TRÌNH C CHO NGƯỜI MỚI HỌC

Giảng viên: Thạc sĩ Trần Thanh Sơn

Trang 2

BÀI TẬP TỔNG HỢP CUỐI KHÓA (tt)

Bài 1: Tính tiền lương ngày cho công nhân, cho biết trước giờ vào ca, giờ ra ca Giả sử rằng

tiền trả cho mỗi giờ trước 12 giờ là 6.000đ và mỗi giờ sau 12 giờ trưa là 7.500đ Giờ vào ca sớm nhất là 6 giờ sáng và giờ ra ca trễ nhất là 18 giờ.

Bảng ví dụ vài trường hợp

2

Giờ vào ca Giờ ra ca Số giờ làm sáng Số giờ làm chiều Tiền lương

7 16 12 - 7 = 5 16 - 12 = 4 5 * 6.000 + 4 * 7.500 = 60.000

Trang 3

BÀI TẬP TỔNG HỢP CUỐI KHÓA (tt)

Giải pháp:

 B1: Kiểm tra đk: Vào ca min ≤ giờ vào ca ≤ giờ ra ca ≤ Ra ca max ? Đúng => B2, sai => dữ liệu không hợp lệ

 B2: Tính số giờ sáng, số giờ chiều, tiền lương.

Nếu giờ ra ca ≤ chuyển ca (12h) thì:

 Số giờ chiều = 0;

 Số giờ sáng = giờ ra ca – giờ vào ca;

Nếu giờ vào ca ≥ chuyển ca thì:

 Số giờ sáng = 0;

 Số giờ chiều = giờ ra ca – giờ vào ca;

 (giờ vào ca ≤ chuyển ca) && (giờ ra ca ≥ chuyển ca) thì:

Số giờ sáng = chuyển ca – giờ vào ca;

Trang 4

BÀI TẬP TỔNG HỢP CUỐI KHÓA (tt)

Bài 2: Tính số tiền lời thu được khi bán m kg hàng hóa (0< m ≤ 100), biết rằng:

• 0 < m ≤ 10 : Tiền lời là 5.000đ/kg

• 10 < m ≤ 20 : Tiền lời là 7.000đ/kg

• 20 < m ≤ 50 : Tiền lời là 9.000đ/kg và thêm 2% tổng số tiền lời

• 50 < m : Tiền lời là 10.000đ/kg và thêm 4% tổng số tiền lời nhưng không

quá 1.000.000 đ

4

Trang 5

BÀI TẬP TỔNG HỢP CUỐI KHÓA (tt)

Giải pháp:

• B1: Cho người dùng nhập vào m

• B2: Xét các trường hợp của m để tính tiền lời:

0 < m ≤ 10: Tiền lời = 5.000 * m

10 < m ≤ 20: Tiền lời = 7.000 * m

20 < m ≤ 50: Tiền lời = 9.000 * m

Tiền lời = Tiền lợi + Tiền lời * 0,02

50 < m ≤ 100: Tiền lời = 10.000 * m

Tiền lời = Tiền lợi + Tiền lời * 0,04 Tiền lời > 1.000.000 thì Tiền lời = 1.000.000 Trường hợp khác Tiền lời = -1

Trang 6

BÀI TẬP TỔNG HỢP CUỐI KHÓA (tt)

Bài 3: Nhập vào một số nguyên, đếm và in ra tất cả các ước số.

Giải pháp:

Định nghĩa: Ước số của một số n là số mà n chia hết.

B1: Khởi tạo biến Đếm = 0;

B2: Lặp lại: Duyệt các số từ 1 đến n, số i nào mà n % i =0 thì

• In i ra màn hình;

• Đếm ++;

B3: In biến đếm ra màn hình

6

Trang 7

BÀI TẬP TỔNG HỢP CUỐI KHÓA (tt)

Bài 4: Nhập vào một số nguyên n, kiểm tra có phải là số hoàn chỉnh không?

Giải pháp:

Định nghĩa: số hoàn chỉnh n là số có tổng ước số = tích ước số (không kể số n)

B1: Khởi tạo biến Tổng_ước_số = 0; Tích_ước_số = 1

B2: Lặp lại: Duyệt các số từ 1 đến n-1, số i nào mà n % i =0 thì

• Tổng_ước_số = Tổng_ước_số + i;

• Tích_ước_số = Tích_ước_số * i;

B3:Kiểm tra Tổng_ước_số = Tích_ước_số ? Nếu đúng thì in là số hoàn chỉnh, ngược lại in không phải là số hoàn chỉnh

Trang 8

BÀI TẬP TỔNG HỢP CUỐI KHÓA (tt)

Bài 5: Nhập vào một mảng số nguyên n phần tử Đếm số phần tử âm, dương, bằng 0 Cải

tiến xem mảng có sắp thứ tự tăng / giảm không?

Giải pháp:

B1:Nhập n phần tử như đã làm ở các bài trước.

B2: Khởi tạo dem_am = 0; dem_duong = 0, dem_0= 0;

B3:Lặp lại: Duyệt các phần tử a[0] đến a[n-1]

• dem_duong ++; nếu a[i]>0;

• dem_am ++; nếu a[i]<0;

• dem_0 ++ ; nếu a[i]=0;

In ra màn hình dem_duong, dem_am, dem_0.

8

Trang 9

BÀI TẬP TỔNG HỢP CUỐI KHÓA (tt)

Phần cải tiến: Kiểm tra mảng có sắp thứ tự tăng/ giảm hay không?

Nhận xét:

• Mảng tăng a[0] ≤ a[1]… ≤ a[n-1], có n-1 phép so sánh “≤”

• Nếu n-1 phép so sánh ≤ này đều đúng => Mảng tăng

• Chỉ cần 1 phép so sánh ≤ sai thì mảng không tăng

Sử dụng biến dem_tang, kiểm tra dem_tang = n-1 không?

Tương tự cho mảng giảm

Trang 10

BÀI TẬP TỔNG HỢP CUỐI KHÓA (tt)

Giải pháp:

B1: Khởi tạo dem_tang = 0; dem_giam = 0;

B2: Lặp lại: Duyệt các phần tử a[0] đến a[n-2] (n-1 lần)

• dem_tang ++ nếu a[i] ≤ a[i + 1];

• dem_giảm++ nếu a[i] ≥ a[i + 1];

B3: Kiểm tra các biến : dem_tang, dem_giam

• Nếu dem_tang = n-1 thì in mảng tăng

• Nếu dem_giam = n -1 thì in mảng giảm

• Trường hợp còn lại in mảng không tăng/ không giảm

10

Ngày đăng: 16/07/2016, 09:15

HÌNH ẢNH LIÊN QUAN

Bảng ví dụ vài trường hợp - C++ cho nguoi moi hoc bai 05
Bảng v í dụ vài trường hợp (Trang 2)

TÀI LIỆU CÙNG NGƯỜI DÙNG

  • Đang cập nhật ...

TÀI LIỆU LIÊN QUAN

w