© 2004, HOÀNG MINH SƠN Chương 1 Kỹ thuật lập trình 0101010101010101100001 0101010101010101100001 0101010101010101100001 0101010100101010100101 0101010100101010100101 0101010100101010100101 1010011000110010010010 1010011000110010010010 1010011000110010010010 1100101100100010000010 1100101100100010000010 1100101100100010000010 0101010101010101100001 0101010101010101100001 0101010101010101100001 0101010100101010100101 0101010100101010100101 0101010100101010100101 1010011000110010010010 1010011000110010010010 1010011000110010010010 1100101100100010000010 1100101100100010000010 1100101100100010000010 0101010101010101100001 0101010101010101100001 0101010101010101100001 0101010100101010100101 0101010100101010100101 0101010100101010100101 1010011000110010010010 1010011000110010010010 1010011000110010010010 1100101100100010000010 1100101100100010000010 1100101100100010000010 8/14/2006 y = A*x + B*u; x = C*x + d*u; StateController start() stop() LQGController start() stop() Chương 1: Mở₫ầu 2 © 2004, HOÀNG MINH SƠN Chương 1: Mởđầu Nộidung bài giảng 1.1 Giới thiệunội dung môn học 1.2 Giới thiệu chung về kỹ thuật lập trình 1.3 Phương pháp luận 1.4 Qui trình phát triển phần mềm 1.5 Sơ lược về ngôn ngữ C/C++ 3 © 2004, HOÀNG MINH SƠN Chương 1: Mởđầu 1.1 Nộidung môn học Các kỹ thuậtlập trình cơ bản, thựchiệnminhhoạ trên các ngôn ngữ lập trình C và C++: —Lậptrìnhcócấutrúc(structured programming) —Lậptrìnhhướng ₫ốitượng (object-oriented programming) —Lậptrìnhthờigianthực(real-time programming) —Lậptrìnhtổng quát (generic programming) Tạisaochọn C/C++: — Hai ngôn ngữ lậptrìnhtiêubiểunhất, ₫ủ ₫ể thựchiệncác kỹ thuậtlập trình quan trọng — Hai ngôn ngữ lập trình quan trọng nhất ₫ốivớikỹ sư ₫iện/kỹ sư₫iềukhiển 4 © 2004, HOÀNG MINH SƠN Chương 1: Mởđầu Quan ₫iểmvề môn học Đề cao kiếnthứccơ bản, nềntảng: —Thiênvề tư duy và phương pháp lậptrình —Tạokhả năng dễ thích ứng vớicácứng dụng khác nhau —Tạokhả năng dễ thích ứng với các ngôn ngữ lậptrình khác (Java, Visual Basic, C#, MATLAB…) —Nhấnmạnh tính chuyên nghiệp trong lập trình: hiệu quả + chấtlượng Những nộidung không có trong chương trình: —Lậptrìnhhệ thống (low-level system programming) —Lậptrình₫ồ họa —Lậptrìnhgiaotiếpvớicácthiếtbị ngoại vi ( cổng nốitiếp, song song…) —Lậptrìnhcơ sở dữ liệu —Lậptrìnhthànhphần, lập trình phân tán (mạng, Internet) 5 © 2004, HOÀNG MINH SƠN Chương 1: Mởđầu Phương pháp họctập Cách thứ nhất: Nghe giảng làm thử ₫ọctài liệu thảoluận luyệntập Cách thứ hai: Đọctàiliệu làm thử nghe giảng thảoluận luyệntập Nguyên tắccơ bản: Chủ₫ộng họcthường xuyên! Những ₫iều không nên làm: —Chépnhiềutrênlớp —Họcthuộclòng, họcchay —Mong₫ợinhiềuvàoôntập —Dựadẫm vào các bài tậpmẫutrongsách 6 © 2004, HOÀNG MINH SƠN Chương 1: Mởđầu Công cụ họctập Máy tính PC Môi trường lậptrình: Visual C++ 6.0 (Visual Studio 6.0), Visual C++ .NET, Borland C++ Builder Nền ứng dụng: Win32 Console Application Tài liệuthamkhảo. 7 © 2004, HOÀNG MINH SƠN Chương 1: Mởđầu 1.2 Tổng quan về kỹ thuật lập trình Kỹ thuật lập trình là gì: Kỹ thuật thực thi một giải pháp phần mềm (cấu trúc dữ liệu + giải thuật) dựa trên nền tảng một phương pháp luận (methodology) và một hoặc nhiều ngôn ngữ lập trình phù hợp với yêu cầu ₫ặc thù của ứng dụng. Kỹ thuật lập trình = Tư tưởng thiết kế + Kỹ thuật mã hóa = Cấu trúc dữ liệu + Giả i thuật + Ngôn ngữ lập trình Kỹ thuật lập trình ≠ Phương pháp phân tích & thiết kế (A&D) 8 © 2004, HOÀNG MINH SƠN Chương 1: Mởđầu Thế nào là lập trình? Viết chương trình in ra 100 số nguyên tố ₫ầu tiên! Viết chương trình tính giai thừacủa 100! Lập trình giải bài toán: "Vừa gà Chapter SOME MORE BASICS Programming Fundamentals with C++ Outline Assignment statement Program input using the cin object Formatting the output Using mathematical library functions Type Conversions Octal and hexadecimal number Block statement Programming Fundamentals with C++ Overview In the last chapter, we studied how result are displayed and how numerical data are stored and processed using variables and assignment statements In this chapter, we study some C++’s additional processing and input capabilities Programming Fundamentals with C++ Assignment How we place data items into variables? • Read in values typed at the keyboard by the user • Use an assignment statement Assignment statement examples: length = 25; cMyCar = “Mercedes”; sum = + 7; newtotal = 18.3*amount; slope = (y2 – y1)/(x2 – x1) Programming Fundamentals with C++ Assignment statement Assignment operator (=) are used for assignment a value to a variable and for performing computations Assignment statement has the syntax: variable = expression; Expression is any combination of constants, variables, and function calls that can be evaluated to yield a result Programming Fundamentals with C++ Assignment statement (cont.) The order of events when the computer executes an assignment statement is - Evaluate the expression on the right hand side of the assignment operator - Store the resultant value of the expression to the variable on the left hand side of the assignment operator Note: The equal sign here does not have the same meaning as an equal sign in mathematics Each time a new value is stored in a variable, the old one is overwritten Programming Fundamentals with C++ Assignment Variations C++ includes other arithmetic operators in addition to the equal sign Operator Example Meaning = iNum1 = iNum2 += iNum1 += iNum2 iNum1 = iNum1 + iNum2 -= iNum1 -= iNum2 iNum1 = iNum1 - iNum2 *= iNum1 *= iNum2 iNum1 = iNum1 * iNum2 /= iNum1 /= iNum2 iNum1 = iNum1 / iNum2 %= iNum1 %= iNum2 iNum1 = iNum1 % iNum2 sum += 10 is equivalent to sum = sum + 10 Programming Fundamentals with C++ Increment and decrement operators For the special case in which a variable is either increased or decreased by 1, C++ provides two unary operators: increment operator and decrement operator Operator Description ++ Increase an operand by a value of one -Decrease an operand by a value of one The increment (++) and decrement ( ) unary operators can be used as prefix or postfix operators to increase or decrease value Programming Fundamentals with C++ Increment and decrement operators (cont.) A prefix operator is placed before a variable and returns the value of the operand after the operation is performed A postfix operator is placed after a variable and returns the value of the operand before the operation is performed Prefix and postfix operators have different effects when used in a statement b = ++a; // prefix way will first increase the value of a to 6, and then assign that new value to b It is equivalent to a = a +1; b = a; Programming Fundamentals with C++ b = a++; // postfix way will first assign the value of to b, and then increase the value of a to It is equivalent to b = a; a = a + 1; The decrement operators are used in a similar way b = a; equivalent to a = a -1; b = a; b = a ; equivalent to b = a; a = a -1; Programming Fundamentals with C++ 10 Stream Manipulators (cont’d) • setw() The setw() stands for set width This manipulator is used to specify the minimum number of the character positions on the output field a variable will consume • setprecision() The setprecision() is used to control the number of digits of an output stream display of a floating point value Setprecision(2) means digits of precision to the right of the decimal point Example: cout