intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Giáo trình Kỹ thuật lập trình

Chia sẻ: Dinh AC | Ngày: | Loại File: PDF | Số trang:142

310
lượt xem
130
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Nhằm giúp các bạn có thêm tài liệu tham khảo giúp ích cho quá trình học tập và giảng dạy. Dưới đây là giáo trình Kỹ thuật lập trình trình bày về đại cương kỹ thuật lập trình, mảng và con trỏ, duyệt và đệ quy, ngăn xếp, hàng đợi, đồ thị, sắp xếp và tìm kiếm.

Chủ đề:
Lưu

Nội dung Text: Giáo trình Kỹ thuật lập trình

  1. Gi¸o tr×nh Kü thuËt lËp tr×nh CHƯƠNG I: CÁC KHÁI NIỆM CƠ BẢN 1.1 Giới thiệu chung về MATLAB. MATLAB – phần mềm nổi tiếng của công ty MathWorks, là một ngôn ngữ hiệu năng cao cho tính toán kỹ thuật như được viết trong logo của phần mềm này. Nó tích hợp tính toán, hiện thị và lập trình trong một môi trường dễ sử dụng. Các ứng dụng tiêu biểu của MATLAB bao gồm: − Khả năng tính toán mạnh. − Phát triển thuật toán. − Chứa Simulink là môi trường mạnh để mô phỏng các hệ thống động học tuyến tính và phi tuyến. − Đồ họa khoa học và kỹ thuật − Phát triển ứng dụng với các giao diện đồ họa. − Có kiến trúc mở, ủng hộ việc xây dựng thêm các module tính toán kỹ thuật theo chuẩn công nghiệp. Tên của phần mềm MATLAB bắt nguồn từ thuật ngữ “Matrix Laboratory”. Đầu tiên nó được viết bằng FORTRAN để cung cấp truy nhập dễ dàng tới phần mềm ma trận được phát triển bởi các dự án LINPACK và EISPACK. Sau đó nó được viết bằng ngôn ngữ C trên cơ sở các thư viện nêu trên và phát triển thêm nhiều lĩnh vực của tính toán khoa học và các ứng dụng kỹ thuật. Ngoài MATLAB cơ bản với các khả năng rất phong phú sẽ được đề cập sau, phần mềm MATLAB còn được trang bị thêm các ToolBox – các gói chương trình (thư viện) cho các lĩnh vực ứng dụng rất đa dạng như xử lý tín hiệu, nhận dạng hệ thống, xử lý ảnh, mạng nơ ron, logic mờ, tối ưu hóa, phương trình đạo hàm riêng, sinh tin học,... Đây là các tập hợp mã nguồn viết bằng chính MATLAB dựa theo các thuật toán mới, hữu hiệu mà người dùng có thể chỉnh sửa hoặc bổ sung thêm các hàm mới. 1.1.1 Cài đặt chương trình: Qui trình cài đặt Matlab cũng tương tự như việc cài đặt các chương trình phần mềm khác, chỉ cần theo các hướng dẫn và bổ xung thêm các thông số cho phù hợp..Do chương trình được cấu hình theo Autorun nên khi gắn dĩa CD vào ổ đĩa thì chương trình tự hoạt động, cửa sổ đón mừng hiện lên trong giây lát. Kích vào Next chuyển sang cửa sổ cài đặt kế tiếp. http://www.ebook.edu.vn 1
  2. Gi¸o tr×nh Kü thuËt lËp tr×nh Cửa sổ thứ hai chỉ các thông tin về bản quyền của chương trình bạn nhập mã và Kích next để sang cửa sổ cài đặt kế tiếp. Trong cửa sổ Costumer Information, nếu cần thiết đánh tên họ, công ty. Kích tiếp Next. Trong cửa sổ select Matlab Components, kích xoá những thành phần không cần thiết sử dụng trong chương trình để dành thêm dung lượng trống. Muốn kiểm tra dung lượng của chương trình , kích vào Disk space để quan sát. Sau khi kích Next, màn hình hiện khung thông tin Setup và chương trình bắt đầu cài đặt. http://www.ebook.edu.vn 2
  3. Gi¸o tr×nh Kü thuËt lËp tr×nh Sau khi hoàn thành Setup, màn hình hiện khung thoại Setup complete. Kích Finish để kết thúc qui trình cài đặt. Sau khi kết thúc cài đặt cửa sổ kế tiếp là Internet explorer. Kích Close để về cửa sổ nền windows, biểu tượng tự động gán trong nền windows. 1.1.2 Khởi động và Thoát a) Khởi động MATLAB: Kích vào biểu tượng Matlab trên màn hình Windows hoặc kích: Start/ Programs/ Matlab/ Matlab 6.5, sau đó hiện cửa sổ Matlab và cửa sổ lệnh ( MATLAB Command Widowd ) Cũng như các chương trình chạy trong môi trường windows khác Matlab cũng có những thành phần giao diện của chương trình. • Dòng trên cùng là thanh tiêu đề gồm: + Tận trái là biểu tượng chương trình. Khi kích vào biểu tượng này Matlab hiện menu xổ chứa các lệnh liên quan tới việc xử lý khung cửa sổ chương trình cũng như thoát chương trình. + Kế biểu tượng là tên chương trình cùng với cửa sổ chương trình. Tận cùng là ba biểu tượng có chức năng phong to, thu nhỏ và thoát chương trình. • Dòng thứ hai là thanh trình đơn gồm các menu chính chưa các lệnh liên quan đến việc tạo, xử lý, gán thuộc tính … vào đồ thị. • Dòng thứ ba là thanh công cụ chứa các hộp công cụ chứa các lệnh nhanh. • Phần chiếm gần chọn màn hình là nơi nhập các lệnh . • Cuối cùng là thanh tác vụ hiện thông tin về tình trạng đang xử lý, thực hiện đối tượng. b) Thoát khỏi MATLAB: Từ cửa sổ Matlab command winwods đánh lệnh quit hoặc kích biểu tượng (X) nằm ngay góc phải thanh tiêu đề Matlab. 1.2 Các lệnh menu của MATLAB: a) File Kích vào File hiện menu chứa các lệnh liên quan đến việc tạo mới, quản lý, gán thuộc tính cho đối tượng, đồ thị cũ http://www.ebook.edu.vn 3
  4. Gi¸o tr×nh Kü thuËt lËp tr×nh *New: Hiện menu chứa lệnh để tạo đối tượng mới • Figure: Đây là môi trường đồ hoạ để bạn tự vẽ các đối tượng hoặc để Matlab vẽ các đồ thị theo hàm lệnh bạn nhập từ khung cửa sổ lệnh của MATLAB hoặc hiện đồ thị cũ với lệnh Open từ lệnh của Matlab. • Model : Hiện cửa sổ Simulink nằm bên phải và cửa sổ thư viện nằm bên trái để ban tự chọn mà thiết kế đối tượng. • M-file: Đây là môi trường bạn tạo file, tạo vũng như sửa đổi, gỡ rối các tập tin chương trình như M-file hoặc MEX-file hoặc các đối tượng nào đó để thực hiện cho một nhiện vụ nào đó.. • GUI : Mở cửa sổ thiết kế giao diện * Open : Mở tập tin đồ thị hoặc hình ảnh trong cửa sổ Figure để sử lý. • Trong cửa sổ Matlab Command windows kích: File/ Open • Từ khung thoại, kích chọn tên tập tin cùng thể loại tập tin ( nếu cần thiết ) muốn mở và kích OK. • Save Workspace As : Lưu các nội dung trong cửa sổ lệnh của MATLAB theo workspace. • Nhập các lệnh trong cửa sổ lệnh của MATLAB như bình thường. • Từ menu File, chọn Save Workspace As. Màn hình hiện khung thoại Save Workspace As. • Từ khung thoại, đánh tên tập tin muốn lưu ( nếu cần thiết chọn nguồn chứa với Save in). Kích Save. Nên nhớ là tập tin này được lưu theo dạng *.mat và cũng là tập tin chương trình gốc. Set path: Gán tập tin vào thư mục bất kỳ trong MATLAB. • Từ menu File chọn Set Path. Màn hình hiện cửa sổ Path Browser. Cửa sổ này liệt kê các danh sách các đường dẫn thư mục nằm trong khung cửa bên trái và danh sách tên tập tin nằm bên phải. • Chọn tên đường dẫn thư mục trong khung cửa sổ Path và chọn tên tập tin muốn thay đổi vị trí chứa trong khung cửa sổ hoặc đánh trực tiếp vào khung nhập lệnh Current Directory. • Chọn Save để lưu nhữnh thay đổi. http://www.ebook.edu.vn 4
  5. Gi¸o tr×nh Kü thuËt lËp tr×nh Preferenes: Hiện khung thoại với ba tuỳ chọn để người sử dụng có thể thay đổi tham số cho phù hợp nhiệm vụ. • General: Hiện khung thoại ngay khi kích chọn lệnh Preferences từ menu File của khung cửa sổ lệnh MATLAB. Kích chọn các loại tham số muốn thay đổi hoặc gán thêm và kích OK. • Command Windows Font: Hiện khung danh mục font cùng thuộc tính để người sử dụng thay đổi phông mặc định thành font quên thuộc. • Copy Options : Hiện khung thông tin để người sử dụng tuỳ chọn những thành phần đối tượng muốn sao chép. http://www.ebook.edu.vn 5
  6. Gi¸o tr×nh Kü thuËt lËp tr×nh • Print Setup : Hiện khung thoại Print cùng các chức năng phụ liên quan đến việc in. Exit MATLAB ( Ctrl + Q ) : Thoát khỏi chương trình MATLAB để về lại màn hình nền hệ điều hành windows. b) Edits : Hiện menu con chứa các lệnh kiên quan đến việc xử lý các đối tượng. Undo : Huỷ lệnh đã thực hiện trước đó. Sau khi chọn lệnh Undo để huỷ lệnh, lệnh sẽ đổi thành Redo để người sử dụng khôi phục những gì đã huỷ trươc đó với lệnh Undo. ( Ctrl +X) : Cắt đối tượng trong khung cửa sổ lệnh hiện hành và sai đó dán vào vị trí đã chọn. Đối tượng được cắt có thể là một công thức, một chuỗi ký tự, hàm lệnh…. . • Chọn đối tượng muốn cắt trong khung cửa sổ lệnh MATLAB và ấn Ctrl + C hoặc chon Copy từ menu Edit. Thí dụ công thức. • Chọn vị trí bất kỳ để dán tạmvà ấn Ctrl + V hoặc Paste. Đối tượng sẽ được dán vào vị trí đã chọn . Nên nhớ đây chỉ là phiên bản đã được sao chép và dán. • Chọn vị trí thực sự muốn dán. Kích lênh Cut hoặc ấn Ctrl +X, đối tượng vừa dán lúc trước sẽ tạm biến mất tại vị trí hiện hành. Ấn Ctrl + V để dán. Copy ( Ctrl + C) : Sao chép đối tượng trong khung cửa sổ lệnh MATLAB và sau đó dán vào vị trí đã chọn. Đối tượng được copy có thể là một công thức, một chuỗi ký tự, hàm lệnh …. • Chọn đối tượng cần copy tại cửa sổ lệnh MATLAB và sau đó ấn Ctrl + V hoặc Copy. Thí dụ , chọn cônh thức. • Chọn vị trí cần copy đến và âns Ctrl + V. Paste ( Ctrl + V) : Dán đối tượng đã được Cut hoặc Copy vào vị trí đã chọn. Ngoài ra , bạn còn có thể dùng lệnh Paste của MATLAB để dán các đối tượng khác vào MATLAB. Clear : Xoá đối tượng đã được chọn trong khung cửa sổ MATLAB. Select Att : Chọn toand bộ nội dung trong khung cửa sổ lệnh của MATLAB. Clear Session : Xoá toàn bộ nội dung của cửa sổ lệnh MATLAB sau khi chọn với lệnh Select Att. Đánh dấu chọn hoặc xoá để hiện hay giấu thanh công cụ trong khung cửa sổ lệnh MATLAB. http://www.ebook.edu.vn 6
  7. Gi¸o tr×nh Kü thuËt lËp tr×nh Window : Hiện thông tin về số tập tin đã thực hiện trong khung cửa sổ lệnh MATLAB. 1.3 Các khái niệm cơ bản: 1.3.1 Một số phím chuyên dụng và lệnh thông dụng : - ↑ hoặc Ctrl + p : Gọi lại các lệnh đã thực hiện trước đó. - ↓ hoặc Ctrl +n : Gọi lại lệnh vừa thực hiện trước đó. - → hoặc Ctrl + f : chuyển con trỏ sang bên phải 1 ký tự. - ← hoặc Ctrl + b: chuyển con trỏ sang trái một ký tự. - Dấu (;) để kết thúc một dòng lệnh - ↵ nhảy xuống dòng dưới - Ctrl + A hoặc Home : chuyển con trỏ về đầu dòng. - Ctrl + E hoặc End: Chuyển con trỏ đến cuối dòng. - BackSpace: Xoá ký tự bên trái con trỏ. - Esc: xoá dòng lệnh. - Ctrl + K : Xoá từ vị trí con trỏ đến cuối dòng. - Ctrl + C : Dừng chương trình đang thực hiện. - Clc : lệnh xoá màn hình. - Clf: Lệnh xoá màn hình đồ hoạ. - Input: lệnh nhập dữ liệu vào từ bàn phím. - Demo: lệnh cho phép xem các chương trình mẫu. - Help: lệnh cho phép xem phần trợ giúp. - Ctrl – c: Dừng chương trình khi nó bị rơi vào trạng thái lặp không kết thúc. - Dòng lệnh dài: Nếu dòng lệnh dài quá thì dùng … ↵ để chuyển xuống dòng dưới. 1.3.2 Biến trong MATLAB • Tên: Là một dãy ký tự bao gồm các chữ cái hay các chữ số hoặc một số ký tự đặc biệt dùng để chỉ tên của biến hoặc tên của hàm. Chúng phải được bắt đầu bằng chữ cái sau đó có thể là các chữ số hoặc một vài ký tự đặc biệt. Chiều dài tối đa của tên là 31 ký tự. Bình thường Matlab có sự phân biệt các biến tạo bởi chữ cái thường và chữ cái hoa. Các lệnh của Matlab nói chung thường sử dụng chữ cái thường. Việc phân biệt đó có thể được bỏ qua nếu chúng ta thực hiện lệnh : >> casensen off • Một số lệnh với biến: - clear: lệnh xoá tất cả các biến đã được định nghĩa trước trong chương trình . - clear biến1, biến 2... : xoá các biến được liệt kê trong câu lệnh. - Who: hiển thị các biến đã được định nghĩa trong chương trình. http://www.ebook.edu.vn 7
  8. Gi¸o tr×nh Kü thuËt lËp tr×nh - Whos: hiển thị các biến đã được định nghĩa trong chương trình cùng với các thông số về biến. - Size ( tên biến đã được định nghĩa ): cho biét kích cỡ của biến dưới dạng ma trận với phần tử thứ nhất là số hàng của ma trận, phần tử thứ 2 là số cột của ma trận. - Save: Lưu giữ các biến vào một File có tên là Matlab. mat. - Load: Tải các biến đã được lưu dữ trong một File đưa vào vùng làm việc. • Một số biến đã được định nghĩa trước: - ans: tự động gán tên này cho kết quả của một phép tính mà ta không đặt tên. VD >> [ 1 2] ↵ ans = 2 - pi - realmax: đưa ra giá trị của số lớn nhất mà máy tính có thể tính toán được. - realmin: đưa ra giá trị của số nhỏ nhất mà máy tính có thể tính toán được. • Biến toàn cục (global variables) Matlab cho phép sử dụng cùng một biến cho các hàm hoặc giữa các hàm và chương trình chính của Matlab, điều này được thực hiện thông qua việc khai báo biến toàn cục: Global tên1 tên2 tên3 …. (Tên các hàm cách nhau bằng khoảng trống, không sử dụng dấu phẩy). Việc khai báo biến toàn cục phải được thực hiện ở chương trình chính hoặc ở file lệnh (script) hoặc ở file hàm ( function) có sử dụng các biến. Biến toàn cục có tác dụng cho đến khi kết thúc quá trình tính toán hoặc khi toàn bộ workspace được xoá. Không được đưa tên biến toàn cục vào danh sách các đối số của hàm. Khi sử dụng biến toàn cục các lệnh sau tỏ ra rất cần thiết: • Clear glolal : Lệnh này cho phép loại bỏ các biến toàn cục. • Isglobal(Tên biến) : Lệnh này cho phép kiểm tra xem một biến nào đó có phải là biến toàn cục hay không. Nếu là biến toàn cục thì giá trị trả về sẽ là 1. 1.3.3 Các phép toán: Biểu thức số học: Matlab có thể thực hiện tất cả các biểu thức toán học thông qua các toán tử sau: + phép cộng. - Phép trừ. * phép nhân. / Phép chia phải \ phép chia trái ^ phép luỹ thừa. = để gán một giá trị nào đó cho một biến. http://www.ebook.edu.vn 8
  9. Gi¸o tr×nh Kü thuËt lËp tr×nh • Thứ tự ưu tiên trong phép toán số học: ngoặc đơn. luỹ thừa nhân, chia. Cộng ,trừ. 1.3.4 Một số hàm toán học: Mục này chỉ giới thiệu một số hàm đơn giản và thướng gặp trong khi lập trình: • sin: hàm sin • cos: hàm cos • tan: hàm tang • asin: hàm arcsin • acos: hàm arccos • atan: hàm arctang • sinh: hàm sin hyperbolic • cosh: hàm cos hyperbolic • tanh: hàm tang hyperbolic • asinh: hàm arcsin hyperbolic • acosh: hàm arccos hyperbolic • atanh: hàm arctang hyperbolic • abs: Lấy giá trị tuyệt đối hoặc độ lớn của số phức • round: làm tròn đến số nguyên gần nhất • fix: làm tròn hướng về không • floor: làm tròn hướng về - ∞ • ceil : làm tròn hướng về + ∞ • rem: phần dư sau khi chia • gcd: ước số trung lớn nhất • lcm: bội số trung nhỏ nhất • exp: luỹ thừa e • log: logarit cơ số e • log10: logarit cơ số 10 Định dạng số: Các phép tính trong Matlab được thực hiện với độ chính xác cao ta có thể định http://www.ebook.edu.vn 9
  10. Gi¸o tr×nh Kü thuËt lËp tr×nh dạng cho các số xuất ra màn hình tuỳ theo yêu cầu cụ thể: Ta lấy ví dụ với số 4/3 • format short ( đây là chế độ mặc định ): a = 1.3333 • format short e a = 1.3333e + 000 • format long a = 1.33333333333333 • format long e a = 1.33333333333333e + 000 • format bank a = 1.33 • format hex a = 3ff5555555555555 1.3.5 Các phép toán quan hệ và phép toán logic a) Các phép toán quan hệ bao gồm: - Nhỏ hơn: < - Nhỏ hơn hoặc bằng: - Lớn hơn hoặc bằng: >= - Bằng: == - Không bằng ( khác): ~= Biểu thức có các toán tử quan hệ nhận gia trị đúng là (true) hoặc sai (false). Trong Matlab, biểu thức đúng sẽ có giá trị là 1, biểu thức sai có gia trị là 0. Ví dụ1: >>12.2>12 ans = 1 >>1~=1 ans = 0 >> A=[ 1:3;4:6;7:9] A =1 2 3 4 5 6 7 8 9 >> B=[1:3;2:4;10:12] B=1 2 3 2 3 4 10 11 12 >>A==B http://www.ebook.edu.vn 10
  11. Gi¸o tr×nh Kü thuËt lËp tr×nh ans = 1 1 1 0 0 0 0 0 0 Ví dụ 2: Cho một quả cầu mặng có khối lượng là m = 2kg được buộc vào một sợi dây có chiều dài l = 1.5m. Một người nắm vào đầu dâyvà quay tròn quả cầu theo phương thẳng đứng.Vận tốc dài của quả cầu ở vị trí cao nhất là v =6m/s. lực kéo T trên sợi dây thay đổi theo góc nghiêng của dây với phương nằm ngang xác định theo công thức sau: mv 2 T= + mg (2 − 3 sin θ ) l Cho biết khi lực kéo T> 145N thì sơi dây bị đứt . Hãy xác định những vị trí dây bị đứt. Chương trình như sau: function y = tinhluc(theta,T) m=2;l=1.5;Tmax=145;v=6;g=9.8; v theta=0:10:360; rad=pi*theta/180; T=m*(v^2/l+g*(2-3*sin(rad))); bang=[theta;T>Tmax] plot(theta,T); θ grid on >>Tinhluc bang = Columns 1 through 12 0 10 20 30 40 50 60 70 80 90 100 110 0 0 0 0 0 0 0 0 0 0 0 0 Columns 13 through 24 120 130 140 150 160 170 180 190 200 210 220 230 0 0 0 0 0 0 0 0 0 0 0 0 Columns 25 through 36 240 250 260 270 280 290 300 310 320 330 340 350 0 0 1 1 1 0 0 0 0 0 0 0 Column 37 360 0 Từ kết quả trên ta thấy tại các vị trí ứng với các góc 2600, , 2700, , 2800, thì biểu thức logic T>Tmax có giá trị là 1, tức tại đó dây có thể sẽ bị đứt. http://www.ebook.edu.vn 11
  12. Gi¸o tr×nh Kü thuËt lËp tr×nh b) Các phép toán logic Các phép toán logic và, hoặc, đảo được thực hiện bởi các toán tử sau: - Phép và( and): Ký hiệu là & VD: phép & 2 ma trận cùng cỡ A, B là một ma trận có các phần tử bằng 1 nếu các phần tử tương ứng của cả 2 ma trận đầu đều khác 0 và bằng 0 nếu 1 trong 2 phần tử tương ứng của 2 ma trận bằng 0. >>A=[1 2 7; 0 4 9;1 3 5]; >> B=[0 2 4; 2 4 6; 3 0 7] >> C=A&B C= 0 1 1 0 1 1 1 0 1 - Phép hoặc (or) : Ký hiệulà | VD : phép or 2 ma trận cùng cỡ A,B là một ma trận có các phần tử bằng 0 nếu các phần tử tương ứng của cả 2 ma trận đầu đều bằng 0 và bằng 1 nếu 1 trong 2 phần tử tương ứng của 2 ma trận khác 0. >>A=[0 2 7; 0 4 9;1 3 0]; >> B=[0 2 4; 2 4 6; 3 0 0]; >> C=A | B C= 0 1 1 1 1 1 1 1 0 - Phép đảo( not): Ký hiệu là ~ Ví Dụ : phép đảo của một ma trận là một ma trận có cùng cỡ với các phần tử có giá trị bằng 1 nếu các phần tử của ma trận đầu có giá trị bằng 0 và bằng 0 nếu các phần tử của ma trận đầu có giá trị khác 0. >>A=[0 2 7; 0 4 9;1 3 0] >> B=~A B =1 0 0 1 0 0 0 0 1 1.3.6 số phức và các phép toán về số phức. Matlab chấp nhận số phức biểu thị bởi hàm đặc biệt i và j, cả hai là toán tử và các hàm. a. Biểu diễn số phức: Tên = Phần thực + phần ảo i hoặc Tên = Phần thực + phần ảo j http://www.ebook.edu.vn 12
  13. Gi¸o tr×nh Kü thuËt lËp tr×nh Vidụ: >> a = 3 +4i ↵ b. Các phép toán đối với số phức: • cộng, trừ, nhân số phức: C1= a1+b1i ; C2=a2+b2i Cộng : c1+c2 Trừ : c1 - c2 Nhân: c1*c2 Chia: c1/c2 • Các hàm đặc biệt với số phức: real(x) : tìm phần thực của số phức x. imag(x): tìm phần ảo của số phức x. conj(x): tìm số phức liên hợp của số phức x. abs(x): Tìm giá trị tuyệt đối của số phức x ( độ lớn ) angle(x): góc tạo bởi giữa trục thực và ảo. Ví dụ: >> a =3.0000 + 4.0000i a = 3.0000 + 4.0000i >> thuc=real(a); >> ao=imag(a); >> lienhop=conj(a); >> dolon=abs(a); >> goc =angle(a); 1.3.7 Sử dụng lệnh trực tiếp với Matlab • Ví dụ 1: Giải phương trình bậc hai ax2 +bx +c = 0 Ta biết các nghiệm của phương trình này có dạng: − b ± b 2 − 4ac x = 2a Vì Matlab là một chương trình tính toán số nên chúng ta phải xác định các giá trị a, b, c. Dấu = được sử dụng để gán giá trị của a, b, c như sau ( gõ phím Enter ở cuối mỗi hàng) >>a = 2 a= 2 >>b = 5; >>c = -3; ⇒ Dấu (;) ở cuối dòng thì Matlab sẽ không hiển thị lại giá trị vừa nhập. >> x1= (-b + sqrt(b^2- 4*a*c))/(2*a) http://www.ebook.edu.vn 13
  14. Gi¸o tr×nh Kü thuËt lËp tr×nh x1 = 0.5000 >> x2= (-b - sqrt(b^2- 4*a*c))/(2*a) x2 = -3 • Ví dụ 2: Tính giá trị của đa thức. >>x=3; >> a = x^3 -2*x^2 - 6; >>b = x^2 + 5*x -7; >> w = a/b w = 0.1765 1.3.8 Sử dụng các lệnh từ các file lệnh: Những lệnh của Matlab có thể được đưa vào một file. Sau đó bạn sẽ hướng dẫn Matlab làm việc với các lệnh đó. Bây giờ, với ví dụ 1, chúng ta sẽ đưa toàn bộ các lệnh trên vào một file lấy tên là vidu.m. Tên của file phải được bắt đầu bằng một ký tự và phần mở rộng là .m. Các bước như sau: Bước 1: File / New/ M-file, Môi trường soạn thảo Editor / Debugger sẽ xuất hiện Bước 2: Trên màn hình soạn thảo, ta gõ các lệnh của Matlab. a = 2; b = 5; c=-3; x1= (-b + sqrt(b^2- 4*a*c))/(2*a) x2= (-b - sqrt(b^2- 4*a*c))/(2*a) Bước 3: Ghi lại nội dung tập tin với tên vidu.m rồi thoát khỏi môi trường soạn thảo để trở về cửa sổ lệnh ( Matlab Command window. Bước 4: Tại cửa sổ lệnh ta gõ tên tập tin. >>vidu.m ↵ • Các file *.m có 2 loại: - Script file: là một chương trình con không có giá trị trả về. - Function file: là một chương trình con có giá trị trả về. 1.3.9 Dòng nhắc gán giá trị các biến: Để thay đổi các giá trị a,b,c ta phải soạn thảo lại file vidu.m rồi chạy lại. Ta sửa lại chương trình để có dòng nhắc nhập a,.b,c với các lần chạy chương trình khác nhau. Bước 1: File / New/ M-file, Môi trường soạn thảo Editor / Debugger sẽ xuất hiện Bước 2: a=input('nhap a= '); http://www.ebook.edu.vn 14
  15. Gi¸o tr×nh Kü thuËt lËp tr×nh b=input('nhap b= '); c=input('nhap c= '); x1= (-b + sqrt(b^2- 4*a*c))/(2*a) x2= (-b - sqrt(b^2- 4*a*c))/(2*a) Bước 3: Ghi lại nội dung tập tin với tên vidu.m. Khi chạy chương trình ta thu được kết quả như sau: Bước 4: Tại cửa sổ lệnh ta gõ tên tập tin. >>vidu ↵ nhap vao a= 1 nhap vao b= -2 nhap vao c= 5 x1 = 1.0000 + 2.0000i x2 = 1.0000 – 2.0000i Hai nghiệm ứng với các gia trị a,b,c vừa nhập vào và là nghiệm ảo. VD về Script file: Giải bài tập mạch: cho mạch điện như hình vẽ R L C u Hãy tính dòng trong mạch và điện áp trên từng phần tử . Hãy vào cửa sổ soạn thảo và trong cửa sổ này ta viết chương trình như sau: R=input( 'nhap gia tri cho R = ') C=input( 'nhap gia tri cho C = ') L=input( 'nhap gia tri cho L = ') U=input( 'nhap gia tri cho U = ') ZL=2*50*pi*L*i ZC=1/(2*50*pi*C*i) Z=R+ZL+ZC i= U/Z UR=i*R UL=i*ZL UC=i*ZC Sau khi viết xong chương trình ta kích vào biểu tượng save trong cửa sổ soạn thảo và tên là vd1. Muốn chạy ta trở lại cửa sổ MATLAB command Window và từ dấu nhắc lệnh: http://www.ebook.edu.vn 15
  16. Gi¸o tr×nh Kü thuËt lËp tr×nh >> vd1 nhap gia tri cho R = 1000 R= 1000 nhap gia tri cho C = 0.1 C = 0.1000 nhap gia tri cho L = 0.2 L = 0.2000 nhap gia tri cho U = 220 U = 220 ZL = 0 +62.8319i ZC = 0 - 0.0318i Z = 1.0000e+003 +6.2800e+001i i = 0.2191 - 0.0138i UR = 2.1914e+002 -1.3762e+001i UL = 0.8647 +13.7687i UC = -0.0004 - 0.0070i 1.3.10 Cách tạo một hàm: Mỗi một file hàm của Matlab ( M - file) đều được khai báo như sau: Function [ Tên kết quả] = tên hàm (danh sách các biến). Phần thân của chương trình trong hàm là các lệnh của Matlab thực hiện việc tính toán giá trị của đại lượng được nêu trong phần tên kết quả theo các biến được nêu trong phần danh sách biến. Các biến chỉ có tác dụng nội trong hàm vừa được khai báo Tên của các biến dược cách nhau bằnh dấu phẩy (,). Ví dụ1: Thành lập hàm đổi từ độ sang radian: function rad = change(do) rad = do*pi/180; % doi do sang radian Trong Matlab các dòng ghi chú sau dấu % không có tác dụng thực thi, chúng đơn giản là những dòng nhắc để người đọc chương trình dễ hiểu mà thôi. File.m thường lấy tên là tên của hàm, ta đặt tên file hàm vừa lập là change.m. Nếu muốn đổi 450 sang radian, chỉ cần gõ: >>rad = change(45) rad = 0.7854 Ví du 2: Tạo hàm giải phương trình bậc hai, tên tập tin được đặt là bachai.m. function [x1,x2] = bachai(a,b,c) delta = b^2-4*a*c; x1 = (-b + sqrt(delta))/(2*a); http://www.ebook.edu.vn 16
  17. Gi¸o tr×nh Kü thuËt lËp tr×nh x2 = (-b - sqrt(delta))/(2*a); >>[x1,x2]=bachai1(4,6,-7) x1 = 0.77707 x2 = -2.2707 1.3.11 Vẽ các hàm Khi muốn vẽ một hàm nào đó, phải xác định hàm đó trong một file.m sau đó sử dụng lệnh : Fplot(‘tên hàm’,[khoang vẽ]) VD:vẽ hàm y = 4x2+6x-7 trong đoạn [-6, 6], ta lập file bachai1.m. function y = bachai1(x) a = 4;b = 6; c = -7; y =a*x^2 + b*x + c; >>fplot(‘bachai1’, [-6,6]) Hình 3.4. Kết quả của lệnh fplot(‘bachai1’, [-6,6]) 1.3.12 Lưu và lấy dữ liệu: Ta có thể có thể tạo lập một file dữ liệu, sau đó khi cần dùng thì lấy ra. Ví dụ tạo lập một 1 1 .1 1 .2 ma trận A= 2 2 .1 2 .2 3 3 .2 3 .2 Sau đó ta lưu ma trận vào một file có tên là dulieu1. >>A = [1 1.1 1.2;2 2.1 2.2;3 3.2 3.2] A = 1.0000 1.1000 1.2000 2.0000 2.1000 2.2000 3.0000 3.2000 3.2000 >>save dulieu1 Như vậy, ta đã có một file dữ liệu (file này nằm trong thư mục work của Matlab). Khi cần sử dụng file dữ liệu này, ta lấy như sau: >>load dưlieu1 Sau lệnh load, ta có thể lấy dữ liệu để sử dụng: >>A A= 1.0000 1.1000 1.2000 2.0000 2.1000 2.2000 3.0000 3.2000 3.2000 http://www.ebook.edu.vn 17
  18. Gi¸o tr×nh Kü thuËt lËp tr×nh 1.3.13 Cấu trúc câu lệnh điều kiện và lệnh lặp: a. Lệnh điều kiện • Lệnh if đơn: Cú pháp: if Nhóm lệnh; end Nếu biểu thức logic đúng nhóm lệnh sẽ được thực hiện. Nếu biểu thức logic sai thì chương trình chuyển đến lệnh sau end. VD: function y=f(a,b,c) if a> ht(2,4,2) hinh thang nguoc ans = 6 • Cấu trúc lệnh if lồng nhau: Cú pháp: if Nhóm lệnh 1; if Nhóm lệnh 2; end Nhóm lệnh 3; end Nhóm lệnh 4; Nếu biểu thức logic 1 đúng thì - Thực hiện nhóm lệnh 1. - Kiểm tra biểu thức logic 2. - Nếu đúng thực hiện nhóm lệnh 2 - Nếu sai bỏ qua nhóm lệnh 2 - Thực hiện nhóm lệnh 3. Nếu biểu thức logic 1 sai thì - Thực hiện nhóm lệnh 4. • Lệnh else: Cú pháp: if Nhóm lệnh A; http://www.ebook.edu.vn 18
  19. Gi¸o tr×nh Kü thuËt lËp tr×nh else Nhóm lệnh B; end Nhóm lệnh A sẽ được thực hiện nếu biểu thức logic đúng. Nếu không nhóm lệnh B sẽ được thực hiện. • Lệnh elseif Cú pháp: if Nhóm lệnh A; elseif< BT logic 2> Nhóm lệnh B; elseif< BT logic 3> Nhóm lệnh C; ...... end Nếu BT logic 1 đúng nhóm lệnh A sẽ được thực hiện. Nếu sai kiểm tra Btlogic 2, nếu đúng thực hiện nhóm lệnh B. Nếu sai kiểm tra BT logic ,nếu đúng thực hiện nhóm lệnh Cũ. Nếu không có biểu thức logic nào đúng thì không có lệnh nào trong cấu trúc trên được thực hiện. • Kết hợp cấu trúc elseif và else Cú pháp: if Nhóm lệnh A; elseif< BT logic 2> Nhóm lệnh B; elseif< BT logic 3> Nhóm lệnh C; ...... else Nhóm lệnh n; end Nếu BT logic 1 đúng nhóm lệnh A sẽ được thực hiện. Nếu sai kiểm tra Btlogic 2, nếu đúng thực hiện nhóm lệnh B. Nếu sai kiểm tra BT logic3, nếu đúng thực hiện nhóm lệnh C. Nếu không có biểu thức logic nào đúng thì nhóm lệnh n được thực hiện. a=input(' vao a=') b=input(' vao b=') c=input(' vao c=') d=b^2-4*a*c if d < 0 disp(' pt vo nghiem') http://www.ebook.edu.vn 19
  20. Gi¸o tr×nh Kü thuËt lËp tr×nh elseif d==0 disp (' pt co nghiem kep') x12=-b/2*a else disp (' pt co 2 nghiem phan biet') x1=(-b+sqrt(d))/2*a x2=(-b-sqrt(d))/2*a end • câu điều kiện và lệnh Break cú pháp: if< biểu thức logic>,break, end thoát khỏi vòng lặp nếu điều kiện logic đúng. Ngược lại sẽ thực hiện lệnh tiếp theo trong vòng lặp. Chú ý: lệnh disp(‘ chuỗi ký tự ’) dùng để hiện chuỗi ký tự ra màn hình. chúng ta cũng có thể dùng lệnh SPRINTF hiển thị thông tin lên màn hình. Cú pháp: s = sprintf(‘ts’,ds) trong đó s: biến chứa chuỗi số hiển thị trên màn hình. ts: các tham số định dạng. ds: danh sách các đối số. Tham số định dạng thuộc 1 trong 2 kiểu sau: (1) Chuỗi ký tự: chuỗi này sẽ được hiển thị lên màn hình giống hệt như được viết trong câu lệnh. (2) Chuỗi các tham số định dạng: các chuỗi này sẽ không được hiển thị lên màn hình, nhưng tác dụng điều khiển việc chuyển đổi và cách hiển thị các đối số được đưa ra trong danh sách các đối số. %d: đối số là số nguyên được viết dưới dạng thập phân. s = sprintf(‘Đây là số: %d’,-24) s = Đây là số: -24 %c: đối số là 1 ký tự riêng đặc biệt. s = sprintf(‘Đây là chữ: %c’,’M’) s = Đây là chữ: M %s: đối số là chuỗi ký tự. s = sprintf(‘Đây là chuỗi: %s’, ‘Matlab’) s = Đây là chuỗi: Matlab ví dụ: cần hiện thông số cất trong biến s ra màn hình: http://www.ebook.edu.vn 20
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2