Bai giang Co So Lap Trinh docx

60 342 2
Bai giang Co So Lap Trinh docx

Đ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

Bài giảng: Cơ sở lập trình =================================================================== MỤC LỤC =================================================================== Giảng viên: Hoàng Thị Vân Anh – Khoa: Tin học kinh tế 1 Bài giảng: Cơ sở lập trình =================================================================== CHƯƠNG I: TỔNG QUAN VỀ NGÔN NGỮ LẬP TRÌNH C I. GIỚI THIỆU NGÔN NGỮ LẬP TRÌNH 1. Các khái niệm chương trình, lập trình, lập trình viên - Chương trình: là tập hợp dãy các lệnh điều khiển máy tính thực hiện. - Lập trình (máy tính): là kỹ thuật cài đặt một hoặc nhiều thuật toán trừu tượng có liên quan với nhau bằng một hoặc nhiều ngôn ngữ lập trình để tạo ra một chương trình máy tính. - Lập trình viên: Là người viết chương trình máy tính. 2. Sự phát triển của các công cụ lập trình. 3. Một số ngôn ngữ lập trình thông dụng. 4. Giới thiệu về ngôn ngữ lập trình C - Ngôn ngữ C do Dennis Ritchie sáng tác năm 1972 tại phòng thí nghiệm Bell Telephone (thuộc công ty viễn thông AT & T của Mĩ) để viết hệ điều hành UNIX. * ưu điểm của ngôn ngữ C: - C là ngôn ngữ mạnh và mềm dẻo. - C được dùng phổ biến. - C là ngôn ngữ có thể chuyển dịch, dễ thích nghi - C là ngôn ngữ ít từ khoá. - C là ngôn ngữ có cấu trúc modun: Các chương trình con là các hàm có thể được sử dụng nhiều lần trong cùng một chương trình hoặc trong các chương trình khác. * Khuyết điểm của ngôn ngữ C: - Cú pháp khó học (nếu chưa hiểu rõ bản chất). - Một số ký hiệu có nhiều nghĩa khác nhau: Ví dụ kí hiệu * là toán tử nhân, toán tử không định hướng, toán tử thay thế, * Cách khởi động C Vào thư mục Bin trong thư mục cài đặt TC => chạy tệp TC.exe =================================================================== Giảng viên: Hoàng Thị Vân Anh – Khoa: Tin học kinh tế 2 Bài giảng: Cơ sở lập trình =================================================================== Chú ý: Khi màn mình làm việc của C hiển thị, muốn chương trình chạy được, ta cần thiết lập lại một vài thông số cho phù hợp (chỉ cần cài đặt một lần đầu tiên): Vào menu Options/ Environment/ Directories Include Directories: Thư mục chứa các tệp tin mà chúng ta gọi trong chương trình (tệp tin .h viết sau #include) Library Directories: Thư mục chứa các tệp tin thư viện (*.Lib) Output Directories: Thư mục chứa các tệp tin “đối tượng” (*.OBJ), tệp tin *.exe sau khi biên dịch. Source Directory: Thư mục chứa các tệp tin “nguồn” (*.OBJ, *.Lib) * Chạy chương trình: Ấn Ctrl + F9 II. Các khái niệm cơ bản 1. Các yếu tố cơ bản 1.1 Bộ chữ viết trong C Bộ chữ viết trong ngôn ngữ C bao gồm những ký tự, ký hiệu sau: (phân biệt chữ in hoa và in thường): 􀂃26 chữ cái latinh lớn A,B,C Z 􀂃26 chữ cái latinh nhỏ a,b,c z. 􀂃10 chữ số thập phân 0,1,2 9. 􀂃Các ký hiệu toán học: +, -, *, /, =, <, >, (, ) 􀂃Các ký hiệu đặc biệt: :. , ; " ' _ @ # $ ! ^ [ ] { } 􀂃Dấu cách hay khoảng trống. 1.2 Các từ khoá trong C Từ khóa là các từ dành riêng (reserved words) của C mà người lập trình có thể sử dụng nó trong chương trình tùy theo ý nghĩa của từng từ. =================================================================== Giảng viên: Hoàng Thị Vân Anh – Khoa: Tin học kinh tế 3 Phần soạn nội dung chương trình Thanh menu Bài giảng: Cơ sở lập trình =================================================================== auto break case char continue default do double else extern float for goto if int long register return short sizeof static struct switch typedef union unsigned void volatile while _cs _ds _es _ss _AH _AL _AX _BH _BL _BX _CH _CL _CX _DH _DL _DX _BP _DI _SI _SP 1.3 Chú thích - Tác dụng: chú thích cho một câu lệnh hay một đoạn chương trình đã viết. Dòng chú thích này sẽ bị bỏ qua khi biên dịch chương trình. - Ký hiệu: /* chú thích */ hoặc // chú thích Ví dụ 1: #include<stdio.h> #include<conio.h> main() { printf("chao"); //in ra màn hình từ chao getch(); //tạm dừng chương trình chờ ấn phím Enter để tiếp tục } Ví dụ 2: #include <stdio.h> #include <conio.h> main() { char ten[50]; /* khai bao bien ten kieu char 50 ky tu */ clrscr(); /*lenh xoa man hinh*/ printf("Xin cho biet ten cua ban: "); /*Xuat chuoi ra man hinh*/ scanf("%s",ten); /*Doc vao 1 chuoi la ten cua ban*/ printf("\nXin chao ban %s\n",ten); printf("Chao mung ban den voi Ngon ngu lap trinh C"); getch(); /*Dung chuong trinh, cho go phim*/ } 1.4 Dấu chấm câu - Dấu “;” dùng để kết thúc một câu lệnh. 1.5 Cách khai báo * Khai báo biến: kieu_du_lieu danh_sach_bien; chú ý : Danh sách có thể là một biến hoặc nhiều biến có cùng một kiểu dữ liệu được viết cách nhau bởi dấu « , ». Ta có thể gán luôn giá trị cho từng biến. ví dụ : int i ; float x,y,z ; =================================================================== Giảng viên: Hoàng Thị Vân Anh – Khoa: Tin học kinh tế 4 Bài giảng: Cơ sở lập trình =================================================================== int i=3 ; * Khai báo hằng số const kieu_du_lieu ten_hang = gia_tri_hang ; ví du : const int x=2 ; * Khai báo hằng số tượng trưng #define Ten_hang gia_tri ; /* viết sau dòng #include */ ví dụ 4: #include <stdio.h> #include<conio.h> #define PI 3.14 /*khai báo hằng số tượng trưng */ main() { float R,Dien_tich; printf("R= "); scanf("%f",&R); Dien_tich = PI*R*R; printf("Dien tich = %f\n",Dien_tich); getch(); return(0); } 1.6 Phép gán giá trị Tên_một_biến = biểu_thức; ví dụ: i=3; /* i được gán giá trị là 3 */ i=i+4; /* i cộng 4 được kết quả là 7, giá trị 7 này lại đặt vào ô nhớ có địa chỉ của i*/ chú ý: Ta có thể sử dụng phép gán kép để gán một giá trị cho nhiều biến ví dụ: a=b=c=3; /*gán giá trị 3 cho các biến a, b, c */ a=b + (c=3); //gán 3 cho biến c, sau đó cộng vào với b để gán kết quả nhận được cho a 2. Cấu trúc một chương trình * Chương trình đơn giản: #include < > /* gọi các tệp tiền xử lí */ /* HÀM CHÍNH */ main() { /* Các câu lệnh */ return(0); /* Có thể bỏ lệnh này */ } // DINH NGHIA HAM =================================================================== Giảng viên: Hoàng Thị Vân Anh – Khoa: Tin học kinh tế 5 Bài giảng: Cơ sở lập trình =================================================================== Kiểu_dữ_liệu tên hàm (các tham số); { /* Các câu lệnh */ return ( ) /* Trả lại một giá trị cụ thể cho hàm */ } * Cấu trúc tổng thể: Chuyển sang bộ tiền xử lí #include #define typedefs (Định nghĩa kiểu dữ liệu) funtion prototype (nguyên mẫu các hàm: khai báo tên hàm với tham số) Khai báo biến ngoài (External variables) main() (function chính) { Khai báo các biến, hằng Sử dụng các hàm khác } function thứ hai { Khai báo các biến, hằng Sử dụng các hàm khác } function thứ ba { Khai báo các biến, hằng Sử dụng các hàm khác } ví dụ 5: #include <stdio.h> #include <conio.h> /* HAM CHINH */ main() { clrscr(); //cau lenh xoa man hinh float x=1.5; float y,z; int n=3, p=5, q=10; =================================================================== Giảng viên: Hoàng Thị Vân Anh – Khoa: Tin học kinh tế 6 Bài giảng: Cơ sở lập trình =================================================================== float f(float, int, int); //khai bao mau ham y= f(x,n,p); printf("Gia tri cua y = %f\n",y); z= f(x+0.5,q,n-1); printf("Gia tri cua z = %f\n",z); getch(); } /* DINH NGHIA HAM f */ float f(float x, int b, int c) { float gia_tri; //khai bao bien cuc bo gia_tri = x*x+b*x+c; return gia_tri; } 3. Môi trường làm việc - TC có thể chạy trong môi trường MS_DOS hoặc môi trường Windows. III. Các kiểu dữ liệu trong C 1. Các kiểu dữ liệu cơ bản 1.1 Kiểu số nguyên Kiểu số nguyên (hay còn gọi là kiểu đếm được): là kiểu dữ liệu dùng để lưu các giá trị nguyên. Kiểu số nguyên trong C được chia thành các kiểu dữ liệu con, mỗi kiểu có một miền giá trị khác nhau Kiểu biến Từ khoá Số byte Dải giá trị Character char 1 -128 ÷ 127 Integer int 2 -32768 ÷ 32767 Short integer short 2 -32768 ÷ 32767 Long integer long 4 -2,147,483,648 ÷ 2,147,483,647 Unsigned character unsigned char 1 0 ÷ 255 Unsigned integer unsigned int 2 0 ÷ 65,535 Unsigned Short integer unsigned short 2 0 ÷ 65,535 Unsigned Long integer unsigned long 4 0 ÷ 4,294,967,295 * Các phép toán đối với số nguyên: +, -, *, / (lấy phần nguyên), % (lấy phần dư). ví dụ: 5/3 được 1 5%3 được 2 chú ý: Muốn lấy được kết quả chính xác là số thực của phép chia hai số nguyên, ta phải viết (float) x/y =================================================================== Giảng viên: Hoàng Thị Vân Anh – Khoa: Tin học kinh tế 7 Bài giảng: Cơ sở lập trình =================================================================== 1.2 Kiểu số thực Kiểu số thực dùng để lưu các số thực hay các số có dấu chấm thập phân - Dạng viết thập phân bình thường: 3.14; -0.4545; - Dạng viết có phần mũ (dạng viết khoa học) ví dụ: 5.6543E +02 (= 5.6543* 10 2 ) phần định trị phần mũ -0.001234 = -1.234*10 3 sẽ được viết lại làL -1.234E -03 chú ý: Phần định trị và phần mũ đều có dấu đi kèm. Hai phần này phải được viết liền nhau. Kiểu biến Từ khoá Số byte Dải giá trị Single-precision float-point (số thực với độ chính xác đơn) float 4 1.2E-38 ÷ 3.4E38 Độ chính xác khoảng 7 chữ số Double-precision float-point (số thực với độ chính xác kép) double 8 2.2E-308 ÷ 1.8E308 Độ chính xác khoảng 15 chữ số Long Double-precision float-point (Độ dài lớn) long double 10 3.4E-4932 ÷ 3.4E4932 Độ chính xác khoảng 19 chữ số chú ý: Ta có thể viết E hoặc e đều được. * Các phép toán: +, - , *, / (kết quả là số thực) 1.3 Kiểu kí tự (char) - Mỗi ký tự chiếm 1 byte trong bộ nhớ. Ví dụ: ‘h’ ‘A’ ‘0’ ‘?’ Mỗi giá trị kiểu kí tự là một phần tử của một tập hữu hạn các kí tự được sắp xếp có thứ tự => ta có thể so sánh được. (bảng mã ASCII với 128 ký tự đầu – trang 47 – Ngôn ngữ lập trình C) * Các hàm xử lí kí tự: Hàm Kiểu giá trị nhận được Tác dụng toASCII(c) int Chuyển c thành mã ASCII tolower(c) char Chuyển thành chữ thường toupper(c) char Chuyển thành chữ hoa chú ý: Các hàm trên nằm trong tệp <ctype.h> ví dụ 5: #include<stdio.h> #include<ctype.h> #include<conio.h> main() { char ChuThuong,ChuHoa; ChuThuong = getchar(); //doc mot ky tu tu ban phim ChuHoa = toupper(ChuThuong); //Chuyen thanh chu hoa =================================================================== Giảng viên: Hoàng Thị Vân Anh – Khoa: Tin học kinh tế 8 Bài giảng: Cơ sở lập trình =================================================================== putchar(ChuHoa); //in ra man hinh getch(); } 1.4 Hằng xâu kí tự Xâu kí tự là dữ liệu kí tự được lưu trữ trong một mảng các ô nhớ liền nhau trong đó ô cuối cùng chứa mã số là 0 (tức là null hay \0) ví dụ: “Ha Noi” H a N o i \0 1.5 Kiểu Boolean - là biểu thức mà kết quả chỉ nhận một trong hai giá trị true (ứng với 1) hoặc false (ứng với 0) * Các phép toán logic TOÁN TỬ PHÉP TOÁN LOGIC Ý NGHĨA && AND Phép “và” || OR Phép “hoặc” ! NOT Phép “phủ định” * Bảng sự thật X Y X&&Y X||Y 0 0 0 0 0 số khác không 0 1 số khác không 0 0 1 số khác không số khác không 1 1 X !X 0 1 số khác không 0 * Các phép toán quan hệ (kết quả trả về là true,1 hoặc false,0): != so sánh khác nhau == so sánh bằng nhau >= so sánh lớn hơn hoặc bằng <= so sánh nhỏ hơn hoặc bằng > so sánh lớn hơn < so sánh nhỏ hơn Ví dụ: 3<5 được kết quả là true (tương ứng với 1) !(3<5) được kết quả là false (tương ứng với 0) =================================================================== Giảng viên: Hoàng Thị Vân Anh – Khoa: Tin học kinh tế 9 Bài giảng: Cơ sở lập trình =================================================================== 2. Chuyển đổi kiểu dữ liệu * Sự hiệu chỉnh kiểu dữ liệu số học - Một biểu thức toán học có thể tồn tại nhiều toán hạng với các kiểu số học khác nhau (số nguyên, số thực) Khi quy đổi kết quả, máy tính sẽ chuyển từ kiểu đơn giản lên kiểu cao hơn cho phù hợp theo nguyên tắc: int → long → float → double → long double (2 byte) (4) (4) (8) (10) Ví dụ: int i; long j; float k; i + j có kết quả là dữ liệu kiểu long. i + j + k có kết quả là dữ liệu kiểu float. chú ý: Không có kiểu char và short trong dãy nguyên tắc trên. * Sự ưu tiên cho kiểu số: - Trong biểu thức toán học, các biến có kiểu dữ liệu char hoặc short đều được quy đổi về kiểu dữ liệu int rồi mới thực hiện tính (vì các phép toán số học không được định nghĩa cho kiểu char và short). ví dụ: char a; int b; float c; a + b cho kết quả có kiểu dữ liệu là int (vì a được chuyển sang kiểu dữ liệu int rồi mới cộng vào b) a + b + c cho kết quả có kiểu dữ liệu là float * Sự chuyển đổi cho kiểu kí tự char - Trong phép toán, char tự chuyển đổi thành int - Trong phép tính tổng (hiệu) với một ký tự khác, kết quả sẽ là tổng (hiệu) của a với mã ASCII của ký tự. Ví dụ: char a = 5; ‘B’ + a chính là ‘B’ + 5 = 66 + 5 = 71 => được kết quả là ký tự G 3. Thứ tự ưu tiên các phép toán * Bảng tổng hợp đơn giản về thứ tự ưu tiên toán tử số học và quan hệ TOÁN TỬ CHIỀU TÍNH TOÁN ( ) L → R - (toán tử 1 ngôi) R → L * / % L → R + - L → R =================================================================== Giảng viên: Hoàng Thị Vân Anh – Khoa: Tin học kinh tế 10 [...]... #include main() { clrscr(); int a=1; switch(a) { case 0: printf( "so do la 0\n"); case 1: printf( "so do la 1\n"); case 2: printf( "so do la 2\n"); default: printf("khong phai so 0 1 2"); } getch(); } Ví dụ 10_break: #include #include main() { clrscr(); int a=1; switch(a) { case 0: printf( "so do la 0\n"); break; case 1: printf( "so do la 1\n"); break; case 2: printf( "so do la... +BLINK vào tên màu để có được màu nhấp nháy Ví dụ 8: #include #include main() { textbackground(RED); clrscr(); gotoxy(3,10); textcolor(BLACK); cprintf("\nxin chao"); //in ra man hinh soan thao cprintf("\nChao mung ban den voi Ngon ngu lap trinh C"); getch(); } =================================================================== Giảng viên: Hoàng Thị Vân Anh – Khoa: Tin học kinh tế 14... Cách thực hiện: Begin Công việc thực hiện đúng biểu thức logic sai End Ví dụ 12: // nhap cac so nguyen tu ban phim sao cho tong cua chung lon hon 100 #include #include main() { clrscr(); int n, tong=0; do { printf("Nhap so: "); scanf("%d",&n); tong+=n; } while (tong= L→R L→R L→R L→R Ví dụ: 5*(2+3) = 5*6=30 5/3*2 = 1*2 = 2 Vd6: Chương trình minh họa #include #include main() { int a; a=5/3*2; printf("kq: %f",a); //in ra man hinh gia tri cua a getch(); //lenh tam dung chuong trinh cho an phim Enter } * Bảng tổng hợp đầy đủ TOÁN TỬ ( ) [ ] -> - ++ ! sizeof( ) (toán tử một ngôi) * / % + > < >= == != & ^ | . về là true,1 hoặc false,0): != so sánh khác nhau == so sánh bằng nhau >= so sánh lớn hơn hoặc bằng <= so sánh nhỏ hơn hoặc bằng > so sánh lớn hơn < so sánh nhỏ hơn Ví dụ: 3<5 được. 10: #include<stdio.h> #include<conio.h> main() { clrscr(); int a=1; switch(a) { case 0: printf(" ;so do la 0 "); case 1: printf(" ;so do la 1 "); case 2: printf(" ;so do la 2 "); default:. #include conio.h gotoxy(int X, int Y); //Di chuyển con trỏ đến vị trị có toạ độ cột là X, toạ độ dòng là Y. (1 <= X <= 25, 1 <= Y <= 80) clrscr( ); // xoá màn hình và đưa con trỏ

Ngày đăng: 11/08/2014, 21:20

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan