Giáo trình Cơ sở Lập trình - Tài liệu học tập cho sinh viên Đại học Thương mại

Tài liệu giảng dạy Cơ sở lập trình: hướng dẫn cho sinh viên hệ thống hóa kiến thức từ cơ bản đến nâng cao ngành trong thời kỳ mới

Trường đại học

Trường Đại Học Thương Mại

Người đăng

Ẩn danh

Thể loại

Giáo Trình

2014

77
27
0

Phí lưu trữ

30 Point

Mục lục chi tiết

LỜI NÓI ĐẦU

1. CHƯƠNG 1: TỔNG QUAN VỀ CƠ SỞ LẬP TRÌNH

1.1. Khái niệm

1.2. Tính chất của thuật toán

1.3. Khái niệm Đổ thể hiện thuật toán

1.4. Các dạng cấu trúc cơ bản của sơ đồ khối

1.5. Giả mã (Pseudo Code)

1.6. CHƯƠNG TRÌNH VÀ NGÔN NGỮ LẬP TRÌNH

1.6.1. Khái niệm chương trình

1.6.2. Ngôn ngữ lập trình

1.6.3. Quy trình giải bài toán trên máy tính điện tử

1.6.4. Đánh giá chất lượng chương trình

1.7. CÁC PHƯƠNG PHÁP LẬP TRÌNH

1.7.1. Lập trình hướng thủ tục

1.7.2. Lập trình hướng đối tượng

1.8. KỸ THUẬT THIẾT KẾ CHƯƠNG TRÌNH

1.8.1. Kỹ thuật thiết kế trên xuống (top-down design)

1.8.2. Kỹ thuật chương trình con (lập trình cấu trúc)

1.8.3. Kỹ thuật đệ quy

2. CHƯƠNG 2: CÁC THÀNH PHẦN CƠ SỞ

2.1. Tổng quan về ngôn ngữ lập trình C

2.2. CÁC YẾU TỐ CƠ BẢN CỦA NGÔN NGỮ LẬP TRÌNH

2.2.1. Bảng chữ cái (Bộ ký tự)

2.2.2. Tên gọi

2.2.3. Chú thích

Tóm tắt

I. Tổng quan về giáo trình Cơ sở Lập trình cho sinh viên

Giáo trình Cơ sở Lập trình là tài liệu thiết yếu cho sinh viên ngành công nghệ thông tin. Nó cung cấp kiến thức nền tảng về lập trình, giúp sinh viên phát triển tư duy thuật toán và khả năng lập trình cơ bản. Nội dung giáo trình được biên soạn bởi các giảng viên có kinh nghiệm, đảm bảo tính cập nhật và phù hợp với thực tiễn. Giáo trình không chỉ phục vụ cho sinh viên mà còn là tài liệu tham khảo cho giảng viên trong quá trình giảng dạy.

1.1. Mục tiêu của giáo trình Cơ sở Lập trình

Giáo trình nhằm trang bị cho sinh viên những kiến thức cơ bản về lập trình, từ đó phát triển kỹ năng lập trình và tư duy logic. Sinh viên sẽ được học về các ngôn ngữ lập trình phổ biến, cấu trúc dữ liệu và thuật toán, giúp họ tự tin hơn trong việc giải quyết các bài toán thực tiễn.

1.2. Đối tượng sử dụng giáo trình

Giáo trình này được thiết kế cho sinh viên chuyên ngành Quản trị hệ thống thông tin và các ngành liên quan đến công nghệ thông tin. Ngoài ra, nó cũng phù hợp với những sinh viên yêu thích lập trình và muốn tìm hiểu sâu hơn về lĩnh vực này.

II. Những thách thức trong việc học lập trình cho sinh viên

Học lập trình không phải là điều dễ dàng. Sinh viên thường gặp phải nhiều thách thức như thiếu kiến thức nền tảng, khó khăn trong việc hiểu các khái niệm lập trình, và áp lực từ các bài tập thực hành. Những vấn đề này có thể gây ra sự chán nản và giảm động lực học tập.

