Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 109,027

HOME > PHP > PHP Forum > ช่วยหน่อยคะ ต้องการสร้างตารางการตัดสินใจ ด้วยภาษา php โดยใช้เทคนิคตารางความจริง ได้ตัวอย่างโค้ดมาเป็นภาษาอื่นไม่เข้าใจ แนะนำด้วยคะ



 

ช่วยหน่อยคะ ต้องการสร้างตารางการตัดสินใจ ด้วยภาษา php โดยใช้เทคนิคตารางความจริง ได้ตัวอย่างโค้ดมาเป็นภาษาอื่นไม่เข้าใจ แนะนำด้วยคะ

 



Topic : 098088



โพสกระทู้ ( 19 )
บทความ ( 0 )



สถานะออฟไลน์




ช่วยแนะนำด้วยคะปวดหัวมากเลย
พอดีตัวอย่างโค้ดที่ได้มาเป็นภาษาอื่น และยังไม้อัตโนมัติเลยคะ แต่ต้องเขียนเป็น php ไม่ถนัดเลยคะ
โดยใช้เทคนิคตรารางการตัดสินใจ และต้องเขียนโค้ดให้สร้างตารางตัดสินใจให้โดยอัตโนมัติ
หมายถึง ส่วนของ conditions จำนวนทางเลือกเงื่อนไขจะเป็น 2^n (n คือ จำนวนเงื่อนไข) เช่น
เมื่อ เงื่อนไขมีสามข้อ (n)=3
ทางเลือกของเงื่อนไขจะเท่า 8 ทางเลือก
หรือ ถ้าเงื่อนไขมีสามข้อ (n)=4
ทางเลือกของเงื่อนไขจะเท่า 16 ทางเลือก

ปล.อยากทำเป็นระบช่วยตัดสินใจโดยใช้เทคนิคของตารางการตัดสินใจมาประกอบความน่าเชื่อถือ ช่วยแนะนำเพิ่มเติมได้

ตัวอย่างโค้ดภาษา C
#include <stdio.h> #define N_COND 3 #define COND_LEN (1 << N_COND) struct { const char *str, *truth;} cond[N_COND] = { {"Printer does not print", "1111...."}, {"A red light is flashing", "11..11.."}, {"Printer is unrecognised", "1.1.1.1."}, }, solu[] = { {"Check the power cable", "..1....."}, {"Check the printer-computer cable","1.1....."}, {"Ensure printer software is installed","1.1.1.1."}, {"Check/replace ink", "11..11.."}, {"Check for paper jam",".1.1...."}, }; int main() { int q, ans, c; for (q = ans = c = 0; q < N_COND; q++) { do { if (c != '\n') printf("%s? ", cond[q].str); c = getchar(); } while (c != 'y' && c != 'n'); ans = (ans << 1) | (c != 'y'); } if (ans == COND_LEN - 1) printf("\nSo, you don't have a problem then?\n"); else { printf("\nSolutions:\n"); for (q = 0; q < sizeof(solu)/sizeof(solu[0]); q++) if (solu[q].truth[ans] == '1') printf(" %s\n", solu[q].str); } return 0; }

output
Printer does not print? y A red light is flashing? n Printer is unrecognised? y Solutions: Check the power cable Check the printer-computer cable Ensure printer software is installed


Alternative Version Translation of: C
Code
import std.stdio, std.string; struct DataPair { string message, truth; } immutable DataPair[] conditions = [ {"Printer does not print", "####...."}, {"A red light is flashing", "##..##.."}, {"Printer is unrecognised", "#.#.#.#."}]; immutable DataPair[] solutions = [ {"Check the power cable", "..#....."}, {"Check the printer-computer cable", "#.#....."}, {"Ensure printer software is installed", "#.#.#.#."}, {"Check/replace ink", "##..##.."}, {"Check for paper jam", ".#.#...."}]; void main() { size_t code; foreach (cond; conditions) { write(cond.message, "? [y=yes/others=no] "); string answer = "no"; try answer = stdin.readln(); catch (StdioException) writeln("no"); code = (code << 1) | !answer.startsWith('y', 'Y'); } if (code == (2 ^^ conditions.length) - 1) writeln("\nSo, you don't have a problem then?"); else { writeln("\nSolutions:"); foreach (sol; solutions) if (sol.truth[code] == '#') writeln(" ", sol.message); } }

Output:
Printer does not print? [y=yes/others=no] no A red light is flashing? [y=yes/others=no] no Printer is unrecognised? [y=yes/others=no] no So, you don't have a problem then?


อันนี้คือลองทำดู มั่วเอา 555++
ทำเป็นแบบรับค่า้วนลูปเอา แต่ทำไมค่าแรกถึงไม่่่่่่่่่่่่่่่่่่่่่ตรงกันคะ
งง รายชื่อที่แสดงรายการยังไม่ถูกเพราะค่าที่รับไปมันไม่ตรงกัน

