1/02/2014

Xóa Thư Mục Windows.old Trên Windows 8

Sau khi bạn refresh hoặc upgrade Windows 8 . . . thì Windows sẽ để lại trên ổ cài đặt hệ điều hành thư mục Windows.old, nó chính là bản win trước đó. Dung lượng có thể rất lớn nên bạn có thể xóa bỏ mà yên tâm là nó sẽ không ảnh hưởng đến hệ thống của bạn.
Cách 1:
Bước 1
Windows + E mở File Explorer
Chuột phải vào ổ cài đặt Windows chọn Properties
Hình 1: File Exploer

Bước 2
Nhấn chọn Disk Clean-Up
Hình 2: Properties
Bước 3
Chờ chương trình hoàn tất
Hình 3: Clean-Up Calculating
Bước 4
Sau đó chương trình Clean up sẽ hiện lên bảng thông báo như thế này. Các bạn chú ý nhấn chọn Clean up system files
Hình 4
Bước 5
Tiếp tục chờ nó hoàn tất
Hình 5
Bước 6
Đây là bước cuối cùng bạn tick vào ô Previous Windows installation(s) rồi nhấn OK để chương trình thực thi. Vậy là đã xóa được thư mục Windows.old
Hình 6
Như vậy là xong !
Cách 2
- Mở Command Prompt với quyền Admin bằng cách vào giao diện metro gõ cmd (bạn cứ mở metro lên và gõ cmd windows tự tìm kiếm)
Hình 7
- Gõ vào lệnh như sau và nhấn Enter
RD /S /Q %SystemDriver%\windows.old
Hình 8
Như vậy là xong !

Làm quen lập trình C#



Một số đặc điểm nổi bật của lập trình C#: Ngôn ngữ lập trình C# có cú pháp ngắn gọn, dễ tiếp cận, sáng sủa, và dễ học cho người mới bắt đầu. Bất cứ khi nào người lập trình cảm thấy khó khăn, thì đều có thể bấm F1 để nhận được hỗ trợ từ MSDN về ý nghĩa từ khóa, về cú pháp câu lệnh,… trong ngôn ngữ C#. C# có đầy đủ các sức mạnh như hỗ trợ cho cấu trúc, thành phần (component), lập trình hướng đối tượng. C# được xây dựng trên nền tảng của hai ngôn ngữ lập trình mạnh nhất là C++ và Java. Mã nguồn C# hoàn toàn có thể được tái sử dụng cho các chương trình, hay ứng dụng khác, vì tất cả các khởi tạo, khai báo và các phương thức đều nằm trong lớp, chỉ cần truyền các lớp này cho các chương trình hay ứng dụng khác chúng ta sẽ sử dụng một cách hiệu quả và nhanh hơn. C# là một ngôn ngữ lập trình mạnh mẽ và sử dụng ở khắp nơi, C# được sử dụng cho nhiều các dự án khác nhau như là tạo ra ứng dụng xử lý văn bản, ứng dụng đồ họa, bản tính, hay thậm chí là những trình biên dịch cho các ngôn ngữ khác. C# không còn đòi hỏi phải chia ra các tập tin header và tập tin nguồn để quản lý những dòng code dễ dàng giống như trong ngôn ngữ C++. Mà tất cả những dữ liệu chúng ta sẽ thấy trong phần khai báo lớp một cách dễ dàng quản lý và chúng ta có thể sử dụng thêm XML , chèn các tag XML để phát sinh tự động các document cho lớp. Interface trong lập trình C# sẽ giúp chúng ta tương tác giữa nhiều lớp mà không cần phải viết lại những thành phương thức có sẵn, nhờ đó các class sẽ có thể sở hữu chung một thuộc tính hoặc thực hiện chung một phương thức nào đó Ngoài ra, khi đã thành thạo lập trình C# thì chúng ta còn có thể dùng C# để viết game XNA rất tuyệt vời với sự hỗ trợ của Microsoft. Ngôn ngữ lập trình C# phải là 100% hướng đối tượng không? Đây cũng là câu hỏi mà chúng ta thường quan tâm khi tiếp cận ngôn ngữ C# hay bất cứ ngôn ngữ lập trình hướng đối tượng nào. Nếu chúng ta quan niệm rằng ngôn ngữ lập trình cần đáp ứng đầy đủ 4 đặc điểm sau: Tính trừu tượng (Abstraction) Tính đóng gói (Encapsulation) Tính đa hình (Polymorphism) Tính kế thừa (Inheritance) thì sẽ là 100% hướng đối tượng, thì ngôn ngữ lập trình C# mà chúng ta đang tìm hiểu đáp ứng đủ 100% hướng đối tượng. Tuy nhiên, C# vẫn chưa hỗ trợ một số tính năng như: các bộ đếm (enums), kiểu giá trị (value types), các phương thức tĩnh (static methods), các lớp tĩnh (static classes). Vì vậy, nếu bạn quan niệm rằng 100% hướng đối tượng thì phải đảm bảo cả những tính năng nêu trên luôn nữa, thì C# lại không phải là một ngôn ngữ lập trình hướng đối tượng thuần túy.