2.1. Khó khăn trong việc tiếp cận ngôn ngữ lập trình

Nhiều sinh viên gặp khó khăn trong việc làm quen với cú pháp và quy tắc của ngôn ngữ lập trình. Điều này có thể dẫn đến việc họ không thể viết mã hiệu quả và gặp khó khăn trong việc giải quyết các bài toán lập trình.

2.2. Thiếu kỹ năng tư duy thuật toán

Tư duy thuật toán là một kỹ năng quan trọng trong lập trình. Sinh viên thường không được đào tạo đầy đủ về cách phân tích và giải quyết vấn đề, dẫn đến việc họ không thể áp dụng các thuật toán một cách hiệu quả trong thực tế.

III. Phương pháp học lập trình hiệu quả cho sinh viên

Để vượt qua những thách thức trong việc học lập trình, sinh viên cần áp dụng các phương pháp học tập hiệu quả. Việc thực hành thường xuyên, tham gia các khóa học bổ sung và làm việc nhóm có thể giúp sinh viên cải thiện kỹ năng lập trình của mình.

3.1. Thực hành lập trình thường xuyên

Thực hành là cách tốt nhất để nắm vững kiến thức lập trình. Sinh viên nên dành thời gian để viết mã, giải quyết các bài tập và tham gia vào các dự án thực tế để củng cố kiến thức của mình.

3.2. Tham gia các khóa học bổ sung

Các khóa học trực tuyến hoặc tại các trung tâm đào tạo có thể cung cấp cho sinh viên những kiến thức bổ sung và cập nhật về lập trình. Điều này giúp sinh viên nắm bắt được các xu hướng mới trong ngành công nghệ thông tin.

IV. Ứng dụng thực tiễn của lập trình trong cuộc sống

Lập trình không chỉ là một kỹ năng chuyên môn mà còn có ứng dụng rộng rãi trong nhiều lĩnh vực khác nhau. Từ phát triển phần mềm, thiết kế web đến phân tích dữ liệu, lập trình đóng vai trò quan trọng trong việc giải quyết các vấn đề thực tiễn.

4.1. Lập trình trong phát triển phần mềm

Phát triển phần mềm là một trong những lĩnh vực chính của lập trình. Các lập trình viên sử dụng ngôn ngữ lập trình để xây dựng ứng dụng, phần mềm và hệ thống, phục vụ nhu cầu của người dùng.

4.2. Lập trình trong phân tích dữ liệu

Phân tích dữ liệu là một lĩnh vực đang phát triển mạnh mẽ. Lập trình viên sử dụng các ngôn ngữ lập trình để xử lý và phân tích dữ liệu, từ đó đưa ra những quyết định chính xác và hiệu quả cho doanh nghiệp.

V. Kết luận và tương lai của lập trình

Lập trình là một kỹ năng quan trọng trong thời đại công nghệ số. Với sự phát triển không ngừng của công nghệ, nhu cầu về lập trình viên sẽ ngày càng tăng. Sinh viên cần nắm bắt cơ hội này để phát triển sự nghiệp của mình trong lĩnh vực công nghệ thông tin.

5.1. Tương lai của lập trình viên

Với sự phát triển của trí tuệ nhân tạo, học máy và các công nghệ mới, lập trình viên sẽ có nhiều cơ hội việc làm hơn. Việc cập nhật kiến thức và kỹ năng là rất cần thiết để đáp ứng nhu cầu của thị trường.

5.2. Lời khuyên cho sinh viên

Sinh viên nên chủ động tìm kiếm cơ hội học tập và thực hành lập trình. Tham gia các dự án thực tế, làm việc nhóm và không ngừng học hỏi sẽ giúp sinh viên phát triển kỹ năng và tự tin hơn trong sự nghiệp lập trình của mình.

16/08/2025

Trích đoạn nội dung tài liệu

