Xu Hướng 3/2023 # Những Bài Tập Và Lời Giải Cho Người Mới Bắt Đầu Lập Trình Với C# # Top 5 View | Ictu-hanoi.edu.vn

Xu Hướng 3/2023 # Những Bài Tập Và Lời Giải Cho Người Mới Bắt Đầu Lập Trình Với C# # Top 5 View

Bạn đang xem bài viết Những Bài Tập Và Lời Giải Cho Người Mới Bắt Đầu Lập Trình Với C# được cập nhật mới nhất trên website Ictu-hanoi.edu.vn. Hy vọng những thông tin mà chúng tôi đã chia sẻ là hữu ích với bạn. Nếu nội dung hay, ý nghĩa bạn hãy chia sẻ với bạn bè của mình và luôn theo dõi, ủng hộ chúng tôi để cập nhật những thông tin mới nhất.

Biên soạn: Hoàng Văn Hậu

Hướng dẫn giải bài tập-Nhập Môn Lập Trình

Hoàng Văn Hậu

Email: hoanganton89@gmail.com

Trang 1/56

Biên soạn: Hoàng Văn Hậu

Hướng dẫn giải bài tập-Nhập Môn Lập Trình

PHẦN 1. HƯỚNG DẪN GIẢI CHI TIẾT 35 BÀI TẬP ****** Bài Tập 1 namespace Bai_Tap_1 {// Đề bài: Viết chương trình nhập vào thông tin của một nhân viên (Họ tên, ngày sinh), Tính và xuât tuổi nhân viên class Program { static void Main(string[] args) { Console.Title = “Bài tập 1”; string Ho_ten; DateTime Ngay_sinh; int Tuoi; Console.Write(“Ho Ten:”); Ho_ten = Console.ReadLine(); Console.Write(“Ngay Sinh:”); Ngay_sinh = DateTime.Parse(Console.ReadLine()); Tuoi = chúng tôi – Ngay_sinh.Year; string chuoi = “Tuoi la:” + Tuoi; Console.Write(chuoi); Console.ReadLine(); } } }

Hình 1-Kết quả cho bài tập 1

Email: hoanganton89@gmail.com

Trang 2/56

Biên soạn: Hoàng Văn Hậu

Hướng dẫn giải bài tập-Nhập Môn Lập Trình

Bài Tập 2 namespace Bai_tap_2 {// Đề bài: Viết chương trình tính khoảng cách từ điểm M(xM,yM) đến đường thẳng d: ax+by+c=0

//

Tóm tắt yêu cầu: class Program { Xây dựng thuật giải và viết code:

//Khai báo cấu trúc DIEM struct DIEM { public double x, y; } static void Main(string[] args) { Console.Title = “Bài tập 2”; DIEM M; double a, b, c; double h; Console.Write(“Diem Mnx=”); M.x = double.Parse(Console.ReadLine()); Console.Write(“y=”); M.y = double.Parse(Console.ReadLine()); Console.Write(“Cac he so cua duong thangna=”); a = double.Parse(Console.ReadLine()); Console.Write(“b=”); b = double.Parse(Console.ReadLine()); Console.Write(“c=”); c = double.Parse(Console.ReadLine()); double e = Math.Abs(a * M.x + b * M.y + c); double f = Math.Sqrt(a * a + b * b); h = e / f; string chuoi = “Khoang cach la:” + Math.Round(h, 1); Console.Write(chuoi); Console.ReadLine(); } Email: hoanganton89@gmail.com

Trang 3/56

Biên soạn: Hoàng Văn Hậu

Hướng dẫn giải bài tập-Nhập Môn Lập Trình

Hình 2-Kết quả cho bài tập 2

Bài Tập 3 namespace Bai_tap_3 { class Program { struct PHAN_SO { public int Tu_so, Mau_so; } static void Main(string[] args) { Console.Title = “Bài tập 3”; PHAN_SO x, y; PHAN_SO z; Console.Write(“Phan so xnTu so=”); x.Tu_so = int.Parse(Console.ReadLine()); Console.Write(“Mau so=”); x.Mau_so = int.Parse(Console.ReadLine()); Console.Write(“Phan so ynTu so=”); y.Tu_so = int.Parse(Console.ReadLine()); Console.Write(“Mau so=”); y.Mau_so = int.Parse(Console.ReadLine()); z.Tu_so = x.Tu_so * y.Tu_so; z.Mau_so = x.Mau_so * y.Mau_so; Email: hoanganton89@gmail.com

Trang 4/56

Biên soạn: Hoàng Văn Hậu string chuoi = “Phan so z=x*y=” + z.Tu_so + “/” + z.Mau_so; Console.Write(chuoi); Console.ReadLine();

Hướng dẫn giải bài tập-Nhập Môn Lập Trình

Hình 3-Kết quả cho bài tập 3

Bài Tập 4 namespace Bai_tap_4 { của nhân viên nam

Tóm tắt yêu cầu class Program { static void Main(string[] args) { Console.Title = “Bài tập 4”; string Ho_ten; DateTime Ngay_sinh; DateTime Ngay_ve_huu; Console.Write(“Ho ten:”); Ho_ten = Console.ReadLine(); Console.Write(“Ngay sinh:”); Ngay_sinh = DateTime.Parse(Console.ReadLine()); Ngay_ve_huu = new DateTime(Ngay_sinh.Year + 60, Ngay_sinh.Month, Ngay_sinh.Day); Email: hoanganton89@gmail.com

Trang 5/56

Biên soạn: Hoàng Văn Hậu

Hướng dẫn giải bài tập-Nhập Môn Lập Trình

//Kết xuất ngày về hưu string chuoi = “Ngay ve huu :” + Ngay_ve_huu.Day + “/” + Ngay_ve_huu.Month + “/” + Ngay_ve_huu.Year; Console.Write(chuoi); Console.ReadLine(); } } }

Hình 4-Kết quả cho bài tập 4

Trang 6/56

Biên soạn: Hoàng Văn Hậu

Hướng dẫn giải bài tập-Nhập Môn Lập Trình

}

Hình 5-Kết quả cho bài tập 5

Biên soạn: Hoàng Văn Hậu

Hướng dẫn giải bài tập-Nhập Môn Lập Trình

Hình 6-Kết quả cho bài tập 6

Trang 8/56

Hướng dẫn giải bài tập-Nhập Môn Lập Trình

Biên soạn: Hoàng Văn Hậu

Email: hoanganton89@gmail.com

Trang 9/56

Biên soạn: Hoàng Văn Hậu

Hướng dẫn giải bài tập-Nhập Môn Lập Trình

Hình 7-Kết quả cho bài tập 7

Trang 10/56

Biên soạn: Hoàng Văn Hậu

Hướng dẫn giải bài tập-Nhập Môn Lập Trình

//Kết xuất tiền trả string chuoi = “Tien tra:” + Tien_tra; Console.Write(chuoi); Console.ReadLine(); } } }

Hình 8-Kết quả cho bài tập 8

Bài Tập 9 namespace Bai_tap_9 { Kw) class Program { static void Main(string[] args) { Console.Title = “Bài tập 9”; string Ho_ten; double So_kw; double Tien_tra = 0; Email: hoanganton89@gmail.com

Trang 11/56

Hướng dẫn giải bài tập-Nhập Môn Lập Trình

Biên soạn: Hoàng Văn Hậu

Hình 9-Kết quả bài tập 9

Email: hoanganton89@gmail.com

Trang 12/56

Biên soạn: Hoàng Văn Hậu

Hướng dẫn giải bài tập-Nhập Môn Lập Trình

Bài Tập 10 namespace Bai_tap_10 { tên,tổng thu nhập năm, số người phụ thuôc) sau: thuộc*1,6tr Thuế suất(%) 5 10 15 20 25 30 35

//Tóm tắt yêu cầu: thuôc) class Program { struct CA_NHAN { public string Ho_ten; public int So_nguoi_phu_thuoc; public int Tong_thu_nhap; } static void Main(string[] args) { Console.Title = “Bài tập 10”; CA_NHAN Cn; double Thue = 0; Console.Write(“Ho ten:”); Cn.Ho_ten = Console.ReadLine(); Console.Write(“So nguoi phu thuoc:”); Cn.So_nguoi_phu_thuoc = int.Parse(Console.ReadLine()); Console.Write(“Tong thu nhap nam:”); Cn.Tong_thu_nhap = int.Parse(Console.ReadLine()); Email: hoanganton89@gmail.com

Trang 13/56

Hình 10-Kết quả bài tập 10

Bài Tập 11 namespace Bai_tap_11 { Tính và xuất: class Program { Email: hoanganton89@gmail.com

Trang 14/56

Biên soạn: Hoàng Văn Hậu

Hướng dẫn giải bài tập-Nhập Môn Lập Trình

Hình 11-Kết quả bài tập 11

Bài Tập 12 namespace Bai_tap_12 { Tính và xuất: Email: hoanganton89@gmail.com

Trang 15/56

Hướng dẫn giải bài tập-Nhập Môn Lập Trình

Biên soạn: Hoàng Văn Hậu

Email: hoanganton89@gmail.com

Trang 16/56

Biên soạn: Hoàng Văn Hậu

Hướng dẫn giải bài tập-Nhập Môn Lập Trình

Hình 12-Kết quả bài tập 12

Bài Tập 13 namespace Bai_tap_13 { lượng) class Program { struct MAT_HANG { public string Ten_hang; public double So_luong; public double Don_gia; } static void Main(string[] args) { Console.Title = “Bài tập 13”; MAT_HANG[] Mh; double Dgtb; double Tong_tien; Console.Write(“So luong mat hang:”); int n = int.Parse(Console.ReadLine()); Mh = new MAT_HANG[n]; for (int i = 0; i < n; i++) { Email: hoanganton89@gmail.com Trang 17/56

Biên soạn: Hoàng Văn Hậu Console.Write((i + 1) + “nTen hang:”); Mh[i].Ten_hang = Console.ReadLine(); Console.Write(“So luong:”); Mh[i].So_luong = double.Parse(Console.ReadLine()); Console.Write(“Don gia:”); Mh[i].Don_gia = double.Parse(Console.ReadLine());

Hướng dẫn giải bài tập-Nhập Môn Lập Trình

Hình 13-Kết quả bài tập 13

Email: hoanganton89@gmail.com

Trang 18/56

Biên soạn: Hoàng Văn Hậu

Hướng dẫn giải bài tập-Nhập Môn Lập Trình

Bài Tập 14 namespace Bai_tap_14 { tính, ngày sinh, mức lương) các nhân viên tuổi từ 20 đến 40 class Program { struct NHAN_VIEN { public string Ho_ten; public bool Gioi_tinh; public DateTime Ng_sinh; public int Muc_luong; } static void Main(string[] args) { Console.Title = “Bài tập 14 “; NHAN_VIEN[] Nv; NHAN_VIEN[] Nv_1, Nv_2; Console.Write(“So luong nhan vien:”); int n = int.Parse(Console.ReadLine()); Nv = new NHAN_VIEN[n]; for (int i = 0; i < n; i++) { Console.Write((i + 1) + “nHo ten:”); Nv[i].Ho_ten = Console.ReadLine(); Console.Write(“Gioi tinh:”); Nv[i].Gioi_tinh = bool.Parse(Console.ReadLine()); Console.Write(“Ngay sinh:”); Nv[i].Ng_sinh = DateTime.Parse(Console.ReadLine()); Console.Write(“Muc luong:”); Nv[i].Muc_luong = int.Parse(Console.ReadLine()); } Email: hoanganton89@gmail.com

Trang 19/56

Hướng dẫn giải bài tập-Nhập Môn Lập Trình

Hình 14-Kết quả bài tập 14

Email: hoanganton89@gmail.com

Trang 20/56

Cách Giải Rubik 3×3 Đơn Giản Cho Người Mới Bắt Đầu

Để bắt đầu giải Rubik 3×3, bạn cần phải hiểu và nắm rõ các quy ước cơ bản và các kí hiệu Rubik, bao gồm:

1. Hình dạng và màu sắc

Khối Rubik 3×3 được cấu tạo bởi các mảnh được ghép lại thành một khối lập phương 6 mặt. Mỗi mặt của Rubik bao gồm 9 ô vuông và được sơn phủ một trong sáu màu khác nhau, thông thường là trắng, đỏ, vàng, cam, xanh lá cây và xanh dương (một số khối khác thay thế mặt màu trắng bằng màu đen, trong đó Trắng đối diện với vàng, Cam đối diện với Đỏ, Lục đối diện với Lam.)

2. Các mảnh/viên của khối Rubik

Khối Rubik 3×3 bao gồm 26 mảnh/ viên Rubik ghép lại với nhau: 

– Viên trung tâm: gồm 6 viên, mỗi viên trung tâm chỉ có 1 mặt màu, dù bạn quay như thế nào đi nữa thì vị trí của các viên này đều không thay đổi. Như vậy, màu của một viên trung tâm ở một mặt nào đó cũng chính là màu của cả mặt đó.

– Viên cạnh: gồm 12 viên, mỗi viên có 2 mặt màu. Các viên này nằm giữa các cạnh của khối Rubik.

– Viên góc: gồm 8 viên, mỗi viên có 3 mặt màu. Các viên này nằm ở các góc của khối Rubik.

3. Quy ước kí hiệu tên các mặt của khối Rubik

Lưu ý, việc các mặt màu nào được coi là R hay L hay U là tùy thuộc vào cách cầm nắm Rubik của bạn trên tay.

4. Quy ước kí hiệu về cách xoay các mặt 

Quy ước về cách xoay này có ý nghĩa rất quan trọng trong việc học các công thức, do đó đây là phần bạn cần lưu ý để nắm rõ nhất.

– Khi viết chữ cái các mặt in hoa như  R L U D F B: có nghĩa là bạn cần xoay các mặt tương ứng 90 độ theo chiều kim đồng hồ ( tức 1/4 vòng ).

– Khi viết chữ cái các mặt in hoa kèm theo dấu  ‘  như  R’ L’ U’ D’ F’ B’ hoặc chữ  i như  Ri Li Ui Di Fi Bi: có nghĩa là bạn cần xoay các mặt tương ứng 90 độ ngược chiều kim đồng hồ.

– Khi viết chữ cái các mặt in hoa kèm theo số 2 như  R2 L2 U2 D2 F2 B2: có nghĩa là bạn cần xoay các mặt tương ứng 180 độ, theo chiều nào cũng được.

Ví dụ: khi gặp công thức B tức là xoay mặt B cần được xoay 90 độ theo chiều kim đồng hồ thì ta phải để mặt B hướng về phía mình rồi mới xoay 90 độ theo chiều kim đồng hồ. Các mặt khác cũng tương tự.

Thành Thạo Lập Trình C#

Bài tập về mảng 1 chiều:

Bài 1: Viết chương trình cho phép người dùng nhập vào từ bàn phím một dãy số nguyên: a1, a2, …, an. Sau đó thực hiện các yêu cầu sau:

a)Tính tổng, trung bình cộng của tất cả các phần tử trong dãy.

b)Tìm giá trị lớn nhất (max) của dãy và in ra vị trí của các phần tử có giá trị = max.

c)Cho người dùng nhập 1 số x từ bàn phím, tìm và in ra vị trí của phần tử  trong dãy có giá trị bằng  x.

Bài 2: Viết chương trình cho phép người dùng nhập vào từ bàn phím một dãy số nguyên:

a)Kiểm tra xem dãy có phải là dãy tăng hay không?

b)Kiểm tra xem dãy có tạo thành cấp số cộng hay không?

c)Kiểm tra xem dãy có phải là dãy đối xứng hay không?

Bài 3: Viết chương trình cho phép người dùng nhập vào từ bàn phím một dãy các số thực, sau đó cho phép người dùng:

a)Chèn thêm 1 giá trị x vào vị trí m trong dãy (x và m do người dùng nhập từ bàn phím).

b)Sửa giá trị nằm tại vị trí k thành giá trị mới y (k và y do người dùng nhập từ bàn phím).

c)Xóa phần tử nằm tại vị trí q trong dãy (q do người dùng nhập từ bàn phím).

Bài 4: Viết chương trình cho phép người dùng nhập vào từ bàn phím một dãy các số thực, sau đó cho phép người dùng:

a)Sắp xếp dãy theo chiều tăng dần (hoặc giảm dần),

b)Loại bỏ các phần tử trùng nhau để nhận được một dãy mới mà mỗi giá trị chỉ xuất hiện một lần.

c)Cho người dùng nhập vào từ bàn phím một giá trị x, hãy bổ sung x vào dãy nhận được từ ý b sao cho không làm ảnh hưởng đến tính tăng (hoặc giảm) của dãy.

Bài 5: Viết chương trình cho phép người dùng nhập vào từ bàn phím một dãy các số thực. Loại bỏ khỏi dãy các phần tử có giá trị bằng 0. Sau đó tách dãy nhận được thành 2 dãy con: 1 dãy gồm toàn các số âm, 1 dãy gồm toàn các số dương (làm tương tự với bài toán tách dãy thành hai dãy con: 1 dãy gồm toàn các số chẵn, 1 dãy gồm toàn các số lẻ).

Bài 6: Viết chương trình cho phép người dùng nhập vào từ bàn phím một ma trận các số nguyên [aij]mxn. Sau đó:

a)Tính tổng, trung bình các phần tử của ma trận.

b)Tìm max và in ra vị trí của các phần tử có giá trị = max.

c)Tìm xem hàng nào trong ma trận có tổng lớn nhất (hoặc nhỏ nhất).

Bài 7: Viết chương trình cho phép người dùng nhập vào từ bàn phím 1 ma trận vuông [aij]mxn, sau đó:

a)Kiểm tra xem ma trận vừa nhập có phải là ma trận đơn vị không?

b)Kiểm tra xem ma trận vừa nhập có phải là ma trận đối xứng hay không?

Bài tập về List:

Bài 8: Giải lại Bài 3 (Trong bài tập về mảng 1 chiều) khi sử dụng List.

Bài tập về chuỗi:

Bài 9: Nhập và in ra một chuỗi được nhập vào từ bàn phím. Bài 10: Tìm độ dài của chuỗi (không sử dụng thư viện). Bài 11: Đếm số từ trong chuỗi. Bài 12: Đếm số nguyên âm và phụ âm trong chuỗi.

Lập Trình Mạng Với Java (Bài 6)

Lập trình mạng với java sẽ cho các bạn biết đến các hệ thống mạng khác nhau cùng làm việc thông qua môi trường mạng như mạng LAN, mạng WAN hay mạng Internet. Và lập trình mạng là tạo ra các ứng dụng làm việc với nhau thông qua môi trường mạng như ứng dụng chat Skype, ứng dụng Zalo, …

Các ứng dụng làm việc trong môi trường mạng giao tiếp với nhau thông qua giao thức mạng (network protocol). Trong Java cung cấp hai giao thức mạng phổ biến là TCP (Transmission Control Protocol) và UDP (User Datagram Protocol).

Như vậy, khi hai ứng dụng trên hai máy tính muốn giao tiếp trực tuyến với nhau thì đầu tiên chúng phải thiết lập một kết nối. Sau khi một kết nối được thiết lập, những ứng dụng này có thể gửi và nhận dữ liệu qua lại với nhau dựa trên kêt nối đó.

Lập trình mạng với java – Khái niệm Socket

Một socket là một trong những thiết bị đầu cuối của một liên kết giao tiếp hai chiều giữa hai chương trình đang chạy trên mạng.

Một ứng dụng máy chủ (server) chạy trên một máy tính cụ thể và có một socket ràng buộc với một con số cụ thể và được gọi là cổng (port).

Trên phía máy khách (client), các ứng dụng máy khách cần phải biết tên máy chủ (server name) mà trên đó các ứng dụng máy chủ đang chạy và cổng mà máy chủ đang lắng nghe để tạo một socket và sử dụng socket này để thực hiện kết nối với máy chủ.

Lập trình mạng với java – Sử dụng giao thức TCP

TCP cung cấp một kênh kết nối cho các ứng dụng cần kết nối đáng tin cậy (reliable connections) như HTTP, FTP, … Đối với giao thức này điều kiện tiên quyết là phải thiết lập một kết nối trước khi thực hiện các xử lý tiếp theo.

Xử lý phía server (máy chủ)

Bước 1: Tạo Server socket

Bước 2: Tạo đối tượng nhận dữ liệu từ client

InputStream is = cs.getInputStream();Scanner s = new Scanner(is);

Bước 3: Tạo đối tượng gửi dữ liệu cho client

OutputStream os = cs.getOutputStream();PrintWriter pw = new PrintWriter(os, true);

Bước 4: Xử lý nhận và gửi dữ liệu

String strReceive = s.nextLine();

Xử lý phía client (máy khách)

Bước 1: Tạo Client socket

Socket cs = new Socket(serverName, portNumber);

Bước 2: Tạo đối tượng nhận dữ liệu từ server

InputStream is = cs.getInputStream();Scanner s = new Scanner(is);

Bước 3: Tạo đối tượng gửi dữ liệu cho server

OutputStream os = cs.getOutputStream(); PrintWriter ps = new PrintWriter(os, true);

Bước 4: Xử lý nhận và gửi dữ liệu

String strReceive = s.nextLine();

Lập trình mạng với java – Chương trình mẫu sử dụng giao thức TCP

Phía server

package swing_pkg.networking;import java.io.InputStream;import java.io.OutputStream;import java.io.PrintWriter;import java.net.ServerSocket;import java.net.Socket;import java.util.Scanner;/** * * @author chúng tôi */public class ServerSide { public static void main(String[] args) { try {

Phía client

package swing_pkg.networking;import java.io.InputStream;import java.io.OutputStream;import java.io.PrintWriter;import java.net.Socket;import java.util.Scanner;/** * * @author chúng tôi */public class ClientSide { public static void main(String[] args) { try {

Lập trình mạng với java – Bài tập thực hành

Phía server: Khi người dùng chọn nút “Start“, thực hiện mở và lắng nghe kết nối từ client; tạo đối tượng nhận và gửi dữ liệu.

Phía client: Khi người dùng chọn nút “Connect“, thực hiện kết nối đến server, tạo đối tượng nhận và gửi dữ liệu.

Khi người dùng chọn nút “Send“, thực hiện gửi 2 số mà người dùng đã nhập cho server và nhận kết quả trả về là tổng của 2 số từ server.

Khi người dùng chọn nút lệnh “Exit“, kết thúc chương trình.

Cập nhật thông tin chi tiết về Những Bài Tập Và Lời Giải Cho Người Mới Bắt Đầu Lập Trình Với C# trên website Ictu-hanoi.edu.vn. Hy vọng nội dung bài viết sẽ đáp ứng được nhu cầu của bạn, chúng tôi sẽ thường xuyên cập nhật mới nội dung để bạn nhận được thông tin nhanh chóng và chính xác nhất. Chúc bạn một ngày tốt lành!