Bài giảng Tin học đại cương - Chương 2: Ngôn ngữ lập trình C cung cấp cho người học các kiến thức: Các khái niệm cơ bản, các kiểu dữ liệu, các lệnh điều khiển. Cuối bài giảng có phần bài tập để người học ôn tập và củng cố kiến thức đã học.
TIN HỌC ĐẠI CƯƠNG Chương 2: Ngơn ngữ lập trình C ttdung@utc2.edu.vn Nội dung Các khái niệm Các kiểu liệu Các lệnh điều khiển Bài tập thực hành ttdung@utc2.edu.vn Giới thiệu Năm 1970 Ken Thompson sáng tạo ngôn ngữ B (Basic Combined Programming Language) môi trường HĐH Unix máy DEC PD-7 Năm 1972 Dennis Ritchie Bell Labotories Ken Thompson sáng tạo ngôn ngữ C nhằm tăng hiệu cho ngôn ngữ B Ngơn ngữ C nhanh chóng phổ biến rộng rãi sử dụng để viết nên HĐH đa nhiệm UNIX, O/S 2, ngôn ngữ Dbase Phát triển thành C++ vào năm 1983 hỗ trợ lập trình hướng đối tượng Có nhiều trình biên dịch C khác Turbo C (từ ver tới ver 3), Microsoft C (ver tới ver 6) C++ với trình biên dịch tiếng Borland C++, Visual C++, Turbo C++ Chúng ta sử dụng: Borland C++ 5.02 Free C++ Dev C++ ttdung@utc2.edu.vn Tập ký tự Mọi ngôn ngữ xây dựng ký tự Bộ ký tự C gồm: - Các chữ in hoa: A, B, C, ,Z - Các chữ thường: a, b, c, ,z - Các chữ số: 0, 1,2, ,9 - Các loại dấu chấm câu ! ? : ; - Các dấu toán học: + , - , * , / , %, >, , =, vịng lặp • Nếu => vào thực việc cần lặp 3.Tính B.Thức 3, sau quay trở lại bước để bắt đầu bước lặp ttdung@utc2.edu.vn 59 Lặp dạng for Biểu thức 1: Thường phép gán để khởi tạo giá trị ban đầu cho biến điều khiển Biểu thức 2: Thường biểu thức điều kiện Biểu thức 3: Cũng phép gán để thay đổi giá trị biến điều khiển ttdung@utc2.edu.vn 60 ttdung@utc2.edu.vn 61 Lặp dạng for Nhận xét – Biểu thức tính lần – Biểu thức 2, biểu thức khối lệnh thân lệnh for lặp lặp lại nhiều lần – Dựa giá trị khởi tạo biến điều khiển, điều kiện lặp biểu thức tính số lần lặp Khi biểu thức vắng mặt xem (vịng lặp vơ hạn) – Để khỏi lệnh for trường hợp phải dùng lệnh break return Có thể sử dụng lệnh for lồng ttdung@utc2.edu.vn 62 Lặp for liệu kiểu array ttdung@utc2.edu.vn 63 Bài tập - Lặp dạng for Tính TBC số lẻ ≤ N Tìm ước số chung lớn (UCLN) số a, b Kiểm tra xem số N có phải số ngun tố khơng? Hiển thị tất số nguyên tố ≤ N In hình tam giác cân độ cao N gồm tồn dấu ‘*’ có dạng bên ttdung@utc2.edu.vn 64 Lặp dạng for – Bài tập Tính TBC số lẻ dãy số a1, a2,…,aN Tìm giá trị min/max dãy a1, a2,…,aN Đếm xem dãy a1, a2,…,aN có số nguyên tố ? Cho dãy điểm M1(x1, y1), M2(x2, y2),…,Mn(xn, yn) mặt phẳng Hãy: • Tìm độ dài đường gấp khúc M1M2 Mn • Tìm đoạn MiMj (i≠j) có độ dài lớn • Đếm xem có đoạn cắt trục 0y • Có điểm thuộc góc phần tư thứ ttdung@utc2.edu.vn 65 Lặp dạng while Lệnh lặp while – Cú pháp while (biểu thức) khối lệnh cần lặp; – Ý nghĩa: • Trong biểu thức có giá trị (khác 0) cịn phải thực khối lệnh Việc lặp dừng lại biểu thức có giá trị sai (bằng 0) • Lặp while kiểm tra điều kiện trước thực khối lệnh – Hãy vẽ sơ đồ khối biểu diễn lệnh while ttdung@utc2.edu.vn 66 Lặp dạng while – Ví dụ ttdung@utc2.edu.vn 67 Lặp dạng while – Lưu ý Nhận xét – Biểu thức điều kiện dược đặt cặp dấu “(” “)” – Biểu thức điều kiện tính tốn nên phải có giá trị xác định Câu lệnh sau làm ? while(0) printf(“nothing\n”); Hãy chuyển lệnh for dạng tổng quát thành lệnh while ttdung@utc2.edu.vn 68 Lặp dạng do…while Cú pháp { lệnh thân vòng lặp; } while (biểu thức); Ý nghĩa – Thực khối lệnh biểu thức có giá trị (khác 0) – Thực khối lệnh trước kiểm tra biểu thức điều kiện – Khối lệnh thực lần Hãy vẽ sơ đồ khối biểu diễn lệnh … while ttdung@utc2.edu.vn 69 Lặp do…while - ví dụ ttdung@utc2.edu.vn 70 Lặp while do…while – Bài tập Viết chương trình nhập vào số nguyên N Hãy in hình biểu diễn dạng nhị phân (Binary) Viết chương trình tìm phần tử dãy a1, a2,…,an thỏa mãn: tổng phần tử đứng trước Viết lại chương trình kiểm tra xem số N có ngun tố hay không cách sử dụng do…while Chuyển đoạn mã lệnh dạng do…while thành dạng while ttdung@utc2.edu.vn 71 break continue Lệnh break thường sử dụng kết hợp lệnh lặp – Dùng để khỏi vịng lặp cách bất thường (không quan tâm tới điều kiện lặp) – Nếu có nhiều lệnh lặp lồng lệnh break thoat vịng lặp trực tiếp chứa Lệnh continue – Dùng để quay trở lại từ đầu vịng lặp – Thực lần lặp mà khơng hết lệnh lại thân vòng lặp ttdung@utc2.edu.vn 72 Bài tập vòng lặp Hãy viết chương trình tìm in số số nguyên tố dãy số a1, a2, ,aN Hãy viết chương trình tính giá trị biểu thức Hãy viết chương trình tìm số phần tử dãy a1, a2, ,aN có cặp (ai, aj) với i≠j thỏa điều kiện ai+aj = x Hãy viết chương trình đổi số nguyên dương N sang hệ đếm số (hệ nhị phân) Hãy viết chương trình giải phương trình bậc ax2+ bx + c = Hãy viết chương trình tìm tích ma trận Amxn Bnxp Hãy viết chương trình tìm độ dài đường gấp khúc qua N điểm mặt phẳng M1(x1, y1), M2(x2, y2), ,Mn(xn, yn) Hãy viết chương trình xếp lại dãy số a1, a2, ,an theo thứ tự giảm dần Hãy Viết chương trình tìm phần tử dãy a1, a2, ,an thỏa điều kiện = ai-1 + ai-2 + + a2+ a1 10 Viết chương trình tìm trung bình cộng phần tử số phương dãy a1, a2, ,aN ttdung@utc2.edu.vn 73 ... chữ in hoa: A, B, C, ,Z - C? ?c chữ thường: a, b, c, ,z - C? ?c chữ số: 0, 1,2, ,9 - C? ?c loại dấu chấm c? ?u ! ? : ; - C? ?c dấu toán h? ?c: + , - , * , / , %, >,