Tin học định nghĩa randomize

kimyen65

Học sinh
Thành viên
4 Tháng chín 2018
222
47
41
Bắc Ninh
Du học sinh

Trâm Nguyễn Thị Ngọc

Giải Nhất event Thế giới Sinh học 2
Thành viên
13 Tháng mười 2018
1,523
1,339
216
18
Quảng Trị
Trường TH&THCS Hải Ba
Để sinh số ngẫu nhiên trong pascal đầu tiên bạn phải đặt câu lệnh ” randomize; ” ở đầu chương trình. câu lệnh này có chức năng sinh ra số khác với lần sinh trước đó. nếu không có nó bạn sẽ thường xuyên thấy nó giống với lần chạy trước đó.
sử dụng sử dụng random:
Random(N); { kết quả sẽ trả về là 1 số nguyên trong đoạn từ [0..N-1] }.
Như vậy VD nếu bạn muốn sinh ra số ngẫu nhiên trong khoảng [0..25] chẳng hạn thì phải viết như sau:
Mã:
Begin
 Randomize;
 Writeln(Random(26));
 Readln
End.

và tùy theo bạn muốn ngẫu nhiên trong đoạn nào.
 
  • Like
Reactions: kimyen65

kimyen65

Học sinh
Thành viên
4 Tháng chín 2018
222
47
41
Bắc Ninh
Du học sinh
Để sinh số ngẫu nhiên trong pascal đầu tiên bạn phải đặt câu lệnh ” randomize; ” ở đầu chương trình. câu lệnh này có chức năng sinh ra số khác với lần sinh trước đó. nếu không có nó bạn sẽ thường xuyên thấy nó giống với lần chạy trước đó.
sử dụng sử dụng random:
Random(N); { kết quả sẽ trả về là 1 số nguyên trong đoạn từ [0..N-1] }.
Như vậy VD nếu bạn muốn sinh ra số ngẫu nhiên trong khoảng [0..25] chẳng hạn thì phải viết như sau:
Mã:
Begin
 Randomize;
 Writeln(Random(26));
 Readln
End.

và tùy theo bạn muốn ngẫu nhiên trong đoạn nào.
vâng, mình cảm ơn ạ.
 

kimyen65

Học sinh
Thành viên
4 Tháng chín 2018
222
47
41
Bắc Ninh
Du học sinh
Bạn có thể giải thích giúp mình câu lệnh này được không ạ
SGK Tin học 11 trang 65 có 2 câu lệnh
for j:=N downto 2 do
for i:=1 to j-1 do
câu lệnh for i:=1 tp j-1 do nó có ý gì thế bạn, mình đọc mãi mà chẳng thể hiểu nỗi
 

Trâm Nguyễn Thị Ngọc

Giải Nhất event Thế giới Sinh học 2
Thành viên
13 Tháng mười 2018
1,523
1,339
216
18
Quảng Trị
Trường TH&THCS Hải Ba
Bạn có thể giải thích giúp mình câu lệnh này được không ạ
SGK Tin học 11 trang 65 có 2 câu lệnh
for j:=N downto 2 do
for i:=1 to j-1 do
câu lệnh for i:=1 tp j-1 do nó có ý gì thế bạn, mình đọc mãi mà chẳng thể hiểu nỗi
Chị ơi, chị có thể nói với em cái đề bài ko chị, em mới lớp 8 thôi mà chị ghi mỗi câu lệnh thì em không biết giúp thế nào:>(
 
  • Like
Reactions: kimyen65

kimyen65

Học sinh
Thành viên
4 Tháng chín 2018
222
47
41
Bắc Ninh
Du học sinh
Câu lệnh đó nhầm làm gì mình cũng chẳng hiểu sao, mong bạn xem giúp mình. thank nhiều ạ
 

Trâm Nguyễn Thị Ngọc

Giải Nhất event Thế giới Sinh học 2
Thành viên
13 Tháng mười 2018
1,523
1,339
216
18
Quảng Trị
Trường TH&THCS Hải Ba
Thực chất đây chỉ là 2 vòng lặp đan xen nhau để sắp tăng dần thôi chị ạ. Cái vòng lặp thứ 2 chỉ chạy đến j-1 để giảm thời gian chạy vòng lặp đó chị, nó làm vậy để đã xét phần tử nào rồi thì không cần xét lại nữa, CÁI này người ta đang sắp xếp theo chiều lùi. Nếu chị ko hiểu thì có thể sd CODE sau. Cái này là pp thường dùng của em để sx , nó chạy theo chiều xuôi
Mã:
For i:=1 to n-1 do
  For j:=i+1 to n do
    If a[i]>a[j] then
      Begin
       Tg:=a[i];
       A[i]:=a[j];
       A[j]:=tg;
     End;
Ở trên em chạy vòng ngoài tới n-1 thôi vì khi chạy tới pt cuối cùng thì cái vòng for dưới nó chạy không được do j:=i+1. Mà i là pt cuối rồi thì sao mà chạy được
 
  • Like
Reactions: kimyen65

kimyen65

Học sinh
Thành viên
4 Tháng chín 2018
222
47
41
Bắc Ninh
Du học sinh
Thực chất đây chỉ là 2 vòng lặp đan xen nhau để sắp tăng dần thôi chị ạ. Cái vòng lặp thứ 2 chỉ chạy đến j-1 để giảm thời gian chạy vòng lặp đó chị, nó làm vậy để đã xét phần tử nào rồi thì không cần xét lại nữa, CÁI này người ta đang sắp xếp theo chiều lùi. Nếu chị ko hiểu thì có thể sd CODE sau. Cái này là pp thường dùng của em để sx , nó chạy theo chiều xuôi
Mã:
For i:=1 to n-1 do
  For j:=i+1 to n do
    If a[i]>a[j] then
      Begin
       Tg:=a[i];
       A[i]:=a[j];
       A[j]:=tg;
     End;
Ở trên em chạy vòng ngoài tới n-1 thôi vì khi chạy tới pt cuối cùng thì cái vòng for dưới nó chạy không được do j:=i+1. Mà i là pt cuối rồi thì sao mà chạy được
ok cảm ơn e nhiều nha, quá xuất sắc
 

kimyen65

Học sinh
Thành viên
4 Tháng chín 2018
222
47
41
Bắc Ninh
Du học sinh
câu lệnh gán A[i+1]:=t mình đọc là gán biến t vào A[i+1] hay là gán A[i+1] vào t e ơi
 

Trâm Nguyễn Thị Ngọc

Giải Nhất event Thế giới Sinh học 2
Thành viên
13 Tháng mười 2018
1,523
1,339
216
18
Quảng Trị
Trường TH&THCS Hải Ba
câu lệnh gán A[i+1]:=t mình đọc là gán biến t vào A[i+1] hay là gán A[i+1] vào t e ơi
Đọc là gán giá trị t cho a[i+1] hoặc là a[i+1] gán bằng t vì sau câu lệnh này a[i+1] có giá trị là t, còn nếu chị đọc là ''gán A[i+1] vào t'' thì lúc đó t sẽ nhận giá trị của a[i+1].
 
Top Bottom