thảo luận Học C# trong 28 ngày

Status
Not open for further replies.
Thày
E định học rộng C# 1 tháng, rồi đào sâu C++. Vì cơ bản e chưa có tư duy lập, chưa qua môi trường dev chuyên nghiệp. Giờ đang có thầy dạy nên folow theo thầy thôi :v
day trực tiếp hả. Thầy bà gì dạy ngang trái vậy. C và C++ đã khác, C# nó khác hẳn luôn. Đừng nhìn mấy cú pháp giống chữ thì nói giống. Thầy nói giống thì cuốn gói học thầy khác.
Cú pháp là phần rất nhỏ nhỏ nhỏ trong ngôn ngữ lập trình thôi.
Cách tạo ra cú pháp đó, vì sao nó vậy kia, khác C++ lắm.
Null trong biến này, cách cấp phát trong bộ nhớ này.
vd Cách truyền biến vào hàm 2 thằng nhau cú pháp, nhưng C# nó bỏ biến tham số ở chỗ khác,
 
Thày

day trực tiếp hả. Thầy bà gì dạy ngang trái vậy. C và C++ đã khác, C# nó khác hẳn luôn. Đừng nhìn mấy cú pháp giống chữ thì nói giống. Thầy nói giống thì cuốn gói học thầy khác.
Cú pháp là phần rất nhỏ nhỏ nhỏ trong ngôn ngữ lập trình thôi.
Cách tạo ra cú pháp đó, vì sao nó vậy kia, khác C++ lắm.
Null trong biến này, cách cấp phát trong bộ nhớ này.
vd Cách truyền biến vào hàm 2 thằng nhau cú pháp, nhưng C# nó bỏ biến tham số ở chỗ khác,
Ko, mục đích của thầy khi dạy c# là: nếu có fail c++ thì còn 1 con đường khác là C# để mà mưu sinh bác ạ
 
Ko, mục đích của thầy khi dạy c# là: nếu có fail c++ thì còn 1 con đường khác là C# để mà mưu sinh bác ạ
Nếu bác cân cả 2 thì rất tốt lun. Làm các mảng lập trình cho các module trong Công nghiệp ấy. C# thì cho PLC thì phải. Bữa mới chỉ bài cho 1 bạn đi làm DTvT học C# và sql server làm phần mềm đọc số liệu
 
---update-Ngày thứ 5-------
Sáng: mình k học dc gì
Chiều 3h làm bài đến 5h. Làm xong bài giải pt bậc hai, sử dụng exception để yêu cầu nhập lại số nếu nhập vào ký tự khác số.

5:30 làm tiếp đến 7h 30 dc bài Sorting này , tối trc khi đi ngủ fix bug nốt bài đó từ 9:30-11:30.***trong bài này có:

Mảng
Xây dựng hàm
Tạo đối tượng từ class tự định nghĩa,
1 thuật toán săp xếp cơ bản với 2 vòng for lồng nhau.

Kết thúc 1 tuần bắt đầu học c#. Cảm thấy tuần này trôi qua nhanh quá mà chưa học dc j =((

note cho chủ thớt:
đặt tên biến trong C# thường là camelCase, không phải PascalCase.
tên biến vẫn còn viết theo kiểu abbreviation. tên biến phải generic, không nên ghi là arr để chỉ datatype là array.
TryParse sẽ có exception, nên có try catch.
tách nhỏ function/method ra, quá nhiều if else. Nên sử dụng early return pattern, code sẽ tường minh và gọn gàng hơn.
try catch không nên để trong vòng loop.
 
note cho chủ thớt:
đặt tên biến trong C# thường là camelCase, không phải PascalCase.
tên biến vẫn còn viết theo kiểu abbreviation. tên biến phải generic, không nên ghi là arr để chỉ datatype là array.
TryParse sẽ có exception, nên có try catch.
tách nhỏ function/method ra, quá nhiều if else. Nên sử dụng early return pattern, code sẽ tường minh và gọn gàng hơn.
try catch không nên để trong vòng loop.
Bác học tới OOP chưa
 
