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

Bài giảng Maple: Bài 8 - Lê Minh Trung

Chia sẻ: Dat Dat | Ngày: | Loại File: PPT | Số trang:19

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

Bài giảng Maple: Bài 8 do Lê Minh Trung biên soạn cung cấp cho các bạn những kiến thức về vòng lặp While; cách tìm USCLN và BSCNN cuả x,y; vòng lặp for; lệnh rẽ nhánh if,... Đây là tài liệu hữu ích với các bạn chuyên ngành Toán học và những bạn quan tâm tới lĩnh vực này.

Chủ đề:
Lưu

Nội dung Text: Bài giảng Maple: Bài 8 - Lê Minh Trung

  1. LậP TRÌNH TRONG MAPLE… Người soạn: LêMinh Trung
  2. Vòng lặp While…  Cú pháp: while Phải là kiểu điều_kiện Boolean do công_việc od;  Trong khi điều_kiện đúng , thực thi công việc.  Dùng các câu lệnh như RETURN,break,quit để thoát ra giữa vòng lặp.
  3. Tìm USCLN và BSCNN cuả x,y…  Dùng thuật toán Euclide: Nhập x,y Y0 In ra x r := x mod y x:=y y:=r
  4. Minh hoạ thuật toán… x 12 630 While y 0 do r = x mod y y 12 6 0 x:= y y := r r 6 0 In ra x=6
  5. Chương trình… > x:=30; y:=12; m:=x; n:=y; while y0 do r:=irem(x,y); x:=y; y:=r; od: USCLN:=x; BSCNN := (m*n)/x; print(`USCLN la:`); value(USCLN); print(`BSCNN la:`); value(BSCNN);
  6. Ví dụ khác…  In ra các phần tử từ 1020 cuả dãy Fibonacci F(0):=1: F(1):=1: n:=2: while n
  7. Vòng lặp for…  Cú pháp: for name from start by change to finish do dãy_câu_lệnh od; | for | | from | | by | | to | | while | do end do; OR | for | | in | | while | do end do;
  8. Ví dụ… 1) Print even numbers from 6 to 100. > for i from 6 by 2 to 100 do print(i) end do; 2) Find the sum of all two-digit odd numbers. > tot := 0; for i from 11 by 2 while i < 100 do tot := tot + I end do; 3) Multiply the entries of an expression sequence. > tot := 1; for z in 1, x, y, q^2, 3 do tot := tot*z; end do;
  9. Ví dụ…  Viết chương trình để tính tổng các phần tử dương trong một list. > restart; > myList:=[1,4,8,-3,-5,7,3,-2,-3]; tong:=0: for number in myList do if number > 0 then tong:=tong +number; end if end do; print(`Tong cac phan tu duong trong list la`); tong;
  10. Lệnh rẽ nhánh if…  Cú pháp: if then | elif then | | else | end if
  11. Ví dụ… Tạo một mảng ngẫu nhiên gồm 15 phần tử và sắp xếp mảng theo thứ tự tăng dần. mang:=array[1..15]: for i from 1 to 15 do mang[i]:=rand(1..100)(): end do; print(`Mang truoc khi sap xep`); seq(mang[i],i=1..15); for i from 2 to 15 do x:=mang[i]: j:=i; while (mang[j-1]>x) and (j>1) do mang[j]:=mang[j-1]: j:=j-1: end do; mang[j]:=x: end do; print(`Mang sau khi sap xep`); seq(mang[i],i=1..15);
  12. Ví dụ… Tìm phần tử nhỏ nhất trong một danh sách aList:=[2,-4,6,-45,23,100,0,0,4,-7]: m:=op(1,aList): for k from 2 to nops(aList) do if op(k,aList)
  13. Ví dụ… > a := 3; b := 5; a := 3 b := 5 > if (a > b) then a else b end if; 5 > 5*(Pi + `if`(a > b,a,b)); 5 Pi + 25 > x := `if`(a < b,NULL,b); x := > if FAIL then 3 else 5 end if; 5
  14. Ví dụ… > restart; > gptbh:=proc(a,b,c) local delta,x1,x2; delta:=b^2-4*a*c; if delta < 0 then print(`Phuong trinh vo nghiem`); elif delta = 0 then x1:=-b/(2*a); print(`Phuong trinh co nghiem kep:`,x1); else print(`Phuong trinh co hai nghiem phan biet`); x1:=(-b+sqrt(delta))/(2*a): x2:= (-b-sqrt(delta))/(2*a): print(x1,x2); end if; end proc; > gptbh(1,2,1);
  15. Break;  Dùng để thoát ra ngay lập tức vòng lặp for/while.  Break không đặt trong vòng lặp nào sẽ gây ra lỗi.
  16. Ví dụ… > L := [1, 2, "abc", "a", 7.0, infinity]: for x in L do if type(x, 'string') then print(x); break; end if; end do;
  17. Next;  Next nằm trong vòng lăp for/while dùng để bỏ qua một số lệnh cuả vòng lặp.  Khi lệnh next thực thi các lệnh sau next sẽ bị bỏ qua và ngay lập tức nhảy tới vòng lặp kế tiếp.
  18. Ví dụ… > for n from 1 to 3 do if n=2 then next; end if; print(n); end do;
  19. Bài tập  Viết proc trả về danh sách các số nguyên tố trong khoảng cho trước.  Không dùng hàm isprime, hãy viết hàm kiểm tra xem một số có là số nguyên tố hay không?
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

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