1. Trang chủ
  2. » Giáo án - Bài giảng

Ngôn ngữ lập trình c

57 268 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 57
Dung lượng 343,5 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Viết các chương trình con Trong đó - Phần a dùng để lạp các thư viện cần sử dụng cho chương trình được viết như sau: #include Ví dụ: include - Phần b dùng để định nghĩa các giá trị hằng

Trang 1

Bài 1: Ngôn ngữ lập trình C

I Các khái niệm cơ bản

1 Bảng ký tự sử dụng trong C

Bảng ký tự được sử dụng trong ngôn ngữ lập trình C bao gồm

- Nhóm các chữ cái: chữ in hoa A,B,C…,Z và chữ in thường a,b,c,…,z

Tên sai: ha noi, viet%nam…

Tên có thể do ngôn ngữ C sinh ra để nhằm hai mục đích: thứ nhất làđịnh danh các thành phần có sẵn, thứ hai viết các lệnh trong chương trình.Tên chuẩn là những tên do ngôn ngữ lập trình C đặt ra để định danh cácthành phần

Ví dụ: scanf,printf,getch()…

Từ khoá (key word) là các tên do ngôn ngữ lập trình sinh ra để viết các

lệnh, để định danh các thành phần đặc biệt

Ví dụ: for,while, if, int, float…

Chú ý: tên do chúng ta đặt ra không được phép trùng với từ khoá, khôngnên trùng với các tên chuẩn

3 Các kiểu dữ liệu

bản mã ASCII

1 byte

4 Khái niệm về hằng và biến nhớ

Trang 2

Là một đại lượng có thể thay đổi trong chương trình, biến nhớ được

sử dụng để lưu dữ liệu của chương trình, do vậy nó rất quan trọng tronglập trình, nếu không có biến nhớ thì chúng ta không thể lập trình đượcbởi vì không có chỗ chứa dữ liệu cho việc tính toán và sử lý

5 Các phép toán

Các phép toán trong C gọi là các toán tử (operator), bao gồm:

a Các phép toán số học

- Ký hiệu: +, -,*, /,%

- Ý nghĩa: cộng ,trừ, nhân, chia, chia dư

- Dữ liệu tác động: kiểu số nguyên hoặc số thực

- Kết quả: các phép toán số học cho kết quả là dữ liệu kiểu số

Ví dụ:

2+5, 5*6, 3/2

Chú ý: đối với phép chia(/) nếu hai vế dữ liệu là số nguyên thì máy

sẽ chia lấy phần nguyên, nếu một trong hai vế là số thực thì máy chokết quả chính xác

Ví dụ:

7/4 sẽ cho kết quả là 1(là phần nguyên của 7 chia 4)

7.0/4 hoặc 7/4.0 sẽ cho kết quả là 1.75

7%4 sẽ cho kết quả là 3(là phân dư của 7 chia 4)

b Các phép toán quan hệ

- Ký hiệu: >, <, >=, <=, ==, !=

Trang 3

- Ý nghĩa : lớn hơn, nhỏ hơn, lớn hơn hoặc bằng, nhơ hơn hoặcbằng, so sánh bằng, và khác

- Dữ liệu tác động: là các dữ liệu kiểu số và chữ, nếu là chữ thì máy

sẽ so sánh mã ASCII của các chữ đo

- Kết quả: phép toán cho kết quả là loogic(đúng hoặc sai)

Máy sẽ thực hiện tính toán vế phải và đưa kết quả vào vế trái do

đó vế trái luôn luôn là một biến nhớ

II Biểu thức, câu lệnh, khối lệnh và chương trình

Trang 4

Biểu thức là sự kết hợp giữa các toán tử(phép toán ) và các dữ liệu đểthực hiện tính toán, khi máy thực hiện tính biểu thức sẽ tuân theo thứ tự ưutiên của phép toán cũng giống như toán học.

Ví dụ: (8+3*(2-4))/2 máy sẽ thực hiện phép trù trước, rồi đếnphép nhân,cộng, chia và kết quả là 1

Để yêu cầu máy thực hiện các thao tác chúng ta phải viết ra các lệnhtương ứng, bằng cách sử dụng các tên chuẩn và từ khóa kết hợp với viết

biểu thức Kết thúc mỗi câu lệnh phải có dấu chấm phẩy(;)

Một câu lệnh được viết trên một dòng, và trên một dòng có thể viết đượcnhiều câu lệnh

