Để học tốt ngôn ngữ lập trình C, ngoài việc bạn cần làm rất nhiều bài tập lập trình C, các bạn còn phải biết sử dụng các hàm build-in-function. Biết nhiều hàm sẽ giúp các bạn rút ngắn thời gian giải quyết vấn đề đặt ra.
Trong bài viết này, mình xin tổng hợp các hàm ngôn ngữ C hay sử dụng. Hy vọng rằng sẽ giúp ích cho các bạn!
Tài liệu được tổng hợp từ blog: http://vncoding.net/thu-vien-ham-ngon-ngu-c/
Program control statement - Câu lệnh điều khiểnSon Le
Phần đầu của chuỗi 3 bài trong phần học lập trình từ cơ bản đến nâng cao trong chương trình với ngôn ngữ C++, giới thiệu về vòng lặp và những câu lệnh điều khiển
Để học tốt ngôn ngữ lập trình C, ngoài việc bạn cần làm rất nhiều bài tập lập trình C, các bạn còn phải biết sử dụng các hàm build-in-function. Biết nhiều hàm sẽ giúp các bạn rút ngắn thời gian giải quyết vấn đề đặt ra.
Trong bài viết này, mình xin tổng hợp các hàm ngôn ngữ C hay sử dụng. Hy vọng rằng sẽ giúp ích cho các bạn!
Tài liệu được tổng hợp từ blog: http://vncoding.net/thu-vien-ham-ngon-ngu-c/
Program control statement - Câu lệnh điều khiểnSon Le
Phần đầu của chuỗi 3 bài trong phần học lập trình từ cơ bản đến nâng cao trong chương trình với ngôn ngữ C++, giới thiệu về vòng lặp và những câu lệnh điều khiển
ĐỀ CƢƠNG LẬP TRÌNH C LỚP CNT50DH1
Các bài tập xuất nhập giá trị Bài 1: Nhập 2 số nguyên x và y, sau đó in ra màn hình kết quả x + y, x- y, phần nguyên x chia y, phần dƣ của x cho y và phép chia của x cho y Bài làm:
Kết quả:
Bài 2: Nhập từ bàn phím tên của bạn, sau đó xuất ra câu: “Chao <ten>” trong đó ten ban là xâu mà bạn nhập vào bàn phím Bài làm:
#include <stdio.h> #include <conio.h> void main() { //Khai bao x va y la 2 so nguyen int x,y; float c; printf("Nhap x: "); scanf("%d",&x); //%d là định dạng kiểu nguyên printf("Nhap y: "); scanf("%d",&y); //&x, &y la dia chi cua bien x va bien y printf("%d + %d = %d\n",x,y,x+y); //gan %d thu nhat la x, %d thu 2 la y, thu 3 la x+y printf("%d - %d = %d\n",x,y,x-y); //ky tu \n la xuong dong tiep theo printf("%d * %d = %d\n",x,y,x*y); printf("%d / %d = %5.2f \n",x,y,(float)5/2); // %5.2f la de 5 khoang trong in x/y, trong do co 2 khoang trong in phan thap phan getch(); //cho an 1 phim de ket thuc chuong trinh }
#include <stdio.h> #include <conio.h> void main() { //Khai bao str la kieu xau do dai 30 char str[30]; printf("Ten cua ban: "); fflush(stdin); gets(str); //Không nên dùng scanf, hàm gets dùng để đọc xâu printf("Chao %s",str); //%s sẽ được gán bởi str getch(); //Chờ ấn phím bất kỳ để kết thúc }
Mọi thắc mắc, “ý kiến” xin liên hệ Đỗ Đức Hùng, ĐT: 01656.221.314 MAIL: doduchung2008@gmail.com yahoo: duc_hungcntt
1
Kết quả:
ĐỀ CƢƠNG LẬP TRÌNH C LỚP CNT50DH1
Sau đây là sự khác biệt khi ta thay lệnh gets(str) bằng scanf(“%s”,&str), kết quả in ra màn hình sẽ nhƣ sau:
Nhƣ vậy, màn hình in ra chỉ có từ “Do”
Tức là khi dùng scanf để đọc xâu, trong xâu đó có ký tự cách trống (space) thì nó sẽ dừng lại Bài 3: Nhập từ bàn phím 1 số nguyên x, 1 số thực y, sau đó in ra màn hình theo quy cách sau:
- Dòng 1, in số nguyên căn lề phải với 5 khoảng trống - Dòng 2, in số nguyên căn lề trái 5 khoảng trống - Dòng 3, in số nguyên căn phải 3 khoảng trống - Dòng 4, in số thực làm tròn 2 số thập phân - Dòng 5, in số thực với 6 khoảng trống, căn phải, làm tròn 3 chữ số thập phân - Dòng 6, in số thực 6 khoảng trống, căn trái, làm tròn theo quy cách.
Bài làm
#include <stdio.h> #include <conio.h> void main() { // Khai bao cac bien can dung int x; float y; printf("Nhap vao so nguyen x: "); scanf("%d",&x); printf("Nhap vao so thuc y: "); scanf("%f",&y); printf("%5d\n",x);
1. 1
TIN HỌC ĐẠI CƯƠNG
www.uit.edu.vn
BBÀÀII 88
CCÁÁCC CCÂÂUU LLỆỆNNHH TTRRÊÊNN CC
2. Tin học đại cương
2
NNỘỘII DDUUNNGG
4 CÁC CÂU LỆNH TRÊN C
3. Tin học đại cương
CÁC CÂU LỆNH TRÊN C
1. Lệnh if
2. Lệnh switch
3. Lệnh for
4. Lệnh while
5. Lệnh do … while
6. Lệnh goto, break, continue, return
3
4. Tin học đại cương
CÂU LỆNH, KHỐI LỆNH
KHÁI NIỆM VỀ CÂU LỆNH
Mỗi câu lệnh thực hiện một chức năng nào
đó (như lệnh gán, lệnh xuất dữ liệu ra màn
hình), câu lệnh có thể được viết trên một
hoặc nhiều dòng và được kết thúc bằng
dấu chấm phẩy (;).
Ví dụ:
cv=2*r*M_PI;
printf("nChu vi = %10.2f
nDien tich = %10.2f",cv,dt);
4
5. Tin học đại cương
CÂU LỆNH, KHỐI LỆNH
KHÁI NIỆM VỀ KHỐI LỆNH
Một dãy các câu lệnh được đặt trong một
cặp dấu { và } được gọi là một khối lệnh.
5
Ví dụ:
{
float cv,dt;
cv=2*r*M_PI;
dt=M_PI*r*r;
printf("nChu vi = %10.2f
nDien tich = %10.2f”, cv, dt);
getch(); // chờ nhấn phím
}
6. Tin học đại cương
6
CÂU LỆNH IF
CÚ PHÁP KHAI BÁO LỆNH IF
Dạng 1:
if (biểu thức ĐK) <khối lệnh>;
Dạng 2:
if (biểu thức ĐK) <khối lệnh 1>;
else <khối lệnh 2>;
7. Tin học đại cương
CÂU LỆNH IF
VÍ DỤ MINH HỌA
Cho 3 số nguyên a, b và c, xuất giá trị 3 số
đó ra màn hình theo thứ tự tăng dần.
max = a; min = b;
if (a<b)
{
7
max = b;
min = a;
}
if (c>max) max = c;
else if (c<min) min = c;
mid = (a+b+c) - (max + min);
printf(“%d %d %d”, min, mid, max);
8. Tin học đại cương
LỆNH SWITCH
CÚ PHÁP KHAI BÁO LỆNH SWITCH
switch (Biểu thức)
{
case n1: <các câu lệnh>; <break>;
case n2: <các câu lệnh>; <break>;
....
case nk: <các câu lệnh>; <break>;
[default: <các câu lệnh>;
<break>;]
8
}
9. Tin học đại cương
ni: các hằng số nguyên hoặc ký tự.
Nếu giá trị của biểu thức = ni
Þ thực hiện câu lệnh sau case ni.
Nếu giá trị biểu thức khác tất cả các
giá trị ni Þ thực hiện câu lệnh sau
default nếu có hoặc thoát khỏi
switch.
9
LỆNH SWITCH
10. Tin học đại cương
Khi chương trình đã thực hiện xong câu
lệnh của case ni nào đó thì nó sẽ thực
hiện luôn các câu lệnh thuộc case bên
dưới nó mà không xét lại điều kiện (do
các ni được xem như các nhãn).
Do đó để chương trình thoát khỏi lệnh
switch, sau khi thực hiện xong một
trường hợp, ta dùng lệnh break.
10
LỆNH SWITCH
11. Tin học đại cương
LLỆỆNNHH SSWWIITTCCHH
VÍ DỤ MINH HỌA
In ra màn hình học lực của học sinh theo thang
điểm như sau: Từ 0 -> 3: Kém, 4: Yếu, 5-> 6:
Trung bình, 7 -> 8: Khá, 9 -> 10: Giỏi.
11
switch(diem)
{
case 0: case 1: case 2: case 3:
printf(“Kemn”); break;
case 4: printf(“Yeun”); break;
case 5: case 6:
printf(“Trung binhn”); break;
case 7: case 8: printf(“Khan”); break;
case 9: case 10:
printf(“Gioin”); break;
default: printf(“Nhap diem sain”);
} // Kết thúc switch
12. Tin học đại cương
LỆNH FOR
CÚ PHÁP KHAI BÁO LỆNH FOR
for (<biểuthức1>; <biểuthức2>;
<biểuthức3>) <Khối lệnh>;
12
Hoạt động:
1. Tính giá trị của <biểuthức1>
2. Tính giá trị của <biểuthức2>
3. Nếu giá trị <biểuthức2> khác 0
Þ thực hiện <khối lệnh>
Ngược lại
Þ thoát khỏi lệnh for
4. Tính giá trị <biểuthức3> rồi lặp lại bước 2
13. Tin học đại cương
13
LỆNH FOR
VÍ DỤ MINH HỌA
#include <stdio.h>
#include <conio.h>
void main()
{
int n, i;
printf(“Nhap gia tri n: ”);
scanf(“%d”, &n);
printf(“Cac uoc so cua %d la: ”, n);
for (i =1; i <= n; i++)
if ( !n%i ) // !n%i n%i=0
printf(“%3d”, i );
getch();
}
14. Tin học đại cương
CÚ PHÁP KHAI BÁO LỆNH WHILE
while (biểu thức) <khối lệnh>;
Ý nghĩa:
Nếu giá trị của biểu thức còn khác 0 (còn
đúng) thì còn thực hiện <khối lệnh>.
14
LỆNH WHILE
15. Tin học đại cương
15
LỆNH WHILE
VÍ DỤ MINH HỌA
In ra màn hình tất cả các ước số của n:
i = n;
while (i) // i ! = 0
{
if ( !n%i ) // n%i = 0
printf(“%3d”, i );
i--;
}
Vòng lặp while sẽ thực hiện đến khi i = 0 thì
dừng.
16. Tin học đại cương
LỆNH DO … WHILE
CÚ PHÁP KHAI BÁO LỆNH DO…WHILE
16
do
{
<khối lệnh>;
}while (biểu thức);
Ý nghĩa:
Thực hiện <khối lệnh> cho đến khi giá trị của
biểu thức bằng 0 (sai) thì dừng.
17. Tin học đại cương
LỆNH DO … WHILE
17
VÍ DỤ MINH HỌA
Viết đoạn chương trình nhập giá trị của x nằm
trong khoảng từ 1->6:
int x;
do
{
printf(“Nhap gia tri cua x:”);
scanf(“%d”, &x);
} while (x<1 || x>6);
Nhập giá trị của x, nếu x<1 hoặc x>6 thì yêu
cầu nhập lại.
18. Tin học đại cương
MỘT SỐ CÂU LỆNH KHÁC
18
LỆNH GOTO
Cú pháp khai báo
goto nhãn;
Khi gặp lệnh goto máy sẽ nhảy tới thực
hiện câu lệnh viết sau nhãn.
19. Tin học đại cương
MỘT SỐ CÂU LỆNH KHÁC
VÍ DỤ MINH HỌA LỆNH GOTO
Nếu mã của phím nhấn vào != ESC thì thực hiện
lại chương trình kể từ câu lệnh clrscr().
19
void main(){
… // Khai báo biến
tt:
clrscr();
… // Các câu lệnh
printf(“nNhan ESC
de ket thuc chuong trinh...”);
if (getch() != 27)
// getch(): chờ nhấn phím bất kỳ
goto tt;
}
20. Tin học đại cương
MỘT SỐ CÂU LỆNH KHÁC
20
LỆNH BREAK
Lệnh break chỉ được khai báo bên trong
các câu lệnh vòng lặp for, while, do…
while hoặc switch.
Khi gặp câu lệnh break máy sẽ thoát khỏi
vòng lặp trong cùng chứa nó.
21. Tin học đại cương
MỘT SỐ CÂU LỆNH KHÁC
VÍ DỤ MINH HỌA LỆNH BREAK
Viết đoạn chương trình kiểm tra n có phải là số
nguyên tố không?
int i, t;
t = sqrt(n);
i = 2;
while ( i<=t )
21
if (n%i == 0)
break; // kết thúc vòng lặp
else i++;
if (i>t) printf(“%d là SNT”, n);
else printf(“%d khong la SNT”, n);
22. Tin học đại cương
MỘT SỐ CÂU LỆNH KHÁC
LỆNH CONTINUE
Lệnh continue chỉ được khai báo bên trong
các vòng lặp for, while hoặc do…while
Khi gặp câu lệnh continue máy sẽ bỏ qua
các câu lệnh còn lại trong thân vòng lặp để
bắt đầu một lần lặp mới.
22
23. Tin học đại cương
MỘT SỐ CÂU LỆNH KHÁC
VÍ DỤ MINH HỌA LỆNH CONTINUE
…
int code;
while (1) // vòng lặp vô hạn
{
printf(“Hay cho biet mat ma: ”);
scanf(“%d”, &code);
if (code != 999)
23
continue;
break;
// đã nhập đúng, kết thúc vòng lặp
}
…
24. Tin học đại cương
MỘT SỐ CÂU LỆNH KHÁC
24
LỆNH RETURN
Khi gặp lệnh return máy sẽ kết thúc hàm
chứa nó.
25. Tin học đại cương
MỘT SỐ CÂU LỆNH KHÁC
VÍ DỤ MINH HỌA LỆNH RETURN
void main()
{ …
25
int code;
while(1)
{
printf(“Hay cho biet mat ma: ”);
scanf(“%d”, &code);
if (code == 0) return;
if (code != 999) continue;
break; // nhập đúng, kthúc vòng lặp
}
…
}