Trang chủ arrow Diễn đàn
Trả lời: Thắc mắc về một số đoạn code KTLT (ai cần thì gửi vào đây) (1 đang xem) (1) Khách
Những ngôn ngữ đang học
Bài viết dưới cùng Gửi trả lời Được ưa thích: 0
CHỦ ĐỀ - Trả lời: Thắc mắc về một số đoạn code KTLT (ai cần thì gửi vào đây)
#3825
sergio (Thành viên)
Năng động
Bài viết: 34
graphgraph
Thành viên gián tuyến Click vào đây để xem thông tin về thành viên này
Giới tính: Nam Nơi ở: TP.HCM Ngày sinh: 1988-05-09
Thắc mắc về một số đoạn code KTLT (ai cần thì gửi vào đây) 14 Năm, 5 Tháng trước đây  
đoạn code này là sao vậy?

Code:

(11 > 6) * 100 + ( 'A' < 'Z' ) * 'B'


Sao kết quả của nó là 166
 
 
Sửa chữa lần cuối: 19/11/2009 03:08 bởi nhatbui.
 
I am Sergio
  Đã khóa chức năng gửi bài.
#3826
utcung (Thành viên)
Năng động
Bài viết: 32
graphgraph
Thành viên gián tuyến Click vào đây để xem thông tin về thành viên này
Trả lời: KTLT???? 14 Năm, 5 Tháng trước đây  
Thì nó so sánh 11>6 là true nghĩa la bằng 1
---> 1 * 100 = 100
'A' bằng 65
'Z' bằng 89
--> 'A'<'Z' nghĩa la true
---> 1* 66 ==66
==> 100 + 66 = 166
 
 
Chân lý của cuộc sống là bắt đầu từ những cái nhỏ bé nhất
  Đã khóa chức năng gửi bài.
#3830
sergio (Thành viên)
Năng động
Bài viết: 34
graphgraph
Thành viên gián tuyến Click vào đây để xem thông tin về thành viên này
Giới tính: Nam Nơi ở: TP.HCM Ngày sinh: 1988-05-09
Trả lời: Thắc mắc về một số đoạn code KTLT (ai cần thì gửi vào đây) 14 Năm, 5 Tháng trước đây  
thanks
 
 
I am Sergio
  Đã khóa chức năng gửi bài.
#3837
4nh_Thj_k0 (Thành viên)
Tích cực
Bài viết: 275
graphgraph
Thành viên gián tuyến Click vào đây để xem thông tin về thành viên này
Trả lời: Thắc mắc về một số đoạn code KTLT (ai cần thì gửi vào đây) 14 Năm, 5 Tháng trước đây  
Bạn nào có cách nhớ cái bảng mã ASCII của môn KTLT không?
 
 
...Và cho dù tình yêu chẳng phai màu
Anh đã chọn cho mình đường phía trước
Thì hãy tin, đừng bao giờ đi ngược
Bởi em không thể đợi anh cuối con đường
...
  Đã khóa chức năng gửi bài.
#3838
mono (Thành viên)
Năng động
Bài viết: 35
graphgraph
Thành viên gián tuyến Click vào đây để xem thông tin về thành viên này
Trả lời: Thắc mắc về một số đoạn code KTLT (ai cần thì gửi vào đây) 14 Năm, 5 Tháng trước đây  
không nhất thiết bạn phải nhớ cả cái bảng đó đâu.
bạn chỉ cần nhớ 1 số kí tự thôi à. ví dụ: 'A' = 65 và 'a' = 97.'a'='A' + 32, và học thuộc chữ cái từ a ->z tương tự như A - Z. và học thuộc 1 số kí tự hay gặp thôi chẳng hạn: xuống hàng hay tab là ok rồi
 
 
Sửa chữa lần cuối: 18/11/2009 09:24 bởi mono.
  Đã khóa chức năng gửi bài.