Thồng thường một câu lệnh chưa đủ để thực hiện một chức năng haymột thao tác nào đó được yêu cầu, do vậy chúng ta phải viết thành nhiềucâu lệnh và tạo thành một khối lệnh Khối lệnh phải được viết vào trongcặp dấu ngoặc nhọn { }

c Khai báo các kiểu dữ liệu mới

d Khai báo các chương trình con

e Khai bào các biến nhớ toàn cục

f Viết chương trình chính

g Viết các chương trình con

Trong đó

- Phần a dùng để lạp các thư viện cần sử dụng cho chương trình được

viết như sau:

#include<tên thư viện>

Ví dụ: include<conio.h>

- Phần b dùng để định nghĩa các giá trị hằng cách viết như sau

#define tên hằng giá_trị_cần đặt_cho_hằng

Ví dụ: #define myname “abc”

- Phần c khai báo biến nhớ trong chương trình thường được thực hiện ở

phần đầu trong chương trình(hàm main), tuy nhiên trong môi trườngTC3.0 có thể thực hiện bất cứ chỗ nào nhưng phải trước khi sử dụngchúng

Trang 5

- Phần f viết trương trình chính, mỗi một chương trình có duy nhất một

chương trình chính và nó sẽ điều khiển toàn bộ các hoạt động củachương trình Chương trình chính được viết như sau:

Void main()

{

Các câu lệnh}

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

#include<stdio.h>

#include<conio.h>

Void main(){

Khai báo biến nhớCác câu lệnh}

IV Cách thực hiện một chương trình trên máy

Khi thực hiện chương trình thì máy tình sẽ thực hiện các câu lệnh trongchương trình chính Quá trình thực hiện sẽ tuần tự từ trên xuống dưới và từtrái sang phải

Thì máy sẽ thực hiện các câu lệnh theo tuần tự sau: A1,A2,B1,B2,C1,A3

V Môi trường lập trình TurboC

1 Giới thiệu TurboC và khởi động

Trang 6

Sau khi cài đặt song ta có thư mục TC hoặc TC30 trong thư mục này có các thư mục con sau.

Để khởi động chương trình này chúng ta chạy tệp tin TC.EXE trong thư mục Bin của TurboC

Màn hình giao diện của TurboC có dạng sau:

2, Các thao tác lập trình trên TurboC

TC

BININCLUDE LIB

Chứa các tệp tin chính của chýõng trình trong đó có tệp TC.EXE

Chứa các tệp tin khai báo thý viện ( *.h)

Chứa các tệp tin mã lệnh của các thý viện (*.LIB)

Trang 7

Tên phím Ý nghĩa

Shift + các phím mũi

tên

Đánh dấu khối lệnh

Shift + insert Dán khối đã chép ở trong máy vào cị trí con trỏ trên màn

hình

cùng

Một số thông báo lỗi hay gặp khi lập trình bằng TC

Unable to open include file ’…’ Không mở được tệp thư viện(có thể viết sai

tên thư viện hoặc đường dẫn đến thư viện chưa đúng)

Undefined symbol_main in modul

c0.asm

Chưa viết chương trình chính hoặc viết tên chương trình chính bị sai

Unterminated string or character

constant

Chưa có dấu nháy kép kết thúc viết hằng chuỗi kí tự

Trang 8

Bài 2: CẤU TRÚC LỆNH ĐIỀU KHIỂN

Trang 9

- Điều khiển : Là các cặp kí tự điều khiển để hiện dữ liệu lên màn hình

và phải được viết trong cặp dấu nháy kép, mỗi cặp kí tự điều khiển baogồm dấu “%” và sau đó là một ký tự định kiểu

- Dữ liệu cần hiện: Là các biểu thức dữ liệu cần hiện ra màn hình,các

biểu thức này cách nhau bởi dấu phẩy

Để sử dụng được lệnh hiện dữ liệu lên màn hình ta phải nạp thư viện

- Để hiện dữ liệu có xuống dòng trên màn hình ta sử dụng \n trong điều

khiển của lệnh printf

Ví dụ

printf(“yen bai \n ngày %d”,12);

màn hình sẽ hiện ra như sau:

yen baingay 12

trong điều khiển của lệnh printf.

Màn hình sẽ hiện ra như sau:

Yen bai ngay 12

2 Lệnh nhập dữ liệu từ bàn phím

Cú pháp :

scanf(“điều khiển”,& tên biến nhớ);

Trang 10

Trong đó

