You are on page 1of 5

Tiêu đề: PRF192- PFC

Hội thảo 02
Mục tiêu:
Thực hành kỹ năng phân tích và triển khai các chương trình đơn giản

Nội dung: 7 chương trình

Chương 1 2 3 4 5 6 7
trình
Nốt 2 2 1 1 2 1 1

Chương trình 1 ( 2 điểm)

Viết một chương trình cho phép người dùng nhập một biểu thức đơn giản có chứa một trong
bốn toán tử +, -, *, / sau đó kết quả được in ra màn hình. Định dạng đầu vào: toán tử num1
num2,
Một ví dụ về giao diện người dùng
Nhập biểu thức (+ - * /): 4*5
Kết quả: 20

Phân tích mẫu

Nội dung Thực hiện


Danh Biểu thức num1 kép, num2
từ Định dạng toán tử NUM1 ký tự trên
NUM2 kết quả kép

kết quả
Verbs Bắt đầu
Chấp nhận num1, op, num2 scanf( "%lf% c%lf", &num1, &op, &num2)
Tính toán kết quả Công tắc (Bật)
In kết quả { case '+' : result = num1 + num2;
Kết thúc in ra kết quả;
phá vỡ;
trường hợp '-' : kết quả = num1 - num2;
in ra kết quả;
phá vỡ;
trường hợp '*' : kết quả = num1 * num2;
in ra kết quả;
phá vỡ;
trường hợp '/' : nếu ( num2==0)
in ra "Chia cho 0"
khác
{ kết quả = num1 / num2;
in ra kết quả;
}
phá vỡ;
mặc định: in ra "Op không được hỗ trợ"
}

Thực hiện chương trình này.

Chương trình 2 ( 2 điểm) – Thuế thu nhập cá nhân hàng năm

Giả sử rằng:
Tại Việt Nam, mỗi người dân phải nộp thuế thu nhập cá nhân hàng năm như mô tả sau:

Quy tắc:

Thu nhập miễn thuế:


Personal pending amount (tiền nuôi bản thân) pa= 11 000 000VND/month
Tiền cấp dưỡng (tiền cấp dưỡng) cho mỗi PD phụ thuộc= 4 400 000VNĐ/tháng/người phụ thuộc
Với n người phụ thuộc, Thu nhập miễn thuế hàng năm: tf = 12 * (pa + n * pd)

Taxable income (thu nhập chịu thuế)


ti = thu nhập – tf
( Nếu ti<=0 thì thuế thu nhập = 0)

Căn cứ vào thu nhập chịu thuế, người lao động phải nộp thuế thu nhập với các mức được xác
định trước trong bảng sau:

Mức Thu nhập chịu thuế Thuế thu


nhập
1 Nhỏ hơn hoặc bằng 5.000.000 5%
2 Từ 5.000.001 đến 10.000.000 10%
3 Từ 10.000.001 đến 18.000.000 15%
4 Từ 1 8.000.001 đến 32.000.000 20%
5 Từ 32.000.001 đến 52.000.000 25%
6 Hơn 52.000.000 30%

Viết một chương trình sẽ tính thuế thu nhập của một người bằng giao diện sau:

Trường hợp 1:

Thu nhập của bạn trong năm nay: 240000000


Số người phụ thuộc:4
Thu nhập miễn thuế: 280800000
Thu nhập chịu thuế: 0
Thuế thu nhập: 0

Trường hợp 1:

Thu nhập của bạn trong năm nay: 440000000


Số người phụ thuộc:4
Thu nhập miễn thuế: 280800000
Thu nhập chịu thuế:: 159200000
Thuế thu nhập: 30190000

Chương trình 3 (1 điểm)

Mục tiêu Thực hành các câu lệnh vòng lặp


Kiến thức liên quan Không ai
Vấn đề Viết một chương trình C sẽ in ra tổng các số nguyên được nhập từ
bàn phím cho đến khi giá trị 0 được nhập.
Phân tích Thuật toán gợi ý (thứ tự logic của động từ)
Danh từ: sum int S; Bắt đầu
Giá trị tích S = 0;
phân được chấp nhận Từ nút {
int x Chấp nhận x;
Nếu (x != 0) S = S + x;
}
Trong khi (x!=0);
In ra S;
Kết thúc

