C++ Chương I:Bài Tập Căn Bản
BT1: Viết chương trình hiện ra màn hình dòng chữ: “Welcome C++”
#include <iostream>
int main(){
std::cout << "Welcome C++" << std::endl;
system("Pause");
return 0;
}
BT2: Viết chương trình xuất ra màn hình hình vuông đặc kí tự ‘*’ có cạnh bằng a (với a nhập từ bàn phím)
#include <iostream>
int main(){
int length;
std::cout << "Enter length: ";
std:: cin >> length;
for (int i = 0; i < length; i++)
{
for (int j = 0; j < length; j++)
{
std::cout << "* ";
}
std::cout << "
";
}
system("Pause");
return 0;
}
BT3:
• Viết chương trình nhập vào bán kính của hình tròn; xuất ra diện tích và chu vi của
hình tròn đó.
• Diện tích của hình tròn biết trước bằng cách nhập vào từbàn phím, tính và in ra bán
kính của hình tròn đó.
#include <iostream>
#include <cmath>
int main(){
// nhập bán kính, tính diện tích và chu vi hình tròn
double circle;
std::cout << "Enter circle radius: ";
std:: cin >> circle;
double acreage; // khai bao bien dien tich
acreage = circle * circle * 3.14;// cong thuc tinh dien tich
double perimeter; // khai bao bien chu vi
perimeter = 2 * circle * 3.14; // cong thuc tính chu vi
std::cout << "Acreage Circle: "<< acreage << std::endl;
std::cout << "Perimeter Circle: "<< perimeter << std::endl;
//nhập diện tích tính bán kính hình tròn
std::cout << "Enter Acreage radius: ";
std::cin >> acreage;
circle = sqrt(acreage/3.14);
std::cout << "Circle radius: " << circle << std:: endl;
system("Pause");
return 0;
}
BT4: Viết chương trình nhập vào đáy lớn, đáy nhỏ, chiều cao của hình thang; xuất ra diện tích của hình thang đó.
#include <iostream>
int main(){
float bigBottoms, smallBottoms, height;
std::cout << "Enter Trapezoid Big Bottoms: ";
std::cin >> bigBottoms;
std::cout << "Enter Trapezoid Small Bottoms: ";
std::cin >> smallBottoms;
std::cout << "Enter Trapezoid Height: ";
std::cin >> height;
float acreage = ((bigBottoms + smallBottoms) * height) / 2;
std::cout << "Acreage Trapezoid: " << acreage << std::endl;
system("Pause");
return 0;
}
BT5: Chương trình tính giá trịbiểu thức Y = 3e^cos(t+1)(t là số nhập từ bàn phím)
HD: Hàm tính là exp(x), hàm tính cos(x) trong tập tin thư viện
#include <iostream>
#include <cmath>
int main(){
//tinh bieu thuc y=3e^cos(t+1)
double t,y;
std::cout << "Enter a number: ";
std::cin >> t;
y = 3 * exp(cos(t+1));
std::cout << "Y = " << y << std::endl;
system("Pause");
return 0;
}
BT6: Viết chương trình nhập vào 2 số nguyên và các phép toán +, -, *, /, %, >,<. In ra kết quả phép toán đó.
#include <iostream>
int main(){
// tinh ket qua phep toan + - * / % > <
int a,b;
std::cout << "Enter a number A: ";
std::cin >> a;
std::cout << "Enter a number B: ";
std::cin >> b;
std::cout << "Total two number A & B: " << a + b << std::endl;
std::cout << "Performance two number A & B: " << a - b << std::endl;
std::cout << "Built two number A & B: " << a * b << std::endl;
if(b != 0){
std::cout << "Trade two number A & B: " << a / b << std::endl;
}
std::cout << "Mod two number A & B: " << a % b << std::endl;
if(a > b){
std::cout << "A" << ">" << "B" << std::endl;
}else
{
std::cout << "A" << "<" << "B" << std::endl;
}
system("Pause");
return 0;
}
BT 7: Viết chương trình nhập vào thông tin của một sinh viên bao gồm: mã số sinh viên, họ tên, quê quán, năm sinh, điểm trung bình các năm học; xuất ra thông tin của sinh viên vừa nhập.
#include <iostream>
#include <string>
int main(){
int mssv, namSinh;
char hoTen[50], queQuan[100];
double diemTrungBinh;
std::cout << "Enter MSSV: ";
std::cin >> mssv;
std::cout << "Enter Full Name: ";
fflush(stdin);
gets_s(hoTen);
std::cout << "Enter Home Town: ";
fflush(stdin);
gets_s(queQuan);
std::cout << "Enter Birthday: ";
std::cin >> namSinh;
std::cout << "Enter Point Average: ";
std::cin >> diemTrungBinh;
std::cout << "MSSV: " << mssv << std::endl;
std::cout << "Full Name: " << hoTen << std::endl;
std::cout << "Home Town: " << queQuan << std::endl;
std::cout << "Birthday: " << namSinh << std::endl;
std::cout << "Point Average: " << diemTrungBinh << std::endl;
system("Pause");
return 0;
}
BT 8: Viết chương trình nhập vào ba cạnh của một tam giác, tính và xuất ra diện tích của tam giác đó.
#include <iostream>
#include <cmath>
int main(){
int a,b,c,chuvi;
double dientich;
std::cout << "Nhap Canh A: ";
std::cin >> a;
std::cout << "Nhap Canh B: ";
std::cin >> b;
std::cout << "Nhap Canh C: ";
std::cin >> c;
chuvi = a + b + c; // cong thuc tinh chu vi
dientich = sqrt(chuvi * (chuvi - a) * (chuvi - b) * (chuvi - c)); // cong thuc tinh dien tich
std::cout << "Dien Tich Hinh Tam Giac La: " << dientich << std::endl;
system("Pause");
return 0;
}
Tiến mới Post lần đầu! có gì sai sót A/E comment để Tiến sửa! BT này là Tiến tự code! A/E nào có code gọn hơn thì share lên cho mọi người cùng học! Chúc A/E “Dạy Nhậu Học” một ngày vui vẻ
Bài này e nghĩ nên kiểm tra bất đảng thức tam giác xem 3 cạnh nhập vào có phải 3 cạnh của 1 tam giác không.
BT 9: Một đoạn thẳng được biểu diễn bởi hai điểm trong mặt phẳng. Viết chương trình nhập vào hai điểm của một đoạn thẳng và xuất ra trung điểm của đoạn thẳng đó.
BT 10: Viết chương trình nhập vào ba đỉnh của một tam giác. Xuất ra trọng tâm của tam giác đó.
BT 11: Xét tam thức bậc 2 có dạng ax2+ bx + c. Viết chương trình nhập vào các hệ số của một tam thức bậc 2 và giá trịcủa biến sốx; xuất ra giá trịcủa tam thức bậc 2 đó.
Nếu mình viết “using std::cout; using std::cin;” ở đầu có khác gì “std::” ở mỗi dòng không anh? Em nghĩ thế dễ nhìn hơn chút.
using namespace std;
Trong list video C++ của Đạt có nói về cái này! có sẻ trùng một số trường hợp nên gây lỗi…!
Không khác nhau bạn nhé. Lúc này chúng ta đang sử dụng using-declaration để chỉ rõ tên trong
namespace std
mà chúng ta muốn sử dụng. Ở đây làcout
vàcin
Chỉ khi nào sử dụng
using namespace std
mới có thể sinh ra nhiều vấn đề như trùng tên chẳng hạn. Và có thể bạn không sử dụng hết tên củanamespace std
trong khi trình biên dịch thì lại thấy tất cả tên, điều này là dư thừa không cần thiết. Những sự xung đột như vậy làm mất đi ý nghĩa của việc sử dụngnamespace
. Bạn xem lại định nghĩa vềnamespace
sẽ rõ hơn.Đoạn code trên có thể viết lại theo ý @Newbie_D95 :
Xem đoạn code ở bài của bạn @tuancoi2506 này sẽ thấy
using namespace std;
(using-directive) khác với đoạn code trênusing std::cout;
(using-declaration) như thế nào: Sửa lỗi bài tìm số nguyên tố gần với số n nhập từ bàn phím?Chắc mình phải viết lại như bạn! chứ mỗi lần cout là phải viết lại std::cout! thanks bạn!
Thật ra khi mới học, để tránh rắc rối thì cứ viết đầy đủ cú pháp. Nhiều lúc trong khi code mà viết vắn tắt, tiết kiệm đôi ba dòng code sẽ xảy ra nhiều vấn đề liên quan rắc rối khác rất mất thời gian debug, đồng thời cũng khiến code không được trực quan khi chúng ta cần xem lại. Vậy thì nên ngắn gọn, vắn tắt khi nào? Khi chúng ta thực sự hiểu mình đang làm gì.
Hay quá. Cảm ơn chủ topic nhiều nha. Mìng đang tính lập topic xin 1 số bài tập căn bản của C++ thì thấy bài viết này của bạn.
Các bạn khác có thêm bài tập C++ căn bản thì góp vui vào để cùng Dạy Nhau Học nhé.
Cảm ơn các bạn nhiều.
Thanks bạn đã góp ý! những bài sau mình cố gắng ngắn gọn hơn!
Mình cố gắng code để úp lên cho mọi người xem!
cho e hỏi sdt:: để làm gì thế ạ
lên google search namespace std là hiểu rỏ bạn à!
[quote=“NotFound, post:12, topic:613”]
up google tìm kiếm namespace std be understood ro your à!
[/quote] ok tks you mình sẽ tìm xem
NAMESPACE LÀ GÌ???
Chắc các bạn đã quá quen với thuật ngữ namespace, vì gần như trong bất cứ chương trình C++ nào các bạn cũng dùng đến câu lệnh “using namespace std;”. Vậy namespace là gì, và tại sao lại có câu lệnh trên trong hầu hết các chương trình của chúng ta?
Namespace (tạm dịch là không gian tên) là một cơ chế trong C++ cho phép chúng ta phân nhóm các thực thể như class, object, function thành những nhóm riêng biệt, mỗi nhóm đó được đặt cho một cái tên, gọi là không gian tên (namespace).
Ví dụ mình có namespace N, trong đó mình định nghĩa class C, object o và function f. Khi đó, mình có thể tham chiếu đến các thực thể này bằng cách viết N::C, N::o hay N::f. Điều này giúp cho chúng ta có thể phân biệt được các thực thể cùng tên nằm trong các namespace khác nhau. Chẳng hạn trong namespace N1 có class C, trong namespace N2 cũng có class C, khi đó ta có thể thể hiện rõ ra được là chúng ta đang ám chỉ đến class nào bằng cách viết tường minh N1::C hay N2::C.
Mỗi namespace có thể chứa trong đó một hay một số namespace khác, giống như một package có thể chứa các package khác trong ngôn ngữ Java. Điều này cho phép chúng ta định nghĩa ra những cấu trúc namespace phức tạp theo kiểu cây, và khi đó, khi cần tham chiếu đến một thực thể nào đó, ta sẽ viết theo kiểu: vehicles::cars::toyota::corolla::altis_2012 chẳng hạn.
Trong ngôn ngữ C++, người ta định nghĩa ra một số lượng lớn class, object, function mà lập trình viên hay dùng đến, và đặt chúng trong một namespace có tên là ‘std’ (viết tắt của standard). Một trong những thực thể quen thuộc nhất trong namespace std chính là đối tượng “cout”. Đối tượng này cho phép chúng ta hiển thị dữ liệu ra màn hình console (standard output) bằng toán tử <<. Ví dụ ta in dòng chữ “Hello World” ra màn hình bằng câu lệnh “std::cout << “Hello World”;”.
Mỗi khi phải tham chiếu đến một object, chúng ta cần chỉ rõ nó thuộc namespace nào để tránh nhầm lẫn. Tuy nhiên, C++ cho phép lập trình viên có một tiện ích đó là chỉ ra namespace mặc định mà người đó sẽ dùng trong phạm vi file .cpp mà người đó đang thao tác. Để làm điều đó, lập trình viên cần khai báo câu lệnh “using namespace abc;” ở ngay đầu file, trong đó ‘abc’ là tên của namespace anh ta muốn trở thành namespace mặc định. Chẳng hạn câu khai báo quen thuộc “using namespace std” sẽ cho phép chúng ta đặt namespace std làm mặc định và khi tham chiếu đến các thực thể trong đó thì không cần có tiền tố std:: ở phía trước nữa. Và vì vậy, câu lệnh in dòng chữ ra màn hình của chúng ta trở thành “cout << “Hello World”;”
Hãy viết, biên dịch và chạy thử hai chương trình sau xem kết quả có giống nhau không nhé:
Chúc các bạn có những giây phút thú vị với ngôn ngữ lập trình C++.
Hãy share bài viết nếu bạn cảm thấy nó có ích nhé! Cảm ơn các bạn rất nhiều!
Nguồn: https://www.facebook.com/vietnamesecplusplus/posts/142447385937332
[quote=“NotFound, post:12, topic:613”]
lên google search namespace std là hiểu rỏ bạn à!
[/quote] Chuẩn đấy. Theo mình thì nên google trước nhé
có thể mình chưa hiểu rõ về C++ học không chắc rồi. mình chỉ biết mấy cái cơ bản nhất thôi ạ
Mình cũng như bạn. Cũng mới bắt đầu tìm hiểu về C++ đây. Cùng cố gắng nhé
mình học chẳng chắc một ngôn ngữ nào cả toàn bị lỗi phần con trỏ với mảng thôi còn C++ mình học tới class là ngộp không biết học ntn cả ( tự học ) bạn học tới đâu rồi giúp mình với
mình học chẳng chắc một ngôn ngữ nào cả
[/quote] Theo mình thì không nên học nhiều ngôn ngữ lập trình nếu mới học. Tự học thì nên học chắc chắn một ngôn ngữ (C hoặc C++) đã. Chưa bò thì chạy sao nổi.
@chauminh Những bạn mới học lập trình nên bắt đầu từ bài học đầu tiên phần C (ý kiến của riêng mình): Mục lục các bài học và bài viết hay
Sau mỗi bài học cần làm đi làm lại các bài tập liên quan đến bài học đó, cho đến khi nhuần nhuyễn rồi hẵng chuyển qua bài học kế tiếp. Học lập trình cần có thời gian, không thể một sớm một chiều được.
Để tìm bài tập và ví dụ hãy sử dụng Google và cần học thêm tiếng Anh cơ bản. Ví dụ: http://lmgtfy.com/?q=printf+in+c+example
ok tks you mình cố gắng ha
Chính xác rồi @NotFound, thời gian đầu việc viết std::cout có thể hơi phiền hà vài dài dòng. Nhưng nhanh thôi, mình sẽ thấy được cái lợi của nó
Cái này là kinh nghiệm của Đạt thôi, các bạn thấy mình sai thì nhắc mình nhé.