Bài giảng Kỹ thuật lập trình - Chương 1: Tổng quan lập trình C#

Biến Là tên gọi cho một vùng nhớ (bên trong bộ nhớ máy tính khi chương trình được chạy) có khả năng chứa được một giá trị = một dữ liệu Được khai báo và sử dụng để chứa dữ liệu của chương trình Khai báo biến kiểu_biến tên_biến [= giá_trị]; Ví dụ int age; string chuoi = “xin chao”; Đặt tên biến Tên biến phân biệt chữ hoa và chữ thường tenBien khác với TenBien và Tenbien Không bắt đầu bằng số Không chứa các ký tự đặt biệt như ~ ! @ # $ % ^ & * ( ) Không đặt tên biến trùng với từ khoá string, int, private  tên không hợp lệ Quy tắc camel

pptx58 trang | Chia sẻ: thanhle95 | Lượt xem: 377 | Lượt tải: 0download
Bạn đang xem trước 20 trang tài liệu Bài giảng Kỹ thuật lập trình - Chương 1: Tổng quan lập trình C#, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
Chương 1Tổng quan lập trình C#Nội dungBiến và khai báo biếnCác phép toánCác hàm có sẵn của C#Phát biểu điều kiệnPhát biểu lặpHàmDữ liệuDữ liệu đầu vàoDữ liệu đầu raDữ liệu trong quá trình xử lýVí dụChương trình giải PT bậc 2Chương trình tính số tiền nhận được khi gửi tiết kiệmChương trình tính tiền điệnKiểu dữ liệuKiểu sốKiểu ký tựKiểu chuỗiKiểu ngày thángKiểu hình ảnhBiếnBiếnLà tên gọi cho một vùng nhớ (bên trong bộ nhớ máy tính khi chương trình được chạy) có khả năng chứa được một giá trị = một dữ liệuĐược khai báo và sử dụng để chứa dữ liệu của chương trìnhKhai báo biếnkiểu_biến tên_biến [= giá_trị];Ví dụint age;string chuoi = “xin chao”;Đặt tên biếnTên biến phân biệt chữ hoa và chữ thườngtenBien khác với TenBien và TenbienKhông bắt đầu bằng sốKhông chứa các ký tự đặt biệt như ~ ! @ # $ % ^ & * ( )Không đặt tên biến trùng với từ khoástring, int, private  tên không hợp lệQuy tắc camelKiểu biếnKiểu biếnMô tảbool{true, false}. Giá trị mặc định : falsechar[0, 65535]Số nguyên không dấu 16 bit, thường dùng để lưu trữ mã ASCII, Unicode của các ký tự.Giá trị mặc định : 0DateTime[ – 12:00:00 AM, – 11:59:59.9999999 PM]64 bit, lưu trữ các thông tin về ngày tháng và thời gian.Giá trị mặc định : 1/1//0001 – 0:00:00decimalSố thực có dấu 128 bit (96 bit phần nguyên và 32 bit phần thập phân). Giá trị mặc định : 0doubleSố thực có dấu 64 bitGiá trị mặc định : 0intSố nguyên có dấu 32 bit [-231, 231)Giá trị mặc định: 0stringMảng các ký tự thuộc kiểu Char.Giá trị mặc định : Nothing (không phải chuỗi rỗng)Một số vấn đề nâng caoKiểu sơ cấp (đơn trị) & Kiểu đối tượng (đa trị)Tham chiếuKiểu biến do người lập trình tự định nghĩaKhái niệm Cấu trúc dữ liệu của chương trìnhKiểu mảngCác phép toánPhép gán = += -= Phép toán toán học cơ bản + - * / % ^Phép toán so sánh == > = ){ ;}else{ ;}Phát biểu điều kiệnVí dụ 1if (i % 2 == 0) Console.WriteLine("i la so chan");elseConsole.WriteLine("i la so le");Ví dụ 2if ((y % 4 == 0 &&y%100!=0) || y%400==0) Console.WriteLine("y la năm nhuận");elseConsole.WriteLine("y không là năm nhuận");Phát biểu điều kiệnToán tử 3 ngôiCó dạng: ? : Nếu đúng thì thực hiện, ngược lại thực hiệnLà dạng rút gọn của ifelseVí dụstring a = (i % 2 == 0) ? “so chan” : “so le”Phát biểu lựa chọnswitch () { case : ; break; case : ; break; default: ; break;}Phát biểu lựa chọnPhát biểu lựa chọnVí dụswitch (i){ case 1: Console.WriteLine("so 1"); break; case 2: Console.WriteLine("so 2"); break; default: Console.WriteLine("default"); break;}Phát biểu dowhileCú pháp: do { statement; }while(expression);Ý nghĩa:B1:Statement được thực hiện B2:Expression được định trị. Nếu expression là true thì quay lại bước 1 Nếu expression là false thì thoát khỏi vòng lặp. Phát biểu dowhileĐể thoát vòng lặp: dùng breakĐể kết thúc sớm 1 vòng lặp: dùng continueNhận xét:Vòng lặp được chạy ít nhất 1 lầnPhát biểu dowhileVí dụn = 1;i = 1;do{ n *= i; i++;} while (i in ){ ;} Phát biểu foreachVí dụstring str = "abcde";string newCh = "";string ch = "";foreach(char c in str){ ch = char.ToUpper(c).ToString(); newCh += ch;} Console.WriteLine(newCh);Phát biểu lặpdo while: phù hợp với suy nghĩ tự nhiên khi thiết kế thuật toán.while: khắc phục một số trường hợp lỗi của phát biểu do whilefor: cách viết ngắn gọn của phát biểu while, sử dụng khi điều kiện lặp phụ thuộc vào biến lặp và số lần lặp có thể biết trướcforeach: duyệt đối tượng trong tập danh sáchHàmHàm là một khối lệnh thực hiện một công việc hoàn chỉnh (module), được đặt tên và được gọi thực thi nhiều lần tại nhiều vị trí trong chương trình.Hàm còn gọi là chương trình con ,phương thức, hành viHàmHàm có thể được gọi từ chương trình chính (hàm main) hoặc từ 1 hàm khác.Hàm có giá trị trả về hoặc không. Nếu hàm không có giá trị trả về gọi là thủ tục (procedure)Mục đích cuối cùng của hàm là???HàmKhai báo hàm ( , ) { Nội dung hàm; [return ];}Đặt tên hàmTương tự cách đặt tên biếnDùng động từHàmVí dụprivate int TinhGiaiThua(int n){ int giaiThua = 1; for (int i = 1; i 0.Bài toán tính N! bây giờ thành tính N*(N-1)!Hàm đệ quyPhân loại đệ qui*Đệ qui tuyến tính.*Đệ qui nhị phân.*Đệ qui phi tuyến.*Đệ qui hỗ tương.Đệ qui tuyến tínhTrong thân hàm có duy nhất một lời gọi hàm gọi lại chính nómột cách tường minh: TenHam (){ if (điều kiện dừng) { ... //Trả về giá trị hay kết thúc công việc } //Thực hiện một số công việc (nếu có) . . . TenHam (); //Thực hiện một số công việc (nếu có)}Đệ qui tuyến tínhVí dụ: Tính S (n) = 1 + 2 + 3 + L + n- Điều kiện dừng: S(0) = 0.- Qui tắc (công thức) tính: S(n) = S(n-1) + n.long TongS (int n){if(n==0)return 0;return ( TongS(n-1) + n );}Đệ qui nhị phânTrong thân của hàm có hai lời gọi hàm gọi lại chính nó một cách tường minh: TenHam (){ if (điều kiện dừng) { ... //Trả về giá trị hay kết thúc công việc }//Thực hiện một số công việc (nếu có). . .TenHam (); //Giải quyết vấn đề nhỏ hơn//Thực hiện một số công việc (nếu có). . . TenHam (); //Giải quyết vấn đề còn lại//Thực hiện một số công việc (nếu có)}Đệ qui nhị phânVí dụ: Tính số hạng thứ n của dãy Fibonaci được định nghĩa như sau:f1 = f0 =1 ;fn = fn-1 + fn-2 ; Điều kiện dừng: f(0) = f(1) = 1. long Fibonaci (int n){if(n==0 || n==1)return 1;return Fibonaci(n-1) + Fibonaci(n-2);}Đệ qui phi tuyếnTrong thân của hàm có lời gọi hàm gọi lại chính nó được đặt bên trong vòng lặp: TenHam (){ for (int i = 1; i); } }}Đệ qui phi tuyếnVí dụ: Tính số hạng thứ n của dãy {Xn} được định nghĩa như sau:X0 =1 ;Xn = n2X0 + (n-1)2X1 + + 12Xn-1 ; Điều kiện dừng:X(0) = 1. long TinhXn (int n){if(n==0)return 1;long s = 0;for (int i=1; i TenHam2 (); TenHam1 (){//Thực hiện một số công việc (nếu có)TenHam2 ();//Thực hiện một số công việc (nếu có)} TenHam2 (){//Thực hiện một số công việc (nếu có)TenHam1 ();//Thực hiện một số công việc (nếu có)}Đệ qui tương hỗVí dụ: Tính số hạng thứ n của hai dãy {Xn}, {Yn} được định nghĩa như sau:X0 =Y0 =1 ;Xn = Xn-1 + Yn-1; (n>0)Yn = n2Xn-1 + Yn-1; (n>0)- Điều kiện dừng:X(0) = Y(0) = 1.long TinhXn (int n){if(n==0)return 1;return TinhXn(n-1) + TinhYn(n-1);}long TinhYn (int n){if(n==0)return 1;return n*n*TinhXn(n-1) + TinhYn(n-1); }Cơ chế hoạt động của Đệ quiHoạt động theo cơ chế LIFO (LAST IN FIRST OUT)Dùng stack để lưu vết dữ liệu và chỉ thị lệnhCơ chế hoạt động của Đệ quiMinh họa Đệ qui giai thừaVí dụ tính n! với n=3Cơ chế hoạt động của Đệ quiMinh họa Đệ qui chuyển cơ số 10 sang cơ số 2void H10toH2(int n) { if (n <= 0) return; int t = n % 2; H10toH2(n / 2); Console.Write(t); }H10toH2(11);Cơ chế hoạt động của Đệ quiMinh họa Đệ qui Fibonaccilong Fibonaci (int n){if(n==0 || n==1)return 1;return Fibonaci(n-1) + Fibonaci(n-2);}54332212110101011111111Kết quả =8Cơ chế hoạt động của Đệ quiMinh họa Đệ qui Tháp Hà NộiCơ chế hoạt động của Đệ quiMinh họa Đệ qui Tháp Hà NộiKhử đệ quiNhững giải thuật có thể cài đặt được bằng các vòng lặp thay thế cho đệ qui thì nên dùng vòng lặp, vì đệ qui rất tốn bộ nhớ, xử lý chậm.Hãy khử đệ qui tính giai thừaHãy khử đệ qui tính số fibonacciViết hàm và viết chương trìnhVề đối tượng phục vụ :Đối tượng phục vụ của chương trình = người sử dụngĐối tượng phục vụ của hàm = lập trình viênVề cấu trúc (các giai đoạn trong thiết kế) :Chương trình: Nhập dữ liệu từ người sử dụng  Xử lý Xuất kết quả ra màn hìnhHàm: Qui định cú pháp (khai báo) hàmXử lý Trả về giá trị kết quảEND
Tài liệu liên quan