YOMEDIA
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.
AMBIENT/
Chủ đề:
Nội dung Text: Bài giảng Maple: Bài 8 - Lê Minh Trung
- LậP TRÌNH TRONG MAPLE…
Người soạn: LêMinh Trung
- 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.
- 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
- 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
- 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);
- Ví dụ khác…
In ra các phần tử từ 1020 cuả dãy Fibonacci
F(0):=1:
F(1):=1: n:=2:
while n
- 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;
- 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;
- 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;
- Lệnh rẽ nhánh if…
Cú pháp:
if then
| elif then
|
| else |
end if
- 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);
- 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)
- 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
- 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);
- 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.
- 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;
- 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.
- Ví dụ…
> for n from 1 to 3 do
if n=2 then next; end if;
print(n);
end do;
- 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?
Thêm tài liệu vào bộ sưu tập có sẵn:
Báo xấu
LAVA
ERROR:connection to 10.20.1.98:9315 failed (errno=111, msg=Connection refused)
ERROR:connection to 10.20.1.98:9315 failed (errno=111, msg=Connection refused)
Đang xử lý...