#3839
sergio (Thành viên)
Năng động
Bài viết: 34
graphgraph
Thành viên gián tuyến Click vào đây để xem thông tin về thành viên này
Giới tính: Nam Nơi ở: TP.HCM Ngày sinh: 1988-05-09
Trả lời: Thắc mắc về một số đoạn code KTLT (ai cần thì gửi vào đây) 14 Năm, 5 Tháng trước đây  
các toán tử này là sao vậy?

- ?:

- ^

- sizeof()

 
 
I am Sergio
  Đã khóa chức năng gửi bài.
#3840
mono (Thành viên)
Năng động
Bài viết: 35
graphgraph
Thành viên gián tuyến Click vào đây để xem thông tin về thành viên này
Trả lời: Thắc mắc về một số đoạn code KTLT (ai cần thì gửi vào đây) 14 Năm, 5 Tháng trước đây  
- ?: toán tử điều kiện
(biểu thức)?(thực hiện khi biểu thức đúng): (thực hiện thi biểu thức sai)
ví dụ: 2>1?"đúng":"sai"

-sizeof(): trả về giá trị byte của biến hoặc kiểu dữ liệu
ví dụ: sizeof(int): 2 byte;

-^: toán tử bit XOR, trả về 0 nếu 2 bit giống nhau, ngựoc lại bằng 1;
ví dụ:
0101
XOR 0011
---------
0110
cái này ít dùng lắm bạn, chủ yếu trong lập trình Assembly.
 
  Đã khóa chức năng gửi bài.
#3841
sergio (Thành viên)
Năng động
Bài viết: 34
graphgraph
Thành viên gián tuyến Click vào đây để xem thông tin về thành viên này
Giới tính: Nam Nơi ở: TP.HCM Ngày sinh: 1988-05-09
Trả lời: Thắc mắc về một số đoạn code KTLT (ai cần thì gửi vào đây) 14 Năm, 5 Tháng trước đây  
int guess(int n)
{
if (n == 1)
return 1;
else
return guess(n – 1);
}

Tại sao kết quả là 1. Khi thực hiện guess(5)
 
 
I am Sergio
  Đã khóa chức năng gửi bài.
#3842
sergio (Thành viên)
Năng động
Bài viết: 34
graphgraph
Thành viên gián tuyến Click vào đây để xem thông tin về thành viên này
Giới tính: Nam Nơi ở: TP.HCM Ngày sinh: 1988-05-09
Trả lời: Thắc mắc về một số đoạn code KTLT (ai cần thì gửi vào đây) 14 Năm, 5 Tháng trước đây  
các bạn giải thích dùm mình bài này:

Code:

int f(int x, int n);
void main()
{
int a[5] = {1, 2, 3, 4, 5};
int b;
b = f(a, 5);
}
int f(int x, int n)
{
if (n == 0)
return x[0];
else
return x[n – 1] + f(x, n – 1);
}


cảm ơn nhiều
 
 
Sửa chữa lần cuối: 19/11/2009 03:03 bởi nhatbui.
 
I am Sergio
  Đã khóa chức năng gửi bài.
#3843
ankilog (Thành viên)
Tích cực
Bài viết: 171
graphgraph
Thành viên gián tuyến Click vào đây để xem thông tin về thành viên này
Giới tính: Nam MrLuong87 MrLuong87 Ngày sinh: 1987-07-10
Trả lời: Thắc mắc về một số đoạn code KTLT (ai cần thì gửi vào đây) 14 Năm, 5 Tháng trước đây  
sergio viết:
int guess(int n)
{
if (n == 1)
return 1;
else
return guess(n – 1);
}

Tại sao kết quả là 1. Khi thực hiện guess(5)

Vòng lặp chạy giảm từ 5-->1.Khi chạy về đến guess(1) thì gặp if (n == 1)
return 1;

Nên hàm trả về 1.
 
 
Unlock the worlds potential with HSBC
  Đã khóa chức năng gửi bài.
#3844
sergio (Thành viên)
Năng động
Bài viết: 34
graphgraph
Thành viên gián tuyến Click vào đây để xem thông tin về thành viên này
Giới tính: Nam Nơi ở: TP.HCM Ngày sinh: 1988-05-09
Trả lời: Thắc mắc về một số đoạn code KTLT (ai cần thì gửi vào đây) 14 Năm, 5 Tháng trước đây  
ankilog viết:

Vòng lặp chạy giảm từ 5-->1


Làm gì có vòng lặp ở đây???????
 
 
I am Sergio
  Đã khóa chức năng gửi bài.
#3845
Tài (Admin)
Chu Văn Tài
Admin
Bài viết: 371
graphgraph
Thành viên gián tuyến Click vào đây để xem thông tin về thành viên này
Giới tính: Nam
Trả lời: Thắc mắc về một số đoạn code KTLT (ai cần thì gửi vào đây) 14 Năm, 5 Tháng trước đây  
Các bạn thắc mắc về code, hãy gửi đầy đủ cả cầu hỏi (hoặc bài toán) và đặt code vào thẻ [_code][_/code] (nhớ bỏ dấu _ nhé) để mọi người dễ xem
Vd:
Code:

int guess(int n)
{
if (n == 1)
return 1;
else
return guess(n – 1);
}
 
 
[Tài] thì hổng có mà [Tật] thì nhiều
....................................
  Đã khóa chức năng gửi bài.
#3846
utcung (Thành viên)
Năng động
Bài viết: 32
graphgraph
Thành viên gián tuyến Click vào đây để xem thông tin về thành viên này
Trả lời: Thắc mắc về một số đoạn code KTLT (ai cần thì gửi vào đây) 14 Năm, 5 Tháng trước đây  
Đây ko phải là vòng lặp mà là đệ qui

Khi mình truyền vào hàm guess(5)
thì nó sẽ so sánh n=5 > 1
nên nó sẽ đi vào guess(n-1)
tới khi nó đệ qui hết và thoát khỏi hàm
thì nó sẽ xuất ra kết quả
Cách diễn giải của mình có thể khác 1 số bạn nhưng nói chung là vậy
 
 
Chân lý của cuộc sống là bắt đầu từ những cái nhỏ bé nhất
  Đã khóa chức năng gửi bài.
#3847
Tài (Admin)
Chu Văn Tài
Admin
Bài viết: 371
graphgraph
Thành viên gián tuyến Click vào đây để xem thông tin về thành viên này
Giới tính: Nam
Trả lời: Thắc mắc về một số đoạn code KTLT (ai cần thì gửi vào đây) 14 Năm, 5 Tháng trước đây  
Bài này hok phải là lặp, mà là Đệ quy, Đệ quy là gì thì bạn xem lại nhé, đừng nên chỉ giải bài tập mà không xem lý thuyết, dễ chết lắm.
Mình lý thuyết cũng còn yếu nên giải thích theo cách nghĩ của mình thế này.
Ta có một hàm guess, hàm này sẽ trả về giá trị một nếu tham số truyền vào cho nó bằng một, nếu không bằng 1 thì nó sẽ gọi lại chính nó nhưng với tham số trừ đi một.

Như vậy, lần đầu, ta truyền 5 vào hàm, 5 khác 1-> nó gọi lại nó với tham số là 4, 4 vẫn khác 1-> guess(3)->guess(2)->guess(1) à, hên quá, lần này tham số truyền vào là một rồi, cho nên kết quả cuối cùng của cái hàm guess(5) là 1.

Hì, có khó hỉu ko bạn.
Hình như cái đệ quy là cái nhức đầu nhất trong KTLT thì phải, mấy cái kia khó nhưng gặm hoài cũng mòn, còn cái lày thì ... Thực sự mình cũng bó tay
 
 
[Tài] thì hổng có mà [Tật] thì nhiều
....................................
  Đã khóa chức năng gửi bài.
#3848
Tài (Admin)
Chu Văn Tài
Admin
Bài viết: 371
graphgraph
Thành viên gián tuyến Click vào đây để xem thông tin về thành viên này
Giới tính: Nam
Trả lời: Thắc mắc về một số đoạn code KTLT (ai cần thì gửi vào đây) 14 Năm, 5 Tháng trước đây  
Hì, đang viết thì có út cưng trả lời mất tiu gòi
 
 
[Tài] thì hổng có mà [Tật] thì nhiều
....................................
  Đã khóa chức năng gửi bài.
#3852
nhatbui (Admin)
Admin
Bài viết: 491
graphgraph
Thành viên gián tuyến Click vào đây để xem thông tin về thành viên này
Giới tính: Nam http://gioitreanhiep.com ma_tinhyeu07 Nơi ở: Bến Tre Ngày sinh: 1987-07-23
Trả lời: KTLT???? 14 Năm, 5 Tháng trước đây  
utcung viết:
Thì nó so sánh 11>6 là true nghĩa la bằng 1
---> 1 * 100 = 100
'A' bằng 65
'Z' bằng 89
--> 'A'<'Z' nghĩa la true
---> 1* 66 ==66
==> 100 + 66 = 166


Cám ơn nhé! Hồi trước Nhật cũng hiểu nhưng còn hơi mập mờ. Giờ thì hiểu rõ rồi. ^^
 
 
Hãy để đôi tay bạn làm nên điều kì diệu!
  Đã khóa chức năng gửi bài.
#3859
4nh_Thj_k0 (Thành viên)
Tích cực
Bài viết: 275
graphgraph
Thành viên gián tuyến Click vào đây để xem thông tin về thành viên này
Trả lời: Thắc mắc về một số đoạn code KTLT (ai cần thì gửi vào đây) 14 Năm, 5 Tháng trước đây  
sergio viết:
các bạn giải thích dùm mình bài này:

Code:

int f(int x, int n);
void main()
{
int a[5] = {1, 2, 3, 4, 5};
int b;
b = f(a, 5);
}
int f(int x, int n)
{
if (n == 0)
return x[0];
else
return x[n – 1] + f(x, n – 1);
}


cảm ơn nhiều


n=5
x[4]+f(x,4)
x[4]+x[3]+f(x,3)
x[4]+x[3]+x[2]+f(x,2)
x[4]+x[3]+x[2]+x[1]+f(x,1)
x[4]+x[3]+x[2]+x[1]+x[0] = 15

Nếu hiểu theo thuật đệ quy thì sẽ như thế này! Không bik phải không bạn nào giải thích zùm hen
 
 
...Và cho dù tình yêu chẳng phai màu
Anh đã chọn cho mình đường phía trước
Thì hãy tin, đừng bao giờ đi ngược
Bởi em không thể đợi anh cuối con đường
...
  Đã khóa chức năng gửi bài.
#3860
4nh_Thj_k0 (Thành viên)
Tích cực
Bài viết: 275
graphgraph
Thành viên gián tuyến Click vào đây để xem thông tin về thành viên này
Trả lời: Thắc mắc về một số đoạn code KTLT (ai cần thì gửi vào đây) 14 Năm, 5 Tháng trước đây  
mono viết:
không nhất thiết bạn phải nhớ cả cái bảng đó đâu.
bạn chỉ cần nhớ 1 số kí tự thôi à. ví dụ: 'A' = 65 và 'a' = 97.'a'='A' + 32, và học thuộc chữ cái từ a ->z tương tự như A - Z. và học thuộc 1 số kí tự hay gặp thôi chẳng hạn: xuống hàng hay tab là ok rồi

xia xia nhiu đó cũng đủ chết rồi
 
 
...Và cho dù tình yêu chẳng phai màu
Anh đã chọn cho mình đường phía trước
Thì hãy tin, đừng bao giờ đi ngược
Bởi em không thể đợi anh cuối con đường
...
  Đã khóa chức năng gửi bài.
