Khoa công nghệ thông tin bài giảng LẬp trình cơ BẢn biên soạn


III. Cấu trúc một chương trình đơn giản



tải về 1.56 Mb.
trang6/29
Chuyển đổi dữ liệu30.08.2016
Kích1.56 Mb.
#28834
1   2   3   4   5   6   7   8   9   ...   29

III. Cấu trúc một chương trình đơn giản

1. Cấu trúc chung


Chương trình sau được viết bằng C, cho phép người sử dụng nhập vào 2 số rồi in ra kết quả là tổng 2 số đó.

Xét chương trình sau:



/* 1. Khai bao su dung thu vien*/

#include

#include

#include



/* 2. Khai bao Kieu du lieu*/

// se de cap o bai sau



/* 3. Khai bao hang */

#define heso 10



/* 4. Khai bao bien */

int a, b;



/* 5. Chuong trinh chinh */

int main()

{ /* Chuong trinh cho phep nhap vao hai so a và b,

Tinh va in ra tong hai so do */

float ketqua; // Khai bao bien a va b

system("cls"); // Xoa man hinh

printf("Nhap vao A va B:"); // Hien thi thong bao huong dan nhap lieu

scanf("%d %d",&a,&b); // Nhap cac gia tri cho a va b tu ban phim

ketqua =float((a+b))/heso;

printf("%d/%d = %0.1f\n",a+b,heso,ketqua);// In ket qua

printf("Nhan phim bat ky de ket thuc!");

getch(); // Doi nhan phim bat ky de tiep tuc

return 0;

}

Kết quả thực hiện chương trình được như hình sau:



.

Về cơ bản C không qui định 1 cách chặt chẽ cấu trúc của một chương trình; C chỉ qui định một chương trình phải có hàm main, và đồng thời đó là chương trình chính của chương trình. Thông thường một chương trình C gồm các phần:



  • Khai báo thư viện;

  • Khai báo biến; hằng;

  • Chương trình chính;

2. Khai báo sử dụng thư viện


Phần khai báo sử dụng thư viện:

Cú pháp:

#include ->

Hoặc


#include “tên thư viện” ->

Ví dụ:

#include

#include

#include

Xem Help để biết danh sách các include file

3. Khai báo hằng, biến, kiểu


Khai báo (định nghĩa) Hằng

Cú phú:


#define Tên_Hằng Giá_tri

Ví dụ:


#define heso 10

Khai báo (định nghĩa) Biến

Cú phú:


Kiểu_Dữ_liệu Danh_sách_Tên_Biến;

Ví dụ:


int a, b;

4. Một số lệnh đơn


  • Lệnh gán

  • Lệnh xóa màn hình

  • Lệnh dừng chương trình

5. Chú thích


