Bài giảng Lập trình cơ bản - Hà Đại Dương

MỤC LỤC

Bài 1 - TỔNG QUAN 6

I. Giới thiệu 6

1. Mục đích, Yêu cầu 6

2. Nội dung môn học 7

3. Tài liệu học tập và tham khảo 9

4. Hình thức đánh giá kết quả môn học 9

II. Bài toán và việc giải bài toán trên máy tính 9

1. Phương pháp tổng quát để giải một bài toán trên máy tính 9

2. Xác định bài toán 10

3. Cấu trúc dữ liệu và Giải thuật 11

4. Chương trình 17

III. Công cụ lập trình 17

1. Ngôn ngữ lập trình 17

2. Công cụ lập trình 18

3. Công cụ lập trình Dev-C++ 19

IV. Tóm tắt nội dung bài học 20

V. Bài tập 21

Bài 2 - NGÔN NGỮ LẬP TRÌNH C/C++ 22

I. Giới thiệu 22

II. Một số khái niệm cơ bản 23

1. Bộ ký tự 23

2. Từ khóa 23

3. Kiểu dữ liệu 24

4. Tên, Biến, hằng 25

5. Biểu thức 29

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

1. Cấu trúc chung 33

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

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

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

5. Chú thích 35

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

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

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

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

3. Ví dụ 40

V. Tóm tắt nội dung bài học 41

VI. Bài tập 41

Bài 3 - Bài thực hành: MÔI TRƯỜNG LẬP TRÌNH VÀ CÁC LỆNH VÀO/RA 42

I. Làm quen môi trường Dev-C++ 42

1. Khởi động Dev-C++ 42

2. Giao diện chính 42

II. Thực hiện các ví dụ sau 42

1. Tính diện tích một tam giác 42

2. Tính tổng, hiệu, tích, thương của 2 số 44

III. Bài tập tự làm 45

Bài 4 - ĐIỀU KHIỂN CHỌN VÀ LẶP 48

I. Điều khiển chọn 48

1. Khối lệnh 48

2. Cấu trúc IF 50

3. Cấu trúc SWITCH 53

II. Điều khiển lặp 57

1. Cấu trúc FOR 57

2. Cấu trúc WHILE 59

3. Cấu trúc DO . WHILE 61

4. Lệnh break và continue 64

III. Tóm tắt nội dung bài học 64

IV. Bài tập 64

Bài 5 - Bài thực hành: ĐIỀU KHIỂN CHỌN VÀ LẶP 65

I. Thực hiện các ví dụ sau 65

1. Giải phương trình bậc 2 65

2. Tìm USCNLN của hai số 66

II. Bài tập tự làm 68

Bài 6 - MẢNG, CON TRỎ VÀ XÂU KÝ TỰ 71

I. Mảng 71

1. Mảng trong C 71

2. Mảng một chiều 71

3. Mảng nhiều chiều 76

II. Con trỏ 79

1. Khai báo và sử dụng biến con trỏ 79

2. Con trỏ và mảng 84

3. Con trỏ và tham số hình thức của hàm 88

III. Xâu ký tự 89

1. Khai báo 89

2. Các thao tác trên chuỗi ký tự 90

IV. Tóm tắt nội dung bài học 95

V. Bài tập 95

Bài 7 - Bài thực hành: MẢNG, CON TRỎ VÀ XÂU KÝ TỰ 96

I. Thực hiện các ví dụ sau 96

1. Tìm phần tử lớn nhất của mảng 96

2. Lấy Tên từ họ tên người Việt 97

II. Bài tập tự làm 99

1. Mảng 99

2. Con trỏ 100

3. Xâu ký tự 100

Bài 8 - HÀM VÀ CẤU TRÚC CHƯƠNG TRÌNH 102

I. Tổ chức chương trình 102

1. Ví dụ 102

2. Cấu trúc chương trình 103

3. Hàm xây dựng sẵn 106

II. Hàm do người dùng định nghĩa 106

1. Khai báo và định nghĩa Hàm 107

2. Lời gọi Hàm 109

3. Hàm với đối mặc định 110

4. Khai báo hàm trùng tên 111

5. Truyền tham số 112

6. Hàm và mảng 118