#3861
Tài (Admin)
Chu Văn Tài
Admin
Bài viết: 371
graphgraph
Thành viên gián tuyến Click vào đây để xem thông tin về thành viên này
Giới tính: Nam
Trả lời: Thắc mắc về một số đoạn code KTLT (ai cần thì gửi vào đây) 14 Năm, 5 Tháng trước đây  
ố ồ, quên nhìn. thì ra là còn 1 bài nữa.
Bạn A-T-K giải thik vậy là rõ ràng quá rồi đó.
Mình cũng toàn phải làm như vậy mới ra.
chỉ sợ đề thi nó cho b = f(a, 100) thôi.
Hì.
À, lần tr hỏi bạn mono, bạn ý nói, để chắc chắn đánh thắng những đoạn mã đệ quy cho dù số lần gọi hàm là bao nhiêu đi chăng nữa, thì các bạn phải học thuộc dạng hàm.
Vd Hàm này là để tính tổng mảng, hàm kia là để tính tổng các số dương trong mảng,.. vân vân và phân vân
Tiếc là T vẫn chưa đủ công lực để đạt đến cảnh giới đó
 
 
[Tài] thì hổng có mà [Tật] thì nhiều
....................................
  Đã khóa chức năng gửi bài.
#3862
4nh_Thj_k0 (Thành viên)
Tích cực
Bài viết: 275
graphgraph
Thành viên gián tuyến Click vào đây để xem thông tin về thành viên này
Trả lời: Thắc mắc về một số đoạn code KTLT (ai cần thì gửi vào đây) 14 Năm, 5 Tháng trước đây  
Tài viết:
ố ồ, quên nhìn. thì ra là còn 1 bài nữa.
Bạn A-T-K giải thik vậy là rõ ràng quá rồi đó.
Mình cũng toàn phải làm như vậy mới ra.
chỉ sợ đề thi nó cho b = f(a, 100) thôi.
Hì.
À, lần tr hỏi bạn mono, bạn ý nói, để chắc chắn đánh thắng những đoạn mã đệ quy cho dù số lần gọi hàm là bao nhiêu đi chăng nữa, thì các bạn phải học thuộc dạng hàm.
Vd Hàm này là để tính tổng mảng, hàm kia là để tính tổng các số dương trong mảng,.. vân vân và phân vân
Tiếc là T vẫn chưa đủ công lực để đạt đến cảnh giới đó


Công lực thì nhìn hàm không ra nổi nhưng mà nếu cho kiểu b=f(a,100) thì chỉ cần làm 2 , 3 cái là nghĩ ngay đến việc công hay nhân mảng lại. ai lại ngồi làm đến cái 99 cho chết chứ
 
 
...Và cho dù tình yêu chẳng phai màu
Anh đã chọn cho mình đường phía trước
Thì hãy tin, đừng bao giờ đi ngược
Bởi em không thể đợi anh cuối con đường
...
  Đã khóa chức năng gửi bài.
#3871
4nh_Thj_k0 (Thành viên)
Tích cực
Bài viết: 275
graphgraph
Thành viên gián tuyến Click vào đây để xem thông tin về thành viên này
Trả lời: Thắc mắc về một số đoạn code KTLT (ai cần thì gửi vào đây) 14 Năm, 5 Tháng trước đây  
mono viết:

-^: toán tử bit XOR, trả về 0 nếu 2 bit giống nhau, ngựoc lại bằng 1;
ví dụ:
0101
XOR 0011
---------
0110
cái này ít dùng lắm bạn, chủ yếu trong lập trình Assembly.


Không hiểu gì hết trơn! Bạn giải thích rõ hơn với những ví dụ dưới dùm hen

unsigned int i=4, j=7, k;
i=i^j;
i=j^j;
i=i^j;
cout<<i<<""<<j;

Kết quả là 7 4


unsigned int i=4, j=7, k;
k=(~i)&1;
cout<<k

Kết quả ?


unsigned int i=4, j=7, k;
i=i^j;
cout<<k

Kết quả là 3


unsigned int i=4, j=7, k;
i=i | j;
cout<<k
Kết quả là 7


Thêm 2 bài này nữa

double a=2.0 , b= 4.5 , c=1.5, d=-1.0;
int n=9 . m= 15;
Kết quả của a+b/c+d sao lại bằng 4.0


public static void foo(int x)
{
if(x>0)
foo(x-3);
cout<< "" +x ;
}
Khi gọi foo(6) nó lại cho kết quả là 0 3 6


Cám ơn nhìu nhìu
 
 
Sửa chữa lần cuối: 20/11/2009 11:20 bởi 4nh_Thj_k0.
 
