Giáo trình Cơ sở lập trình được biên soạn làm giáo trình cho sinh viên hệ đại học chuyên ngành Quản trị hệ thống thông tin thị trường và thương mại; đồng thời là tài liệu tham khảo cho các giáo viên trong quá trình giảng dạy môn học. Giáo trình kết cấu gồm 5 chương và chia thành 2 phần, phần 1 trình bày những nội dung về: tổng quan cơ sở lập trình; các thành phần cơ sở;... Mời các bạn cùng tham khảo!
TRƯỜNG ĐẠI HỌC THƯƠNG MẠI Chủ biên: TS Nguyễn Thị Thu Thủy Ths Đinh Thị Hà Giáo trình co sở LẬP TRÌNH NHÀ XUẤT BẢN THỐNG KÊ TRƯỜNG ĐẠI HỌC THƯƠNG MẠI KHOA HỆ THỐNG THÔNG TIN KINH TÉ Chủ biên: TS Nguyễn Thị Thu Thủy Ths Đinh Thị Hà Giáo trình Ctf sft lập trinh NHÀ XUẤT BẢN THỐNG KÊ Hà Nội-2014 LỜI NĨI ĐẰU Tư thuật tốn khả lập trình yêu cầu đổi với sinh viên thuộc lĩnh vực có liên quan đến Tin học quản trị hệ thổng thông tin; thương mại điện tử, Đe nâng cao tỉnh tự học, niềm đam mê, u thích viết chương trình cho máy tính, rèn luyện cho thói quen tư người lập trình chuyên nghiệp, tập thể giảng viên Bộ môn Tin học, Khoa Hệ thống Thông tin Kinh tế biên soạn trân trọng giới thiệu “Giáo trĩnh Cơ sở lập trình” Giáo trình sở lập trình biên soạn làm giáo trình cho sinh viên hệ đại học chuyên ngành Quản trị hệ thống thông tin thị trường thương mại thuộc Khoa Hệ thống Thông tin Kinh tế trường Đại học Thương mại; đồng thời tài liệu tham khảo cho giáo viên trĩnh giảng dạy môn học Hơn thể giáo trình cịn làm tài liệu tham khảo cho sinh viên có chuyên ngành gần thương mại điện tứ, hay cho sinh viên yêu thích mơn học lập trình Nội dung giảo trình gồm chương sau: Chương 1: Tổng quan sở lập trình Chương trình bày khái niệm chung sở lập trình, tổng quan ngơn ngữ c Các cách thiết kế chương trình, Chương 2: Các thành phần sở Chương trình bày yếu tổ ngơn ngữ lập trình, câu lệnh có cấu trúc c, bao gồm câu lệnh rẽ nhảnh câu lệnh lặp Chương 3: Mảng, xâu ký tự trỏ Chương trình bày kiến thức liệu mảng, xâu ki tự trỏ Chương 4: Hàm Chương giới thiệu hàm cách truyền tham so cho hàm Chương 5: Kiểu liệu có cấu trúc Chương trình bày kiểu liệu struct, kiểu tệp bao gồm tệp nhị phân tệp văn Tập thể tác giả biên soạn bám sát với đề cương soạn theo chương trình khung Bộ Giáo dục Đào tạo ban hành, đồng thời có tham khảo biên soạn cho có tỉnh cập nhật kiến thức theo chuyên ngành đặc thù trường kinh tế cho phù hợp với tình hình thực tiễn xã hội Tham gia biên soạn giáo trình gồm tác giả: • TS Nguyễn Thị Thu Thủy, chủ biên biên soạn chương 1, chương tham gia vào chương cịn lại • Ths Đinh Thị Hà biên soạn chương 3, chương chương • Ngồi cịn có đóng góp ỷ kiến, nhận xét giảng viên khác môn Chủng xin cảm ơn đồng nghiệp cơng bổ giáo trình, sách tài liệu liên quan để chúng tơi tham khảo cho giáo trình trình biên soạn Mặc dù cổ gắng hồn chỉnh giáo trình, nhiên khơng thể tránh khỏi thiếu sót Rất mong đồng nghiệp, sinh viên đóng góp ỷ kiến để giảo trình ngày hồn thiện TẬP THẺ TÁC GIẢ Chương TƠNG QUAN VÈ SỞ LẬP TRÌNH Chương bao gồm kiến thức thuật toán, tính chất thuật tốn, sơ đồ khối khái niệm chương trình ngơn ngữ lập trình Đồng thời chương bao gồm việc giới thiệu phương pháp lập trình kỹ thuật thiết kế chương trình kỹ thuật chương trình kỹ thuật đệ quy 1.1 THUẬT TOÁN 1.1.1 Khái niệm Thuật toán tập hữu hạn bước lệnh xác định theo thứ tự định để theo máy tính thực cách tự động nhằm mục đích giải tốn hay nhiệm vụ Thơng thường lệnh bước phép vào thông tin, phép xử lý thông tin Thuật toán phải thể rõ ràng bước thuật tốn thực thơng qua dãy hữu hạn bước phải đảm bảo dừng cho kết quà theo mong muốn người sử dụng Ví dụ 1.1.1: Viết thuật tốn giải phương trinh bậc hai ax2+bx+c=0 (aoO) Bước 1: Nhập giá trị hệ số a, b, c Bước 2: Nếu a=0 2.1 u cầu đầu vào khơng đảm bảo 2.2 Chuyển đến bước Bước 3: Trường hợp a khác 3.1 Tính giá trị D = b2 - 4ac 3.2 Nếu D > 3.2.1 Phương trình có hai nghiệm phân biệt X] x2 3.2.2 Giá fri hai nghiệm tính theo công thức sau 3.2.3 Chuyển đến bước 3.3 Nếu D = 3.3.1 Phương trình có nghiệm kép x0 3.3.2 Giá trị nghiệm kép „ -b x°~ 2a 3.3.3 Chuyển đến bước 3.4 Nếu D < 3.4.1 Phương trình vơ nghiệm 3.4.2 Chuyu đến bước Bước 4: Kết thúc 1.1.2 Tính chất thuật tốn Trong khn khổ giáo trình số tính chất giới thiệu bao gồm: ■ Tính xác định: Tính chất có nghĩa bước thuật tốn phải rõ ràng, xác, không gây nên nhập nhằng, đa nghĩa Thực bước thuật tốn với liệu vào, cho kết Ví dụ: Ở ví dụ giải phương trình bậc nói trên, việc tính D = b2-4ac phân chia trường hợp D để đảm bảo trường hợp D thuật tốn ln có câu trả lời kết tương ứng (Có nghiệm riêng biệt; có nghiệm kép; hay vơ nghiệm) ■ Tính dừng: Tính chất có nghĩa áp dụng thuật toán cho liệu cụ thể sau hữu hạn bước thực cho kết quà kết thúc Tính dừng tính chất dễ bị vi phạm trình bày bước thuật tốn Điều có nghĩa thực hết bước thuật toán, người sử dụng nhận kết mong muốn Tuy nhiên, có thuật tốn mà thực thi “chạy khơng dừng” (hay cịn gọi “lặp vơ tận”) chúng gọi thuật tốn “vi phạm tính dừng” Ví dụ: Viết thuật tốn để tính tổng sổ ngun dương lẻ < n (n nhập từ bàn phím) Thuật tốn sau: Bước Nhập n Bước s = Bước i = Bước Nếu i = n+1 sang Bước 8, ngược lại sang Bước Bước s=s+i Bước I=i+2 Bước Quay lại bước Bước Bước In s Rõ ràng, thuật toán kết thúc giá trị i vượt n, điều kiện "i=n+l" lúc đạt Vì n số chẵn n+1 số lẻ sau số hữu hạn bước, i n+1 Tuy nhiên, n số lẻ n+l số chẵn nên khơng đạt i= n+1 Hay nói cách khác thuật tốn khơng dừng ■ Tính phổ dụng: Tính chất có nghĩa ỉà thuật tốn khơng giải cho toán mà giải cho lớp tốn làm việc liệu khác ■ Tính đúng: Tính chất có nghĩa sau thực tất bước thuật tốn theo trình tự, ta phải kết mong muốn với liệu đầu vào Kết kiểm chứng yêu cầu tốn ■ Tính khả thi: Tính chất hày thể ưên ba yêu cầu sau: - Kích thước phải đủ nhỏ Một thuật tốn có tính hiệu lượng nhớ mà yêu cầu vượt khà lưu trữ hệ thống máy tính - Thuật tốn phải máy tính thực thời gian cho phép Ví dụ xếp thời khóa biểu khơng thể cho máy tính chạy lâu tới mức mà việc xếp thời khóa biểu áp dụng cho kì - Thuật toán phải dễ hiểu dễ cài đặt 1.2 Sơ ĐÒ KHỐI 1.2.1 Khái niệm Đổ thể thuật tốn người ta dùng nhiều phương pháp để biểu diễn, ví dụ cách viết (mục 1.1) gọi phương pháp liệt kê theo bước Ngoài ra, phương pháp thể thuật toán thường dùng sơ đồ khối Vậy, sơ đồ khối cách thể thuật toán bàng hình khối hình học nối với đường có hướng Ở đây, quy ước sơ đồ khối sử dụng hình khối sau: Khối kiểm tra điều kiện Hướng thực Khối vào 1.2.2 Các dạng cấu trúc sơ đồ khối Sơ đồ khối thể thuật toán thường thể dạng sau: • Sơ đồ khối dạng tuần tự: Là sơ đồ khối thể thuật toán gồm n khối mà thực thuật toán với liệu cụ thể thực từ khối đến khối cuối theo thứ tự viết • Sơ đồ khối dạng rẽ nhánh: Là sơ đồ khối thể thuật toán gồm n nhánh mà thực thuật toán với liệu cụ thể thực n nhánh mà thơi 1.2.3 Ví dụ Ví dụ 1.2.1: Vẽ sơ đồ khối thể thuật toán để giải toán giải phương trình bậc hai nói { unsigned int a, b; char tt; printf("Nhap bt:"); scanf("%d%c%d", &a,&tt,&b); switch(tt) { case •+•: printf("\n %d + %d =%d",a,b,a+b);break; case printf("\n %d - %d =%d",a,b,a-b);break; case printf("\n %d *%d =%d",a,b,a*b);break; case 7': printf("\n %d /%d =%d",a,b,a/b);break; caseprintfOn %d %%d =%d",a,b,a%b);break; default: printf("\n Khong phai la toan tu can xet"); } getch(); return 1; } Ví dụ 2.3.9: Nhập tháng năm in mùa năm #include #include void main() { int mon; printf("\n Nhap thang nam:"); scanf("%d",&mon); pnntf("\n"); switch(mon) { case 1: case 2: case 3: 62 printf("Mua xuan"); break; case 4: case 5: case 6: printf("Mua ha"); break; case 7: case 8: case 9: printf("Mua thu"); break; case 10: case 11: case 12: printf("Mua dong"); break; default: printf("\n Khong phai la thang nam"); } printf("\n"); getch(); } 2.3.4 Các lệnh điều khiển chu trình 2.3.4.1 Cẩu trúc while Đây cấu trúc lặp khối lệnh thực thực lại điều kiện lặp thỏa mãn Cú pháp while(dieu_kien) // khối lệnh } 63 Trong đó: - dieu_kien biểu thức nhận giá trị nguyên thực - while từ khóa Sự hoạt động Bước 1: Tính giá trị biểu thức điều kiện Bước 2: Nếu biểu thức điều kiện có giá trị sai (bằng 0) trình biên dịch khỏi cấu frúc while Nếu biểu thức điều kiện có giá trị (khác 0) khối lệnh thực quay trở lại bước Như khối lệnh không thực lần lần biểu thức nhận giá trị sai Ví dụ 2.3.10: Sử dụng thuật tốn ơclid để tìm ước số chung lớn hai số nguyên a b nhập vào từ bàn phím Thuật tốn ơclid tìm USCLN hai số a,b sau: Chừng mà a>b (Giả sử a >b): a=b; b=a-b; Thuật toán dừng a=b, a*b-0 Cài đặt thuật toán: ^include ^include int main() { unsigned n,m,a,b; printf("\nNhap vao hai so nguyên duong: "); scanf("%u%u", &a, &b); n = a; m - b; while (n != && m != 0) 64 { if (n>m) n -= m; else m n; } printf("\nUSCLN cua %u va %u = %u", a, b,n); getcheO; return 1; } Ví dụ 23.11: Nhập từ bàn phím số nguyên n Sau in kết n ! //include //include void main() { intn; int i =1; int result =1; // bien luu ket qua n! printf("\n Nhap so nguyên n:"); scanf("%d",&n); printf("\n"); // i tang tu den n, result = l*2* *n while(i