Chương 1. TỔNG QUAN VỀ NGÔN NGỮ LẬP TRÌNH .2| Lịch sử phát triển Ngôn ngữ lập trình .3| Các dạng Ngôn ngữ lập trình .4| Các giai đoạn phát triển CHƯƠNG TRÌNH .5| Cấu trúc một chương trình C# cơ bản .7| Visual Studio IDE.8| Quá trình biên dịch C# .9| Giải thuật và đặc tả giải thuật. CÁC KIỂU DỮ LIỆU, HẰNG, BIẾN .3| Tên và qui ước đặt tên .4| Các kiểu dữ liệu xây dựng sẵn. TOÁN TỬ VÀ BIỂU THỨC .1| Các loại toán tử .2| Các toán tử khác .3| Chuyển đổi các kiểu dữ liệu .5| Câu lệnh nhập, xuất.
CẤU TRÚC CHỌN .2| Cấu trúc điều kiện if .3| Cấu trúc lựa chọn switch … case…. CẤU TRÚC LẶP .2| Cấu trúc for .3| Cấu trúc while.4| Cấu trúc do…while .5| Cấu trúc foreach .6| Cấu trúc lặ l ng nhau .7| Câu lệnh break, continue .3| Truyền tham số.4| Kiểu trả về của hàm .92 Tài liệu giảng dạy Th p T nh 1 Trang 1 6.5| Cách gọi hàm. MẢNG MỘT CHIỀU .3| Truy xuất trên mảng .4| Sử dụng mảng một chiều làm tham số cho hàm:.101 Tài liệu giảng dạy Th p T nh 1 Trang 2 1. TỔNG QUAN VỀ NGÔN NGỮ LẬP TRÌNH - Chương này nhằm giới thiệu cho sinh viên các khái niệm cơ bản về lập trình, về các dạng ngôn ngữ lập trình, các phương pháp lập trình hiện có.
Ngoài ra cũng cung cấp cho sinh viên cách thức để phân tích một bài toán và mô tả giải thuật cho một bài toán. Tài liệu giảng dạy Th p T nh 1 Trang 3 1.1| GIỚI THIỆU Chương nh – Programs / Applications: là tập các chỉ thị (instructions) được sắp xếp theo một trật tự định trước nhằm hướng dẫn máy tính thực hiện các thao tác, hành động cần thiết để đáp ứng một mục tiêu đã định trước của con người như truy xuất dữ liệu, tìm kiếm, giải bài toán, .Các chỉ thị này có thể được viết bằng nhiều ngôn ngữ lập trình khác nhau. Ngôn ngữ l p trình - Programming languages: là tập từ ngữ và ký hiệu cho phép lập trình viên (programmers) hoặc người dùng có thể giao tiếp với máy tính. Cũng giống như ngôn ngữ tự nhiên ngôn ngữ lập trình cũng có các luật được gọi là cú pháp (syntax) để đảm bảo ngôn ngữ đó được vận dụng một cách chính xác.
Một số ngôn ngữ lập trình thông dụng như C++, Visual Basic, C#, Java, Python. L p trình viên – Programmers: là người có thể thiết kế, xây dựng và bảo trì các chương máy tính hoặc phần mềm. Bằng cách thao tác các đoạn mã hoặc các ngôn ngữ trên các công cụ lập trình. Công cụ l p trình - Programming tools / Developer tools: công cụ lập trình hay công cụ phát triển phần mềm là một chương trình máy tính mà các nhà phát triển phần mềm sử dụng để tạo (create), gỡ rối (debug), duy trì (maintain), hoặc thực hiện các hỗ trợ khác cho các chương trình hoặc các ứng dụng.2| LỊCH SỬ PHÁT TRIỂN NGÔN NGỮ LẬP TRÌNH Ngôn ngữ l p trình (programming language) là một tập con của ngôn ngữ máy tính.
Đây là một dạng ngôn ngữ được thiết kế và chuẩn hóa (đối lập với ngôn ngữ tự nhiên) để truyền các chỉ thị cho máy tính (hoặc máy khác có bộ xử lí). Ngôn ngữ lập trình có thể được dùng để tạo ra các chương trình nhằm mục đích điều khiển máy tính hoặc mô tả các thuật toán để người khác đọc hiểu. Các lĩnh vực ứng dụng của ngôn ngữ lập trình: - Nghiên cứu khoa học: Fortran, C, Matlab, … - Lập trình hệ thống: C, C++, … - Tính toán trong kinh doanh: Java, C#, … - Trí tuệ nhântạo: LISP, … - Xử lý văn bản: Perl, Python, … - Mục đích đặc biệt cho NNLT: make, sh-shell, … Tài liệu giảng dạy Th p T nh 1 Trang 4 Sơ lược lịch sử phát triển ngôn ngữ lập trình Autocode (viết năm 1952 do Alick Glennie ): Đây là tập hợp một loạt những hệ thống ngôn ngữ lập trình đơn giản được phát triển vào những năm 50 cho hệ thống máy tính kỹ thuật số tại đại học Manchester, Cambridge và London và được coi là ngôn ngữ lập trình chính thức đầu tiên. Pascal (viết năm 1970 do Niklaus Wirth): đây là ngôn ngữ được đặt theo tên nhà toán học người Pháp Blaise Pascal.
Ngôn ngữ này cho phép người dùng có thể tự xác định dạng dữ liệu của mình theo kiểu danh sách, sơ đồ cây hay đồ thị. C (viết năm 1972 do Brian W.Kernighan và Dennis Ritchie): Đây là một trong những ngôn ngữ lập trình được sử dụng nhiều nhất mọi thời đại. C được thế kế để lập trình theo cấu trúc. C là nguồn gốc của nhiều ngôn ngữ dẫn xuất bao gồm C#, Java, JavaScript, Perl, PHP và Python.
Ngôn ngữ C được dùng phổ biến trong lập trình nền tảng (platform), lập trình hệ thống, lập trình UNIX, phát triển ứng dụng trò chơi điện tử. Các ứng dụng www trên hệ thống máy chủ (server) và máy khách (client) đời đầu cũng được viết bằng ngôn ngữ C. C++ (viết năm1980 do Bjarne Stroustrup): C++ là một trong ít ngôn ngữ mà có thể đảm nhiệm được rất nhiều vai trò trong lập trình: từ lập trình ứng dụng, lập trình nhúng, các ứng dụng client/server, trò chơi đồ họa cho đến việc lập trình cho các hệ thống lớn và rất lớn. C++ cho phép lập trình viên sử dụng những kĩ thuật cao cấp như lập trình hướng đối tượng, template … mà vẫn có thể linh động cho phép can thiệp vào sâu vào bộ nhớ bên dưới.
Một số ứng dụng nổi tiếng được viết bằng C++ như Adobe, Google, Chrome, Mozilla, Firefox, Internet Explorer, MySQL, Apple OS X, Symbian OS, Winamp Media Player, …. Chính vì vậy, mặc dù ngôn ngữ C++ có "tuổi" khá cao nhưng nó vẫn đóng một vai trò cực kì quan trọng trong thế giới máy tính.Perl (1987): thuộc nhóm ngôn ngữ lập trình bậc cao. Ngôn ngữ này vay mượn không ít tính năng từ những ngôn ngữ khác như C, AWK và sad. Ban đầu nó thô sơ đến mức hướng dẫn sử dụng chỉ có 1 trang.
Thế nhưng đến nay nó đã có thêm nhiều phiên bản và nhiều thay đổi so với ban đầu. Python (viết năm 1991 do Guido van Rossum): ngôn ngữ này được thiết kế cực kỳ đơn giản, thậm chí là có khả năng đọc được như bảng chữ cái. Triết lý của những nhà phát triển ngôn ngữ nay đó là làm cho mã nguồn ngắn hơn, không dài và phức tạp như C++ hay Java. Java (viết năm 1995 do James Gosling và bạn đồng nghiệp ở Sun Microsystems): ngôn ngữ này được phát triển với mục tiêu càng ít phụ thuộc vào khả năng vận Tài liệu giảng dạy Th p T nh 1 Trang 5 hành thực tế của thiết bị càng tốt.
Nói cách khác là nó chỉ cần viết một lần trên một máy, và chạy được trên mọi máy khác. Chính vì vậy mà đến nay, từ máy tính để bàn đến điện thoại di động Symbian S40 ta đều có thể gặp các chương trình Java. PHP (viết năm 1995 do Rasmus Lerdorf): đây là ngôn ngữ sử dụng thực thi trên máy chủ và dùng cho việc phát triển web. Nó thực hiện các yêu cầu của người dùng sau đó trả kết quả lên trình duyệt qua việc kết hợp với HTML tạo ra giao diện các trang web hiện nay.
Khi mới xuất hiện, PHP không được định nghĩa là một ngôn ngữ lập trình, tuy nhiên qua thời gian, ngôn ngữ này đã có một lượng người dùng đông đảo và vẫn là sự lựa chọn của nhiều nhà phát triển web ngày nay.NET (2001): Đây là ngôn ngữ được phát triển trên nền Visual Basic và thực hiện trên nền tảng. Đây là lý do vì sao khi cài đặt một số chương trình sẽ có yêu cầu cài đặt thêm. Ngôn ngữ “trẻ nhất” này được hãng giới thiệu tại sự kiện WWDC 2014. Ngôn ngữ này có ưu điểm là mã nguồn rất ngắn và dễ đọc.
Sau khi viết, các chương trình có thể được kiểm tra rất nhanh và các bài kiểm tra cũng sẽ ở cấp độ cao hơn. Ngoài ra đồ hoạ các chương trình dùng ngôn ngữ này cũng sẽ đẹp hơn nhưng yêu cầu phần cứng sẽ thấp hơn.3| CÁC DẠNG NGÔN NGỮ LẬP TRÌNH Có rất nhiều loại ngôn ngữ lập trình, thông thường khi phân loại ta thường dựa vào các yếu ba tố cơ bản sau: 1.1| THEO TIẾN TRÌNH LỊCH SỬ PHÁT TRIỂN Ngôn ngữ máy – Machine language: Chương trình viết bằng ngôn ngữ máy chỉ gồm 0 và 1 nên dễ sai sót, cồng kềnh và khó đọc, khó hiểu. Chương trình được viết có thể được thực hiện ngay không cần qua bước trung gian nào. Hợp ngữ - Assembly language: Các câu lệnh bao gồm hai phần: phần mã lệnh (viết tựa tiếng Anh) chỉ phép toán cần thực hiện và phần tên biến chỉ địa chỉ chứa toán hạng của phép toán đó.
Ðể máy thực hiện được một chương trình viết bằng hợp ngữ thì chương trình đó phải được dịch sang ngôn ngữ máy. Công cụ thực hiện việc dịch đó được gọi là Assembler Ngôn ngữ cấp cao – High level language: Các lệnh được mã hóa bằng một ngôn ngữ gần với ngôn ngữ Tiếng Anh. Chương trình viết trên ngôn ngữ bậc cao phải Tài liệu giảng dạy Th p T nh 1 Trang 6 được chuyển đổi thành chương trình trên ngôn ngữ máy bằng một chương trình dịch mới có thể thực hiện được.2| THEO PHƯƠNG PHÁP LẬP TRÌNH (PROGRAMMING PARADIGMS) L p trình tuyến tính: Đặc trưng của Lập trình tuyến tính là tư duy theo lối tuần tự. Chỉ có duy nhất một luồng công việc và các công việc được thực hiện tuần tự trong luồng đó.
Chương trình sẽ được thực hiện theo thứ tự từ đầu đến cuối, lệnh này kế tiếp lệnh kia cho đến khi kết thúc chương trình. Nhược điểm của lập trình tuyến tính là với các ứng dụng phức tạp, người ta không thể dùng lập trình tuyến tính để giải quyết. Nên phương pháp Lập trình tuyến tính ngày nay chỉ được sử dụng trong phạm vi các module nhỏ nhất của các phương pháp Lập trình khác. L p nh hướng cấu trúc: Trong Lập trình hướng cấu trúc, chương trình chính sẽ được chia nhỏ thành các chương trình con thực hiện một công việc xác định.
Đặc trưng cơ bản nhất của Lập trình hướng cấu trúc thể hiện ở mối quan hệ: Chương trình = Cấu trúc dữ liệu + Giải thuật Cấu trúc dữ liệu là cách tổ chức dữ liệu cho việc xử lý bởi một hay nhiều chương trình nào đó. Giải thuật là một quy trình để thực hiện một công việc xác định. Các ngôn ngữ lập trình cấu trúc cung cấp một số cấu trúc lệnh điều khiển chương trình. Nên có ưu điểm là chương trình dể hiểu, dể theo dõi, tư duy giải thuật rõ ràng.