Ngôn ngữ C do Dennis Ritchie xây dựng từ năm 1972 tại phòng thí nghiệm Bell Telephone với mục đích tạo ngôn ngữ để viết HĐH UNIX. Song nhờ có các tính năng ưu việt và tính mềm dẻo nên được giới tin học chấp nhận
Năm 1978, xuất bản quyển sách “The C programming language” do Kernighan và Ritchie viết.
44 trang |
Chia sẻ: phuongt97 | Lượt xem: 383 | Lượt tải: 0
Bạn đang xem trước 20 trang nội dung tài liệu Bài giảng Nhập môn lập trình - Chương 2: Giới thiệu ngôn ngữ C/C++, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
1CHƯƠNG 2GIỚI THIỆU NGÔN NGỮ C/C++LỊCH SỬ RA ĐỜINgôn ngữ C do Dennis Ritchie xây dựng từ năm 1972 tại phòng thí nghiệm Bell Telephone với mục đích tạo ngôn ngữ để viết HĐH UNIX. Song nhờ có các tính năng ưu việt và tính mềm dẻo nên được giới tin học chấp nhậnNăm 1978, xuất bản quyển sách “The C programming language” do Kernighan và Ritchie viết.2C++ dựa trên ngôn ngữ lập trình CC++ được phát minh bởi Bijarne Stroustroup, bắt đầu năm 1979Các trình biên dịch phổ biến: Borland C++, Microsoft Visual C++34ĐẶC ĐIỂMBộ lệnh phù hợp với phương pháp lập trình có cấu trúc module, có thể sử dụng nhiều lần trong chương trình hoặc chương trình khác, hỗ trợ lập trình hướng đối tượng.Kiểu dữ liệu phong phú, cho phép định nghĩa kiểu dữ liệu mới.Linh động về cú pháp, ít từ khóa.Ngôn ngữ mạnh và mềm dẻo, được dùng để viết OS, chương trình điều khiển, soạn thảo văn bản, đồ hoạ, bảng tính và các chương trình dịch cho các ngôn ngữ khác .KHUYẾT ĐIỂMCú pháp thuộc loại lạ và khó học. Nếu người lập trình đã học qua một ngôn ngữ khác thì sẽ dễ dàng tiếp cận.Một số ký hiệu có nhiều nghĩa khác nhau. Ví dụ: dấu “*” là toán tử nhân, là khai báo con trỏ, là toán tử thay thế, Việc sử dụng đúng nghĩa các toán tử phụ thuộc vào ngữ cảnh sử dụng.Việc truy nhập tự do vào dữ liệu, việc trộn lẫn các kiểu dữ liệu làm cho chương trình có phần bất ổn.5 VÍ DỤ CHƯƠNG TRÌNH C++6//Viết bằng VC++2003 //hoặc 2005, 2008, #include using namespace std;void main(){ coutvoid main(){ cout tênbiến;Ví dụ: int a; //Khai báo biến để lưu số nguyên tên afloat c; //Khai báo biến để lưu số thực tên cKhai báo nhiều biến cùng kiểu tênbiến1, tênbiến2, tênbiến3; Ví dụ: int a, x, y;17KHAI BÁO VÀ KHỞI GÁN GIÁ TRỊ BAN ĐẦU CHO BIẾN tênbiến = giá trị;Ví dụ: int a = 5; float b = 5.4, c = 9.2; char ch = ‘n’;ĐỊNH NGHĨA HẰNG SỐHằng là đại lượng không thay đổi giá trị trong quá trình thi hành chương trìnhDùng toán tử #define Cú pháp: #define Ví dụ: #define MAX 100Biến hằng được định nghĩa nhờ từ khoá const với cú pháp như sau: const = ; Ví dụ: const int MAX = 100;Tên hằng số nên viết bằng chữ in HOA18CÁC LOẠI HẰNG SỐHằng số: Đó là các giá trị xác định, một hằng số có thể là nguyên (có kiểu dữ liệu int, hay long int) hay thực (có kiểu dữ liệu là float, double, long double).Hằng ký tự: Được đặt trong dấu nháy đơn. Ví dụ: 'A', 'a' tương ứng với giá trị nguyên 65, 97 trong bảng mã ASCII.Hằng chuỗi: Là tập hợp các ký tự được đặt trong cặp dấu nháy kép " ". Ví dụ: “Lap trinh C"Chú ý: Một hằng chuỗi được trữ tận cùng bằng ký tự null (\0)1920KÝ HIỆU CÁC PHÉP TOÁNSTTPHÉPTOÁNÝ NGHĨAGHI CHÚPHÉP TOÁN SỐ HỌC1+Cộng 2-Trừ3*Nhân 4/ChiaĐối với 2 số nguyên thì kết quả là chia lấy phần nguyên5%Chia lấy phần dưChỉ áp dụng cho 2 số nguyênPHÉP TOÁN QUAN HỆ1>Lớn hơn2=Lớn hơn hoặc bằng4>Dịch phải6~Lấy phần bù theo bit22Ví dụ:int x = 5, y = 11;int z = ++x + y++;Kết quả: x=6; y=12; z=17Toán tử điều kiện(ĐK)?:Ví dụ:int n;(n%2==0)? n ++ : n --; nếu n = 10 thì giá trị n = 11 nếu n = 21 thì giá trị n = 2023THỨ TỰ ƯU TIÊN PHÉP TOÁNToán tửĐộ ưu tiênTrình tự kết hợp() [] ->1Từ trái qua phải! ~ ++ -- - + * & sizeof2Từ phải qua trái* / %3Từ trái qua phải+ -4Từ trái qua phải>5Từ trái qua phải= >6Từ trái qua phải== !=7Từ trái qua phải&8Từ trái qua phải|9Từ trái qua phải^10Từ trái qua phải&&11Từ trái qua phải||12Từ trái qua phải? :13Từ phải qua trái= += -= *= /= %=14Từ phải qua trái24CÁC LỖI THƯỜNG GẶP KHI VIẾT CHƯƠNG TRÌNHQuên khai báo các biến sử dụng trong chương trình.Lưu một giá trị vào một biến nhưng không cùng kiểu dữ liệu với biến.Sử dụng biến trong một biểu thức khi nó chưa có giá trị. Lỗi này thì không được phát hiện bởi trình biên dịch, khi đó giá trị của biến là một giá trị bất kỳ và kết quả của biểu thức là vô nghĩa.25CÁC LỖI THƯỜNG GẶP KHI VIẾT CHƯƠNG TRÌNHSử dụng giá trị của phép chia không chính xác. Lỗi này thường xuất hiện trong các biểu thức có nhiều toán hạng và lỗi này rất khó phát hiện. Ví dụ: 3.2 + 2/3 + 1.5 thì sẽ cho kết quả sẽ bằng 4.7 thay vì kết quả đúng phải bằng 5.36666666666667Sử dụng một biểu thức mà trong đó chứa nhiều loại dữ liệu nhưng lại không biết chắc chắn kiểu dữ liệu của kết quả.26HÀM NHẬP XUẤTThư viện hàm: iostream.hHàm nhập giá trị từ bàn phím: cin>>tênbiến; Ví dụ: int a; cin>>a; //Người dùng nhập giá trị từ phím sẽ lưu vào biến aHàm xuất giá trị ra màn hình: coutXuất: printf(“hằng chuỗi”); Vd: printf(“Xin chao cac ban”); printf(“chuỗi định dạng”, đối số 1, đối số 2); Vd: int a=5; float b=2.7; printf(“Gia tri cua bien a=%d, b=%f“, a, b);Nhập: scanf(“chuỗi định dạng”, &tên biến); Vd: int x; scanf(“%d”, &x);29HÀM NHẬP XUẤT CỦA C30#include void main (){ float number ; printf ( “Nhap mot so thuoc [1..10]: “) ; scanf ( “%f”, &number) ; if (number >5) printf ( “So ban nhap lon hon 5. \n”) ; printf ( “%f la so ban nhap. “ , number);}CHUỖI ĐỊNH DẠNG31STTKIỂUGHI CHÚĐỊNH DẠNGKIỂU LIÊN TỤC (SỐ THỰC)1float %f2double %lf3long double %lfKIỂU RỜI RẠC (SỐ NGUYÊN) 1charKý tự%cSố nguyên%d2unsigned charSố nguyên dương%d3intSố nguyên%d4unsigned intSố nguyên dương%u5longSố nguyên %ld6unsigned longSố nguyên dương%lu7char *Chuỗi%s32XUẤT KÝ TỰ ĐẶC BIỆT Ký tựÝ nghĩaVí dụ\’Xuất dấu nháy đơncout<<“ \’ ”;Kết quả: ‘\”Xuất dấu nháy đôicout<<“ \” ”;Kết quả: “\\Xuất dấu chéo ngược “\”cout<<“ \\ ”;Kết quả: \\0Ký tự NullDùng để gán ký tự kết thúc của chuỗi\aAlert : Tiếng bip33XUẤT KÝ TỰ ĐẶC BIỆT Ký tựÝ nghĩaVí dụ\tTab vào một đoạn ký tự trắngcout<<"xyz\tzyx”;Kết quả: xyz zyx\bXuất lùi về saucout<<"xyz\t\bzyx”;Kết quả: xyzzyx\n hoặc endlXuống dòngcout<<"xyz\nzyx”;Kết quả: xyz zyx\rVề đầu dòngcout<<"xyz\rzyx”;Kết quả: zyx34CÁCH TRÌNH BÀY CHƯƠNG TRÌNHMỗi lệnh nằm trên một dòng. Cuối dòng lệnh PHẢI có dấu chấm phẩy (;).Lệnh quá dài có thể được viết thành nhiều dòng sao cho mỗi lệnh phải được quan sát trọn vẹn trong pham vi cửa sổ lệnh.35CÁCH TRÌNH BÀY CHƯƠNG TRÌNH (tt)Không nên đặt nhiều lệnh trên cùng một dòng, ngay cả các khai báo biến, nếu các biến có khác kiểu cũng nên đặt trên các dòng khác nhau.Có các chú thích, ghi chú đầy đủChương trình phân cấp các khối lệnh con theo từng cộtHƯỚNG DẪN SỬ DỤNG BC++3.136TẠO MỚI PROJECT TRONG MS VC++ 6.037MỞ PROJECT CÓ SẴN TRONG MS VC++ 6.03839BÀI TẬP 1Cho biết kết quả của những lệnh sau:int a, b;b=a++ + ++a + --a;cout<<"a=“<<a<<“, b=“<<b;Với a = 2 Kết quả: Với a = 9 Kết quả: ----------------------------------------------------------------------int a, b;b=--a + --a;--b;cout<<"a=“<<a<<“, b=“<<b;Với a = 19 Kết quả: Với a = 10 Kết quả: 40int a, b;b=a%2 + a/2 + --a;cout<<"a=“<<a<<“, b=“<<b;Với a = 17 Kết quả: Với a = 3 Kết quả: ------------------------------------------------------------------------------------int a, b;b=a/3 + a--;cout<<"a=“<<a<<“, b=“<<b;Với a = 8 Kết quả: Với a =21 Kết quả: -----------------------------------------------------------------------------------int k;cout<<(k%3==0)?k++: k--;Với k =10 Kết quả: Với k =15 Kết quả: 41Các định danh nào sau đây là không hợp lệ? MainTinh TongTinh-TongTinh_Tongx_Mu_2 2_Mu_2using class Tien$ default yahoo.com42Cho biết những chỗ sai và sửa lại cho đúng int n = -100; uint i = -100; int = 2.9; long m = 2, p = 4; int 2k; float y = y * 2; char ch = “b”;Viết chương trình in ra màn hình thông tin cá nhân theo mẫu sau: Ho ten: Lop: Thong tin lien lac: Dia chi: So dien thoai:43Mô tả giải thuật bằng mã giả, lưu đồ và viết các chương trình sau:Viết chương trình nhập vào giờ phút và giây, đổi ra giây và xuất kết quả ra màn hình.Viết chương trình nhập vào 3 số nguyên a, b và c, tính giá trị trung bình cộng của 3 số trên và xuất kết quả ra màn hình.BÀI TẬP 244Viết chương trình cho phép nhập vào một số đo nhiệt độ theo độ Fahrenheit và xuất ra nhiệt độ tương đương của nó theo độ Celsius, sử dụng công thức chuyển đổi:Viết chương trình nhập vào 3 số nguyên a, b và c, cho biết 3 số vừa nhập có thứ tự tăng dần (a<b<c) không? Và xuất kết quả.
Các file đính kèm theo tài liệu này:
- chuong_2_gioi_thieu_ngon_ngu_cc.ppt