hehe Em hỏi mà quên mất là nên thử lại rồi hãy hỏi. Hình như anh Greek nói sai rồi. Em mới thử lại, khi mà mình thay thứ tự trên ,ở cái chỗ mà khai hàm hay gọi hàm gì cũng vậy,thì nó cũng ko ảnh hưởng gì tới chương trình hết. Em thử thì em thấy vậy đó. Còn anh DHBL nói cao siu quá ko hỉu nỗi,hic.
Uh, tất nhiên là kết quả không thay đổi rồi bạn, vì có thay đổi thứ tự 3 số thế nào hàm MAX cũng sẽ tìm ra số lớn nhất(nếu ko thì giải thuật sai à?) Còn nếu bạn muốn kiểm tra thứ tự nó đã thay đổi làm sao, ảnh hưởng thế nào, thì thêm dòng code này vào ::eyebrow: Mã: #include <stdio.h> #include <conio.h> float max3s (float a,float b,float c); main() { float x,y,z; int o; tt : printf ("nhap vao 3 so :"); scanf ("%f%f%f",&x,&y,&z); [COLOR="Red"][B] printf ("\n x=%f - y=%f - z=%f",x,y,z);[/B][/COLOR] printf ("\nso lon nhat la %f",max3s(x,y,z)); printf ("\nco tip tuc ko c-k"); if (o=='c') goto tt; else getch(); } float max3s (float a,float b,float c) { float max; [COLOR="Red"][B] printf ("\n a=%f - b=%f - c=%f",a,b,c);[/B][/COLOR] max=a; if (max<b) max=b; if (max<c) max=c; return(max); }
uhm Thay đổi vị trí đó thì kết quả cũng thay đổi Nhưng ý em chỉ hỏi là làm sao mà máy biết đc khi tìm đc 3 số lớn nhất trong 3 số a,b,c từ hàm max3s thì đem qua hàm main nó lại hỉu là x,y hay z. Mà em khó hỉu vậy thôi chứ chắc mấy bài sau cứ làm tương tự như vậy là đc hỉ ?
uhm... thật ra giải thích cặn kẽ cho bạn hiểu thì cũng lôi thôi lắm, bạn cứ hiểu nôm na là nó tạo ra 1 bản sao của x,y,z bằng a,b,c khi truyền đủ số lượng và tương tích kiểu dữ liệu, những lần tới cứ làm thế kg vấn đề gì!!! ---Còn việc làm sao mà máy biết được thì cấu trúc nền bên dưới nó làm trên nguyên tắc mà DHBL đã giải thích rồi đấy? Có cần tôi nói lại kg ?
Nói vậy chắc hiểu đây. Hàm main() sẽ gọi hàm max3s() bên trong nó. Và để hàm max3s() chạy ra kết quả thì cần truyền vào 3 số kiểu float, ở đây là giá trị của các biến x, y, z. Khi viết: Mã: main() { ... max3s(x,y,z) } thì nên hiểu là hàm main() sẽ truyền giá trị của 3 biến này vào. Sau đó hàm max3s() sẽ tính toán với 3 giá trị này. Ở đây, hàm max3s() sẽ có tự tạo 3 biến cục bộ (chỉ có giá trị bên trong hàm max3s()) a, b, c theo thứ tự các giá trị nhập vào để tính toán. Việc a, b hay c lớn nhất là không quan trọng, bởi lẽ cái in ra cũng chỉ là giá trị lớn nhất. Tên biến có thay đổi thứ tự cũng không thành vấn đề. Và mới sực nhớ ra, bạn nên hiểu đoạn code: Mã: max3s(float a, float b, float c) {...} là hàm max3s() khi chạy cần 3 tham số kiểu float để chạy và tính toán, và khi muốn dùng như vậy thi phải có vùng nhớ để lưu 3 tham số này, biến a, b, c được tạo ra chỉ có mục đích như vậy. Khi chạy xong hàm sẽ trả về giá trị lớn nhất trong 3 giá trị đưa vào.
Cám ơn mấy anh nhìu nhé. Trên lớp thì khó hỏi đc thầy. Về nhà lại chẳng có bạn đê hỏi. "Có lẽ" em đã hỉu rồi ::(
Câu thứ 1: import java.lang.System; class X { attribute a: Number; attribute b: Number; attribute c: Number; } attribute X.a = 10; attribute X.b = bind a + 10; attribute X.c = bind lazy b + 10; var x = new X(); System.out.println(x.a); // in ra là 10 System.out.println(x.b); // in ra là 20 System.out.println(x.c); // in ra là 30 x.a = 5; System.out.println(x.a); // in ra là 5 System.out.println(x.b); // in ra là 15 System.out.println(x.c); // in ra là 25 Cho hỏi việc sử dụng toán tử "bind" trong câu lệnh trên có j` khác so với hàm gán thường không?Và "bind" và "bind lazy" trong trường hợp trên có nghĩa là sao? Câu thứ 2: class Person { attribute name: String; attribute parent: Person inverse Person.children; attribute children: Person* inverse Person.parent } Cho hỏi ý nghĩa các câu lệnh khai báo lớp trên.Mệnh đề inverse để làm gì? Cám ơn nhiều
Câu 1: 1>bind có tác dụng như vầy tự động cập nhật cập nhật dữ liệu của thuộc tính b theo dữ liệu của thuộc tính a. 2>bindlazy là cập nhật dữ liệu thuộc tính c thông qua việc cập nhật dữ liệu của thuộc tính b theo dữ liệu của thuộc tính a. Ví dụ khi bạn tạo một lớp NhânViên Mã: class NhanVien { attribute nlv:int ;// năm làm việc attribute luong:int; } Theo lẽ thường thì nlv sẽ ành hưởng đến tiền lương hai thuộc tính này có mồi quan hệ qua lại với nhau, nếu số năm làm việc càng nhiều thì lương càng nhiều. Xét cái công thức tính lương sau: Lương=1tr+ 100 *nlv nếu dùng bind thì ta không cần viết cái hàm tính lương, chỉ cần khời tạo giá trị cho nlv là có luôn giá trị của lương. nếu không dùng thì ta phài khời tạo giá trị cảu lương và năm làm việc.
Sao biết em mới học hơn 1 tháng hay thế Trường mang tiếng đhcntt vậy chứ giảng viên dạy chán òm Tự học là chính Nên mỗi đứa học 1 kỉu hỏi nhau khó lắm
Đây là ví dụ kết nối Database (SQLServer) sử dụng JDBC-ODBC Bridge DataSource Name: displayInJTable Table Student có cấu trúc: StudentID char(10) Name char(10) Address char(200) Image char(50) Mã: import java.sql.*; import javax.swing.*; import javax.swing.table.DefaultTableModel; import java.awt.*; import java.util.*; public class displayInJTable extends JFrame { JTable tblData=new JTable(); DefaultTableModel model; Connection connect; PreparedStatement pstm; ResultSet rs; String url,strSql; Vector rowHeader=new Vector(); displayInJTable() { Container contain; contain=getContentPane(); contain.setLayout(new FlowLayout()); rowHeader.add("StudentID"); rowHeader.add("Name"); rowHeader.add("Address"); rowHeader.add("Image"); model =new DefaultTableModel(rowHeader,0); tblData.setModel(model); JScrollPane scroll=new JScrollPane(tblData,JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED); contain.add(scroll); try { Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); url="jdbc:odbc:displayInJTable"; connect=DriverManager.getConnection(url,"sa","sa"); strSql="select * from student"; pstm=connect.prepareStatement(strSql,ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE); rs=pstm.executeQuery(); while(rs.next()) { Vector rowData=new Vector(); rowData.add(rs.getString(1)); rowData.add(rs.getString(2)); rowData.add(rs.getString(3)); rowData.add(rs.getString(4)); model.addRow(rowData); } System.out.print(model.getColumnName(1)); setSize(300,300); setVisible(true); }catch(Exception e) { e.printStackTrace(); } } public static void main(String []a) { new displayInJTable(); } }
ac bê nguyên cái source code vào luôn nhưng ko thấy cái design đâu, lỡ trót giúp đỡ xin làm thêm cái insert, update và delelete search nữa , vô cùng cãm ơn
cái design chỉ show lên cái table chứa dữ liệu lấy từ database thôi bạn ạ, vì chỉ đơn giản có vậy tôi thấy kg cần thiết đem lên đây. Còn về cái yêu cầu thêm đấy, bạn cứ code đi rồi post lên đây, tôi sẽ xem giúp cho, chứ thật sự tôi cũng kg có thời gian ngồi code, cái ví dụ trên ngắn nên tôi code cho bạn đó thôi. Thân !
Bạn nào trả lời nốt cho mình câu 2 ở post 467 trên kia đi. Hôm nay mình xin hỏi tiếp về 2 ví dụ sau VD1: var chris = Person { name: "Chris" children: [Person { name: "Dee" }, Person { name: "Candice" }] }; VD2:var chris = Person { var: me name: "Chris" var child1 = Person { name: "Dee" parent: me } var child2 = Person { name: "Candice" } children: [child1, child2] Các bạn giải thích hộ 2 Ví dụ trên làm những công việc gì. Nếu nói chi tiết từng câu lệnh thì càng tốt. Cám ơn nhiều
Có ai biết chương trình 3DSMAX4 hoặc 5 không? Có link download hoặc đính kèm file lên giúp mình nhé _thanks nhiều_
có bài toán là nhập vào giá trị của 1 mảng sau đó xuất ra theo thứ tự tăng dần : Mã: #include <stdio.h> #include <conio.h> main() { int t,j; int a[100],n,i; printf ("nhap vao n (voi n la so phan tu trong mang )"); scanf ("%d",&n); for (i=0;i<n;i++) { printf ("nhap vao gia tri cua a[%d]",i); scanf ("%d",&a[i]); } [COLOR="Red"]for(i=0;i<n-1;i++)[/COLOR] [COLOR="Yellow"]for(j=i+1;j<n;j++) [/COLOR] if (a[i]>a[j]) { [COLOR="Blue"]t=a[i]; a[i]=a[j]; a[j]=t;[/COLOR] } for (i=0;i<n;i++) printf("%d",a[i]); getch ( ); } Em hỉu đc máy làm 1 đoạn như sau : -ban đầu nó chờ mình nhập n -sau đó nó chờ mình nhập lần lượt các giá trị của a[0] tới a[n-1] -tới cái for màu đỏ,có i=0 --> thõa mản i<n---> thực hiện cái for màu vàng---> nếu thõa mãn----->thực hiện if ,nếu if thõa mãn thì thực hiện khối lệnh màu xanh. Em nghĩ như vậy Nếu đúng là như vậy thì sau khi thực hiện khối lệnh màu xanh xong nó sẽ làm gì típ Giúp em hen.
Mã: for(i=0;i<n-1;i++) for(j=i+1;j<n;j++) if (a[i]>a[j]) { t=a[i]; a[i]=a[j]; a[j]=t; } -->sắp xếp lại mảng theo thứ tự tăng dần, phần màu xanh dùng hoán vị 2 số cho nhau vì dụ a=5, b=6 sẽ ra a=6, b=5. --->do đó sau khi chạy hết 2 cái for thì cái mảng được sắp xếp từ bé tới lớn rồi. --->dòng for kế tiếp là dùng xuất cái mảng sau khi xắp xếp ra thế thôi quá đơn giản. --->nếu muốn xuất từ lớn tời bé thì dòng for cuối thay bằng Mã: for(int i=n;i!=0;i--) printf("%d",a[i]);
hiểu đơn giản là nó sẽ truy vấn n^2 lần, xem cái sau có lớn hơn cái trước ko. Dĩ nhiên là sau n^2 lần truy vấn thì chắc chắn là tất cả các phần tử đã sort tăng(cái này chứng minh dễ mà) cái này gọi là bubble sort. Học đệ quy (và có thể là cả chặt nhị phân) rồi thì sẽ biết thêm quicksort, chỉ phải thực hiện n*log(n) lần thôi(log là log cơ số 2 nhé, ko phải 10 đâu) rồi còn radix sort, merge sort, shell sort, nhiều lắm có thể làm hẳn cả một chuyên đề về sắp xếp cơ đấy
Em đang muốn học thêm PHOTOSHOP để tự Design vài cái ảnh mang phong cách của mình,em ở Sài Gòn không biết có chỗ nào dạy PHOTOSHOP giỏi không vậy mấy Bác?