Thứ Ba, 25 tháng 3, 2014

Những thao tác cơ bản khi sử dụng HDH Windows trên máy tính của bạn

Posted by Z-CLICK Thứ Ba, tháng 3 25, 2014, under | No comments

Bài này mình chia sẻ kinh nghiệm bản thân + học lớm được khi dùng HDH Windows.

I. Cấu hình máy :
Mình sẽ nêu lên cấu hình máy tối thiểu ( theo mình thấy chứ không phải MS nha !) để bạn cài được tất cả cá HDH Windows bản 32 bit có trên thị trường ( mới nhất là Winodws 8.1 )
1. CPU : core 2 >=1.2 Ghz
2. Ram : 2 G
3. Ổ cứng HDD, SSD : 100 G
4. Ổ DVD ( không cần thiết lắm, có càng tốt )
5. Cổng USB : 2.0, 3.0

II. Cài đặt :
Các bạn nên cài Windows từ USB( tránh cài từ đĩa quang dễ bị lỗi là đĩa trầy xướt ), USB bạn nên chọn mua loại mỏng nhỏ - loại này đọc tốt hơn loại dày, to . Khi cài Windows bằng USB bạn chú ý khi mà máy báo sẽ reset lại, khi đó bạn canh mà màn hình máy không còn hiện gì thì rút USB ra. Ngoài ra chuẩn định dạng cài đặt có 2 loại: MBR ( đây là chuẩn thông thường, nếu bạn chưa rành nên dùng chuẩn này ), UEFI-GPT ( đây là chuẩn mới, boot vào Windows nhanh nhưng tạo Ghost khó, nếu chưa rành đừng vọc coi chừng mất hết data vì thật chất thì boot nhanh hơn chả là bao ). Phân vùng chứa hệ điều hành ít nhất là 80G, thường thì là 100G, 120G nó chạy mới tốt .Trước khi cài Windows bạn nên sạc đầy PIN, để PIN ,cắm Adapter để đảm bảo có điện suốt trong quá trình cài đặt . Đối với các bạn cài Windows 8, 8.1 thì nên tạo tài khoản Microsoft Account không nên dùng Local Account ( khi bạn ra tiệm cài đặt thì họ hay cài cho bạn tài khoản Local Acount ) . Bạn nên cài Winsows , rồi sau đó Active bằng key bản quyền nha ( hiện tại có nhiều trang mạng nhận Active Free ).
 * key active online windows 7 32 bit pro : CR969-BP6X6-7JDVR-CHX7G-YVWC4

Các bước cài Windows bằng USB : 
Đây là phần cài trên máy ảo, nó không có phần nhập key lúc cài vì thế các bạn tìm key cho phiên bản windows trước khi cài, ghi ra giấy nha . Và không có phần tạo tài khoản MS Account chỉ có Local Account .

Tạo USB Boot :
1. Tải công cụ tạo boot từ MS : Windows7-USB-DVD-tool
http://www.microsoftstore.com/store/msusa/html/pbPage.Help_Win7_usbdvd_dwnTool

2. Cài đặt công cụ trên :


3. Format USB , chọn kiểu định dạng là " FAT32 " :

4. Bây giờ mở tool lên :

5. Nhấp nút " Browse " tìm đến file cài đặt windows " *.ISO " ( file này bạn tải trước nha- file cài đặt windows ) :

6. Nhấp " Next "

7. Nhấp mục " USB Device "

8. Nhấp chọn tên USB , nhấp nút " Begin copying " :


9. Rót ly trà  ngồi nhâm - đợi tiến trình tạo Boot tầm 15-20 phút

10 . Khi nào tiến trình tạo báo 100% thì đóng lại


11. Xem USB đã tạo boot windows



Cài Windows :
1. Cấm USB đã tạo boot trên vào máy cần cài
2. Khởi động lại máy
3. Chỉnh Option Boot trên main để Boot từ USB


 * sau khi thiết lập xong ( lúc này nhớ cấm USB vào cổng USB nha ), thì tiếp hành cài đặt .
4 . Bắt đầu tiến trình cải windows :
a . Đợi tiến trình cài đặt khởi động giây lát, sau đó ta chọn ngôn ngữ ... như hình :



b. chọn phần vùng cài windows- phân vùng này bạn nhấp chọn nó rồi nhấp nút " format "  để xóa sạch dữ liệu có trên nó trước khi cài . Nếu muốn chia phân vùng nào làm nhiều phân vùng nhỏ thì nhấp chọn nó rồi nhấp nút " new" , sau đó định dung lượng cần chia -> " apply ".

c . Rót ly tràn ,ngồi nhâm nhi, đợi tiến trình cài đặt :

d. Khi các tiến trình trên chạy hết 100% , máy sẽ báo 10s nữa hệ thống sẽ khỡi đọng lại, lúc này bạn canh khi nào màn hình khong còn hiện gì nữa thì rút USB ra . Nếu không rút , sau khi máy khởi động lại , nó lại thực hiện cài đặt lại từ đầu .

