Thứ Hai, 31 tháng 8, 2015

   Chào các bạn! 
   Hôm nay mình lại tiếp tục Series lập trình C# winform căn bản kèm theo ví dụ thực tế


GIỚI THIỆU
   Một phần mềm hoàn chỉnh không phải lúc nào cũng đưa ra các thông báo cho người dùng bằng MessageBox được, vì khi đó người dùng cần phải ấn vào OK, hoặc tắt MessageBox đi, rất phiền phức. Có một cách khác để thông báo mà các phần mềm khác hay dùng đó chính là dùng control mà mình sẽ giới thiệu hôm nay - NotifyIcon.



   NotifyIcon thường thông báo khi ta đóng phần mềm xuống thanh Taskbar, hoặc thông báo thông tin về update phần mềm, hoặc thông báo thời gian thực thi của một lệnh (-shutdown -s -t chẳng hạn :D ). Cũng như các Control khác, NotifyIcon có các thuộc tính và sự kiện cơ bản.


THUỘC TÍNH CỦA NOTIFYICON



   Icon mình có thể thêm Icon tùy biến ở ngoài vào theo ý thích. Vì mình dùng Win10 nên tạm thời các demo đều là hình ảnh của Win 10 nên các bạn thông cảm.
   Ví dụ: Với đoạn code sau
//Icon trên khay hệ thống
notifyIcon1.Icon = SystemIcons.WinLogo;

//Biểu tượng xuất hiện trên thông báo
notifyIcon1.BalloonTipIcon = ToolTipIcon.Info;

notifyIcon1.BalloonTipText = "IceTea Việt!";
notifyIcon1.BalloonTipTitle = "Thông báo!";

notifyIcon1.ShowBalloonTip(1000);
Thì kết quả sẽ là:

SỰ KIỆN CỦA NOTIFYICON
   
   NotifyIcon có các sự kiện hay dùng như sự kiện Click, DoubleClick. Và thường được dùng kèm với các sự kiện khác của Form.   Ví dụ: Ta muốn làm một thông báo khi đóng (Minimize) chương trình xuống, và khi hiện chương trình lại lại thông báo thêm lần nữa, ta thực hiện với đoạn code sau, với ShowBalloonTip(int_value) là lệnh hiển thị thông báo của NotifyIcon
private void YourForm_SizeChanged(object sender, EventArgs e)
{
if(this.WindowState == FormWindowState.Minimized)
{
notifyIcon1.Icon = SystemIcons.WinLogo;
notifyIcon1.BalloonTipIcon = ToolTipIcon.Info;

notifyIcon1.BalloonTipText = "IceTea Việt!";
notifyIcon1.BalloonTipTitle = "Thông báo!";

//Lệnh gọi thông báo ra màn hình với 1000 là thời gian hiển thị
notifyIcon1.ShowBalloonTip(1000);
}
else if(this.WindowState == FormWindowState.Normal)
{
notifyIcon1.BalloonTipText = "Ứng dụng đã được mở lại";

notifyIcon1.ShowBalloonTip(1000);
}

}
   Thì khi đóng chương trình xuống Taskbar sẽ hiển thị thông báo Notification với tiêu đề là "Thông báo", nội dung là "IceTea Việt". Với thời gian hiển thị là 10 giây. Và tương tự  khi mở lại.
   Trên là những thông tin cơ bản về Control NotifyIcon của C#. Các bạn tham khảo nếu thiếu hay không hiểu gì cứ viêc pm hỏi mình, hoặc comment mình sẽ trả lời ngay.
   Như thường lệ là đoạn code để đoán kết quả:
using System;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private void Form1_Load(object sender, EventArgs e)
{
// When the program begins, show the balloon on the icon for one second.
notifyIcon1.ShowBalloonTip(1000);
}

private void notifyIcon1_MouseDoubleClick(object sender, MouseEventArgs e)
{
// When icon is double-clicked, show this message.
MessageBox.Show("Doing something important on double-click...");
// Then, hide the icon.
notifyIcon1.Visible = false;
}
}
}

TỔNG KẾT
   Đối với chương trình yêu cầu thông báo liên tục, NotifyIcon có thể giúp tích hợp vào hệ điều hành chức năng này. Bằng cách kết hợp các NotifyIcon với các balloonTip, bạn có thể đưa ra những cảnh báo, attention-grabbing hoặc tin nhắn.

Chào các bạn và hẹn gặp lại vào các bài sau!



Chủ Nhật, 23 tháng 8, 2015

Chơi game hacker theo cách của hacker/developer

Who is Mr.Robot?


Đây là một trò chơi về chủ đề hacker dựa theo bộ phim truyền hình đang hot gần đây là Mr.Robot

URL: http://www.whoismrrobot.com/fsociety/

Dù không quá khó và số màn chơi cũng không nhiều nhưng mỗi màn đều khá thú vị. Bài viết này chỉ là đăng một video về màn chơi mà tôi cho rằng nó là hay nhất.
Read More

Thứ Ba, 18 tháng 8, 2015

[AutoIt] Tìm đường dẫn Profile mặc định của Firefox

Nếu bạn nào đã dùng công cụ do mình viết trong bài tối ưu hóa và tăng tốc trình duyệt Firefox thì hẳn bạn sẽ thấy công cụ này tự động tìm đường dẫn thư mục hồ sơ mặc định của Firefox ngay khi mở lên. Trong bài viết này, Juno_okyo sẽ hướng dẫn các bạn viết hàm có chức năng như vậy với ngôn ngữ lập trình AutoIt.

