Thứ Bảy, 31 tháng 1, 2015

Cấu trúc lựa chọn: switch case trong C#

Cấu trúc lựa chọn: switch case


trong phần này chúng ta sẽ đi tìm hiều về cấu trúc swich case... đây cũng là một lệnh rẽ nhánh giống với lênh IF-ELSE nên các bạn cần phải hiểu rõ if-else mới có thể hiểu được phần này.

để tiện theo dõi bài viết các bạn hãy TẢI VỀ code và chương trình bài tập mình đã làm sẵn :)


sau đây là nội dung chính:


Cú pháp của lệnh switch hơi đặc biệt một chút. Mục đích của nó là kiểm tra một vài giá trị hằng cho một biểu thức, tương tự với những gì chúng ta làm ở đầu bài này khi liên kết một vài lệnh if và else if với nhau. Dạng thức của nó như sau:

switch (expression) {
case constant1:
block of instructions 1
break;
case constant2:
block of instructions 2
break;
.
.
.
default:
default block of instructions
}

Nó hoạt động theo cách sau: switch tính biểu thức và kiểm tra xem nó có bằng constant1 hay không, nếu đúng thì nó thực hiện block of instructions 1 cho đến khi tìm thấy từ khoá break, sau đó nhảy đến phần cuối của cấu trúc lựa chọn switch.
Còn nếu không, switch sẽ kiểm tra xem biểu thức có bằng constant2 hay không. Nếu đúng nó sẽ thực hiện block of instructions 2 cho đến khi tìm thấy từ khoá break.
Cuối cùng, nếu giá trị biểu thức không bằng bất kì hằng nào được chỉ định ở trên (bạn có thể chỉ định bao nhiêu câu lệnh case tuỳ thích), chương trình sẽ thực hiện các lệnh trong phần default: nếu nó tồn tại vì phần này không bắt buộc phải có.
Hai đoạn mã sau là tương đương:

ví dụ switch và if-else tương đương

swith
switch (x) {
case 1:
printf ("x is 1");
break;
case 2:
printf("x is 2");
break;
default:
printf("value of x unknown");
}
if-else
if (x == 1) {
printf( "x is 1");
}
else if (x == 2) {
printf( "x is 2");
}
else {
printf("value of x unknown");
}