Bài Giải Về Winfrom Thuật Toán Sắp

 
Winfrom c#

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace winformsapxep
{
    public partial class Form1 : Form
    {
        int n = 0, i, tmp;
        int[] a = new int[100];
        string s, s1;
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            txtnhap.Enabled = true;
            txtxuat.Enabled = false;
            btxoa.Enabled = false;
            btthuchien.Enabled = false;

        }

        private void btnhap_Click(object sender, EventArgs e)
        {
            
            btthuchien.Enabled = true;
            btxoa.Enabled = true;
            s = txtnhap.Text;
            i = s.LastIndexOf(" ");
            while (i != -1)
            {
                s1 = s.Substring(i);
                s = s.Substring(0, i);
                a[n] = Convert.ToInt32(s1);
                n++;
                i = s.LastIndexOf(" ");

            }
            a[n] = Convert.ToInt32(s);
            s = " ";
            for (i = n; i >= 0; i--)
            {
                s = s + " " + a[i].ToString();
                txtxuat.Text = s.Trim();
            }

        }

        private void btthuchien_Click(object sender, EventArgs e)
        {
            if (rdtang.Checked == true)
            {
                for ( i = 0; i < n; i++)
              
                    for (int j =i +1; j <= n; j++)
                    
                        if (a[i] > a[j])
                        {
                            tmp = a[i];
                            a[i] = a[j];
                            a[j] = tmp;
                        }
                        s = " ";
                        for (i = 0; i <= n; i++)
                       
                            s = s + " " + a[i].ToString();
                            txtxuat.Text = s.Trim();

                        }
                        if (rdgiam.Checked == true)
                        {
                            for (i = 0; i < n; i++)

                                for (int j = i + 1; j <= n; j++)

                                    if (a[i] < a[j])
                                    {
                                        tmp = a[i];
                                        a[i] = a[j];
                                        a[j] = tmp;
                                    }
                            s = " ";
                            for (i = 0; i <= n; i++)

                                s = s + " " + a[i].ToString();
                            txtxuat.Text = s.Trim();
                        }

                    }

        private void btxoa_Click(object sender, EventArgs e)
        {
            txtnhap.Text = "";
            txtxuat.Text = "";
        }
                }
            }
  
Video Hướng Dẫn

Download Notepad++ 6.5.3 Full

                                                                     Notepad++ 6.5.3
Notepad++ 6.5.3 là một phần mềm soạn thảo miễn phí mã nguồn mở. Đây là một chương trình viết code và thay thế Notepad của Windows hỗ trợ highlight nhiều ngôn ngữ. Notepad++ 6.5.3 chỉ chạy trong môi trường MS Windows.






Dựa trên component Scintilla mạnh mẽ, Notepad ++ được viết bằng C ++ và sử dụng Win32 API và STL đảm bảo tốc độ thực thi cao hơn và kích thước chương trình nhỏ hơn.

Để gõ được tiếng việt có dấu, các bạn vào menu Encoding -> Encode in UTF-8



Đối với các bạn viết code, mình khuyên nên Encoding -> Encode in UTF-8 with out BOM

Những sửa đổi trong phiên bản 6.5.3

  1. Make advanced scrolling optional so it can be disabled in case of touchpad scrolling problem.
  2. Enhance sort lines feature: if several lines are selected, only the selected lines are sorted.
  3. Add hex value column in Ascii Insert Panel.
  4. Enhance performance: prevent switched-in document from being parsed by function list and by document map while these 2 panels are hidden.
  5. Fix the bug that modified tab interface colour settings cannot be saved in stylers configurator.
  6. Fix text crazy flickering while resizing the frame on a specific position.
  7. Fix the context menu not shown for the all other users (accounts) in the same PC.