f. Sau khi máy khởi động lại, nó tiếp tục thiết lâp hệ thống, điều bạn chú ý là việc tạo tài khoản : Local Account  ( hạn chế việc cài ứng dụng như dễ reset mật khẩu đăng nhập khi quên ) hoặc là MS Account ( khó reset mật khẩu đăng nhập khi quên- chỉ có cách liên hệ MS ).













III.  Tùy chỉnh Windows :
Phần này khá dài vì mình viết chi tiết để các bạn thao khảm dễ !

1. Cài bàn phím, ngôn ngữ Tiếng Anh : Đố với Windows 8, 8.1 các bạn sẽ bị lỗi font như: không gõ được chữa ư, ă , ... , chỉ chuyển được kiểu font 1 từ khi dùng MS Office . Do đó các bạn nên loại bỏ ngôn ngữ cũng như bàn phím Tiếng Việt đi.




2. Check bỏ một số mục trong "Advanced" : tùy theo sở thích của các bạn, bạn nên check bỏ bớt máy tính bạn sẽ mượt hơn .

3. Tạo Ram ảo : nếu máy bạn ít Ram nên tạo Ram ảo, Ram ảo giúp máy bạn nhanh hơn tí đối với bạn mở 1-3 chương trình nhưng dễ dính lỗi " ổ cứng load  cao " . Dung lượng Ram ảo bạn tạo như sau : giả sử bạn có dung lượng ram thật là X thì bạn giá trị mục "Initial size ": 1.5*X , mục "Maximun size " : 3*X , sau đó nhấp " Set" -> Ok ,rồi reset máy



4. Driver : Khi bạn cài Windows 8, 8.1 thì hầu như nhận đủ driver, chỉ cài lại driver card màn hình thôi .Còn những phiên bản trước cài tất tần tật . Nếu bạn cài thì vào Device Manager xem cái nào có dấu chám than màu vàng thì cài như hình.



* Không nhất thiết Driver mới nhất mới dùng được . Khi Windows mới phát hành tầm một tháng trở lại thì bạn nên dùng Driver phiên bản trước sẽ tốt hơn .

5. Auto : bỏ chế độ tự chạy khi cấm USB, bỏ đĩa vào ổ đĩa ,... . Vì nếu tự chạy thì lỡ như USB có Virut thì úm đòn liền .

6. Pin : Bạn chỉnh chế độ pin như : gặp máy thì sleep, không đụng tới phím chuột máy tắt màn hình trong 3p, ...

* Khi dùng Laptop, bạn không nên gởi pin rồi cấm Adapter làm vậy dễ hư máy, bạn nên gắn pin vừa cấm Adapter vừa dùng khi nào lượng diện áp tăng thì nó sẽ tải qua pin - không tải trực tiếp vào máy . Việc pin chay không phải vừa cắm sạc vừa dùng, pin chay phụ thuộc vào nguyên liệu làm pin, môi trường . Môi trường là yếu tố quang trọng nhất - nhiệt độ cao tuổi thọ pin ngắn . Vì thế khi vừa gắn pin vừa cắm sạc dùng thì bạn bảo đảm máy không quá nóng , cứ tầm 3 ngày dùng thì nên dùng pin cạn đến còn 10% thì sạc ( xả pin ).

7. Màn hình Desktop : Bạn nên bố trí màn hình Desktop sao cho có khoa học chút đừng cái khỉ khô gì cũng đưa ra Desktop ( khoe hàng máy ta dữ dằn có nhiều thứ : )) ). Những ứng dụng nào dùng hằng ngày thì để  trên Taskbar là ok rồi .


8. Nhóm đối tượng theo chỉ mục ở Start Menu : Windows 8. 1 cung cấp cho ta một tùy chỉ khó thú vị là nhớm đối tượng theo từng chỉ mục riêng ở giao diện Start Menu , nó giúp chúng ta truy cạp nhanh, dễ tìm kiếm hơn khi mà ứng dụng trên máy bạn nhiều .


9. Tính năng  " Frequent " , "Pinned " , " Resent " : Sử dụng tính năng truy cập nhanh tới những ứng dụng dùng trước kia -> nhấp phài lên biểu tượng chương trình mà ta để trên Taskbar .


10. Tính năng " Search " app : ở phiên bản windows 8, 8.1 cung cấp tính năng này giúp ta tìm và mở một cách nhanh chóng nhưng nhiều bạn không biết rồi chê này nọ. Để tìm và mở ứng dụng thông thường ở phiên bản trước bạn phải vào " Start " -> ... tìm và mở nó ra , còn phiên bản này thì ta chỉ sử dụng phím " windows key +Q "để mở cửa sổ " Search" , sau đó gõ tầm 2 từ là ký tự đầu tiên của tên ứng dụng cần mở vào " Enter " là ứng dụng mở ngay.

