PDA

Xem đầy đủ chức năng : Giải bài toán tin



hạc trắng
14-03-2007, 12:22 AM
help1:ai rành tin học giải cứu tôi với :typing:
bài: giả sử trong bộ nhớ đã có 1 dãyA các phần tử a,i là các số nguyên viết công htức để tìm xem trong dãy có bao nhiêu số x với x là một số nhập từ bàn phím ?
:helpme: :tears1: :helpme: :helpme:
http://cards.funnystories.ru/288100 ;))))))))))))))))

player
14-03-2007, 02:31 AM
help1:ai rành tin học giải cứu tôi với :typing:
bài: giả sử trong bộ nhớ đã có 1 dãyA các phần tử a,i là các số nguyên viết công htức để tìm xem trong dãy có bao nhiêu số x với x là một số nhập từ bàn phím ?
:helpme: :tears1: :helpme: :helpme:
http://cards.funnystories.ru/288100 ;))))))))))))))))

Đây là một bài duyệt một mảng (duyệt mảng là xem xét các phần tử trong mảng).Và bạn nhận thấy rằng việc duyệt mảng này là bắt buộc phải duyệt hết mảng.Vậy ta chọn phương pháp duyệt từ đầu đến cuối.Ta chọn một biến số y làm số đếm.Ban đầu y=0.Có nghĩa là đầu tiên ta lấy phần tử thứ 1 của dãy ra xem nó có =x không nếu bằng x ta đếm là y=1 con không bằng x thì y vẫn =0.Ta lại chọn tiếp phần tử thứ 2 ra xem có bằng x không nếu =x thì ta lại tăng y lên 1.Cứ thế ta xét hết các phần tử của dãy và sẽ biết trong dãy có bao nhiêu số x

Và đây là một đoạn mã trong java :(bạn chỉ cần chú ý phần có màu là ok để hiểu cách làm thôi còn phần lập trình thì mỗi ngôn ngữ có một cách lập trình

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class mang
{
public static void main(String[] arg){
int z[] ={4,3,2,8,9,2}; //dãy số ban đầu
int y = 0;//số đếm
BufferedReader input=new BufferedReader(new InputStreamReader(System.in));
String datain = "";
try {
System.out.print("Nhap so vao :");
datain=input.readLine();
} catch (IOException ex) {
ex.printStackTrace();
}
int x = Integer.parseInt(datain); // x sẽ nhận giá trị của bạn từ bàn phím vào
for(int i=0;i<6;i++){
if(z[i]==x) y++;
} //Đây là phần duyệt mảng
System.out.println("Co "+ y + " so " + x);
}

hạc trắng
16-03-2007, 12:00 AM
bạn có thể nói rõ tí xíu nữa ko
mình vẫn chưa hiểu lắm:buctoc: :nooo:
:blinking: cám ơn nhiều vì đã giúp đỡ :kissing: http://www.lovepostcards.net/288100 ;))))))))))))))))

player
16-03-2007, 06:36 AM
bạn có thể nói rõ tí xíu nữa ko
mình vẫn chưa hiểu lắm:buctoc: :nooo:
:blinking: cám ơn nhiều vì đã giúp đỡ :kissing: http://www.lovepostcards.net/288100 ;))))))))))))))))

ví dụ hen

trong code mình đưa có một dãy số z là :int z[] ={4,3,2,8,9,2};
=> z[0]=4 ;z[1]=3 ; z[2]=2 ; z[3]=8 ;z[4]=9 ; z[5]=2
khi bạn nhập bạn phím số 2 vào chẳng hạn thì số 2 sẽ đưa vào biến x => x=2
dòng lệnh sau sẽ làm công việc nhập số vào đưa số vào x

BufferedReader input=new BufferedReader(new InputStreamReader(System.in));
String datain = "";
try {
System.out.print("Nhap so vao :");
datain=input.readLine();
} catch (IOException ex) {
ex.printStackTrace();
}
int x = Integer.parseInt(datain);

để hiểu code trên thì bạn phải biết ngôn ngữ java do vậy mình chỉ muốn đề cập đến ý tưởng thôi hen.Nếu bạn biết ngôn ngữ C thì mình sẽ viết lại C cho bạn.Còn sau đây là đoạn duyệt mảng :

for(int i=0;i<6;i++){
if(z[i]==x) y++; // câu lệnh này nó là nếu z[i] = x thì y tăng lên 1
}

Đoạn có trên có ý nghĩa như sau
đầu tiên y=0
i=0 : nếu z[i]=z[0] bằng x thì y sẽ tăng lên 1 vì z[0]=4 còn x=2 nên y vẫn bằng 0
i=1 : z[i]=z[1]=3 ,x=2 z[1] không bằng x ,y vẫn = 0
i=2 : z[i]=z[2]=2 =x do vậy y tăng thêm 1 => y=1
i=3 : z[i]=z[3]=8 không bằng x => y vẫn = 1
i=4 : z[i]=z[4]=9 không bằng x=2 => y vẫn =1
i=5 : z[i]=z[5]=2 =x => y tăng thêm 1 =>y=2

hạc trắng
17-03-2007, 09:01 AM
cám ơn nhiều do tui ko hiểu ngôn ngữ java , tui hơi kém về phần toán tin , có thể cho biết bí quyết nhận biết 1 bài tập ko

tí quên cho hỏi tí , anh bạn tên gì vậy

tí quên cho hỏi tí , anh bạn tên gì vậy

player
17-03-2007, 05:07 PM
cám ơn nhiều do tui ko hiểu ngôn ngữ java , tui hơi kém về phần toán tin , có thể cho biết bí quyết nhận biết 1 bài tập ko


bí quyết thật sự không có gì đâu,chủ yếu là do bạn chưa được dạy một môn cơ sở trong tin học có tên gọi là "Cấu trúc dữ liệu và giải thuật " thôi.Trong môn học đó sẽ đưa ra cho bạn các phương pháp tìm kiếm sắp xếp tối ưu nhất của thế giới đối với một dữ liệu.