III. Con trỏ hàm 124

1. Khai báo 125

2. Sử dụng con trỏ hàm 125

3. Mảng con trỏ hàm 126

IV. Đệ qui 127

1. Khái niệm 127

2. Lớp các bài toán giải được bằng đệ qui 128

3. Các ví dụ 129

V. Tóm tắt nội dung bài học 131

VI. Bài tập 132

Bài 9 - Bài thực hành: HÀM VÀ CẤU TRÚC CHƯƠNG TRÌNH 133

I. Thực hiện các ví dụ sau 133

1. Xác định vị trí tương đối của 1 điểm với tam giác ABC 133

2. Viết hàm đếm số từ của một xâu ký tự 134

II. Bài tập tự làm 135

Bài 10 - CẤU TRÚC DỮ LIỆU DO NGƯỜI DÙNG TỰ ĐỊNH NGHĨA 137

I. Cấu trúc dữ liệu do người dùng tự định nghĩa 137

1 Khái niệm 137

2. Khai báo biến cấu trúc 139

3. Các thao tác trên biến kiểu cấu trúc 140

4. Con trỏ cấu trúc 142

5. Cấu trúc với thành phần kiểu bit 146

6. Câu lệnh typedef 147

7. Hàm sizeof() 147

II. Ngăn xếp 147

1. Khái niệm 147

2. Cài đặt ngăn xếp sử dụng mảng 148

3. Cài đặt ngăn xếp sử dụng con trỏ liên kết 149

4. Một số ứng dụng của ngăn xếp 151

III. Hàng đợi 153

1. Khái niệm 153

2. Cài đặt hàng đợi sử dụng mảng 153

3. Cài hàng đợi sử dụng con trỏ 155

4. Một số ứng dụng của hàng đợi 156

IV. Kiểu hợp 156

1. Khai báo 156

2. Truy cập 157

V. Kiểu liệt kê 157

VI. Tóm tắt nội dung bài học 158

VII. Bài tập 158

Bài 11 - Bài thực hành: CẤU TRÚC DỮ LIỆU DO NGƯỜI DÙNG TỰ ĐỊNH NGHĨA 159

I. Thực hiện các ví dụ sau 159

1. Biểu diễn và thực hiện các phép toán phân số 159

2. Chuyển biểu thức trung tố về dạng hậu tố 161

II. Bài tập tự làm 164

Bài 12 - LÀM VIỆC VỚI FILE 166

I. Một số khái niệm 166

II. Các thao tác trên tập tin 167

1. Khai báo biến tập tin 167

2. Mở tập tin 167

3. Đóng tập tin 168

4. Kiểm tra đến cuối tập tin hay chưa? 168

5. Di chuyển con trỏ tập tin về đầu tập tin - Hàm rewind() 168

III. Truy cập tập tin văn bản 169

1. Ghi dữ liệu lên tập tin văn bản 169

2. Đọc dữ liệu từ tập tin văn bản 170

3. Ví dụ 171

IV. Truy cập tập tin nhị phân 172

1. Ghi dữ liệu lên tập tin nhị phân 172

2. Đọc dữ liệu từ tập tin nhị phân 173

3. Ví dụ 173

V. Tóm tắt nội dung bài học 176

VI. Bài tập 176

Bài 13 - ĐỒ HỌA 177

I. Khởi động đồ hoạ 177

II. Các hàm đồ hoạ 180

1. Mẫu và màu 180

2. Vẽ và tô màu đường tròn 182

3. Vẽ đường gấp khúc và đa giác 183

4. Vẽ điểm, miền 186

5. Hình chữ nhật 187

6. Cửa sổ (Viewport) 188

III. Xử lý văn bản trên màn hình đồ hoạ 189

1. Hiển thị văn bản trên màn hình đồ hoạ 189

2. Sử dụng các Fonts chữ 190

3. Bề rộng và chiều cao của kí tự 191

IV. Hiệu ứng hoạt hình đồ họa 191

V. Tóm tắt nội dung bài học 193

VI. Bài tập 194

Bài 14 - Bài thực hành: LÀM VIỆC VỚI FILE VÀ ĐỒ HỌA 195

I. Thực hiện các ví dụ sau 195