Chương 1 TÔNG QUAN VÈ cơ SỞ LẬP TRÌNH Chương này bao gồm các kiến thức về thuật toán, tính chất thuật toán, sơ đồ khối và các khái niệm về chương trình và ngôn ngữ lập trình. Đồng thời chương này còn bao gồm cả việc giới thiệu về các phương pháp lập trình và các kỹ thuật thiết kế chương trình như kỹ thuật chương trình con và kỹ thuật đệ quy. Khái niệm Thuật toán là một tập hữu hạn các bước lệnh đã được xác định theo một thứ tự nhất định để theo đó máy tính có thể thực hiện được một cách tự động nhằm mục đích giải một bài toán hay một nhiệm vụ nào đó. Thông thường các lệnh ở các bước chính là các phép vào thông tin, phép xử lý hoặc ra thông tin.

Thuật toán phải được thể hiện rõ ràng trong các bước của nó và khi thuật toán được thực hiện thông qua dãy hữu hạn các bước thì phải đảm bảo dừng và cho ra kết quà theo mong muốn của người sử dụng.1: Viết thuật toán giải phương trinh bậc hai ax2+bx+c=0 (aoO) Bước 1: Nhập các giá trị của 3 hệ số a, b, c Bước 2: Nếu a=0 thì 2. Yêu cầu đầu vào không đảm bảo. Chuyển đến bước 4 Bước 3: Trường hợp a khác 0 thì 3. Tính giá trị D = b2 - 4ac 5 3.

Phương trình có hai nghiệm phân biệt X] và x2 3. Giá fri của hai nghiệm được tính theo công thức sau 3. Chuyển đến bước 4. Phương trình có nghiệm kép x0 3.

Giá trị của nghiệm kép là „ -b x°~ 2a 3. Chuyển đến bước 4 3. Phương trình vô nghiệm. đến bước 4 Bước 4: Kết thúc 1.

Tính chất của thuật toán Trong khuôn khổ giáo trình một số tính chất cơ bản sẽ được giới thiệu bao gồm: ■ Tính xác định: Tính chất này có nghĩa là các bước của thuật toán phải rõ ràng, chính xác, không gây nên sự nhập nhằng, đa nghĩa. Thực hiện đúng các bước của thuật toán thì với một bộ dữ liệu vào, chỉ cho duy nhất một bộ kết quả ra. Ví dụ: Ở ví dụ giải phương trình bậc 2 nói trên, việc tính D = b2-4ac và phân chia các trường hợp của D để đảm bảo rằng trong mọi trường 6 hợp của D thì thuật toán luôn có câu trả lời kết quả tương ứng (Có 2 nghiệm riêng biệt; có nghiệm kép; hay vô nghiệm). ■ Tính dừng: Tính chất này có nghĩa là khi áp dụng thuật toán cho một bộ dữ liệu cụ thể thì sau hữu hạn bước thực hiện sẽ cho kết quà và kết thúc.

Tính dừng là một trong các tính chất dễ bị vi phạm khi trình bày các bước của thuật toán. Điều đó có nghĩa là khi thực hiện hết các bước của thuật toán, người sử dụng sẽ nhận được kết quả mong muốn. Tuy nhiên, có những thuật toán mà khi thực thi nó sẽ “chạy mãi không dừng” (hay còn gọi là “lặp vô tận”) thì chúng sẽ được gọi là thuật toán “vi phạm tính dừng”. Ví dụ: Viết thuật toán để tính tổng các sổ nguyên dương lẻ < n (n nhập từ bàn phím).

Thuật toán như sau: Bước 1. Nếu i = n+1 thì sang Bước 8, ngược lại sang Bước 5 Bước 5. Quay lại bước Bước 4. In ra s Rõ ràng, thuật toán kết thúc khi giá trị của i vượt quá n, nhưng điều kiện "i=n+l" không phải lúc nào cũng đạt được.

Vì nếu n là số chẵn thì n+1 là một số lẻ thì sau một số hữu hạn bước, i sẽ bằng n+1. Tuy nhiên, nếu n là một số lẻ thì n+l là một số chẵn nên không đạt được i= n+1. Hay nói cách khác thuật toán sẽ không dừng. 7 ■ Tính phổ dụng: Tính chất này có nghĩa ỉà thuật toán không chỉ giải cho một bài toán mà giải cho một lớp các bài toán và có thể làm việc trên các dữ liệu khác nhau.