Read More
Bài viết sau đây sẽ hướng dẫn cách connect vào wifi mà không cần  password đơn giản mà hiệu quả. Các bạn sẽ không phải đau đầu đi tìm các phần mềm hack/crack pass wifi nữa mà thông qua pass của máy tính đã connect wifi trước đó.



Cách sau đây áp dụng cho windows 7 nhé. Còn trên win 8 thì mình không chắc. Các công cụ cần thiết để kết nối wifi không cần biết password (mật khẩu) là Wireless Key View (Cái này có trong công cụ Hirent Boot). 




Cách Connect wifi không cần biết pass
Cách Connect wifi không cần biết pass


Hướng dẫn connect wifi không cần biết mật khẩu password:


Về cơ chế là như sau: Chúng ta sẽ dùng chức năng Wireless Key View có trong đĩa Hirent Boot để view key của các mạng wifi. Đối với wifi dạng WPA thì chúng ta có thể view pass trực tiếp được. Nhưng với wifi dạng WPA2 thì không thể có đc mật khẩu chính xác của wifi đó=> phải dùng các kết nối wifi qua Hexkey nhé. Đại loại là như thế đã :D. 

Vào việc luôn nào. Bạn có thể dùng đĩa boot, hay download Wireless Key View ở trên internet về. Tùy bạn, và đây là các cách mà mình tổng hợp được nhé! 


Bật Wireless Key View từ hidrent boot lên:

Đầu tiên, cắm cái usb có hirent boot vào máy chạy win xp. Sau đó mở bộ cài Hirent boot lên, nếu autorun của đĩa chạy thì ta chọn Menu–> Passwords/ Keys –> Wireless Keys Viewer.


Cách Connect wifi không cần biết pass (Ảnh minh họa 1)
Cách Connect wifi không cần biết pass (Ảnh minh họa 1)

Nếu ko thì ta vào theo đường dẫn Ổ Usb:\HBCD\WinTools\WirelessKeyView.bat


Trường hợp có thể nhìn thấy luôn được pass wifi

Trường hợp này thường là wifi dạng WPA. Dưới đây là giao diện của chương trình Wireless Keys Viewer. Ta chọn vào tên wifi mà muốn xem pass và chuột phải, chọn Properties.



Cách Connect wifi không cần biết pass (Ảnh minh họa 2)
Cách Connect wifi không cần biết pass (Ảnh minh họa 2)

Cái chúng ta nhìn thấy đó là: 
  • Key (Hex): Đã đc mã hóa hex 

  • Key (Ascii): Đây chính là pass của wifi mà ta có thể dễ dàng nhìn ra

Cách Connect wifi không cần biết pass (Ảnh minh họa 3)
Cách Connect wifi không cần biết pass (Ảnh minh họa 3)

Vậy là vấn đề đã được giải quyết. Mở máy tính mà ta muốn kết nối vào wifi nhưng chưa có pass kia và gõ pass mới biết vào. Vậy là xong!

Trường hợp không nhìn được pass wifi:

Đó là pass ở Key Ascii không có, hoặc không show lên được hoặc show ra các ký tự đã được mã hóa lằng ngoằng. Mình lấy ví dụ mô tả ở hình này:

Cách Connect wifi không cần biết pass (Ảnh minh họa 4)
Cách Connect wifi không cần biết pass (Ảnh minh họa 4)

Lúc này ta có thể connect đc vào wifi nhưng ta ko biết pass là gì! Bằng cách sử dụng Key Hex

Cách Connect wifi không cần biết pass (Ảnh minh họa 5)
Cách Connect wifi không cần biết pass (Ảnh minh họa 5)

Bạn lưu tất cả các thông tin về wifi đó bằng cách chọn biểu tượng save, chương trình xuất ra 1 file txt bao gồm tất cả thông tin của wifi đó.

Cách Connect wifi không cần biết pass (Ảnh minh họa 6)
Cách Connect wifi không cần biết pass (Ảnh minh họa 6)

Lúc này copy file đó vào usb. Cắm usb vào máy tính cần kết nối wifi nhưng không biết pass kia và 
connect wifi, Sẽ xuất hiện hộp thoại yêu cầu nhập pass wifi. Lúc này bạn copy Key Hex ở file text ta vừa save và paste vào ô yêu cầu pass đó. Bạn sẽ connect đc wifi nhưng sẽ không biết pass là gì.

đồ họa trong c/c++ - graphics.h - visual studio c++

Thứ Hai, 17 tháng 8, 2015

Tối ưu, tăng tốc trình duyệt Firefox

Mozilla Firefox (tên ngắn gọn là Firefox) là một trình duyệt web miễn phí mã nguồn mở được phát triển bởi tập đoàn Mozilla. Hiện tại thì Firefox là một trong những trình duyệt web phổ biến nhất thế giới.

Trong bài viết này, Juno_okyo sẽ chia sẻ với các bạn công cụ do chính tôi viết dựa theo các cấu hình được công khai tại đây để tối ưu và tăng tốc cho trình duyệt Firefox.
Read More
 Giải bài tập của thầy Nguyễn Tấn Trần Minh Khang
Chương 1:
Bài 17: Tính S(n) = x + x^2/2! + x^3/3! + ... + x^n/N!
Bài 28: Cho số nguyên dương n. Tính tổng các ước số nhỏ hơn chính nó
Bài 31: Cho số nguyên dương n. Kiểm tra xem n có phải là số nguyên tố hay không

Bài 32: Cho số nguyên dương n. Kiểm tra xem n có phải là số chính phương hay không
Bài 35:

Bài 39: Tính S(n) = CanBac N + 1(N! + CanBacN((N – 1)! + … + CanBac3(2! + CanBac2(1!))) có n dấu căn

Bài 42: Cho n là số nguyên dương. Hãy tìm giá trị nguyên dương k lớn nhất sao cho S(k)  < n. Trong đó chuỗi k được định nghĩa như sau: S(k) = 1 + 2 + 3 + … + k
Bài 50: Hãy tìm số đảo ngược của số nguyên dương n
Bài 54: Hãy đếm số lượng chữ số nhỏ nhất của số nguyên dương n
Bài 55:
Bài 58:

Bài 61: Hãy kiểm tra các chữ số của số nguyên dương n có giảm dần từ trái sang phải hay không
Bài 64 + 65 + 66: Giải phương trình bậc 1, 2, 4
Bài 74: Tính S(x, n) = 1 – x + x^3/3! – x^5/5! + … + (-1)^n+1 * x^2n+1/(2n + 1)!
Bài 76: Kiểm tra số nguyên 4 byte có dạng 3^k hay không

Chương 2:

Bài 81: Viết chương trình cho tất cả các bài tập chương trước bằng kỹ thuật lập trình hàm(đéo làm)
Chương 3:

Bài 94: Viết chương trình in ra tất cả các số lẻ nhỏ hơn 100 trừ các số 5, 7, 93
Bài 99: Viết chương trình nhập vào 3 số thực. Hãy in 3 số ấy ra màn hình theo thứ tự tang dần mà chỉ dùng tối đa 1 biến phụ

Bài 106 Viết chương trình nhập 1 số nguyên có 3 chữ số.  Hãy in ra cách đọc của số nguyên này
Bài 109: Viết chương trình in bảng cửu chương ra màn hình

Bài 110: Cần có tổng 200000 đồng từ 3 loại giấy bạc 1000 đồng, 2000 đồng, 5000 đồng. Lập chương trình để tìm ra tất cả các phương án có thể

d.      Tam giác  vuông cân rỗng

Sin(x) = x – x^3/3! + x^5/5! + … + (-1)^n . x^2n + 1/(2n + 1)!

Bài 114: Viết lại các bài tập trong chương trước bằng vòng lặp for ( tự làm)
Chương 4:
Bài 118: Viết lại các  bài tập trong chương trước bằng kỹ thuật lập trình hàm



Chương 5:

Bài 132: Viết hàm liệt kê các giá trị chẵn trong mảng 1 chiều các số nguyên

Bài 133: Viết hàm liệt kê các vị trí mà giá trị tại đó là giá trị âm trong mảng 1 chiều các số thực
Kỹ thuật đặt lính canh, các bài tập cơ bản

Bài 141: Hãy tìm vị trí giá trị dương nhỏ nhất trong mảng 1 chiều các số thực. Nếu mảng không có 
giá trị dương thì trả về  -1
Các bài tập luyện tập
Bài 149: Tìm số hoàn thiện cuối cùng trong mảng 1 chiều các số nguyên. Nếu mảng không có số hoàn thiện thì trả về  -1
Bài 151: Hãy tìm số nguyên tố lớn nhất trong mảng 1 chiều các số nguyên. Nếu mảng không có số nguyên tố thì trả về -1

Bài 154: Hãy tìm vị trí giá trị âm nhỏ nhất trong mảng các số thực. Nếu mảng không có số âm thì trả về -1
Bài tập luyện tập tư duy:
Bài 158: Cho mảng 1 chiều các số thực, hãy tìm giá trị x sao cho đoạn [-x, x] chứa tất cả các giá trị trong mảng

Bài 163: Tìm số chính phương đầu tiên trong mảng 1 chiều các số nguyên

Bài 165: Cho mảng 1 chiều các số nguyên. Hãy tìm giá trị đầu tiên có chữ số đầu tiên là chữ số lẻ

Bài 170: Cho mảng 1 chiều các số nguyên. Hãy viết hàm tìm số nguyên tố nhỏ nhất lớn hơn mọi giá trị có trong mảng

Bài 172: Cho mảng 1 chiều các số nguyên. Hãy viết hàm tìm bội chung nhỏ nhất của tất cả các phần tử trong mảng

Bài 175 (*): Cho mảng số thực có nhiều hơn 2 giá trị và các giá trị trong mảng khác nhau từng đôi một. Hãy viết hàm tìm 2 giá trị gần nhau nhất trong mảng (Lưu ý: Mảng có các giá trị khác nhau từng đôi một còn có tên là mảng phân biệt)
Các bài tập tìm kiếm và liệt kê:

Bài 182: Cho mảng 1 chiều các số thực. Hãy viết hàm liệt kê tất cả các giá trị trong mảng có ít nhất 1 lận cận trái dấu với nó
Bài 185: Hãy liệt kê các vị trí mà giá trị tại đó là số chính phương trong mảng 1 chiều các số nguyên

Bài 190: Hãy liệt kê các giá trị có toàn chữ số lẻ trong mảng 1 chiều các số nguyên
Bài 195:

Bài 199: Hãy liệt kê các vị trí mà giá trị tại đó là số nguyên tố trong mảng 1 chiều các số nguyên
Kỹ thuật tính tổng:

Bài 200: Tính tổng các phần tử trong mảng

Bài 210: Tính tổng các giá trị có chữ số đầu tiên là chữ số chẵn trong mảng các số nguyên
Bài 215 (*): Tính khoảng các trung bình giữa các giá trị trong mảng
Kỹ thuật đếm

Bài 230: Liệt kê tần suất xuất hiện các giá trị trong mảng (mỗi giá trị liệt kê 1 lần)






Bài 235: Cho 2 mảng a, b. Liệt kê các giá trị chỉ xuất hiện 1 trong 2 mảng




Bài 239: Hãy đếm số lượng số nguyên tố phân biệt trong mảng



Kỹ thuật sắp xếp

Kỹ thuật thêm
Bài 268: Hãy tạo mảng b từ mảng a các giá trị 0, 1 để mảng có tính chẵn lẻ
Kỹ thuật xóa

Bài 279: Xóa tất cả các phần tử xuất hiện nhiều hơn 1 lần trong mảng
Kỹ thuật xử lý mảng
Bài 291: Biến đổi mảng bằng cách thay giá trị max = giá trị min và ngược lại
Kỹ thuật xử lý mảng con
Bài 302: Đếm số lần xuất hiện của mảng a trong mảng b
Bài 303: Tìm dãy con toàn dương dài nhất
Bài 304(*): Cho mảng a, số nguyên M. Tìm 1 mảng con sao cho tổng các phần tử bằng M
Bài 305(*): Tìm dãy con toàn dương có tổng lớn nhất
Bài 306: Tìm mảng con có tổng lớn nhất
Xây dựng mảng
Chương 6:
Kỹ thuật tính toán

Bài 333: Tính tổng các số hoàn thiện trong ma trận các số nguyên
Kỹ thuật đếm

Bài 341: Đếm số lượng số dương trên biên trong ma trận các số thực
Bài 345(*): Tính tổng các phần tử cực trị trong ma trận các số thực. Một phần tử được gọi là cực trị khi nó lớn hớn các phần tử xung quanh hoặc nhỏ hơn các phần tử xung quanh


Bài 346(*): Đếm số lượng giá trị “Hoàng Hậu” trên ma trận. Một phần tử được gọi là Hoàng Hậu khi nó lớn nhất trên dòng, trên cột và 2 đường chéo đi qua nó


Bài 347(*): Đếm số lượng giá trị “Yên Ngựa” trên ma trận. Một phần tử được gọi là Yên Ngựa khi nó lớn nhất trên dòng và nhỏ nhất trên cột
Kỹ thuật đặt cờ hiệu

Bài 356: Liệt kê chỉ số các dòng chứa toàn giá trị chẵn trong ma trận các số nguyên
Bài 363: Liệt kê các cột tăng dần trong ma trận
Bài 364: Cho 2 ma trận A và B. Kiểm tra xem ma trận A có là ma trận con của ma trận B hay không
Bài 365: Cho 2 ma trận A và B. Đếm số lần xuất hiện của ma trận A trong ma trận B
Kỹ thuật đặt lính canh
Bài 385: Liệt kê các dòng có tổng lớn nhất                                                    

Bài 389: Liệt kê các dòng có nhiều số hoàn thiện nhất
Bài 391(*): Tìm ma trận con có tổng lớn nhất
Kỹ thuật xử lý ma trận

Bài 397: Dịch phải xoay vòng các cột trong ma trận
Bài 399: Dịch trái xoay vòng theo chiều kim đồng hồ các giá trị nằm trên biên ma trận

Bài 404: Xoay ma trận 1 góc 270 độ
Bài 406: Chiếu gương ma trận theo trục ngang
Sắp xếp ma trận

Bài 415 Sắp xếp ptử tăng dần theo hàng và cột: Dùng 2 phương pháp: sử dụng mảng phụ và ko dùng mảng phụ

Bài 424: Sắp xếp giá trị các ptử trong ma trận tăng dần theo dạng ziczac
Bài 428: Cho ma trận A. Hãy tạo ma trận B, B[i][j] = số lượng ptử dương xung quanh A[i][j]
Chương 7

Bài 437: Viết hàm sắp xếp ma trận vuông các số thực tăng dần từ trên xuống dưới và từ trái sang phải
Tính toán

Bài 442: Tổng phần tử chẵn nằm trên biên
Kỹ thuật đặt lính canh
Bài 449: * Cho ma trận vuông A(n x n). Hãy tìm ma trận vuông B(k x k) sao cho tổng các giá trị trên ma trận vuông này là lớn nhất
Kỹ thuật đếm
Bài 452: Đếm phần tử cực đại
Kỹ thuật đặt cờ hiệu

Bài 459: Kiểm tra ma trận có phải là ma phương ko? Ma phương là khi tổng ptử trên các dòng, cột và 2 chéo chính phụ bằng nhau
Sắp xếp

Bài 464: sắp các dòng tăng dần theo tổng dòng
Bài 465: Đưa chẵn về đầu ma trận vuông
Bài 466: * Ma trận vuông A(n x n) với n >=3. Sắp tam giác trên tăng dần từ trên xuống dưới và từ trái sang phải
Bài 467: * Ma trận vuông A với n>=3. Sắp tam giác dưới giảm dần từ trên xuống dưới và từ trái sang phải
Các phép toán trên ma trận
Bài 472: * Ma trận nghịch đảo

Bài 473: * Định thức của ma trận 
Bài 474: * Tạo ma phương bậc n x n
Chương 8
-          Đơn thức
Bài 486: Tính tích 2 đơn thức
Bài 487: Tính đạo hàm cấp 1 đơn thức
Bài 488: Tính thương 2 đơn thức
Bài 489: Tính đạo hàm cấp k đơn thức
Bài 490: Tính giá trị đơn thức tại vị trí x=x0
Bài 491: Định nghĩa toán tử (operator *) cho 2 đơn thức
Bài 492: Định nghĩa toán tử (operator /) cho 2 đơn thức

SourceCode
-          Đa thức
Bài 493: Tính hiệu 2 đa thức
Bài 494: Tính tổng 2 đa thức
Bài 495: Tính tích 2 đa thức
Bài 496: Tính thương 2 đa thức
Bài 497: Tính đa thức dư của phép chia đa thức thứ nhất cho đa thức thứ hai
Bài 498: Tính đạo hàm cấp 1 của đa thức
Bài 499: Tính đạo hàm cấp k của đa thức
Bài 500: Tính giá trị của đa thức tại vị trí x = x0
Bài 501: Định nghĩa toán tử cộng (operator +) cho hai đa thức
Bài 502: Định nghĩa toán tử trừ (operator -) cho hai đa thức
Bài 503: Định nghĩa toán tử nhân (operator *) cho hai đa thức
Bài 504: Định nghĩa toán tử thương (operator /) cho hai đa thức
Bài 505: Tìm nghiệm của đa thức trong đoạn [a, b] cho trước

-          Phân Số
Bài 506: rút gọn phân số
Bài 507: Tính tổng 2 phân số
Bài 508: Tính hiệu 2 phân số
Bài 509: Tính tích 2 phân số
Bài 510: Tính thương 2 phân số
Bài 511: Kiểm tra phân số tối giản
Bài 512: Qui đồng phân số
Bài 513: Kiểm tra phân số dương
Bài 514: Kiểm tra phân số âm
Bài 515: So sánh 2 phân số: hàm trả về 1 trong 3 giá trị: 0,-1,1
Bài 516: Định nghĩa toán tử operator + cho 2 phân số
Bài 517: Định nghĩa toán tử operator – cho 2 phân số
Bài 518: Định nghĩa toán tử operator * cho 2 phân số
Bài 519: Định nghĩa toán tử operator / cho 2 phân số
Bài 520: Định nghĩa toán tử operator ++ cho 2 phân số
Bài 521: Định nghĩa toán tử operator -- cho 2 phân số

SourceCode
-          Hỗn Số
Bài 522: Khai báo dữ liệu để biểu diễn thông tin của một hỗn số
Bài 523 Nhập hỗn số
Bài 524 Xuất hỗn số
Bài 525 Rút gọn hỗn số
Bài 526 Tính tổng 2 hỗn số
Bài 527 Tính hiệu 2 hỗn số
Bài 528 Tính tích 2 hỗn số
Bài 529 Tính thương 2 hỗn số
Bài 530 Kiểm tra hỗn số tối giản
Bài 531 Qui đồng 2 hỗn số


SourceCode
-          Số phức
Bài 532: Khai báo biểu diễn thông tin số phức
Bài 533: Nhập số phức
Bài 534: Xuất số phức
Bài 535: Tính tổng 2 số phức
Bài 536: Tính hiệu 2 số phức
Bài 537: Tính tích 2 số phức
Bài 538: Tính thương 2 số phức
Bài 539: Tính lũy thừa bậc n số phức

SourceCode
-          Điểm trong mặt phẳng Oxy
Bài 540: khai báo dữ liệu điểm OXY
Bài 541: Nhập tọa độ điểm trong mặt phẳng
Bài 542: Xuất tọa độ điểm trong mặt phẳng
Bài 543: Tính khoảng cách giữa 2 điểm
Bài 544: Tính khoảng cách 2 điểm theo phương Ox
Bài 545: Tính khoảng cách 2 điểm theo phương Oy
Bài 546: Tìm tọa độ điểm đối xứng qua gốc tọa độ
Bài 547: Tìm điểm đối xứng qua trục hoành
Bài 548: Tìm điểm đối xứng qua trục tung
Bài 549: Tìm điểm đối xứng qua đường phân giác thứ 1 (y=x)
Bài 550: Tìm điểm đối xứng qua đường phân giác thứ 2 (y=-x)
Bài 551: Kiểm tra điểm thuộc phần tư thứ 1 ko?
Bài 552: Kiểm tra điểm thuộc phần tư thứ 2 ko?
Bài 553: Kiểm tra điểm thuộc phần tư thứ 3 ko?
Bài 554: Kiểm tra điểm thuộc phần tư thứ 4 ko?

SourceCode
-          Điểm trong không gian Oxyz
Bài 555: Khai báo kiểu dữ liệu biểu diễn tọa độ điểm trong không gian Oxyz
Bài 556: Nhập tọa độ điểm trong không gian Oxyz
Bài 557: Xuất tọa độ điểm theo định dạng (x, y, z)
Bài 558: Tính khoảng cách giữa 2 điểm trong không gian
Bài 559: Tính khoảng cách giữa 2 điểm trong không gian theo phương x
Bài 560: Tính khoảng cách giữa 2 điểm trong không gian theo phương y
Bài 561: Tính khoảng cách giữa 2 điểm trong không gian theo phương z
Bài 562: Tìm tọa độ điểm đối xứng qua gốc tọa độ
Bài 563: Tìm tọa độ điểm đối xứng qua mặt phẳng Oxy
Bài 564: Tìm tọa độ điểm đối xứng qua mặt phẳng Oxz
Bài 565: Tìm tọa độ điểm đối xứng qua mặt phẳng Oyz

SourceCode
-          Đường tròn trong mặt phẳng Oxy
Bài 566: Khai báo kiểu dữ liệu để biểu diễn đường tròn
Bài 567: Nhập đường tròn
Bài 568: Xuất đường tròn theo định dạng ((x, y), r)
Bài 569: Tính chu vi đường tròn
Bài 570: Tính diện tích đường tròn
Bài 571: Xét vị trí tương đối giữa 2 đường tròn( không cắt nhau, tiếp xúc, cắt nhau)
Bài 572: Kiểm tra 1 tọa độ điểm có nằm trong đường tròn hay không
Bài 573: Cho 2 đường tròn. Tính diện tích phần mặt phẳng bị phủ bởi 2 đường tròn đó

SourceCode
-          Hình cầu trong không gian Oxyz
Bài 574: Khai báo kiểu dữ liệu để biểu diễn hình cầu trong không gian Oxyz
Bài 575: Nhập hình cầu
Bài 576: Xuất hình cầu theo định dạng ((x, y, z), r)
Bài 577: Tính diện tích xung quanh hình cầu
Bài 578: Tính thể tích hình cầu
Bài 579: Xét vị trí tương đối giữa 2 hình cầu(không cắt nhau, tiếp xúc, cắt nhau)
Bài 580: Kiểm tra 1 tọa độ điểm có nằm bên trong hình cầu hay không

-         -          Tam giác trong mặt phẳng Oxy
Bài 581: Khai báo kiểu dữ liệu để biểu diễn tam giác trong mặt phẳng Oxy
Bài 582: Nhập tam giác
Bài 583: Xuất tam giác theo định dạng ((x1, y1); (x2, y2); (x3, y3))
Bài 584: Kiểm tra tọa độ 3 đỉnh có thật sự lập thành 3 đỉnh của 1 tam giác không
Bài 585: Tính chu vi tam giác
Bài 586: Tính diện tích tam giác
Bài 587: Tìm tọa độ trọng tâm tam giác
Bài 588: Tìm 1 đỉnh trong tam giác có hoành độ lớn nhất
Bài 589: Tìm 1 đỉnh trong tam giác có tung độ nhỏ nhất
Bài 590: Tính tổng khoảng cách từ điểm P(x, y) tới 3 đỉnh của tam giác
Bài 591: Kiểm tra 1 tọa độ điểm có nằm trong tam giác hay không
Bài 592: Hãy cho biết dạng của tam giác(đều, vuông, vuông cân, cân, thường)
SourceCode
-          Ngày
Bài 593: Khai báo kiểu dữ liệu để biểu diễn ngày
Bài 594: Nhập ngày
Bài 595: Xuất ngày theo định dạng (ng/th/nm)
Bài 596: Kiểm tra năm nhuận
Bài 597: Tính số thứ tự ngày trong năm
Bài 598: Tính số thứ tự ngày kể từ ngày 1/1/1
Bài 599: Tìm ngày khi biết năm và số thứ tự của ngày trong năm
Bài 600: Tìm ngày khi biết số thứ tự ngày kể từ ngày 1/1/1
Bài 601: Tìm ngày kế tiếp
Bài 602: Tìm ngày hôm qua
Bài 603: Tìm ngày kế đó k ngày
Bài 604: Tìm ngày trước đó k ngày
Bài 605: Khoảng cách giữa 2 ngày
Bài 606: So sánh 2 ngày
Tính thứ của ngày bất kỳ trong năm(Dùng CT Zeller)


SourceCode
Bài 607: Hãy khai báo kiểu dữ liệu để biểu diễn thông tin của 1 tỉnh (TINH). Biết rằng một tỉnh gồm những thành phần sau:
-          Mã tỉnh: Kiểu số nguyên 2 byte
-          Tên tỉnh: Chuỗi tối đa 30 ký tự
-          Diện tích: Kiểu số thực
Sau đó viết hàm nhập, xuất cho kiểu dữ liệu này
Bài 608: Hãy khai báo kiểu dữ liệu để biểu diễn thông tin của một hộp sữa (HOPSUA). Biết rằng một hộp sữa gồm các thành phần sau:
-          Nhãn hiệu: chuỗi tối đa 20 ký tự
-          Trọng lượng: kiểu số thực
-          Hạn sử dụng: Kiểu dữ liệu Ngày (NGAY)
Sau đó viết hàm nhập, xuất cho kiểu dữ liệu này
Bài 609: Hãy khai báo kiểu dữ liệu để biểu diễn thông tin của 1 vé xem phim (VE). Biết rằng 1 vé xem phim gồm những thành phần sau:
       -     Tên phim: Chuỗi tối đa 20 ký tự
-          Giá tiền: kiểu số nguyên 4 byte
-           Xuất chiếu: kiểu thời gian (THOIGIAN)
-          Ngày xem: kiểu dữ liệu ngày (NGAY)
Sau đó viết hàm nhập, xuất cho kiểu dữ liệu này
Bài 610: Hãy khai báo kiểu dữ liệu để biểu diễn thông tin của một mặt hang (MATHANG). Biết rằng một mặt hang gồm những thành phần sau:
-          Tên mặt hàng: chuỗi tối đa 20 ký tự
-          Đơn giá: kiểu số nguyên 4 byte
-          Số lượng tồn: kiểu số nguyên 4 byte
Sau đó viết hàm nhập, xuất cho kiểu dữ liệu này
Bài 611: Hãy khai báo kiểu dữ liệu để biểu diễn thông tin của một chuyến bay. Biết rằng một chuyến bay gồm những thành phần sau:
-          Mã chuyến bay: chuỗi tối đa 5 ký tự
-          Ngày bay: kiểu dữ liệu ngày
-          Giờ bay: kiểu thời gian
-          Nơi đi: chuỗi tối đa 20 ký tự
-          Nơi đến: chuỗi tối đa 20 ký tự
Sau đó viết hàm nhập, xuất cho kiểu dữ liệu này


Bài 612: Hãy khai báo kiểu dữ liệu để biểu diễn thông tin của một cầu thủ. Biết rằng một cầu thủ gồm những thành phần sau:
-          Mã cầu thủ: chuỗi tối đa 10 ký tự
-          Tên cầu thủ: chuỗi tối đa 30 ký tự
-          Ngày sinh: kiểu dữ liệu ngày
Sau đó viết hàm nhập, xuất cho kiểu dữ liệu này
Bài 613: Hãy khai báo kiểu dữ liệu để biểu diễn thông tin của một đội bóng. (DOIBONG). Biết rằng một đội bóng gồm những thành phần sau:
-          Mã đội bóng: chuỗi tối đa 5 ký tự
-          Tên đội bóng: chuỗi tối đa 30 ký tự
-          Danh sách các cầu thủ: mảng 1 chiều các cầu thủ (tối đa 30 phần tử)
Sau đó viết hàm nhập, xuất cho kiểu dữ liệu này
SourceCode
Bài 614: Hãy khai báo kiểu dữ liệu để biểu diễn thông tin của một nhân viên (NHANVIEN). Biết rằng một nhân viên gồm những thành phần sau:
-          Mã nhân viên: chuỗi tối đa 5 ký tự
-          Tên nhân viên: chuỗi tối đa 30 ký tự
-          Lương nhân viên: kiểu số thực
Sau đó viết hàm nhập, xuất cho kiểu dữ liệu này
Bài 615: Hãy khai báo kiểu dữ liệu để biểu diễn thông tin của một thí sinh (THISINH). Biết rằng một thí sinh gồm những thành phần sau:
-          Mã thí sinh: chuỗi tối đa 5 ký tự
-          Họ tên thí sinh: chuỗi tối đa 30 ký tự
-          Điểm toán: kiểu số thực
-          Điểm lý: kiểu số thực
-          Điểm hóa: kiểu số thực
-          Điểm tổng cộng: kiểu số thực
Sau đó viết hàm nhập, xuất cho kiểu dữ liệu này
Bài 616: Hãy khai báo kiểu dữ liệu để biểu diễn thông tin của một luận văn (LUANVAN). Biết rằng một luận văn gồm những thành phần sau:
-          Mã luận văn: chuỗi tối đa 10 ký tự
-          Tên luận văn: chuỗi tối đa 100 ký tự
-          Họ tên sinh viên thực hiện: chuỗi tối đa 30 ký tự
-          Họ tên giảng viên hướng dẫn: chuỗi tối đa 30 ký tự
-          Năm thực hiện: kiểu số nguyên 2 byte
Sau đó viết hàm nhập, xuất cho kiểu dữ liệu này
Bài 617: Hãy khai báo kiểu dữ liệu để biểu diễn thông tin của một học sinh (HOCSINH). Biết rằng một lớp học gồm những thành phần sau:
-          Tên học sinh: chuỗi tối đa 30 ký tự
-          Điểm toán: kiểu số nguyên 2 byte
-          Điểm văn: kiểu số nguyên 2 byte
-          Điểm trung bình: kiểu số thực
Sau đó viết hàm nhập, xuất cho kiểu dữ liệu này
Bài 618: Hãy khai báo kiểu dữ liệu để biểu diễn thông tin của một lớp học (LOPHOC). Biết rằng một lớp học gồm những thành phần sau:
-          Tên lớp: chuỗi tối đa 30 ký tự
-          Sĩ số: kiểu số nguyên 2 byte
-          Danh sách các học sinh trong lớp ( tối đa 50 học sinh)
Sau đó viết hàm nhập, xuất cho kiểu dữ liệu này

SourceCode
Bài 619: Hãy khai báo kiểu dữ liệu để biểu diễn thông tin của một sổ tiết kiệm (SOTIETKIEM). Biết rằng một sổ tiết kiệm gồm những thành phần sau:
-          Mã sổ: chuỗi tối đa 5 ký tự
-          Loại tiết kiệm: chuỗi tối đa 10 ký tự
-          Họ tên khách hàng: chuỗi tối đa 30 ký tự
-          Chứng minh nhân dân: kiểu số nguyên 4 byte
-          Ngày mở sổ: kiểu dữ liệu ngày
-          Số tiền gửi: kiểu số thực
Sau đó viết hàm nhập, xuất cho kiểu dữ liệu này
Bài 620: Hãy khai báo kiểu dữ liệu để biểu diễn thông tin của một đại lý (DAILY). Biết rằng một đại lý gồm những thành phần sau:
       -     Mã đại lý: chuỗi tối đa 5 ký tự
-          Tên đại lý: chuỗi tối đa 30 ký tự
-          Điện thoại: kiểu số nguyên 4 byte
-          Ngày tiếp nhận: kiểu dữ liệu ngày
-          Địa chỉ: chuỗi tối đa 50 ký tự
-          E-Mail: chuỗi tối đa 50 ký tự
Sau đó viết hàm nhập, xuất cho kiểu dữ liệu này

SourceCode
Chương 10: Đệ quy
Đệ quy tuyến tính
Đệ quy nhị phân
Đệ quy hỗ tương
X(0) = 1
Y(0) = 0
X(n) = x(n – 1) + y(n – 1) (n > 0)
Y(n) = 3 * x(n – 1) + 2 * y(n – 1) (n > 0)
Đệ quy phi tuyến
X(0) = 1
X(n) = n^2.x(0) + (n – 1)^2.x(1) + ... + (n – i)^2.x(i) +... + 2^2.x(n – 2) + 1^2.x(n – 1)
Một số bài toán đệ quy thông dụng
Bài toán tháp Hà Nội
Bài 714: Có 3 chồng đĩa đánh số 1, 2 và 3. Đầu tiên chồng 1 có n đĩa được xếp sao cho đĩa lớn hơn nằm bên dưới và hai chồng đĩa còn lại không có đĩa nào. Yêu cầu: chuyển tất cả các đĩa từ chồng 1 sang chồng 3, mỗi lần chỉ chuyển một đĩa và được phép sử dụng chồng hai làm trung gian. Hơn nữa trong quá trình chuyển đĩa phải bảo đảm qui tắc đĩa lớn hơn nằm bên dưới
Bài toán phát sinh hoán vị
Bài 715: Cho tập hợp A có n phần tử được đánh số từ 1, 2, ..., n. Một hoán vị của A là một dãy a1, a2, ... , an. Trong đó (a.i) thuộc A và chúng đôi một khác nhau. Hãy viết hàm phát sinh tất cả các hoán vị của tập hợp A.
Bài toán Tám Hậu
Bài 716: Cho bàn cờ vua kích thước (8 x 8). Hãy sắp 8 quân hậu vào bàn cờ sao cho không có bất kỳ 2 quân hậu nào có thể ăn nhau
Bài toán Mã Đi Tuần
Bài 717: Cho bàn cờ vua kích thước (8 x 8). Hãy di chuyển quân mã trên khắp bàn cờ sao cho mỗi ô đi qua đúng một lần
Đệ quy và mảng 1 chiều
Xuất mảng
Kỹ thuật đếm
Kỹ thuật tính toán
Kỹ thuật đặt cờ hiệu
Kỹ thuật tìm kiếm
Kỹ thuật sắp xếp

Bài 729: Cho mảng 1 chiều các số nguyên. Hãy viết hàm đệ quy sắp xếp các giá trị chẵn trong mảng tăng dần, các giá trị lẻ vẫn giữ nguyên giá trị và vị trí trong mảng
Giải bài tập đệ quy
Bài 737: Tính S(n) = ½ + ¾ + 5/6 + ... + 2n + 1/ 2n + 2

Bài 739: Tính T(x, n) = x^n
Bài 745: Tính S(n) = x + x^2/2! + x^3/3! +…+ x^n/n!
Bài 746: Tính S(n) = 1 + x^2/2! + x^4/4! +…+ x^2n/(2n)!
Bài 750: Tính S(n) = CanBac2(1+CanBac2(2 + CanBac2(3 + … + CanBac2(n - 1 + CanBac2(n)  có n dấu căn
Bài 754: Hãy tính tích các chữ số của số nguyên dương n
Bài 755: Hãy đếm số lượng chữ số lẻ của số nguyên dương n
Bài 756: Hãy tính tổng các chữ số chẵn của số nguyên dương n
Bài 757: Hãy tính tích các chữ số lẻ của số nguyên dương n
Bài 761: Tìm chữ số lớn nhất của số nguyên dương n
Bài 763: Hãy kiểm tra số nguyên dương n có toàn chữ số lẻ hay không
Bài 764: giống bài 763

Chương 11: Con trỏ
-         Con trỏ cơ bản
·         Con trỏ và mảng 1 chiều
-         Con trỏ nâng cao

+ Con trỏ vô kiểu
·         Con trỏ và mảng 2 chiều

+ Nhập xuất
Chương 12: Danh sách liên kết
·       Khai báo
·         Khởi tạo danh sách liên kết
·         Tạo node
·        Thêm 1 node vào đầu danh sách
·         Duyệt danh sách liên kết
·         Nhập danh sách liên kết
·         Chương trình minh họa
Bài 787: Viết chương trình thực hiện các yêu cầu sau:
a.      Nhập danh sách liên kết đơn các số nguyên
b.      Xuất danh sách liên kết đơn các số nguyên
c.       Tính tổng các node trong DSLK
Các bài tập lý thuyết

Bài 792: Lấy node đầu tiên trong danh sách ra khỏi danh sách liên kết
Các bài tập khai báo danh sách
Bài 796: Hãy khai báo cấu trúc dữ liệu cho danh sách liên kết đơn các học sinh. Biết rằng học sinh gồm những thành phần thông tin như sau:
-          Họ tên: tối đa 30 ký tự
-          Điểm toán: kiểu số nguyên
-          Điểm văn: kiểu số nguyên
-          Điểm trung bình: kiểu số thực
Bài 797: Hãy khai báo cấu trúc dữ liệu cho danh sách liên kết đơn các thí sinh. Giả sử thí sinh gồm những thành phần thông tin như sau:
-          Mã thí sinh: tối đa 5 ký tự
-          Họ tên: tối đa 30 ký tự
-          Điểm toán: kiểu số thực
-          Điểm lý: kiểu số thực
-          Điểm hóa: kiểu số thực
-          Điểm tổng cộng: kiểu số thực
Bài 798: Hãy khai báo cấu trúc dữ liệu cho danh sách liên kết đơn các phòng trong khách sạn (PHONG). Giả sử phòng khách sạn gồm những thông tin như sau:
-          Mã phòng: tối đa 5 ký tự
-          Tên phòng: tối đa 30 ký tự
-          Đơn giá thuê: kiểu số thực
-          Số lượng giường: kiểu số nguyên
-          Tình trạng giường: 0 rảnh 1 bận

String
Viết lại các hàm String

Hàm ITOA
Tập tin:
Các ví dụ:
-          Sao chép tập tin
-          Kiểm tra tình trạng tập tin

-         -    Nhập mảng từ File
Dùng tập tin lưu và xử lý dữ liệu
-          Đếm số chữ cái
-          Đếm số dòng
-          Đếm số từ
-          Thống kê các từ
-          Tìm chuỗi ký tự
-          Tìm số dương nhỏ nhất
-          Tìm số lớn nhất
-          Tính tổng các số thực

Categories

Sample Text

Được tạo bởi Blogger.

Must Read

Biểu mẫu liên hệ

Tên

Email *

Thông báo *

Popular Posts

Video

Popular Posts

Our Facebook Page