Mình đã nói ở trên rằng cấu trúc của lệnh switch hơi đặc biệt. Chú ý sự tồn tại của lệnh break ở cuối mỗi khối lệnh. Điều này là cần thiết vì nếu không thì sau khi thực hiện block of instructions 1 chương trình sẽ không nhảy đến cuối của lệnh switch mà sẽ thực hiện các khối lệnh tiếp theo cho đến khi nó tìm thấy lệnh break đầu tiên. Điều này khiến cho việc đặt cặp ngoặc nhọn { } trong mỗi trường hợp là không cần thiết và có thể được dùng khi bạn muốn thực hiện một khối lệnh cho nhiều trường hợp khác nhau, ví dụ:
switch (x) {
case 1:
case 2:
case 3:
printf( "x is 1, 2 or 3");
break;
default:
printf( "x is not 1, 2 nor 3");


 
Chú ý rằng lệnh switch chỉ có thể được dùng để so sánh một biểu thức với các hằng. Vì vậy chúng ta không thể đặt các biến (case (n*2):) hay các khoảng (case (1..3):) vì chúng không phải là các hằng hợp lệ.
Nếu bạn cần kiểm tra các khoảng hay nhiều giá trị không phải là hằng số hãy kết hợp các lệnh if và else if






Bài tập luyện tập


1.  Declare two variables x and y. Assign values to these variables. Number x should be printed only if it 

is less than 2000 or greater than 3000, and number y should be printed only if it is between 100 and 500.

dịch: 1. Khai báo hai biến x và y. Gán giá trị cho các biến này. Số x nên chỉ khi nó được in
là ít hơn so với năm 2000 hoặc lớn hơn 3000, và số y sẽ được in chỉ khi nó là giữa 100 và 500.



Phân Tích Từng bước:
  • - khai báo số nguyên x,y
  • - yêu cầu nhập x,y
  • - nếu 2000 < x <3000
  •     - nếu đúng in ra x là số nằm giữa 2000 và 3000
  •     - nếu sai on ra x không phải số nằm giữa 2000 và 3000
  • - nếu 100< y < 500
  •     - nếu đúng in ra y là số nằm giữa 100 và 500
  •     -  nếu sai in ra y không phải số nằm giữa 100 và 500

Sơ đồ khối
kiem-tra-so-nam-giua
kiểm tra số nằm giữa



code:
#include <stdio.h>
#include <stdlib.h>

/* run this program using the console pauser or add your own getch, system("pause") or input loop */

int main(int argc, char *argv[]) {
 
 int x,y;
 printf("vao X, Y :");
 scanf("%d%d",&x,&y);
 
 if (2000<x && x<3000)
 {
  printf("X = %d la so nam giua 2000 va 3000",x);
 }
 else 
 {
  printf("X = %d khong phai la so nam giua 2000 va 3000",x);
 }
 
  if (100<y && y<500)
 {
  printf("\nY = %d la so nam giua 100 va 500",y);
 }
 else 
 {
  printf("\nY = %d khong phai la so nam giua 100 va 500",y);
 }
 
 printf("\n\n\n");
 system("pause");
 return 0;
}


chu-trang-bang-den
màn hình chạy chương trình





Bài 2.  Write a program to show your computer’s capabilities. The user types in a letter of the alphabet and your program should display the corresponding language or package available. Some sample input ans output is given below :



                           Input                                  Output

                           A or a                                Ada
                           B or b                                 Basic
                           C or c                                 COBOL
                           D or d                                dBASE III
                           f or F                                  Fortran
                           p or P                                 Pascal
                           v or V                                Visual C++
Using the ‘switch’ statement to choose and display the appropriate message. Use the
default label to display a message if the input does not match any of the above         
letters.



dịch: Viết chương trình hiển thị khả năng máy tính của bạn. Các loại sử dụng trong một bức thư của bảng chữ cái và các chương trình của bạn sẽ hiển thị các ngôn ngữ tương ứng hoặc gói sẵn. Sản lượng một số mẫu đầu vào ans được đưa ra dưới đây:

                           Input                                  Output
                           A or a                                Ada
                           B or b                                 Basic
                           C or c                                 COBOL
                           D or d                                dBASE III
                           f or F                                  Fortran
                           p or P                                 Pascal
                           v or V                                Visual C++

Sử dụng 'chuyển đổi' tuyên bố lựa chọn và hiển thị thông báo thích hợp. sử dụng nhãn mặc định để hiển thị một thông báo nếu đầu vào không phù hợp với bất kỳ ở trên chữ cái.

Phân tích từng bước:
  • - khai báo x là biến kí tự;
  • - vào x từ bàn phím
  • - witch với x và case là A a B a ....
  • - in ra giá trị tương ứng
  • - với default error.
sơ đồ khối:

in-chuoi-ki-tu
in chuỗi kí tự tương ứng

code:
#include <stdio.h>
#include <stdlib.h>

/* run this program using the console pauser or add your own getch, system("pause") or input loop */

int main(int argc, char *argv[]) {
 char x;
 printf("input: ");
 scanf("%c",&x);
 printf("%c",x);
 printf("\n\n\n");
 
 switch (x)
 { 
 case'a':
 case'A': 
 printf("Ada");
 break;
 case'b':
 case'B': 
 printf("Basic");
 break;
 case'c':
 case'C':
 printf("COBOL"); 
 break;
 case'd':
 case'D': 
 printf("dBASE III");
 break;
 case'f':
 case'F': 
 printf("Fortran");
 break;
 case'p':
 case'P': 
 printf("Pascal");
 break;
 case'v':
 case'V': 
 printf("Visual C++");
 break;
 default:
 printf("error");
 }
 
 printf("\n\n\n");
 system("pause");
 return 0;
}
switch-case
switch case


bài 3.  Accept values in three variables and print the highest value.

3. Chấp nhận giá trị trong ba biến và in giá trị cao nhất.


phân tích từng bước:
  • - khai báo i,j,k,l là biến số nguyên
  • - yêu cầu nhập vào 3 số i, j, k
  • - nếu i > j thì gán j = i
  • - nếu j > k thì gán k = j
  • - kết luận k là số cao to nhất 
sơ đồ khối:
tim-so-lon-nhat
tìm số lớn nhất

code:
#include <stdio.h>
#include <stdlib.h>

/* run this program using the console pauser or add your own getch, system("pause") or input loop */

int main(int argc, char *argv[]) {
 
 int i,j,k,l;
 printf("Nhap vao 3 so : ");
 scanf("%d%d%d",&i,&j,&k);
 if (i>j)
 {
  j=i;
 }
 if (j>k)
 {
  k=j;
 }
 
 printf("\nso lon nhat la %d",k);

 printf("\n\n\n");
 system("pause");
 return 0;
}


tim-so-lon-nhat
Tìm số lớn nhất



Kết Luận: dù là if-else hay switch - case thì cũng cho ra hướng giải quyết và kết quả như nhau... nên các bạn hãy dùng cấu trúc nào mà theo các bạn dễ dùng nhất... muốn nhanh gọn trong trường hợp so sánh nhiều thì dùng switch case còn không thì cứ if-else thì cũng chẳng làm sao cả



Thứ Sáu, 30 tháng 1, 2015

Cấu trúc lệnh rẽ nhánh IF ELSE trong C#

Cấu trúc lệnh rẽ nhánh IF ELSE.


đây là bài viết về lệnh rẽ nhánh IF nếu các bạn chưa có kiến thức về các lệnh vào ra và lệnh gán thì các bạn có thể tham khảo TẠI ĐÂY để có thể nắm chắc hơn kiến thức trong bài này

các bạn có thể tải code và bài làm sẵn của những bài tập trong bài viết này TẠI ĐÂY . chúc các bạn có 1 buổi học tập vui vẻ

chúng ta sẽ đi vào phần lý thuyết với cấu trúc rẽ nhánh if else sau đây:

Cấu trúc này được dùng khi một lệnh hay một khối lệnh chỉ được thực hiện khi một điều kiện nào đó thoả mãn. Dạng của nó như sau:
if (condition) statement
trong đó condition là biểu thức sẽ được tính toán. Nếu điều kiện đó là true, statement được thực hiện. Nếu không statement bị bỏ qua (không thực hiện) và chương trình tiếp tục thực hiện lệnh tiếp sau cấu trúc điều kiện.
Ví dụ, đoạn mã sau đây sẽ viết x is 100 chỉ khi biến x chứa giá trị 100:

if (x == 100)
printf("x = 100");

Nếu chúng ta muốn có hơn một lệnh được thực hiện trong trường hợp condition là true chúng ta có thể chỉ định một khối lệnh bằng cách sử dụng một cặp ngoặc nhọn { }:

if (x == 100)
{
printf("x is %d",x);
}

Chúng ta cũng có thể chỉ định điều gì sẽ xảy ra nếu điều kiện không được thoả mãn bằng cách sửu dụng từ khoá else. Nó được sử dụng cùng với if như sau:
if (condition) statement1 else statement2
Ví dụ:

if (x == 100)
printf("x is 100");
else
printf("x is not 100");

Cấu trúc if + else có thể được móc nối để kiểm tra nhiều giá trị. Ví dụ sau đây sẽ kiểm tra xem giá trị chứa trong biến x là dương, âm hay bằng không.
if (x > 0) printf("x is positive"); else 
if (x < 0) printf("x is negative"); else printf( "x is 0");

Các bài luyện tập:


1.  Write a program that accepts two numbers a and b and checks whether or not a is divisible by b.


dịch: viết chương trình nhập vào 2 số a và b kiểm tra xem a có chia hết cho b hay không


Phân Tích từng bước:
  • - nhập vào 2 số a và b
  • - kiểm tra số dư của a chia cho b có bằng 0 hay không
  • - nếu có hiện kết quả thông báo a chia hết cho b
  • - nếu không thì hiện kết quả thông báo a không chia hết cho b
sơ đồ khối

kiem-tra-2-so-chia-het
kiểm tra a chia hết cho b

code:


#include <stdio.h>
#include <stdlib.h>

/* run this program using the console pauser or add your own getch, system("pause") or input loop */

int main(int argc, char *argv[]) {
 int a,b;
 printf("day la chuong trinh kiem tra 2 so a va b co chia het cho nhau hay khong a > b \n\n\n Xin moi ban nhap a : ");
 scanf("%d",&a);
 printf("\n Xin Moi ban nhap b: ");
 scanf("%d",&b);
 if (0==a%b)
 {
  printf("\n\n A co chia het cho B");
 }
 else
 {
  printf ("\n\n A khong chia het cho B");
}
 
 
 printf("\n\n\n");
 system("pause");
 return 0;
}


a-khong-chia-het-cho-b
kết quả của a không chia hết cho b

a-chia-het-cho-b
kết quá a chia hết cho b



Bài 2:  Write a program to accept 2 numbers and tell whether the product of the two numbers is equal to or greater than 1000.

dịch : Viết một chương trình để chấp nhận 2 con số và cho biết các sản phẩm của hai số là bằng hoặc lớn hơn 1000.

Phân tích từng bước:


  • - nhập vào 2 số a và b
  • - tính tổng 2 số
  • - so sánh tổng với 1000 
  • - nếu lớn hơn hoặc bằng hiện kết quả tổng a + b lớn hơn 1000
  • - nếu nhỏ hơn thì hiện kết quả a + b nhỏ hơn 1000
  • - tính tích 2 số 
  • - so sánh tích với 1000
  • - nếu lớn hơn 1000 thì hiện kết quả tích a * b lớn hơn 1000
  • - nếu nhỏ hơn 1000 thì
sơ đồ khối:
kiem-tra-tich
kiểm tra tích 

code:

#include <stdio.h>
#include <stdlib.h>

/* run this program using the console pauser or add your own getch, system("pause") or input loop */

int main(int argc, char *argv[]) {
 
 int a,b;
 printf("A = ");
 scanf("%d",&a);
 printf("B = ");
 scanf("%d",&b);
 
 printf("\n\n\n");
 
 if (a+b >= 1000)
 {
  printf("tong %d + %d = %d lon hon hoac bang 1000",a,b,a+b);
 }
 else
 {
  printf("tong %d + %d = %d be hon 1000",a,b,a+b);  
 } 

 printf("\n\n\n");

 if (a*b >= 1000)
 {
  printf("tich %d x %d = %d lon hon hoac bang 1000",a,b,a*b);
 }
 else
 {
  printf("tich %d x %d = %d be hon 1000",a,b,a*b);  
 } 


 printf("\n\n\n");
 system("pause");
 return 0;
}






so-sanh-tong-tich
so sánh tổng tích





Difference is equal to value <number of value entered>

If the difference is not equal to any of the values entered, display the following message:

Difference is not equal to any of the values entered

dịch. Viết một chương trình để chấp nhận 2 con số. Tính toán sự khác biệt giữa hai giá trị. Nếu sự khác biệt bằng bất kỳ giá trị nhập vào ban đầu, sau đó hiển thị thông báo sau:


Sự khác biệt là bằng với giá trị <số giá trị nhập vào>

Nếu sự khác biệt là không bằng bất kỳ giá trị nhập vào, hiển thị thông báo sau:

Sự khác biệt là không bằng bất kỳ giá trị được nhập


Phân Tích Từng Bước:

  • - khai báo 3 biến nguyên a,b,c:
  • - nhập và đọc 2 số a và b là số bị trừ và số trừ:
  • - gán c = a - b:
  • - so sánh c với a
  • - nếu c bằng a thì in ra ta có c = a
  • - nếu không thì so sánh c với b
  •          - nếu c= b thì kết luận c=b
  •          - nếu không c không bằng a cũng không bằng b
sơ đồ khối:
so-sanh-hieu-so
so sánh hiệu số


code:


#include <stdio.h>
#include <stdlib.h>

/* run this program using the console pauser or add your own getch, system("pause") or input loop */

int main(int argc, char *argv[]) {
 int a,b,c;
 printf ("Vao so thu nhat a = ");
 scanf("%d",&a);
 printf("vao so thu 2 b = ");
 scanf("%d",&b); 
 c = a - b; 
// printf ("%d %d",a,b); 
 if (c == a)
 {
  printf("ta co c = a = a - b = %d",c);
 }
 else
 {
  if (c == b)
  {
   printf ("ta co c = b = a -b = %d ",c);
  }
  else
  {
   printf ("ta co c = %d khac a khac b",c);
  }

 }  
 printf("\n\n\n");
 system("pause");
 return 0;
}




so-sanh-hieu-so-bi-tru-so-tru
chương trình so sánh hiệu số với số bị trừ và số trừ





 4.  Montek company gives allowances to its employees depending on their grade as follows :


   Grade                                 Allowance
  A                                       300
  B                                       250
      Others                               100      

Calculate the salary at the end of the month.   (Accept Salary and Grade from the user )



4. Công ty Montek cho phụ cấp cho nhân viên của mình tùy thuộc vào lớp của mình như sau:

   Grade                                 Allowance
   A                                         300
   B                                         250
      Others                                 100       

Tính lương vào cuối tháng. (Chấp nhận lương và hạng từ người sử dụng)


Phân tích từng bước: 

  • - nhập vào i là số grade
  • - xét i == a
  •     - nếu đúng thì in ra 300
  •     - nếu sai xét i==b
  •          - nếu đúng in ra 250
  •          - nếu sai in ra 100
sơ đồ khối

in-ra-so-tuong-ung
in ra số tương ứng


code:
#include <stdio.h>
#include <stdlib.h>

/* run this program using the console pauser or add your own getch, system("pause") or input loop */

int main(int argc, char *argv[]) { 
 printf (" what grade (a,b or c): ");
 char i;
 scanf("%c",&i);
 if (i == 'a')
 {
  printf("Allowance = 300");
 }
 else{ 
  if (i == 'b')
  {
   printf("Allowance = 250");
  }
  else
  {
   printf("allwance = 100");
  }
  }
  
 printf("\n\n\n");
 system("pause");
 return 0;
}

tinh-phu-cap
tính phụ cấp






Bài 5.  Write a program to evaluate the Grade of a student for the following constraints

If marks >75 – grade A
If 60< marks < 75 – grade B
If 45<marks<60 – grade C
If 35<marks<45 - grade D
If marks < 35 – grade E


5. Viết chương trình để đánh giá các lớp của một học sinh vì các khó khăn sau đây

Nếu dấu> 75 - lớp A
Nếu 60 <dấu <75 - lớp B
Nếu 45 <dấu <60 - lớp C
Nếu 35 <dấu <45 - lớp D
Nếu các dấu <35 - lớp E



Phân tích từng bước:

  • - khai báo biến số nguyên i
  • - vào i 
  • - kiểm tra i > 75
  •      - nếu đúng in ra mark = A
  •      - nếu sai kiểm tra i> 60
  •           - nếu đúng in ra mark = B
  •           - nếu sai kiểm tra i > 45
  •                - nếu đúng in ra mark = C
  •                - nếu sai kiểm tra i>35
  •                       - nếu đúng in ra mark = D
  •                       - nếu sai in ra mark = E
sơ đồ khối
tim-mark
Mark = ?


code:
#include <stdio.h>
#include <stdlib.h>

/* run this program using the console pauser or add your own getch, system("pause") or input loop */

int main(int argc, char *argv[]) {
 
 printf ("Mark = ");
 int i;
 scanf("%d",&i);
 if (i > 75)
 {
  printf(" grade A");
 }
 else 
 {
  if (i > 60)
  {
   printf("grade B");
  }
  else
  {
   if (i > 45)
   {
    printf("grade C");
   }
   else
   {
    if (i>35)
    {
     printf ("grade D");
    }
    else
    {
     printf ("grade E");
    }
   }
  }
 } 
 printf("\n\n\n");
 system("pause");
 return 0;
}

xep-lop-cho-hoc-sinh
xếp lớp cho học sinh




Kết luận: đây là lý thuyết và những bài tập về lệnh rẽ nhanh if else... cũng rất khó để hiểu được nhưng khi đã hiểu thì lại cảm thấy rất dễ :) mong các bạn sau khi đọc xong bài của mình sẽ nắm được bài học 1 cách tốt nhất