Tất cả các dòng bắt đầu bằng hai dấu sổ (//) được coi là chút thích mà chúng không có bất kì một ảnh hưởng nào đến hoạt động của chương trình. Chúng có thể được các lập trình viên dùng để giải thích hay bình phẩm bên trong mã nguồn của chương trình. Trong trường hợp này, dòng chú thích là một giải thích ngắn gọn những gì mà chương trình chúng ta làm.

Trong ngôn ngữ lập trình C, nội dung chú thích phải được viết trong cặp dấu /* và */.


6. Chương trình chính


int main ()

Dòng này tương ứng với phần bắt đầu khai báo hàm main. Hàm main là điểm mà tất cả các chương trình C++ bắt đầu thực hiện. Nó không phụ thuộc vào vị trí của hàm này (ở đầu, cuối hay ở giữa của mã nguồn) mà nội dung của nó luôn được thực hiện đầu tiên khi chương trình bắt đầu. Thêm vào đó, do nguyên nhân nói trên, mọi chương trình C++ đều phải tồn tại một hàm main.

int main()

{

………….



return 0.

}

Theo sau main  là một cặp ngoặc đơn bởi vì nó là một hàm. Trong C++, tất cả các hàm mà sau đó là một cặp ngoặc đơn () thì có nghĩa là nó có thể có hoặc không có tham số (không bắt buộc). Nội dung của hàm main tiếp ngay sau phần khai báo chính thức được bao trong các ngoặc nhọn ( { } ) như trong ví dụ. 



return 0;

Lệnh return kết thúc hàm main và trả về mã đi sau nó, trong trường hợp này là 0. Đây là một kết thúc bình thường của một chương trình không có một lỗi nào trong quá trình thực hiện. Như bạn sẽ thấy trong các ví dụ tiếp theo, đây là một cách phổ biến nhất để kết thúc một chương trình C++.


IV. Nhập/Xuất dữ liệu

1. Nhập dữ liệu từ bàn phím – Hàm scanf()


Là hàm cho phép đọc dữ liệu từ bàn phím và gán cho các biến trong chương trình khi chương trình thực thi. Trong ngôn ngữ C, đó là hàm scanf nằm trong thư viện stdio.h.

Cú pháp:

scanf(“Chuỗi định dạng”, địa chỉ của các biến);

Giải thích:



  • Chuỗi định dạng: dùng để qui định kiểu dữ liệu, cách biểu diễn, độ rộng, số chữ số thập phân... Một số định dạng khi nhập kiểu số nguyên, số thực, ký tự.

    Định dạng

    Ý nghĩa

    %[số chữ số]d

    Nhập số nguyên có tối đa

    %[số chữ số] f

    Nhập số thực có tối đa tính cả dấu chấm

    %c

    Nhập một ký tự

    Ví dụ:

    %d

    Nhập số nguyên

    %4d

    Nhập số nguyên tối đa 4 ký số, nếu nhập nhiều hơn 4 ký số thì chỉ nhận được 4 ký số đầu tiên

    %f

    Nhập số thực

    %6f

    Nhập số thực tối đa 6 ký số (tính luôn dấu chấm), nếu nhập nhiều hơn 6 ký số thì chỉ nhận được 6 ký số đầu tiên (hoặc 5 ký số với dấu chấm)

  • Địa chỉ của các biến: là địa chỉ (&) của các biến mà chúng ta cần nhập giá trị cho nó. Được viết như sau: &.

Ví dụ:

scanf(“%d”,&bien1);/*Doc gia tri cho bien1 co kieu nguyen*/

scanf(“%f”,&bien2); /*Doc gia tri cho bien2 co kieu thưc*/

scanf(“%d%f”,&bien1,&bien2);

/*Doc gia tri cho bien1 co kieu nguyen, bien2 co kieu thuc*/

scanf(“%d%f%c”,&bien1,&bien2,&bien3);

/*bien3 co kieu char*/

Lưu ý:


  • Chuỗi định dạng phải đặt trong cặp dấu nháy kép (“”).

  • Các biến (địa chỉ biến) phải cách nhau bởi dấu phẩy (,).

  • Có bao nhiêu biến thì phải có bấy nhiêu định dạng ;

  • Thứ tự của các định dạng phải phù hợp với thứ tự của các biến ;

  • Để nhập giá trị kiểu char được chính xác, nên dùng hàm fflush(stdin) để loại bỏ các ký tự còn nằm trong vùng đệm bàn phím trước hàm scanf() ;

  • Để nhập vào một chuỗi ký tự (không chứa khoảng trắng hay kết thúc bằng khoảng trắng), chúng ta phải khai báo kiểu mảng ký tự hay con trỏ ký tự, sử dụng định dạng %s và tên biến thay cho địa chỉ biến. ;

  • Để đọc vào một chuỗi ký tự có chứa khoảng trắng (kết thúc bằng phím Enter) thì phải dùng hàm gets().

Một số ví dụ khác:

int biennguyen;

float bienthuc;

char bienchar;

char chuoi1[20], *chuoi2;


  1. Lệnh: scanf(“%3d”,&biennguyen); Nếu ta nhập 1234455 thì giá trị của biennguyen là 3 ký số đầu tiên (123). Các ký số còn lại sẽ còn nằm lại trong vùng đệm.

  2. Lệnh: scanf(“%5f”,&bienthuc); Nếu ta nhập 123.446 thì giá trị của bienthuc là 123.4, các ký số còn lại sẽ còn nằm trong vùng đệm.

  3. Lệnh: scanf(“%2d%5f”,&biennguyen, &bienthuc); Nếu ta nhập liên tiếp 2 số cách nhau bởi khoảng trắng: 1223 3.142325 thì :

    1. 2 ký số đầu tiên (12) sẽ được đọc vào cho biennguyen ;

    2. 2 ký số tiếp theo trước khoảng trắng (23) sẽ được đọc vào cho bienthuc.

  4. Lệnh:scanf(“%2d%5f%c”,&biennguyen,&bienthuc,&bienchar); Nếu ta nhập liên tiếp 2 số cách nhau bởi khoảng trắng: 12345 3.142325 thì :

    1. 2 ký số đầu tiên (12) sẽ được đọc vào cho biennguyen ;

    2. 3 ký số tiếp theo trước khoảng trắng (345) sẽ được đọc vào cho bienthuc ;

    3. Khoảng trắng sẽ được đọc cho bienchar.

Nếu ta chỉ nhập 1 số gồm nhiều ký số như sau: 123456789:

    1. 2 ký số đầu tiên (12) sẽ được đọc vào cho biennguyen ;

    2. 5 ký số tiếp theo (34567) sẽ được đọc vào cho bienthuc ;

    3. bienchar sẽ có giá trị là ký số tiếp theo ‘8’.

  1. Lệnh: scanf(“%s”,chuoi1); hoặc scanf(“%s”,chuoi2); Nếu ta nhập chuỗi như sau: Nguyen Van Huynh ↵ thì giá trị của biến chuoi1 hay chuoi2 chỉ là Nguyen .

  2. Lệnh: scanf(“%s%s”,chuoi1, chuoi2); Nếu ta nhập chuỗi như sau: Duong Van Hieu ↵ thì giá trị của biến chuoi1 là Duong và giá trị của biến chuoi2 là Van.

Vì sao như vậy? C sẽ đọc từ đầu đến khi gặp khoảng trắng và gán giá trị cho biến đầu tiên, phần còn lại sau khoảng trắng là giá trị của các biến tiếp theo.

gets(chuoi1);

Nếu nhập chuỗi : Nguyen Van Lai ↵ thì giá trị của biến chuoi1 là Nguyen Van Lai

2. Xuất dữ liệu ra màn hình - Hàm printf()


Hàm printf (nằm trong thư viện stdio.h) dùng để xuất giá trị của các biểu thức lên màn hình.

Cú pháp:

printf(“Chuỗi định dạng ”, Các biểu thức);

Giải thích:



  • Chuỗi định dạng: dùng để qui định kiểu dữ liệu, cách biểu diễn, độ rộng, số chữ số thập phân... Một số định dạng khi đối với số nguyên, số thực, ký tự.

    Định dạng

    Ý nghĩa

    %d

    Xuất số nguyên

    %[.số chữ số thập phân] f

    Xuất số thực có theo quy tắc làm tròn số.

    %o

    Xuất số nguyên hệ bát phân

    %x

    Xuất số nguyên hệ thập lục phân

    %c

    Xuất một ký tự

    %s

    Xuất chuỗi ký tự

    %e hoặc %E hoặc %g hoặc %G

    Xuất số nguyên dạng khoa học (nhân 10 mũ x)

    Ví dụ

    %d

    In ra số nguyên

    %4d

    In số nguyên tối đa 4 ký số, nếu số cần in nhiều hơn 4 ký số thì in hết

    %f

    In số thực

    %6f

    In số thực tối đa 6 ký số (tính luôn dấu chấm), nếu số cần in nhiều hơn 6 ký số thì in hết

    %.3f

    In số thực có 3 số lẻ, nếu số cần in có nhiều hơn 3 số lẻ thì làm tròn.

  • Các biểu thức: là các biểu thức mà chúng ta cần xuất giá trị của nó lên màn hình, mỗi biểu thức phân cách nhau bởi dấu phẩy (,).

Ví dụ 1:

#include

#include

int main()

{

int bien_nguyen=1234, i=65;



float bien_thuc=123.456703;

printf("Gia tri nguyen cua bien nguyen =%d\n",bien_nguyen);

printf("Gia tri thuc cua bien thuc =%f\n",bien_thuc);

printf("Truoc khi lam tron=%f \n Sau khi lam tron=%.2f",bien_thuc, bien_thuc);

getch();

return 0;

}

Kết quả in ra màn hình như sau:



Lưu ý: Đối với các ký tự điều khiển, ta không thể sử dụng cách viết thông thường để hiển thị chúng. Ký tự điều khiển là các ký tự dùng để điều khiển các thao tác xuất, nhập dữ liệu; một số ký tự điều khiển được mô tả trong bảng sau:



Ký tự điều khiển

Giá trị thập lục phân

Ký tự được hiển thị

Ý nghĩa

\a

0x07

BEL

Phát ra tiếng chuông

\b

0x08

BS

Di chuyển con trỏ sang trái 1 ký tự và xóa ký tự bên trái (backspace)

\f

0x0C

FF

Sang trang

\n

0x0A

LF

Xuống dòng

\r

0x0D

CR

Trở về đầu dòng

\t

0x09

HT

Tab theo cột (giống gõ phím Tab)

\\

0x5C

\

Dấu \

\’

0x2C



Dấu nháy đơn (‘)

\”

0x22



Dấu nháy kép (“)

\?

0x3F

?

Đấu chấm hỏi (?)

\ddd

ddd

Ký tự có mã ACSII trong hệ bát phân là số ddd

\xHHH

oxHHH

Ký tự có mã ACSII trong hệ thập lục phân là HHH

Ví dụ 2:

#include

#include

int main ()

{

printf("\n Tieng Beep \a");



printf("\n Doi con tro sang trai 1 ky tu\b");

printf("\n Dau Tab \tva dau backslash \\");

printf("\n Dau nhay don \' va dau nhay kep \"");

printf("\n Dau cham hoi \?");

printf("\n Ky tu co ma bat phan 101 la \101");

printf("\n Ky tu co ma thap luc phan 41 la \x041");

printf("\n Dong hien tai, xin go enter");

getch();

printf("\rVe dau dong");

getch();

return 0;

}

3. Ví dụ


Ví dụ 1: Viết chương trình cho phép nhập vào 2 số a và b, trình kết quả và phương pháp công 2 số đó theo hình thức sau (với a=876 và b=7655):

876


+

7655


-----------------------------

= 8531


#include

#include

#include

// Chuong trinh chinh

int main()

{

int a,b,tong;



system("cls");

printf("Nhap vao a va b:");

scanf("%d %d",&a,&b);

printf("Ket qua theo phuong phap cong\n\n");

tong=a+b;

printf("%20d\n",a);

printf("%10s\n","+");

printf("%20d\n",b);

printf("%20s\n","--------------------");

printf("%20d\n\n",tong);

printf("Nhan phim bat ky de ket thuc!");

getch();

return 0;

}

Kết quả thực hiện





Каталог: files -> FileMonHoc
FileMonHoc -> NGÂn hàng câu hỏi lập trình cơ BẢn nhóm câu hỏI 2 ĐIỂM
FileMonHoc -> CHƯƠng 2 giới thiệu về LÝ thuyết số
FileMonHoc -> CÁc hệ MẬt khoá CÔng khai kháC
FileMonHoc -> BỘ MÔn duyệt chủ nhiệm Bộ môn
FileMonHoc -> Khoa công nghệ thông tin cộng hòa xã HỘi chủ nghĩa việt nam
FileMonHoc -> Chủ nhiệm Bộ môn Ngô Thành Long ĐỀ CƯƠng chi tiết bài giảNG
FileMonHoc -> Chủ nhiệm Bộ môn Phan Nguyên Hải ĐỀ CƯƠng chi tiết bài giảNG
FileMonHoc -> Khoa: CÔng nghệ thông tin cộng hòa xã HỘi chủ nghĩa việt nam
FileMonHoc -> MẬt mã khóA ĐỐi xứng lý thuyết cơ bản của Shannon
FileMonHoc -> Khoa cntt cộng hòa xã HỘi chủ nghĩa việt nam

tải về 1.56 Mb.

Chia sẻ với bạn bè của bạn:
1   2   3   4   5   6   7   8   9   ...   29




Cơ sở dữ liệu được bảo vệ bởi bản quyền ©hocday.com 2024
được sử dụng cho việc quản lý

    Quê hương