Nội dung chính
1. Lệnh IF.
Cú pháp : IF điều.kiện [Lệnh…]nếu điều kiện đúng sẽ thực hiện lệnh
Ví dụ:
IF 1=1 [CT PRINT [Dung roi]]
2. Lệnh IFELSE.
Cú pháp : IFELSE điều.kiện [Làm những lệnh ở trong này nếu điều kiện là đúng] [Làm những lệnh ở trong này nếu điều kiện là sai]
Ví dụ sau đây sẽ so sánh 2 số được đưa vào từ bên ngoài a và b và thông báo cho ta biết số nào lớn hơn:
To SoSanh :a :b
IFELSE :a>:b [Pr [a lon hon b]] [Pr [a nho hon b]]
End
3. Lệnh IfTrue, IfFalse.
Tương tự lệnh IF các bạn tự tìm hiểu thông qua trợ giúp của MSWLogo nha.
Cho em hỏi nếu nhập vào 3 số rồi tìm số bé nhất, hay lớn nhất thì ta lập trình như thế nào ạ?
Nếu nhập từ bàn phím các số thì mình chưa thử, còn nếu chỉ viết chương trình rồi truyền biến vào thì đơn giản thôi có thể viết tạm như thế này:
TO MaxMin :a :b :c
Make “max :a ;Gia su a la so lon nhat
Make “min :a ;Gia su a la so nho nhat
If :b>:max [Make “max :b ];Neu b lon hon thi chon max la b
If :c>:max [Make “max :c ];Neu c lon hon thi chon max la c
If :b<:min [Make "min :b ];Neu b nho hon thi chon min la b If :c<:min [Make "min :c ];Neu c nho hon thi chon min la c CS RT 90 PU Label (List "So "lon "nhat "la :max) SETY -50 ; Xuong dong Label (List "So "nho "nhat "la :min) END
Bài của bạn, mình thêm lệnh nhập từ bàn phím không biết có đúng không. Bạn xem góp ý giúp mình. TO MaxMin MESSAGEBOX [Thong bao] [Ban hay nhap lan luot ba so tu nhien . Bam OK de tiep tuc.] make “a first readlist make “b first readlist make “c first readlist Make “max :a Make “min :a If :b>:max [Make “max :b ] If :c>:max [Make “max :c ] If :b<:min [Make "min :b ] If :c<:min [Make "min :c ] CS RT 90 PU Label (List "So "lon "nhat "la :max) SETY -20 ; Label (List "So… Read more »
oh, cách này hay quá, để mình chia sẻ lên page, thanks bạn 🙂
Các bạn tìm hiểu sâu Các lệnh trong LOGO bằng tài liệu nào mà có các lệnh này, tớ thì chịu. Thanks bạn.
Chào bạn, chúng tôi giải quyết bài toán lập trình, theo giải thuật thì phải làm những gì và cách làm như vậy thì phải sử dụng lệnh làm sao. Để trả lời thì chúng tôi phải đọc help trong Mswlogo, xem các ví dụ mẫu của họ, tra cứu google. Kỹ năng đọc help là quan trọng nhất.
cách này hay đấy
nhập ba số i , k, l từ bàn phím, hiện thông báo số lớn nhất trong ba số đó
Bài dễ như vậy bạn nên tự làm.
nhập n từ bàn phím, kiểm tra n là số chẵn hay số lẻ. Bài này mình viết nhưng vẫn báo lỗi?
MSWLogo có một hàm dùng để làm việc này đó là MODULO. Thật ra việc nhập từ bàn phím giống như pascal mình vẫn chưa biết hàm nào trong mswlogo làm chuyện đó, ở đây mình thực hiện việc truyền biến vào và code cảu mình như sau.
To ChanLe :n
CS
RT 90
If :n=0 [Label (List “ban “nhap “so “0)]
IFELSE (MODULO :n 2)=0 [Label (List :n “la “so “chan)] [Label (List :n “la “so “le)]
End
Mình test thử và nó chạy đúng trên FMSLogo 🙂 máy mình windows 8.1 64 bit nên không chạy được MSWLogo.
1/chi dum cach ve hinh ngoi sao co đầu ngoi sao đến tâm ngoi sao là 50 bước
2/chi dum cach ve hinh ngoi sao có chiều cao từ dinh ngoi sao di qua tâm ngoi sao và vuông goc với đường thăng ve tờ 2 ngoc ở dưới
Câu hỏi của bạn hơi khó đối với học sinh tiểu học, bài hướng dẫn chúng tôi sẽ viết nguyên một bài hoàn chỉnh, bạn nhớ theo dõi thường xuyên trên website hoặc fanpage. Hướng giải quyết ở đây là vì học sinh tiểu học chưa thể tính độ dài của ngôi sao bằng công thức toán học, do đó bạn phải vẽ một đa giác 5 cạnh độ dài 50, xác định tọa độ của 5 đỉnh của nó (pos) rồi sau đó dùng lệnh setxy để tạo thành ngôi sao. Câu hỏi số 2 để làm được việc… Read more »
Của bạn đây 🙂
http://www.emyeutinhoc.com/goc-lap-trinh/mswlogo-ve-ngoi-sao.html
thầy cho em hỏi vấn đề làm hình động thì như thế nào ạ ? thầy cho em ví dụ đơn giản để minh họa được không ?
Bạn xem thử bài vẽ hình xoắn ốc xem nhé, ở đó có đầy đủ ghi chú, nếu chưa hình dung ra thì mình sẽ cho ví dụ khác. 🙂
Nhập vào ba số a,b,c bất kỳ. kiểm tra xem nó có thể là độ dài ba cạnh của tam giác hay không, nếu không thì in ra màn hình “Không là ba cạnh của một tam giác”. Ngược lại, thì in diện tích, chu vi của tam giác ra màn hình.
Mình nghĩ câu hỏi này với học sinh tiểu học hơi bị khó, code mswlogo thì không khó nhưng giải thích như thế nào về việc 3 cái cạnh tạo thành tam giác hay không thì mình chưa nghĩ ra 🙂
Đúng là bài toán khó với học sinh tiểu học vì học sinh chưa học về kiểm tra độ dài 3 cạnh có tạo thành tam giác không. Nếu giải bài này chỉ có cách gán kiến thức mới cho HS
Có khi nào bạn ấy hỏi lập trình Pascal không nhỉ ?
to tamgiac
messagebox[thong bao][ban hay nhap lan luot ba so duong bat ky, bam ok de tiep tuc]
make “a first rl
make “b first rl
make “c first rl
ifelse ( and (:a<:b+:c)(:b<:a+:c)(:c<:a+:b))[ make "p :a+:b+:c pr[ba so vua nhap la ba canh cua tam giac]
pr (list "chu "vi "tam "giac :p "dien "tich "tam "giac sqrt :p*(:p-:a)*(:p-:b)*(:p-:c))][pr[ba so vua nhap khong phai la ba canh cua tam giac]]
end
Mình giải thử bài này trong chay được MSWLogo không biết cách giải này được chưa, hãy xem và góp ý giúp nhé
Cảm ơn bạn, đã chạy thử, kết quả rất tốt.
Bạn nào muốn hoàn thiện hơn thì kiểm tra giá trị nhập vào của a, b, c luôn nhé.
Kiểm tra giá trị nhập của a như thế nào vậy thầy?
ah, mình chặn trường hợp nhập giá trị âm lại và thông + kết quả thì in lên sân chơi cho nó đẹp 🙂
Code pascal nè thầy
Xuất ra Màn hình thì hay nhỉ.
Có lệnh in ra sân chơi mà, ở đây code như vậy cho nó gọn.
cho em hỏi nếu muốn làm cái bài như la sắp xếp số điểm của học sinh thầy em nói có 5 trường hợp số học sinh giỏi ,so hoc sinh kha ,so học sinh yeu nhung o day em chi co may truong hop nay thoi
Bạn có thể viết hàm IfElse lồng nhiều cấp vào nhau để giải quyết vấn đề của mình, tôi tạm ví dụ như thế này cho bạn dễ hình dung
to XepLoai :a
IFELSE :a>8 [show “Gioi][IFELSE :a>7[Show “Kha][IFELSE :a>4.9 [show “TB][ show “Kem]]]
end
với lại nếu người dùng nhập số 8 thì phải xep ban do la hoc sinh kha
Bạn cho hỏi muốn viết chữ có dấu trong logo thì làm như nào vậy?
Về mặt lý thuyết thì hoàn toàn được tuy nhiên đụng vào tiếng Việt có dấu thì mệt lắm, mình cũng hạn chế sử dụng. Đầu tiên vào menu Set->Label Font chọn font VNI-Time hay .Vn …. không dùng font unicode, bạn chỉnh bảng mã của chương trình Unikey hay Việt key tương ứng rồi bấm bình thường nó sẽ ra tiếng Việt có dấu, bạn xem ở đây
Thầy cho tôi hỏi, phầm mềm Mslogo 6.5 có chạy được lệnh for không? tại sao tôi làm cứ báo lỗi
Dạ được cô ạ ví dụ thế này For [i 1 10 1][show :i]
nhờ thầy chỉ dùm chỗ sai bài tính tổng các số chắn, nếu n là lẻ thì in ra màn hình là số lẻ
to tinhtong :n
rt 90
make “tong 0
ifelse (modulo :n 2)0 [lable (list :n “khong “thuoc “day “da “cho)][ for[i 2 :n 2][make “tong :tong + :i] label (list “tong “cua “day :tong)]
end
Nếu nhập vào giá trị n là số lẻ thì chương trình báo lỗi:
“I don’t know how to lable in tinhtong
[ifElse Not(modulo :n 2)=0 [lable (list :n “khong “thuoc “day “da “cho)] [For [i 2 :n 2] [make “tong :tong + :i] label (list “tong “cua “day: :tong)]]”
Cảm ơn!
Bạn viết không đúng cấu trúc lệnh, xem ngay trước khi END của tôi chỉ là :tong)] còn của bạn tới 2 dấu ]] ở cuối.
Nhập vào số CHẴN thì vẫn tính được, nhưng nhập vào số LẺ thí THÔNG BÁO NHƯ THẾ.
to tinhtong :n
cs
rt 90
make “tong 0
ifelse Not (modulo :n 2)=0 [
lable (list :n “khong “thuoc “day “da “cho)][
for[i 2 :n 2][make “tong :tong + :i]
label (list “tong “cua “day :tong)]
end
tinhtong 145
I don’t know how to lable in tinhtong
[ifelse Not (modulo :n 2)=0 [lable (list :n “khong “thuoc “day “da “cho)] [for [i 2 :n 2] [make “tong :tong + :i] label (list “tong “cua “day :tong)]]
SAI CHỖ NÀO THỂ NHỈ??
Thầy xem lại lệnh xuất ra sân chơi LABEL , thầy viết nhầm là lable
Chân thành cảm ơn!
Thầy có thể cho tôi xin tài liệu lập trình bằng mswlogo để tham khảo thêm được không thầy?
Thầy đọc hết các bài hướng dẫn cơ bản ở đây và xem trên fanpage là được, chúng tôi không có tài liệu cụ thể, phần lớn là đọc tiếng anh và tự tìm hiểu thôi, trước đây cũng có gom lại được một số mẫu ở trên fanpage thầy gửi tin nhắn trên fanpage chúng tôi sẽ gửi cho thầy tham khảo.
giải giúp em với: tim số có hai chữ số biết lấy số đó chia cho chữ số hàng dơn vị được thương 6 dư 5
Tìm số có 2 chữ số.mà 2 lần chữ số hàng chục bằng 5 lần chữ số hàng đơn vị
Bạn nên tự làm bài này, nếu có lỗi thì post vào fanpage nhờ mọi người sửa giúp.
mọi người thử nhập lệnh nay xem .SETPENSIZE [5 5] SETPC 10 REPEAT 10 [REPEAT 24 [FD 10 RT 15 WAIT 5] PU LT 36 FD 24 PD]
.lt 90 fd 20 repeat 30 [ repeat 8 [ fd 1 ellipse 100 50 circle 45 ] rt 12 fd 30 repeat 12 [ fd 200 rt 120
Bạn giải giúp mình bài này với:
Tìm một số tự nhiên có hai chữ số, biết rằng khi viết thêm số 21 vào bên trái ta được một số gấp 31 lần số đã cho.
em thử gõ Iftrue 1=1[ print [dung roi] sao bảo Iftrue without TEXT
Nói chung hàm này ít dùng, ví dụ như thế này cho bạn dễ hiểu:
TO zz :n
TEST 1 = :n
IFTRUE [Show [So 1]]
IFFALSE [Show [Khong phai so 1]]
END
Nó xem xét chỗ TEST 1=:n xem đó là đúng hay sai rồi thông báo tương ứng.
mọi người hướng dẫn cái thông báo này với: vẽ hình n cạnh, n nhập từ bàn phím. n = 11, nếu k vẽ được thì hiện thông báo “không vẽ hình được”. Ví dụ mình nhập 8.5, thì k vẽ hình được, vậy mọi người hd mình hiểu thêm về các câu lệnh này đươc không vậy.
Ai có thẻ cho mh hỏi cau này được ko
Cho dãy số có quy luật sau 5, 10, 15, 20 ,… N
Nếu N không thuộc dãy số trên thì viết ra san chơi “so duoc nhap không thuộc dãy số trên
Nếu N thuộc dãy số trên thì viết ra san chơi tổng của các số từ 5 dến N
cho em hỏi bài toán: Có 1 hình vuông cạnh N đon vị( N được nhập từ bàn phím khi em chạy chương trình) ta lấy 4 điểm chính giữa của 4 cạnh làm đỉnh của hình buông thứ 2. Từ hình thứ 2 ta cũng làm tương tự như trên được hình vuông thứ 3. Tiếp tụ như vậy đến hình vuông thứ K. (K được nhập từ bàn phím khi em chạy chương trình). Em hãy tìm tổng diện tích của K hình vuông và sử dụng các câu lệnh của MSWLogo để vẽ hình tạo bởi các… Read more »
Trước khi vẽ hình vuông thì tính cộng dồn diện tích là đc
Thầy cho em hỏi bài ạ:
Tìm các số có 2 chữ số, nếu lấy số đó chia cho chữ số hàng đơn vị của nó thì được thương là 6 và dư 5.
Bạn có thể code như thế này :