Download Notepad++ 6.5.3 Full
Link Fshare.vn=> http://www.fshare.vn/file/TMF1AN0XQT
Link Mega.co.nz => https://mega.co.nz/#!tJsnTQgL!bVqozx...-NN5CJhVeogNTk

Thuật toán Sắp xếp xếp chọn - Mô phòng bằng C#

1. Bài toán sắp xếp chọn
Trong quá trình thao tác dữ liệu, sẽ có những trường hợp cần phải sắp xếp dữ liệu trong danh sách theo một thứ tự nào đó theo các yêu cầu. Tùy từng loại cấu trúc dữ liệu khác nhau sẽ có phương án sắp xếp tối ưu cho cấu trúc dữ liệu đó. Xét giới hạn trong kiểu dữ liệu danh sách đơn giản là mảng các phần tử, Sắp xếp chọn – Selection Sort là một kiểu sắp xếp đơn giản nhất, thuật toán rõ ràng, dễ hiểu.
Tư tưởng của của thuật toán này như sau: Sẽ có n – 1 vòng lặp duyệt qua danh sách (n là tổng số phần tử), tại mỗi vòng lặp sẽ chọn phần tử nhỏ nhất đưa lên đầu danh sách. Như vậy sau vòng lặp thứ nhất thu được phần tử nhỏ nhất tại vị trí đầu tiên, sau vòng lặp thứ 2 thu được phần tử nhỏ nhất trong danh sách còn lại (không tính phần tử thứ 2) tại vị trí thứ hai… cứ như vậy cho đến vòng lặp thứ n – 1 sẽ còn 2 phần tử, ta lấy phần tử nhỏ hơn đưa vào vị trí thứ n – 1 và tất nhiên vị trí cuối cùng sẽ là phần tử lớn nhất. Tại mỗi vòng lặp để xác định phần tử có giá trị nhỏ nhất ta cần dùng thêm một vòng lặp bên trong, như vậy sẽ có 2 vòng lặp lồng nhau. Ta nhận thấy rằng, đối với vòng lặp ngoài, khi đến lượt lặp lại thứ 2 thì phần tử đầu tiên sẽ không còn giá trị vì nó đã được đưa vào đúng vị trí, tương tự đến lần lặp thứ 3 thì 2 phần tử đầu tiên không còn giá trị, hay nói cách khác chúng là mảng có tính thứ tự đã được sắp xếp. Cứ như vậy đến lần lặp n – 1 thì n – 2 phần tử đầu tiên sẽ không còn giá trị. Ý nghĩa của việc này nhằm thu hẹp “quãng đường” của vòng lặp bên trong, nhằm tối ưu chi phí.
2. Cài đặt bài toán với mã nguồn Csharp
Chương trình được tổ chức trong class SelectionSort, thuộc tính của class là một mảng số nguyên. Ở phương thức khởi tạo (Constructure) sẽ đưa vào số lượng phần tử của mảng, sau đó gọi tới phương thức createRandom() để khởi tạo ngẫu nhiên giá trị cho mảng. Phương thức show() để xuất các phần tử của mảng ra màn hình. Cốt lõi của class nằm ở phương thức sort()
Trong phương thức sort ta thấy đầu tiên sẽ khởi tạo 2 biến: Min và temp. temp là biến tạm còn Min dùng để lưu giá trị nhỏ nhất ở mỗi vòng lặp. Ta thấy có 2 vòng lặp lồng nhau: Vòng lặp ngoài chạy từ 0 -> array.Length-1 (array.Length là số lượng phần tử của mảng) Vòng lặp bên trong sẽ có số bước lặp giảm dần theo vòng ngoài. Tại đầu mỗi bước của vòng lặp ngoài sẽ xác định phần tử thứ i là phần tử nhỏ nhất (tạm thời) tiếp đó trong vòng lặp trong sẽ tìm xem có phần tử nào có giá trị nhỏ hơn hay không. Mỗi lần kết thúc vòng lặp trong sẽ thu được 1 phần tử nhỏ nhất. Cứ như vậy cho đến khi hết danh sách.
Thuật toán sắp xếp chọn - Mô phỏng bằng C# | Csharp căn bản