Chương 5.1 – Các cấu trúc điều khiển (IF- else,Switch,While…)

 

Lệnh đơn và lệnh phức

Lệnh đơn
Một biểu thức kiểu như: a =5; a+ =6;… trở thành câu lệnh khi có đi kèm theo dấu chấm phẩy (;) phía cuối câu.
            Ví dụ:
a = 5;
a+=6;
Lệnh phức hay khối lệnh
Lệnh phức là một dãy các các câu lệnh được bao bởi cặp dấu ngoặc nhọn {}.
Ví dụ 1:
            {
                S+=(i*i);
                i++;
            }
Ví dụ 2:
            {
                cout<<a[i][j]<<”  “;
                if (j==i)
                        cout<<“\n”;
            }
Cấu trúc điều kiện if … else
Dạng khuyết
If  (biểu thức điều kiện)
    {
        Khối lệnh;
    }
Cách hoạt động: Đầu tiên, chương trình kiểm tra biểu thức điều kiện sau if. Nếu biểu thức điều kiện đúng thì các câu lệnh trong khối lệnh trong cấu trúc if được thực hiện. Ngược lại, chương trình sẽ thoát ra khỏi cấu trúc if và thực hiện các lệnh tiếp theo sau cấu trúc if.
Biểu diễn dưới dạng lưu đồ cách hoạt động của cấu trúc if:
 
Dạng đầy đủ
if (biểu thức điều kiện)
    {
        Khối lệnh 1;
    }
else
    {
        Khối lệnh 2;
    }
Cách hoạt động: Đầu tiên, chương trình kiểm tra biểu thức điều kiện sau if, nếu biểu thức điều kiện đúng thì thực hiện các câu lệnh trong khối lệnh 1. Ngược lại, nếu biểu thức điều kiện sai sẽ thực hiện các câu lệnh trong khối lệnh 2.
Biểu diễn dưới dạng lưu đồ:
Ví dụ : Giải phương trình bậc 1: ax + b = 0
#include<iostream.h>
#include<math.h>
int main()
        {

 

int  a,b;
float x;
cout<<“Nhap a va b:”<<“\n”;
cin>>a>>b;
if (a==0 && b==0)
    cout<<“Bat phuong trinh co vo so nghiem”;
if (a==0 && b!=0)
    cout<<“Bat phuong trinh vo nghiem”;
if (a!=0)
    cout<<“Bat phuong trinh co nghiem x = “<<-b/a;
        }
Cấu trúc lựa chọn switch … case
Cấu trúc switch..case cho phép lựa chọn một nhánh trong nhiều khả năng tùy vào điều kiện xảy ra.
                       
             Cú pháp:

switch (Biểu thức nguyên)

            {
                case n1: Khối lệnh 1;
                case n2: Khối lệnh 2;
                …
                case nk: Khối lệnh k;
                [default: Khối lệnh; ]
            }
Trong đó:
ni là các số nguyên, hằng ký tự hoặc biểu thức hằng. Các ni cần có giá trị khác nhau.
Đoạn chương trình nằm trong cặp ngoặc nhọn {} là thân của switch.
default, case là các từ khóa. default là thành phần không bắt buộc.
Cách hoạt động:
Đầu tiên <biểu thức nguyên> được tính, sau đó lần lượt so sánh giá trị của <bt nguyên> với các biểu thức hằng <n1>, <n2>,..<nk>.
Nếu giá trị của một biểu thức hằng thứ k trong các biểu thức này trùng với giá trị của <biểu thức nguyên> thì chương trình sẽ thực hiện các lệnh bắt đầu từ khối lệnh k và tiếp tục các lệnh phía dưới cho tới khi:
+ Gặp câu lệnh : break (tất nhiên nếu gặp các câu lệnh return, exit thì cũng kết thúc).
+ Gặp dấu đóng móc } hết cấu trúc switch.
Nếu <biểu thức nguyên> không trùng với giá trị nào trong các biểu thức hằng thì khối lệnh (các lệnh sau mệnh đề default nếu có) sẽ được thực hiện, rồi ra khỏi cấu trúc switch.
Ví dụ 1: Sử dụng cấu trúc switch..case, hãy viết chương trình: nếu nhập vào là ‘P’ hoăc ‘p’ thì hiển thị dòng chữ “Chao cac ban”
#include<iostream.h>
main()
        {
            char ch;
            cout<<“Nhap vao ky tu X hoac x: “; cin>>ch;
            switch (ch)
                {
                    case ‘x’:
                    case ‘X’:  
                    cout<<“Chao cac ban”;
                }
        }
Ví dụ 2: Viết chương trình sử dụng cấu trúc switch..case, nhập 2 số nguyên x, y từ bàn phím, chương trình đưa ra lựa chọn:
+ Nếu người sử dụng nhập ‘+’: Thực hiện: x + y;
+ Nếu người sử dụng nhập ‘-‘: Thực hiện: x – y;
+ Nếu người sử dụng nhập ‘*’: Thực hiện: x * y;
+ Nếu người sử dụng nhập ‘/‘: Thực hiện: x / y;
Nếu người sử dụng không nhập một trong các toán tử trên thì đưa ra dòng thông báo: “Khong hieu toan tu nay!”.
#include <iostream.h>
 int main()
 {
    int X;
    cout<< “Nhap vao so thu nhat:”;
    cin>>X;
    int Y;
    cout<< “Nhap vao so thu hai:”;
    cin>>Y;
    char Op;
    cout<<“Nhap vao toan tu (+-*/):”;
    cin>>Op;
    switch(Op)
    {
case ‘+’:
            cout<<“Ket qua:”<<X+Y<<“\n”;
            break;
case ‘-‘:
            cout<<“Ket qua:”<<X-Y<<“\n”;
            break;
case ‘*’:
            cout<<“Ket qua:”<<long(X)*Y<<“\n”;
            break;
case ‘/’:
            if (Y)
            cout<<“Ket qua:”<<float(X)/Y<<“\n”;
            else
            cout<<“Khong the chia duoc!” <<“\n”;
            break;
            default :
            cout<<“Khong hieu toan tu nay!”<<“\n”;
             }
             return 0;
 }

 

Advertisements
By dungkcna113 Posted in C/C++

Trả lời

Mời bạn điền thông tin vào ô dưới đây hoặc kích vào một biểu tượng để đăng nhập:

WordPress.com Logo

Bạn đang bình luận bằng tài khoản WordPress.com Đăng xuất / Thay đổi )

Twitter picture

Bạn đang bình luận bằng tài khoản Twitter Đăng xuất / Thay đổi )

Facebook photo

Bạn đang bình luận bằng tài khoản Facebook Đăng xuất / Thay đổi )

Google+ photo

Bạn đang bình luận bằng tài khoản Google+ Đăng xuất / Thay đổi )

Connecting to %s