...Và cho dù tình yêu chẳng phai màu
Anh đã chọn cho mình đường phía trước
Thì hãy tin, đừng bao giờ đi ngược
Bởi em không thể đợi anh cuối con đường
...
  Đã khóa chức năng gửi bài.
#3872
Tài (Admin)
Chu Văn Tài
Admin
Bài viết: 371
graphgraph
Thành viên gián tuyến Click vào đây để xem thông tin về thành viên này
Giới tính: Nam
Trả lời: Thắc mắc về một số đoạn code KTLT (ai cần thì gửi vào đây) 14 Năm, 5 Tháng trước đây  
Lần sau bạn ATK gửi bài nhớ đánh số thứ tự và cho vào thẻ code, không phải thẻ quote nhé.
Mấy cái &,|,^,~ thì nói sau, thấy bài
nào dễ bụp trước.
Code:


double a=2.0 , b= 4.5 , c=1.5, d=-1.0;
int n=9 . m= 15;
a+b/c+d = a+(b/c)+d =2+(4.5/1.5)+(-1)=4


chứ bằng mấy nữa, Thứ tự ưu tiên là nhân chia -> Cọng trừ mà.
Bài cuối cùng bạn viết sai chính tả

cout<< ""<<x ; chứ hổng phải cout<< "" +x ; nhé.
Cái này thì giải thích đơn giản là, cứ mỗi lần gọi đệ quy, nó lại thực hiện lệnh in ra tham số truyền vào của hàm đệ quy.
lần lượt là 6->3->0 nhưng mà do khi thực thi đệ quy nó làm từ trong ra ngoài nên phải là 0->3->6 mới đúng.


Còn đối với các bài Có sử dụng toán tử Bitwise. Không biết có cách nào hay hơn không, nhưng T chỉ biết mỗi cách này thui.
1.Đầu tiên, chuyển đổi nó qua hệ nhị phân
2.Đặt 2 số chồng lên nhau (như bạn môn làm ý)
2. dựa vào nguyên tắc sau để tính theo hàng dọc
Code:


& Toán tử bitwise AND, trả lại giá trị 1 nếu cả hai bit cùng là 1.
| Toán tử bitwise OR, trả lại giá trị 1 nếu một trong hai bit là 1.
^ Toán tử bitwise XOR, trả lại giá trị 1 nếu hai bit có giá trị khác nhau
~ Toán tử bitwise NOT, đảo 0 thành 1 và ngược lại



Vd với bài này

Code:

unsigned int i=4, j=7, k;
k=i^j;
cout<<k; //=3


Đầu tiên và viết nó về dạng Nhị phân (Binary), mình viết tắt là B nhé
i=4=100B;
j=7=111B
bắt đầu tính nè
100
^111
-----
011B=3D
Vậy là hết thắc mắc nhé

Xem kỹ hơn ở đây nè http://vi.wikipedia.org/wiki/Ph%C3%...%C3%A1n_thao_t%C3%A1c_bit

CÒn mấy bài trên, ko bít bạn ATK kím mô ra, chịu khó dẫn nguồn để anh em kiểm chứng nhé, vì có vẻ là bạn đã copy sai hoặc thiếu. Bài đầu tiên cho vào máy của mình thì nó ra là 77, ko phải 74
rồi mấy bài sau nữa.

Mà như bạn mono nói, thì cái này ít ra lắm, đừng có gặm mãi khúc này mà bí lun đó
 
 
Sửa chữa lần cuối: 20/11/2009 14:01 bởi Tài.
 
[Tài] thì hổng có mà [Tật] thì nhiều
....................................
  Đã khóa chức năng gửi bài.