IV . Cài phần mền :
Để đáp ứng nhu cầu công việc chúng ta hằng ngày thì ta phải cài thêm phần mềm vào máy . Theo mình thì thứ tự cài như sau:
1. Driver : windows phiên bản mới thì tự nhận , bạn phải cái lại 1 số như card màn hình, touchpad , hotkey , ... ; phiên bả cũ < 8 thì bạn phải tự cài tất tần tật.

2. Phần mềm diệt Virus :  mình sử dụng chương trình diệt virus mặc định trong windows , các bạn có sử dụng phầm mềm của hãn thứ 3 như " Nis ,Kis , BK , ...

3. Phần mền giải nén : WinRAR, 7ZIP . Mình thì dùng 7-zip ,mã nguồn mở - Free
http://www.7-zip.org

4. Bộ gõ tiếng Việt : Unikey
http://www.unikey.com.vn/

5. Font tiếng Việt : VNI
http://font.vietdesigner.net/2013/01/download-tron-bo-ay-u-font-vni.html

6. Ứng dụng văn phòng : MS Office , bạn nên mua bản quyền, hạn chế bẻ khóa ( có nhiều trang mạng Việt Nam nhận Active miễn phí cho bạn, cái này là bản quyền hẳn hoi chứ không phải bẻ khóa ).

7. Ứng dụng chuyên nghành : mõi người có một công việc khác nhau, dùng ứng dụng khác nhau, ứng dụng có thể trả phí hoặc không thu phí.

8. Phần mềm nghe nhạc, xem phim : windows media player 12 , bạn phải cài thêm : K-lite code mới xem được nhiều định dạng .
http://www.codecguide.com/download_kl.htm

9. Phần mềm biên tập nhạc : Gold Ware : đây là pm biên tập âm thanh khá nổi tiếng bạn nên có khi cần biên tập âm thanh .

10 . Từ điển : Lạc Việt hoặc EVTrans.

* Khi nào rãnh mình "Edit " lại bài viết chi tiết hơn, các bạn thông cảm nha !!!

Thứ Bảy, 28 tháng 12, 2013

Cách khắc phục một số trường hợp ổ cứng load 100 %

Posted by Z-CLICK Thứ Bảy, tháng 12 28, 2013, under | No comments

Khi Windows mới khởi động thì ổ cứng HDD load 80 % - 100 % thì không sao, sau thời gian khởi động tầm 2 phút mà hiện tượng vẫn xảy ra thì hơi bị nguy. Để khắc phục trình trạng trên, chúng ta tiến hành các thao tác như sau :

1. Kiểm tra chương trình nào ngốn ổ cúng :
Các bạn bật " Task Manager " lên, xem chương trình nào làm cho ổ cứng load cao, bạn thử " End task " nó đi xem có hết không . ( thường xảy ra hiện tượng này do các service , xem hình minh họa )
2. Tắt tự sửa chữa Windows 8 Maintenace :
-Vào Control Panel -> Acton Center vào mục Maintenace-> Setting-> Never check for solutions



- Tắt luôn phần auto "Maintenace":


3. Tắt Windows SmartScreen: 
 Thỉnh thoảng làm full Disk nhưng cái khó chịu nhất của nó là khi truy cập vào các ổ nhiều file hay folder ít dùng hoặc lần đầu mở cứ bị giật giật.
-Tắt trong Action Center và nếu không muốn nó cứ nhắc nhở thông báo đã tắt SmartScreen thì chọn Turn of mesages about Windows SmartScreen đi .

4. Tắt chế độ tự sao lưu :

5. Tắt chế độ sử dụng Ram ảo :




6. Tắt chế độ tự updata của windows :
 Tắt chế độ update tự động của windows, bạn phải tự update windows khi nào rãnh không là viêc, vì để chế độ auto thì mỗi khi windows update sẽ sử dụng tài nguyên máy, trong đó có HDD, đôi khi còn phải reset máy nữa , cảm thấy rất phiền trong khi bạn làm việc .

7. Tắt chế độ tự quét của pm virus :
Các phần mềm Anti Virus , ..., khi hoạt động- quét thì phải sử dụng tài nguyên máy rất nhiều, quá trình quét là dò tìm mẫu virus trên máy ( HDD), nên khi chúng hoạt động thì máy bạn ít nhiều ổ cứng phải được sử dụng, do đó tắt chế độ  auto scan đi, scan khi nào rãnh .
8. Sửa lỗi bad ổ cứng :
Đây là lỗi khó chiệu nhất, nếu nặng thì ổ cứng có thể bị hư, bạn phải thay ổ cứng mới. Lỗi này làm ổ cứng load 100% mà khi bạn bật " Task Manager " lên không thấy chương trình nào chiếm dụng ổ cứng hết .
Đầu tiên bạn boot bằng đĩa Hiren's boot -> chọn Boot CD khi menu boot hiện ra.











Thứ Tư, 18 tháng 12, 2013

Ngăn xếp trong C

