Viết chương trình tạo tự động các mảng chẵn và mảng lẻ?

Viết chương trình cho người dùng tạo tự động các mảng chẵn và mảng lẻ với những yêu cầu sau đây:
Tạo Form chứa hộp textbox để người dùng nhập một số nguyên dương bất kỳ
Khi người dùng nhập một số nguyên dương bất kỳ và bấm nút khởi tạo (submit) thì sẽ khởi tạo 2 mảng (1 mảng các số nguyên dương chẵn và 1 mảng các số nguyên dương lẻ). Ví dụ: Nhập vào 10 thì sẽ tạo ra được 2 mảng array(2, 4, 6, 8, 10) và array(1, 3, 5, 7, 9)

Sử dụng mảng cấp phát động với kích thước mảng = n /2 (n từ bàn phím). nhớ duyệt điều kiện n chẵn lẽ nha, n chẵn thì không nói rồi, n lẽ thì /2 sẽ có vấn đề, vì thế đặt nhiêuf trường hợp n, tính số phần tử chẵn lẽ rồi ra kết luận cấp phát thế nào cho chính xác :smile:

Sau đó cho 1 vòng lặp for duyệt toàn mảng.

Tại vị trí của mỗi phần tử, cho 1 vòng lặp for chạy từ 0 tới n, với điều kiện là n % 2 = 0 thì gán phần tử đó cho mảng số chẵn. ngược lại gán cho mảng số lẻ

1 Like

mình viết như này!

$a=$_POST['txtso1'];
	if(isset($_POST['ok'])){
		if(is_numeric($a)==true){
			for($i=1;$i<=$a;$i++){
				if($i%2==0){
					echo $i;//Gán $i vào mảng kiểu gì vậy bạn nhỉ
				}
			}
		}	
	}

http://www.ddth.com/showthread.php/4581-TUTOR-Mảng-và-thao-tác-với-mảng-trong-PHP-Bài-1

Cái mảng của bác đâu nhỉ :v:

1 Like

Mình làm như thế này có được không bạn ơi, nó ra kết quả như yêu cầu rồi.

$mangchan = array();
$mangle = array();
$a=$_POST['txtso1'];
if(isset($_POST['ok'])){
	if(is_numeric($a)==true){
		for($i=1;$i<=$a;$i++){
			if($i%2==0){
				$mangchan[] = $i;
			}else{
				$mangle[]=$i;
			}
		}
		print_r($mangchan);
		print_r($mangle);
	}	
}
1 Like

ra đúng yêu cầu là okie rồi :smile:

1 Like

Wow, chưa đọc hiểu nội dung code, nhưng nếu @tranvanchienhn code kiểu này là không được rồi nhé.

Đừng dùng nested if tức là dùng if lồng trong if. Rất khó để đọc code, sửa lỗi, và thể hiện thuật toán.

Cách giải quyết là tách ra làm nhiều hàm khác nhau, thực hiện các nhiệm vụ nhỏ hơn. Hoặc đọc quyển Code Complete

hjhj. mình mới học code lên chưa biết nhiều lắm. bây giờ mình mới học đến phần hàm, bạn có quyển sách nào giành cho beginer như mình không?

1 Like

Sách beginer thì Đạt không rành PHP, để hỏi bạn thử.

1 Like

đạt ơi, cho mình hỏi về phương pháp học code của bạn là như nào vậy, mình thấy trên mang nhiều tài liệu quá, không biết theo cái nào nữa cơ. cảm giác nó bị rối lắm ý!

Học code thì Đạt xem code của người khác và đọc sách. Sau đó viết code, coi thử code mình viết có gì bất ổn. Chỗ nào không hay, chỗ nào có thể sửa lại.

Sách thì Đạt tìm sách nổi tiếng của ngôn ngữ đó. Về sách lập trình chung chung thì có quyển Code Complete 2 rất hay

1 Like

cảm ơn đạt nhé! :smile:

Đạt không làm PHP, nhưng ý Đạt muốn nói là mình nên code như thế này, tạo ra cái hàm sort_array thay vì tính trực tiếp lồng trong if

function sort_array($a) {
    $mangchan = array();
    $mangle = array();
    for($i = 1; $i <= $a; $i++) {
        if($i % 2 == 0){
            $mangchan[] = $i;
        }else{
            $mangle[] = $i;
        }
    }
    print_r($mangchan);
    print_r($mangle);}
}

$a=$_POST['txtso1'];
if(isset($_POST['ok'])){
    if(is_numeric($a)==true){
        sort_array($a)
    }    
}
2 Likes

hjhj, cảm ơn đạt nhé

Hiện các Framework viết nested if còn nhiều hơn thế nữa ấy chứ :smiley:

1 Like

Bài này chạy sẽ lỗi hai biến $mangchan và $mangle, bác đưa nó vào hàm sort_array luôn đi

2 Likes

Mình phải viết tốt hơn người ta chứ. Đạt không thích nested if tí nào.

Thanks :+1:

1 Like

e đang học theo video của a trên freetuts. video của a hay quá

1 Like

Hi cám ơn bạn :smiley: Ra tết mình mới tiếp tục các serie đó được bạn ráng chờ nhé :smiley:

2 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?