Saturday, December 21, 2013

Một số bài tập THDC cho các bạn SIE

Viết chương trình bằng C

1. Mua hàng trả góp
Một người mua điện thoại iphone trả góp với giá là 15000000 (15 tr), trả góp trong vòng 12 tháng, với lãi suất ngân hàng là 10%/1 năm.
Tính số tiền mà người đó phải trả hàng tháng

2. Một người mua điện thoại Sony Xperia Z trả góp với giá là 16.990.000, trả góp trong vòng 30 tháng, với lãi suất ngân hàng là 10%/1 năm. (->2.5*10%)
Tính số tiền mà người đó phải trả hàng tháng trong vòng 36 tháng sẽ là bao nhiêu?
So với giá trị gốc thì người đó phải trả thêm là bao nhiêu?

3. Viết chương trình nhập vào 10 số nguyên, tìm và in ra màn hình giá trị lớn nhất, nhỏ nhất trong các số vừa nhập

4. Một người gửi tiền vào ngân hàng với chu kỳ 1 tháng và lãi suất 7%/năm, hãy in ra số tiền người đó nhận được sau mỗi tháng trong vòng 30 tháng

Dùng mảng để lưu tiền nhận được sau mỗi tháng
Tháng 1: Tiền nhận được bằng tiền gửi x
Tháng 2: Tiền nhận được bằng tiền gửi x*(1+0.07/12)
Tháng 3: Tiền nhận được bằng <Tiền nhận của tháng 2>*(1+0.07/12)

Tháng thứ 30: Tiền nhận được bằng <Tiền nhận của tháng 29>*(1+0.07/12)

Nếu chu kỳ gửi là 3 tháng và lãi suất là 8% thì tiền nhận được sau mỗi tháng là bao nhiêu, biết lãi suất gửi không kỳ hạn là 2.5%/năm (1 năm là 360 ngày)
Tiền gửi là x (VND)[0]
Tiền lãi sau 1 tháng: = x(1+0.025*30/360) [1]
Tiền lãi sau 2 tháng: = x(1+0.025*60/360) [2]
Tiền lãi sau 3 tháng: = x(1+0.08*3/12) = x3 [3]
Tiền lãi sau 4 tháng: = x3*(1+0.025*30/360)[4]
Tiền lãi sau 5 tháng: = x3*(1+0.025*60/360)[5]
Tiền lãi sau 6 tháng: = x3*(1+0.08*3/12)=x6 [6]

5. Mua hàng trả góp khách hàng phải trả 2 khoản gồm
•    Tiền trả ban đầu
•    Tiền trả hàng tháng
Tiền trả hàng tháng tính bằng số tiền phải trả còn lại * lãi suất trong số tháng phải trả/số tháng
Ví dụ:

Người mua hàng giá 50,000,000 trả trước 10,000,000 và trả hàng tháng sau 6 tháng với lãi suất là 10%/năm thì số tiền người ấy phải trả hàng tháng là
(50,000,000-10,000,000)*(1+6*0.1/12)/6=7,000,000

Viết chương trình tính số tiền phải trả hàng tháng của khách mua hàng
Nhập vào: số tiền phải trả, số tiền trả trước, số tháng và lãi suất/năm
In ra: Số tiền phải trả theo tháng

6. Gói cước internet 3G được tính như sau
  • 10000 tiền duy trì dịch vụ hàng tháng
  • 30000 tiền gói cước hàng tháng, khách hàng sẽ được miễn phí dung lượng 300MB
  • Nếu vượt quá 300 MB miễn phí, khách hàng sẽ phải trả 200d/1MB sử dụng
Hãy viết hàm tính tiền của khách hàng theo dung lượng sử dụng hàng tháng (theo MB)
cho mẫu hàm như sau
double tinhtien(long dungluongMB)

7. Viết chương trình nhập vào một mảng số thực (tối đa 100 phần tử), đếm và in ra màn hình các số có giá trị lớn hơn hoặc bằng giá trị x nhập từ bàn phím. Trong trường hợp không có số nào có giá trị thỏa mãn cần in ra thông báo: "không có giá trị hợp lệ trong dãy ban đầu"