Posted by Z-CLICK Thứ Tư, tháng 12 18, 2013, under | No comments

I. Lý thuyết :
1. Định nghĩa :
Ngăn xếp ( stack )là một kiểu danh sách tuyến đặc biệt mà phép bổ sung hoặc loại bỏ phần tử luôn thực hiện tại một đầu, gọi là đỉnh( top ). Stack thuộc và loại danh sách hoạt động dựa trên nguyên tắc LIFO (Last- in- First- Out)

2. Cách khai báo :
Khai báo stack :
typedef struct 
{
        int     top;
        int nodes[MAX];
} stack;

Kiểm tra stack rỗng :
int Empty(stack *ps) 
{
        if (ps ->top == -1)
            return(TRUE);
        return(FALSE);
}

Kiểm tra stack đầy:
int Full(stack *s)
{
   if(s->top == MAX-1) return 1;
    else return 0;
}

Thêm phần tử vào đỉnh stack:
void    Push (stack *ps, int x)
{
        if ( ps ->top == -1) {
            printf(“\n stack full”);
            return;
        }
        ps -> top = ps ->top + 1;
        ps -> nodes[ps->top] = x;
}

Lấy phần từ đỉnh stack :
int Pop( stack *s)
{
      if(Empty(s)){
            printf("\n Stack rong");
            return NULL;
            }
       return(s->info[s->top--]);
  }

3. Ví dụ minh họa :
Viết chương trình chuyển đổi số thập phân sang nhị phân .
C1 : Cách viết không dùng stack :
#include<stdio.h>
#include<conio.h>
#define MAX 255
int main()
{
    int x,i=16,matna=0x8000,j=0;//thêm biến j để chặn
    printf("Nhap so: ");
    scanf_s("%d",&x);
    printf("\nKet qua:");
    for(;i;--i)
    {
    if(x&matna)
        {printf("1");j=1;}
    else if(j)printf("0");
    matna>>=1;
    }
    _getch();
    return 0;
    }
C2: Cách viết dùng stack :
// stack_chuyen_doi_co_so.cpp : Defines the entry point for the console application.
#include "stdafx.h"
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
#define MAX 255
void push(int *s, int *top, int x)
{
if (*top == MAX)
{
printf("\n Stack day");
_getch();
exit(0);
}
s[++(*top)] = x;
}
int pop(int *s, int *top)
{
if (*top == 0)
{
printf("\n Stack rong");
_getch();
exit(0);
}
return(s[(*top)--]);
}
int main()
{
int x, s[MAX], top = 0;
printf("\n Nhap so thap phan : ");
scanf_s("%d", &x);
do
push(s, &top, x % 2);
while (x /= 2);
printf("\n So nhi phan sao khi chuyen doi :");
for (; top;)
printf("%d", pop(s, &top));
_getch();
return 0;
}


II. Bài tập :



Thứ Ba, 17 tháng 12, 2013

Cấu trúc trong C

Posted by Z-CLICK Thứ Ba, tháng 12 17, 2013, under | No comments

I. Lý thuyết :
1. Định nghĩa :
Trong lập trình, đôi khi các kiểu dữ liệu cơ sở chưa đủ mềm dẻo để cho cái bài toán thực tế. Các sự vật, hiện tượng trong thực tế rất phức tạp và có nhiều tình nhất khác nhau. Người lập trình có thể định nghĩa các kiểu dữ liệu mới có cấu trúc phù hợp với từng bài toán cụ thể  - Struct (1 loại kiểu dữ liệu có cấu trúc) trong ngôn ngữ lập trình C.
2. Cách khai báo :
Các cách khai báo "struct" :
C1:
struct TênCấuTrúc
{
    KiểuDữLiệu1  ThànhPhần1;
    KiểuDữLiệu2  ThànhPhần2;
    ...
    KiểuDữLiệun  ThànhPhầnn;
};
C2:
typedef struct
{
    KiểuDữLiệu1  ThànhPhần1;
    KiểuDữLiệu2  ThànhPhần2;
    ...
    KiểuDữLiệun  ThànhPhầnn;
}TênCấuTrúc;
C3:
struct TênCấuTrúc
{
    KiểuDữLiệu1  ThànhPhần1;
    KiểuDữLiệu2  ThànhPhần2;
    ...
    KiểuDữLiệun  ThànhPhầnn;
};
typedef struct TênCấuTrúc TênCấuTrúcMới;
3. Ví dụ :

struct hocsinh
{
    char *HoTen;
    int NamSinh;
    float DiemTB;
};

struc phanso
{
    int Tu;
    int Mau;
};
typedef struct phanso PhanSo;

