Đến nội dung

Hình ảnh

Ma phương chẵn - Pascal


  • Please log in to reply
Chủ đề này có 5 trả lời

#1
Jaliyiah Sophia

Jaliyiah Sophia

    Binh nhất

  • Thành viên
  • 20 Bài viết
JS đang làm bài này nộp thầy lấy điểm thi=.=! thầy chơi ác quá đi áh! mọi người giúp JS nhé!
VIẾT CHƯƠNG TRÌNH TẠO MA PHƯƠNG CHẴN BẰNG PASCAL
Trong thời gian BQT 3T fix diễn đàn, mems 3T hãy đăng ký nick mới tại VMF...
3 tháng nữa ra đi...
Em hồn nhiên... em sẽ bình yên...

#2
dehin

dehin

    Chém gió thần!

  • Thành viên
  • 733 Bài viết
Ma phương là 1 bảng số hình vuông gồm n hàng * n cột đặc biệt!
Tổng các số ( nguyên) trên các mỗi hàng, mỗi cột, và 2 đường chéo (chính và phụ) đều bằng nhau!
Kí hiệu: n gọi là cấp của ma phương
Tổng các số trên mỗi hàng=tổng các số trên mỗi cột= tổng các số trên mỗi đg chéo và gọi là gì nhỉ quên mất! (*)
Cách xây dựng ma phương từ 1 dãy các số nguyên liên tiếp!
Nếu cấp lẻ: đắp thêm 1 số ô vuông khác!
Nếu cấp chẵn: vẽ 2 đường chéo chính và phụ. Những ô nào bị 2 đường chéo đó gạch dính thì lấy số trong ô đó ra.
Từ các số đó sắp theo thứ tự giảm dần. Rồi lần lượt trả lại vào các ô bị gạch đó từ đầu đến cuối.
Love Lan Anh !

#3
dehin

dehin

    Chém gió thần!

  • Thành viên
  • 733 Bài viết
Đây là chương trình tạo ma phương chẵn cấp 4 thui nhập từ bàn phím, xấy dựng từ dãy số nguyên liên tiếp bắt đầu từ số p nào đó nhập từ bàn phím!
program ma_phuong;
uses crt;
var A:array[1..100,1..100] of integer;
B:array[1..100] of integer;
i,j,n,t:integer;
S,p:integer;

Begin
clrscr;
write(' Nhap cap ma phuong chan:'); readln(n);
Write('Nhap so nho nhat cua ma phuong:');readln(p);
for i:=1 to n do
for j:=1 to n do begin A[i,j]:=p; p:=p+1; end;
For i:=1 to n do
begin
for j:=1 to n do write(A[i,j]:4);
writeln;
end;
t:=1;
for i:=n downto 1 do
If i>((n+1)/2) then begin B[t]:=A[i,i]; B[t+1]:=A[i,n+1-i]; t:=t+2
end else begin B[t]:=A[i,n+1-i]; B[t+1]:=A[i,i]; t:=t+2; end;
t:=1;
For i:=1 to n do
If i< ((n+1)/2) then begin A[i,i]:=B[t]; A[i,n+1-i]:=B[t+1]; t:=t+2
end
else begin A[i,n+1-i]:=B[t]; A[i,i]:=B[t+1]; t:=t+2; end;
writeln;
For i:=1 to n do
begin
for j:=1 to n do write(A[i,j]:4);
writeln;
end;
S:=0;
for i:=1 to n do S:=S+A[i,1];
Writeln(' Ma phuong cap ',n,' co tong deu bang:', s:6);
readln
end.

Bài viết đã được chỉnh sửa nội dung bởi dehin: 19-03-2010 - 19:07

Love Lan Anh !

#4
Jaliyiah Sophia

Jaliyiah Sophia

    Binh nhất

  • Thành viên
  • 20 Bài viết
bài của bạn chĩ đúng với ma phương cấp 4 thôi, cấp 6 là sai rồi^^
Trong thời gian BQT 3T fix diễn đàn, mems 3T hãy đăng ký nick mới tại VMF...
3 tháng nữa ra đi...
Em hồn nhiên... em sẽ bình yên...

#5
dehin

dehin

    Chém gió thần!

  • Thành viên
  • 733 Bài viết
Hôm viết mình thử lại thấy đúng tất mà! Để tớ thử lại xem đã nhé !
Love Lan Anh !

#6
dehin

dehin

    Chém gió thần!

  • Thành viên
  • 733 Bài viết
Ừ sai thật.
Sai ở cái lập luận tạo ma phương chẵn ban đầu!
Ma phương lẻ: thì có 1 cách tạo chung
Ma phương chẵn: chia làm 2 loại cấp 4m, và cấp 4m+2.
Mỗi loại cấp có cách lập riêng.
Mình sẽ pót chỉnh lại sau!

Bài viết đã được chỉnh sửa nội dung bởi dehin: 19-03-2010 - 19:06

Love Lan Anh !




1 người đang xem chủ đề

0 thành viên, 1 khách, 0 thành viên ẩn danh