Jump to content

  • Log in with Facebook Log in with Twitter Log in with Windows Live Log In with Google      Sign In   
  • Create Account
  • facebook
  • googleplus
  • twitter

Photo
- - - - -

Mỗi ngày 1 đoạn code( java, c++, VC++, basic ,c#)


  • Please log in to reply
20 replies to this topic

#1 Thiên Hà

Thiên Hà

    Chém Gió

  • History
  • 1,054 posts

Posted 27 July 2007 - 09:46 PM

Mặc dù trình độ lập trình còn hạng chế nhưng tớ vẫn thích cái này. Anh em nào giỏi về cái này thì vào đây post cho anh em những đoạn code hay nha. Mình chỉ có thể biết mấy ngôn ngữ đó thôi, ai biết thì post thêm các ngôn ngữ khác. Mình khai trương trước đây(mọi người vào đây để mình học hỏi thêm nha)

Visual BASIC: bạn có thấy 1 chương trình có thể tạo ra 1 file .txt đi theo nó dù nó ở bất kì nơi nào không dưới đây là đoạn code nói về cách làm như thế(bạn tạo 1 project standart EXE tạo 1 nút button và 1 textbox để ghi những gì muốn lưu)-> sau khi bạn biên dịch nó thành file .exe thì dù bạn có lưu cái file .exe này ở đâu khi bạn nhấn vào nút button thì nó luôn hiện ra file tam.txt ở đó

Private Sub Command1_Click()
Dim duongdan As String
duongdan = App.Path // tìm đường dẫn file thực thi.exe
If Right(duongdan, 1) <> "\" Then // nếu đường dẫn này không có kí tự "\"thì thêm nó vào
duongdan = duongdan + "\"
duongdan = duongdan & "tam.txt" //tạo 1 đường dẫn
If Dir(duongdan) <> "" Then //kiểm tra đường dẫn có tồn tại không
Open duongdan For Append As #1 // nếu tồn tại mở ra ghi tiếp
Else
Open duongdan For Output As #1 //nếu không tồn tại thì tạo nó ra
End If
Print #1, Text1.Text //ghi dữ liệu vào file
End If
Close #1 //đóng file đó lại sau khi ghi xong
End Sub

còn gà lắm anh em góp ý thêm nha

#2 Yeu3mdaikho

Yeu3mdaikho

    *CrackTeam*

  • History
  • 900 posts

Posted 27 July 2007 - 10:26 PM

Bạn cho mình hỏi Code của Visual6 nhé !
Mình muốn tạo một file *.exe, cơ chế hoạt động như sau :

Giao diện đơn giản gồm một textbox (có thể hiện tv được)
Một button Go! và một button Exit
Khi mình run click vô botton Go, trên textbox1 hiện văn bản 1
click tiếp vô botton Go, trên textbox1 hiện văn bản 2
click tiếp vô botton Go, trên textbox1 hiện văn bản 3
click tiếp vô botton Go, trên textbox1 hiện văn bản 4
.....
cho tới hết văn bản thứ n.
code cho button Exit dễ không đề cập.

Cho tớ hỏi thêm nếu theo cơ chế tương tự, thêm textbox 2
cứ thế click Go thì but 1 hiện vb1.1, but 2 hiện vb2.1
tiếp tục click Go thì but 1 hiện vb1.2, but 2 hiện vb2.2
cứ thế click Go thì but 1 hiện vb1.3, but 2 hiện vb2.3
.....
cứ thế click Go thì but 1 hiện vb1.n, but 2 hiện vb2.n
( đi kèm nhau đôi một, các văn bản mình đưa kèm theo hoặc làm thế nào tùy bạn code)

Thanks ! mình chỉ viết được thế thôi.

#3 Thiên Hà

Thiên Hà

    Chém Gió

  • History
  • 1,054 posts

Posted 27 July 2007 - 10:36 PM

cái hiện test nhiều lần ấy mình phát thào sơ cho bạn nha
-tạo 1 mảng 1 chiều chứa test gồm n phần tử giả sử test(n)
-tạo 1 biết đếm khởi tạo =0 : dem =0 là biến static
-mổi lần bấm Go thì dem tăng lên 1: dem=dem+1 và textbox.test=test(dem)
Còn về cái form thì bạn phải add thêm form: n form chẳng hạn cũng là ý tưởng ở trên

#4 Thiên Hà

Thiên Hà

    Chém Gió

  • History
  • 1,054 posts

Posted 27 July 2007 - 10:44 PM

code để bạn tham khảo
Option Explicit

Dim test(100) As String

Dim dem As Integer







Private Sub Command1_Click()

Dim i As Integer

Text1.Text = test(dem)

dem = dem + 1

if dem>100 then dem =0

End Sub



Private Sub Command2_Click()

End

End Sub



Private Sub Form_Initialize()

dem = 0

Dim i As Integer

For i = 0 To 100

	test(i) = "c" & i

Next

End Sub

Edited by tiendung, 27 July 2007 - 10:47 PM.


#5 cann07

cann07

    Advanced Member

  • Member
  • PipPipPip
  • 177 posts

Posted 01 August 2007 - 12:47 AM

Tiendung đâu rồi , vào post bài về c++. basic đi chứ , tui cũng muốn học chuts nào . tiếc chô tui mới học delphi thôi . ma thấy dephi ở VN mình ít dùng tới nhỉ , sao bên này họ cho học làm gì chăng biét , nhưng nói chung delphi cũng hay , làm dc nhiều cái thú vị ,gio muốn thử sức với c++ chút xem sao , anh em mình cùng nhào zoo nào

#6 Thiên Hà

Thiên Hà

    Chém Gió

  • History
  • 1,054 posts

Posted 01 August 2007 - 11:28 AM

Hix tại thấy không ai chịu lên tiếng về vấn đề này thấy buồn quá không có tin thần làm tiếp. OK bạn có thể nêu ra vấn đề mình sẽ cố gắng hết sức giúp bạn

#7 baby_love_cream_04

baby_love_cream_04

    Advanced Member

  • Member
  • PipPipPip
  • 244 posts

Posted 10 August 2007 - 08:57 AM

Cho em hỏi tí về VB6
Anh có thể nói về thuật toán đồi từ âm lịch sang dương lịch ko.Anh cho em xin code lun nha :((

#8 Thiên Hà

Thiên Hà

    Chém Gió

  • History
  • 1,054 posts

Posted 10 August 2007 - 01:08 PM

gợi ý thuật toán cho bạn(nếu ngày âm và dương đều xuất phát từ 0/0/0 thì có thuật toán sau):
- tổng số ngày từ năm 0 đến ngày tháng năm bạn cần đổi của âm lịch cũng bằng tổng số ngày của năm dương lịch. Tìm tổng số ngày của năm 0 đến ngày bạn cần đổi ( xem lịch đi bạn sẽ biết tính tổng số ngày này rất dễ dàng ) => tổng số ngày của năm dương lịch là x
- dùng 1 dòng lập while (đây chỉ là thuật toán nên không đúng cấu trúc bạn đổi lại cho đúng)
dem=0
nam = -1// biến này cho biết năm của dương lịch được đổi ra
while (x<365)
{
	   if(dem mod 400=0 or (dem mod 4=0 and dem mod 100<>0)) then 
					x=x-366// năm nhuần thì trừ 366 ngày
			else
					x=x-365
		   end if
		   nam=nam+1//để bạn dễ hiểu nên tôi tách 2 biến nam và diem ra chứ thật chất 2 biến là 1
		   dem=dem+1
}
// sau khi tính ra năm ở trên thì x còn lại là tổng số ngày còn lại
ngay=0 
thang=0
 //kiểm tra nam có phải là nhuần hay không
if(nam mod 400=0 or (nam mod 4=0 and nam mod 100<>0) then
		 SoNgayThang2 = 29
else 
		 SoNgayThang2=28
for i =1 to 12
	if(x>0) then
			 ngay = x// nếu mà x>0 nhưng không đủ ngày 1 tháng thì nó sẽ là ngày bạn cần
			 if( (i=1 or i=3 or i=5 or i=7 or i=8 or i=10 or i=12))
					x=x-31  
			 else if(i=2)
						x=x-SoNgayThang2
					else
						x=x-30
			  end if
			  thang = thang + 1
			  
	 else 
			  exit for
	 end if
next  
				 
// kết quả cuối cùng 
=>ngay/thang/nam
chúc thành công, thuật toán này vẫn chưa giải quyết được vấn đề năm nhuận của âm lịch có 2 tháng giống nhau nếu cần thì sẽ update sau

Edited by tiendung, 10 August 2007 - 03:50 PM.


#9 baby_love_cream_04

baby_love_cream_04

    Advanced Member

  • Member
  • PipPipPip
  • 244 posts

Posted 10 August 2007 - 01:57 PM

Một bài viết rất hay.
Nhưng anh hiểu sai ý em rồi.Vd như năm nay là năm 2007 thì sẽ chuyển đổi thành Đinh Hợi :((

#10 Thiên Hà

Thiên Hà

    Chém Gió

  • History
  • 1,054 posts

Posted 10 August 2007 - 02:13 PM

ẹc uhm vậy thì thuật toán đó nè
//khai 2 cái mãng
can(10)={"Giap", "At", "Binh", "Dinh", "Mau", "Ky","Canh", "Tan", "Nham", "Quy"}
chi(12)={"Ty", "Suu", "Dan", "Meo", "Thin", "Ty","Ngo", "Mao", "Than", "Dau", "Tuat", "Hoi"}
//cho biết năm cần đổi
=> xuất ra phần tử can((nam+6) mod 10) và chi((nam+8) mod 12) hết

Edited by tiendung, 10 August 2007 - 02:28 PM.


#11 bye

bye

    Junior Member

  • Member
  • Pip
  • 15 posts

Posted 15 August 2007 - 09:38 PM

to tiendung : Giúp mình về thuật giải chương trình chơi cờ caro được kô? Mình cần thuật giải , chứ kô phải code.Thanks!

#12 Thiên Hà

Thiên Hà

    Chém Gió

  • History
  • 1,054 posts

Posted 15 August 2007 - 10:36 PM

mình không rành về đồ họa lắm và trò cảo chưa làm bao giờ nhưng mình cũng sẽ giúp bạn 1 giải thuật theo ý nghĩ của mình:
- tạo 1 mãng 2 chiều A(n*n) mỗi 1 phần tử tương ứng với 1 ô.
- Người chơi thứ 1 bạn sẽ cho dữ liệu là số 1, người chơi thứ 2 là số 2( muốn số nào cũng được tùy bạn miễn 2 người chơi khác số)
- Khi người thứ nhất đánh vào ô nào trên bàn cờ tương ứng nó sẽ là mãng 2 chiều thì phần tử tương ứng trên mãng 2 chiều là giá trị 1( vd: người thứ nhất đánh X tại ô (1,5) thì A(1,5)=1) . Tương tự cho người thứ 2
- Viết 1 hàm kiểm tra ( Đừơng chéo và đường ngang tại 1 ô có dữ liệu nếu đủ 5 số 1 mà không tồn tại 1 số 2 nào chèn vào thì người thứ nhất thắng, tương tự người thứ 2 thắng)

#13 bye

bye

    Junior Member

  • Member
  • Pip
  • 15 posts

Posted 17 August 2007 - 06:40 PM

Trước hết cảm ơn bạn nhưng bạn hiểu sai ý mình.Chương trình như vậy thì thà mình kiếm 1 tờ giấy kẻ caro rồi chơi có đỡ hơn kô,lập trình làm gì cho mệt.Ý mình là chơi với máy cơ,giống như trí tuệ nhân tạo ấy.Hic.......

#14 Thiên Hà

Thiên Hà

    Chém Gió

  • History
  • 1,054 posts

Posted 17 August 2007 - 08:45 PM

Trí tuệ nhân tạo thì đã từng học toàn là nói mấy cái giả thuật của chess nhưng nói thật thì nó rất khó. Nếu muốn biết cách đánh với máy thì phải tìm hiểu code sẵn bạn thử lên trang manguon.com trong đó có vài bài nói về caro xem sao. Bạn hãy xem thuật toán của người ta nếu không hiểu cái gì thì bạn có thể đưa lên đây nếu biết mình sẽ giúp bạn

#15 bye

bye

    Junior Member

  • Member
  • Pip
  • 15 posts

Posted 18 August 2007 - 06:26 PM

import javax.swing.*;
import java.awt.event.*;
import java.io.*;


public class SampleFile1 extends JFrame implements ActionListener,Serializable
{

JLabel idLabel;
JLabel passLabel;
JTextField idText;
JPasswordField passText;
JButton loginButton;
JButton registerButton;

public SampleFile1()
{
super("Login");
setLayout(null);

idLabel=new JLabel("ID");
add(idLabel);
idLabel.setBounds(20,20,50,20);

idText=new JTextField();
add(idText);
idText.setBounds(70,20,210,20);

passLabel=new JLabel("Pass");
add(passLabel);
passLabel.setBounds(20,40,50,20);

passText=new JPasswordField();
add(passText);
passText.setBounds(70,40,210,20);

loginButton=new JButton("Login");
add(loginButton);
loginButton.setBounds(180,80,100,20);

registerButton=new JButton("Register");
add(registerButton);
registerButton.setBounds(80,80,100,20);

registerButton.addActionListener(this);
loginButton.addActionListener(this);

setSize(300,150);
show();

}


public void actionPerformed(ActionEvent e)
{
try
{
JButton bt;
JFrame mainFrame=new JFrame("Main");
mainFrame.setSize(300,300);
boolean check=false;
bt=(JButton)e.getSource();
if(bt==registerButton)
{
FileOutputStream fOut=new FileOutputStream("user.dat");
ObjectOutputStream objOut=new ObjectOutputStream(fOut);
Account a=new Account(idText.getText(),passText.getText());
objOut.writeObject(a);
fOut.close();
objOut.close();

}
if(bt==loginButton)
{
FileInputStream fIn=new FileInputStream("uses.dat");
ObjectInputStream objIn=new ObjectInputStream(fIn);
Account b;
b=(Account)objIn.readObject();
while(b!=null)
{
if(idText.getText().equals(b.id)&&passText.getText().equals(b.pass))
{
mainFrame.setVisible(true);
check=true;

}
b=(Account)objIn.readObject();

}
if(check) JOptionPane.showMessageDialog(this,"Try again");
fIn.close();
objIn.close();
}
}
catch(IOException ex)
{

}
catch(ClassNotFoundException exc)
{

}

}


public static void main(String [] ts)
{
new SampleFile1();
}


}

class Account
{
String id;
String pass;

public Account(String id,String pass)
{
this.id=id;
this.pass=pass;

}
}





Xem giùm mình chương trình này gấp.Tức quá.....tức chết đi mất.........Khi dịch thì kô báo lỗi gì nhưng khi chạy thì nó kô thực hiện đúng như vậy, kô biết sai ở đâu nữa.

#16 Thiên Hà

Thiên Hà

    Chém Gió

  • History
  • 1,054 posts

Posted 19 August 2007 - 07:55 AM

code của bạn là lưu ID và pass vào file "user.dat". Bạn lưu vào file user.dat không được hay là đọc lên không được (cho mình hỏi luôn bạn đang dùng JDK version??). Nói rõ tình trạng bạn không thực hiện được cái gì mình mới có thể phát hiện lổi giúp bạn được. Lần sau chép code vào tab code nhá chứ chép như vậy khó nhìn code lắm
Bạn nên khai báo 1 số cái là cần thiết để khởi tạo như giả sử bạn khai "JButton bt" thì tốt nhất là bạn nên Khai là "JButton bt = new JButton". Java là hướng đối tượng mấy thứ kia là class do đó nó cần khởi tạo đúng

Edited by tiendung, 19 August 2007 - 08:07 AM.


#17 bye

bye

    Junior Member

  • Member
  • Pip
  • 15 posts

Posted 19 August 2007 - 11:29 AM

Thứ nhất: mình lưu thông tin kô được , và tất nhiên là kô đọc được (vì đã lưu được đâu)
Thứ hai: JDK 1.4.2
Thứ ba: tình trạng giống như mình đã nói trong diều thứ nhất (nếu kô phiền bạn có thể chạy nó rồi sẽ hiểu )
Thứ tư : OK, lần sau sẽ chép code vào tab code
Thứ năm: cái này là 1 mong muốn nhỏ của mình , mong bạn đồng ý.Mình có thể add nick bạn được kô?Mục đích chỉ để học hỏi thôi.Vì post lên 4r sẽ rất lâu , mình phải chờ gần 1 ngày để nhận được reply từ bạn, mà thời hạn nộp bài kô cho phép mình chờ lâu như thế . Mình có thể đảm bảo với bạn , bạn sẽ kô bị làm phiền khi bạn đang bận , và mình sẽ chỉ hỏi khi bạn đồng ý.
Nếu được , liên lạc với mình qua nick woo_ai.ni .Nếu bạn kô đồng ý , mình vấn vui vẻ post trên 4r
Thứ sáu: Làm ơn reply cho mình ngay khi bạn có thể........ hic ...hic ....tức quá......

#18 DRAGON07

DRAGON07

    IT'S ME

  • History
  • 911 posts

Posted 02 November 2007 - 11:37 PM

Các đại ca ơi,giải giùm em bài này bằng C
"viết chương trình để từ một ô bất kỳ trên bàn cờ vua, con mã có thêr đi hết các ô của bàn cờ mà không dẫm lên các ô mà nó đi trước đó."
Đấy, yêu cầu của nó là thế, hôm trước có đọc đuợc cái đề này nhưng mà nghĩ chưa ra ;) , mọi người giúp đõ với nhé ;)

#19 Thiên Hà

Thiên Hà

    Chém Gió

  • History
  • 1,054 posts

Posted 03 November 2007 - 11:20 AM

viết theo hướng đối tượng nhé: (c++)

#include<conio.h>
#include <stdio.h>
#include <dos.h>
struct OCo{
		 
			  int x,y;
};
OCo HuongDi[8]= {   {-2,-1},{-2,1},{-1,2},{1,2},
				{2,1},{2,-1},{1,-2},{-1,-2}};
// ngựa có thể đi theo 8 hướng trên 1 ô cờ
class MaDiTuan{
		 private:
			 int BanCo[8][8];// bàn cờ có 8*8 ô 
		 public:
			 int TinhHuongDi(OCo a) // cho biết con mã có thể đi được bao nhiêu hướng tối đa là 8
			 {			
					int d,c,dem = 0;
				for ( int i=0;i<8;i++)
				 {
					   c=a.x+HuongDi[i].x;
					   d=a.y+HuongDi[i].y;
					   if (d>=0&&d<8&&c>=0&&c<8 && BanCo[d][c]==0)
							 dem++;
				 }
				 return dem;
			 }
			 MaDiTuan (OCo a)
			  {
					int i,j; 
					for (i=0;i<8;i++)
							 for (j=0;j<8;j++)
								  BanCo[i][j]=0;
					 int diem=1;
					 int min,d,c,dd,k;
					 do{
							 BanCo[a.x][a.y]=diem;
							 min=9;
							 for (i=0;i<8;i++)
							 {
								d=a.y+HuongDi[i].y;
								c=a.x+HuongDi[i].x;
								 //tại vị trí c,d trên bàn cờ nếu trống thi đi tiếp 
								 if (d<8 && d>=0 && c<8 && c>=0 && BanCo[d][c]==0)
								 {
									OCo t;
									t.x=c;
									t.y=d;
									dd=TinhDuongDi (t);
									if(min>dd){ min=dd; k=i }

								   }
								}
								// Gan vi tri dong tai o thap nhat cho con ma
								a.x=a.x+HuongDi[k].x;	  
								// Gan vi tri cot tai o thap nhat cho con ma
								a.y=a.y+HuongDi[k].y;	  
								  //để biết ô mã đi bạn có thể dùng hàm print để nó hiện a.x và a.y tại đây
								diem++;
							 
						 }  while(diem<=64)	  
					 
			   }
			 
};
void main(){
		 OCo khoidau;
		 khoidau.x=rand(8);// cho con mã tại vị trí bất kì trên ô cờ
		 khoidau.y=rand(8);
		 MaDiTuan matuan (khoidau);
		 getch();
}
Do tab code thể hiện khó nhìn bạn copy đoạn code này vào word hay notepad mà xem sẽ dễ nhìn hơn(code đã hiệu chỉnh có thể chạy)

Edited by Thiên Hà, 25 January 2008 - 12:59 AM.


#20 DRAGON07

DRAGON07

    IT'S ME

  • History
  • 911 posts

Posted 09 November 2007 - 11:26 PM

hix, sao em dùng turbo C++ để chạy nó báo bao nhiêu là lỗi.





Similar Topics Collapse

1 user(s) are reading this topic

0 members, 1 guests, 0 anonymous users