- điều khiển : Để quy định dữ liệu nhập vào dưới dạng nào, cách viết

như điều khiển trong lệnh printf

- Tên biến nhớ: Dùng để lưu trữ dữ liệu nhập vào từ bàn phím, phải có

dấu & ở trước

Để sử dụng được lệnh nhập dữ liệu từ bàn phím ta phải nạp thư viện

Ví dụ: scanf(“%d%f”,&a,&b);

Sẽ nhập số nguyên vào biến nhớ a, số thực vào biến nhớ b

- Có thể quy định độ rộng dữ liệu khi nhập, phải viết độ rộng đó vàogiữa dấu % và kí tự định kiểu tương ứng Nếu gõ thừa máy sẽ tựđộng cắt bỏ

Trang 11

printf("nhap so thu nhat a1= ");scanf("%d",&a1);

printf("\nnhap so thu hai a2= ");scanf("%d",&a2);

printf("\nnhap so thu 3 a3= ");scanf("%d",&a3);

printf("\nnhap so thu 4 a4= ");scanf("%d",&a4);

printf("\nnhap so thu 5 a5= ");scanf("%d",&a5);

printf("5 so vua nhap la: %d\t%d\t%d\t%d\t%d\t",a1,a2,a3,a4,a5);

printf("\ntrung binh cong 5 so vua nhap la:%f",(a1+a2+a3+a4+a5)/5.0); getch() ;

E là một biểu thức hay giá trị

Trang 12

) ( 3

Trang 13

xac=xa-xc;yac=ya-yc;

ab=sqrt(xab*xab+yab*yab);

bc=sqrt(xbc*xbc+ybc*ybc);

ac=sqrt(xac*xac+yac*yac);

printf("\ndo dai doan thang AB la: %f",ab);

printf("\ndo dai doan thang BC la: %f",bc);

printf("\ndo dai doan thang AC la: %f",ac);

getch() ;}

printf(“Ngay 12 thang 09 nam 2009”);

hiện lên màn hình dòng chữ “Yen Bai” mầu đỏ, dòng chữ “Ngay 12thang 09 nam 2009” mầu xanh

Trang 14

- Điều kiện lựa trọn: là biểu thức logic có giá trị đúng hoặc sai

- Hành động 1 và 2: là các khối lệnh để thực hiện cho trường hợp 1 và 2tương ứng

Trang 15

Viết chương trình giải bất phương trình bậc nhất: ax + b > 0

#include<conio.h>

#include<stdio.h>

void main(){

if(b > 0) printf("\n BPT luon dung voi moi x");

else printf("\n BPT vo nghiem");

}

if(a > 0) printf("\n Nghiem cua BPT la: x > %f",-b*1.0/a); if(a < 0) printf("\n Nghiem cua BPT la: x < %f",-b*1.0/a); getch() ;

Trang 16

{ printf("\n Nghiem cua phuong trinh la:");

printf("\n x1= %f",(-b+sqrt(d))/2.0*a);

printf("\n x2= %f",(-b-sqrt(d))/2.0*a);

} }

case giá_trị_1: hành động 1;[break;]

case giá_trị_2: hành động 2;[break;]

Trang 17

- Các giá trị 1,2,…,k là các giá trị số nguyên hoặc ký tự để so sánh.

- Các hành động 1,2,…,k là các khối lệnh để thực hiện ứng với từngtrường hợp trên

- Từ khóa break sau mỗi hành động để kết thúc lệnh sau mỗi trường hợp

sẩy ra Có thể có hoặc không có các từ khóa break này

Sơ đồ khối:

Trang 18

Chức năng:

Máy sẽ so sánh biểu thức trọn lần lượt với các giá trị 1, giá trị 2, giá trị

3,… giá trị k Nếu gặp một giá trị i(i=1,2, ,k) nào đó bằng giá trị biểu thức

chọn thì máy sẽ thực hiện các hành động đứng sau giá trị i đó đến khi gặp

từ khóa break hoăc hết mọi hành động có trong lệnh switch Nếu tất cả các

trường hợp từ 1 đến k không sẩy ra điều kiện bằng thì mặc định máy sẽthực hiện hành động X sau từ khóa default

Chú ý:

- Lệnh switch có thể không có phần từ khóa default và khối lệnh x, khi

đó máy sẽ không làm gì trong trường hợp không xẩy ra điều kiện bằnggiữa biểu thức trọn và giá trị tương ứng của case

Trang 19

Ví dụ:

switch(t)