■ Tính đúng: Tính chất này có nghĩa là sau khi thực hiện tất cả các bước của thuật toán theo đúng trình tự, ta phải được kết quả mong muốn với mọi bộ dữ liệu đầu vào. Kết quả đó được kiểm chứng bằng yêu cầu của bài toán. ■ Tính khả thi: Tính chất hày thể hiện ưên ba yêu cầu sau: - Kích thước phải đủ nhỏ. Một thuật toán sẽ có tính hiệu quả bằng 0 nếu lượng bộ nhớ mà nó yêu cầu vượt quá khà năng lưu trữ của hệ thống máy tính.

- Thuật toán phải được máy tính thực hiện trong thời gian cho phép. Ví dụ như xếp thời khóa biểu thì 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 chỉ có thể áp dụng cho các kì tiếp theo. - Thuật toán phải dễ hiểu và dễ cài đặt. Khái niệm Đổ thể hiện thuật toán người ta có thể dùng nhiều phương pháp để biểu diễn, ví dụ như cách viết ở trên (mục 1.1) được gọi là phương pháp liệt kê theo các bước.

Ngoài ra, một trong các phương pháp thể hiện thuật toán thường được dùng là sơ đồ khối. Vậy, sơ đồ khối là cách thể hiện thuật toán bàng các hình khối hình học nối với nhau bằng các đường đi có hướng. Ở đây, chúng ta quy ước trong sơ đồ khối sử dụng các hình khối như sau: 8 Khối kiểm tra điều kiện Hướng thực hiện Khối vào ra 1. Các dạng cấu trúc cơ bản của sơ đồ khối Sơ đồ khối thể hiện thuật toán thường được thể hiện ở 3 dạng cơ bản như sau: • Sơ đồ khối dạng tuần tự: Là sơ đồ khối thể hiện thuật toán gồm n khối mà khi thực hiện thuật toán với một bộ dữ liệu cụ thể sẽ lần lượt thực hiện từ khối đầu tiên đến khối cuối cùng theo thứ tự viết của nó.

• Sơ đồ khối dạng rẽ nhánh: Là sơ đồ khối thể hiện thuật toán gồm n nhánh mà khi thực hiện thuật toán với một bộ dữ liệu cụ thể sẽ thực hiện một trong n nhánh mà thôi.1: Vẽ sơ đồ khối thể hiện thuật toán để giải bài toán giải phương trình bậc hai nói trên.1: Sơ đồ khối giải phương trình bậc hai ax2+bx+c=0 (aoO) • Sơ đồ khối dạng chu trình: Là sơ đồ khối thể hiện thuật toán gồm n khối mà khi thực hiện thuật toán với một bộ dữ liệu cụ thể sẽ có một số khối lặp đi lặp lại nhiều lần phụ thuộc vào một điều kiện nào đó vẫn thỏa mãn.2: Cho một dãy A gồm N số nguyên khác nhau ab a2, aN. Tìm và in ra chỉ số I và giá trị aj, mà ai chia hết cho k (k nguyên, và nhập từ bàn phím) hoặc thông báo không có số hạng nào của dãy A mà chia hết cho k. Trên thực tế, sơ đồ khối dùng để giải bài toán nào đó có thể được sử dụng một cách hỗn hợp với 3 dạng cơ bản nói trên. Nghĩa là trong sơ đồ 10; khối, có thể đoạn khối này là tuần tự, đoạn khác là rẽ nhánh, và đoạn khác nữa là chu trình, hoặc trong đoạn khối rẽ nhánh lại chứa đoạn khối rẽ nhánh, hoặc trong đoạn khối chu trình lại chứa chu trình v.

