Tải bản đầy đủ (.ppt) (70 trang)

Bai giang ngon ngu lap trinh CPPT ppt

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 (1.37 MB, 70 trang )

Bai giang ngon ngu lap trinh C -
(c) Nguyen Quang Huy 12/2000
1
Trêng®¹ihäcb¸chkhoahµnéi
Trêng®¹ihäcb¸chkhoahµnéi
Ng«n ng÷ lËp tr×nh
C
Ngêiso¹n:NguyÔnQuangHuy
12/2000
Bai giang ngon ngu lap trinh C -
(c) Nguyen Quang Huy 12/2000
2
Ch¬ng1
Ch¬ng1
C¬b¶nvÒng«nng÷c
C¬b¶nvÒng«nng÷c

Tæng quan vÒ ng«n ng÷ C

CÊu tróc chung cña mét ch ¬ng tr×nh C

C¸c thµnh phÇn c¬ b¶n cña ng«n ng÷

C¸c kiÓu d÷ liÖu c¬ b¶n

C¸c cÊu tróc lÖnh c¬ b¶n trong C

Vµo ra trong C
Bai giang ngon ngu lap trinh C -
(c) Nguyen Quang Huy 12/2000
3


TængquanvÒng«nng÷c
TængquanvÒng«nng÷c

Do B.W.Kerninghan & D.M.Ritchie (1970) ph¸t triÓn t¹i
Bell lab.

T¹i sao l¹i sö dông C?

NNLT v¹n n¨ng.

TÝnh kh¶ chuyÓn (portability).

§é thÝch nghi cao, tÝnh mÒm dÎo, NNLT chuyªn
nghiÖp.

TÝnh hiÖu qu¶.
Bai giang ngon ngu lap trinh C -
(c) Nguyen Quang Huy 12/2000
4
CÊutrócchungcñamétch¬ngtr×nhC
CÊutrócchungcñamétch¬ngtr×nhC
#include <stdio.h>
#include <conio.h>
/* Ch ¬ng tr×nh chÝnh */
void main()
{
printf(“Hello, world!\n”);
/* §îi Ên mét phÝm */
getch();
}

PhÇn dÉn h íng biªn dÞch
PhÇn khai b¸o
PhÇn ch ¬ng tr×nh chÝnh
Bai giang ngon ngu lap trinh C -
(c) Nguyen Quang Huy 12/2000
5
Cácthànhphầncơbảncủangônngữ
Cácthànhphầncơbảncủangônngữ

Bộ chữ viết:

phân biệt chữ hoa và chữ th ờng

Tên:

quy tắc đặt tên

Từ khoá: asm, break, case, char, const, continue, if,

Các kiểu dữ liệu cơ bản

Các biến

Các hằng

Biểu thức
Bai giang ngon ngu lap trinh C -
(c) Nguyen Quang Huy 12/2000
6
C¸ckiÓud÷liÖuc¬b¶n

C¸ckiÓud÷liÖuc¬b¶n
KiÓu Ph¹m vi KÝch th íc
char 0 255 1 byte
int -32768 32767 2 bytes
long -2147483648 2147484647 4 bytes
unsigned 0 65535 2 bytes
float 3.4e-38 3.4e+38 4 bytes
double 1.7e-308 1.7e+308 8 bytes
Bai giang ngon ngu lap trinh C -
(c) Nguyen Quang Huy 12/2000
7
Khaib¸obiÕn
Khaib¸obiÕn
<KiÓu_d÷_liÖu><TªnbiÕn>[=<Gi¸trÞ>];

Gi¸ trÞ cña biÕn cã thÓ ® îc khëi g¸n khi khai b¸o.
VÝ dô:
int i, j;
float f;
char ch, ch1 = ‘A’, ch2 = ‘\n’;
double eps = 1E-6;
Bai giang ngon ngu lap trinh C -
(c) Nguyen Quang Huy 12/2000
8
Khaib¸oh»ng
Khaib¸oh»ng



H»ng t îng tr ng:

#define<tªn_h»ng><gi¸_trÞ>
VÝ dô:
#define MAX 100;
#define ECHO "DHBK Hanoi"

H»ng biÕn:
const<tªn_kiÓu><tªn_h»ng>=<gi¸_trÞ>;
VÝ dô:
const long MAX = 100L;
const char ECHO[30] = "DHBK Hanoi";
Bai giang ngon ngu lap trinh C -
(c) Nguyen Quang Huy 12/2000
9
Biểuthức(1/5)
Biểuthức(1/5)

Các phép toán số học: +, -, *, /, %, -

Các phép toán quan hệ: >, <, >=, <=, ==, !=

Các phép toán logic: &&, ||, !

Các phép toán thao tác bit: &, |, ^, <<, >>, ~

Thao tác số học

Thao tác logic

Phép toán tăng giảm: ++,


Phân biệt ++n; và n++;
Bai giang ngon ngu lap trinh C -
(c) Nguyen Quang Huy 12/2000
10
BiÓuthøc(2/5)
BiÓuthøc(2/5)

To¸n tö g¸n:
<BiÕn>=<BiÓu_thøc>;

BiÓu thøc g¸n:
<BiÕn>=<BiÓu_thøc>
VÝ dô: int a = b = 5;

BiÓu thøc g¸n rót gän:
<BiÕn>=<BiÕn><op><BiÓu_thøc>
<BiÕn><op>=<BiÓu_thøc>
VÝ dô: i = i + exp; > i += exp;
Bai giang ngon ngu lap trinh C -
(c) Nguyen Quang Huy 12/2000
11
BiÓuthøc(3/5)
BiÓuthøc(3/5)

BiÓu thøc ®iÒu kiÖn:
Bt1?Bt2:Bt3
VÝ dô:
max = (a>b) ? a : b;

PhÐp to¸n lÊy ®Þa chØ biÕn:

&<BiÕn>
VÝ dô:
int n;
scanf("%d",&n);
Bai giang ngon ngu lap trinh C -
(c) Nguyen Quang Huy 12/2000
12
BiÓuthøc(4/5)
BiÓuthøc(4/5)

ChuyÓn ®æi kiÓu tù ®éng:
char->int->long->float->double->longdouble

PhÐp to¸n chuyÓn ®æi kiÓu:
(<KiÓu>)<BiÓu_thøc>
VÝ dô:
int n = (int) 10.24;

Thø tù u tiªn cña c¸c to¸n tö:
Bai giang ngon ngu lap trinh C -
(c) Nguyen Quang Huy 12/2000
13
BiÓuthøc(5/5)
BiÓuthøc(5/5)
To¸n tö Thø tù kÕt hîp
(), [], -> Tr¸i sang ph¶i
~, ++, , (type) Ph¶i sang tr¸i
*, /, % Tr¸i sang ph¶i
+, - Tr¸i sang ph¶i
<<, >> Tr¸i sang ph¶i

<, <=, >, >= Tr¸i sang ph¶i
& Tr¸i sang ph¶i
| Tr¸i sang ph¶i
^ Tr¸i sang ph¶i
&& Tr¸i sang ph¶i
|| Tr¸i sang ph¶i
==, !=, +=, -= Ph¶i sang tr¸i
Bai giang ngon ngu lap trinh C -
(c) Nguyen Quang Huy 12/2000
14
CáccấutrúclệnhcơbảntrongC
CáccấutrúclệnhcơbảntrongC

Câu lệnh đơn: <Lệnh>;

Câu lệnh ghép: { }

Cấu trúc tuần tự

Cấu trúc điều kiện

Cấu trúc lặp
Bai giang ngon ngu lap trinh C -
(c) Nguyen Quang Huy 12/2000
15
CÊutróc®iÒukiÖn(1/2)
CÊutróc®iÒukiÖn(1/2)

C©u lÖnh if :
if (BiÓu thøc) <LÖnh>;

hoÆc:
if (BiÓu thøc) <LÖnh 1>;
else <LÖnh 2>;
VÝ dô:
if (a<b) max=b;
else max=a;
Bai giang ngon ngu lap trinh C -
(c) Nguyen Quang Huy 12/2000
16
CÊutróc®iÒukiÖn(2/2)
CÊutróc®iÒukiÖn(2/2)

C©u lÖnh SWITCH :
switch (BiÓu_thøc_nguyªn){
case N1 : Lenh1;
case N2 : Lenh2;

[default : Lenh;]
}
VÝ dô:
switch (ch){
case 1 :
case 2 : printf("1 ou 2"); break;
case 3 : printf("3"); break;
default : printf("greater than 3");
}
Bai giang ngon ngu lap trinh C -
(c) Nguyen Quang Huy 12/2000
17
CÊutróclÆp(1/3)

CÊutróclÆp(1/3)

C©u lÖnh FOR:
for ( Bt1; Bt2; Bt3 ) Lenh;
VÝ dô: tÝnh N!
long Gt,i,N;