1. Ví dụ 1 195

2. Ví dụ 2 196

II. Bài tập tự làm 196

Bài 15 - ÔN TẬP 198

Bài 1 - Tổng quan 198

Bài 2. Ngôn ngữ lập trình C/C++ 198

Bài 3 - Bài thực hành: Môi trường lập trình và các lệnh vào/ra 198

Bài 4 - Điều khiển Chọn và Lặp 198

Bài 5 - Bài thực hành: Các cấu trúc điều khiển 198

Bài 6 - Mảng, Con trỏ và xâu ký tự 198

Bài 7 - Bài thực hành: Mảng, Con trỏ và Xâu ký tự 198

Bài 8 - Cấu trúc dữ liệu do người dùng tự định nghĩa 198

Bài 9 - Bài thực hành: Cấu trúc dữ liệu do người dùng tự định nghĩa 198

Bài 10 - Hàm 198

Bài 11 - Bài thực hành: Hàm 199

Bài 12 - Làm việc với File 199

Bài 13 - Đồ Họa 199

Bài 14 - Bài thực hành: Làm việc với File và Thuật toán nâng cao 199

 

 

doc199 trang | Chuyên mục: Visual C++ | Chia sẻ: dkS00TYs | Lượt xem: 2094 | Lượt tải: 4download
Tóm tắt nội dung Bài giảng Lập trình cơ bản - Hà Đại Dương, để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trên
ạ
Cú pháp: void outtext(char *s);
s: chuỗi văn bản được hiển thị tại vị trí con trỏ đồ họa hiện tại
Cú pháp: void outtextxy(int x, int y,char *s);
(x,y): tọa độ sẽ hiển thị chuỗi
s: chuỗi văn bản sẽ được hiển thị
Ví dụ: 
	Hai cách viết dưới đây:
	outtextxy(50,50,” Say HELLO”);
và
	moveto(50,50);
	outtext(“ Say HELLO”); 
cho cùng kết quả.
2. Sử dụng các Fonts chữ
	Các Fonts chữ nằm trong các tập tin *.CHR trên đĩa. Các Fonts này cho các kích thước và kiểu chữ khác nhau, chúng sẽ được hiển thị lên màn hình bằng các hàm outtext và outtextxy. Để chọn và nạp Fonts ta dùng hàm:
Cú pháp : void settextstyle(int font, int direction, int charsize);
+ font : lựa chọn kiểu chữ và nhận một trong các hằng sau:
	DEFAULT_FONT=0
	TRIPLEX_FONT=1
	SMALL_FONT=2
	SANS_SERIF_FONT=3
	GOTHIC_FONT=4
+ derection: để chọn hướng chữ và nhận một trong các hằng sau:
	HORIZ_DIR=0	văn bản hiển thị theo hướng nằm ngang từ trái qua phải.
	VERT_DIR=1	 văn bản hiển thị theo hướng thẳng đứng từ dưới lên trên.
+ Charsize: là hệ số phóng to của ký tự và có giá trị trong khoảng từ 1 đến 10.
	Khi charsize=1, font hiển thị trong hình chữ nhật 8*8 pixel.
	Khi charsize=2 font hiển thị trong hình chữ nhật 16*16 pixel.
	............
	Khi charsize=10, font hiển thị trong hình chữ nhật 80*80 pixel.
Các giá trị do settextstyle lập ra sẽ giữ nguyên tới khi gọi một settextstyle mới.
Ví dụ:
	Các dòng lệnh:
	settextstyle(3,1,3);//DevC++ không chuyển thẳng đứng
	outtextxy(30,30,"GODS TRUST YOU"); 
sẽ hiển thị tại vị trí (30,30) dòng chữ GODS TRUST YOU theo chiều từ dưới lên trên, font chữ chọn là SANS_SERIF_FONT và cỡ chữ là 2.
Đặt vị trí hiển thị của các xâu ký tự cho bởi outtext và outtextxy:
Cú pháp: void settextjustify(int horiz, int vert);
+ horiz: có thể là một trong các hằng số sau:
	LEFT_TEXT=0 ( Văn bản xuất hiện bên phải con chạy).
	CENTER_TEXT ( Chỉnh tâm văn bản theo vị trí con chạy).
	RIGHT_TEXT (Văn bản xuất hiện bên trái con chạy).
