Arsip: Random Table paradox

more 19 years ago
Pontiac
saya membuat form soal dimana pertanyaannya sy ambil dari database paradox yg diinputkan. Dengan pertanyaan yang muncul secara acak(random), yg dibatasi 5 soal, dengan nilai score utk setiap pertanyaan bernilai 20. Mohon pencerahannya!!! Lepaskan dari kebuntuan ini

more 19 years ago
ZeAL
hmm.... abis gak ada yang jawab... gue coba jawab deh...
tapi gue kasih logikanya aja yah...
1. Buat array.. tipenya sama dengan key tabel.
2. baca satu2 record di tabel dari awal sampe akhir dan simpan ke array secara berurutan
3. Buat 1 array lagi atau TList untuk menyimpan nomer yang terpilih.
4. Dengan perulangan misalnya Repeat...Until Selesai
5. Didalemnya pake fungsi random untuk mengambil bilangan acak. sebleumnya pake fungsi Randomize biar bener2 acak.
6. Bandingkan angka terpillih dengan data yang ada didalam TList
7.a. Kalo udah ada, jangan lakukan apa2 dan lanjutkan perulangan.
7.b. Kalo belon ada, naikan nomer index dan masukan angka terpilih kedalam array penampung
8. Kalo data didalam array sudah ada 5 (buat fungsi pengecekan sendiri aja), maka isi variabel Selesai dengan true untuk keluar dari looping.
9. Berdiri sambil teriak "GUE BISAAA!" sebanyak minimal 5 kali... makin banyak, akan makin bagus
Untuk mengakses, cukup ambil angka di array penampung dan jadikan angka tersebut sebagai nomer index di array utama untuk memperoleh key tabel.. Abis itu tinggal pake fungsi findkey deh....
Gitu aja ah...
Sorry kalo gak optimized... gak pake mikir2 lama soalnya.. hehehe.. :D
gudLuck!

more 19 years ago
DelphiExpert
record dalam dataset sebenernya udah berupa array. tinggal akses aja. ok
untuk me-minimalisir penggunaan memory simpan pointer merujuk ke record index aja (optimisasi tdk pada speed).
sample:
const MaxSoal = 5;
type TIntArray5 = array of Integer;
var Soal5: TIntArray5;
simple array finding:
function IntValueExists(Source: TIntArray5; Value: Integer): Boolean;
var I: Integer;
begin
Result:= True;
for I:= 0 to Pred(MaxSoal) do
if (Source[I] = Value) then Exit;
Result:= False;
end;
implementasi:
procedure BuildRandomData;
var I, Rec: Integer;
begin
Randomize;
I:= 0;
while I < MaxSoal do begin
Rec:= RandomRange(1, Table1.RecordCount);
if not IntValueExists(Soal5, Rec) then begin
Soal5[I]:= Rec;
Inc(I);
end;
end;
end;
ok the core functions done...
Trus penggunaannya:
* Utk nampilin daftar pertanyaan:
for I:= 0 to Pred(MaxSoal) do begin
Table1.RecNo:= Soal5[I];
Memo1.Lines.add(IntToStr(I+1) + '. ' + Table1.FindField('SOAL').AsString);
end;
So... untuk liat kunci jawabannya ente juga pake cara diatas, but ngeliat di field KUNCI wakakak...
Ok moga2 tercerahkan...
Best Regards - DelphiExpert :lol:
more 19 years ago
ZeAL
OIA, Gue lupa kalo bisa langsung merajuk ke record yang diinginkan...
Tuh, sampe kodenya dibikinin... Pontiac sembah sujud dulu yah buat si DE... hehehe.. :D

more 19 years ago
DelphiExpert
Wakakakak... bisa aja lu ZeAL :mrgreen:
Iyaaa... jangan lupa nama ane di sebutin di credit-title ya wakakakakak...
more ...
- Pages:
- 1
reply |
Report Obsolete
AI Forward

🚀 We're thrilled to partner with Alibaba Cloud for "AI Forward - Alibaba Cloud Global Developer Summit 2025" in Jakarta! Join us and explore the future of AI. Register now:
https://int.alibabacloud.com/m/1000400772/
#AlibabaCloud #DeveloperSummit #Jakarta #AIFORWARD
Last Articles
Last Topic
- PascalTalk #6: (Podcast) Kuliah IT di luar negeri, susah gak sih?
by LuriDarmawan in Tutorial & Community Project more 4 years ago - PascalTalk #5: UX: Research, Design and Engineer
by LuriDarmawan in Tutorial & Community Project more 4 years ago - PascalTalk #4: Obrolan Ringan Seputar IT
by LuriDarmawan in Tutorial & Community Project more 4 years ago - PascalTalk #2: Membuat Sendiri SMART HOME
by LuriDarmawan in Tutorial & Community Project more 4 years ago - PascalTalk #3: RADically Fast and Easy Mobile Apps Development with Delphi
by LuriDarmawan in Tutorial & Community Project more 4 years ago - PascalTalk #1: Pemanfaatan Artificial Intelligence di Masa Covid-19
by LuriDarmawan in Tutorial & Community Project more 4 years ago - Tempat Latihan Posting
by LuriDarmawan in OOT more 5 years ago - Archive
- Looping lagi...
by idhiel in Hal umum tentang Pascal Indonesia more 12 years ago - [ask] koneksi ke ODBC user Dsn saat runtime dengan ado
by halimanh in FireBird more 12 years ago - Validasi menggunakan data tanggal
by mas_kofa in Hal umum tentang Pascal Indonesia more 12 years ago
Random Topic
- Buat Nomor Transaksi
by delphi1st in Tip n Trik Pemrograman more 18 years ago - ada yg tau arti coding convert ke binary ini????
by maelov in Network, Files, I/O & System more 18 years ago - tentang installshield
by goodday in Tip n Trik Pemrograman more 19 years ago - not enough memory
by Starboard in Enginering more 19 years ago - GapleX 1.0: GapleX Multiplayer Games
by portege in Games more 18 years ago - hapus saja
by iandcc in Posting Tidak Sesuai more 17 years ago - LISTVIEW IN EDIT MODE???
by n3o_cybertech in Tutorial & Community Project more 17 years ago - Cara Distribusi file aplikasi yg menggunakan komp. dbexpress
by ivan in Hal umum tentang Pascal Indonesia more 18 years ago - [tanya] caranya menidiablekan input keyboard
by krizzna in Tip n Trik Pemrograman more 19 years ago - mengakses dll
by red_code in Tip n Trik Pemrograman more 18 years ago