Gt = 1;
for (i=1; i<=N; i++)
Gt *= i;
Bai giang ngon ngu lap trinh C -
(c) Nguyen Quang Huy 12/2000
18
Cấutrúclặp(2/3)
Cấutrúclặp(2/3)

Câu lệnh WHILE:
while (<Biểu thức đk>) Lenh;
Ví dụ: đọc một dãy 20 số nguyên từ bàn phím
int day[20];
int chiso = 0;
while (chiso<20)
{
printf(\nSo thu %d :,chiso);
scanf(%d,&day[chiso]);
chiso++;
}
Bai giang ngon ngu lap trinh C -
(c) Nguyen Quang Huy 12/2000
19

CÊutróclÆp(3/3)
CÊutróclÆp(3/3)

C©u lÖnh DO WHILE :
do Lenh1;
while (<BiÓu thøc ®k>);
VÝ dô: TÝnh tÝch v« h íng cña hai vect¬ X,Y:
int X[MAXL], Y[MAXL], chiso=0;
tichvohuong = 0;
do {
tichvohuong += X[chiso]*Y[chiso];
} while (++chiso < MAXL);
Bai giang ngon ngu lap trinh C -
(c) Nguyen Quang Huy 12/2000
20
VµoratrongC(1/5)
VµoratrongC(1/5)

Vµo ra qua c¸c kªnh xuÊt/nhËp (I/O streams):
Gi¸ trÞ > Kªnh xuÊt > Khu«n d¹ng > ThiÕt bÞ ra
ThiÕt bÞ vµo > Kªnh vµo > Khu«n d¹ng > BiÕn

Th viÖn c¸c hµm vµo ra: stdio.h vµ conio.h
#include <stdio.h>
#include <conio.h>

Hµm printf() vµ scanf()
Bai giang ngon ngu lap trinh C -
(c) Nguyen Quang Huy 12/2000
21

VàoratrongC(2/5)
VàoratrongC(2/5)



Hàm printf():
printf(<format> [,<arguments>, ] );

<format>: xâu định dạng

<arguments>: các tham số t ơng ứng
Ví dụ:
printf("n = %d\n", -10); /* > -10 */
printf("n = %u\n", -10); /* > 65526 */
printf("A : %4c\n", 'A'); /* > A */
printf("A : %d\n", 'A'); /* > 65 */
printf("f = %4.2f", 123.4); /* > 123.40 */
Bai giang ngon ngu lap trinh C -
(c) Nguyen Quang Huy 12/2000
22
VµoratrongC(3/5)
VµoratrongC(3/5)


§Þnh d¹ng KiÓu Ghi chó
%d int Sã nguyªn
%i int HÖ 10 cã dÊu
%o int HÖ 8 kh«ng dÊu
%u int Sè nguyªn kh«ng dÊu
%x int HÖ 16 kh«ng dÊu

%X int HÖ 16 kh«ng dÊu
%e, %E float, double DÊu chÊm ®éng
%f, %lf float, double DÊu phÈy tÜnh
%g. %G float, double DÊu phÈy tÜnh hoÆc ®éng
%c char Ký tù
%s char * X©u ký tù
Bai giang ngon ngu lap trinh C -
(c) Nguyen Quang Huy 12/2000
23
VàoratrongC(4/5)
VàoratrongC(4/5)



Hàm scanf():
scanf(<format>, {<address>, } );

<format>: xâu định dạng

< address>: địa chỉ của các tham số t ơng ứng
Ví dụ:
int n;
long l;
float f;
double d;
printf("Nhập các giá trị cho các biến n,l,f,d:");
scanf("%d%ld%f%lf", &n, &l, &f, &d);
Bai giang ngon ngu lap trinh C -
(c) Nguyen Quang Huy 12/2000
24

VµoratrongC(5/5)
VµoratrongC(5/5)


§Þnh d¹ng KiÓu Ghi chó
%d int Sã nguyªn
%o int HÖ 8 kh«ng dÊu\
%x int HÖ 16 kh«ng dÊu
%c char Ký tù
%s char * X©u ký tù
%f float
%lf double
%ld long
Bai giang ngon ngu lap trinh C -
(c) Nguyen Quang Huy 12/2000
25
VÝdô1
VÝdô1
:TÝnhtænghaisè
:TÝnhtænghaisè
#include <stdio.h>
int main()
{
int a, b, c;
printf("Enter the first value:");
scanf("%d", &a);
printf("Enter the second value:");
scanf("%d", &b);
c = a + b;
printf("%d + %d = %d\n", a, b, c);

return 0;
}

×