+ vert: có thể là một trong các hằng số sau:
	BOTTOM_TEXT=0 ( Văn bản xuất hiện phía trên con chạy).
	CENTER_TEXT=1 ( Chỉnh tâm văn bản theo vị trí con chạy).
	TOP_TEXT=2 ( Văn bản xuất hiện phía dưới con chạy).
Ví dụ:
	settextjustify(1,1);
	outtextxy(100,100,"ABC");
3. Bề rộng và chiều cao của kí tự
- Chiều cao của chuỗi ký tự
Cú pháp: int textheight(char *s);
+ s: chuỗi ký tự cần kiểm tra
+ trả về độ cao của chuỗi ký tự khi in ra màn hình tình bằng pixel.
Ví dụ 1:
Với font bit map và hệ số phóng đại là 1 thì textheight(“A”) ch giá trị là 8.
Ví dụ 2: 
#include "stdio.h"
#include "graphics.h"
main()
	{	int mh=0,mode=DETECT, y,size;
	initgraph(&mh,&mode,"C:\\TC\\BGI");
	y=10;
	settextjustify(0,0);
	for (size=1;size<5;++size)
	{	settextstyle(0,0,size);
	outtextxy(0,y,"SACRIFICE");
	y+=textheight("SACRIFICE")+10;
	}
	getch();	
	closegraph();
	}
- Bề rộng của kí tự:
Cú pháp: int textwidth(char *s); 
+ s: chuỗi ký tự cần kiểm tra
+ trả về độ rộng của chuỗi ký tự khi in lên màn hình
IV. Hiệu ứng hoạt hình đồ họa
Hiệu ứng hoạt hình là hiệu ứng các đối tượng di chuyển trên màn hình. Bản chất của việc dịch chuyển trên màn hình là xóa vị trí cũ và vẽ đối tượng sang vị trí mới. 
- Xóa vị trí cũ bằng cách vẽ đối tượng với màu của màu nền
Ví dụ vẽ quả bóng di chuyển từ góc trên trái xuống góc phải dưới
#include "graphics.h"
#include "stdio.h"
#include "conio.h"
#include 
int draw(int x, int y, int color)
{
	setcolor(color);
	setbkcolor(color);
	setfillstyle(0,color);
	pieslice(x,y,0,360,10);
	return 0;
}
main()
	{
	int i,x,y;
	int dx=5;
	int dy=5;
	int md=0,mode;
	initgraph(&md,&mode,"C:\\TC\\BGI");
	x=10;
	y=10;
	while(!kbhit())
	{
	draw(x,y,15);
	delay(10);
	draw(x,y,0);
	x+=dx;
	y+=dy;
	if(y300)
	dy=-dy;
	if(x400)
	dx=-dx;
	}
 getch();
	 closegraph();
	}	
