buingoc_duc2003

New Member

Download miễn phí Giáo trình Ngôn ngữ lập trình C





MỤC LỤC
GIỚI THIỆU
Chương 1
CÁC KHÁI NIỆM CƠ BẢN
1.1. Tập ký tự dùng trong ngôn ngữ C
1.2. Từ khoá
1.3. Tên
1.4. Kiểu dữ liệu
1.4.1. Kiểu ký tự (char)
1.4.2. Kiểu nguyên
1.4.3. Kiểu dấu phảy động
1.5. Định nghĩa kiểu bằng TYPEDEF
1.5.1. Công dụng
1.5.2. Cách viết
1.6. Hằng
1.6.1. Tên hằng
1.6.2. Các loại hằng
1.6.2.1. Hằng int
1.6.2.2. Hằng long
1.6.2.3. Hằng int hệ 8
1.6.2.4. Hằng int hệ 16
1.6.2.5. Hằng ký tự
1.6.2.5. Hằng xâu ký tự
1.7. Biến
1.8. Mảng
 
Chương 2
CÁC LỆNH VÀO RA
2.1. Thâm nhập vào thư viện chuẩn
2.2. Các hàm vào ra chuẩn - getchar() và putchar()
2.2.1. Hàm getchar()
2.2.2. Hàm putchar()
2.2.3. Hàm getch()
2.2.4. Hàm putch()
2.3. Đưa kết quả lên màn hình - hàm printf
2.4. Vào số liệu từ bàn phím - hàm scanf
2.5. Đưa kết quả ra máy in
 
Chương 3
BIỂU THỨC
3.1. Biểu thức
3.2. Lệnh gán và biểu thức
3.3. Các phép toán số học
3.4. Các phép toán quan hệ và logic
3.5. Phép toán tăng giảm
3.6. Thứ tự ưu tiên các phép toán
3.7. Chuyển đổi kiểu giá trị
 
Chương 4
CẤU TRÚC CƠ BẢN CỦA CHƯƠNG TRÌNH
4.1. Lời chú thích
4.2. Lệnh và khối lệnh
4.2.1. Lệnh
4.2.2. Khối lệnh
4.3. Cấu trúc cơ bản của chương trình
4.4. Một số qui tắc cần nhớ khi viết chương trình
 
Chương 5
CẤU TRÚC ĐIỀU KHIỂN
5.1. Cấu trúc có điều kiện
5.1.1. Lệnh if-else
5.1.2. Lệnh else-if
5.2. Lệnh nhảy không điều kiện - toán tử goto
5.3. Cấu trúc rẽ nhánh - toán tử switch
5.4. Cấu trúc lặp
5.4.1. Cấu trúc lặp với toán tử while và for
5.4.1.1. Cấu trúc lặp với toán tử while
5.4.1.2. Cấu trúc lặp với toán tử for :
5.4.2. Chu trình do-while
5.5. Câu lệnh break
5.6. Câu lệnh continue
 
Chương 6
HÀM
6.1. Cơ sở
6.2. Hàm không cho các giá trị
6.3. Hàm đệ qui
6.3.3. Mở đầu
6.3.2. Các bài toán có thể dùng đệ qui
6.3.3. Cách xây dựng hàm đệ qui
6.3.4. Các ví dụ về dùng hàm đệ qui
6.4. Bộ tiền sử lý C
 
Chương 7
CON TRỎ
7.1. Con trỏ và địa chỉ
7.2. Con trỏ và mảng một chiều
7.2.1.Phép toán lấy địa chỉ
7.2.2. Tên mảng là một hằng địa chỉ
7.2.3. Con trỏ trỏ tới các phần tử của mảng một chiều
7.2.4. Mảng, con trỏ và xâu ký tự
7.3. Con trỏ và mảng nhiều chiều
7.3.1.Phép lấy địa chỉ
7.3.2. Phép cộng địa chỉ trong mảng hai chiều
7.3.3. Con trỏ và mảng hai chiều
7.4. Kiểu con trỏ kiểu địa chỉ, các phép toán trên con trỏ
7.4.1. Kiểu con trỏ và kiểu địa chỉ
7.4.2. Các phép toán trên con trỏ
7.4.3. Con trỏ kiểu void
7.5. Mảng con trỏ
7.6. Con trỏ tới hàm
7.6.1. Cách khai báo con trỏ hàm và mảng con trỏ hàm
7.6.2. Tác dụng của con trỏ hàm
7.6.3. Đối của con trỏ hàm
 
