Tài liệu này dành cho sinh viên, giáo viên khối ngành công nghệ thông tin tham khảo và có những bài học bổ ích hơn, bổ trợ cho việc tìm kiếm tài liệu, giáo án, giáo trình, bài giảng các môn học khối ngành công nghệ thông tin
NGÔN NGỮ LẬP TRÌNH C/C+ + Tin học cơ sỏ II 2 Mục tiêu của môn học Trang bị cho sinh viên kiến thức về lập trình trên ngôn ngữ C và một phần mở rộng của C+ + Kết thúc môn học: Sinh viên có khả năng sử dụng thành thạo ngôn ngữ C để giải quyết các bài toán cỡ vừa và nhỏ Tin học cơ sỏ II 3 Thông tin môn học Giảng viên Nguyễn Đức Thiện ducthien2701@gmail.com/ 0975 377 377 Trung tâm máy tính nhà G2 ĐHCN-ĐHQGHN Phân bố Lý thuyết: 30 tiết trong 10 tuần Thực hành: 30 tiết trong 10 tuần Thực hành bắt đầu sau lý thuyết 1 tuần Phương thức thi và kiểm tra: Vấn đáp Lập trình 2 bài tập tại phòng máy trong thời gian 45 phút Do đó sinh viên cần chú trọng làm bài tập để rèn luyện kỹ năng lập trình Tin học cơ sỏ II 4 Lịch sử của ngôn ngữ lập trình C Ngôn ngữ lập trình C ra đời năm 1972, do Dennis Ritchie khởi xướng C được tạo ra để sử dụng như một phần căn bản của hệ điều hành UNIX (Ken Thompson, Dennis Ritchie và Douglas McIlroy, 1969) C được sử dụng rộng rãi và có ảnh hưởng lớn đến nhiều ngôn ngữ lập trình hiện đại, trong đó có C++, được xem là mở rộng của C Tin học cơ sỏ II 5 Dennis Ritchie Sinh ngày 9/9/1941 Hiện nay làm việc tại Bell Lab (AT&T) Website: http://plan9.bell-lab s.com/who/dmr/ Là người tạo ra ngôn ngữ C và là người tham gia phát triển hệ điều hành UNIX Các yếu tố cơ bản của C++ Tin học cơ sỏ II 7 Bảng ký tự Các chữ cái La Tinh viết thường và hoa (a-z, A-Z). C++ phân biệt chữ thường và chữ hoa Dấu gạch dưới “_” Các chữ số 0, 1, 2,…, 9 Các ký hiệu toán học và ký hiệu đặc biệt: +, -, *, /, %, &, |, !, [], {}, #, dấu cách Tin học cơ sỏ II 8 Từ khóa Từ khóa là từ được qui định trước trong ngôn ngữ lập trình (NNLT) dùng cho các mục đích đặc biệt của ngôn ngữ Từ khóa C++: auto, break, case, char, continue, default, do, double, else, externe, float, for, goto, if, int, long, register, return, short, sizeof, static, struct, switch, typedef, union, unsigned, while Tin học cơ sỏ II 9 Tên gọi trong C++ Là dãy ký tự liên tiếp (không chứa dấu cách) và phải bắt đầu bằng chữ cái hoặc gạch dưới. Phân biệt kí tự in hoa và thường. Không được trùng với từ khóa. Số lượng chữ cái dùng để phân biệt tên gọi có thể được đặt tuỳ ý. Chú ý các tên gọi có sẵn của C++ cũng tuân thủ theo đúng qui tắc trên Tin học cơ sỏ II 10 Ví dụ về tên gọi trong C++ Tên gọi đúng: i, i1, j, tinhoc, tin_hoc, luu_luong Tên gọi sai: 1i, tin hoc, luu-luong-nuoc Các tên sau đây là khác nhau: ha_noi, Ha_noi, HA_Noi, HA_NOI, [...]... http://www.bloodshed.net/devcpp.html Phiên bản mới nhất: Dev -C+ + 5 (beta) Phiên bản ổn định: Dev -C+ + 4 Sinh viên download để th c hành tại nhà Tin h c cơ sỏ II 13 C u tr c một chương trình C+ + Một chương trình C+ + c thể đư c đặt trong một hay nhiều tệp Một chương trình c nhiều hàm đảm nhiệm c c ch c năng kh c nhau c a chương trình main() là hàm đ c biệt: Hàm này đư c th c hiện đầu tiên và bắt bu c phải c để hoàn chỉnh... C: Borland C (c n gọi là Turbo C) Microsoft C (c n gọi là MS C) Môi trường C/ C++: Dev -C+ + (sẽ th c hành trên môi trường này) Visual C+ + c a Microsoft C ch làm vi c trên c c môi trường này sẽ đư c hướng dẫn trong giờ th c hành Tin h c cơ sỏ II 12 Dev -C+ + Là một phần mềm mã nguồn mở Là môi trường phát triển tích hợp (Integrated Development Environment-IDE) cho C và C+ + c a BloodShedSoftware... chỉnh một chương trình C+ + Tin h c cơ sỏ II 14 C u tr c một chương trình C+ + Phần khai báo: Khai báo tên tệp chứa c c thành phần c sẵn Khai báo kiểu dữ liệu, hằng, biến… do người sử dụng (NSD) định nghĩa Danh sách c c hàm c a chương trình, trong đó c c hàm main() Tin h c cơ sỏ II 15 Ví dụ một chương trình C+ + #include // khai báo tệp nguyên mẫu using namespace std; // để đư c sử... cout biến_3 ; ho c: cin >> biến_1...Chú thích trong chương trình Rất quan trọng khi lập trình Nếu chú thích là một đoạn kí tự bất kỳ liên tiếp nhau (trong 1 dòng ho c trên nhiều dòng) ta đặt đoạn chú thích đó giữa c p dấu đóng mở chú thích /* (mở) và */ (đóng) Nếu chú thích bắt đầu từ một vị trí nào đó cho đến hết dòng, thì ta đặt dấu // ở vị trí đó Tin h c cơ sỏ II 11 Môi trường làm vi c của C/ C++ Môi trường C: Borland... printf và scanf Giữa ký tự % và ký tự định dạng c thể c : Một số: Qui định độ rộng c n in ra, ví dụ: %5s nghĩa là in ra một xâu c độ rộng 5 c t, %-3d in ra một số nguyên c độ rộng 3 c t Nếu độ rộng âm: C n lề trái, độ rộng dương: c n lề phải Nếu số c dạng thập phân: Qui định tổng số c t và số c t dành cho phần thập phân (Chỉ áp dụng cho biến số th c) Ví dụ: %-5.2f in ra số th c có độ rộng 5 c t... h c cơ sỏ II 29 C c vấn đề c n ghi nhớ C ch viết chương trình C+ + đơn giản nhất Hàm main() Chỉ thị #include , #include , #include C ch nhập dữ liệu vào chương trình từ bàn phím C ch in kết quả ra màn hình C c hàm thư viện sẽ sử dụng nhiều: cin, cout, printf, scanf C ch định dạng kết quả in ra màn hình Tin h c cơ sỏ II 30 Bài tập Sinh viên làm c c. .. setprecision(n) chỉ c t c dụng trên một dòng, do đó dùng setiosflags(ios::showpoint) để đặt định dạng cho mọi dòng Xem ví dụ trang 13 trong bài giảng Tin h c cơ sỏ II 22 C c hàm vào/ra kh c trong C+ + Chú ý: toán tử nhập >> chủ yếu làm vi c với dữ liệu kiểu số Để nhập kí tự ho c xâu kí tự, C+ + cung c p c c hàm sau: cin.get (c) : cho phép nhập một kí tự vào biến kí tự c, và cin.getline(s,n): cho phép nhập . NGÔN NGỮ LẬP TRÌNH C/ C+ + Tin h c cơ sỏ II 2 M c tiêu c a môn h c Trang bị cho sinh viên kiến th c về lập trình trên ngôn ngữ C và một phần mở rộng c a C+ + Kết th c môn h c: Sinh viên c . trường C: Borland C (c n gọi là Turbo C) Microsoft C (c n gọi là MS C) Môi trường C/ C++: Dev -C+ + (sẽ th c hành trên môi trường này) Visual C+ + c a Microsoft C ch làm vi c trên c c môi. sỏ II 17 C c bư c viết chương trình trong C+ + X c định đầu vào và đầu ra c a chương trình (input và output) X c định thuật toán giải Viết chương trình trên máy Dịch chương trình nguồn