Download Visual Studio

You can download Visual Studio here.

Download Dev C++

You can download Dev C++ here.

Download Python

You can download Python here.

Vài điều cho các bạn trẻ

Quà tặng cuộc sống.

Thứ Hai, 26 tháng 6, 2017

[C++] Bài 2: Vào ra cơ bản trong C++

1. Hàm ra cout

Trong C++, để hiện thị một nội dung trên DOS, ta cử dụng câu lệnh:
cout<<"Nội dung cần in ra";
Nội dung trong dấu nháy kép là một chuỗi ký tự mà người dùng muốn in ra trên giao diện DOS.
Ví dụ:
cout<<"Hello World!!";
Để sử dụng câu lệnh cout  ta cần khai báo các thư viện chuẩn sau:
#include<iostream>  //thư viện vào ra chuẩn
using namespace std;//không gian tên chuẩn (nếu không sử dụng câu lệnh này, ta cần viết std::cout)
Trong hàm ra chuẩn của C++ ta có các điều cần lưu ý như:
"\t" tương đương với việc sử dụng phím "tab" trong word.
"\n" tương đương với việc xuống dòng (enter) trong word, nhìn chung ta có thể coi "\n""endl" là như nhau. Cả hai đều hiển thị xuống dòng trong khi thực hiện lệnh, điểm khác nhau đó là cout<<endl thì tương đương với câu lệnh cout<<"\n"<<flush; Trong khuôn khổ bài học thứ 2 căn bản về C++, tác giả chỉ giải thích đơn giản như sau: "\n" chịu trách nhiệm xuống dòng còn "endl" sẽ xoá các thứ không cần thiết để xuống dòng in ra. Nói cách khác, ta có thể sử dụng "\n" trong các dòng và sử dụng "endl" ở cuối đoạn. Về sự khác nhau như thế nào và cụ thể ra sao, tác giả sẽ dành cho các bài viết sau nếu có liên quan.
Việc in một giá trị cụ thể (Không phải là xâu kí tự alphabet) ta có thể in trực tiếp giá trị đó ra màn hình mà không cần đặt trong dấu nháy.
Ví dụ:
cout<<2017;
Khi không sử dụng dấu nháy kép để in ra, C++ ngầm hiểu đó là biến có mang giá trị và sẽ in giá trị của biến có tên đó ra màn hình.
Ví dụ:
cout<<"Hello"; //kết quả in ra màn hình sẽ là Hello
cout<<Hello: //Kết quả in ra màn hình sẽ là giá trị được lưu trong biến có tên Hello.
Chương trình mẫu:
#include <iostream>

int main()
{
        int Hello = 2017;//Khai báo biến Hello (sẽ nói ở bài hằng và biến)
        std::cout<<"Hello\n";//in ra màn hình chữ Hello
        std::cout<<Hello<<"\n";//in ra màn hình giá trị của biến Hello (2017)
        std::cout<<2018<<std::endl;//in ra màn hình số 2018
        return 0;
 }

Kết quả thu được trên Console như sau:



2. Hàm vào cin

Để nhập vào một giá trị, một ký tự hoặc một chuỗi ký tự nào đó ta có thể sử dụng hàm vào chuẩn trong C++ đó là cin. Cũng như cout, cin được khai báo bởi câu lệnh #include<iostream> và using namespace std;
cin nhập giá trị thông qua một biến được khai báo trước đó.
Ví dụ:
int tuoi;
cin>>tuoi;

cin cũng có thể nhập được nhiều giá trị cùng một lúc tương tự như cout xuất nhiều giá trị cùng lúc.
Ví dụ:
int tuoi,ngay,thang;
cin>>tuoi>>ngay>>thang;

Việc nhập giữa các biến có thể kết thúc bằng phím SPACE hoặc ENTER. Và ENTER là kết thúc nhập.
Với việc nhập xâu ký tự, ta có thể gặp một vài vấn đề chính như sau:
Ví dụ:
string ten;
cout<<"ho va ten"<<endl;
cin>>ten;
cout<<"Xin chao "<<ten;