Chương 8
CẤU TRÚC
8.1. Kiểu cấu trúc
8.2. Khai báo theo một kiểu cấu trúc đã định nghĩa
8.3. Truy nhập đến các thành phần cấu trúc
8.4. Mảng cấu trúc
8.5. Khởi đầu một cấu trúc
8.6. Phép gán cấu trúc
8.7. Con trỏ cấu trúc và địa chỉ cấu trúc
8.7.1. Con trỏ và địa chỉ
8.7.2. Truy nhập qua con trỏ
8.7.3. Phép gán qua con trỏ
8.7.4. Phép cộng địa chỉ
8.7.5. Con trỏ và mảng
8.8. Cấu trúc tự trỏ và danh sách liên kết
 
Chương 9
TẬP TIN - FILE
9.1. Khái niệm về tệp tin
9.2. Khai báo sử dụng tệp - một số hàm thường dùng khi thao tác trên tệp
9.2.1. Khai báo sử dụng tệp
9.2.2. Mở tệp - hàm fopen
9.2.3. Đóng tệp - hàm fclose
9.2.4. Đóng tất cả các tệp đang mở- hàm fcloseall
9.2.5. Làm sạch vùng đệm - hàm fflush
9.2.6. Làm sạch vùng đệm của các tệp đang mở - hàm fflushall
9.2.7. Kiểm tra lỗi file - hàm ferror
9.2.8. Kiểmtra cuối tệp - hàm feof
9.2.9. Truy nhập ngẫu nhiên - các hàm di chuyên con trỏ chỉ vị
9.2.9.1. Chuyển con trỏ chỉ vị về đầu tệp - Hàm rewind
9.2.9.2. Chuyển con trỏ chỉ vị trí cần thiết - Hàm fseek
9.2.9.3. Vị trí hiện tại cuẩ con trỏ chỉ vị - Hàm ftell
9.2.10. Ghi các mẫu tin lên tệp - hàm fwrite
9.2.11. Đọc các mẫu tin từ tệp - hàm fread
9.2.12. Nhập xuất ký tự
9.2.12.1. Các hàm putc và fputc
9.2.12.2. Các hàm getc và fgettc
9.2.13. Xoá tệp - hàm unlink
 
Chương 10
ĐỒ HOẠ
10.1. Khởi động đồ hoạ
10.2. Các hàm đồ hoạ
10.2.1. Mẫu và màu
10.2.2. Vẽ và tô màu
10.2.3. Vẽ đường gấp khúc và đa giác
10.2.4. Vẽ điểm, miền
10.2.5. Hình chữ nhật
10.2.6. Cửa sổ (Viewport)
10.3. Sử lý văn bản trên màn hình đồ hoạ
 
 
 
 
 
 
 
 



Để tải bản Đầy Đủ của tài liệu, xin Trả lời bài viết này, Mods sẽ gửi Link download cho bạn sớm nhất qua hòm tin nhắn.
Ai cần download tài liệu gì mà không tìm thấy ở đây, thì đăng yêu cầu down tại đây nhé:
Nhận download tài liệu miễn phí

Tóm tắt nội dung tài liệu:

í dụ :
Đoạn chương trình xác định phần tử âm đầu tiên trong các phần tử của mảng x.
#include "stdio.h"
float x[5],c;
main()
{
int i=0;
printf("\n nhap gia tri cho ma tran x ");
for (i=0;i<=4;++i)
{
printf("\n x[%d]=",i);
scanf("%f",&c);
y=c;
}
do
++i;
while (x>=0 && i<=4);
if (i<=4)
printf("\n Phan tu am dau tien = x[%d]=%8.2f",i,x);
else
printf("\n Mang khong có phan tu am ");
}
5.5. Câu lệnh break :
Câu lệnh break cho phép ra khỏi các chu trình với các toán tử for, while và switch. Khi có nhiều chu trình lồng nhau, câu lệnh break sẽ đưa máy ra khỏi chu trình bên trong nhất chứa nó không cần điều kiện gì. Mọi câu lệnh break có thể thay bằng câu lệnh goto với nhãn thích hợp.
Ví dụ :
Biết số nguyên dương n sẽ là số nguyên tố nếu nó không chia hết cho các số nguyên trong khoảng từ 2 đến căn bậc hai của n. Viết đoạn chương trình đọc vào số nguyên dương n, xem n có là số nguyên tố.
# include "stdio.h"
# include "math.h"
unsigned int n;
main()
{
int i,nt=1;
printf("\n cho n=");
scanf("%d",&n);
for (i=2;i<=sqrt(n);++i)
if ((n % i)==0)
{
nt=0;
break;
}
if (nt)
printf("\n %d la so nguyen to",n);
else
printf("\n %d khong la so nguyen to",n);
}
5.6. Câu lệnh continue :
Trái với câu lệnh break, lệnh continue dùng để bắt đầu một vòng mới của chu trình chứa nó. Trong while và do while, lệnh continue chuyển điều khiển về thực hiện ngay phần kiểm tra, còn trong for điều khiển được chuyển về bước khởi đầu lại ( tức là bước : tính biểu thức 3, sau đó quay lại bước 2 để bắt đầu một vòng mới của chu trình).
Chú ý :
Lệnh continue chỉ áp dụng cho chu trình chứ không áp dụng cho switch.
Ví dụ :
Viết chương trình để từ một nhập một ma trận a sau đó :
Tính tổng các phần tử dương của a.
Xác định số phần tử dương của a.
Tìm cực đại trong các phần tử dương của a.
#include "stdio.h"
float a[3[4];
main()
{
int i,j,soptd=0;
float tongduong=0,cucdai=0,phu;
for (i=0;i<3;++i)
for (j=0;i<4;++j)
{
printf("\n a[%d][%d]=",i,j );
scanf("%f",&phu);
a[j]=phu;
if (a[j]<=0) continue;
tongduong+=a[j];
if (cucdai[j]) cucdai=a[j];
++soptd; }
printf("\n So phan tu duong la : %d",soptd);
printf("\n Tong cac phan tu duong la : %8.2f",tongduong);
printf("\n Cuc dai phan tu duong la : %8.2f",cucdai);
}
Chương 6
Hàm
Một chương trình viết trong ngôn ngữ C là một dãy các hàm, trong đó có một hàm chính ( hàm main() ). Hàm chia các bài toán lớn thành các công việc nhỏ hơn, giúp thực hiện những công việc lặp lại nào đó một cách nhanh chóng mà không phải viết lại đoạn chương trình. Thứ tự các hàm trong chương trình là bất kỳ, song chương trình bao giờ cũng đi thực hiện từ hàm main().
6.1. Cơ sở :
Hàm có thể xem là một đơn vị độc lập của chương trình. Các hàm có vai trò ngang nhau, vì vậy không có phép xây dựng một hàm bên trong các hàm khác.
Xây dựng một hàm bao gồm: khai báo kiểu hàm, đặt tên hàm, khai báo các đối và đưa ra câu lệnh cần thiết để thực hiện yêu cầu đề ra cho hàm. Một hàm được viết theo mẫu sau :
type tên hàm ( khai báo các đối )
{
Khai báo các biến cục bộ
Các câu lệnh
[return[biểu thức];]
}
Dòng tiêu đề :
Trong dòng đầu tiên của hàm chứa các thông tin về : kiểu hàm, tên hàm, kiểu và tên mỗi đối.
Ví dụ :
float max3s(float a, float b, float c)
khai báo các đối có dạng :
Kiểu đối 1 tên đối 1, kiểu đối 2 tên đối 2,..., kiểu đối n tên đối n
Thân hàm :
Sau dòng tiêu đề là thân hàm. Thân hàm là nội dung chính của hàm bắt đầu và kết thúc bằng các dấu { }.
Trong thân hàm chứa các câu lệnh cần thiết để thực hiện một yêu cầu nào đó đã đề ra cho hàm.
Thân hàm có thể sử dụng một câu lệnh return, có thể dùng nhiều câu lệnh return ở các chỗ khác nhau, và cũng có thể không sử dụng câu lệnh này.
Dạng tổng quát của nó là :
return [biểu thức];
Giá trị của biểu thức trong câu lệnh return sẽ được gán cho hàm.
Ví dụ :
Xét bài toán : Tìm giá trị lớn nhất của ba số mà giá trị mà giá trị của chúng được đưa vào bàn phím.
Xây dựng chương trình và tổ chức thành hai hàm : Hàm main() và hàm max3s. Nhiệm vụ của hàm max3s là tính giá trị lớn nhất của ba số đọc vào, giả sử là a,b,c. Nhiệm vụ của hàm main() là đọc ba giá trị vào từ bàn phím, rồi dùng hàm max3s để tính như trên, rồi đưa kết quả ra màn hình.
Chương trình được viết như sau :
#include "stdio.h"
float max3s(float a,float b,float c ); /* Nguyên mẫu hàm*/
main()
{
float x,y,z;
printf("\n Vao ba so x,y,z:");
scanf("%f%f%f",&x&y&z);
printf("\n Max cua ba so x=%8.2f y=%8.2f z=%8.2f la : %8.2f",
x,y,z,max3s(x,y,z));
} /* Kết thúc hàm main*/
float max3s(float a,float b,float c)
{
float max;
max=a;
if (max if (max return(max);
} /* Kết thúc hàm max3s*/
Quy tắc hoạt động của hàm :
Một cách tổng quát lời gọi hàm có dạng sau :
tên hàm ([Danh sách các tham số thực])
Số các tham số thực tế thay vào trong danh sách các đối phải bằng số tham số hình thức và lần lượt chúng có kiểu tương ứng với nhau.
Khi gặp một lời gọi hàm thì nó sẽ bắt đầu được thực hiện. Nói cách khác, khi máy gặp lời gọi hàm ở một vị trí nào đó trong chương trình, máy sẽ tạm dời chỗ đó và chuyển đến hàm tương ứng. Quá trình đó diễn ra theo trình tự sau :
Cấp phát bộ nhớ cho các biến cục bộ.
Gán giá trị của các tham số thực cho các đối tương ứng.
Thực hiện các câu lệnh trong thân hàm.
Khi gặp câu lệnh return hay dấu } cuối cùng của thân hàm thì máy sẽ xoá các đối, biến cục bộ và ra khỏi hàm.
Nếu trở về từ một câu lệnh return có chứa biểu thức thì giá trị của biểu thức được gán cho hàm. Giá trị của hàm sẽ được sử dụng trong các biểu thức chứa nó.
Các tham số thực, các đối và biến cục bộ :
Do đối và biến cục bộ đều có phạm vi hoạt động trong cùng một hàm nên đối và biến cục bộ cần có tên khác nhau.
Đối và biến cục bộ đều là các biến tự động. Chúng được cấp phát bộ nhớ khi hàm được xét đến và bị xoá khi ra khỏi hàm nên ta không thể mang giá trị của đối ra khỏi hàm.
Đối và biến cục bộ có thể trùng tên với các đại lượng ngoài hàm mà không gây ra nhầm lẫn nào.
Khi một hàm được gọi tới, việc đầu tiên là giá trị của các tham số thực được gán cho các đối ( trong ví dụ trên hàm max3s, các tham số thực là x,y,z, các đối tương ứng là a,b,c ). Như vậy các đối chính là các bản sao của các tham số thực. Hàm chỉ làm việc trên các đối.
Các đối có thể bị biến đổi trong thân hàm, còn các tham số thực thì không bị thay đổi.
Chú ý :
Khi hàm khai báo không có kiểu ở trước nó thì nó được mặc định là kiểu int.
Không nhất thiết phải khai báo nguyên mẫu hàm. Nhưng nói chung nên có vì nó cho phép chương trình biên dịch phát hiện lỗi khi gọi hàm hay tự động việc chuyển dạng.
Nguyên mẫu của hàm thực chất là dòng đầu tiên của hàm thêm vào dấu ;. Tuy nhiên trong nguyên mẫu có thể bỏ tên các đối.
Hàm thường có một vài đối. Ví dụ như hàm max3s có ba đối là a,b,c. cả ba đối này đều có giá trị float. Tuy nhiên, cũng có hàm không đối như hàm main.
Hàm thường cho ta một giá trị nào đó. Lẽ dĩ nhiên giá trị của hàm phụ thuộc vào giá trị các đối.
6.2. Hàm không cho các giá trị :
Các hàm không cho giá trị giống ...
 

Các chủ đề có liên quan khác

Top