Ví dụ minh họa :
// cau_truc_voi_phan_so.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include<iostream>
#include <stdio.h>
#include <conio.h>
#include <math.h>
struct PhanSo
{
int tu;
int mau;
} a;
void Nhap(PhanSo &ps)
{
printf("\t Nhap vao phan tu so: ");
scanf_s("%d", &a.tu);
printf("\t Nhap vao phan mau so: ");
scanf_s("%d", &a.mau);
ps = a;
}
void Xuat(PhanSo a);
void Xuat(PhanSo a)
{
printf("%d/%d", a.tu, a.mau);
}
int UCLN(int a, int b)
{
a = abs(a);
b = abs(b);
if (a == b) return a;
while (a != b)
if (a > b)
a -= b;
else
b -= a;
return a;
}
void ToiGian(PhanSo &ps)
{
ps.tu = a.tu / UCLN(a.tu, a.mau);
ps.mau = a.mau / UCLN(a.tu, a.mau);
}
void TinhTong(PhanSo a, PhanSo b)
{
PhanSo c;
if (a.mau==b.mau)
{
c.tu = a.tu + b.tu;
c.mau = a.mau;
}
else
{
c.tu = a.tu * b.mau + b.tu * a.mau;
c.mau = a.mau * b.mau;
}
printf("\n \n Tong hai phan so la : ");
Xuat(c);
}
void TinhHieu(PhanSo a, PhanSo b)
{
PhanSo c;
if (a.mau == b.mau)
{
c.tu = a.tu - b.tu;
c.mau = a.mau;
}
else
{ c.tu = a.tu * b.mau - b.tu * a.mau;
c.mau = a.mau * b.mau;
} printf("\n \n Hieu cua hai phan so la :");
Xuat(c);
}
int _tmain(int argc, _TCHAR* argv[])
{
PhanSo ps, ps2;
// Nhap vao phan so thu nhat va toi gian no
printf("\n------------------------------------------");
printf("\n Nhap vao phan so thu 1: \n");
Nhap(ps);
ToiGian(ps);
printf("\n Phan so toi gian la: ");
Xuat(ps);
printf("\n------------------------------------------");
printf("\n------------------------------------------");
// Nhap vao phan so thu hai va toi gian no
printf("\n  Nhap vao phan so thu 2: \n");
Nhap(ps2);
ToiGian(ps2);
printf("\n Phan so toi gian la: ");
Xuat(ps2);
printf("\n------------------------------------------");
// Tinh Tong
TinhTong(ps, ps2); TinhHieu(ps, ps2); _getch();
return 0;
}



II. Bài tập :


Chủ Nhật, 15 tháng 12, 2013

Con trỏ trong C

Posted by Z-CLICK Chủ Nhật, tháng 12 15, 2013, under | No comments

I .Lý thuyết :
1. Định nghĩa:
Con trỏ  là một biến(như bạn khai báo biến thông thường), nhưng biến này đặc biệt ở chỗ là nó lưu trữ địa chỉ của vùng nhớ mà nó trỏ tới.
- Bạn muốn con trỏ trỏ tới một biến (thì con trỏ sẽ lưu trữ địa chỉ của biến đó, một số hexa mà bộ nhớ cấp phát )
- Bạn muốn con trỏ trỏ tới một mảng thì nó lưu trữ địa chỉ của phần tử đầu tiên của mảng đó.
- Bạn muốn con trỏ trỏ tới một hàm thì con trỏ sẽ lưu trữ địa chỉ của hàm đó (lát mình chỉ cách dùng)
- Bạn muốn con trỏ trỏ tới một struct(hình như khi học tới con trỏ thì chưa học tới cái này thì phải – lát mình chỉ)
- Bạn muốn con trỏ trỏ tới người yêu của thằng nào đó thì lưu trữ địa chỉ nhà em nó .
- Con trỏ có thể trỏ tới con trỏ ….

và kiểu của con trỏ bạn có thể dùng là (int, char, array, structure, function, hay con trỏ).

2. Ví dụ minh họa :
VD 1: con trỏ với biến :
code :
// con_tro.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include<conio.h>
void main()
{
int *p;// khai bao bien con tro p
int i = 40; // khai bao bien i co gia tri 40
p = &i;// gan bien i vao bien con tro
printf("\n Gia tri cua bien con tro :%d", *p);
printf("\n Dia chi o nho cua bien con tro :%d", p);
printf("\n");
_getch();
}

VD 2: con tro với mảng :
code :
// con_tro.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include<conio.h>
void main()
{
int arr[] = { 1, 98, 17, 10 };
int *pointer;
pointer = &arr[0];
for (int i = 0; i<4; ++i)
{
printf("\n Gia tri cua phan tu thu %d la: %d", i+1, *(pointer++));
}
printf("\n--------------------------------\n");
for (int i = 0; i<4; ++i)
{
printf("\n Dia chi cua phan tu thu %d la : %d",i+1,  (pointer++) );
}
_getch();
}
VD 3: con trỏ với hàm
code:
// con_tro_ham.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include<malloc.h>
#include<conio.h>
void in_put(int *a, int n)
{
int i;
for (i = 0; i< n; i++)
{
printf("\n Nhap phan tu a[%d]= ", i + 1);
scanf_s("%d", (a + i));
}
}
void out_put(int *a, int n)
{
printf("\n Cac phan tu mang vua nhap :");
for (int i = 0; i<n; i++)
printf("%d ", *(a + i));
}
void main()
{
int *a, n;
printf("\n Nhap so phan tu cua mang : ");
scanf_s("%d", &n);
a = (int *)malloc(n*sizeof(int));
in_put(a, n);
    out_put(a, n);
_getch();
}