#3873
4nh_Thj_k0 (Thành viên)
Tích cực
Bài viết: 275
graphgraph
Thành viên gián tuyến Click vào đây để xem thông tin về thành viên này
Trả lời: Thắc mắc về một số đoạn code KTLT (ai cần thì gửi vào đây) 14 Năm, 5 Tháng trước đây  
Quên mất! Rút kinh nghiệm cho lần sau vậy ^^!
Toàn bộ cái đó là tài liệu tay của Trung Tâm Công Nghệ Thông Tin của trường mình áh!==> Không có nguồn làm sao đưa
Đề viết hoàn toàn chính xác (so với cái L đang đọc )nhưng mà đọc mãi không hiểu nó làm răng mà lại ra kết quả thía nên hỏi lại!
 
 
...Và cho dù tình yêu chẳng phai màu
Anh đã chọn cho mình đường phía trước
Thì hãy tin, đừng bao giờ đi ngược
Bởi em không thể đợi anh cuối con đường
...
  Đã khóa chức năng gửi bài.
#3874
Tài (Admin)
Chu Văn Tài
Admin
Bài viết: 371
graphgraph
Thành viên gián tuyến Click vào đây để xem thông tin về thành viên này
Giới tính: Nam
Trả lời: Thắc mắc về một số đoạn code KTLT (ai cần thì gửi vào đây) 14 Năm, 5 Tháng trước đây  
Ẹc, của trung tâm à.
có vẻ là vẫn sai đấy.
có mấy bài cho i,j,k, thía mà k hok bao giờ xài đến cả
 
 
[Tài] thì hổng có mà [Tật] thì nhiều
....................................
  Đã khóa chức năng gửi bài.
#3875
mono (Thành viên)
Năng động
Bài viết: 35
graphgraph
Thành viên gián tuyến Click vào đây để xem thông tin về thành viên này
Trả lời: Thắc mắc về một số đoạn code KTLT (ai cần thì gửi vào đây) 14 Năm, 5 Tháng trước đây  
he he. diễn đàn bữa nay đông vui quá. mà mình chưa thấy các bạn chuyển qua cơ sở dữ liệu nhỉ. Ăn thua ở cơ sở dữ liệu ah. . chúc các bạn ôn thi tốt ah.
 
  Đã khóa chức năng gửi bài.
#3876
Tài (Admin)
Chu Văn Tài
Admin
Bài viết: 371
graphgraph
Thành viên gián tuyến Click vào đây để xem thông tin về thành viên này
Giới tính: Nam
Trả lời: Thắc mắc về một số đoạn code KTLT (ai cần thì gửi vào đây) 14 Năm, 5 Tháng trước đây  
Thứ 2 về tao phá mày, ko cho mày học, ngồi đó mà cười
 
 
[Tài] thì hổng có mà [Tật] thì nhiều
....................................
  Đã khóa chức năng gửi bài.
#3878
sergio (Thành viên)
Năng động
Bài viết: 34
graphgraph
Thành viên gián tuyến Click vào đây để xem thông tin về thành viên này
Giới tính: Nam Nơi ở: TP.HCM Ngày sinh: 1988-05-09
Trả lời: Thắc mắc về một số đoạn code KTLT (ai cần thì gửi vào đây) 14 Năm, 5 Tháng trước đây  
có ai có đề thi CTDL của thầy Quán ko?
share cho mình với
cảm ơn nhiều
ko có bài tập CTDL để làm
chỉ toàn coi lý thuyết ko hiểu gì cà
khó nhất vẫn là danh sách liên kết
Chẳng hiểu gì về nó hết
 
 
I am Sergio
  Đã khóa chức năng gửi bài.
#5802
nhatbui (Admin)
Admin
Bài viết: 491
graphgraph
Thành viên gián tuyến Click vào đây để xem thông tin về thành viên này
Giới tính: Nam http://gioitreanhiep.com ma_tinhyeu07 Nơi ở: Bến Tre Ngày sinh: 1987-07-23
Trả lời: Thắc mắc về một số đoạn code KTLT (ai cần thì gửi vào đây) 12 Năm, 8 Tháng trước đây  
Giải thích giùm với mọi người ơi:
Code:

#include<iostream.h>
#include<conio.h>
int f(int a, int b);
int x,y;
void main()
{
clrscr();
x=1;y=2;
f(x,y);
cout<<x<<" "<<y<< endl;
}

int f(int a, int b)
{
int x;
a++;
b+=4;
x++;
y++;
}



