Thứ Hai, 20 tháng 1, 2014

Lập trình C

Chỉång I : Täøng quan


Trang 5
Vê dủ :
#include <stdio.h> // khäng phi l lãûnh
main()
{
int i,j;
i=0;
return 0; // ba dng trãn l 3 lãûnh nãn cọ dáúu ;
}
III.
Cáúu trục chung ca chỉång trçnh :

Chỉång trçnh C l mäüt táûp håüp nhiãưu hm trong âọ phi cọ 1 hm chênh gi l main().
Hm l âoản m lãûnh âäüc láûp âỉåüc âàût tãn v thỉûc hiãûn mäüt cäng viãûc xạc âënh khi
âỉåüc gi âãún. Mäüt hm cọ thãø gi âãún nhiãưu hm khạc.
Hm main() l hm âỉåüc mạy tênh thỉûc hiãûn trỉåïc tiãn trong mäüt chỉång trçnh.



void ham1(void)
{

}
void ham2(void)
{

}
main()
{

ham1();

ham2();

}
Chỉång I : Täøng quan


Trang 6
Mäüt chỉång trçnh C thỉåìng cọ cáúu trục nhỉ sau :
/* Cạc chè thë tiãưn xỉí lê */
#include
#define
typedef /* âënh nghéa cạc kiãøu dỉỵ liãûu */
/* khai bạo ngun máùu cạc hm*/
kiãøu_dỉỵ_liãûu tãn_hm(tham_säú);
khai bạo cạc biãún ton củc;
/* chỉång trçnh chênh */
main()
{ /* cạc cáu lãûnh*/
return 0;
}
/* khai bạo cạc hm*/
kiãøu_dỉỵ_liãûu tãn_hm(tham_säú)
{ /* cạc cáu lãûnh */
return (giạ_trë_tr_vãư);
}
Vê dủ :
#include <stdio.h> // chè thë tiãưn xỉí lê
void main() // hm main()
{
printf(“\nChao cac ban !”); // cáu lãûnh
}

Vê dủ : tênh diãûn têch hçnh chỉỵ nháût biãút chiãưu di v chiãưu räüng cọ sỉí dủng hm
#include <stdio.h>
#include <conio.h>
int tich(int x,int y); // khai bạo ngun máùu hm
main()
{
int x,y; // khai bạo biãún
printf(“\nNhap chieu dai:”);scanf(“%d”,&x); // hm âc tỉì bn phêm
printf(“\nNhap chieu rong:”);scanf(“%d”,&y);
printf(“\nDien tich hinh chu nhat: %d”,tich(x,y)); // hm in ra mn hçnh
getch(); // âc mäüt kê tỉû âãø chåì
return 0;
}
int tich(int x,int y) // âënh nghéa hm
{
return (x*y);
}
Chỉång I : Täøng quan


Trang 7
Vê dủ : tênh diãûn têch hçnh chỉỵ nháût biãút chiãưu di v chiãưu räüng khäng dng hm
#include <stdio.h>
#include <conio.h>
main()
{
int x,y;
printf(“\nNhap chieu dai:”);scanf(“%d”,&x);
printf(“\nNhap chieu rong:”);scanf(“%d”,&y);
printf(“\nDien tich hinh chu nhat: %d”,x*y);
getch();
return 0;
}
IV.
Bi táûp:
1. Xáy dỉûng thût toạn v v så âäư khäúi ca cạc bi toạn sau:
a. Tênh n!
b. Tênh

=
n
i
i
1

c. Gii phỉång trçnh ax + b = 0
d. Gii phỉång trçnh ax
2
+ bx + c = 0
e. Gii phỉång trçnh ax
3
+ bx
2
+ cx + d = 0
f. Gii phỉång trçnh ax
4
+ bx
3
+ cx
2
+ dx + e = 0
2. Tênh chu vi, diãûn têch ca hçnh trn biãút bạn kênh r = 3 cm.
3. Âỉa ra mn hçnh dng chỉỵ : “ Män hc ngän ngỉỵ láûp trçnh C “ .
Chỉång II : Kiãøu dỉỵ liãûu, biãún v hàòng