VD 4: con trỏ với cấu trúc


Thứ Bảy, 14 tháng 12, 2013

Mảng trong C

Posted by Z-CLICK Thứ Bảy, tháng 12 14, 2013, under | No comments

I. Mảng ( array ):
Là tập hợp gồm các phần tử, mỗi phần tử thì có chỉ số riêng để xác định vị trí của phần tử đó . Chỉ số phần tử là số tự nhiên  ( N), chỉ số đầu tiên là 0 .
Mảng có 2 loại :
 . Mảng một chiều : biểu diễn tập hợp ,có 1 chỉ số ( một dòng ) :0-> n, n là số tự nhiên.
 VD : a[0]= 11. a[1]= 1 , ...
 . Mảng nhiều chiều : biểu diễn tập hợp, có 2 chỉ số ( dòng, cột) : 0 ->n, n là số tự nhiên .
 VD: a[0][0] =2, a[1][2]= 5, ...
Cách khai báo mảng:
Mảng một chiều : kiểu_dữ_liệu  tên_mảng[số_phần_tử];
VD: khai báo mảng số nguyên a có 10 phần tử : int a[10]; và phần tử thứ 5 có giá trị bằng 67 : a[4]=67 ( vì phần tử thứ nhất có chỉ số bằng 0, nên phần tử thứ 5 có chỉ số bằng 4 ).
Mảng nhiều chiều : kiểu_dữ_liệu  tên_mảng[số_phần_tử_cột][số_phần_tử_dòng];
VD: khai báo mảng số nguyên a có 5 phần tử cột ( 5 cột ), 4 phần tử ở dòng ( 4 dòng) : int a[5][4]; và phần tử thứ 5 có giá trị bằng 67 : a[4][0]=67 ( vì phần tử thứ nhất có chỉ số cột bằng 0 chỉ số dòng bằng 0 : a[0][0] , nên phần tử thứ 5 có chỉ số bằng [4][0] ).
   *Mảng một chiều là biểu diễn tập hợp trong Toán học.
   *Mảng nhiều chiều là biểu diễn ma trận trong Toán học.

II. Hàm (function):
Hàm là một khối lệnh được thực hiện khi nó được gọi từ một điểm khác của chương trình. Dạng thức của nó như sau:
type name ( argument1 , argument2 , ...) statement
trong đó:type là kiểu dữ liệu được trả về của hàm name là tên gọi của hàm.arguments là các tham số (có nhiều bao nhiêu cũng được tuỳ theo nhu cầu). Một tham số bao gồm tên kiểu dữ liệu sau đó là tên của tham số giống như khi khai báo biến (ví dụ int x) và đóng vai trò bên trong hàm như bất kì biến nào khác. Chúng dùng để truyền tham số cho hàm khi nó được gọi. Các tham số khác nhau được ngăn cách bởi các dấu phẩy.statement là thân của hàm. Nó có thể là một lệnh đơn hay một khối lệnh..
VD : hàm cộng hai số nguyên
int cong_hai_so_nguyen( int a, int b)
{
int S; // tong hai so nguyen
S=a+b;
return(S);
}
* Bất kỳ chương trình nào dù nhỏ hay lớn đều có  một hàm là "void main () ".

III. Bài tập áp dụng :