Xử lý nhập chuỗi kí tự với gets() và puts() - input string with gets()/puts() trong C#

Xử lý nhập chuỗi kí tự với gets() và puts() - input string with gets()/puts()

Nếu các bạn đã biết về các lệnh vào ra printf  và scanf thì bây giờ mình sẽ giới thiệu tới gets puts, về cơ bản thì cũng gần tương tự như printf và scanf những khi sử dụng hàm scanf để nhập dữ liệu cho biến chuỗi thì lúc này ta chỉ có thể nhập được một chuỗi không có dấu khoảng trắng. ngoài ra hàm cget() (trong conio.h) cũng được sử dụng để nhập chuỗi.

 Lý Thuyết

– Sử dụng hàm gets() là cách đơn giản nhất để nhập một chuỗi thông qua thiết bị nhập chuẩn. Các ký tự sẽ được nhập vào cho đến khi nhấn phím Enter. Hàm gets() thay thế ký tự kết thúc trở về đầu dòng ‘\n’ bằng ký tự ”. Cú pháp hàm như sau:

code:
gets(str);


– Trong đó str là một mảng ký tự đã được khai báo.
– Tương tự, hàm puts() được sử dụng để hiển thị một chuỗi ra thiết bị xuất chuẩn. Ký tự xuống dòng sẽ kết thúc việc xuất chuỗi. Cú pháp hàm như sau
code:


puts(str);


– Trong đó str là một mảng ký tự đã được khai báo và khởi tạo.

một số bài tập:

để tiện theo dõi những bài tập sau đây các bạn có thể tải tài code và bài giải mình làm sẵn TẠI ĐÂY.


1.   Write a program to accept and add three numbers.

Dịch: viết 1 chương trình chấp nhận và thêm 3 số.

Phân tích từng bước:


  • - Khai báo kiểu dữ liệu số nguyên cho i,j,k;
  • - vào lần lượt từng số với lệnh printf và scanf.
  • - in ra màn hình với lệnh printf 3 số vừa nhập vào

#include <stdio.h>
#include <stdlib.h>

/* run this program using the console pauser or add your own getch, system("pause") or input loop */

int main(int argc, char *argv[]) {
 int i,j,k;
 printf("nhap vao so thu 1:");
 scanf("%d",&i);
 printf("nhap vao so thu 2:");
 scanf("%d",&j);
 printf("nhap vao so thu 3:");
 scanf("%d",&k);
 printf("so nhap vao la : %d, : %d, : %d",i,j,k);
 
 
 printf("\n\n\n");
 system("pause");
 return 0;
 
}



in-ra-man-hinh-3-so-vua-nhap
kết quả in ra màn hình 3 số vừa nhập





