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




1 nhận xét: