Tải bản đầy đủ (.pdf) (16 trang)

welcome to nguyenhuuthe sites

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (894.95 KB, 16 trang )

<span class='text_page_counter'>(1)</span><div class='page_container' data-page=1>

<b>Ơn tập kỹ thuật lập trình </b>



<b>GV: Nguyễn Hữu Thể</b>


</div>
<span class='text_page_counter'>(2)</span><div class='page_container' data-page=2>

<b>NỘI DUNG</b>



<b>Hàm và thủ tục</b>


1



<b>Con trỏ</b>


2



</div>
<span class='text_page_counter'>(3)</span><div class='page_container' data-page=3>

<b>I. Hàm và thủ tục</b>



<b>I.1. Hàm</b>


<b>Khi định nghĩa hàm, ta luôn khai báo tường minh giá trị trả về khi </b>


hàm thực hiện xong.


Cú pháp:


<kiểu dữ liệu> <tên hàm> (danh sách các tham số)
{


//Thân hàm


</div>
<span class='text_page_counter'>(4)</span><div class='page_container' data-page=4>

<b>I.1. Hàm</b>




<b>Ví dụ: tính tổng 2 số nguyên a, b. Trả về giá trị là tổng 2 số</b>


Gọi hàm trong main()


int TinhTong(int a, int b)
{


int tong;


tong = a + b;
return tong;
}


int TinhTong(int a, int b)
{


return (a+b);
}


void main()
{


int a=4, b=5;
int tmp;


tmp = TinhTong(a,b);
printf(“Tong 2 so:%d”
,tmp);


void main()


{


int a=4, b=5;


</div>
<span class='text_page_counter'>(5)</span><div class='page_container' data-page=5>

<b>I.2. Thủ tục (Hàm khơng có giá trị trả về)</b>



<b>Thủ tục không trả về giá trị, ta dùng từ khóa void để khai báo kiểu </b>


dữ liệu.


Cú pháp:


<b>void</b> <tên hàm> (danh sách các tham số)
{


//Thân hàm, xử lý các dữ liệu


</div>
<span class='text_page_counter'>(6)</span><div class='page_container' data-page=6>

<b>I.2. Thủ tục</b>



<b>Ví dụ: tính tổng 2 số nguyên a, b. In kết quả ra màn hình</b>


Gọi hàm trong main()


void TinhTong(int a, int b)
{


int tong;


tong = a + b;



printf(“%d”,tong);
}


void TinhTong(int a, int b)
{


printf(“%d”,(a+b));
}


void main()
{


int a=4, b=5;
TinhTong(a,b);


}


void main()
{


</div>
<span class='text_page_counter'>(7)</span><div class='page_container' data-page=7>

<b>Cách tổ chức mã nguồn trong C</b>



<b>Cách 1: khai báo prototype</b> <b>Cách 2: để hàm main sau cùng</b>


#include<stdio.h>
#include<conio.h>
//khai báo prototype


void TinhTong(int a, int b);
void main()



{


int a=4, b=5;
TinhTong(a,b);
getch();


}


void TinhTong(int a, int b)
{


int tong;


tong = a + b;


printf(“%d”,tong);


#include<stdio.h>
#include<conio.h>


void TinhTong(int a, int b)
{


int tong;


tong = a + b;


printf(“%d”,tong);
}



void main()
{


int a=4, b=5;
TinhTong(a,b);
getch();


</div>
<span class='text_page_counter'>(8)</span><div class='page_container' data-page=8>

<b>II. Con trỏ</b>



<b>II.1 Truy cập địa chỉ</b>


Trong các ngơn ngữ lập trình, khi một biến được khai báo, ba thuộc


tính cơ bản sau được liên kết đến nó:


 Tên định danh của biến


 Kiểu dữ liệu liên quan


 Địa chỉ trong bộ nhớ


<b>Ví dụ: khai báo biến</b>


int n = 10;


<i>n là tên định danh của biến, có kiểu int và được lưu trữ đâu đó</i>
<i>trong bộ nhớ máy tính.</i>


 Xuất:



printf(“%d”,n); //in nội dung biến
<b>…</b>
<b>…</b>
<b>…</b>
<b>10</b>


<b>Địa chỉ: FFF0</b>


</div>
<span class='text_page_counter'>(9)</span><div class='page_container' data-page=9>

<b>II.1 Truy cập địa chỉ</b>



<b>Ví dụ:</b>


void main()
{


int n=10;


printf(“%d”,n); //in nội dung biến


printf(“%0X”,&n);//in địa chỉ của biến
}


<b>Kết quả thực hiện như sau: </b>


• Ta thấy giá trị của n là 10


• Địa chỉ biến n theo số hexa là FFF0


</div>
<span class='text_page_counter'>(10)</span><div class='page_container' data-page=10>

<b>II.2 Biến tham chiếu</b>




Dùng một biến khác truy cập đến cùng một địa chỉ với biến đã có, ta


sử dụng biến tham chiếu (references)


<b>Cú pháp:</b>


<i>type& alias = name</i>



 type: kiểu dữ liệu


 alias: tên biến tham chiếu


 name: tên của biến mà biến alias tham chiếu đến


void main()
{


int n=10;
int& r=n;


printf(“n=%d, r=%d”,n,r);
n++;


printf(“n=%d, r=%d”,n,r);


<b>Kết quả</b>


</div>
<span class='text_page_counter'>(11)</span><div class='page_container' data-page=11>

<b>II.3. Biến con trỏ</b>




Dùng để lưu địa chỉ bộ nhớ của một đối tượng.

<b>Cú pháp:</b>


<i>type* var</i>



 type: kiểu dữ liệu


 var: biến con trỏ


<b>Ví dụ:</b>


int x=10;
int* p;


p=&x; //p lưu địa chỉ của x, hay p trỏ đến x




<b>Ghi chú: </b>


(*p): nội dung của p


</div>
<span class='text_page_counter'>(12)</span><div class='page_container' data-page=12>

<b>II.3. Biến con trỏ</b>



<b>Ví dụ:</b>


void main()
{


int x=10;


int* p=&x; //p tr? d?n x



printf("Dia chi cua x: %0X \n",&x);
printf("Noi dung cua x: %d \n",x);
printf("Dia chi cua p: %0X \n",&p);
printf("Noi dung cua p: %0X",p);


printf("Noi dung tai dia chi ma p tro den: %d",*p);
}


<b>FFEE</b>
<b>FFF0</b>


(&x)


<b>Địa chỉ</b>


<b>FFF0</b>
<b>p</b>


<b>10</b>


(x)


<b>x</b>


</div>
<span class='text_page_counter'>(13)</span><div class='page_container' data-page=13>

<b>Ví dụ</b>



void HoanVi_1(int a, int b)
{



int tmp = a;
a = b;


b = tmp;
}


void HoanVi_2(int *a, int *b)
{


int tmp = *a;
*a = *b;


*b = tmp;
}


void HoanVi_3(int &a, int &b)
{


int tmp = a;
a = b;


b = tmp;


void main()
{


int a = 1, b = 2;
HoanVi_1(a, b);


printf("a = %d",a);


printf("b = %d",b);
}


void main()
{


int *a = 1, *b = 2;
HoanVi_2(a, b);


printf("a = %d",*a);
printf("b = %d",*b);
}


void main()
{


int a = 1, b = 2;
HoanVi_3(a, b);


</div>
<span class='text_page_counter'>(14)</span><div class='page_container' data-page=14>

<b>II.4. Con trỏ và mảng</b>


Con trỏ và mảng 1 chiều


int a[] = {4,5,7,9};


Truy xuất phần tử thứ hai a[1]=5
 Sử dụng con trỏ:


• Tên mảng xem như con trỏ


• <b>Truy xuất phần tử thứ i: a[i] hay *(a+i)</b>


Con trỏ và mảng 2 chiều


int a[2][3]={{4,5,7},
{9,10,12}};


Truy xuất phần tử thứ i=1,j=1 là: a[1][1]=10
 Sử dụng con trỏ:


• Tên mảng xem như con trỏ


</div>
<span class='text_page_counter'>(15)</span><div class='page_container' data-page=15>

<b>Bài tập</b>



1. Cho mảng 1 chiều int a[] = {4,5,7,9}


Viết thủ tục xuất giá trị mảng ra màn hình (sử dụng con trỏ truy
xuất mảng).


2. Cho mảng 2 chiều int a[2][3]={{4,5,7},{9,10,12}};


</div>
<span class='text_page_counter'>(16)</span><div class='page_container' data-page=16></div>

<!--links-->

Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×