Bài giảng Lập trình cơ bản C - Chương 1: Khái niệm cơ bản C
Phân biệt sự khác nhau giữa Câu lệnh, Chương trình và Phần mềm
Biết được quá trình hình thành ngôn ngữ C
Biết được khi nào dùng C và tại sao
Nắm được cấu trúc ngôn ngữ C
Hiểu rõ khái niệm giải thuật (algorithms)
Vẽ lưu đồ (flowchart)
Sử dụng được các ký hiệu dùng trong lưu đồ
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Lập trình cơ bản C - Chương 1: Khái niệm cơ bản C", để tải tài liệu gốc về máy hãy click vào nút Download ở trên
Tóm tắt nội dung tài liệu: Bài giảng Lập trình cơ bản C - Chương 1: Khái niệm cơ bản C
Khái niệm cơ bản C Chương 1 Lập trình cơ bản C/Chương 1/ 2 of 26 Mục Tiêu Phân biệt sự khác nhau giữa Câu lệnh, Chương trình và Phần mềm Biết được quá trình hình thành ngôn ngữ C Biết được khi nào dùng C và tại sao Nắm được cấu trúc ngôn ngữ C Hiểu rõ khái niệm giải thuật (algorithms) Vẽ lưu đồ (flowchart) Sử dụng được các ký hiệu dùng trong lưu đồ Lập trình cơ bản C/Chương 1/ 3 of 26 Phần mềm, chương trình, câu lệnh Software Program 2 Program 1 Commands Commands Commands Lập trình cơ bản C/Chương 1/ 4 of 26 Bắt đầu C C – Dennis Ritchie B – Ken Thompson BPCL – Martin Richards Lịch sử C C và Unix có chung nguồn gốc C ban đầu được xây dựng và cài đặt trên hệ điều hành Unix máy tính PDP-11 Dennis Ritchie là tác giả C (1971). Năm 1973 Unix được viết lại bằng C BCPL (giữa những năm-60s) hay B (1970, cắt gọn của BCPL) là tiền thân của C (không có A) BCPL và B ngôn ngữ không định kiểu, C là ngôn ngữ định kiểu. Lập trình cơ bản C/Chương 1/ 5 of 26 Năm 1978 - Kernighan & Ritchie (1st edition) công bố phiên bản chuẩn đầu tiên của C "K&R C“ Năm 1983, Viện tiêu chuẩn quốc gia Mỹ American National Standards Institute (ANSI) thành thập một ủy ban để làm rõ và chuẩn hóa ngôn ngữ. Năm1988, ANSI C công bố phiên bản đầu tiên. Năm 1990, ISO thông qua ANSI C không thay đổi – là chuẩn quốc tế cho đến bây giờ. Điều này mang đến lợi ích rất lớn về tính khả chuyển See for more details Lập trình cơ bản C/Chương 1/ 6 of 26 Lịch sử C Lập trình cơ bản C/Chương 1/ 7 of 26 Các lĩnh vực ứng dụng của C C được dùng để lập trình hệ thống Một chương trình hệ thống làm thành một phần hệ điều hành hoặc các tiện ích hỗ trợ của hệ điều hành Hệ điều hành (Operating Systems), trình thông dịch (Interpreters), trình soạn thảo (Editors), trình Hợp Ngữ (Assembly) được gọi là chương trình hệ thống Lập trình cơ bản C/Chương 1/ 8 of 26 Ngôn ngữ cấp trung Ngôn ngữ cấp cao Ngôn ngữ hợp ngữ C Lập trình cơ bản C/Chương 1/ 9 of 26 Ngôn ngữ có cấu trúc C cho ph ép tổng hợp mã lệ nh và dữ liệu Nó có khả năng tập hợp và ẩn đi tất cả thông tin, lệnh khỏi phần còn lại của chương trình để dùng cho những tác v ụ riêng Chương trình C có thể được chia nhỏ thành những hàm (functions) hay những khối mã (code blocks). Lập trình cơ bản C/Chương 1/ 10 of 26 Đặc điểm của C C c ó 32 t ừ khóa Những từ khóa này kết hợp với cú pháp của C hình thành ngôn ngữ C Các quy tắc được áp dụng cho các chương trình C Tất cả từ khóa là chữ thường Ðoạn mã trong chương trình C có phân biệt chữ thường, chữ hoa, do while khác DO WHILE Từ khóa không thể dùng đặt tên biến (variable name) hoặc tên hàm (function name) main() { /* This is a sample Program*/ int i,j; i=100; j=200; : } Lập trình cơ bản C/Chương 1/ 11 of 26 Cấu trúc chương trình C main() Chương trình C được chia nhỏ thành những đơn vị gọi là hàm Không kể có bao nhiêu hàm trong chương trình, Hệ điều hành luôn trao quyền điều khiển cho hàm main() khi một chương trình C được thực thi. Theo sau tên hàm là dấu ngoặc đơn Dấu ngoặc đơn có thể có chứa hay không chứa những tham số Lập trình cơ bản C/Chương 1/ 12 of 26 Cấu trúc chương trình C (tt.) Dấu phân cách {} Sau phần đầu hàm là dấu ngoặc xoắn mở { Nó cho biết việc thi hành lệnh trong hàm bắt đầu Tương tự, dấu ngoặc xoắn đóng } sau câu lệnh cuối cùng trong hàm chỉ ra điểm kết thúc của hàm Lập trình cơ bản C/Chương 1/ 13 of 26 Cấu trúc chương trình C (tt.) Dấu kết thúc câu lệnh ; Một câu lệnh trong C được kết thúc bằng dấu chấm phẩy ; Trình biên dịch C không hiểu việc xuống dòng, khoảng trắng hay tab Một câu lệnh không kết thúc bằng dấu chấm phẩy sẽ được xem như dòng lệnh lỗi trong C Lập trình cơ bản C/Chương 1/ 14 of 26 Cấu trúc chương trình C (tt.) /*Dòng chú thích*/ Những chú thích thường được viết để mô tả công việc của một lệnh đặc biệt, một hàm hay toàn bộ chương trình Trình biên dịch sẽ bỏ qua phần chú thích Trong trường hợp chú thích nhiều dòng, nó sẽ bắt đầu bằng ký hiệu /* và kết thúc là */ Lập trình cơ bản C/Chương 1/ 15 of 26 Tất cả trình biên dịch C đều chứa một thư viện hàm chuẩn Một hàm được viết bởi lập trình viên có thể được đặt trong thư viện và được dùng khi cần thiết Một số trình biên dịch cho phép thêm hàm vào thư viện chuẩn Một số trình biên dịch yêu cầu tạo một thư viện riêng Thư viện C Lập trình cơ bản C/Chương 1/ 16 of 26 Biên dịch và thi hành chương trình Lập trình cơ bản C/Chương 1/ 17 of 26 Các bước lập trình giải quyết vấn đề Phòng học Rời phòng học Ðến cầu thang Xuống tầng hầm Ði đến quán ăn tự phục vụ Cafeteria Giải thuật gồm một tập hợp các bước thực hiện nhằm giải quyết một vấn đề. Thí dụ sau đây mô tả một giải thuật Ðây là các bước thực hiên khi một người muốn đi đến quán ăn tự phục vụ từ phòng học Lập trình cơ bản C/Chương 1/ 18 of 26 Giải quyết một vấn đề Ðể giải quyết một vấn đề Hiểu vấn đề rõ ràng Thu thập thông tin thích hợp Xử lý thông tin Ðạt được kết quả Lập trình cơ bản C/Chương 1/ 19 of 26 Mã giả (Pseudocode) Không là mã thật. Một phương pháp viết giải thuật sử dụng một tập hợp các từ tương tự mã thật Mỗi đoạn mã giả phải bắt đầu với một từ BEGIN Ðể hiển thị giá trị nào đó, từ DISPLAY được dùng Mã giả kết thúc với từ END BEGIN DISPLAY ‘Hello World !’ END Lập trình cơ bản C/Chương 1/ 20 of 26 Lưu đồ (Flowcharts) Lưu đồ là một hình ảnh minh hoạ cho giải thuật START DISPLAY ‘Hello World !’ STOP Lập trình cơ bản C/Chương 1/ 21 of 26 Biểu tượng trong lưu đồ Lập trình cơ bản C/Chương 1/ 22 of 26 Lưu đồ cộng hai số Lập trình cơ bản C/Chương 1/ 23 of 26 Cấu trúc IF BEGIN INPUT num r = num MOD 2 IF r=0 Display “Number is even” END IF END Yes No Lập trình cơ bản C/Chương 1/ 24 of 26 Cấu trúc IFELSE BEGIN INPUT num r=num MOD 2 IF r=0 DISPLAY “Even Number” ELSE DISPLAY “Odd Number” END IF END Yes No Lập trình cơ bản C/Chương 1/ 25 of 26 Ða điều kiện sử dụng AND/OR BEGIN INPUT yearsWithUs INPUT bizDone IF yearsWithUs >= 10 AND bizDone >=5000000 DISPLAY “Classified as an MVS” ELSE DISPLAY “A little more effort required!” END IF END Lập trình cơ bản C/Chương 1/ 26 of 26 Cấu trúc IF lồng nhau BEGIN INPUT yearsWithUs INPUT bizDone IF yearsWithUs >= 10 IF bizDone >=5000000 DISPLAY “Classified as an MVS” ELSE DISPLAY “A little more effort required!” END IF ELSE DISPLAY “A little more effort required!” END IF END Lập trình cơ bản C/Chương 1/ 27 of 26 Cấu trúc IF lồng nhau (tt.) START INPUT bizDone YearsWithUs >= 10 bizDone > 5000000 DISPLAY “A Little more effort required” STOP NO YES NO YES DISPLAY “A Little more effort required” DISPLAY “Classified as an MVS” INPUT YearsWithUs Lập trình cơ bản C/Chương 1/ 28 of 26 Vòng lặp BEGIN cnt=0 WHILE (cnt < 1000) DO DISPLAY “Scooby” cnt=cnt+1 END DO END Yes No Bài tập Cho tam giác ABC có góc vuông A và cho biết cạnh a và góc B. Hãy viết thuật toán để tính góc C, cạnh b và cạnh c Chỉ dùng phép cộng, tính bình phương của một số Tính nghiệm xấp xỉ với độ chính xác ε = 0.000001 của phương trình f(x)= e x - x 3 = 0 Lập trình cơ bản C/Chương 1/ 29 of 26 Bài tập S ử dụng thuật toán chia đôi dựa vào tính chất: nếu một hàm f liên tục trên đoạn [a,b] có f(a) và f(b) thì phương trình f(x) = 0 nhất định thừa nhận một nghiệm c nằm giữa [a,b] Phương trình có hai nghiệm như trong hình vẽ. Vây nghiệm nhỏ hơn trong đoạn [1,4] Lập trình cơ bản C/Chương 1/ 30 of 26 Bài tập Lập trình cơ bản C/Chương 1/ 31 of 26 Ta có f(a)>0, f(b)<0. Thuật toán chia đôi tiến hành vây nghiệm, mỗi bước vây, giảm khoảng vây đi 2 lần. Tính f(c) với c= (a+b)/2. Không xảy ra f(c) = 0. Tiếp bước 2 Nếu f(c)> 0 thay a bởi c, sau đó thực hiện bước 4 Nếu f(c) <0 thay b bởi c. Thực hiện bước tiếp theo Nếu b-a > ε , quay về 1, nếu không làm tiếp Dừng, lấy c làm nghiệm
File đính kèm:
- bai_giang_lap_trinh_co_ban_c_chuong_1_khai_niem_co_ban_c.ppt