13/2/15

Một số thao tác cơ bản với cấu trúc Số phức

Cấu trúc Phân số và Số phức là 2 cấu trúc đơn giản nhất thường được dùng để minh họa kiểu cấu trúc trong C/C++. Thực hành viết các hàm thao tác với các cấu trúc này sẽ giúp quen dần với kiểu cấu trúc và là bước đệm để học lập trình hướng đối tượng. Các ví dụ sẽ được minh họa bằng ngôn ngữ C++.

Trước khi viết các hàm thao tác trên các cấu trúc Số phức, ta cần khai báo cấu trúc như sau:
struct Complex
{
   float Re; //phần thực - real
   float Im; //phần ảo - imaginary
};

Các hàm thao tác với Complex:

Hiển thị số phức
void OutputComplex(Complex a)
{
   if (a.Re != 0) cout << a.Re;
   if (a.Im != 0)
   {
      if (a.Im == -1) cout << "-i";
      else if (a.Im == 1)
      {
         if (a.Re == 0) cout<<"i";
         else cout<<"+i";
      }
      else
      {
         if (a.Re != 0 && a.Im > 0)
            cout<<"+"<<a.Im<<"i"<<endl;
         else
            cout<<a.Im<<"i"<<endl;
      }
   }
   if (a.Re==0 & a.Im==0)
      cout<<"0"<<endl;
}

Một số thao tác cơ bản với cấu trúc Phân số

Cấu trúc Phân số và Số phức là 2 cấu trúc đơn giản nhất thường được dùng để minh họa kiểu cấu trúc trong C/C++. Thực hành viết các hàm thao tác với các cấu trúc này sẽ giúp quen dần với kiểu cấu trúc và là bước đệm để học lập trình hướng đối tượng. Các ví dụ sẽ được minh họa bằng ngôn ngữ C++.

Trước khi viết các hàm thao tác trên các cấu trúc Phân số, ta cần khai báo cấu trúc như sau:
struct Fraction
{
   int tu;
   int mau;
};

Các thao tác chủ yếu với Fraction:

Xuất một phân số
void OutputFraction(Fraction a)
{
   cout << a.tu <<"/"<<a.mau<<endl;
}

Lấy giá trị phân số
float ValueFraction(Fraction a)
{
   return (float) a.tu / a.mau;
}

Rút gọn phân số
Ta tìm ước chung lớn nhất của tử và mẫu, sau đó lần lượt lấy tử, mẫu chia cho ước chung lớn nhất đó
int UCLN(int a, int b)
{
   if (a < 0) a = -a; //Trường hợp phân số âm
   if (b < 0) b = -b;
   while (a != b)
      a > b ? a -= b : b -= a;
   return a;
}

Fraction ReduceFraction(Fraction a)
{
   int b = UCLN(a.tu, a.mau);
   a.tu /= b;
   a.mau /= b;
   return a;
}

11/2/15

Bảng mã ASCII là gì?

ASCII (American Standard Code for Information Interchange - Chuẩn mã trao đổi thông tin Hoa Kì) là bộ kí tự và bộ mã kí tự dựa trên bảng chữ cái La Tinh được dùng trong tiếng Anh hiện đại và các ngôn ngữ Tây Âu khác. Nó thường được dùng để hiển thị văn bản trong máy tính và các thiết bị thông tin khác. Nó cũng được dùng bởi các thiết bị điều khiển làm việc với văn bản.

Bảng mã ASCII chuẩn có 128 kí tự, gồm các kí tự điều khiển (0 - 31 và 127), các ký tự in được như bảng chữ cái, các dấu (32 - 126). Bảng mã ASCII mở rộng có 255 kí tự gồm 128 ký tự của bảng mã ASCII chuẩn và các chữ có dấu, ký tự trang trí, v.v...

Ở đây giới thiệu bảng mã ASCII mở rộng. Các bảng ASCII mở rộng có thể khác nhau ở các chuẩn khác nhau. Bảng dưới đây tuân theo chuẩn ISO 8859-1, còn gọi là ISO Latin-1, các mã từ 129 - 159 các ký tự mở rộng Microsoft Windows Latin-1 (nguồn: www.ascii-code.com)

10/2/15

Điểm mới của C++ so với C

C++ là một ngôn ngữ được phát triển từ C nên nó thừa hưởng tất cả những đặc tính của ngôn ngữ C. Tuy vậy, C++ cũng có những điểm mới giúp tiện dụng hơn cho người lập trình. Điểm mới quan trọng nhất là C++ đã hỗ trợ hướng đối tượng với các khái niệm class, method,... Bài viết này chủ yếu tập trung vào những điểm khác biệt của C++ so với C.

Chú thích trong C++
C++ cũng dùng 2 kiểu chú thích như C, đó là dấu // cho một dòng và cặp dấu /* .. */ cho một đoạn nhiều dòng. Các cặp dấu /* .. */ không được lồng nhau.
Tuy nhiên, chú thích sau dấu // trong C phải được đặt trên một dòng riêng biệt nhưng trong C++ bạn có thể đặt trên cùng dòng với các câu lệnh.
//Trong C

//Khởi tạo bốn biến.
int a, b, c, d;

//Trong C++

int a, b, c, d; //Khởi tạo bốn biến.

Kiểu dữ liệu và ép kiểu trong C++
C++ có thêm các kiểu dữ liệu mới được dựng sẵn như boolstring.
Ngoài cách ép kiểu số như trong C, người lập trình còn có thể dùng kiểu dữ liệu để ép kiểu như một hàm.
//Trong C

int a = 5;
printf("%f", (float)a);

//Trong C++

int a = 5;
cout << float(a) << endl;

9/2/15

Cách truy cập vào blogspot.com khi bị nhà mạng chặn

Hiện tại có tình trạng tất cả các blog của Blogger (Blogspot) ở tên miền blogspot.com bị một số nhà mạng ở Việt Nam chặn và không thể truy cập được. Nguyên nhân do đâu mình không biết nhưng nó ảnh hưởng không nhỏ đến người dùng mạng Việt Nam bởi họ đã bị chặn truy cập đến một kênh tài nguyên thông tin hữu ích.

Trong bài viết này mình sẽ hướng dẫn các bạn đổi DNS để có thể truy cập vào các blog này.

Đầu tiên, nhấn chuột phải vào biểu tượng mạng dưới Taskbar và chọn Open Network and Sharing Center.

Kế tiếp, chọn Change adapter settings trong cửa sổ Network and Sharing Center.


Trong cửa sổ Network Connections, chuột phải vào kết nối đang sử dụng và chọn Properties.