Sao kết quả lại ra là 1 3?


Còn cái này:
Code:

#include<iostream.h>
#include<conio.h>
int f(int a, int b);
int x,y;
void main()
{
clrscr();
x=1;y=2;
f(x,y);
cout<<x<<" "<<y<< endl;
}

int f(int a, int b)
{
a++;
b+=4;
x++;
y++;
}


Sao kết quả lại là 2 3?
 
 
Sửa chữa lần cuối: 13/08/2011 03:58 bởi nhatbui.
 
Hãy để đôi tay bạn làm nên điều kì diệu!
  Đã khóa chức năng gửi bài.
#5803
AH18 (Admin)
Admin
Bài viết: 146
graphgraph
Thành viên gián tuyến Click vào đây để xem thông tin về thành viên này
Trả lời: Thắc mắc về một số đoạn code KTLT (ai cần thì gửi vào đây) 12 Năm, 8 Tháng trước đây  
nhatbui viết:
Giải thích giùm với mọi người ơi:
Code:

#include<iostream.h>
#include<conio.h>
int f(int a, int b);
int x,y;
void main()
{
clrscr();
x=1;y=2;
f(x,y);
cout<<x<<" "<<y<< endl;
}

int f(int a, int b)
{
[b]int x;[/b]
a++;
b+=4;
x++;
y++;
}



Sao kết quả lại ra là 1 3?


Còn cái này:
Code:

#include<iostream.h>
#include<conio.h>
int f(int a, int b);
int x,y;
void main()
{
clrscr();
x=1;y=2;
f(x,y);
cout<<x<<" "<<y<< endl;
}

int f(int a, int b)
{
a++;
b+=4;
x++;
y++;
}


Sao kết quả lại là 2 3?

Hi
Có thể miêu tả 2 đoạn code trên như thế này.
-Khai báo 2 biến toàn cục x,y <2 biến này sẽ thay đổi giá trị khi gọi và thay đổi nó ở bất cứ hàm nào ở trong chương trình >.
-Trong hàm main gán giá trị cho biến x,y. Sau đó truyền 2 biến này vào hàm f.
-Trong hàm f(int a, int b). giá trị của a = giá trị của x, giá trị b=giá trị của y <Nhớ là giá trị thôi nha>. Các tác trong hàm thì mình ko giải thích nữa.

Vấn đề ở đây:
-bài code lừa 2 cái: Biến cục bộ và biến toàn cục, Tham chiếu và tham trị.
- Trong bài sử dụng cách truyền tham trị. Tức là không làm thay đổi giá trị biến khi truyền biến đó vào hàm. nên khi giá trị của x=1,y=2 có truyền vào hàm cũng chả ảnh hương gì đền giá trị của nó. Nên giá trị của nó thay đổi do nó là biến toàn cục.
- Vì nó là biến toán cục nên mọi sự thay đổi giá trị của nó trong các hàm đều ảnh hưởng đến nó (x và y).
-Ở đoạn code 1
int x;
a++;
b+=4;
x++;
y++;
có 2 đoạn code ảnh hưởng đến giá trị của x và y là. x++, y++ => x=1+1=2, y=2+1=3. Nhưng vấn đề ở đây là do nó khai báo int x trong hàm nên x++ ở đây nó hiểu là biến x ở trong hàm chứ không phải là biến x toàn cục ngoài kia. Nên khi xuất ra giá trị là 1 và 3.
- đoạn code 2: do ko có khai báo int x trong hàm nên giá trị của nó là 2 và 3.

Theo mình hiểu thì thế.
Tham khảo tham chiếu và tham trị: http://phpcodevn.com/home/c-cpp-c-s...u-a-tham-tri-trong-c.html
 
  Đã khóa chức năng gửi bài.
Bài viết trên cùng Gửi trả lời
Sử dụng mã nguồn FireBoard

spacer.png, 0 kB
Trang web thuộc về lớp CĐTH8B ĐH Công nghiệp TP.HCM Sử dụng mã nguồn mở Joomla!
Liên hệ : ma_tinhyeu07 (Nhật)
spacer.png, 0 kB