Với việc sử dụng code như trên hình, tác giả đã nhập vào tên của mình được phân cách với nhau bởi dấu cách. Tuy nhiên kết quả nhận được là:


Ta có thể thấy ở đây kết quả in ra màn hình chỉ là "Tran", hoàn toàn không giống như những gì mà ta mong đợi. Điều này là do cin bị phân cách bởi các khoảng trắng nên nó chỉ lấy được các ký tự gần nhất trước khoảng trắng.
Để giải quyết vấn đề này, trong C++ ta có thể sử dụng hàm getline như sau:
getline(cin,ten);
Nhờ có hàm getline này mà sau khi bị phân cách bởi khoảng trắng, ta vẫn có thể lấy được toàn bộ dữ liệu từ cin ra màn hình:



Tuy nhiên bên cạnh đó thì getline vẫn tỏ ra khá "NGU", thật ra là nó nhiệt tình quá nên nó sẽ làm những việc không cần thiết.
Ví dụ:
int tuoi;
string ten;
cout<<"ban bao nhieu tuoi"<<endl;
cin>>tuoi;
cout<<"ho va ten"<<endl;
cin>>ten;
cout<<"Xin chao "<<ten;

 Và kết quả là:
 


Ta  có thể thấy kết quả lại không như mong muốn. Để giải thích điều này ta lại "đổ tội" cho thằng getline thôi :)))
Khi ta nhập tuổi vào và kết thúc bằng phím ENTER thì mặc định trong bộ đệm của cin nó đã mang ký tự ENTER rồi. Do đó, nhờ sự nhiệt tình không cần thiết của thanh niên getline mà ở cin tiếp theo ta nhận ngay ký tự ENTER vào và quá trình nhập kết thúc ở đây.
Để giải quyết vấn đề này, ta lại cần một hàm nữa đó là fflush(stdin); Hàm này có chức năng xoá đi bộ đệm đã có của cin và đưa cho ta một bộ đệm trống trước khi thực hiện câu lệnh getline(cin,ten);.



Về các vấn đề khác của xâu, tác giả sẽ đề cập thêm ở các phần sau. Trong khuôn khổ bài này, tác giả chỉ muốn đưa ra những điều căn bản nhất về cin và cout, các lỗi hay gặp với cin mà thôi.

Thứ Ba, 20 tháng 6, 2017

[C++] Bài 1: Hello World!!

 Sử dụng chương trình sau biên dịch trên Dev C++:
1. #include <iostream>
2. using namespace std;
3. int main()
  {
5.     cout<<"Hello World!!"<<endl;
6.     return 0;

  }

<code>
include
</code>

Sau khi biên dịch ta được kết quả như sau:
Ta đi vào cụ thể từng câu lệnh một.
Biên dịch chương trình Hello World!!
+ Câu lệnh thứ nhất: #include <iostream>, câu lệnh này để khai báo thư viện vào ra của C++, iostream có thể hiểu nôm na đó chính là input output stream - dòng vào ra. Tương tự, trong C, câu lệnh ta thường khai báo khi sử dụng đó là #include <stdio.h> là lệnh khai báo thư viện vào ra chuẩn cho chương trình hay standard input output.
+ Câu lệnh thứ 2: using namespace std; câu lệnh này có thể có hoặc không trong C++, mục đích của câu lệnh này là để khai báo việc sử dụng thư viện không gian tên chuẩn trong C++. Việc sử dụng câu lệnh này giúp chúng ta có thể sử dụng các tên chuẩn trong C++ như cin, cout, endl,... Tuy nhiên, thư viện namespace được cho là rất "Ngu" (đứa bạn mình hay nói thế :) ) do không gian tên khá ít và không đủ để sử dụng (đặc biệt nếu bạn nào dùng Qt), nhưng về cơ bản, việc khai báo thư viện tên chuẩn này rất tiện lợi trong lập trình cơ bản về C++. Nếu không khai báo thư viện namespace std ta vẫn có thể dùng câu lệnh cout bình thường, tuy nhiên cần khai báo thêm như sau std::cout.
+ Câu lệnh thứ 3: int main(), câu lệnh này chứa hàm chính của chương trình, mỗi chương trình C++ có một hàm main duy nhất để thực hiện các hoạt động của các hàm và của cả chương trình. Hàm main thường để trả về 0 khi chương trình hoạt động không có lỗi gì xảy ra.
+ Câu lệnh thứ 5: cout<<"Hello World!!"<<endl; câu lệnh này thực hiện in ra kết quả của chương trình huyền thoại "Hello World!!", cout là câu lệnh in chuẩn trong C++ được khai báo không gian tên trên câu lệnh thứ 2, cout trong C++ tương ứng với printf trong C, sau lệnh cout là 2 dấu "<<" kèm theo nội dung người dùng muốn in ra được đặt trong dấu nháy kép "", endl là cú pháp xuống dòng của C++ được khai báo nhờ không gian tên chuẩn namespace, nếu không sử dụng namespace std; ta vẫn dùng được endl bình thường nhờ câu lệnh std::endl. Trong C++, dấu "\n" vẫn dùng để xuống dòng bình thường như trong C.
+ Câu lệnh thứ 6: return 0; hàm main trong C hay C++ đều phải trả về một giá trị nào đó, câu lệnh có chức năng trả về 0 của hàm main khi chương trình chạy hết.