- Trong tình huống nền có hình ảnh khác việc vẽ lại màu nền sẽ xóa các đối tượng trên nền. Để giải quyết vấn đề này cần phải lưu trữ lại tình trạng màn hình trước khi vẽ, sau đó hồi phục lại màn hình để tiếp tục vẽ sang vị trí mới.
#include "graphics.h"
#include "stdio.h"
#include "conio.h"
#include 
#define r 5
char *b;
int draw(int x, int y, int color)
{
	setcolor(color);
	setbkcolor(color);
	setfillstyle(0,color);
	pieslice(x,y,0,360,r);
	return 0;
}
int main()
{
	int i,x,y;
	int dx=5;
	int dy=5;
	delay(10);
	int md=0,mode=0;
	initgraph(&md,&mode,"C:\\TC\\BGI");
	b=(char*)malloc(imagesize(1,1,2*r+1,2*r+1));
	if(b==NULL)
	{
	closegraph();
	return -1;
	}
	line(0,0,getmaxx(),getmaxy());
	line(0,getmaxy(),getmaxx(),0);
	x=10;
	y=10;
	while(!kbhit())
	{
	getimage(x-r,y-r,x+r,y+r,b);
	draw(x,y,15);
	delay(10);
	putimage(x-r,y-r,b,COPY_PUT);
	x+=dx;
	y+=dy;
	if(y310)
	dy=-dy;
	if(x420)
	dx=-dx;
	}
 getch();
	free(b);
	closegraph();
	return 0;
}	
V. Tóm tắt nội dung bài học
I. Khởi động đồ hoạ
II. Các hàm đồ hoạ
1. Mẫu và màu	
2. Vẽ và tô màu
3. Vẽ đường gấp khúc và đa giác
4. Vẽ điểm, miền
5. Hình chữ nhật
6. Cửa sổ (Viewport)
III. Xử lý văn bản trên màn hình đồ hoạ
1. Hiển thị văn bản trên màn hình đồ hoạ
2. Sử dụng các Fonts chữ
3. Bề rộng và chiều cao của kí tự
IV. Tóm tắt nội dung bài học
V. Bài tập
VI. Bài tập
Xem Bài 14 - Bài tập thực hành Làm việc với File và Thuật toán nâng cao
Bài 14 - Bài thực hành: LÀM VIỆC VỚI FILE VÀ ĐỒ HỌA
I. Thực hiện các ví dụ sau
1. Ví dụ 1 
Yêu cầu: 
Viết chương trình cho phép nhập vào một mảng, tìm phần tử lớn nhất
Soạn thảo văn bản chương trình như sau
#include 
#include 
int a[100][100];
int n,m;
int main() 
{ 
	int ma;
	char *infile="vao.txt", *outfile="ra.txt";
	int i, j;
	FILE *f1; 
	f1=fopen(infile,"rt"); 
	if(f1==NULL)
	{
	printf("Loi mo file %s",infile);
	return -1;
	}
	fscanf(f1,"%d%d",&m,&n);
	for(i=0;i<m;i++)
	{
	for(j=0;j<n;j++)
	{
	fscanf(f1,"%d",&a[i][j]);
	}
	}
//find max
	ma=a[0][0];
	for(i=0;i<m;i++)
	{
	for(j=0;j<n;j++)
	{
	if(a[i][j]>ma)
	ma=a[i][j];
	}
	}
	fclose(f1);
	printf("Gia tri max:%d",ma);
	getch(); 
	return 0; 
}
Thử nghiệm 1: 
Nhập thử file vao.txt có nội dung
4 5
1 2 3 4 5
5 6 7 8 9
1 3 5 7 9
2 4 6 8 0
Thử nghiệm 2: 
Nhập thử file vao.txt có nội dung
4 5
1 2 3 4 5
5 6 7 8 9
1 3 5 7 9
Đưa ra nhận xét, thay đổi đảm bảo hệ thống chạy tốt.
2. Ví dụ 2 
Nhập lại ví dụ 2 trong hiệu ứng hoạt hình, thay đổi màu viên bóng, tạo thêm đường khung.
II. Bài tập tự làm
1. Viết chương trình quản lý một tập tin văn bản theo các yêu cầu: 
a- Nhập từ bàn phím nội dung một văn bản sau đó ghi vào đĩa. 
b- Đọc từ đĩa nội dung văn bản vừa nhập và in lên màn hình. 
c- Đọc từ đĩa nội dung văn bản vừa nhập, in nội dung đó lên màn hình và cho phép nối thêm thông tin vào cuối tập tin đó. 
2. Viết chương trình cho phép thống kê số lần xuất hiện của các ký tự là chữ (‘A’..’Z’,’a’..’z’) trong một tập tin văn bản. 
3. Viết chương trình đếm số từ và số dòng trong một tập tin văn bản. 
4. Viết chương trình nhập từ bàn phím và ghi vào 1 tập tin tên là DMHH.DAT với mỗi phần tử của tập tin là 1 cấu trúc bao gồm các trường: Ma (mã hàng: char[5]), Ten (Tên hàng: char[20]).Kết thúc việc nhập bằng cách gõ ENTER vào Ma. Ta sẽ dùng tập tin này để giải mã hàng hóa cho tập tin DSHH.DAT sẽ đề cập trong bài 5. 
5. Viết chương trình cho phép nhập từ bàn phím và ghi vào 1 tập tin tên DSHH.Dat với mỗi phần tử của tập tin là một cấu trúc bao gồm các trường : mh (mã hàng: char[5]), sl (số lượng : int), dg ( đơn giá: float), st (Số tiền: float) theo yêu cầu: 
- Mỗi lần nhập một cấu trúc 
- Trước tiên nhập mã hàng (mh), đưa mh so sánh với Ma trong tập tin DMHH.DAT đã được tạo ra bởi bài tập 1, nếu mh=ma thì in tên hàng ngay bên cạnh mã hàng. 
- Nhập số lượng (sl). 
- Nhập đơn giá (dg). 
- Tính số tiền = số lượng * đơn giá. 
Kết thúc việc nhập bằng cách đánh ENTER vào mã hàng. Sau khi nhập xong yêu cầu in toàn bộ danh sách hàng hóa có sự giải mã về tên hàng theo mẫu sau: 
STT
MA HANG
TEN HANG
SO LG
DON GIA
SO TIEN
1
a0101
Duong cat trang
25
10000.00
250000.00
2
b0101
Sua co gai Ha Lan
10
40000.00
400000.00
6. Viết chương trình cho phép hiển thị đồng hồ với tương tự (đồng hồ kim) có hai kim giờ và phút. Sử dụng hàm gettime để lấy dữ liệu. Theo thời gian các kim chạy hiển thị đúng hiện trạng của đồng hồ máy tính. 
7. Viết chương trình mô tả dao động của con lắc đơn.
8. Vẽ đồ thị hàm số f(x)=3x3+4x2-x-1, trong khoảng [-4,4] . 
Bài 15 - ÔN TẬP
Bài 1 - Tổng quan
I. Giới thiệu
II. Bài toán và việc giải bài toán trên máy tính
III. Công cụ lập trình	
IV. Tóm tắt nội dung bài học	
Bài 2. Ngôn ngữ lập trình C/C++	
I. Giới thiệu	
II. Một số khái niệm cơ bản	
III. Cấu trúc chương trình đơn giản trong C	
IV. Nhập/Xuất dữ liệu	
V. Tóm tắt nội dung bài học
VI. Bài tập
Bài 3 - Bài thực hành: Môi trường lập trình và các lệnh vào/ra 
Bài 4 - Điều khiển Chọn và Lặp
I. Điều khiển chọn
II. Điều khiển lặp
III. Tóm tắt nội dung bài học	
IV. Bài tập
Bài 5 - Bài thực hành: Các cấu trúc điều khiển
Bài 6 - Mảng, Con trỏ và xâu ký tự	
I. Mảng	
II. Con trỏ	
III. Xâu ký tự	
IV. Tóm tắt nội dung bài học	
V. Bài tập	
Bài 7 - Bài thực hành: Mảng, Con trỏ và Xâu ký tự	
Bài 8 - Cấu trúc dữ liệu do người dùng tự định nghĩa	
I. Cấu trúc dữ liệu do người dùng tự định nghĩa	
II. Kiểu ngăn xếp	
III. Kiểu hàng đợi	
IV. Tóm tắt nội dung bài học	
V. Bài tập	
Bài 9 - Bài thực hành: Cấu trúc dữ liệu do người dùng tự định nghĩa	
Bài 10 - Hàm	
I. Khái niệm	
II. Xây dựng một hàm	
III. Truyền tham số cho hàm
IV. Kỹ thuật đệ qui	
V. Tóm tắt nội dung bài học
VI. Bài tập
Bài 11 - Bài thực hành: Hàm	
Bài 12 - Làm việc với File
I. Một số khái niêm
II. Các thao tác trên tập tin
III. Truy cập tập tin văn bản
IV. Truy cập tập tin nhị phân	
V. Tóm tắt nội dung bài học
VI. Bài tập
Bài 13 - Đồ Họa
I. Khởi động đồ hoạ
II. Các hàm đồ hoạ
III. Xử lý văn bản trên màn hình đồ hoạ
IV. Tóm tắt nội dung bài học	
V. Bài tập	
Bài 14 - Bài thực hành: Làm việc với File và Thuật toán nâng cao

File đính kèm:

  • docBài giảng Lập trình cơ bản - Hà Đại Dương.doc