Trang 8
Ch−¬ng II. KIÃØU DỈỴ LIÃÛU, BIÃÚN V HÀỊNG
I.
Kiãøu dỉỵ liãûu:
Kiãøu dỉỵ liãûu l táûp håüp cạc giạ trë m cạc biãún thüc kiãøu âọ cọ thãø nháûn âỉåüc.
Mäùi kiãøu dỉỵ liãûu cọ mäüt säú phẹp toạn tỉång ỉïng.
Cạc kiãøu dỉỵ liãûu âỉåüc phán loải nhỉ sau :

II.
Biãún v hàòng, cạc phẹp gạn cå bn:
Biãún dng âãø lỉu dỉỵ liãûu cọ thãø thay âäøi giạ trë âỉåüc.
Hàòng dng âãø lỉu dỉỵ liãûu khäng thãø thay âäøi.
Biãún v hàòng l vng nhåï lỉu trỉỵ dỉỵ liãûu âỉåüc âàût tãn cho dãù truy cáûp (khäng phi
dng âëa chè) .
Trỉåïc khi sỉí dủng biãún v hàòng ta cáưn khai bạo trỉåïc.
II.1.
Khai bạo v khåíi tảo biãún:
Khai bạo biãún : kiãøu_dỉỵ_liãûu danh_sạch_cạc_tãn_biãún
Ta cọ thãø khai bạo nhiãưu biãún cng kiãøu cng mäüt lục, cạc biãún cạch nhau dáúu pháøy.
Vê dủ : int dem, tam, x, y;
float tr_binh;
Khåíi tảo biãún : biãún = biãøu thỉïc
Vê dủ : int x ;
x = 10;
hồûc : int x =10 ;
Ta cáưn chụ x = y khäng phi l x bàòng y m l gạn giạ trë ca y vo x.
Vê dủ : int x,y;
y=x;
kiãøu säú ngun
kiãøu säú thỉûc
kiãøu kê tỉû
kiãøu logic
kiãøu cå såí
kiãøu vä hỉåïng
tỉû âënh nghéa
kiãøu liãût kã
kiãøu vä hỉåïng
âån gin
kiãøu dỉỵ liãûu cọ
cáúu trục
kiãøu file
kiãøu array
kiãøu struct
kiãøu con tr
Kiãøu
dỉỵ
liãûu

Chỉång II : Kiãøu dỉỵ liãûu, biãún v hàòng


Trang 9
Ta nãn nhåï ràòng bäü nhåï mạy tênh khäng räùng khi mạy tênh lm viãûc. Cạc khäúi nhåï cáúp
phạt cho biãún cọ thãø â cọ giạ trë trỉåïc âọ. Ta chỉa khåíi tảo x nãn ta khäng biãút âỉåüc giạ trë x.
II.2.
Khai bạo v khåíi tảo hàòng:
Khai bạo hàòng :
const kiãøu_dỉỵ_liãûu tãn_hàòng = giạ trë hàòng

Vê dủ : const int so_luong = 50 ;
const float sai_so = 0.5 ;
II.3.
Phẹp gạn:
Biãún nháûn giạ trë qua phẹp gạn våïi dáúu bàòng : tãn_biãún = biãøu thỉïc
Vê dủ : a = 5; // gạn cho a giạ trë l 5
b = a - 4; // tênh giạ trë a - 4 räưi gạn giạ trë âọ cho b
Phẹp gạn kẹp :
Vê dủ : a = b = c = 7 ;
a = (b = 4 ) + ( c = 5 ) ;
Khi ta sỉí dủng phẹp gạn kẹp, cáu lãûnh s ngàõn hån tuy nhiãn khäng nãn lảm dủng.
III.
Kiãøu säú ngun:
Cạc kiãøu säú ngun l nhỉỵng táûp håüp con ca táûp Z, khäng phi l ton bäü táûp Z .