{

case 1: printf(“chu nhat”);break;

case 2: printf(“thu 2”);break;

case 3: printf(“thu 3”);break;

case 4: printf(“thu 4”);break;

case 5: printf(“thu 5”);break;

case 6: printf(“thu 6”);break;

case 7: printf(“thu 7”);break;

default: printf(“khong la mot ngay trong tuan”);

}

Bài tập:

Viết chương trình đọc vào từ bàn phím một số nguyên n(1 ≤ n ≤ 10)rồi đưa ra tiếng anh của số đó Chẳng hạn ,nếu gõ vào n = 2 thì đưa ra: 2 ->TWO

case 1:printf("\n so 1 tieng anh la ONE");break;

case 2:printf("\n so 2 tieng anh la TWO");break;

case 3:printf("\n so 3 tieng anh la THREE");break;

case 4:printf("\n so 4 tieng anh la FOUR");break;

case 5:printf("\n so 5 tieng anh la FIVE");break;

case 6:printf("\n so 6 tieng anh la SIX");break;

case 7:printf("\n so 7 tieng anh la SEVEN");break;

case 8:printf("\n so 8 tieng anh la EIGHT");break;

case 9:printf("\n so 9 tieng anh la NINE");break;

Trang 20

case 10:printf("\n so 10 tieng anh la TEN");break;

default: printf("\n nhap du lieu sai");

- Các nhóm lệnh 1,2,3 là các lệnh điều khiển trong quá trình lặp của for

- Hành động lặp là khối lệnh để máy tính thực hiện lặp lại nhiều lần

Sơ đồ khối:

Chức năng:

Máy thực hiện nhóm lệnh 1 duy nhất một lần đầu tiên, sau đó thực hiệntính biểu thức 2 và nếu kêt quả tương ứng với giá trị đúng thì máy thực hiệnhành đông lặp, tiếp theo máy thực hiện nhóm lênh 3, và lặp lại kiểm tra biểuthức 2 cho đến khi kết quả tương ứng với giá trị sai

Trang 21

Vi dụ:

For(i=1;i<5;i++)printf(“\n i= %d”,i);

- Các nhóm lệnh 1,3 và biểu thức 2 có thể không xuất hiện trong lênh fornhưng phải có dấu chấm phẩy (;) khi đó nếu không có biểu thức 2 thìmáy sẽ xem như điều kiện lặp luôn luôn đúng và sẽ lặp vô tận

- Trong mỗi nhóm lệnh 1 và 3 có thể có nhiều lệnh cách nhau bởi dấuphẩy đối với biểu thức 2 có thể thay đổi bằng một nhóm lệnh và khi đómáy sẽ lấy kết quả của lệnh cuối cùng làm điều kiện lặp hoặc dừng

int n,i;

clrscr();

printf("Nhap vao so n= ");scanf("%d",&n);

printf("\n Cac so chan tu 1 den %d la: ",n);

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

if(i%2 = =0)printf(" %d",i);

printf("\n Cac so le tu 1 den %d la:",n);

Trang 22

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

if(i%2!=0)printf(" %d",i);

getch() ;}

Nhập n, tính tổng S=1+

n

1

4

1 3

1 2

printf(“\n nhan mot phim bat ki de thoat ”);

Trang 23

gotoxy(x,y) ; printf("*");

x++;

} x=40-y;

- Điều kiện lặp : là biểu thức so sánh hoặc biểu thức nguyên

- Hành động lặp: là các lệnh sẽ được thực hiện hiều lần trong quá trìnhlặp, nếu có nhiều lệnh phải có dấu { } để đóng khối

Printf(“\n x = %d va y = %d”,x,y);

x +=2;y ;

Điều kiện lặp

Hành động lặp đúng

sai

Trang 24

}Chú ý: nếu hành động sai ngay từ đầu thì máy sẽ không thực hiện hành độnglặp dù chỉ một lần.

Hành động lặp

đúng

sai

Trang 25

- Hành động lặp ít nhất được thưc hiện một lần dù cho điều kiện lặp luôn

có giá trị sai vì máy kiểm tra điều kiện lặp sau khi thực hiện hành độnglặp, điều này khác với lệnh while

Trang 26

4 Lệnh break, continue, goto

lệnh break có tác dụng dừng vòng lặp (for ,while, do-while) trong mọi

trường hợp

Lệnh continue làm cho chương trình bỏ qua phần còn lại của vòng lặp và

nhảy sang lần lặp tiếp theo Những câu lệnh viết sau lệnh continue sẽ không

