Bài tập về vòng lặp

Liên hệ QC

ndu96081631

Huyền thoại GPE
Thành viên BQT
Super Moderator
Tham gia
5/6/08
Bài viết
30,703
Được thích
53,930
Những ai đã từng xem qua bài viết này: Giới thiệu Cơ bản về vòng lặp For . . . next của sư phụ ptm0412 giờ hãy cùng làm 1 vài bài tập từ đơn giản đến nâng cao nhé
Xin mở màn bằng 1 bài tập sau:

Bài tập 01:

Hãy tính xem từ năm 1900 đến nay có bao nhiêu ngày thuộc dạng THỨ SÁU NGÀY 13
------------------------
Các bạn ai có bài tập gì hay xin post lên đây nhé! Cảm ơn
 
Chỉnh sửa lần cuối bởi điều hành viên:
giảm thêm vài trường hợp

Mã:
...
        If prColl(prIdx) <= num / 2 Then
...

Trật rồi, nhiều bạn làm số nguyên tố bị cải thiện lầm chỗ này lắm.
Theo lý thuyết, nếu gọi n2 là căn 2 của n, và a*b = n thì hoặc a = b = n2; hoặc nếu a > n2 thì b < n2
Nếu cần giảm thiểu số lần xét thì chỉ cần xét tới căn bâc 2 của n là đủ, không cần phải tới n/2
 
Upvote 0
vâng up bài rồi em mới nhớ cái vụ đó . chỉ cần đi tới căn 2 của num là đủ . lâu ngày không "văn ôn võ luyện" . hihi
 
Upvote 0
Bài tập số nguyên tố là bài của IT thuần toán. Nó không liên quan gì đến Excel hay VBA cả.
Nó là một bài tập buộc HS phải suy nghĩ nhiều về thuật toán và phương pháp tối ưu số lần tính toán.
Tôi đã nhiều lần nói, từ "tối ưu" có tính chất tương đối. Một thuật toán chỉ có thể tối ưu trong một khoảng dữ liệu nào đó thôi. Khi thực hiện, người ta chọn thuật toán có vùng ưu rộng nhất.
VD: tuy so với căn 2 thì giảm thiểu được sô lần hơn so với chia 2; nhưng con toán lấy căn tốn nhiều sức máy hơn con toán chia 2. Vì vậy nếu số n nhỏ thì n/2 hiệu quả hơn.

Thầy cô nào ra bài tập này cho VBA là dốt toán và không có căn bản về tin học văn phòng.
 
Upvote 0
Vì đằng nào cũng dùng phép chia để tính num mod prcol(pridx) nên ta có thể làm như sau
For....
tmp=num/prcol(pridx)
If tmp=INT(tmp) then
Isprime=false
Exit Function
Elseif tmp<prcol(pridx)
Isprime=true
Exit Function
End If
Next
 
Upvote 0
Vì đằng nào cũng dùng phép chia để tính num mod prcol(pridx) nên ta có thể làm như sau
For....
tmp=num/prcol(pridx)
If tmp=INT(tmp) then
Isprime=false
Exit Function
Elseif tmp<prcol(pridx)
Isprime=true
Exit Function
End If
Next

Tên gọi của trị tmp trong trường hợp này là factor.
 
Upvote 0
em có giả thiết này mong các bác giúp đỡ
em có 4 biến a,x,z,t chạy từ 1 đến 100
biểu thức x*y/z*t so sánh với hằng số cho trước.
chọn 10 cặp giá trị gần đúng nhất với hằng số kia để từ đó để suy ra lựa chon x, y, x,t+-+-+-++-+-+-+
 
Lần chỉnh sửa cuối:
Upvote 0
Web KT
Back
Top Bottom