Bài tập 1:  Viết chương trình nhập xuất mảng một chiều, thêm, xóa, sửa phần tử ( dùng hàm ).
code :
// mang_mot_chieu.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include <stdio.h>
#include <conio.h>
#include <iostream>
#include <windows.h>
#define size 50
//HAM NHAP MANG
void NhapMang(int arr[], int n)
{
for (int i = 0; i<n; i++)
{
printf("\n Nhap phan tu : arr[%d] = ", i);
scanf_s("%d", &arr[i]);
}
}
//HAM XUAT MANG
void XuatMang(int arr[], int n)
{
for (int i = 0; i<n; i++)
{
printf("%d ", arr[i]);
}
printf("\n");
}
//HAM THEM 1 PHAN TU VAO MANG
void Them(int arr[], int &n)
{
int vitri, giatri;
do
{
printf("\n Nhap vi tri can them: \n");
scanf_s("%d", &vitri);
} while (vitri<1 || vitri>n);
printf("\n Nhap phan tu can them : arr[%d] = ", vitri);
scanf_s("%d", &giatri);
for (int i = n; i>vitri; i--)
{
arr[i] = arr[i - 1];
}
arr[vitri] = giatri;
n++;
}
//HAM XOA 1 PHAN TU KHOI MANG
void Xoa(int arr[], int &n)
{
int vitri;
do
{
printf("\n Nhap vi tri muon xoa: ");
scanf_s("%d", &vitri);
} while (vitri<1 || vitri>n);
for (int i = vitri; i<n - 1; i++)
{
arr[i] = arr[i + 1];
}
n--;
}
//HAM SUA 1 PHAN TU TRONG MANG
void Sua(int arr[], int n)
{
int vitri;
do
{
printf("\n Nhap vi tri muon sua: ");
scanf_s("%d", &vitri);
} while (vitri<1 || vitri>n);
printf("\n Nhap phan tu can sua : arr[%d] = ", vitri);
scanf_s("%d", &arr[vitri - 1]);
}
void main()
{
printf("\t Bai tap Mang 1 chieu \n");
printf("\t -------------------- \n");
//Khai bao
int arr[size];
int n, dem = 0, tong = 0;
//Nhap du lieu
do
{
printf("\n Nhap so phan tu cua mang: ");
scanf_s("%d", &n);
} while (n <= 0 || n>size);
NhapMang(arr, n);
//Xu ly & xuat du lieu
printf("\n Mang nhap vao la:");
XuatMang(arr, n);
printf("\n Cac phan tu co gia tri chan:");
for (int i = 0; i<n; i++)
{
if (arr[i] % 2 == 0)
{
printf("%d ", arr[i]);
dem++;
tong += arr[i];
}
}
printf("\n");
printf("\n  Co %d phan tu chan trong mang\n", dem);
printf("\n Tong cac phan tu chan la: %d\n", tong);
Them(arr, n);
printf("\n Mang sau khi them vao la: \n");
XuatMang(arr, n);
Xoa(arr, n);
printf("\n Mang sau khi xoa la: \n");
XuatMang(arr, n);
Sua(arr, n);
printf("\n Mang sau khi sua la: \n");
XuatMang(arr, n);
printf("\t--------------------\n");
_getch();
}







Thứ Tư, 11 tháng 12, 2013

C/C++

Posted by Z-CLICK Thứ Tư, tháng 12 11, 2013, under | No comments

* Kể từ bài này mình sẽ viết về lập trình C / C++ ,từ căn bản đến nâng cao .

I. Gới thiệu sách :
Các bạn tìm đọc  vài quyển sau nha ! ( Mình không share được vì bản quyền sách , các bạn cố gắn tìm đọc trên internet , dùng thẻ Visa mua: quyển 1 thì tầm vài chục $, quyển 2 trên 100$, quyền 3 vài chục $  : )) )

1 . Brian Kernighan, Dennis Ritchie, The C Programming Language (2nd Edition :238 trang ): kinh điển và phải-đọc cho tất cả những ai muốn học C! ( hầu như 4 năm DH của tui chỉ đọc cuốn này )


2. Randal Bryant, David O'Hallaron, Computer Systems: A Programmer's Perspective ( 2001 :783 trang; 2002: 1078 trang ): cuốn này được dùng cho lớp CS107. Đọc cuốn này và làm bài tập của lớp CS107 sẽ rèn cho bạn kỹ năng lập trình C .

3. David Hanson, C Interfaces and Implementations ( 533 trang ) : muốn  "lên cơ" bida thì phải thường xuyên xem người khác chơi để mà học "đường" mới ; muốn giỏi lập trình thì phải thường xuyên đọc mã của những cao thủ. David Hanson là một cao thủ C và cuốn sách này sẽ chỉ cho bạn nhiều "đường" mới trong việc sử dụng C ( Văn ôn ,võ luyện . Tầm sư học đạo . Tìm cao thủ bái sư  ... )

II .Bài tập thực hành :

 Bài 1 : Viêt chương trình in dòng " helloworld " .

Tạo mới 1 project " helloworld " -> file -> new ->projects





code :
// khai báo thư viện
#inclucde<stdio.h>
// hàm chính
void main ()
{
// xuất ra màn hình
printf("Hello World ! Welcome to Vietnam !");
}

Kiểm tra lỗi : nhấp phím " F5 " để kiểm tra lỗi , thông báo lỗi hiện dưới khung " Output" .
Chạy chương trình : nhấp phím " Ctrl + F5" , kết quả xuất ra của sổ doc .




Bài tập 2 : Viết chương trình tính tổng 2 số nguyên nhập vào từ bàn phím .

Trước đây, để đọc dữ liệu nhập vào phím với ngôn ngữ C dùng " scanf" , những năm gần đây MS thay đổi là "scanf_s", vì thế khi bạn viêt "scanf" thì khi bạn "debug" sẽ thấy thông báo "Wamring ", đây là lỗi cú pháp, chương trình vẫn chạy .