8. Chương trình vay vốn mua nhà của một ngân hàng như sau
  • thời gian trả từ 2-20 năm
  • trả dần tiền theo tháng
  • 12 tháng đầu lãi suất vay ưu đãi như sau
    Giá trị khoản vay
    Lãi suất ưu đãi trong 12 tháng đầu của khoản vay
    từ 1 tỷ đồng trở lên
    9.99%
    từ 500 triệu đồng đến dưới 1 tỷ
    10.99%
    dưới 500 triệu đồng
    11.49%
  • Các tháng tiếp (tháng 13 trở đi) theo lãi suất vay còn lại là 12%/năm (tính trên số dư nợ và số tháng còn lại)
VD. Vay mua nhà 2 tỷ, trong 3 năm
Các tháng trong 12 tháng đầu sẽ phải trả là 2 000 000 000 * (1+0.0999)^3/36
Từ tháng 13 trở đi sẽ phải trả tiền hàng tháng là
(2 000 000 000 - (2 000 000 000 * (1+0.0999)^3/36)*12)*(1+0.12)^2/24


18 comments:

  1. Bài 1:
    #inclule
    #include
    #define laisuat 0.1
    int main (void)
    {
    const int sothang 12;
    float giabandau 15000000;
    printf(“So tien phai tra hang thang trong vong 1 nam: %.0f\n”, giabandau*(laisuat+1)/12);
    system(“pause”);
    return 0;
    }

    ReplyDelete
  2. Bài 2:
    #include
    #include
    #define laisuat 0.3
    int main (void)
    {
    const int sothang 36;
    float giabandau 16990000;
    printf(“So tien phai tra hang thang trong vong 36 thang: %.0f\n”, giabandau*(1+laisuat)/36);
    printf(“So tien phai tra them so voi gia goc: %.0f\n”, giabandau*laisuat);
    system(“pause”);
    return 0;
    }

    ReplyDelete
  3. Bài 3:
    #include
    #include
    int main (void)
    {
    int A[10];
    int i, min, max;
    printf(“Nhap vao gia tri cac phan tu cua mang A\n”);
    for(i=0;i<=9;i++)
    {
    printf("A[%d]=",i);
    scanf("%d",&A[i]);
    }
    min = A[0];
    for(i=1;i<10;i++)
    if(A[i]max) max=A[i];
    printf("Max=%d\n",max);
    system("pause");
    return 0;
    }

    ReplyDelete
  4. Bài 4:
    #include
    #include
    int main (void)
    {
    double tienlai[30],x0;
    double laisuat=0.08, laisuatkokyhan=0.025;
    printf("Nhap vao so tien gui ban dau:");
    scanf("%lf",&x0);
    tienlai[0]=x0;
    for(int i=1;i<=29;i++)
    {
    if(i%3==0)

    tienlai[i]=tienlai[i-3]*(1+laisuat*3/12);
    else if(i%3==1)
    tienlai[i]=tienlai[i-1]*(1+laisuatkokyhan*30/360);
    else if(i%3==2)
    tienlai[i]=tienlai[i-2]*(1+laisuatkokyhan*60/360);
    }
    printf("Tien lai theo tung thang la:\n");
    for(int i=0;i<30;i++)
    {
    printf("Thang %d: %.0lf\n",i,tienlai[i]);
    }
    system("pause");
    return 0;
    }

    ReplyDelete
  5. Bài 5:
    #include
    #include
    int main (void)
    {
    float sotienphaitra, sotientratruoc;
    const int sothang
    double laisuat
    printf(“sotienphaitra=”);
    scanf(“%f”,&sotienphaitra);
    printf(“sotientratruoc=”);
    scanf(“%f,&sotientratruoc);
    printf(“sothang=”);
    scanf(%d,&sothang);
    printf(“laisuat=”);
    scanf(%f,&laisuat);
    printf(“So tien phai tra theo thang: %.0f\n”, (sotienphaitra-sotientratruoc)*(1+laisuat*sothang/12)/sothang);
    system(“pause”);
    return 0;
    }

    ReplyDelete
    Replies
    1. bài này có chính xác k cậu? :<

      Delete
    2. k biết, Ngọc đây, a làm thì chú biết là độ chính xác như nào rồi đấy =)))

      Delete
    3. ờ =)) Thư đã sửa đc bài của Ngọc. cơ mà bài 8 thầy k cho câu hỏi, a k hiểu đề bài hỏi gì :'(

      Delete
  6. Bài 7:
    #include
    #include
    int main (void)
    {
    int A[100];
    int i, x;
    printf(“Nhap vao cac phan tu cua mang A\n”);
    {
    if(i>=x)
    printf(“%d\n”, i);
    else
    printf(“Khong co gia tri hop le trong day ban dau\n”);
    for(i=0;i<=99;i++)
    }
    system(“pause”);
    return 0;
    }

    ReplyDelete
  7. Bài 8:
    Bài này làm theo đề hay theo ví dụ ạ?
    -Làm theo ví dụ:
    #include
    #include
    #include
    int main (void)
    {
    int sothang 36;
    float sotienvay 2000000000;
    double laisuat;
    if(sothang<=12) laisuat=0.0999;
    printf(“So tien phai tra moi thang: %.0f\n”, sotienvay*pow((1+0.0999),3)/36);
    if(sothang>12) && sothang<=36 laisuat=0.12;
    printf(“So tien phai tra moi thang: %.0f\n”, sotienvay-((sotienvay*pow((1+0.0999),3)/36)*12)*pow((1+0.12),2)/24);
    system(“pause”);
    return 0;
    }

    - Làm theo đề bài:
    #include
    #include
    #include
    int main (void)
    {
    int sothang, sonam;
    float sotienvay;
    double laisuat;
    {
    if(sotienvay<500000000) && sothang<=12 laisuat=0.1149
    printf(“So tien phai tra moi thang: %.0f\n”), sotienvay*pow((1+0.1149),sonam)/sothang;
    else
    {
    if(sotienvay<1000000000) && sothang<=12 laisuat=0.1099
    printf (“So tien phai tra moi thang: %.0f\n”), sotienvay*pow((1+0.1099),sonam)/sothang;
    else
    laisuat=0.0999
    printf(“So tien phai tra moi thang: %.0f\n”), sotienvay*pow((1+0.0999),sonam)/sothang;
    }
    if(sotienvay<500000000) && sothang>12 laisuat=0.12;
    printf(“So tien phai tra moi thang: %.0f\n”, sotienvay-((sotienvay*pow((1+0.1149),sonam)/sothang)*12)*pow((1+0.12),sonam-1)/sothang-12);
    else
    {
    if(sotienvay<1000000000) && sothang>12 laisuat=0.12
    printf (“So tien phai tra moi thang: %.0f\n”), sotienvay-((sotienvay*pow((1+0.1099),sonam)/sothang)*12)*pow((1+0.12),sonam-1)/sothang-12);
    else
    laisuat=0.12
    printf(“So tien phai tra moi thang: %.0f\n”), sotienvay-((sotienvay*pow((1+0.0999),sonam)/sothang*12)*pow((1+0.12),sonam-1)/sothang-12);
    }
    system(“pause”);
    return 0;
    }

    ReplyDelete
  8. Thầy hướng dẫn em làm bài 6 với ạ

    ReplyDelete
  9. Bài 7 em làm sai mất rồi! Chưa nhập vào x thì làm gì có gì mà so sánh?
    Bài 8: Em hiểu sai ý đề bài rồi, 12 tháng đầu lãi suất thấp, còn từ tháng 13 mới là lãi suất 12%/năm

    ReplyDelete
    Replies
    1. Bài 7 thêm printf(“x=\n”); có được không ạ?
      Bài 8 lằng nhằng quá ạ :( em làm đúng lãi suất của 12 tháng đầu và tháng thứ 13 trở đi theo cái bảng của thầy mà :(
      Bài 6 thầy hướng dẫn e đi ạ :(

      Delete
  10. Bài 6: mặc định trả hàng tháng là 10K + 30K phí
    Nếu dung lượng <=300MB thì ko thu thêm
    Nêu dung lượng >300 MB thì sẽ là 10K + 30K + (dunguong-300)*200

    double tinhtien(long dungluongMB)
    {
    double tiengoc = 40000;
    if(dungluongMB<=300) return tiengoc ;
    else return tiengoc + (dungluongMB-300)*200;
    }

    ReplyDelete
    Replies
    1. Thầy sửa nốt bài 7 vs 8 đi thầy :D

      Delete
  11. Replies
    1. em làm rồi mà, nhưng thầy sửa lại cụ thể chứ e k hiểu :(

      Delete
  12. Thầy ơi bài 8 chính xác là đề bài yêu cầu làm gì ạ :| e đọc mà vẫn chưa hiểu :(

    ReplyDelete