Cạc kiãøu säú ngun ca C våïi cạc di giạ trë khạc nhau :
Kiãøu biãún Tỉì khoạ Säú byte
Di giạ trë
Character char 1 -128 ÷ 127
Integer int 2
-32768
÷ 32767

Short integer short 2 -32768 ÷ 32767
Long integer long 4
-2147483648
÷
2147483647

Unsigned character unsigned char 1 0 ÷ 255
Unsigned integer unsigned int 2
0
÷
65535
Unsigned short integer unsigned short 2
0
÷
65535
Unsigned long integer unsigned long 4
0
÷
4294967295
Våïi táút c cạc kiãøu, ta chè nãn gạn cho biãún cạc giạ trë nàòm trong di giạ trë ca kiãøu
âọ, nãúu khäng ta s nháûn âỉåüc kãút qu khäng mong mún màûc d C khäng thäng bạo läùi.
Kiãøu int l kiãøu thäng dủng nháút. Kiãøu char thỉûc ra l kiãøu kê tỉû nhỉng C cho phẹp sỉí
dủng kiãøu char nhỉ l kiãøu ngun: trong biãøu thỉïc säú hc thç char âỉåüc hiãøu l kiãøu ngun.

Cạc phẹp tênh säú hc âäúi våïi säú ngun :
Phẹp toạn Kê hiãûu Vê dủ
Cäüng + x+y
Trỉì - x-y
Nhán * x*y
Chia láúy pháưn ngun / x/y
Chia láúy pháưn dỉ % x%y
Tàng ++ x++ hồûc ++x
Gim x hồûc x
Chỉång II : Kiãøu dỉỵ liãûu, biãún v hàòng


Trang 10
Vê dủ : 10 % 3 =1 ; 5 / 3 = 1 ;

Biãøu diãùn säú ngun dỉåïi dảng Hexa ( hãû tháûp lủc phán) :
Hãû tháûp phán sỉí dủng : 0 1 2 3 4 5 6 7 8 9
Hãû nhë phán sỉí dủng : 0 1
Hãû tháûp lủc phán sỉí dủng : 0 1 2 3 4 5 6 7 8 9 A B C D E F
Vê dủ : säú 53 åí dảng nhë phán l 110101, åí dảng Hexa l 35.
Säú ngun âỉåüc biãøu diãùn dỉåïi dảng Hexa : 0xgiạ_trë_Hexa hồûc 0Xgiạ_trë_Hexa
Vê dủ : 0x12 (=18) ; 0X12 (=18)
Âäúi våïi säú hãû 8 ta viãút thãm säú 0 vo trỉåïc : 0giạ_trë_Oct
Vê dủ : 0123 (=83)
• Biãøu diãùn säú ám trong mạy tênh:
Säú ám : Vê dủ : int x= - 21 ;
21 : 0000 0000 0001 0101
Säú b 1 : 1111 1111 1110 1010
Säú b 2 : 1111 1111 1110 1011
• Hiãûn tỉåüng trn säú :
Hiãûn tỉåüng ny xy ra khi kãút qu dỉû kiãún ca phẹp tênh säú hc vỉåüt ra khi di giạ trë
cọ thãø biãùu diãùn âỉåüc ca kiãøu dỉỵ liãûu âọ. Lục âọ kãút qu thỉûc tãú s l kãút qu sai.
Vê dủ : 32767 + 1 s cọ kãút qu -32768
Âãø khàõc phủc ta chuøn sang sỉí dủng cạc kiãøu dỉỵ liãûu cọ di giạ trë cho phẹp räüng hån
Chụng ta nãn khai bạo våïi kiãøu dỉỵ liãûu täúi ỉu âãø vỉìa cọ kãút qu mong mún vỉìa tiãút
kiãûm bäü nhåï.
Nãúu chụng ta âàût mäüt säú ám vo biãún khäng dáúu hồûc âàût mäüt säú vo kiãøu dỉỵ liãûu cọ
di giạ trë nh hån säú âọ thç trçnh biãn dëch s khäng bạo läùi nhỉng ta s cọ kãút qu khäng
mong mún.

• Hàòng säú ngun cọ kiãøu âënh trỉåïc :
Âäi khi chụng ta mún ghi cạc hàòng säú våïi kiãøu âënh trỉåïc mäüt cạch tỉåìng minh âãø
âm bo âäü chênh xạc : ghi thãm 1 kê tỉû vo cúi säú âọ
Vê dủ : U : unsigned int
UL : unsigned long int
0x123L: hàòng säú ngun dỉåïi dảng Hexa kiãøu long.

Vê dủ : signed char ch= 0xFF;
int x= 0xFFFF;
unsigned int y= 0xFFFFu;
printf("\n The decimal of signed 0xFF is %d", ch); -1
printf("\n The decimal of signed 0xFFFF is %d", x); -1
printf("\n The decimal of unsigned 0xFFFFu is %u", y); 65535
printf("\n The hex of decimal 12 is %#X ", 12); 0XC
printf("\n The hex of decimal -12 is %#X ", -12); 0XFFF4
Chỉång II : Kiãøu dỉỵ liãûu, biãún v hàòng


Trang 11
IV.
Kiãøu säú thỉûc:
• Cạc kiãøu säú thỉûc ca C :
Kiãøu biãún Tỉì khoạ Säú byte
Di giạ trë
Säú thỉûc cọ âäü chênh xạc âån float 4
1.2E-38 ÷ 3.4E38
Säú thỉûc cọ âäü chênh xạc kẹp double 8 2.2E-308 ÷ 1.8E308
Säú thỉûc cọ âäü chênh xạc kẹp âäü di låïn long double 10
3.4E-4932 ÷ 3.4E4932

Biãøu diãùn säú thỉûc åí dảng tháûp phán :
Vê dủ : 3.14 ; 2.718281828
Biãøu diãùn säú thỉûc åí dảng khoa hc :
Vê dủ : 6.023e23=6.023E23 (= 6.023 * 10
23
)
Trong vê dủ trãn, pháưn âënh trë l 6.023, pháưn m l 23
Pháưn âënh trë v pháưn m cọ thãø cọ dáúu âi km, chụng âỉåüc viãút liãưn nhau khäng cọ
dáúu ngàn cạch. Vê dủ : -12.23e-23
Pháưn ngun hay pháưn tháûp phán cọ thãø khäng cọ nhỉng dáúu cháúm khäng thãø thiãúu.
Vê dủ : 3. .14
Ta âãø : 3 l säú ngun nhỉng 3. l säú thỉûc.
• Biãøu diãùn säú tháûp phán trong mạy tênh:
Säú tháûp phán : Vê dủ : 12.5 : 1100.1
0.25 : 0.01
Quy trçnh chuøn âäøi .
• Hàòng säú thỉûc cọ kiãøu âënh trỉåïc :
Tỉång tỉû nhỉ säú ngun :
F : kiãøu float
L : kiãøu long
• Cạc phẹp toạn våïi kiãøu säú thỉûc :
Phẹp cäüng ( + ) , trỉì ( - ) , nhán ( * ) , chia ( / ) , phẹp tàng gim.
Phẹp chia (/) âäúi våïi säú thỉûc s cho kãút qu l säú thỉûc. Säú thỉûc khäng cọ phẹp %.
Khai bạo v khåíi tảo säú thỉûc : tỉång tỉû nhỉ säú ngun :
float x;
x=0.3333;
Hồûc float x=0.3333;
Do cạch lỉu trỉỵ säú thỉûc trong mạy tênh, ta khäng nãn kiãøm tra sỉû bàòng nhau giỉỵa 2 säú
thỉûc m ta kiãøm tra fabs( a - b ) < esp hay khäng.
V.
Kiãøu Boolean:
Thỉûc ra ngän ngỉỵ C khäng âënh nghéa r rng kiãøu Boolean. Kiãøu ny täưn tải dỉåïi
dảng säú ngun.
Säú ngun cọ giạ trë 0 âỉåüc hiãøu l FALSE, cn lải âỉåüc hiãøu l TRUE. Nãúu kãút qu l
FALSE thç cọ giạ trë l 0, nãúu kãút qu l TRUE thç cọ giạ trë l 1.
Cạc phẹp toạn logic v cạc phẹp toạn quan hãû cho kãút qu kiãøu Boolean