code :
// bien_docgiatri.cpp : Defines the entry point for the console application.
//khai bao thu vien
#include "stdafx.h"
#include<stdio.h>
#include<conio.h>
#include<math.h>
// ham chinh
void main()
{
//khai bao bien
// kieu du lieu bien la so nguyen
int a, b, s;
//doc du lieu nhap vao tu ban phim
printf("\n Nhap gia tri cua a =");
//truoc day doi voi C de doc du lieu nhap vao ban phim dung "scanf"
//bay h chay tren phien ban moi, MS yeu cau "scanf_s", khac ti
scanf_s("%d", &a);
printf("\n Nhap gia tri cua b =");
scanf_s("%d", &b);
s = a + b;
// xuat du lieu xa man hinh
printf("\n Tong cua 2 so vau nhap: %d + %d = %d \n",a,b,s);
_getch();
}

Bải tập 3 : Viết chương trình đọc chuỗi nhập vào từ bàn phím, xuất ra màn hình chuỗi vừa nhập .

code:
// doc_xuat_chuoi.cpp : Defines the entry point for the console application.
// khai bao thu vien
#include "stdafx.h"
#include<concrt.h>
#include<string.h>
void main()
{
// chuoi la mang, mang nay la mang mot chieu chua ky tu
// khai bao bien cho chuoi
// 50 la so ky tu toi da co trong mang "ten"
char ten[50];
printf("\n Nhap vao ho va ten cua ban :");
// doc chuoi nhap vao tu ban phim
gets_s(ten); printf("\n Ho va ten cua ban la :");
// xuat chuoi vua nhap ra man hinh
puts(ten);
_gettch();
}


Bài tập 4 : Viết chương trình xóa bỏ khoảng trắng thừa trong một chuỗi ( giữa 2 từ liền kề nếu có hơn 2 khoảng trắng thì xóa đi chừa 1 khoảng trắng )

code
// xoa_khoang_trang.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include<stdio.h>
#include<conio.h>
#include<string.h>
#include<ctype.h>
char *trim(char *chuoi)
{
char *p;
while (p = strstr(chuoi, "  "))// 2 khoang trang ke nhau thi xoa 1 khoang trang
memmove(p, p + 1, strlen(chuoi) - (p - chuoi));
if (chuoi[0] == ' ')
memmove(chuoi, chuoi + 1, strlen(chuoi));
if (chuoi[strlen(chuoi) - 1] == ' ')
chuoi[strlen(chuoi) - 1] = 0;
return chuoi;
}
void main()
{
char chuoi[100];
printf("\n Nhap chuoi vao chuoi can chinh sua :"); gets_s(chuoi);
trim(chuoi);
printf("\n Chuoi sau khi da xoa khoang trang thua :"); puts(chuoi);
_getch();
}



Bài tập 5: Viết chương trình nối 2 chuỗi thành 1 chuỗi .

code :
// ghep_chuoi.cpp : Defines the entry point for the console application.
#include "stdafx.h"
#include <stdlib.h>
#include <string.h>
#include <stdio.h>
#include<conio.h>
// khong viet ham
// khong cap phat dong
void main()
{
char s1[100], s2[100];
int i, j;
printf("\n Nhap chuoi thu nhat: ");
gets_s(s1);
printf("\n Nhap chuoi thu hai: ");
gets_s(s2);
for (i = 0; s1[i] != '\0'; ++i);
for (j = 0; s2[j] != '\0'; ++j, ++i)
{
s1[i] = s2[j];
}
s1[i] = '\0';
printf("\n Ket qua sau khi ghep 2 chuoi: %s", s1);
printf("\n");
_getch();
}



* Đến đây mình kết thúc phần đầu về Lập trình C căn bản .
* Phần kế sẽ đi sâu : mảng, con trỏ , cấu trúc .







Thứ Hai, 9 tháng 12, 2013

Pascal

Posted by Z-CLICK Thứ Hai, tháng 12 09, 2013, under | No comments

I. Gới thiệu :
II. Nội dung :
III. Bài tập:

Bài tập 1 : Viết chương trình in dòng chữ " Xin chao" ra mà hình
a. chạy tập tin TPX.exe ( bản không cài đặt ) , nhấp OK .

b. Trong cửa sổ, gõ các dòng sau:
Program HelloWorld;
Uses CRT;
Begin
  Writeln ('Xin chao');
 Write ('Nhap phim Enter de ket thuc !');
Readln;
End.
c. lưu file : Menu Flie ->Save (Crtl +F2) -> gõ tên vào khung ->Ok
d. Xem kết quả : vào menu  Run->Run ( Crtl + F9 )

e. kết thúc chương trình : nhấp phím bất kỳ ( Enter chẳn hạn ).


Bài tập 2 : Tạo file mới , save .

Bài tập 3: Mở flie -> Menu file ->Open -> chọn file cần mở -> Open




Tài Liệu : https://docs.google.com/file/d/0B6JhErFMAx7sQ3RuQW5XTmJBRFU/edit


Xem Nhiều

Bài đăng phổ biến

Lưu trữ blog

Blog Archive