được thực hiện

ví dụ:

for(i=0; i <10;i++){

printf(“%d”,i);

if(i>5) continue;

i++;

}

Trang 27

Lệnh goto: Lệnh này cho phép nhảy vô điều kiện tới bất kỳ điểm nào

trong chương trình

Ví dụ:

Nhập vào từ bàn phím 1 số bất kì Kiểm tra số đó là chẵn hay lẻ, hiệnkết quả lên màn hình Sau khi hiện song hỏi người dùng có tiếp tục chươngtrình không Nếu có thì lập lại hành động trước đó Nếu không thì kết thúcchương trình

#include<conio.h>

#include<stdio.h>

void main(){

if(x%2 = =0)printf(“\nso do la so chan”);

else printf(“\nso do la so le”);

printf("\n co tiep tuc truong trinh ko(c/k)?");

if(ch = ='c')goto L;

getch()

}Bài tập:

Nhập vào từ bàn phím 3 số bất kì Hiện số lớn nhất trong 3 số đó lênmàn hình Sau khi hiện song hỏi người dùng có tiếp tục chương trình không.Nếu có thì lập lại hành động trước đó Nếu không thì kết thúc chương trình

Trang 28

printf("\n so lon nhat la: %d",max);

printf("\n co tiep tuc truong trinh ko(c/k)?"); ch=getche();

Trang 29

Có thể minh họa chương trình con như hình sau :

Để nhận các dữ liệu đưa vào cho chương trình con và nếu có thể chứa

dữ liệu kết quả ra chúng ta phải sử dụng tham số (parameters) của chươngtrình con

Tham số tồn tại dưới hai hình thức đó là tham số thực và tham số hìnhthức Tham số hình thức là tham số để khai báo và xây dựng trương trìnhcon, còn tham số thực để xác định dữ liệu đưa vào khi gọi chương trình con

Trong một số ngôn ngữ lập trình cung cấp hai loại chương trình conriêng biệt đó là hàm(function) và thủ tục (procedures) nhưng trong C chỉcung cấp một loại đó là hàm

Để tạo một hàm chúng ta cần xác định

- Hàm tạo ra sẽ thực hiện công việc gì ?

- Sau khi thưc hiện song có cần trả về một dữ liệu hay nhiều dữ liệukhông ?

- Để thực hiện được công việc đó ta cần những dữ liệu nào ?

II, Khai báo và xây dựng hàm

Chương trình con thực hiện công việc A

Dữ liệu đưa vào

để thực hiện

công việc A

Dữ liệu kết quả của công việc A

Trang 30

1 khai báo hàm

Khai báo hàm được thực hiện ở phần đầu chương trình, khai báo để chỉcho máy biết các thông tin về hàm bao gồm : kiểu dữ liệu trả về có haykhông ,tên hàm, các tham số bao gồm kiểu và tên của từng tham số

Cú pháp khai báo như sau :

Tên_kiểu_trả_về tên_hàm( kiểu1 tham_số1,kiểu2 tham_số2 ) ;

Trong đó :

- Tên kiểu trả về : là một tên kiểu dữ liệu quy định kết quả trả về làkhiểu gì

- Tên hàm : tự đặt theo quy định đặt tên của ngôn ngữ C

- Kiểu1 tham_số1 : xác định tên của tham số thứ nhất và kiểu củatham số đó,

Ví dụ :

int sum(int a , int b) ;

float max(float x, float y);

Nếu trong hàm không có dữ liệu trả về thì viết kiểu trả về là void nếu

không có tham số thì bỏ trống và phải có cặp dấu đóng mở ngoăc () sau tênhàm

Khi cần kết thúc thực hiện hàm và trả về dữ liệu nào đây, chúng ta viết

lệnh return vào vị trí cần thiết nhất trong hàm

Ngày đăng: 04/12/2014, 17:21

HÌNH ẢNH LIÊN QUAN

1. Bảng ký tự sử dụng trong C - Ngôn ngữ lập trình c
1. Bảng ký tự sử dụng trong C (Trang 1)
Sơ đồ khối: - Ngôn ngữ lập trình c
Sơ đồ kh ối: (Trang 14)
Sơ đồ khối: - Ngôn ngữ lập trình c
Sơ đồ kh ối: (Trang 20)
Sơ đồ khối - Ngôn ngữ lập trình c
Sơ đồ kh ối (Trang 23)

TỪ KHÓA LIÊN QUAN

w