Sơ đồ khối thể hiện bài toán ờ ví dụ 1.2 11 Giả mã (Pseudo Code) Mặc dù sơ đồ khối thể hiện rất rõ quá trình xử lý Tuy nhiên, để có thể chuyển hóa từ sơ đồ thành ngôn ngữ lập trình là việc không hề dễ dàng. Vì thế, khi thể hiện thuật toán bằng cách thức giả lập mã, cách viết này sẽ minh họa dưới dạng sử dụng các cú pháp của một ngôn ngữ lập trình nào đó để thể hiện thuật toán. Điều này giúp cho việc vừa tận dụng được các khái niệm trong ngôn ngữ lập trình, vừa giúp người cài đặt dễ dàng nắm bắt nội dung thuật toán. Ví dụ một đoạn giả mã của thuật toán giải phưoìig trình bậc hai Neu delta > 0 thì làm các việc: X1 =(-b-sqrt(delta))/(2 *a) x2=(-b+sqrt(delta))/(2*a) In ra màn hình: phương trình có hai nghiệm là X] và x2 Ngược lại Neu delta = 0 thực hiện: In ra kết quả: phương trình có nghiệm kép là -b/(2*a) Ngược lại {delta < 0 } In ra kết quả: phương trình vô nghiệm 1.

CHƯƠNG TRÌNH VÀ NGÔN NGỮ LẬP TRÌNH 1. Khái niệm chương trình Chương trình là một tập hợp các lệnh để thể hiện một thuật toán giải quyết một bài toán hay một nhiệm vụ nào đó. Trong đó, lệnh chính là một chỉ thị cho máy tính để theo đó máy tính có thể thực hiện một cách tự động. Ví dụ như việc viết các dòng lệnh để máy tính có thể giải phương trình bậc 2: ax2 + bx +c =0 (a#0) một cách tự động mà không cần có sự can thiệp của con người trong quá trình xử lý.

Ngôn ngữ lập trình Ngôn ngữ lập trình là ngôn ngữ để viết chương trình. Có nhiều loại ngôn ngữ lập trình khác nhau mà sự liên quan của chúng phụ thuộc vào kiến trúc và hoạt động của máy tính. Có thể phân chia chúng thành các mức: • Ngôn ngữ máy: Là ngôn ngữ chương trình được viết ở dưới dạng nhị phân hoặc ở dạng hexa, mà máy tính có thể hiểu được một cách trực tiếp và thực hiện được. Tuy nhiên, nó không thuận lợi cho con người trong việc hiểu và viết chương trình.

• Họp ngữ: Là ngôn ngữ cấp thấp mà con người có thể sử dụng được để viết chương trình. Điểm không thuận lợi của ngôn ngữ này là chúng phụ thuộc chặt chẽ vào kiến trúc của máy tính. • Ngôn ngữ lập trình bậc cao: Là ngôn ngữ mà câu lệnh của nó gần gũi với ngôn ngữ tự nhiên. Chúng có tính độc lập, nghĩa là không phụ thuộc vào một loại máy cụ thể nào.

Ngôn ngữ lập trình phải bao gồm các yếu tố sau đây: • Tập các ký tự; Tập hợp từ vựng. • Tập hợp các quy tắc ngữ pháp và quy tắc viết các lệnh. Đối với các chương trình viết bằng họp ngữ hoặc ngôn ngữ lập trình bậc cao thì chúng cần có một chương trình dịch tương ứng để dịch chúng sang ngôn ngữ máy. Chương trình dịch cho hợp ngữ gọi là hợp dịch (dịch từ ngôn ngữ cấp thấp ra ngôn ngữ máy).

Để dịch chương trình viết bằng ngôn ngữ lập trình bậc cao sang ngôn ngữ máy gồm có trình biên dịch (dịch từ ngôn ngữ bậc cao sang ngôn ngữ cấp thấp) và hợp dịch (dịch tiếp ra ngôn ngữ máy). Quy trình giải bài toán trên máy tính điện tử Việc giải bài toán trên máy tính điện tử thường được tiến hành qua các bước sau đây: 13 • Bước 1: Xác định bài toán: Phải xác định mục đích của bài toán, xác định dữ liệu vào, xác định cách xử lý và dữ liệu đưa ra.

Nội dung được bảo vệ bản quyền — Tải xuống đầy đủ