Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 93 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
93
Dung lượng
1,45 MB
Nội dung
TLTK Lập Trình Cơ Với C MỤC LỤC Chương 1.1 GIỚI THIỆU NGÔN NGỮ C .5 Một số khái niệm: 1.1.1 Thông tin: 1.1.2 Dữ liệu: 1.1.3 Câu lệnh: 1.1.4 Chương trình: 1.1.5 Phần mềm: .6 1.1.6 Ngôn ngữ lập trình: 1.2 Khái quát ngôn ngữ C/C++: 1.3 Các bước thực chương trình: 1.4 Chương trình đơn giản: 1.4.1 1.5 Cấu trúc chương trình C: Giải thuật đặc tả giải thuật: .11 1.5.1 Khái niệm: .11 1.5.2 Lưu đồ: 11 1.5.3 Mã giả: 12 1.5.4 Ví dụ: .12 Chương CÁC KIỂU DỮ LIỆU, HẰNG, BIẾN .16 2.1 Tập ký tự dùng C: .16 2.2 Từ khóa: .16 2.3 Tên cách đặt tên: .16 2.3.1 Tên: 16 2.3.2 Cách đặt tên: 17 2.4 Các kiểu liệu bản: .17 2.4.1 Kiểu số nguyên: .17 2.4.2 Kiểu số thực: 18 2.4.3 Kiểu liệu void: 18 Trang TLTK Lập Trình Cơ Với C 2.5 Biến: 18 2.5.1 Khái niệm: 18 2.5.2 Cú pháp khai báo: 18 2.5.3 Ví dụ: 18 2.5.4 Phạm vi biến: 18 2.6 Hằng: 19 2.6.1 Khái niệm: 19 2.6.2 Cú pháp khai báo: 19 2.6.3 Ví dụ: 19 Chương 3.1 TOÁN TỬ VÀ BIỂU THỨC 23 Các loại toán tử: 23 3.1.1 Toán tử số học: 23 3.1.2 Toán tử luận lý: 25 3.1.3 Toán tử bit: 27 3.1.4 Toán tử so sánh: 28 3.1.5 Toán tử gán: 29 3.1.6 Toán tử điều kiện ? : 30 3.2 Độ ưu tiên toán tử biểu thức có nhiều tốn tử: 31 3.3 Biểu thức: 32 3.3.1 Khái niệm: 32 3.3.2 Ví dụ: 32 3.4 Câu lệnh nhập/xuất: 32 3.4.1 Câu lệnh printf: 32 3.4.2 Câu lệnh scanf: 37 CÁC CẤU TRÚC ĐIỀU KHIỂN 42 Chương 4.1 Giới thiệu: 42 4.2 Cấu trúc điều kiện: 42 4.2.1 Cấu trúc if 42 4.2.2 Cấu trúc if…else: 43 Trang TLTK Lập Trình Cơ Với C 4.2.3 4.3 Cấu trúc if… else lồng nhau: 45 Cấu trúc switch: 48 4.3.1 Cú pháp: 48 4.3.2 Ý nghĩa: 49 4.4 Cấu trúc lặp for: 51 4.4.1 Cú pháp: 51 4.4.2 Ý nghĩa: 51 4.4.3 Ví dụ: .51 4.5 Cấu trúc lặp while: .53 4.5.1 Cú pháp: 53 4.5.2 Ý nghĩa: 54 4.5.3 Ví dụ: .54 4.6 Cấu trúc lặp while: 56 4.6.1 Cú pháp: 56 4.6.2 Ý nghĩa: 56 4.6.3 Ví dụ: .56 4.7 So sánh cấu trúc: 58 4.8 Câu lệnh break continue: 59 4.8.1 Ý nghĩa: 59 4.8.2 Ví dụ: .59 4.9 Câu lệnh return: 61 4.9.1 Ý nghĩa: 61 4.9.2 Cú pháp: 61 4.9.3 Ví dụ: .61 4.10 Câu lệnh goto: 61 4.10.1 Ý nghĩa: 61 4.10.2 Cú pháp: .62 4.10.3 Ví dụ: 62 Chương HÀM 67 Trang TLTK Lập Trình Cơ Với C 5.1 Giới thiệu: 67 5.2 Các hàm thư viện thông dụng: 67 5.3 Hàm người dùng tự xây dựng: 68 5.3.1 Định nghĩa hàm: 68 5.3.2 Sử dụng hàm: 69 5.4 Nguyên tắt hoạt động hàm: 71 5.5 Tham số: 71 5.5.1 Tham trị: 71 5.5.2 Tham chiếu: 72 5.6 Biến toàn cục cục bộ: 73 5.7 Hàm khơng có tham số khơng có kiểu trả về: 73 5.8 Hàm đệ qui: 75 5.8.1 Định nghĩa: 75 5.8.2 Cách xây dựng hàm: 76 Chương MẢNG MỘT CHIỀU 79 6.1 Giới thiệu: 79 6.2 Khai báo khởi tạo: 79 6.2.1 Khai báo tường minh: 79 6.2.2 Khai báo không tường minh: 80 6.2.3 Khai báo khởi tạo trị ban đầu: 80 6.3 Truy xuất mảng: 81 6.3.1 Nhập liệu cho mảng: 82 6.3.2 Xuất liệu từ mảng: 82 6.4 Sắp xếp mảng: 83 6.5 Tìm kiếm mảng: 86 Trang TLTK Lập Trình Cơ Với C Chương 1.GIỚI THIỆU NGÔN NGỮ C Mục tiêu : Học xong chương Sinh viên có thể: Phân biệt khác câu lệnh, chương trình phần mềm Biết trình hình thành C Trình bày cấu trúc chương trình C bản, cách thực chương trình C máy Trình bày khái niệm giải thuật Có thể phân tích thực giải thuật đơn giản 1.1 Một số khái niệm: 1.1.1 Thông tin: - Thông tin hiểu biết người kiện, tượng thu nhận qua nghiên cứu, trao đổi, nhận xét, học tập, truyền thụ, cảm nhận… - Con người hiểu thơng tin qua lời nói, chữ viết… diễn tả thông tin thành ngôn ngữ để truyền đạt cho - Thông tin chuyển tải qua môi trường vật lý khác ánh sáng, sóng âm, sóng điện từ… Thơng tin ghi phương tiện hữu văn giấy, băng ghi âm hay phim ảnh… 1.1.2 Dữ liệu: - Là hình thức thể thơng tin mục đích thu thập, lưu trữ xử lý - Trong nhiều tài liệu người ta định nghĩa liệu đối tượng xử lý máy tính - Thơng tin ln mang ý nghĩa xác định cịn liệu kiện khơng có ý nghĩa rõ ràng khơng tổ chức xử lý 1.1.3 Câu lệnh: Câu lệnh thị hoàn chỉnh có ý nghĩa rõ ràng, đơn vị cuả ngơn ngữ lập trình Những thị cần phải tuân thủ quy tắc: Tuần tự Có giới hạn Chính xác Trang TLTK Lập Trình Cơ Với C Như câu lệnh bao gồm một hay nhiều mệnh lệnh máy tính Tùy theo ngơn ngữ lập trình, câu lệnh có cấu trúc khác có trật tự xếp định Trật tự thường không đổi gọi cú pháp (syntax) 1.1.4 Chương trình: Là tập hợp câu lệnh, phát biểu, nằm hệ thống qui ước ý nghĩa thứ tự thực hiện, nhằm điều khiển máy tính làm việc Theo Niklaus Wirth thì: Chương trình = Thuật tốn + Cấu trúc liệu 1.1.5 Phần mềm: Là tập họp chương trình 1.1.6 Ngơn ngữ lập trình: Ngơn ngữ lập trình hệ thống ký hiệu tuân theo qui ước ngữ pháp ngữ nghĩa, dùng để xây dựng thành chương trình cho máy tính.Một chương trình viết ngơn ngữ lập trình cụ thể (ví dụ Pascal, C…) gọi chương trình nguồn, chương trình dịch làm nhiệm vụ dịch chương trình nguồn thành chương trình thực thi máy tính Một ngơn ngữ lập trình phải thỏa mãn hai điều kiện là: Phải dễ hiểu dễ sử dụng người lập trình, để người dùng giải tốn khác Phải miêu tả cách đầy đủ rõ ràng tiến trình (process), để chạy máy tính khác 1.2 Khái qt ngơn ngữ C/C++: C ngơn ngữ lập trình, sử dụng phổ biến để lập trình hệ thốngcùng với Assembler phát triển ứng dụng Vào năm cuối thập kỷ 60 đầu thập kỷ 70 kỷ XX, Dennish Ritchie(làm việc phịng thí nghiệm Bell) phát triển ngơn ngữ lập trình C dựa ngơn ngữ BCPL (do Martin Richards đưa vào năm 1967) ngôn ngữ B (do KenThompson phát triển từ ngôn ngữ BCPL vào năm 1970 viết hệ điều hành UNIX máy PDP-7) cài đặt lần hệ điều hành UNIX máy DEC PDP-11 Năm 1978, Dennish Ritchie B.W Kernighan cho xuất “Ngơn ngữ lập trình C” phổ biến rộng rãi đến Trang TLTK Lập Trình Cơ Với C Lúc ban đầu, C thiết kế nhằm lập trình mơi trường hệ điều hành Unix nhằm mục đích hỗ trợ cho cơng việc lập trình phức tạp Nhưng sau, với nhu cầu phát triển ngày tăng công việc lập trình, C vượt qua khn khổ phịng thí nghiệm Bell nhanh chóng hội nhập vào giới lập trình để cơng ty lập trình sử dụng cách rộng rãi Sau đó, công ty sản xuất phần mềm đưa phiên hỗ trợ cho việc lập trình ngôn ngữ C chuẩn ANSI C khai sinh từ Ngơn ngữ lập trình C ngơn ngữ lập trình hệ thống mạnh “mềm dẻo”, có thư viện gồm nhiều hàm (function) tạo sẵn Người lập trình tận dụng hàm để giải tốn mà khơng cần phải tạo Hơn nữa, ngơn ngữ C hỗ trợ nhiều phép tốn nên phù hợp cho việc giải toán kỹ thuật có nhiều cơng thức phức tạp Ngồi ra, C cho phép người lập trình tự định nghĩa thêm kiểu liệu trừu tượng khác Tuy nhiên, điều mà người vừa học lập trình C thường gặp “rắc rối” “hơi khó hiểu” “mềm dẻo” C Dù vậy, C phổ biến rộng rãi trở thành công cụ lập trình mạnh, sử dụng ngơn ngữ lập trình chủ yếu việc xâydựng phần mềm 1990, đời ngôn ngữ lập trình hướng đối tượng C++ Java Nhiều ngơn ngữ đại bắt nguồn từ C như: MS VC++, Java, C# Ngơn ngữ C có đặc điểm sau: Tính đọng (compact):C có 32 từ khóa chuẩn 40 tốn tử chuẩn, hầu hết biểu diễn chuỗi ký tự ngắn gọn Tính cấu trúc (structured):C có tập hợp thị lập trình cấu trúc lựa chọn, lặp… Từ chương trình viết C tổ chức rõ ràng, dễ hiểu Tính tương thích (compatible):C có tiền xử lý thư viện chuẩn vơ phong phú nên chuyển từ máy tính sang máy tính khác chương trình viết C hồn tồn tương thích Tính linh động (flexible):C ngôn ngữ uyển chuyển, chấp nhận nhiều cách thể hiện, thu gọn kích thước mã lệnh làm chương trình chạy nhanh Biên dịch (compile): C cho phép biên dịch nhiều tập tin chương trình riêng rẽ thành tập tin đối tượng (object) liên kết (link) đối tượng Trang TLTK Lập Trình Cơ Với C lại với thành chương trình thực thi (executable) thống C ngơn ngữ bậc trung kết hợp yếu tố ngơn ngữ cấp cao chức hợp ngữ (ngôn ngữ cấp thấp) C cho phép thao tác thành phần máy tính bits, bytes, địa chỉ, trỏ nên thích hợp lập trình mức hệ thống Hơn nữa, mã C khả chuyển nghĩa phần mềm viết cho loại máy tính, loại hệ điều hành chạy loại máy tính hệ điều hành khác C có kiểu liệu C khơng ngôn ngữ định kiểu mạnh C cho phép việc chuyển đổi kiểu liệu C có 32 từ khố chuẩn lệnh tạo nên ngơn ngữ C ngơn ngữ cấp cao khác có số lượng từ khóa nhiều nhiều(ví dụ: Basic có >100 từ khóa) C xem ngơn ngữ cấu trúc có nhiều điểm giống với ngơn ngữ cấu trúc ALGOL, Pascal số ngôn ngữ tương tự khác Đặc trưng ngơn ngữ có cấu trúc ngăn cách code liệu(data) Sự ngăn cách thường thực cách sử dụng chương trình dùng biến cục Người viết chương trình hồn tồn thực chương trình cho kiện phát sinh bên chúng không gây hiệu ứng phần lại 1.3 Các bước thực chương trình: Bước 1: Phân tích vấn đề xác định đặc điểm (xác định I-P-O) Bước 2: Lập giải pháp (đưa thuật giải) Bước 3: Cài đặt (viết chương trình) Bước 4: Chạy thử chương trình (dịch chương trình) Bước 5: Kiểm chứng hồn thiện chương trình (thử nghiệm nhiều số liệu đánh giá) Ví dụ: xác định I_P_O cho chương trình nhập số ngun , tính xuất tổng số Input: số nguyên a,b Process: tính tong =a+b Output: xuất tong 1.4 Chương trình đơn giản: Trang TLTK Lập Trình Cơ Với C #include"stdafx.h" #include"conio.h" #include"stdio.h" Khai báo thư viện void main() { Khai báo hàm main int a,b, tong; Khai báo biến printf("nhap a: ");scanf("%d", &a); printf("nhap b: ");scanf("%d", &b); Các xử lý tong = a+b; printf("%d + %d = %d", a, b, tong); getch(); Xuất kết } 1.4.1 Cấu trúc chương trình C: Chỉ thị tiền xử lý: Trong C, việc dịch (translation) tập tin nguồn tiến hành hai bướchoàn toàn độc lập với nhau: - Tiền xử lý - Biên dịch Hai bước phần lớn thời gian nối tiếp với cách tự động theo cách thức mà ta có ấn tượng thực xử lý Bước tiền xử lý tương ứng với việc cập nhật văn chương trình nguồn, chủ yếu dựa việc diễn giải mã lệnh đặc biệt gọi thị dẫn hướng tiền xử lý (destination directive of preprocessor); thị bắt đầu ký hiệu # Hai thị tiền xử lý thường dùng là: - Chỉ thị gộp vào tập tin nguồn khác: #include - Chỉ thị việc định nghĩa macro ký hiệu: #define Trang TLTK Lập Trình Cơ Với C Chỉ thị # include nhằm gộp vào nội dung tậptin (header file), thiếu việc sử dụng cách tốt hàm thư viện chuẩn, phổ biến là: #include Chỉ thị thứ hai hay sử dụng tập tin thư viện (header file) định nghĩa trước thường khai thác lập trình viên việc định nghĩa ký hiệu là: #define PI 3.141592 Chương trình C bao gồm phần như: Các thị tiền xử lý, khai báo biến ngồi, hàm tự tạo, chương trình (hàm main) Cấu trúc sau: Các thị tiền xử lý (Preprocessor directives) #include #define … Định nghĩa kiểu liệu (phần không bắt buộc): dùng để đặt tên lại cho kiểudữ liệu để gợi nhớ hay đặt kiểu liệu cho riêng dựa kiểu dữliệu có Cú pháp: typedef ; Ví dụ: typedef int SoNguyen; // Kiểu SoNguyen kiểu int Khai báo prototype: phần khai báo đầuhàm, phần định nghĩa hàm Cú pháp: Tên_hàm ( tham số); Khai báo biến (các biến toàn cục) phần không bắt buộc: phần khaibáo biến tồn cục sử dụng chương trình Chương trình phần bắt buộc phải có void main() { Các khai báo cục hàm main: Các khai báo tồn hàm mà thơi, khai báo biến hay khai báo kiểu Các câu lệnh dùng để xử lý bên hàm main } Cài đặt hàm Trang 10 TLTK Lập Trình Cơ Với C Chương 6.MẢNG MỘT CHIỀU Mục tiêu : Học xong chương Sinh viên có thể: Trình bày khái niệm mảng, thành phần mảng Trình bày vận dụng cách khai báo mảng khởi tạo mảng Sử dụng thao tác truy xuất phần tử mảng, xếp, tìm kiếm mảng chiều Truyền mảng cho hàm 6.1 Giới thiệu: Một mảng tập hợp phần tử liệu có kiểu liệu, tên Mỗi phần tử lưu trữ vị trí nhớ chính.Những phần tử gọi phần tử mảng Mỗi phần tử mảng định danh mục số gán cho Chiều mảng xác định số số cần thiết để định danh phần tử Một số số nguyên dương bao dấu ngoặc vuông [ ] đặt sau tên mảng, khơng có khoảng trắng Một số chứa giá trị nguyên bắt đầu 6.2 Khai báo khởi tạo: 6.2.1 Khai báo tường minh: []; Ví dụ: int a[10]; Mỗi phần tử mảng có kiểu int Chỉ số Bao gồm 10 phần tử Lưu ý Phải xác định cụ thể (hằng) khai báo Trang 79 TLTK Lập Trình Cơ Với C Bộ nhớ sử dụng = *sizeof() Mảng dãy liên tục có số từ đến 6.2.2 Khai báo không tường minh: []; Ví dụ: int a[]; 6.2.3 Khai báo khởi tạo trị ban đầu: []={gtrị 1, gtrị 2, … }; Ví dụ: int a[]={5,9,15,3}; Chỉ số 15 Ví dụ: int a[4] = {0}; Chỉ số 0 0 Một vài lưu ý với mảng: Tất phần tử mảng có kiểu Điều có nghĩa là, mảng khai báo kiểu int, khơng thể chứa phần tử có kiểu khác Kích thước xác định khai báo không thay đổi Ngơn ngữ lập trình C ln định khối nhớ liên tục cho biến kiểu mảng Mỗi phần tử mảng sử dụng nơi mà biến cho phép hay yêu cầu Một phần tử mảng tham chiếu đến cách sử dụng biến biểu thức nguyên Ví dụ :các tham chiếu hợp lệ int x = m[i]; /*Ở i biến, nhiên cần phải ý i nằm miền giới hạn số khai báo cho mảng player*/ m[3] = m[2] + 5; m[0] += 2; m[i / + 1];//i phải số nguyên Kiểu liệu mảng int, char, float, double Trang 80 TLTK Lập Trình Cơ Với C 6.3 Truy xuất mảng: Truy xuất mảng thông qua số mảng: [] Ví dụ: int a[10]; a[5] = 7; a[15] = 9;//không hợp lệ số mảng > số phần tử mảng Không sử dụng phép gán thông thường mảng mà phải gán trực tiếp phần tử tương ứng Ví dụ: #include "stdafx.h" #include "stdio.h" #include "conio.h" void main() { int a[4]={9,8,12,3}; int b[4]; b = a; getch(); } Kết chương trình báo lỗi Chương trình phải viết lại là: #include "stdafx.h" #include "stdio.h" #include "conio.h" void main() { int a[4]={9,8,12,3}; int b[4]; for(i =0; i