Trước giờ dùng early return pattern mà ko biết tên nó lun. Thấy ai code kiểu đó hay hay xong học lõm

code nhiều tự thấy hàm nó dài, tự tách ra, thay vì return ở cuối hàm, thì mình return early. Vừa dễ đọc, vừa gọn, đỡ phải nested if
 
sao bác ko học c++ trước, em đang sinh viên đang học c++, thấy khóa trên đang học c# thì em thấy câu lệnh c# rối hơn c++.
 
sao bác ko học c++ trước, em đang sinh viên đang học c++, thấy khóa trên đang học c# thì em thấy câu lệnh c# rối hơn c++.
Fen đã học đến phần OOP của C++, hàm tạo, hàm hủy chưa mà bảo C# rối hơn :doubt:
 
Last edited:
khổ dâm học cũng phải biết chỗ. Chứ ko phải thấy cái nào cũng học, tẩu hoả chết.
lấy khoá học Trần Duy Thanh về C# mà coi.
sau biết rồi thì muốn coi gì đó coi.
 
mấy bác trong này cho em hỏi tí, em học tới if -else, có bài tập là sử dụng if else để làm trò chơi kéo búa bao đơn giản,
ví dụ: với trường hợp if (giá trị người nhập == giá trị máy )"Hòa", else tùy từng trường hợp thắng thua - Code như thế em làm chạy được ok nhưng có điều nó hơi dài dòng vì sử dụng if- else nhiều quá, thế là mò lên mấy diễn đàn nước ngoài tìm ý tưởng code nhanh hơn mà không sử dụng if else nhiều đồng thời kết quả chạy vẫn ổn :
Console.WriteLine("***** CHAO MUNG BAN DEN VOI TRO CHOI KEO, BUA, BAO*****");
Console.WriteLine(" KEO == 1 \nBUA == 2 \n BAO == 3");
Console.Write("SO BAN CHON LA: ");
int vao, may;
vao = int.Parse(Console.ReadLine());
Random rd = new Random(); // rd tra ve kieu du lieu int
may = rd.Next(1, 3);
Console.WriteLine(" may chon " + may);
if (vao == may)
{
Console.WriteLine("***** HOA *****");
}
else
{
if ((vao + 1) % 3 == may)// tại sao lại sử dụng công thức này ?


{
Console.WriteLine(" ***** THUA ****");
}
else
{

Console.WriteLine("***** THANG *****");
}

}
em vẫn chưa hiểu đoạn if ( vao + 1) % 3 == may) lắm, tại sao chỗ này lại tăng giá trị của người nhập vào thêm 1 rồi chia lấy phần dư cho 3? 3 ở đây là gì ? tại sao lại so sánh giá trị số dư đem so với giá trị của máy, trong khi có giá trị từ đầu vào của người nhập không so
Ví dụ như theo công thức này : không tính trường hợp hòa thì sẽ ra như sau:
ở đây vào giả sử là 1, máy random ra 2
ta có 1+1=2 % 3 thì phần dư là 2 = 2
ở đây vào giả sử là 1, máy random ra 3
ta có 1+1=2 % 3 thì phần dư là 2

ở đây vào giả sử là 2, máy random ra 1
ta có 2+1=3 % 3 thì phần dư là 0
ở đây vào giả sử là 2, máy random ra 3
ta có 2+1=3 % 3 thì phần dư là 0

ở đây vào giả sử là 3, máy random ra 1
ta có 3+1=4 % 3 thì phần dư là 1
ở đây vào giả sử là 3, máy random ra 2
ta có 3+1=4 % 3 thì phần dư là 1
Bác nào thông não giúp em tí :ah: :ah:
 
mấy bác trong này cho em hỏi tí, em học tới if -else, có bài tập là sử dụng if else để làm trò chơi kéo búa bao đơn giản,
ví dụ: với trường hợp if (giá trị người nhập == giá trị máy )"Hòa", else tùy từng trường hợp thắng thua - Code như thế em làm chạy được ok nhưng có điều nó hơi dài dòng vì sử dụng if- else nhiều quá, thế là mò lên mấy diễn đàn nước ngoài tìm ý tưởng code nhanh hơn mà không sử dụng if else nhiều đồng thời kết quả chạy vẫn ổn :
Console.WriteLine("***** CHAO MUNG BAN DEN VOI TRO CHOI KEO, BUA, BAO*****");
Console.WriteLine(" KEO == 1 \nBUA == 2 \n BAO == 3");
Console.Write("SO BAN CHON LA: ");
int vao, may;
vao = int.Parse(Console.ReadLine());
Random rd = new Random(); // rd tra ve kieu du lieu int
may = rd.Next(1, 3);
Console.WriteLine(" may chon " + may);
if (vao == may)
{
Console.WriteLine("***** HOA *****");
}
else
{
if ((vao + 1) % 3 == may)// tại sao lại sử dụng công thức này ?


{
Console.WriteLine(" ***** THUA ****");
}
else
{

Console.WriteLine("***** THANG *****");
}

}
em vẫn chưa hiểu đoạn if ( vao + 1) % 3 == may) lắm, tại sao chỗ này lại tăng giá trị của người nhập vào thêm 1 rồi chia lấy phần dư cho 3? 3 ở đây là gì ? tại sao lại so sánh giá trị số dư đem so với giá trị của máy, trong khi có giá trị từ đầu vào của người nhập không so
Ví dụ như theo công thức này : không tính trường hợp hòa thì sẽ ra như sau:
ở đây vào giả sử là 1, máy random ra 2
ta có 1+1=2 % 3 thì phần dư là 2 = 2
ở đây vào giả sử là 1, máy random ra 3
ta có 1+1=2 % 3 thì phần dư là 2

ở đây vào giả sử là 2, máy random ra 1
ta có 2+1=3 % 3 thì phần dư là 0
ở đây vào giả sử là 2, máy random ra 3
ta có 2+1=3 % 3 thì phần dư là 0

ở đây vào giả sử là 3, máy random ra 1
ta có 3+1=4 % 3 thì phần dư là 1
ở đây vào giả sử là 3, máy random ra 2
ta có 3+1=4 % 3 thì phần dư là 1
Bác nào thông não giúp em tí :ah: :ah:

Chắc công thức bị sai chứ nếu input là 2 máy random ra 3 thì theo công thức này.
0 != 3 => người chơi thắng máy trong khi kết quả là người chơi thua.
Công thức đúng là (input + 1)%3 = may % 3.
Lấy giá trị số dư đem so bởi vì 1 lựa chọn sẽ thua bởi lựa chọn liền sau nó. Nghĩa là nếu input + 1 == may thì người chơi thua. Nhưng với trường hợp cuối là số 3 thì ko tuân theo quy luật đó. Bằng cách % cả 2 vế cho 3 thì chúng ta sẽ khiến quy luật luôn đúng kể cả với số 3, ko cần viết thêm các rẽ nhánh if khác.

Sent from Headmaster's room, Hogwarts School of Witchcraft and Wizardry using vozFApp
 
Chắc công thức bị sai chứ nếu input là 2 máy random ra 3 thì theo công thức này.
0 != 3 => người chơi thắng máy trong khi kết quả là người chơi thua.
Công thức đúng là (input + 1)%3 = may % 3.
Lấy giá trị số dư đem so bởi vì 1 lựa chọn sẽ thua bởi lựa chọn liền sau nó. Nghĩa là nếu input + 1 == may thì người chơi thua. Nhưng với trường hợp cuối là số 3 thì ko tuân theo quy luật đó. Bằng cách % cả 2 vế cho 3 thì chúng ta sẽ khiến quy luật luôn đúng kể cả với số 3, ko cần viết thêm các rẽ nhánh if khác.

Sent from Headmaster's room, Hogwarts School of Witchcraft and Wizardry using vozFApp
lúc nãy em thử chạy mấy lần với giá trị nhập vào 2 nhưng thằng máy nó ít random ra trường hợp 3, chỉ thấy toàn 1 vơi 2 nên toàn kết quả toàn hòa với thắng, nên em cũng thắc mắc chuyện đó, cảm ơn bác đã thông não :p :p :p
 
Status
Not open for further replies.
Back
Top