Chủ Nhật, 18 tháng 6, 2017

ĐÀN ÔNG ĐÃ 20 VÀ CHƯA 25

( Một trong những bài viết kinh điển nhất bạn sẽ được đọc)
Nếu bạn là đàn ông, nếu bạn đã hai mươi, nhưng bạn chưa hai lăm tuổi, bạn buộc phải tìm được một thứ gì đó ngoài tình yêu, giúp đôi chân bạn đứng vững vàng trong cuộc đời này. Bạn phải bắt đầu nghĩ cách để kiếm ĐỦ và sống ĐƯỢC.
Tôi chưa từng bao giờ nghĩ bằng cấp là thứ quan trọng, thiên tài với danh nhân đâu phải từ lò luyện và trường lớp mà ra.Nhưng nếu bạn không học tới nơi tới chốn, thì dù có đi làm cửu vạn, ngay cả bao cát cũng sợ rằng chẳng biết cách mà vác.
Bạn buộc phải làm cho những suy nghĩ văn vẻ và cảm xúc màu mè thị dân của mình dần trở thành lối tư duy sáng sủa, rõ ràng và những ngôn từ giản tiện ngắn gọn. Bởi những thứ màu mè và bồng bột sẽ không thể tồn tại lâu. Bạn phải biết rằng, những sự thích thú khi khi đọc văn hay, nghe lời bay bướm mang lại sẽ chẳng mấy giá trị, trong khi thứ quan trọng nhất lại nằm ở trí tuệ, tinh thần, tâm hồn, nội dung, tư duy của bạn.
Là đàn ông, làm ơn đừng đọc văn của những nhà văn nữ cùng thời với bạn.
Là đàn ông, làm ơn đừng trách người khác, đừng nhỏ nhặt, làm ra vẻ đáng thương.
Làm ơn đừng nghĩ đến cái gì là viết về cái đó.
Và chớ tiếc rẻ đôi chút cảm động bé nhỏ, đôi chút thương xót nhỏ nhoi.
Chớ tiếc rẻ đôi chút cảm động bé nhỏ, đôi chút thương xót nhỏ nhoi.
Bạn phải tin vào cái đẹp, tin vào hơi ấm, vào lòng tin con người, sự tự trọng của mỗi người, bạn hãy giữ gìn những phẩm chất xưa cũ này. Tôi không muốn bạn bốc đồng, vô vị, mù mờ, chà đạp chính mình và làm thương tổn người khác. Bạn không nên nhào nặn đời bạn thành một đống hỗn độn tổng hợp đủ thứ.
Khi bạn thay đổi con người bạn, hãy cố nâng niu những giá trị bản thân, cho dù bạn biết rõ, không phải ai cũng ưa những gì bạn đang có.
Làm ơn đừng chấp nhận thỏa hiệp với những con người đang ngụy trang là họ thức thời, cấp tiến. Họ chỉ là những kẻ vô công rồi nghề đang tìm cách biện minh cho sự thua kém của bản thân họ. Sự mạnh mẽ, bản lĩnh đàn ông nằm ở tận trong trái tim bạn, bạn có sức mạnh và vẻ đẹp từ trong tim, từ niềm tin mà dù thời gian và tuổi trẻ có trôi qua cũng không khuất phục được.
Dù thời gian và tuổi trẻ có trôi qua cũng không khuất phục được.
Bạn không có quyền ngồi trong cái tháp ngà của trường học, rồi bảo tôi yêu thế giới này tươi đẹp. Bạn phải nhìn thấy cái đen tối của thế giới, sự bẩn thỉu của cuộc đời, sự xấu xa của con người, sau đó mới nói rằng tôi vẫn yêu thế giới này, tôi vẫn yêu cuộc sống và tôi sống.
Tuổi trẻ ngắn ngủi thế, nhưng đừng sợ tuổi già.
Đôi khi, bạn có thể dừng lại nghỉ ngơi, nhưng đừng quỳ xuống.
Khi đi một con đường, bạn chớ ngoái đầu nhìn lại, hoặc tự hỏi, mình đang làm cái gì?
Khi đau và nhục, đàn ông có thể khóc và gào. Khóc đi, rồi rửa mặt, vỗ má mình, rồi áp má mình để trên gương mặt bạn có một nụ cười. Chứ bạn đừng dụi mắt hay lấy tay lau nước mắt. Bởi có thể sớm mai bạn sẽ mang một đôi mắt trũng và sưng vì khóc. Chớ để sớm mai ai cũng nhận ra bạn từng khóc.
Đàn ông hãy xác định cho mình một mục tiêu xa hơn và một lộ trình dài hơn. Hãy nhớ thỉnh thoảng ngửa đầu nhìn trời xanh, và lúc nhìn lên trời xanh hãy nhớ cúi xuống nhìn đất dưới chân mình.
Vào bất kỳ lúc nào, bất kỳ người nào hỏi bạn, bạn yêu mấy lần, đáp án của bạn phải luôn là Hai.
Một lần, cô ấy yêu tôi nhưng tôi không cảm xúc, một lần là tôi yêu cô ấy nhưng không được đáp lại. Hãy luôn nhớ rằng, tình yêu đẹp vẫn luôn đang đợi bạn ở lần yêu sau. Nên đừng luyến tiếc, đừng để một người đàn bà nào có cơ hội làm bạn bị tổn thương tới lần thứ hai.
Làm đàn ông, đừng giao du với văn nghệ sĩ hay bọn văn sĩ trẻ, cũng như đừng làm bạn với những kẻ bất đắc chí, thiếu tâm huyết với đời, cũng tuyệt đối không được bạn bè với những người đàn ông không có nghề nghiệp chính thức, kiêm quá nhiều nghề.
Cũng đừng yêu người phụ nữ nào hy sinh vì bạn. Khi có một cô nàng tự chà đạp bản thân nàng, tự hy sinh, tự chịu thiệt vì bạn, bạn chớ nên vì thế mà cảm động hoặc yêu kẻ lụy tình ấy. Bởi một người đàn ông nghiện hút trộm cắp đầy mình thân với bạn, có thể kẻ nghiện hút trộm cắp tiếp theo sẽ là chính bản thân bạn. Tình yêu cũng tương tự như vậy, khi một người phụ nữ vì yêu mà cầm dao cứa tay mình đau, có thể kẻ tiếp theo bị nàng cứa chính là bạn.
Không bao giờ đặt niềm tin vào một gã đàn ông chỉ định giao du với mình bạn chứ không cho bạn biết hắn đang chơi bời với những bạn bè nào khác.
Khi một cô nàng định gọi bạn là “anh yêu, baby, chồng yêu ơi”, bạn hãy bắt buộc cô nàng gọi bạn bằng tên bạn, bởi bạn là một người đàn ông, bạn không phải thú cưng của ai.
Khi một người đàn ông hoặc một người đàn bà tự nhiên không tới tìm bạn nữa, bạn hãy dứt khoát đừng gọi tới làm phiền họ.
Đừng tin những kẻ dùng tiểu xảo trong tình yêu. Và đừng ác miệng sau khi chia tay người tình. Nghe lời khuyên của người khác, nhưng đừng hối hận, bởi hối hận chưa từng mang lại cho đàn ông bất cứ thứ gì hay ho.
Đàn ông thì không xé ảnh, đốt thư, xé nhật ký, làm những việc mà chỉ diễn viên ba xu trên phim truyền hình mới làm. Bởi bạn tin vào tình yêu. Tin rằng trên đời vẫn còn những người đàn ông tốt và những người phụ nữ tốt đẹp, có thể họ cũng chưa kết hôn, họ cũng vẫn đang vượt trùng trùng biển người trong đời để tìm đến bạn. Nên đừng nói những câu đại loại như: “Thời này làm gì có đàn bà tử tế” hoặc “Làm gì có đàn ông tốt!”. Những câu như thế thường làm người ta hiểu rằng, bạn đã no xôi chán chè, hời hợt với vô số người, vơ đũa cả nắm và không hề sống nghiêm túc, chưa trưởng thành.
Hãy yêu tiền, yêu vật chất, dùng tiền để sống cho ra sống. Nhưng vẫn hiểu rằng những giá trị tinh thần cũng quan trọng biết bao. Và con người bạn, một người đàn ông đầy sức sống, háo hức sống vẫn luôn có giá trị và đẹp đẽ hơn những đồng hồ hàng hiệu, thời trang, phụ kiện sành điệu bạn đang mang. Nếu đã hơn hai mươi tuổi nhưng mỗi phút bạn sống, bạn vẫn phải ngửa tay xin tiền bố mẹ, thì những tiền bạc bạn có, đồ hiệu bạn mặc chỉ làm cho sự vô liêm sỉ của bạn nổi bật hơn mà thôi. Nên đồ hiệu không làm bạn có giá hơn. Bản thân người đàn ông không có giá trị bản thân, thì dù có bọc vàng, được bố mẹ nâng đỡ sự nghiệp chức này tước kia, cũng vẫn chỉ là một kẻ ăn bám bọc vàng. Một con lừa dù có đóng yên cương vàng khối cũng không thể trở thành tuấn mã.
Bạn còn trẻ, có thể chưa đủ tuổi để bắt đầu một sự nghiệp riêng, một tương lai huy hoàng. Nhưng bạn đã đủ tuổi thành niên, nên ít nhất, cũng không thể làm một cái gánh nặng đeo trên lưng bố mẹ, để bố mẹ mất hai mươi năm nuôi dạy, cái gánh nặng đã sống ký sinh trên lưng chỉ nặng thêm và nhiều đòi hỏi hơn.
Bạn đừng tưởng bạn trẻ, bạn làm một kiểu tóc có màu khác người, mặc một bộ quần áo dở nam dở nữ Unisex, rồi phun lên người một thứ mùi nước hoa, thì người khác sẽ tôn trọng bạn. Cái ngước nhìn của người khác không mang ý trầm trồ ngưỡng mộ, mà là cái nhìn khi đi ngang qua sở thú. Rất nhiều đàn ông khác chỉ bởi họ được giáo dục tốt nên họ sẽ không bày tỏ thái độ gì với bạn đâu, họ sẽ tôn trọng sự “cá tính” của bạn, nhưng không có nghĩa rằng, họ không nhận ra sự xấu xí của người đàn ông trước mặt.
Xin bạn đừng coi rẻ những người lao động nghèo. Đừng xấu hổ vì phải làm việc nặng nhọc. Đất không bẩn, mồ hôi không hôi hám. Xin hãy tôn trọng những người có thể không giàu bằng bạn, nhưng họ đang nuôi cả gia đình bằng đôi tay lương thiện và cần cù của họ. Bạn tôn trọng họ, bạn mới biết giá trị của bạn nằm ở đâu.
Làm đàn ông, hãy tha thứ, nhưng đừng quên. Và hãy khoan dung với cả thế giới cũng như với chính bản thân bạn. Để luôn tự nhủ rằng, ta là đàn ông, ta xứng đáng để có được những thứ tốt đẹp hơn.
Tác giả: Lý Khai Phục.
Dịch giả: Trang Hạ