Chương trình 4 (1 điểm)

Mục tiêu Thực hành vòng lặp câu lệnh


Kiến thức liên quan Không ai
Vấn đề Viết một chương trình C sẽ thực hiện một số lần: chấp nhận hai số
nguyên, hoán đổi các giá trị này, in chúng ra màn hình. Chương trình
sẽ chấm dứt khi giá trị của 0 được nhập vào.
Phân tích Thuật toán gợi ý (thứ tự logic của động từ)
Danh từ: Bắt đầu
2 số nguyên int x, y; Từ nút {
Chấp nhận x, y;
int t = x; /* t: biến tạm thời */
x = y;
y = t;
In ra x, y;
}
Trong khi ( x!=0 && y!=0);
Kết thúc

Chương trình 5: (2 điểm)

Kiến thức liên quan Sử dụng hàm getchar() –stdio.h, để nhập một ký tự, hàm
toupper(ch) để chuyển đổi một ký tự thành chữ hoa - ctype.h
Mã ASCII của khóa ENTER: '\n'
Vấn đề Viết một chương trình C sẽ:
- cho phép người dùng nhập một chuỗi ký tự. Thao tác
đầu vào sẽ kết thúc nếu phím ENTER được vuốt ve.
- in ra số nguyên âm, số phụ âm và số lượng phụ âm khác
lên màn hình.
Phân tích Thuật toán gợi ý (thứ tự logic của động từ)
Danh từ: Bắt đầu
ký tự được nhập Từ nút {
 Bình CH Chấp nhận ch; /* ch= getchar(); */
Số lượng nguyên âm Chuyển đổi ch thành chữ hoa của nó /* ch = toupper
 int nVowels = 0; (ch); */
Số lượng phụ âm Nếu ( ch>='A' và ch <='Z') {
 phụ âm int = 0; công tắc (ch) {
Số ký tự khác int nOthers = trường hợp 'A':
0; nhà 'E':
trường hợp 'Tôi':
trường hợp 'O':
trường hợp 'U' : nVowels ++; phá vỡ;
mặc định: nConsonants++;
}
}
else nOthers = nOthers++;
}
Trong khi ( ch != '\n');
In ra nVowels;
In ra nConsonants;
In ra nOthers;
Kết thúc

Chương trình 6: (1 điểm)

Kiến thức liên Mỗi ký tự sẽ được lưu trữ dưới dạng mã ASCII của nó với giá trị 0..255
quan
Vấn đề Viết một chương trình C sẽ in ra bảng mã ASCII.
Phân tích Thuật toán gợi ý (thứ tự logic của động từ)
Mã ASCII Bắt đầu
 Mã INT Với mỗi mã = 0 đến 255
{ In ra ("%c : %d, %o, %X\n", mã, mã, mã, mã);
Nếu (mã !=0 && mã %20==0) getchar(); /* trang mã gồm 20 dòng */
}
Kết thúc.

Chương trình 7: (1 điểm)

Vấn đề Viết một chương trình C sẽ chấp nhận hai ký tự sau đó in ra sự


khác biệt mã ASCII giữa chúng và các ký tự giữa chúng bao gồm
các giá trị mã theo các phần mở rộng thập phân, bát phân, thập
lục phân theo thứ tự tăng dần.
Phân tích Thuật toán gợi ý (thứ tự logic của động từ)
2 nhân vật Bắt đầu
 Ký tự C1, C2 Chấp nhận c1 ; ;
Sự khác nhau Chấp nhận c2;
  Quốc tế D; Nếu (c1 > c2 )
Ký tự để hoán đổi hoạt { t = c1; c1 = c2; c2= t;
động }
  ký tự t d = c2 – c1;
Ký tự để lặp lại In ra d;
 Bể c Với mỗi c từ c1 đến c2
{ In ra ("%c: %d, %o, %X\n", c, c, c, c);
}
Kết thúc.

Kết thúc

You might also like