Bài 2: For the following values, write a program to evaluate the expression


z = a*b+(c/d)-e*f ;



  a=10

  b=7

  c=15.75

  d=4

  e=2

  f=5.6      


dịch: đối với các giá trị sau... viết chương trình để thực hiện biểu thức:

z = a*b+(c/d)-e*f ;


trong đó
  a=10
  b=7
  c=15.75
  d=4
  e=2
  f=5.6     


phân tích từng bước:
- khai báo z,a,b,c,d,e,f là biến số thực
- in ra màn hình dòng lệnh nhập vào a,b,c,d,e,f
- đọc các số từ màn hình
- tính z theo công thức z = a*b+(c/d)-e*f ;
- in Z ra màn hình.

#include <stdio.h>
#include <stdlib.h>

/* run this program using the console pauser or add your own getch, system("pause") or input loop */

int main(int argc, char *argv[]) {
 printf("nhap vao cac so a,b,c,d,e.f: ");
 float z,a,b,c,d,e,f;
 scanf("%f%f%%f%f%f",&a,&b,&c,&d,&e,&f);  
 printf ("\nz = a*b+(c/d)-e*f =  %0.2f ",a*b+(c/d)-e*f); 
 printf("\n\n\n");
 system("pause");
 return 0;
 
}





tinh-z-a-b-c-d-e-f
tính Z = a*b + (c/d) - e*f