Chỉång II : Kiãøu dỉỵ liãûu, biãún v hàòng


Trang 12
Cạc toạn tỉí våïi kiãøu Boolean :
Toạn tỉí Phẹp toạn logic nghéa
&& AND Phẹp v
|| OR Phẹp hồûc
! NOT Phẹp ph âënh
Cạc phẹp toạn quan hãû :
Kê hiãûu nghéa
!= so sạnh khạc nhau
== so sạnh bàòng nhau
>= so sạnh låïn hån hồûc bàòng
<= so sạnh nh hån hồûc bàòng
> so sạnh låïn hån
< so sạnh nh hån
VI.
Kiãøu kê tỉû (character):
Mäùi giạ trë kiãøu char chiãúm 1 byte v âỉåüc biãøu diãùn thäng qua bng m ASCII.
Cạc kiãøu kê tỉû trong C :
Kiãøu biãún Tỉì khoạ Säú byte Di giạ trë
Kiãøu cọ dáúu char ( signed char) 1
-128
÷
127
Kiãøu khäng dáúu unsigned char 1
0 ÷ 255

Phán loải :
• Cạc kê tỉû vàn bn cọ m tỉì 32 âãún 126, cọ thãø âỉa ra mn hçnh v mạy in. Cạc
kê tỉû ny gäưm cạc kê tỉû ! ” # $ % & , cạc con säú, cạc chỉỵ cại thỉåìng v hoa,

Cạc kê tỉû âiãưu khiãøn cọ m tỉì 0 âãún 31, nọi chung cạc kê tỉû ny khäng thãø âỉa
ra mn hçnh. Mäüt säú kê tỉû âiãưu khiãøn :
Ta cáưn phán biãût hai kê tỉû ‘0’ v ‘\0’ : Kê tỉû ‘0’ l säú 0 cọ m 48, cn kê tỉû ‘\0’ l kê tỉû
NULL cọ m 0.

Kê tỉû Dy m Giạ trë hexa Giạ trë tháûp phán
âäø chng BEL \a x07 7
xoạ trại BS \b x08 8
nhy cạch ngang \t x09 9
nhy cạch âỉïng \v x0B 11
xúng dng måïi \n x0A 10
sang trang \f x0C 12
vãư âáưu dng \r x0D 13
dáúu “ \” x22 34
dáúu ‘ \’ x27 39
dáúu ? \? x3F 63
dáúu \ \\ x5C 92
dáúu NULL \0 x00 0
Chỉång II : Kiãøu dỉỵ liãûu, biãún v hàòng


Trang 13
Vê dủ : Âãø in ra mäüt dng våïi tiãúng chng trỉåïc v sau dng chỉỵ :
printf(“\aHello%c”,7);
• Cạc kê tỉû âäư ha cọ m säú tỉì 127 âãún 255. Cạc kê tỉû ny cọ thãø âỉa ra mn hçnh
nhỉng khäng thãø âỉa ra mạy in nhåì cạc lãûnh DOS.

Hàòng kê tỉû âỉåüc biãøu diãùn nàòm giỉỵa 2 dáúu nhạy âån : ‘a’,’7’,
Kê tỉû âỉåüc biãøu diãùn dỉåïi dảng Hexa : \xHHH
Kê tỉû âỉåüc biãøu diãùn dỉåïi dảng Octal : \DDD
Vê dủ : ‘A’ cọ thãø viãút nhỉ sau : \x41 hồûc \101

