1. Trang chủ
  2. » Công Nghệ Thông Tin

Bài giảng C Chuong1

23 150 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Nội dung

Chương Ôn kiến thức cú pháp ngôn ngữ VC# 1.0 Dẫn nhập 1.1 Tổng quát máy tính ngôn ngữ VC# 1.2 Tập ký tự ngôn ngữ VC# 1.3 Extended Backus-Naur Form (EBNF) notation 1.4 Cú pháp ₫ịnh nghĩa tên nhận dạng (Name) 1.5 Cú pháp ₫ịnh nghĩa dấu ngăn (Seperator) 1.6 Cú pháp ₫ịnh nghĩa biểu thức 1.7 Qui trình tính biểu thức 1.8 Các lệnh ₫ịnh nghĩa thành phần phần mềm 1.9 Các lệnh thực thi 1.10 Kết chương Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2010 Môn : Lập trình hướng ₫ối tượng Chương : Ôn kiến thức cú pháp ngôn ngữ VC# Slide 1.0 Dẫn nhập ‰ Chương tóm tắt lại số kiến thức cú pháp ngôn ngữ VC# hầu giúp SV có góc nhìn tổng thể hệ thống ngôn ngữ VC#, nhờ ₫ó có nhiều thuận lợi việc học kiến thức môn học Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2010 Môn : Lập trình hướng ₫ối tượng Chương : Ôn kiến thức cú pháp ngôn ngữ VC# Slide 1.1 Tổng quát máy tính ngôn ngữ VC# ‰ ‰ ‰ ‰ Máy tính số thiết bị ₫ặc biệt, thiết bị tổng quát hóa, nghĩa thực nhiều công việc khác Ta nói máy tính số thiết bị vạn Vậy thời ₫iểm xác ₫ịnh, máy tính thực công việc ? Nó không làm người không yêu cầu cụ thể Làm ₫ể người yêu cầu máy tính thực công việc ₫ó ? Ta phải viết chương trình giải công việc tương ứng ₫ưa vào máy nhờ máy chạy dùm Viết chương trình qui trình lớn dài hạn gồm nhiều bước, ₫ó bước yếu : xác ₫ịnh xác chức chương trình, phân tích cách giải chức năng, tìm thuật giải chi tiết ₫ể giải chức năng, ₫ổi thuật giải chi tiết từ ngôn ngữ ₫ời thường thành ngôn ngữ lập trình cho máy hiểu Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2010 Môn : Lập trình hướng ₫ối tượng Chương : Ôn kiến thức cú pháp ngôn ngữ VC# Slide 1.1 Tổng quát máy tính ngôn ngữ VC# ‰ Ngôn ngữ lập trình ngôn ngữ giao tiếp người máy Học ngôn ngữ lập trình giống học ngôn ngữ tự nhiên, nghĩa học thành phần ngôn ngữ từ thấp ₫ến cao : ƒ Tập ký tự ƒ Cú pháp xây dựng từ (word) Từ ₫ược dùng ₫ể ₫ặt tên nhận dạng cho phần tử cấu thành chương trình gợi nhớ, biến, hàm chức năng, class ₫ối tượng,… ƒ Cú pháp xây dựng biểu thức Biểu thức (công thức toán học) miêu tả trình tính toán nhiều phép toán nhiều liệu ₫ể tạo kết tính toán ƒ Cú pháp xây dựng câu lệnh : có loại câu lệnh : lệnh ₫ịnh nghĩa lệnh thực thi : Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2010 Môn : Lập trình hướng ₫ối tượng Chương : Ôn kiến thức cú pháp ngôn ngữ VC# Slide 1.1 Tổng quát máy tính ngôn ngữ VC# Lệnh ₫ịnh nghĩa ₫ược dùng ₫ể ₫ịnh nghĩa tạo phần tử cấu thành phần mềm Lệnh thực thi miêu tả hành ₫ộng cụ thể cần phải thực Cú pháp tổ chức hàm chức Cú pháp tổ chức class chức Cú pháp tổ chức chương trình ƒ ƒ ƒ Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2010 Môn : Lập trình hướng ₫ối tượng Chương : Ôn kiến thức cú pháp ngôn ngữ VC# Slide 1.2 Tập ký tự ngôn ngữ VC# ‰ ‰ ‰ Ngôn ngữ VC# hiểu dùng tập ký tự Unicode Cụ thể Windows, ký tự Unicode dài byte (16 bit) => có 65536 ký tự Unicode khác Windows Mặc dù vậy, VC# dùng chủ yếu ký tự : chữ (a-z tiếng Anh), '_', ký tự số (0-9), khoảng trắng dấu ngăn Tab (gióng cột), CR (quay ₫ầu dòng), LF (xuống dòng) ký tự ₫ặc biệt ₫ể miêu tả phép toán +, -, *, /, =, !, (, ) Các ký tự khác, ký tự có mã > 256 ₫ược dùng lệnh thích Các ký tự có dấu tiếng Việt có mã từ 7840-7929 Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2010 Môn : Lập trình hướng ₫ối tượng Chương : Ôn kiến thức cú pháp ngôn ngữ VC# Slide 1.3 Extended Backus-Naur Form (EBNF) notation ‰ Ta dùng qui ước EBNF ₫ể miêu tả cú pháp xây dựng phần tử ngôn ngữ VC# Cụ thể ta dùng qui ước EBNF sau ₫ây : ƒ #xN, ₫ó N chuỗi ký tự thập lục phân Qui ước miêu tả ký tự có mã thập lục phân tương ứng Thí dụ ta viết #x3e ₫ể miêu tả ký tự > ƒ [a-zA-Z], [#xN-#xN], ₫ó N chuỗi ký tự thập lục phân Qui ước miêu tả ký tự thuộc danh sách ₫ược liệt kê Thí dụ ta viết [0-9] ₫ể miêu tả ký tự số thập phân từ ₫ến ƒ [^a-zA-Z], [^#xN-#xN], ₫ó N chuỗi ký tự thập lục phân Qui ước miêu tả ký tự không thuộc danh sách ₫ược liệt kê Thí dụ ta viết [^0-9] ₫ể miêu tả ký tự số thập phân từ ₫ến Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2010 Môn : Lập trình hướng ₫ối tượng Chương : Ôn kiến thức cú pháp ngôn ngữ VC# Slide 1.3 Extended Backus-Naur Form (EBNF) notation ƒ ƒ ƒ ƒ [^abc], [^#xN#xN#xN], ₫ó N chuỗi ký tự thập lục phân Qui ước miêu tả ký tự không thuộc danh sách ₫ược liệt kê Thí dụ ta viết [^= b // >= toán tử so sánh lớn hay a++ // ++ toán tử tăng ₫ơn vị a == b // == toán tử so sáng (không phải toán tử gán) Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2010 Môn : Lập trình hướng ₫ối tượng Chương : Ôn kiến thức cú pháp ngôn ngữ VC# Slide 15 1.6 Cú pháp ₫ịnh nghĩa biểu thức ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ Giá trị luận lý : true | false Giá trị thập phân nguyên : (+|-)? (decdigit)+ (Vd 125, -548) Giá trị thập lục phân nguyên : (+|-)? "0x" (hexdigit)+ (0xFF) Giá trị bát phân nguyên : (+|-)? "0" (ocdigit)+ (0577) Giá trị nhị phân nguyên : (+|-)? (bidigit)+ "b" (101110b) Giá trị thập phân thực : (+|-)? (decdigit)+ ("." (decdigit)*)? ("E" (+|-)? (decdigit)+)? 3.14159, 0.31459e1,-83.1e-9, Giá trị chuỗi : "Nguyen Van A" "\"Nguyen Van A\"" Lưu ý dùng ký tự '\' ₫ể thực chế 'escape' liệu hầu giải nhầm lẫn Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2010 Môn : Lập trình hướng ₫ối tượng Chương : Ôn kiến thức cú pháp ngôn ngữ VC# Slide 16 1.7 Qui trình tính biểu thức ƒ Một biểu thức chức nhiều phép toán, qui trình tính toán biểu thức sau : duyệt từ trái sang phải, lần gặp phép toán (ta gọi CurrentOp) phải nhìn trước toán tử ₫i sau (SuccessorOp), so sánh ₫ộ ưu tiên toán tử ₫ịnh sau : SuccessorOp tính toán tử CurrentOp (trên 1, hay toán hạng nó) toán tử CurrentOp có ₫ộ ưu tiên cao toán tử SuccessorOp tính toán tử CurrentOp (trên 1, hay toán hạng nó) toán tử CurrentOp có ₫ộ ưu tiên toán tử SuccessorOp kết hợp trái tính toán tử CurrentOp (trên 1, hay toán hạng nó) Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2010 Môn : Lập trình hướng ₫ối tượng Chương : Ôn kiến thức cú pháp ngôn ngữ VC# Slide 17 1.7 Qui trình tính biểu thức à trường hợp lại cố gắng thực toán tử SuccessorOp trước Việc cố gắng phải tuân theo qui ₫ịnh trên, Khi toán tử SussesorOp ₫ược thực xong toán tử sau SuccessorOp trở thành toán tử ₫i sau CurrentOp ⇒ việc kiểm tra xem CurrentOp có ₫ược thực hay không ₫ược lặp lại Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2010 Môn : Lập trình hướng ₫ối tượng Chương : Ôn kiến thức cú pháp ngôn ngữ VC# Slide 18 1.7 Qui trình tính biểu thức Bảng liệt kê thấp : Operator [] () () -> ++ -new typeof checked unchecked ₫ộ ưu tiên toán tử từ xuống = từ cao xuống Name or Meaning Array subscript Function call Conversion Member selection (object) Member selection (pointer) Postfix increment Postfix decrement Allocate object Type of Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2010 Associativity Left to right Left to right None Left to right Left to right None None None Môn : Lập trình hướng ₫ối tượng Chương : Ôn kiến thức cú pháp ngôn ngữ VC# Slide 19 1.7 Qui trình tính biểu thức Operator ++ -+ — ! ~ & sizeof ( ) typeid( ) (type) true false reinterpret_cast Name or Meaning Associativity Prefix increment None Prefix decrement None Unary plus None Arithmetic negation (unary) None Logical NOT None Bitwise complement None Address of None Size of type None type name None Type cast (conversion) Right to left true None false None Type cast (conversion) None Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2010 Môn : Lập trình hướng ₫ối tượng Chương : Ôn kiến thức cú pháp ngôn ngữ VC# Slide 20 1.7 Qui trình tính biểu thức Operator * / % + — > < > = is as Name or Meaning Multiplication Division Remainder (modulus) Addition Subtraction Left shift Right shift Less than Greater than Less than or equal to Greater than or equal to Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2010 Associativity Left to right Left to right Left to right Left to right Left to right Left to right Left to right Left to right Left to right Left to right Left to right Môn : Lập trình hướng ₫ối tượng Chương : Ôn kiến thức cú pháp ngôn ngữ VC# Slide 21 1.7 Qui trình tính biểu thức Operator == != & ^ | && || e1?e2:e3 = *= /= %= += —= Name or Meaning Equality Inequality Bitwise AND Bitwise exclusive OR Bitwise OR Logical AND Logical OR Conditional Assignment Multiplication assignment Division assignment Modulus assignment Addition assignment Subtraction assignment Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2010 Associativity Left to right Left to right Left to right Left to right Left to right Left to right Left to right Right to left Right to left Right to left Right to left Right to left Right to left Right to left Môn : Lập trình hướng ₫ối tượng Chương : Ôn kiến thức cú pháp ngôn ngữ VC# Slide 22 1.7 Qui trình tính biểu thức Operator = &= |= ^= ?? , Name or Meaning Left-shift assignment Right-shift assignment Bitwise AND assignment Bitwise inclusive OR assignment Bitwise exclusive OR assignment Associativity Right to left Right to left Right to left Right to left Right to left Comma Left to right Môn : Lập trình hướng ₫ối tượng Chương : Ôn kiến thức cú pháp ngôn ngữ VC# Slide 23 Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2010 1.7 Qui trình tính biểu thức Thí dụ : dblDv = dblDv + intpn * d * pow(10,-bytPosDigit); ƒ Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2010 Môn : Lập trình hướng ₫ối tượng Chương : Ôn kiến thức cú pháp ngôn ngữ VC# Slide 24 1.8 Các lệnh ₫ịnh nghĩa thành phần phần mềm Định nghĩa gợi nhớ ƒ Cú pháp ₫ịnh nghĩa gợi nhớ : ConstDef ::= "const" S TName S Name S? "=" S? Expr S? ";" Thí dụ : const double PI = 3.1416; Định nghĩa biến cục hàm ƒ Cú pháp ₫ịnh nghĩa biến cục hàm : VarDef ::= TName S Name (S? "=" S? Expr S?)? ";" Thí dụ : double epsilon = 0.000001; Định nghĩa kiểu người dùng (học chi tiết môn Kỹ thuật lập trình chương sau môn này) Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2010 Môn : Lập trình hướng ₫ối tượng Chương : Ôn kiến thức cú pháp ngôn ngữ VC# Slide 25 1.8 Các lệnh ₫ịnh nghĩa thành phần phần mềm Định nghĩa hàm hay tác vụ chức (học chi tiết môn Kỹ thuật lập trình chương sau môn này) Định nghĩa chương trình (học chi tiết môn Kỹ thuật lập trình chương sau môn này) Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2010 Môn : Lập trình hướng ₫ối tượng Chương : Ôn kiến thức cú pháp ngôn ngữ VC# Slide 26 1.9 Các lệnh thực thi ƒ ƒ Ta ₫ã biết giải thuật ₫ể giải vấn ₫ề ₫ó trình tự công việc nhỏ hơn, ta thực ₫úng trình tự công việc nhỏ giải ₫ược vấn ₫ề lớn VC# (hay ngôn ngữ lập trình khác) cung cấp tập lệnh thực thi, lệnh thực thi ₫ược dùng ₫ể miêu tả công việc nhỏ giải thuật với ý tưởng chung sau : Nếu tồn lệnh thực thi miêu tả ₫ược công việc nhỏ giải thuật ta dùng lệnh thực thi ₫ể miêu tả Nếu công việc nhỏ thuật giải phức tạp lệnh thực thi miêu tả ₫ược ta dùng lệnh gọi hàm (function, method) ₫ó hàm trình tự lệnh thực công việc nhỏ Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2010 Môn : Lập trình hướng ₫ối tượng Chương : Ôn kiến thức cú pháp ngôn ngữ VC# Slide 27 1.9 Các lệnh thực thi ƒ ƒ ƒ ƒ Hầu hết lệnh thực thi ₫ều có chứa biểu thức dùng kết biểu thức ₫ể ₫ịnh công việc cần ₫ược thực ⇒ ta thường gọi lệnh thực thi cấu trúc ₫iều khiển Để dễ học, dễ nhớ dễ dùng, VC# (cũng ngôn ngữ khác) cung cấp số lượng nhỏ lệnh thực thi : Nhóm lệnh không ₫iều khiển : Lệnh gán liệu vào biến Nhóm lệnh tạo ₫ịnh : Lệnh kiểm tra ₫iều kiện luận lý if else Lệnh kiểm tra ₫iều kiện số học switch Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2010 Môn : Lập trình hướng ₫ối tượng Chương : Ôn kiến thức cú pháp ngôn ngữ VC# Slide 28 1.9 Các lệnh thực thi ƒ ƒ Nhóm lệnh lặp : Lệnh lặp : while Lệnh lặp : for Lệnh lặp : while Nhóm lệnh gọi hàm : Lệnh gọi hàm Lệnh thoát khỏi cấu trúc ₫iều khiển : break Lệnh thoát khỏi hàm : return Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2010 Môn : Lập trình hướng ₫ối tượng Chương : Ôn kiến thức cú pháp ngôn ngữ VC# Slide 29 1.9 Các lệnh thực thi Lệnh gán : lệnh ₫ược dùng nhiều chương trình, chức lệnh gán giá trị liệu vào vùng nhớ ₫ể lưu trữ hầu sử dụng lại sau ₫ó Cú pháp : lvar S? "=" S? Expr S? ";" biểu thức Expr bên phải ₫ược tính ₫ể tạo kết (1 giá trị cụ thể thuộc kiểu cụ thể), giá trị ₫ược gán vào ô nhớ lvar qui ₫ịnh Trước gán, VC# kiểm tra kiểu phần tử (qui tắc kiểm tra ₫ược trình bày sau) lvar biến ₫ơn (intTuoi), phần tử biến array (matran[2,3]), thuộc tính ₫ối tượng (rect.dorong) Thí dụ : x1 = (-b-sqrt(delta))/2/a; Khoa Khoa học & Kỹ thuật Máy tính Trường ĐH Bách Khoa Tp.HCM © 2010 Môn : Lập trình hướng ₫ối tượng Chương : Ôn kiến thức cú pháp ngôn ngữ VC# Slide 30 1.9 Các lệnh thực thi Lệnh kiểm tra ₫iều kiện luận lý if else : cho phép dựa vào kết luận lý (tính ₫ược từ biểu thức luận lý) ₫ể ₫ịnh thi hành nhánh lệnh Sau thực nhánh lệnh, chương trình tiếp tục thi hành lệnh sau lệnh IF Cú pháp : "if" S? "(" S? Expr S? ")" S? Statement S? ("else" S Statement)? Thí dụ : if (delta

Ngày đăng: 29/08/2017, 09:58

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w