Bài 3. Write a program to evaluate the area and perimeter of the rectangle.

dịch: viết chương trình tính diện tích và chu vi hình chữ nhật.

Phân tích từng bước:

  • - định dang i,j là biến nguyên. 
  • - nhập và đọc i,j là các cạnh chiều dài và rộng của hình chữ nhật cần tính. 
  • - ra màn hình diện tích hình chữ nhật 
  • - ra màn hình chu vi hình chữ nhật


#include <stdio.h>
#include <stdlib.h>

/* run this program using the console pauser or add your own getch, system("pause") or input loop */

int main(int argc, char *argv[]) {
 int i,j;
 printf("nhap chieu dai hinh chu nhat = ");
 scanf("%d",&i);
 printf("nhap chieu rong hinh chu nhat = ");
 scanf("%d",&j);
 printf("dien tich hinh chu nhat la: %d, chu vi hinh chu nhat la: %d",i*j,i+i+j+j); 
 printf("\n\n\n");
 system("pause");
 return 0; 
}

dien-tic-va-chu-vi-hinh-chu-nhat
tính diện tích và chu vi hình chữ nhật

Bài 4.  Write a program to evaluate the volume of a cylinder.

dịch : viết chương trình tính dung tích của 1 xilanh

Phân tích từng bước:
  • - khai báo số nguyên i,j
  • - yêu cầu nhập đường kính vào chiều cao của xi lanh
  • - vào chiều cao và đường kính với i và j là số nguyên
  • - ra màn hình thể tích của xi lanh (thể tích hình trụ bằng diện tích đáy nhân chiều cao)