check2

Code (PHP)
<html>
<body>
<?
	$N_Condition = 3;
	$N_Rules =8;
		$condition=array("srt"=>array("พัดลม","หอพักสตรี","หอพักชาย"),
						"truth"=>array("11110000","11001100", "10101010")
							);
		$Solutions=array("srt"=>array("หอสตรีตระกูลฟลุ๊ค",
										"หอชายวรัญญา",
										"หอพักสตรีกำนัน",
										"หอพักชายไอดิน",
										"หอพักสตรีนันทกาญจน์"),
						"truth"=>array ("111010100",
										"000110010",
										"010101000",
										"000110010",
										"001100000"));
		?>
        <table border="1" cellspacing="0" cellpadding="2">
        <form action="DS_Table.php" method="post">
        <tr bgcolor="#D4DEC4">
        		<td width="200" ><center>รายการคุณสมบัติ</center></td>
                <td width="50" align="center">ต้องการ</td>     
                <td width="50" align="center">มีไม่มีก็ได้</td>      
        </tr>	
        <? for($t=0;$t<$N_Condition;$t++){?>
              <tr>
                	<td bgcolor="white" ><? echo $condition["srt"][$t]?></td>
                    <td align="center"><input name="q[]" type="checkbox" value="1" /> </td> 
                  <!--  <td align="center"><input name="q[]" type="checkbox" value="0" /> </td> -->      
              </tr>
 		<? 		
        	}?> 
        <tr><td colspan="3" align="center"><input name="" type="submit" value="ส่งค่า" /></td></tr>
        </form>
      	<? 
		echo "ค่าที่ส่งตัวแปรอาเรย์[0]=".$_POST["q"][0]."  ,[1]=".$_POST["q"][1]."  ,[2]=".$_POST["q"][2]."</br>";
		for($r,$code1=0;$r<count($_POST["q"]);$r++){
			$answer=$_POST["q"][$r];
			if($answer==""){$answer=0;}
			echo "<br>answer: ".$answer;	
			$code1=($code1<<1)|($answer!="1"); /*ไม่แน่ใจว่าถูกไหมลองดัดแปลงภาษา C */
		}
    	if ($code1==$N_Rules){
			echo"<tr><td colspan=\"3\">So, you don't have a problem then?</td></tr>";
		}else {
		echo"<tr><td colspan=\"3\" bgcolor=\"#D4DEC4\" align=\"center\">Solutions</td></tr>";
		  
				$s=0;
				foreach($Solutions["srt"] as $Solutions["srt"][$s]){
					if($Solutions["truth"][$s][$code1]=="1"){
						echo "<tr>";
						echo "<td colspan=\"3\">".$Solutions["srt"][$s]."</td>";
						echo "</tr>";
					}$s++;
			}
		}
		?>
        </table>
</body>
</html>




Tag : PHP, MySQL, JavaScript, Windows, Web Service









ประวัติการแก้ไข
2013-07-22 01:19:51
2013-07-22 02:29:29
2013-07-22 10:56:46
2013-07-22 17:25:52
Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2013-07-22 01:16:24 By : nune.supaporn View : 2938 Reply : 24
 

 

No. 1



