Xem mẫu

  1. Chương 4. CÁC LỆNH ĐIỀU KHIỂN TRONG MATLAB 4.1. Các lệnh rẽ nhánh: if ... end, switch ... end 4.1.1. Lệnh if … end Nhiều khi chúng ta cần những câu lệnh được thực hiện theo một điều kiện nào đó. Trong ngôn ngữ lập trình, logic này được cung cấp bởi cấu trúc if … end. Cú pháp của cấu trúc này như sau: If < biểu thức điều kiện> khối các lệnh... end Khối các lệnh giữa hai trạng thái if và end được thực hiện khi tất biểu thức điều kiện là đúng. Trong trường hợp điều kiện bao gồm các điều kiện con, thì tất cả các điều kiện con được tính và trả về một trạng thái logic của điều kiện. Ví dụ: apple = input('nhap vao so tao:') cost = apple*25; if apple > 5 cost = (1-20/100)*cost; end Trong trường hợp có hai điều kiện thay đổi, cấu trúc if-else-end là: if Biểu thức điều kiện Khối các lệnh được thực hiện nếu điều kiện là đúng else Khối các lệnh được thực hiện nếu điều kiện là sai end Khi có ba hoặc nhiều điều kiện thay đổi, cấu trúc của nó sẽ là: if Biểu thức điều kiện 1 Khối các lệnh được thực hiện nếu điều kiện 1 là đúng elseif Biểu thức điều kiện 2 Khối các lệnh được thực hiện nếu điều kiện 2 là đúng elseif Biểu thức điều kiện 3 Khối các lệnh được thực hiện nếu điều kiện 3 là đúng elseif Biểu thức điều kiện 4 31
  2. . . . else Khối các lệnh được thực hiện nếu không có điều kiện nào đúng. End Trong mẫu dạng này thì khi biểu thức điều kiện đầu tiên đúng thì các câu lệnh sau không được kiểm tra nữa, các cấu trúc if-else-end còn lại được bỏ qua. Hơn nữa câu lệnh else ở cuối có thể không cần cho vào. Ví dụ 1: Giải phương trình bậc nhất dạng tổng quát sau: ax + b = 0 Nhận xét: Khi a ≠ 0 thì phương trình có nghiệm x = -b/a Khi a = 0 thì xét hệ số b Nếu b ≠ 0: phương trình vô nghiệm b = 0: phương trình có vô số nghiệm Từ đó ta xây dựng chương trình matlab như sau: a=input('nhap a='); b=input('nhap b='); if a~=0 x=-b/a; fprintf('nghiem so x=%9.5g\n',x); else if b~=0 disp('ptvn') else disp('ptvsn') end end Tương tự ta xét ví dụ 2: Giải phương trình bậc 2 có dạng tổng quát sau: ax2 + bx + c = 0 (a ≠ 0). Lập luận và đưa tới chương trình sau: disp('giai phuong trinh bac hai') a=input('nhap a='); b=input('nhap b='); c=input('nhap c='); delta=b^2-4*a*c; d=delta; if d
  3. disp('phuong trinh co hai nghiem phuc') x1=(-b-j*sqrt(d))/(2*a); x2=(-b+j*sqrt(d))/(2*a); fprintf('nghiem so x1=%9.5g\n',x1); fprintf('nghiem so x2=%9.5g\n',x2); else if d==0 disp('phuong trinh co hai kep') x1=-b/(2*a); x2=x1; fprintf('nghiem kep x1=x2=%9.5g\n',x1); else x1=(-b-sqrt(d))/(2*a); x2=(-b+sqrt(d))/(2*a); fprintf('nghiem so x1=%9.5g\n',x1); fprintf('nghiem so x2=%9.5g\n',x2); end end 4.1.2. Lệnh switch ... end Khi một chuỗi các lệnh đánh giá dựa trên một biểu thức thử hoặc biểu thức điều kiện với nhiều giá trị thử khác nhau, người ta thường dùng cấu trúc switch-end. Cấu trúc switch-end có dạng như sau: switch biểu thức điều kiện case giá trị thử 1 khối lệnh 1 case { giá trị thử 2, giá trị thử 3, giá trị thử 4} khối lệnh 2 otherwise khối lệnh 3 end Ở đây biểu thức điều kiện phải là dạng số hoặc dạng chuỗi, nếu biểu thức điều kiện là dạng số thì lệnh case sẽ thử xem giá trị của biểu thức đó có bằng giá trị thử i hay không. Nếu biểu thức điều kiện là một chuỗi thì lệnh case sẽ so sánh chuỗi đó với giá trị thử i. Trong ví dụ trước, biểu thức điều kiện được đem so sánh với giá trị thử 1, nếu chúng bằng nhau thì khối lệnh đầu tiện được thực hiện, mà các khối lệnh tiếp theo cho đến trước trạng thái end được bỏ qua, nếu chúng không bằng nhau thì điều kiện tiếp tục được đem so sánh với giá trị thử 2, giá trị thử 3, giá trị thử 4, nếu một trong các giá trị này bằng biểu thức điều kiện thì khối lệnh 2 được thực hiện. Nếu tất cả các lệnh so sánh của case đều không 33
  4. đúng thì khối lệnh 3 được thực hiện. Chú ý rằng trong cấu trúc switch-end có ít nhất một nhóm lệnh phải được thực hiện. Sau đây là một ví dụ về cấu trúc switch-end. Ví dụ: Bài toán phân loại học sinh: điểm 9-10 xếp loại giỏi, điểm 7-8 xếp loại khá, điểm 5-6 xếp loại trung bình; điểm 1,2,3,4 xếp loại yếu; nếu điểm vào không phải số nguyên nằm giữa 1 và 10 thì thông báo điểm không hợp lệ. n = input ('nhap diem: '); disp('phan loai:'); switch n case {0,1,2,3,4} disp('loai yeu'); case {5,6} disp('loai trung binh'); case {7,8} disp('loai kha'); case {9,10} disp('loai gioi'); otherwise disp('diem khong hop le'); end Nhận xét: Cấu trúc IF…END chỉ hữu ích trong trường hợp chỉ có một vài lựa chọn. Còn khi có một số lượng lớn các lựa chọn khả dĩ, thông thường ta sử dụng cấu trúc SWITCH …END để thay thế. 4.2. Các lệnh lặp: for ... end, while ... end 4.2.1. Lệnh lặp for … end MATLAB có phiên bản riêng của nó về vòng lặp "FOR" tìm thấy trong các ngôn ngữ máy tính. Nó cho phép một câu lệnh, một nhóm lệnh, được lặp lại một số lần cố định xác định trước. Cú pháp: for chỉ số = biểu thức nhóm lệnh A; end Diễn đạt : Nếu thỏa điều kiện thì sẽ thực hiện lệnh của vòng lặp. Đến khi không thỏa điều kiện thì sẽ thoát ra khỏi vòng lặp. Qui tắc thực hiện: - Chỉ số của vòng lặp phải là biến. - Nếu ma trận biểu thức là rổng thì không thực hiện vòng lặp. 34
  5. - Nếu biểu thức là một đại lượng vô hướng vòng lặp thực hiện 1 lần và chỉ số nhận giá trị của đại lượng vô hướng. - Nếu biểu thức là một vector hàng, số lần lặp bằng số phần tử trong vector. Sau mỗi lần lặp chỉ số nhận giá trị tiếp theo của vector. - Nếu biểu thức là một ma trận thì số vòng lặp bằng số cột của ma trận, sau mỗi vòng lặp thì chỉ số sẽ nhận giá trị cột tiếp theo của ma trận. - Khi kết thúc vòng lặp chỉ số nhận giá trị cuối cùng. - Có thể dùng toán tử: Trong vòng lặp for i = chỉ số đầu : gia số : chỉ số cuối. Và số vòng lặp được tính = (chỉ số cuối – chỉ số đầu)/ số gia + 1. Ví dụ xét chương trình sau: n=input('nhap vao n= ') for k=n s=1; s=s+k end Chạy chương trình: nhap vao n= 2 n= 2 s= 3 nhap vao n= [3 4 5] n= 3 4 5 s= 4 s= 5 s= 6 nhap vao n= [1 2 3,4 5 6] n= 1 2 3 4 5 6 s= 2 s= 3 s= 4 s= 5 s= 35
  6. 6 s= 7 Một điểm quan trong là: mỗi vòng lặp for phải gắn với từ khóa end. Nếu đơn giản vào lệnh for i = 1:n, x(i) = 0 thì hệ thống sẽ kiên nhẫn chờ nhập các lệnh còn lại trong thân vòng lặp. Không có gì xảy ra đánh vào end. Ví dụ :Thực hiện hàm .m file tính tổng S = 1 + 2 + 3 + …+ n disp('tinh tong'); n=input('nhap so hang can tinh tong n='); s=0; for i=1:n s=s+i; end fprintf('tong so s=%2.5g\n',s); 4.2.2. Lệnh lặp while … end MATLAB cũng có phiên bản về vòng lặp "WHILE", cho phép một lệnh hoặc nhóm lệnh lặp lại với số lần không xác định, dưới điều khiển của một điều kiện logic. Được sử dụng khi số lần lặp không được biết trước. Quá trình lặp sẽ chấm dứt khi một điều kiện xác định nào đó được thỏa. Cấu trúc của vòng lặp while như sau: while expression statements end Trong đó: expression : Điều kiện của vòng lặp statements : Lệnh hoặc nhóm lệnh thực thi của vòng lặp. Diễn đạt: Nếu thỏa điều kiện thì sẽ thực hiện lệnh của vòng lặp. Hàm while được sử dụng khi chưa biết số lần lặp, trong khi hàm for được sử dụng khi đã biết rõ số lần lặp. Ví dụ: tính n! n! = 1.2.3.4.5…….n Chương trình: disp('tinh giai thua'); 36
  7. n=input('nhap so hang can tinh giai thua n='); GT=1; i=1; while i
  8. 6 khong phai la so nguyen to! !! 7 la so nguyen to! Lệnh chuyển đến cuối m-file Nếu break được sử dụng ngoài vòng for, while trong phạm vi một script hay function của Matlab, khi ấy script file và function sẽ bị ngừng tại vị trí của break. Ví dụ: Viết chương trình nhập vào một số n (n>=0) với các trường hợp sau: a) Nếu n < 0 thì in thông báo bạn nhập sai b) Nếu n > 0 và lẽ thì tính tổng s1=1+3+5+...+n, n là số lẽ. c) Nếu n > 0 và chẵn thì s2=2+4+6+...+n, n chẵn. d) Nếu n = 0 dừng chương trình lại. Giải: n=input('nhap n= '); % nhap so n du=rem(n,2); % kiem tra so n la chan hay le % neu n le =1, n chan du = 0 if n0) & (du==1) % neu n>0 và le i=1; % gan i=1; s1=1; %gan tong s1=1 while i0) & (du==0) i=0; s2=0; while i
  9. nhap n= 5 s1 = 9 » vidu nhap n= 4 s2 = 6 » vidu nhap n= -6 Ban nhap sai » vidu nhap n= 0 4.4. Hàm tạm dừng Lệnh PAUSE a) Công dụng: Dừng chương trình theo ý muốn. b) Cú pháp: pause on pause off pause (n) c) Giải thích: pause on: dừng chương trình, và chờ nhấn 1 phím bất kỳ (trừ các phím điều khiển) chương trình thực hiện tiếp.bre pause off: tắt chức năng pause. pause (n): dừng chương trình tại n giây. d) Ví dụ: for n = 1 : 3; disp(‘Press any key to continue…’) pause end Chạy chương trình: Press any key to continue… Press any key to continue… Press any key to continue… 39
  10. Câu hỏi ôn tập chương 4 Câu 1: Trình bày nội dung của lệnh if … end trong trường hợp bài toán có hai điều kiện thay đổi và có nhiều điều kiện thay đổi? Câu 2: Trình bày nội dụng của lệnh Switch … end? Câu 3: Viết và giải thích cấu trúc của lệnh vòng lặp for … end? Câu 4: Viết và giải thích cấu trúc của lệnh vòng lặp while … end? ---------------------------------- 40
  11. Chương 5. ĐỒ HỌA TRONG MATLAB 5.1. Cơ sở đồ họa Matlab Khuôn khổ của mọi thao tác xuất đồ hoạ trên nền Matlab là Figure. Có thể tạo ra cửa sổ như hình 2.2 bằng cách gọi lệnh figure và mỗi figure sẽ tự động được đánh số. >> figure Có thể gọi một figure đã có số bằng lệnh figure(number). Số của figure sẽ hiển thị nếu ta gọi gcf (Get hendle to Current figure). >> gcf ans = 1 Bằng lệnh subplots (row, column, counter), có thể chia đều một figure thành nhiều subplots (đồ hoạ con) được counter (bộ đếm) đánh số ở phía trên bên trái. Nếu việc đánh số chỉ cần một chữ số, chúng sẽ được viết tuần tự không cần dấu phẩy hay dấu cách. Có thể xoá nội dung của một figure bằng lệnh clf (clear current figure), và lệnh delete figure(number) sẽ xoá chính figure. Tương tự, lệnh close(number) sẽ đóng figure mang số number còn lệnh close all sẽ đóng tất cả các figures đang mở. Có thể xem đặc điểm của một figure bằng lệnh get, với lệnh set ta lại có thể lập đặc điểm cho figure. Việc lập trình đồ hoạ trong Matlab luôn phụ thuộc vào đối tượng cụ thể và vô cùng phong phú. Một công cụ làm nhẹ bớt công việc là trình soạn thảo đặc tính đồ hoạ (property editor) với cửa sổ giới thiệu ở hình sau: 41
  12. Việc phân chia thang bậc của trục thường được Matlab tự động thực hiện. Tuy nhiên, ta có thể phân chia thủ công trong trường hợp hai chiều (2-D) bằng lệnh axis([x_min,x_max,y_min,y_max]) và trong trường hợp ba chiều (3-D) axis([x_min,x_max,y_min,y_max,z_min,z_max]). Lệnh axis(’auto’) sẽ trao quyền chia trục lại cho Matlab. Lệnh grid on sẽ tạo ra một lưới toạ độ ứng với cách chia trục đã xác định. Đối với đồ hoạ 3-D ta có thêm lệnh box on để tạo khung bao cho 3-D-Plot. Để điền ký tự vào một đồ hoạ ta có nhiều khả năng khác nhau: Dùng xlabel(string), ylabel(string), zlabel(string) để điền tên cho trục; dùng title(string) để điền tên cho figure. Ngoài ra ta còn có thể viết các ký tự lên cao, tụt thấp hay các ký tự Hy Lạp. Bằng lệnh legend(string_1,string_2,…, [position]) ta có thể điền thêm một số lời ghi chú vào đồ hoạ. Vị trí của lời ghi chú được xác định bởi số ghi trong [position], với ý nghĩa: 1…4 sẽ đặt lời ghi chú vào 4 góc, 0 đặt tự động và -1 đặt vào bên phải, cạnh đồ hoạ. Lệnh text(x_value,y_value,string) cho phép ta điền một đoạn văn bản với nội dung string vào toạ độ bất kỳ x_value, y_value trong đồ hoạ. Sử dụng lệnh zoom on | off để dùng chuột cắt và co dãn mảng đó. Ngoài ra, cửa sổ figure còn có một vài nút cho phép dùng chuột điền đoạn văn bản, vẽ thêm nét hoặc mũi tên, và mở Property Editor. Có thể thêm thông tin chi tiết về xuất đồ hoạ ra mà hình bằng cách gọi help graph2d, help graph3d và help specgraph. 5.2. Đồ họa 2 chiều Lệnh plot (x_value,y_value …[,plotstyle]) vẽ đồ thị nối các điểm cho bởi cặp giá trị x_value, y_value. Thông thường các điểm đó được nối bởi một nét liền. Nếu ta nạp luân phiên nhiều vector x/y, ta sẽ thu được nhiều nét nối độc lập với nhau. Nếu thiếu x_value, khi ấy các giá trị của y_value sẽ được vẽ theo thứ tự chỉ số của chúng. Nếu y_value là các giá trị phức, khi ấy đồ thị vẽ với hai trục ảo và trục thực. Lệnh stars cũng được viết với cú pháp tương tự nhưng sẽ tạo ra đồ thị bậc thang. 42
  13. Chuỗi ký tự plotstyle cấu tạo bởi hai thành phần: Thành phần thứ nhất là một chữ cái để chọn mầu và thành phần thứ hai là chuỗi ký hiệu đặc trưng cho dạng chấm/ gạch nối tạo nên nét đồ thị. Mỗi lần gọi mới lệnh plot, các đồ thị đã có trong Figure (hoặc trong Subplot) hiện tại sẽ bị xoá. Có thể ngăn chặn các điều đó bằng cách gọi lệnh hold on sau lệnh plot đầu tiên. 43
  14. Lệnh fplot(function, range) trong ví dụ trên minh họa khả năng vẽ trực tiếp các hàm tường minh. Hai lệnh semilogx và semilogy cũng có cú pháp giống như plot với điểm khác duy nhất: Hai trục x và y được chia thang logarithm. Lệnh loglog có tác dụng chia đồng thời cả hai trục x và y theo thang logarithm. Đồ thị BODE vẽ bằng lệnh bode: 5.3. Đồ họa 3 chiều 5.3.1. Các lệnh Plots Lệnh plot3 có tác dụng tương tự như lệnh plot, điểm khác duy nhất là plot3 có thêm vector số liệu thứ ba dành cho trục z. 44
  15. Để biểu diễn các hàm 2 chiều dưới dạng mặt trong không gian ta sử dụng lệnh surf(x_value, y_value, z_value… [, color]). Nếu x_value, y_value, z_value là các ma trận có số hàng và số cột giống nhau, khi ấy các điểm của đồ hoạ sẽ được vẽ và nối liền thành mặt. Nếu các điểm có một khoảng cách đều đặn về phía hai trục x và y, khi ấy x_value và y_value có thể chỉ là vector. Trong trường hợp này, các giá trị x_value được chuẩn theo cột và y_value chuẩn theo hang của ma trận z_value. Hai lệnh mesh và waterfall có cú pháp giống như surf, nhưng lại tạo ra mặt lưới không điền đầy và đồ hoạ kiểu thác nước. Ngược lại contour lại vẽ nên các đường “đẳng mức” (đường nối các điểm có cùng z_value). Ngoài ra ta còn có thể thêm một ma trận color để xác định màu cho đồ hoạ. Mỗi phần tử của color ứng với một phần tử của z_value. Các giá trị màu sẽ được sử dụng trong một bảng màu, và ta có thể thay đổi bảng đó nhờ lệnh colormap(name). Nếu không khai báo ma trận màu, Matlab sẽ tự động gán color = z_value. Dải màu có thể được co dãn thang nhờ lệnh caxis (color_min, color_max). 45
  16. 5.3.2. Phối cảnh trong đồ hoạ 3 chiều Có thể dùng lệnh view(horizontal,vertical) để phối cảnh cho đồ hoạ 3 chiều bằng cách khai các góc theo phương nằm ngang và phương thẳng đứng tính bằng độ (o, Degree). Góc chuẩn cho trước là (-37.5o, 30o). Ngoài ra, cũng có thể tạo dựng hay thay đổi phối cảnh bằng cách nháy và kéo thả chuột, sau khi đã gọi lệnh rotate3d. 5.3.3. Nhập, xuất và in đồ hoạ Nếu cần phải gán một File đồ hoạ có sẵn vào khuôn hình của Figure, ta có thể sử dụng hai lệnh variable = imread(file,fmt) và image(variable). Bằng lệnh imread ta gán File đồ hoạ với định dạng fmt cho biến variable. Nếu variable nhận hình ảnh chỉ bao gồm gam màu xám, variable sẽ là một biến 2 chiều. Nếu đó là hình ảnh mầu RGB, variable sẽ là một mảng 3 chiều. Định dạng của đồ hoạ được khai báo bởi fmt. Lệnh image (variable) sẽ xuất đồ hoạ mới gán cho variable ra màn hành Figure có chứa ảnh với định dạng .jpg Đồ hoạ Figure của Matlab cũng có thể được xuất sang các định dạng khác. Lệnh print –fnumber sẽ in Figure mang số number ra máy in. Lệnh print –fnumber -dfmt file sẽ xuất Figure thành file với các định dạng đồ hoạ khác. Ví dụ: bmp (Windows bitmap), emf (Enhanced meta), eps (EPS level 1), jpg (JPEG image), pcx (Paintbrush 24-bit) hay tif (TIFF image, compressed). Để biết chi tiết hãy gọi lệnh help print. Nếu cần phải lưu lại để sau này xử lý, có thể cất các đồ hoạ đã thu được thành File với định dạng fig của Matlab. Để cất hoặc ta đi theo menu File / Save as, hoặc gọi lệnh saveas(handle, ‘file’ [,format]). Lệnh saveas cất handle (Figure hiện tại, có thể dùng gcf để hỏi) thành tệp có tên file với một trong các định dạng: ‘fig’ (File nhị phân), ‘m’ (gồm một File fig và một File Script). 5.4. Thiết kế giao diện đồ họa Tạo GUI bằng công cụ đồ hoạ: Trên đây ta đã xem xét cách tạo GUI bằng phương pháp thủ công. Ta có thể tạo GUI bằng công cụ đồ hoạ. Khi nhập lệnh guide ta gọi trình đồ hoạ (Graphics User Interface Development Environment) để soạn thảo layout. Kết quả đầu tiên là ta có một layout rỗng. 46
  17. Hình 5.1 Giao diện ban đầu của cửa sổ thiết kế GUI Việc đầu tiên là ta thiết kế giao diện mong muốn. Ta sẽ dùng chuột kéo các phần tử cần dùng từ bên trái và thả vào layout rỗng bên phải. Ta có thể dịch chuyển các phần tử này đế các vị trí mong muốn và cân chỉnh bằng công cụ Alignment. Với mỗi phần tử ta cấn xác định thuộc tính cho nó bằng cách bấm đúp vào phần tử hay bấm vào công cụ soạn thảo thộc tính Sau khi thiết kế xong ta lưu nó lại. Lúc này MATLAB tự động tạo ra file *.fig dùng lưu giao diện vừa tạo và file *.m chưa các mã lệnh cần thực hiện. Việc cuối cùng là viết các mã lệnh vào file *.m. Trong quá trình thiết kế ta có thể chạy thử xem sau mỗi bước thiết kế đã đạt yêu cầu chưa bằng cách bấm vào ô chạy thử Ví dụ tạo GUI: Giải phương trình bậc 2, Ta thiết kế một giao diện như sau: 47
  18. Hình 5.2 Cửa sổ giao diện giải phương trình bậc 2 Trước hết ta gọi guide và có được một layout rỗng. Vào Property Inspector (ô soạn thảo thuộc tính) và ghi vào Name chuỗi ‘giaiphuongtrinhbac2’ và chấp nhận thuộc tích Tag mặc định của nó là figure1; dùng Font chữ mặc định, cỡ chữ 12, bold. Ta dùng ô Edit Text để ghi lại các hệ số a, b, c nhập vào. Ta vào Property Inspector rồi chọn ô Tag, đặt tên lần lượt là hesoa, hesob, hesoc và cũng dùng Font chữ mắc định, cỡ chữ 12 và bold. Tương tự như vậy là cũng tạo tiếp một Static text để hiển thị kết luận phương trình có nghiệm phân biệt, nghiệm kép hay vô nghiệm với thuộc tính Tag là ketluan, Font chữ mắc định, cỡ chữ 12 và bold. Tiếp tục tạo 2 Static text để hiển thị kết quả hai nghiệm tương tự như trên. Như vậy là ta đã thiết kế xong. Bây giờ ta lưu lại với tên là giaiphuongtrinhbac2.fig và giaiphuongtrinhbac2.m. Nhiệm vụ tiếp theo là ghi các lệnh cần thiết vào file giaiphuongtrinhbac2.m. File này đã được MATLAB tự động tạo ra. Ta phải thêm vào đó các mã lệnh để khi bấm chuột thì kết quả hiển thị trên ô kết luận và hai nghiệm X1 và X2. Ta sẽ ghi các mã lệnh này vào phần: function GIAIPT_Callback(hObject, eventdata, handles) Do lệnh cần được thực hiện khi gọi pushbutton. Nội dung của giaiphuongtrinhbac2.m là: 48
  19. Chạy chương trình ta có kết quả sau: 49
  20. Câu hỏi ôn tập chương 5 Câu 5.1: Trình bày cách tạo cửa sổ đồ họa để thực hiện thiết kế? Câu 5.2: Hãy giải thích cách sử dụng các lệnh sau: gcf, subplots, clf, delete figure(number), set? Câu 5.3: Trình bày cách chèn kí tự vào một đồ họa như tên cho trục, tên cho figure? Câu 5.4: Trình bày cấu trúc lệnh legend? Câu 5.5: Trình bày cấu trúc lệnh zoom on | off ? Câu 5.6: Đồ họa 2D là gì? Cấu trúc vẽ đồ họa 2D như thế nào? Cho ví dụ minh họa? Câu 5.7: Trình bày cấu trúc lệnh plot3 trong đồ họa 3D? Câu 5.8: Hãy nêu cách phối cảnh trong đồ họa? Câu 5.9: Hãy viết các lệnh để nhập, xuất, in đồ họa? Câu 5.10: Trình bày phương pháp tạo GUI bằng công cụ đồ họa? Câu 5.11: Hãy tạo giao diện GUI và lập trình giải mạch điện với giao diện dưới đây: Với yêu cầu: - Nhập thông số các nhánh - Lập trình cho kết quả dòng điện trên các nhánh. ------------------------- 50
nguon tai.lieu . vn