#include <stdio.h>
#include <stdlib.h>

/* run this program using the console pauser or add your own getch, system("pause") or input loop */

int main(int argc, char *argv[]) {
 int i,j;
 printf("nhap duong kinh day cua xilanh: ");
 scanf("%d",&i);
 printf("nhap chieu cao cua xilanh: ");
 scanf("%d",&j);
 printf("dung tich cua xilanh hinh tru la: %0.2f",3.14*i*i/2*j);
 
 printf("\n\n\n");
 system("pause");
 return 0; 
}


tinh-the-tich-xi-lanh-hinh-tru
tính thể tích hình trụ

5.  Write a program to evaluate the net salary of an employee given the following constraints

Basic salary : $ 12000
DA : 12% of Basic salary
HRA : $150
TA : $120
Others : $450
Tax cuts – a) PF :14% of Basic salary and b) IT: 15% of Basic salary
Net Salary = Basic Salary + DA + HRA + TA + Others – (PF + IT)

dịch: viết 1 chương trình để đánh giá mực lương của nhân viên theo các số liệu sau

Basic salary : $ 12000
DA : 12% of Basic salary
HRA : $150
TA : $120
Others : $450
Tax cuts – a) PF :14% of Basic salary and b) IT: 15% of Basic salary
Net Salary = Basic Salary + DA + HRA + TA + Others – (PF + IT)

Phân tích từng bước :
  • - khai báo a,b,c,d là biến số nguyên:
  • - khai báo i,j,k,l là biến số thực
  • - vào basic salary
  • - đọc basic salary với biến a
  • - tính DA = 12% basic salary
  • - vào HRA với biến b
  • - vào TA với biến c
  • - vào other với biến d
  • - tính PF = 14% basic salary
  • - tính IT = 15% basic salary
  • - tính Net Salary = Basic Salary + DA + HRA + TA + Others – (PF + IT)
  • - đưa ra màn hình kết quả cuối cùng của net salary



#include <stdio.h>
#include <stdlib.h>

/* run this program using the console pauser or add your own getch, system("pause") or input loop */

int main(int argc, char *argv[]) {
 int a,b,c,d;
 float i,j,k,l;
 printf("basic salary = ");
 scanf("%d",&a);
 printf("DA = %0.2f",0.12*a);
 printf("\nHRA = ");
 scanf("%d",&b);
 printf("TA = ");
 scanf("%d",&c);
 printf("other = ");
 scanf("%d",&d);
 printf("PF = %0.2f\nIT= %.2f",0.14*a,0.15*a);
 //Net Salary = Basic Salary + DA + HRA + TA + Others – (PF + IT)
 printf("\nNet Salary=BasicSalary+DA+HRA+TA+Others-(PF+IT)= %0.2f",a+0.12*a+b+c+d-0.14*a-0.15-a);
 
 printf("\n\n\n");
 system("pause");
 return 0;
 
}



net-salary
Tính net salary

Nhận xét: đây là những kiến thức căn bàn về nhập xuất dữ liệu với số, kí tự, chuỗi kí tự rất quan trọng và chúng ta cần phải nắm rõ mới có thể đi tiếp các bài sau.