Hệ thống đầy đủ hơn 50 bài tập căn bản nhất có lời giải chi tiết của bộ môn nhập môn lập trình C++. Giúp cho người mới làm quen C++ có hứng thú và tiếp cận C++ dễ nhất . Nếu đọc xong tài liệu mà bạn vẫn chưa hiểu gì thì bạn nên xem lại kiến thức mình đã học về lập trình vì những bài tập này vô cùng căn bản . Chúc các bạn may mắn
Trang 150 BÀI TẬP NHẬP MÔN KỸ THUẬT LẬP TRÌNH C++ CĂN BẢN NHÂT
-Nguyễn Xuân Bình-
- Note:
Nói 50 bài thực tế là 53 bài Vì có 3 bài hơi khó nên các bạn tham khảo nhé ! Mình học không giỏi đâu nha các bạn mình chỉ là mình học mình viết thấy có ích nên tổng hợp thành tài liệu này Do mình mới năm nhất nên viết theo cách nhập môn các bạn mới làm quen C++ sẽ rất dễ hiểu Do lần đầu nên sẽ có thiếu sót mong nhận được sự góp ý chân thành từ các đồng chí và các bạn ! Và các bạn đừng sao chép ra nhé vì đó là công sức của mình mong các bạn hiểu cho Thanks all !
Đây là liên hệ của mình :
Link facebook : https://www.facebook.com/nguoidensau0
Email : binhcover98@gmail.com
-
MÌNH BẮT ĐẦU NHÉ GOODLUCK
-
Trang 2Kiểm tra số đó có phải là số chính phương không?
Xuất: yes, nếu đó là số chính phương, ngược lại xuất no
Trang 3Kiểm tra số đó có phải là số nguyên tố không?
Xuất: true, nếu đó là số nguyên tố, ngược lại xuất false
Trang 5- Nhập vào 2 số nguyên N và M, yêu cầu tính tổng chữ số cuối cùng của N và của M (0<= N,M <=12345670)
Trang 7Ví dụ
input: 27 > output: TRUE
input: 2727 > output: FALSE
input: 888333777 > output: FALSE
Trang 8Nhập vào 2 số nguyên a và b
Yêu cầu tìm UCLN của 2 số đó
Trang 10int max =a[0];
Trang 11int result = UCLN(a, b);
Nếu N không phải là số nguyên tố xuất 0 - ngược lại xuất N
Trang 13}
- Nhập vào số n
Trang 14- Dòng 1: số n và số x cần tìm trong dãy số
- Dòng 2: Nhập vào một dãy số nguyên
Output:
- Nếu tìm thấy xuất ra vị trí tìm thấy đầu tiên
- Ngược lại nếu không tìm thấy xuất -1
(lưu ý: chỉ số của dãy số được tính từ 0)
Trang 15}
Trang 16- Viết chương trình tìm kiếm phần tử trong mảng
Input:
- Dòng 1: số n và số x cần tìm trong dãy số
- Dòng 2: Nhập vào một dãy số nguyên (đã được sắp xếp tăng dần)
Output:
- Nếu tìm thấy xuất ra vị trí tìm thấy đầu tiên
- Ngược lại nếu không tìm thấy xuất -1
(lưu ý: chỉ số của dãy số được tính từ 0)
Trang 17int LinearSearch(int a[max], int n, int x)
XIN CHAO MUNG
Trang 18Yêu cầu xuất ra theo dịnh phân số: a/b
ví dụ
input:
Trang 19Input:
- 1 số nguyên X
Output:
- Nếu X là số dương xuất kết quả: DUONG
- Nếu X là số âm xuất kết quả: AM
- Nếu X là số 0 xuất kết quả: KHONG
ví dụ:
Trang 21}
- Nhập vào 1 số gồm 2 chữ số, yêu cầu xuất ra tổng chữ số của nó ra màn hình
Trang 22int main()
{
int N;
cin >> N;
int sodaonguoc = Tim_SoDaoNguoc(N);
cout << sodaonguoc << endl;
return 0;
}
- Nhập vào 1 số nguyên n, yêu cầu xuất tất cả số nguyên tố từ 1 đến n (mỗi số cách
1 khoảng trắng) - nếu không có số nào, xuất -1
ví dụ:
Trang 23- Dòng 1: Nhập vào N là số lượng phần tử của mảng
- Dòng 2: N số nguyên (mỗi số cách 1 khoảng trắng)
Trang 24{
cin >> a[i];
}
}
long int S(int a[max], int &n) {
long int temp = 0;
for (int i = 0; i<n; i++)
- Dòng 1: Nhập vào N là số lượng phần tử của mảng
- Dòng 2: N số nguyên (mỗi số cách 1 khoảng trắng)
Trang 25long int S(int a[max], int &n) {
long int temp = 0;
for (int i = 0; i<n; i++)
if(a[i]%2==0) temp += a[i];
- Dòng 1: Nhập vào N là số lượng phần tử của mảng
- Dòng 2: N số nguyên (mỗi số cách 1 khoảng trắng)
Trang 27- Dòng 1: Nhập vào N là số lượng phần tử của mảng
- Dòng 2: N số nguyên (mỗi số cách 1 khoảng trắng)
Trang 29Nhập vào 1 số nguyên, yêu cầu xuất ra chữ số hàng trăm của số đó, nếu không có thì xuất ra -1
return 0;
}
-
Trang 30Nhập vào 1 số nguyên, yêu cầu xuất ra chữ số ở vị trí i của số đó, nếu không có thì xuất ra -1
(Lưu ý thứ tự đếm từ trái sang phải - bắt đầu là vị trí thứ 0)
Trang 311 số nguyên n
ouput:
kết quả của phép toán: 1+1/23+1/33+ +1/n3
(kết quả lấy 3 chữ số thập phân)
ví dụ:
input:
Trang 32220 là: 1+2+4+5+10+11+20+22+44+55+110=284 và tổng các ước số của 284 là 1+2+4+71+142=220 1184 và 1210 cũng là hai số bạn bè Hãy viết chương trình kiểm tra xem 2 số nhập vào có phải là số bạn bè hay không
Trang 34return 0;
}
-
Viết chương trình nhập vào 2 số nguyên dương N,M; trong đó
N có số chữ số lớn hơn một Yêu cầu kiểm tra tích các chữ số của N có bằng tổng các ước của M hay không? Nếu có xuất YES ngược lại xuất NO
Trang 35Viết chương trình nhập vào 3 số nguyên dương N,M,K;
Yêu cầu kiểm tra tổng các chữ số của N cộng với chữ số đầu tiên của M có bằng K hay không? Nếu có xuất Yes ngược lại xuất No
Trang 36- Dòng 1: Nhập vào N là số lượng phần tử của mảng
- Dòng 2: N số nguyên (mỗi số cách 1 khoảng trắng)
Trang 37Ouput:
- Dòng 1: xuất các số âm của dãy
- Dòng 2: xuất các số dương của dãy
Trang 38for (int i = 0; i < n; ++i)
- Dòng 1: Nhập vào N là số lượng phần tử của mảng
- Dòng 2: N số nguyên (mỗi số cách 1 khoảng trắng)
Ouput:
- Dòng 1: xuất các số chính phương của dãy
- Dòng 2: xuất các số nguyên tố của dãy
Trang 39if(n==1) return true;
for (int i = 1; i <=n/2; i++)
Trang 40- Dòng 1: Nhập vào 2 số nguyên N, M là số dòng và số cột của mảng 2 chiều NxM
- N dòng tiếp theo, mỗi dòng là M số nguyên
Ouput:
Giá trị lớn nhất trong mảng NxM
Ví dụ:
Trang 41for (unsigned int i = 0; i<n; i++)
for (unsigned int j = 0; j<m; j++) {
scanf("%d", &A[i][j]);
} }
int Max(int A[max][max], unsigned int n, unsigned int m) {
long int temp = A[0][0];
for (unsigned int i = 0; i<n; i++)
for (unsigned int j = 0; j<m; j++)
Trang 42- Gồm nhiều ký tự (mỗi ký tự cách nhau 1 khoảng trắng)
(chỉ tính các ký tự từ 'a' đến 'z', không tính khoảng trắng)
Trang 44cout << "no"; return 0;
}
int main()
Trang 46Dữ liệu đầu vào: số nguyên dương n (n<10)
Dữ liệu đầu ra: gồm n! dòng ghi các hoán vị theo thứ tự tăng dần, mỗi phần tử của tập hợp ngăn cách nhau bởi khoảng trắng
Trang 47{
for (int i=0; i<n; i++)
if (i!=n-1) cout << myints[i] << " ";
else cout << myints[i] << endl;
Trang 49Một số nguyên dương có n chữ số được gọi là số Armstrong khi tổng các lũy thừa bậc n của các chữ số của nó bằng chính nó
Gồm nhiều dòng, mỗi dòng là câu trả lời cho từng số N ở trên Nếu N
là số Armstrong thì xuất “ YES ” Ngược lại xuất “ NO ” (không xuất dấu ngoặc kép)
Trang 53Yêu cầu:
Cho trước số nguyên dương n (n<= 10^6) Hãy xuất ra màn hình tất cả các bộ 3 số Pytago mà cả 3 số đều <= n (mỗi bộ số 1 dòng và xuất theo thứ tự tăng dần) Nếu không có thì xuất -1
Trang 55Input:
- Dòng đầu tiên chứa số gói kẹo N (N ≤ 104)
- Dòng thứ hai chứa N số nguyên là số viên kẹo trong từng gói (số kẹo trong mỗi gói không vượt quá 1000)
Output: Xuất ra số viên kẹo cần chuyển ít nhất, nếu không có cách chuyển thì xuất
Trang 56if(a[i]>x) {
res=res+a[i]-x;
} }
cout << res << endl;
}
return 0;
}
- Hàng ngày vào mỗi buổi sáng sớm, Tèo thường rủ Tý ra công viên chạy bộ Vào một ngày nọ, Tèo thấy vui nên muốn chơi một trò chơi nhỏ với Tý Tèo chọn 3 gốc cây trong công viên, 3 gốc cây này tạo thành một hình tam giác như hình vẽ:
Trang 57(Khoảng cách giữa các cây với nhau là tùy ý)
Tèo sẽ bắt đầu chạy từ A đến B, rồi từ B đến C, rồi lại quay về A Cứ chạy tiếp như vậy Mỗi giây Tèo chạy được 1 mét Tèo đố Tý rằng sau t giây kể từ lúc bắt đầu chạy, Tèo đang ở vị trí nào? (Câu trả lời chỉ là ở A, B, C hoặc trên quãng đường AB, BC, CA)
Bạn hãy giúp Tý trả lời câu hỏi này nhé!
Trang 58while(true){
t-=a[i]; // trừ đi độ dài từng quãng đường
Trang 59}
if (i==4) // nếu chạy hết đoạn đường thứ 3 - đoạn CA thì quay lại chạy tiếp AB
i=1;
}
return 0;
}