โพสกระทู้ ( 74,058 )
บทความ ( 838 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Twitter Facebook

เขียนได้เยอะแล้วนี่ครับ ลองพยายามอีกนิดครับ






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-07-23 06:41:22 By : mr.win
 


 

No. 2



โพสกระทู้ ( 19 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 1 เขียนโดย : mr.win เมื่อวันที่ 2013-07-23 06:41:22
รายละเอียดของการตอบ ::
กำลังพยายามอยู่คะแต่ตอนรับค่ามันเพี้ยน ไม่รู้จแก้ตรงไหน

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-07-23 09:03:08 By : nune.supaporn
 

 

No. 3



โพสกระทู้ ( 1,994 )
บทความ ( 10 )



สถานะออฟไลน์
Facebook Blogger

Quote:
ระบช่วยตัดสินใจ


สำหรับงานอะไรครับ เผื่อจะช่วยได้ จะลองไปงัดงานเก่าออกมาดูเผื่อว่าใช้ด้วยกันได้ครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-07-23 09:55:08 By : {Cyberman}
 


 

No. 4



โพสกระทู้ ( 1,994 )
บทความ ( 10 )



สถานะออฟไลน์
Facebook Blogger

Quote:
กำลังพยายามอยู่คะแต่ตอนรับค่ามันเพี้ยน ไม่รู้จแก้ตรงไหน


Code
<input name="q[]" type="checkbox" value="1" />

โค๊ดนี้จะส่งอาร์เรย์ที่ลำดับเปลี่ยนแปลงเมื่อไม่ได้เลือกครับ ใช้แบบนี้ไม่ได้

ถ้าหน้ารับค่าจากฟอร์ม ต้องการรับค่า q[] ทุกลำดับไม่ว่าจะเลือกหรือไม่เลือก ต้องกำหนด index ที่ตัวครับ

<input name="q[0]" type="checkbox" value="1" />
<input name="q[1]" type="checkbox" value="1" />
<input name="q[2]" type="checkbox" value="1" />

ไปเรื่อยๆ

Code (PHP)
<?php
for($t=0;$t<$N_Condition;$t++){
?>
    <tr>
        <td bgcolor="white" ><? echo $condition["srt"][$t]?></td>
        <td align="center"><input name="q[<?php echo $i;?>]" type="checkbox" value="1" /> </td>
    </tr>
<?php
}
?>


ต้องระบุค่า $i เข้าไปด้วยครับ



สมมติว่าไม่ได้เลือกตัวเลือกที่ 2 (หอพักสตรี)

ในหน้ารับค่าจากฟอร์ม ลองใช้คำสั่ง
Code (PHP)
echo '<pre>', print_r($_POST["q"],true), '</pre>';


ค่าที่จะมีเพียง

$_POST["q"][0]
และ
$_POST["q"][2]

ส่วน
$_POST["q"][1] ไม่ได้เลือกไว้จะไม่ถูกส่งมาด้วย



ดังนั้นการ count($_POST["q"]) จะได้ผลรวมที่ไม่ตรงกับตัวเลือกจริงๆ
Code (PHP)
for($r,$code1=0;$r<count($_POST["q"]);$r++){

}


ให้สร้าง input hidden (สมมติว่า name=count_condition ) เก็บค่าจำนวนตัวเลือกทั้งหมดเอาไว้
เวลา submit ค่าจำนวนตัวเลือกจะมาด้วย
เราก็เริ่มเช็กจากตัวที่ 0 ไปจนกว่าจะถึงค่าสูงสุดของตัวเลือกเงื่อนไขทั้งหมด
Code (PHP)
for($i=0;$i < $_POST["count_condition"];$i++){
    $chk = isset($_POST["q"]) ? $_POST["q"] : 0;//เช็กทีละตัวว่าส่งค่ามาด้วยหรือไม่
}

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-07-23 13:02:16 By : {Cyberman}
 


 

No. 5



โพสกระทู้ ( 19 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 3 เขียนโดย : {Cyberman} เมื่อวันที่ 2013-07-23 09:55:08
รายละเอียดของการตอบ ::
ที่จะทำคือระบบสนับสนุนการตัดสินใจเพื่อช่วยค้นหาหอพักคะ
โดยระบบจะต้องสร้างตารางตัดสินใจขึ้นมาเองอัตโนมัติ
จากข้อมูลหอพักที่ได้จากฐานข้อมูล
เมื่อผู้ใช้มาเลือกว่าต้องการหอพักที่มีลักษณะแบบไหน
ตามตัวเลือกจากหน้าฟอร์มระบบของเรา
แล้วให้แสดงรายชื่อหอพักที่ตรงตามตัวเลือกที่ผู้ใช้เลือก
ส่วนที่ผู้ใช้ไม่ได้เลือกจะมีหรือไม่มีก็ได้

เช่น

Code
มีหอพักอยู่ 4 หอพัก และมีตัวเลือกในการค้นหา อยู่ 3 ตัวเลือก คือ พัดลม , เป็นหอหญิง และเป็นหอชาย หอพักที่ 1 มีพัดลม เป็นหอหญิง (1 1 0) หอพักที่ 2 มีพัดลม เป็นหอชาย (1 0 1) หอพักที่ 3 มีพัดลม พักได้ทั้งหญิงและชาย (1 1 1) หอพักที่ 4 เป็นหอชาย (0 0 1) ตารางตัดสินใจ เมื่อ ตัวเลือกมี 3 ตัวเงื่อน ทางเลือกของเงื่อนไขจะเป็น 2 ยกกำลัง จำนวนของตัวเลือก(3) พัดลม | 1 1 1 1 0 0 0 0 หอหญิง | 1 1 0 0 1 1 0 0 หอชาย | 1 0 1 0 1 0 1 0 --------------------------------- หอพักที่ 1 | 0 1 0 1 0 1 0 0 หอพักที่ 2 | 0 0 1 1 0 0 1 0 หอพักที่ 3 | 1 1 1 1 1 1 1 0 หอพักที่ 4 | 0 0 0 0 0 0 1 0 เมื่อผู้ใช้ พัดลม เลือก 1 หอหญิง เลือก 0 หอชาย เลือก 0 นั่น คือ ผู้ใช่ต้องการห้องพักที่มีพัดลมให้ รายงานผลจากการเลือกจะได้ หอพักที่ 1 ,หอพักที่ 2 , หอพักที่ 3



แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-07-23 15:40:09 By : nune.supaporn
 


 

No. 6



โพสกระทู้ ( 1,994 )
บทความ ( 10 )



สถานะออฟไลน์
Facebook Blogger

เป็นอัลกอริทึมที่ซับซ้อนมากๆ (สำหรับผม)

แต่ถ้าเขียนโปรแกรมใช้จริงคงมีแค่

Code (SQL)
SELECT * FROM my_table WHERE fld_condition = '101'

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-07-23 20:29:51 By : {Cyberman}
 


 

No. 7



โพสกระทู้ ( 1,819 )
บทความ ( 20 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Facebook

จริงๆ มันคือการค้นหานั่นล่ะครับ
ไม่ต้องคิดให้มันซับซ้อน ในเมื่อเราใช้การค้นหาจากฐานข้อมูลอยู่แล้ว
กรณีนี้ข้อมูลมีลักษณะเป็น SET ซึ่งในหลายๆ ระบบฐานข้อมูลมีชนิดของข้อมูลลักษณะนี้อยู่
อย่างใน mysql ก็มีชนิดข้อมูล SET

ข้อมูลชนิด SET

ซึ่งเราสามารถใช้ form field แบบ array มาสร้าง query เพื่อใช้ค้นหาได้
ส่วนการค้นหาจาก checkbox สำหรับกรณีนี้ ให้กำหนด value ของ checkbox แต่ละตัวให้เป็นค่าที่ต้องการค้นหาเลยครับ

ตัวอย่างการสร้าง SQL query จาก checbox
<html>
<body>
<form>
<div><label><input type="checkbox" name="dorm_types[]" value="male" /> หอพักชาย</label></div>
<div><label><input type="checkbox" name="dorm_types[]" value="female" /> หอพักหญิง</label></div>

<div><label><input type="checkbox" name="dorm_options[]" value="fan" /> มีพัดลม</label></div>
<div><label><input type="checkbox" name="dorm_options[]" value="air" /> มีแอร์</label></div>
<div><label><input type="checkbox" name="dorm_options[]" value="tv" /> มีทีวี</label></div>
<div><label><input type="checkbox" name="dorm_options[]" value="refrigerator" /> มีตู้เย็น</label></div>

<hr />

<input type="submit" value="ค้นหา" />
<?php
//$mysqli = mysqli_connect('localhost', 'root', '', 'yourdatabase');

// ตรวจว่ามีตัวแปร $_GET ที่เป็นตัวเลือกในการค้นหาส่งมาหรือไม่
// ถ้าไม่มี ให้สร้าง array ขึ้นมาเปล่าๆ
// เพราะ checkbox จะไม่ส่งค่า่ตัวแปรตามชื่อมา หากไม่มี checkbox ชื่อนั้นๆ ถูกเลือกเลย
if (!isset($_GET['dorm_types']) || !is_array($_GET['dorm_types'])) {
    $_GET['dorm_types'] = array();
}

if (!isset($_GET['dorm_options']) || !is_array($_GET['dorm_options'])) {
    $_GET['dorm_options'] = array();
}

// array ของเงื่อนไข
$where = array();

foreach ($_GET['dorm_types'] as $value) {
	//$value = $mysqli->real_escape_string($value);
	// เราใช้ FIND_IN_SET() หรือ LIKE ในการตรวจสอบว่ามีค่าที่ต้องการอยู่ใน SET หรือไม่
	$where[] = "FIND_IN_SET('$value', `types`) > 0";
}

foreach ($_GET['dorm_options'] as $value) {
	//$value = $mysqli->real_escape_string($value);
	$where[] = "FIND_IN_SET('$value', `options`) > 0";
}

// query หลัก คือเลือกทุกแถวออกมาจากฐานข้อมูล
$query = "SELECT * FROM `dorms`\n";

// ถ้ามีการระบุตัวเลือกในการค้นหา ให้เพิ่ม WHERE เข้าไปใน query
if ($where) {
	$query .= "WHERE\n" . implode("\nAND ", $where);
}
?>
<pre><?php echo $query; ?></pre>
</form>
</body>
</html>


Form
form

Query
query
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-07-23 21:28:30 By : cookiephp
 


 

No. 8



โพสกระทู้ ( 1,819 )
บทความ ( 20 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Facebook

หวังว่าคงไม่งงนะครับ นี่เป็นแค่ตัวอย่างการสร้าง query ซึ่งคุณจะต้องเอาไปประยุกต์ใช้ติดต่อกับฐานข้อมูลเอาเอง
แต่หลักๆ คืออยากให้ลองใช้ชนิดของข้อมูลให้ตรงกับงานครับ ซึ่งถ้าไม่ใช้ SET ก็สามารถแยก option ต่างๆ เป็น column ได้เหมือนกัน
แต่อาจจะทำให้ลำบากตอนเพิ่มหรือแก้ไขเปลี่ยนแปลงครับ (SET ออกแบบมาเพื่อข้อมูลลักษณะอย่างนี้เลย)
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-07-23 21:32:24 By : cookiephp
 


 

No. 9



โพสกระทู้ ( 3,468 )
บทความ ( 0 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Twitter

ทำไมตัวเลขมันยาวอย่างนี้ล่ะคับ
111010100

มันน่าจะมีแค่ สามตัวเช่น 000หอกระเทย) 111 101 110 001 010 100

111 = พัดลม ช ญ
100 = พัดลม ไม่รับ ช ญ

ซึ่งจริงๆ จะไม่มี 100 หรือ 000 ซึ่งจะเหลือแค่

111 101 110 001 010 011

ใช้ where

ex.
Code (PHP)
$cb = array(1, 1, 0); // พัดลม + ช ต้องทำให้มีครบ 3 จากค่าที่รับมา
$regex = '';
foeach($cb as $val)
	$regex .= ($val == 1) ? '1' : '.';

$sql = "SELECT * FROM dormitory WHERE type REGEXP '^{$regex}$'";


ปล. มั่วๆนะ


ประวัติการแก้ไข
2013-07-23 22:19:26
2013-07-23 22:21:06
2013-07-23 22:26:02
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-07-23 22:18:31 By : pjgunner.com
 


 

No. 10



โพสกระทู้ ( 19 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 9 เขียนโดย : pjgunner.com เมื่อวันที่ 2013-07-23 22:18:31
รายละเอียดของการตอบ ::
ชุดตัวเลขที่ยาวมาจากเลขที่แทนค่า ในตารางการการตัดสินใจคะ
อาจใช้สัญลักษณ์ตัวอื่นได้คะ แต่ในที่นี้ใช้ตัวเลข 0 แทน N และ 1 แทน Y
แล้วเรื่องคุณสมบัติ ที่โพตเป็นแค่ตัสอย่างนะคะ อย่าซีเรียส
ราชภัฏร้อยเอ็ดเรามีหอกระเทยนะคะ อิอิ

ตอนแรกนึกว่าง่ายเพราะตอนเรียนมัธยมก็เข้าใจ(หมายถึงเรื่องตารางการตัดสินใจ)
แต่พอมาทำเป็นระบบ อย่าง-งง-เลย-คะ
PHP เองก็พึ่งเรียนรู้ใหม่ด้วยยังไม่รู้จักฟังชันอะไรมากมาย
จริงอยู่ว่าเป็นการค้นหาเหมือนกันแต่พอต้องใช้เทคนิคตารางการตัดสินใจเข้าไปร่วมด้วย
ทำให้ระบบสร้างตารางการตัดสินใจให้อัตโนมัติเมื่อเพิ่มเงื่อนไขหรือตัวเลือกคุณสมบัติหอพัก
บอกตรงๆ เลย งงหนักกว่าเดิม 55+
ต้องขอคำแนะนำจากพี่ๆ กูรู ผู้เชี่ยวชาญด้วยนะคะ นึกเสียว่าสงสารเด็กน้อยผู้กำลังกระเสือกกระสนหาทางจบ

เทคนิิคการสร้างตารางการตัดสินใจ
ตารางการตัดสินใจ (Decision Table) คือ ตารางมาตรฐานสำหรับการตัดสินใจเชิงตรรกะตามเงื่อนไขที่ระบบกำหนดไว้ ตารางการตัดสินใจเหมาะสำหรับใช้ในกรณีที่เป็นชุดการตัดสินใจที่มีความสัมพันธ์กันซึ่งจะช่วยให้มั่นใจได้ว่าไม่มีกรณีอื่นเหลืออยู่ และเป็นการเลือกสิ่งที่ดีที่สุดจากตัวเลือกที่มีหลากหลายโดยทั่วไปตารางการตัดสินใจมีส่วนประกอบที่สำคัญ 4 ส่วนดังตารางที่ 1 ตารางที่ 1 แสดงส่วนประกอบในตารางการตัดสินใจ --------------------------------------------- |เงื่อนไข |ทางเลือกของเงื่อนไข | --------------------------------------------- |การกระทำ |กฎของการกระทำ | --------------------------------------------- ซึ่งมีขั้นตอนการสร้างตารางการตัดสินใจดังนี้ 1. กำหนดเงื่อนไขหรือตัวแปรที่จะทำให้เกิดการตัดสินใจหรือการพิจารณาในการทำงาน 2. พิจารณาจำนวนทางเลือกที่เป็นไปได้ของแต่ละเงื่อนไขซึ่งโดยทั่วไปจะมีเพียง 2’จำนวนคือใช่และไม่ใช่ (Y/N) เท่านั้น 3. คำนวณหาจำนวนคอลัมน์ของตารางการตัดสินใจโดยนำจำนวนทางเลือกที่เป็นได้ของแต่ละเงื่อนไขมาคูณกัน เช่นการตัดสินใจที่มี 3 เงื่อนไขจะได้เท่ากับ 2n = 8 คอลัมน์ 4. เติมทางเลือกของแต่ละเงื่อนไขในส่วนของ“ทางเลือกของเงื่อนไข” เริ่มจากเงื่อนไขแรกโดยจำนวนคอลัมน์หารด้วยสอง (Y/N) แล้วเติม Y ตามจำนวนคอลัมน์ที่คำนวณได้และเติม N ในคอลัมน์ที่เหลือสำหรับเงื่อนไขต่อๆไปให้นำจำนวนคอลัมน์ที่คำนวณได้ของ เงื่อนไขก่อนหน้านั้นตั้งหารด้วยสองเช่นในตารางการตัดสินที่มี 8 คอลัมน์และมี 2 ทางเลือก (Y/N) ดังนั้นเงื่อนไขแรกจะเติม Y= 8/2 =4 คอลัมน์แรกและเติม N ใน 4 คอลัมน์ที่เหลือเงื่อนไขที่สองจะมีการแบ่งส่วนการเติมระหว่าง Y และ N สลับกันครั้งละ 4/2 = 2 คอลัมน์ และเงื่อนไขที่สามจะมีการแบ่งส่วนการเติมสลับกันระหว่าง Y และ N ครั้งละ 2/2 = 1 คอลัมน์ดังตัวอย่างในตารางที่ 2 ตารางที่ 2 แสดงขั้นตอนการสร้างทางเลือกของเงื่อนไข ----------------------------------------------------- เงื่อนไข (Condition) | ทางเลือกของเงื่อนไข ----------------------------------------------------- เงื่อนไข 1 | Y Y Y Y N N N N เงื่อนไข 2 | Y Y N N Y Y N N เงื่อนไข 3 | Y N Y N Y N Y N ----------------------------------------------------- 5. สร้างกฎที่เป็นไปได้ภายใต้เงื่อนไขที่ระบุจากนั่นทำเครื่องหมายในส่วนของการระบุการเลือกการกระทำภายใต้กฎที่เป็นไปได้ ดังตัวอย่างในตารางที่ 3 ตารางที่ 3 แสดงขั้นตอนการระบุการเลือกการกระทำ ----------------------------------------------------- เงื่อนไข (Condition) | ทางเลือกของเงื่อนไข ----------------------------------------------------- เงื่อนไข 1 | Y Y Y Y N N N N เงื่อนไข 2 | Y Y N N Y Y N N เงื่อนไข 3 | Y N Y N Y N Y N ----------------------------------------------------- การกระทำ (Action) | กฎของการกระทำ ----------------------------------------------------- การกระทำที่ 1 | X การกระทำที่ 2 | X การกระทำที่ 3 | X การกระทำที่ 4 | X 6.ตรวจสอบกฎและการระบุการเลือกการกระทำที่มีความซับซ้อนหรือขัดแย้งกันดังตัวอย่างในตารางที่ 4 ตารางที่ 4 แสดงการเรียบเรียงเงื่อนไขและการกระทำใหม่ ----------------------------------------------------- เงื่อนไข (Condition) |ทางเลือกของเงื่อนไข ----------------------------------------------------- เงื่อนไข 1 | Y Y N Y เงื่อนไข 2 | Y N Y Y เงื่อนไข 3 | N Y Y Y ----------------------------------------------------- การกระทำ (Action) | กฎของการกระทำ ----------------------------------------------------- การกระทำ 1 | X การกระทำ 2 | X การกระทำ 3 | X การกระทำ 4 | X





ประวัติการแก้ไข
2013-07-23 22:59:33
2013-07-23 23:00:17
2013-07-23 23:01:22
2013-07-23 23:13:27
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-07-23 22:54:33 By : nune.supaporn
 


 

No. 11



โพสกระทู้ ( 19 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 6 เขียนโดย : {Cyberman} เมื่อวันที่ 2013-07-23 20:29:51
รายละเอียดของการตอบ ::
อัลกอริทึม ยากมากจริงๆ คะ ได้มาจากhttp://rosettacode.org/wiki/Decision_tables
มึนตั้งแต่เห็นภาษาอังกฤษทีแรกแล้วคะ 555+ แต่อาจารย์บอกว่ามนุษย์เรียนรู้จากการเรียนแบบคะ
เลยลองเอามาศึกษาดู พอดูมากๆ เข้าอาจารย์บอกว่าอย่าไปยึดติดกับเขามาก เลยลองมาหาแนวคิดใหม่ๆ
จากพี่ๆ ดูเผื่อได้ไอเดียดีๆ คะ



ประวัติการแก้ไข
2013-07-23 23:14:30
2013-07-23 23:15:34
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-07-23 23:10:00 By : nune.supaporn
 


 

No. 12



โพสกระทู้ ( 19 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 8 เขียนโดย : cookiephp เมื่อวันที่ 2013-07-23 21:32:24
รายละเอียดของการตอบ ::
จะพยายามทำความเข้าใจนะคะ ขอบคุณมากๆคะ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-07-23 23:12:02 By : nune.supaporn
 


 

No. 13



โพสกระทู้ ( 3,468 )
บทความ ( 0 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Twitter

งงครับ เกี่ยวกับโจทย์หอพัก นี่ให้โปรแกรมหาให้ใช่หรือไม่หรือ คนเลือกกันแน่
มันเกี่ยวอะไรกับการเลือกหอพักเหรอคับ ดูจากตัวอย่าง แล้วมันเป็นคำถามคำตอบ ส่วนเลือกหอพักอันนี้ คือเราถามเหรอ

ถ้าอย่างนั้นเราเลือกทีละหลายอัน มันจะเลือกคำตอบยังไง


ประวัติการแก้ไข
2013-07-23 23:18:50
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-07-23 23:13:40 By : pjgunner.com
 


 

No. 14



โพสกระทู้ ( 19 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 13 เขียนโดย : pjgunner.com เมื่อวันที่ 2013-07-23 23:13:40
รายละเอียดของการตอบ ::
คนเลือกจากหน้าฟอร์มคะ จากนั้นให้ระบบค้นหาให้ โดยใช้เทคนิคตารางการตัดสินใจคะ
พี่จะช่วยหนูใช้่ป่ะ ดีใจจัง

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-07-23 23:22:49 By : nune.supaporn
 


 

No. 15



โพสกระทู้ ( 3,468 )
บทความ ( 0 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Twitter

ไม่ว่างอ่ะคับ แต่น่าสนใจ
เอาไปทำ ai ได้
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-07-23 23:28:41 By : pjgunner.com
 


 

No. 16



โพสกระทู้ ( 19 )
บทความ ( 0 )



สถานะออฟไลน์


ตัวอย่าง ที่จะทำจากระบบค้นหาที่พักในจังหวัดแม่ห้องสอน

รับค่าการค้นหาจาก

EX_form

จากรายชื่อหอพักจะแสดงขึ้น ผู้ใช้สามารถคลิ๊กเข้าไปดูรายละเอียด
ข้อมูลพื้นฐานภายในหอพักได้

EX_form2

ผู้ใช้สามารถเปรียบเทียบคุณสัมบัติที่มีได้

EX_form3

และอื่นๆ อีกนิดหน่อย(กลัวทำไม่ทัน) แต่หลักๆที่สำคัญ คือ การค้นหาโดยใช้เทคนิคตารางการตัดสินใจ นี้แหละคะ


ประวัติการแก้ไข
2013-07-23 23:39:40
2013-07-23 23:41:11
2013-07-23 23:43:47
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-07-23 23:39:11 By : nune.supaporn
 


 

No. 17



โพสกระทู้ ( 19 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 15 เขียนโดย : pjgunner.com เมื่อวันที่ 2013-07-23 23:28:41
รายละเอียดของการตอบ ::
แง่ว แห้ว เลย

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-07-23 23:44:50 By : nune.supaporn
 


 

No. 18



โพสกระทู้ ( 1,819 )
บทความ ( 20 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Facebook

อัลกอริธึ่มไม่ได้ยากครับ แต่ผมว่าน้องใช้ผิดงาน
คือถ้าเอามาใช้กับการค้นหาแถวในฐานข้อมูล มันไม่จำเป็นต้องใช้การเขียนโปรแกรมแบบนี้น่ะครับ

เพราะตามชื่อมันก็บอกว่า ตารางการตัดสินใจ
ซึ่ง "ปัญหา" มี attribute ของมัน และ "การกระทำ" ก็มี attribute ของมัน
การเลือกการกระทำ จะดูจาก SET attribute ของการกระทำ ว่ามีอยู่ใน SET attribute ของปัญหาหรือไม่

แต่โปรแกรมตัวอย่างที่น้องจะทำ มันคือการค้นหา ซึ่งไม่ได้เป็นการ "ตัดสินใจ" จาก "ปัญหา"
แต่เป็นการ "เลือกการกระทำ (ข้อมูลในฐานข้อมูล)" จาก "ตัวเลือก" ที่ผู้ใช้กำหนด แบบตัวอย่างที่ผมให้ไป

ซึ่งถ้ามองกันดีๆ แล้ว ตารางการตัดสินใจ ถ้าจะมาใช้กับการค้นหาข้อมูลในฐานข้อมูล
ข้อมูลในฐานข้อมูลมันก็คือ solutions ส่วนข้อมูลที่รับมาจากผู้ใช้ (ฟอร์ม) ก็คือ conditions นั่นแหละครับ
ซึ่งความเป็นไปได้ของการแก้ปัญหา มันก็ขึ้นอยู่กับข้อมูลที่อยู่ในฐานข้อมูลนั่นเอง

ลองทำความเข้าใจตัวอย่างของผมดูก็ได้ จริงๆ มันก็คือการสร้างทางแก้ปัญหา (query) จากข้อมูลที่รับมาจากผู้ใช้นั่นแหละครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-07-23 23:46:33 By : cookiephp
 


 

No. 19



โพสกระทู้ ( 3,468 )
บทความ ( 0 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Twitter

ตอนนี้ยังไม่ว่างอ่านจริงๆ
ไอ้ที่โปรแกรหมากรุก มันใช้ วิธีนี้ด้วยใช่มั้ย


ประวัติการแก้ไข
2013-07-23 23:50:49
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-07-23 23:49:35 By : pjgunner.com
 


 

No. 20



โพสกระทู้ ( 19 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 18 เขียนโดย : cookiephp เมื่อวันที่ 2013-07-23 23:46:33
รายละเอียดของการตอบ ::
... รับทราบ พร้อมเรียนรู้ แต่ตอนนี้ขอนอนก่อนนะคะ พรุ่งนี้มีสอบ ...
... แต่พี่คะ หนูส่งหัวข้อโปรเจ็คไปแล้วทำไงดีหละทีนี้ ไม่เป็นไร "ชีวิตไม่สิ้นก็ต้องกันไป" ใช่ไหม ...
...ฝันดีนะคะ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-07-23 23:54:48 By : nune.supaporn
 


 

No. 21



โพสกระทู้ ( 19 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 19 เขียนโดย : pjgunner.com เมื่อวันที่ 2013-07-23 23:49:35
รายละเอียดของการตอบ ::
ใช่เลยคะพี่ เคยเรียนตอนมัธยมคะ แต่ตอนนั้นเรียนแค่แนวคิดมันไม่ได้นำมาใช้จริง....

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-07-23 23:57:45 By : nune.supaporn
 


 

No. 22



โพสกระทู้ ( 1,819 )
บทความ ( 20 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Facebook

ตอบความคิดเห็นที่ : 20 เขียนโดย : nune.supaporn เมื่อวันที่ 2013-07-23 23:54:48
รายละเอียดของการตอบ ::
ไม่เป็นไร เด๋วจะลองช่วยดูนะครับ เพราะจริงๆ มันก็เรื่องเดียวกัน ต่างกันตรงมุมมองและรายละเอียดปลีกย่อยแค่นั้นเอง
ยังไงมาคุยต่อในกระทู้นี้นะครับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-07-23 23:58:30 By : cookiephp
 


 

No. 23



โพสกระทู้ ( 19 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 21 เขียนโดย : nune.supaporn เมื่อวันที่ 2013-07-23 23:57:45
รายละเอียดของการตอบ ::
ขอบคุณคะ ช่วงนี้ทั้งเรียน ทั้งทำโปรเจ็คไปด้วย โหดใช่เล่นเลย ขอหนูศึกษาโค้พี่ๆ แนะนำมาแล้วจะขอความช่วยเหลืออีกทีคะนะ
คงมีเรื่องรบกวนอีกเยอะเลย อย่าพึ่งรำคาญแล้วกันนะคะ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-07-25 17:33:18 By : nune.supaporn
 


 

No. 24



โพสกระทู้ ( 19 )
บทความ ( 0 )



สถานะออฟไลน์


จากโค้ดตัวอย่าง แล้วเปลี่ยนเป็น php ได้แล้ว
เหลือทำยังไงให้ทางเลือกของเงื่อนไขเพิ่มขึ้นได้อัตโนมัติตามจำนวนของเงื่อนไข
ทำไงดีคะ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-08-03 21:15:33 By : nune.supaporn
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : ช่วยหน่อยคะ ต้องการสร้างตารางการตัดสินใจ ด้วยภาษา php โดยใช้เทคนิคตารางความจริง ได้ตัวอย่างโค้ดมาเป็นภาษาอื่นไม่เข้าใจ แนะนำด้วยคะ
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ
อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง

   
  เพื่อความปลอดภัยและการตรวจสอบ กระทู้ที่แทรกไฟล์อัพโหลดไฟล์จากที่อื่น อาจจะถูกลบทิ้ง
 
โดย
อีเมล์
บวกค่าให้ถูก
<= ตัวเลขฮินดูอารบิก เช่น 123 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)







Exchange: นำเข้าสินค้าจากจีน, Taobao, เฟอร์นิเจอร์, ของพรีเมี่ยม, ร่ม, ปากกา, power bank, แฟลชไดร์ฟ, กระบอกน้ำ

Load balance : Server 00
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2024 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่