Mäüt säú hm xỉí lê kê tỉû : (âỉåüc cung cáúp trong thỉ viãûn ctype.h)
Hm Tạc dủng
int toascii(int c) chuøn c thnh m ASCII
int tolower(int c) chuøn c thnh chỉỵ thỉåìng
int toupper(int c) chuøn c thnh chỉỵ hoa
Vê dủ : Nháûp chỉỵ thỉåìng tỉì bn phêm v chuøn thnh chỉỵ hoa:
#include <stdio.h>
#include <conio.h>
#include <ctype.h>
main()
{
int chu_thuong,chu_hoa;
chu_thuong=getchar();
chu_hoa=toupper(chu_thuong);
putchar(chu_hoa);
getch();
return 0;
}

Vê dủ : Chuøn mäüt säú thnh m ASCII
#include <stdio.h>
#include <conio.h>
#include <ctype.h>
main()
{
int number,result;
number=511;
result=toascii(number);
printf(“\n%d %d %c\n”, number, result, result);
getch();
return 0;
}
Chỉång II : Kiãøu dỉỵ liãûu, biãún v hàòng


Trang 14
Hm toascii xọa táút c cạc bit ngoải trỉì 7 bit cúi -> kãút qu thüc [0,127]
Kãút qu : 511 127 ∆
Hàòng xáu kê tỉû : l dy kê tỉû nàòm giỉỵa 2 dáúu ngồûc kẹp
Vê dủ : “Ngän ngỉỵ”
Xáu kê tỉû âỉåüc lỉu trong 1 mng ä nhåï liãưn nhau cọ cạc pháưn tỉí l cạc kê tỉû riãng biãût,
pháưn tỉí cúi cng l kê tỉû NULL ( \0 l kê hiãûu kãút thục ca xáu kê tỉû ) . Vê dủ :

Sỉû khạc nhau giỉỵa ‘Z’ v “Z” :
- ‘Z’ gäưm 1 byte, “Z” gäưm 2 byte lỉu trong bäü nhåï
- ‘Z’ cọ thãø âỉåüc sỉí dủng trong biãøu thỉïc toạn hc, cn “Z” thç khäng.
VII.
Khai bạo bàòng cạc hàòng tỉåüng trỉng:
Máùu khai bạo :
#define tãnbanâáưu dy_ thay_thãú
trong âọ dy_ thay_thãú cọ thãø l hàòng säú, hàòng xáu kê tỉû, hàòng logic
Trçnh biãn dëch s thay thãú táút c tãnbanâáưu trong chỉång trçnh bàòng dy_thay_thãú
Vê dủ :
#define PI 3.141592653589793
#define TRUE 1
#define FALSE 0
#define begin {
#define end }
Chụ : Khäng cọ dáúu = v dáúu ; åí cúi cáu vç âáy khäng phi l lãûnh
VIII.
Cạc kiãøu dỉỵ liãûu tỉû âënh nghéa:
VIII.1.

Kiãøu liãût kã :
Khi mún âënh nghéa 1 kiãøu dỉỵ liãûu bàòng cạch liãût kã táút c cạc tãn, cạc giạ trë m ta
mún cọ, ta sỉí dủng tỉì khọa enum nhỉ sau :
enum tãn_kiãøu {pt1,pt2, } biãún_1,biãún_2;
enum tãn_kiãøu {pt1,pt2, };
enum {pt1,pt2, } biãún_1,biãún_2;
enum {pt1,pt2, };
Vê dủ :
enum colors {BLUE,GREEN,RED};
enum colors color ;
color = RED ;
Dy cạc pháưn tỉí âỉåüc liãût kã tỉång ỉïng våïi dy säú tỉû nhiãn bàõt âáưu tỉì 0.
Vê dủ : theo vê dủ trãn :
printf(“%d%d”,BLUE,RED);
s cọ kãút qu l 02.
Âãø pháưn tỉí bàõt âáưu cọ giạ trë khạc 0, ta âënh nghéa nhỉ sau :
T O I \0

Xem chi tiết: Lập trình C


Không có nhận xét nào:

Đăng nhận xét