Nội dung môn học
Tổng quan
Các kiểu dữ liệu cơ bản
Lệnh nhập, xuất dữ liệu
Các cấu trúc điều khiển
Hàm
Struct
Mảng
Con trỏ
Chuỗi kí tự
22 trang |
Chia sẻ: phuongt97 | Lượt xem: 463 | Lượt tải: 0
Bạn đang xem trước 20 trang nội dung tài liệu Bài giảng Nhập môn lập trình: Mở đầu - Trần Phước Tuấn, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
NMLT
M? ??U
Tr?n Ph??c Tu?n
tranphuoctuan.khoatoan.dhsp@gmail.com
NH?P MÔN L?P TRÌNH 212/23/2009
?? ???ng bài gi?ng
? M?c tiêu môn h?c: Cung c?p cho sinh viên các k? ??ng c?
b?n ?? l?p trình gi?i quy?t các v?n ??, bài toán. Các ch??ng
trình ???c th? hi?n b?ng NNLT C. Riêng v? ngôn ng? l?p
trình C, các sinh viên ???c cung c?p các k? ??ng:
? ??c và vi?t ???c ch??ng trình ??n gi?n
? Hi?u c?u trúc ngôn ng?
? S? d?ng thành th?o các th? vi?n chu?n
? Nh?n bi?t và s?a ch?a các l?i th??ng g?p khi l?p trình
? Các môn h?c tiên quy?t: không.
? N?i dung bài gi?ng:
NH?P MÔN L?P TRÌNH 312/23/2009
N?i dung môn h?c
? T?ng quan
? Các ki?u d? li?u c? b?n
? L?nh nh?p, xu?t d? li?u
? Các c?u trúc ?i?u khi?n
? Hàm
? Struct
? M?ng
? Con tr?
? Chu?i ký t?
NH?P MÔN L?P TRÌNH 412/23/2009
T?ng quan
? Khái ni?m ch??ng trình – l?p trình
? C?u trúc m?t ch??ng trình ??n gi?n
? Khái ni?m Thu?t toán – bi?u di?n thu?t toán
? Khái ni?m NNLT, ?? l??c l?ch s? phát tri?n NNLT
? Ngôn ng? l?p trình C
Các thành ph?n
c?a ch??ng trình C
NH?P MÔN L?P TRÌNH 612/23/2009
Ví d? ch??ng trình C
/*VIDU.CPP*/
#include
int main()
{
printf(“Nhap mon lap trinh\n");
printf(“Vi du don gian\n");
return 0;
}
/*VIDU.CPP*/
#include
int main()
{
printf(“Nhap mon lap trinh\n");
printf(“Vi du don gian\n");
return 0;
} Nhap mon lap trinh
Vi du don gian
Nhap mon lap trinh
Vi du don gian
Th? vi?n nh?p xu?t chu?nGhi chú
Hàm main
Báo CT k?t thúc cho H?H
NH?P MÔN L?P TRÌNH 712/23/2009
M?t s? ??u ý t? ví d?
? Ph?n ghi chú ???c trình biên d?ch b? qua
? Phân bi?t ch? in hoa và ch? in th??ng
? Câu l?nh luôn ???c k?t thúc b?ng d?u ;
? Chu?i ký t? ph?i ghi gi?a c?p nháy kép “
? In xu?ng dòng dùng ký t? \n
? Ch??ng trình nên thông báo k?t qu? th?c hi?n v?i h?
th?ng: T?t – 0, có l?i – 1, 2, 3
? Ch??ng trình có m?t hàm main
NH?P MÔN L?P TRÌNH 812/23/2009
Ví d? 2
#include
int main(void)
{
int a, b;
printf(“Nhap 2 so ngguyen: ");
scanf("%i %i", &a, &b);
printf("%i - %i = %i\n", a, b, a - b);
return 0;
}
#include
int main(void)
{
int a, b;
printf(“Nhap 2 so ngguyen: ");
scanf("%i %i", &a, &b);
printf("%i - %i = %i\n", a, b, a - b);
return 0;
}
Khai báo 2 bi?n s?
nguyên, “a” và “b”
Nh?p 2 s? nguyên
vào a và b
Vi?t các bi?u th?c “a”,
“b” và “a-b” theo ??nh
??ng %i Nhap 2 so nguyen: 21 17
21 - 17 = 4
Nhap 2 so nguyen: 21 17
21 - 17 = 4
NH?P MÔN L?P TRÌNH 912/23/2009
Bi?n – Variable
int a, b;
? Ch?a d? li?u có th? thay ??i ???c trong ch??ng trình.
? Mu?n s? d?ng ph?i khai báo.
? Tên: g?m ch? cái, ký s?, d?u n?i (_), không ???c b?t
??u b?ng ký s?.
? Bi?n khai báo trong kh?i ???c g?i là bi?n c?c b?,
không thu?c kh?i nào ???c g?i là bi?n toàn c?c
? Có tác d?ng trong toàn kh?i k? t? lúc ???c khai báo.
NH?P MÔN L?P TRÌNH 1012/23/2009
L?nh xu?t - printf
Xu?t d? li?u ra màn hình:
printf("%i - %i = %i\n", a, b, a - b);
? Các ký t? h?ng ???c in nguyên v?n
? Các ký t? ??nh d?ng ???c thay b?ng giá tr? c?a bi?u
th?c t??ng ?ng:
? %i: ký t? ??nh d?ng s? nguyên ki?u int
? Các ký t? ?i?u khi?n: \n – xu?ng dòng; \t – d?u tab;
\\ – d?u \; \“– d?u “
? Th? vi?n: stdio.h
NH?P MÔN L?P TRÌNH 1112/23/2009
L?nh nh?p - scanf
Nh?p d? li?u t? bàn phím
scanf("%i %i", &a, &b);
? Trong chu?i ??nh d?ng ch? có ký t? ??nh d?ng và
kho?ng tr?ng.
? D? li?u ph?i ???c nh?p vào các bi?n.
? Tr??c tên bi?n ph?i ghi d?u & - toán t? ??a ch?. N?u
không có toán t? ??a ch?, giá tr? c?a bi?n s? không
???c c?p nh?t
? Th? vi?n: stdio.h
Ki?u d? li?u c? s?
trong C
NH?P MÔN L?P TRÌNH 1312/23/2009
Các ki?u s? nguyên c?a C
? C h? tr? khá nhi?u ki?u s? nguyên
? Các giá tr? l?n nh?t và nh? nh?t ???c ??nh ngh?a trong th?
vi?n “limits.h”
Ki?u ??nh d?ng kích th??c nh? nh?t l?n nh?t
char %c 1 CHAR_MIN CHAR_MAX
unsigned char %c 1 0 UCHAR_MAX
short [int] %hi 2 SHRT_MIN SHRT_MAX
unsigned short%hu 2 0 USHRT_MAX
int %i 2 or 4 INT_MIN INT_MAX
unsigned int %u 2 or 4 0 UINT_MAX
long [int] %li 4 LONG_MIN LONG_MAX
unsigned long %lu 4 0 ULONG_MAX
NH?P MÔN L?P TRÌNH 1412/23/2009
Ví d? v? s? nguyên
#include
#include
int main()
{
unsigned long big = ULONG_MAX;
printf("minimum int = %i, ", INT_MIN);
printf("maximum int = %i\n", INT_MAX);
printf("maximum unsigned = %u\n", UINT_MAX);
printf("maximum long int = %li\n", LONG_MAX);
printf("maximum unsigned long = %lu\n", big);
return 0;
}
#include
#include
int main()
{
unsigned long big = ULONG_MAX;
printf("minimum int = %i, ", INT_MIN);
printf("maximum int = %i\n", INT_MAX);
printf("maximum unsigned = %u\n", UINT_MAX);
printf("maximum long int = %li\n", LONG_MAX);
printf("maximum unsigned long = %lu\n", big);
return 0;
} minimum int = -32768, maximum int = 32767
maximum unsigned = 65535
maximum long int = 2147483647
maximum unsigned long = 4294967295
minimum int = -32768, maximum int = 32767
maximum unsigned = 65535
maximum long int = 2147483647
maximum unsigned long = 4294967295
NH?P MÔN L?P TRÌNH 1512/23/2009
#include
#include
int main()
{
char lower_a = 'a';
char lower_m = 'm';
printf("minimum char = %i, ", CHAR_MIN);
printf("maximum char = %i\n", CHAR_MAX);
printf(“Sau '%c' la '%c'\n", lower_a, lower_a + 1);
printf(“Ky tu in hoa '%c'\n", lower_m - 'a' + 'A');
return 0;
}
#include
#include
int main()
{
char lower_a = 'a';
char lower_m = 'm';
printf("minimum char = %i, ", CHAR_MIN);
printf("maximum char = %i\n", CHAR_MAX);
printf(“Sau '%c' la '%c'\n", lower_a, lower_a + 1);
printf(“Ky tu in hoa '%c'\n", lower_m - 'a' + 'A');
return 0;
} minimum char = -128, maximum char = 127
Sau 'a' la 'b'
Ky tu in hoa 'M'
minimum char = -128, maximum char = 127
Sau 'a' la 'b'
Ky tu in hoa 'M'
In ra mã ASCII c?a ký t?
Ví d? ki?u ký t?
Trong NNLT C, ký t?
chính là s? nguyên
NH?P MÔN L?P TRÌNH 1612/23/2009
S? nguyên trong các c? s? khác
? Các h? ?? s? có th? th?c hi?n ???c: ?? s? 8 (octal), ?? s?
10 (decimal), ?? s? 16 (hexadecimal)
?? 0: s? octal 0x: s?
hexadecimal
#include
int main(void)
{
int dec = 20, oct = 020, hex = 0x20;
printf("dec=%d, oct=%d, hex=%d\n", dec, oct, hex);
printf("dec=%d, oct=%o, hex=%x\n", dec, oct, hex);
return 0;
}
#include
int main(void)
{
int dec = 20, oct = 020, hex = 0x20;
printf("dec=%d, oct=%d, hex=%d\n", dec, oct, hex);
printf("dec=%d, oct=%o, hex=%x\n", dec, oct, hex);
return 0;
} dec=20, oct=16, hex=32dec=20, oct=20, hex=20
dec=20, oct=16, hex=32
dec=20, oct=20, hex=20
NH?P MÔN L?P TRÌNH 1712/23/2009
S? th?c
? C h? tr? nhi?u ki?u s? th?c l?u tr? d?u ch?m ??ng.
? Các giá tr? l?n nh?t và nh? nh?t ???c ??nh ngh?a trong th? vi?n
“float.h”
Ki?u ??nh d?ng kích th??c nh? nh?t ??n nh?t
float %f %e %g 4 FLT_MIN FLT_MAX
double %lf %le %lg 8 DBL_MIN DBL_MAX
long double %Lf %Le %Lg 10 LDBL_MIN LDBL_MAX
NH?P MÔN L?P TRÌNH 1812/23/2009
Ví d? s? th?c:
#include
#include
int main(void)
{
double f = 3.1416, g = 1.2e-5, h = 5000000000.0;
printf("f=%lf\tg=%lf\th=%lf\n", f, g, h);
printf("f=%le\tg=%le\th=%le\n", f, g, h);
printf("f=%lg\tg=%lg\th=%lg\n", f, g, h);
printf("f=%7.2lf\tg=%.2le\th=%.4lg\n", f, g, h);
return 0;
}
#include
#include
int main(void)
{
double f = 3.1416, g = 1.2e-5, h = 5000000000.0;
printf("f=%lf\tg=%lf\th=%lf\n", f, g, h);
printf("f=%le\tg=%le\th=%le\n", f, g, h);
printf("f=%lg\tg=%lg\th=%lg\n", f, g, h);
printf("f=%7.2lf\tg=%.2le\th=%.4lg\n", f, g, h);
return 0;
} f=3.141600 g=0.000012 h=5000000000.000000
f=3.141600e+00 g=1.200000e-05 h=5.000000e+09
f=3.1416 g=1.2e-05 h=5e+09
f= 3.14 g=1.20e-05 h=5e+09
f=3.141600 g=0.000012 h=5000000000.000000
f=3.141600e+00 g=1.200000e-05 h=5.000000e+09
f=3.1416 g=1.2e-05 h=5e+09
f= 3.14 g=1.20e-05 h=5e+09
NH?P MÔN L?P TRÌNH 1912/23/2009
H?ng – Constant
const int days_in_week = 7;
Ch?a d? li?u không th? thay ??i ???c trong ch??ng trình.
? Mu?n s? d?ng ph?i khai báo.
? Ph?i có ki?u (???ng t? nh? bi?n)
? H?ng s? có ch?a “.” ho?c “e” có ki?u double (3.5, 1e-7, -1.29e15)
? H?ng s? ki?u float k?t thúc b?i “F” (3.5F, 1e-7F)
? H?ng s? ki?u long double k?t thúc b?i “L” (-1.29e15L, 1e-7L)
? H?ng s? không có “.”, “e” ho?c “F” có ki?u int. Ví d?: 10000, -35.
(M?t vài trình biên d?ch t? ??ng chuy?n thành long int n?u giá tr?
h?ng tràn ki?u int)
? Khai báo h?ng long int ph?i thêm vào cu?i “L” (9000000L)
NH?P MÔN L?P TRÌNH 2012/23/2009
Ví d? v? h?ng
Các h?ng pi, days_in_week, sunday ???c t?o v?i t? khóa const
#include
int main(void)
{
const long double pi = 3.141592653590L;
const int days_in_week = 7;
const sunday = 0;
days_in_week = 5;
return 0;
}
#include
int main(void)
{
const long double pi = 3.141592653590L;
const int days_in_week = 7;
const sunday = 0;
days_in_week = 5;
return 0;
}
L?i
NH?P MÔN L?P TRÌNH 2112/23/2009
H?ng x? lý tr??c biên d?ch
? Các h?ng có th? ???c xác l?p tr??c khi biên d?ch
? B?n ch?t là tìm ki?m và thay th?
? Th??ng ???c ??t tên v?i các ch? cái in hoa
#include
#define PI 3.141592653590L
#define DAYS_IN_WEEK 7
#define SUNDAY 0
int day = SUNDAY;
long flag = USE_API;
#include
#define PI 3.141592653590L
#define DAYS_IN_WEEK 7
#define SUNDAY 0
int day = SUNDAY;
long flag = USE_API;
Tìm t? “PI”, thay b?ng 3.1415....
Không thay th? “PI”
??u ý: không
có “=” và “;”
Toán t? trong C
NH?P MÔN L?P TRÌNH 2312/23/2009
Toán t? trong C
? Phép toán s? h?c
? Ép ki?u
? Các toán t? trên bit
? Các toán t? so sánh
? Phép gán
? Toán t? sizeof
? Bi?u th?c ?i?u ki?n
NH?P MÔN L?P TRÌNH 2412/23/2009
Toán t? s? h?c
? NNLT C h? tr? các phép toán s? h?c:
+ c?ng
- tr?
* nhân
/ chia
% chia l?y d?
??u ý:
? “/” cho k?t qu? ph? thu?c vào ki?u c?a các toán h?ng
? “%” không th?c hi?n ???c v?i các s? th?c
NH?P MÔN L?P TRÌNH 2512/23/2009
Ví d? v? toán t? chia “/”
? Trình biên d?ch d?a vào ki?u c?a các toán h?ng ?? quy?t
??nh phép chia t??ng ?ng
int main(void)
{
int i = 5, j = 4, k;
double f = 5.0, g = 4.0, h;
k = i / j;
h = f / g;
h = i / j;
return 0;
}
int main(void)
{
int i = 5, j = 4, k;
double f = 5.0, g = 4.0, h;
k = i / j;
h = f / g;
h = i / j;
return 0;
}
“i”, “j” ki?u int, “/” là
phép chia l?y nguyên
? k nh?n giá tr? 1
“f”, “g” ki?u double, “/”
là phép chia s? th?c
? h nh?n giá tr? 1.25
Phép chia nguyên, b?t
?? “h” có ki?u double.
??t qu? là 1.00000
NH?P MÔN L?P TRÌNH 2612/23/2009
Ép ki?u
? Ép ki?u làm thay ??i t?m th?i ki?u c?a m?t bi?n trong m?t
bi?u th?c.
int main(void)
{
int i = 5, j = 4;
double f;
f = (double)i / j;
f = i / (double)j;
f = (double)i / (double)j;
f = (double)(i / j);
return 0;
}
int main(void)
{
int i = 5, j = 4;
double f;
f = (double)i / j;
f = i / (double)j;
f = (double)i / (double)j;
f = (double)(i / j);
return 0;
}
Phép chia s? nguyên
???c th?c hi?n, k?t
qu?, 1, ???c ??i sang
ki?u double, 1.00000
NH?P MÔN L?P TRÌNH 2712/23/2009
Phép t?ng (gi?m) 1
? NNLT C có 2 toán t? ??c bi?t h? tr? vi?c t?ng (gi?m) giá tr?
c?a m?t bi?n thay ??i 1 ??n v?
++ ??ng 1
-- gi?m 1
? Các toán t? này có th? ??t ? tr??c ho?c sau bi?n.
int i = 5, j = 4;
i ++;
-- j;
++ i;
int i = 5, j = 4;
i ++;
-- j;
++ i;
“i” ? 6
“j”? 3
“i” ? 7
NH?P MÔN L?P TRÌNH 2812/23/2009
Tr??c hay sau ?
Th? t? th?c hi?n các toán t? ++ và -- ph? thu?c vào v? trí c?a
chúng (t???c hay sau) so v?i bi?n:
#include
int main(void)
{
int i, j = 5;
i = ++j;
printf("i=%d, j=%d\n", i, j);
j = 5;
i = j++;
printf("i=%d, j=%d\n", i, j);
return 0;
}
#include
int main(void)
{
int i, j = 5;
i = ++j;
printf("i=%d, j=%d\n", i, j);
j = 5;
i = j++;
printf("i=%d, j=%d\n", i, j);
return 0;
}
i=6, j=6
i=5, j=6
i=6, j=6
i=5, j=6
???ng ???ng:
1. j++;
2. i = j;
???ng ???ng:
1. i = j;
2. j++;
NH?P MÔN L?P TRÌNH 2912/23/2009
Ki?u lu?n lý trong C
? Trong C không có ki?u d? li?u lu?n lý (th? hi?n các
giá tr? ?ÚNG – SAI), thay vào ?ó các bi?u th?c so
sánh s? cho k?t qu? là S?
? Giá tr? 0 (0.0) ?ng v?i k?t qu? SAI (FALSE)
? Các giá tr? khác nh? 1, -3.5, -7, 10.4, (khác không)
??u ???c xem là ?ÚNG (TRUE)
NH?P MÔN L?P TRÌNH 3012/23/2009
Các toán t? so sánh
? NNLT C h? tr? các phép so sánh:
< bé ??n
<= bé ??n hay b?ng
> l?n h?n
>= l?n h?n hay b?ng
== b?ng
!= không b?ng
? T?t c? ??u cho k?t qu? 1 khi so sánh ?úng và 0 trong
tr??ng h?p ng??c l?i.
NH?P MÔN L?P TRÌNH 3112/23/2009
Toán t? lu?n lý
? NNLT C h? tr? các toán t? lu?n lý:
&& và (and)
|| ho?c (or)
! ph? ??nh (not)
? T?t c? ??u cho k?t qu? 1 ho?c 0 ???ng ?ng các tr??ng h?p
?ÚNG ho?c SAI
int i, j = 10, k = 28;
i = ((j > 5) && (k 24);
int i, j = 10, k = 28;
i = ((j > 5) && (k 24);
NH?P MÔN L?P TRÌNH 3212/23/2009
Toán t? lu?n lý
? ??u ý khi s? d?ng các toán t? lu?n lý:
N?u không có các d?u (), các phép toán ???c th?c hi?n t?
trái sang ph?i
if(i 0)
printf("%i\n", a[i]);
if(i 0)
printf("%i\n", a[i]);
“i < 10” ???c ki?m tra tr??c, n?u không ?úng giá tr?
??a bi?u th?c s? là 0 và “a[i] > 0” s? không ???c tính
(i 0))(i 0))
Nên vi?t
Không nên:(a < b < c)Không nên:(a < b < c) Nên:((a < b) && (b< c)Nên:((a < b) && (b< c)
NH?P MÔN L?P TRÌNH 3312/23/2009
Toán t? trên bit
? Các toán t? trên bit ch? có tác d?ng trên các ki?u s? nguyên:
& And
| Or
^ XOr
>> ??y ph?i
<< ??y trái
NH?P MÔN L?P TRÌNH 3412/23/2009
Ví d? v? các toán t? trên bit
#include
int main(void)
{
short a = 0x6eb9;
short b = 0x5d27;
unsigned short c = 7097;
printf("0x%x, ", a & b);
printf("0x%x, ", a | b);
printf("0x%x\n", a ^ b);
printf("%u, ", c << 2);
printf("%u\n", c >> 1);
return 0;
}
#include
int main(void)
{
short a = 0x6eb9;
short b = 0x5d27;
unsigned short c = 7097;
printf("0x%x, ", a & b);
printf("0x%x, ", a | b);
printf("0x%x\n", a ^ b);
printf("%u, ", c << 2);
printf("%u\n", c >> 1);
return 0;
} 0x4c21, 0x7fbf, 0x339e
28388, 3548
0x4c21, 0x7fbf, 0x339e
28388, 3548
0x6eb9 0110 1110 1011 1001
0x5d27 0101 1101 0010 0111
0x4c21 0100 1100 0010 0001
0x6eb9 0110 1110 1011 1001
0x5d27 0101 1101 0010 0111
0x4c21 0100 1100 0010 0001
0x6eb9 0110 1110 1011 1001
0x5d27 0101 1101 0010 0111
0x7fbf 0111 1111 1011 1111
0x6eb9 0110 1110 1011 1001
0x5d27 0101 1101 0010 0111
0x7fbf 0111 1111 1011 1111
0x6eb9 0110 1110 1011 1001
0x5d27 0101 1101 0010 0111
0x339e 0011 0011 1001 1110
0x6eb9 0110 1110 1011 1001
0x5d27 0101 1101 0010 0111
0x339e 0011 0011 1001 1110
7097 0001 1011 1011 1001
28388 0110 1110 1110 0100
7097 0001 1011 1011 1001
28388 0110 1110 1110 0100
7097 0001 1011 1011 1001
3548 0000 1101 1101 1100
7097 0001 1011 1011 1001
3548 0000 1101 1101 1100
NH?P MÔN L?P TRÌNH 3512/23/2009
Phép gán
? Có th? s? d?ng liên ti?p nhi?u phép gán
? Giá tr? ???c gán s? s?n sàng cho l?nh k? ti?p
int i, j, k, l, m, n;
i = j = k = l = m = n = 22;
printf("%i\n", j = 93);
int i, j, k, l, m, n;
i = j = k = l = m = n = 22;
printf("%i\n", j = 93);
“n = 22” gán tr??c, l?i
gán “n” cho “m”, “m”
cho “l”, ? i, j, k, l, m,
n ??u nh?n giá tr? 22.
“j” ???c gán 93, giá tr? 93 s?
???c in ra màn hình
NH?P MÔN L?P TRÌNH 3612/23/2009
??u ý:
? V? trái phép gán luôn ph?i là bi?n
? Không ???c nh?m l?n gi?a so sánh b?ng “==” và gán “=”
#include
int main(void)
{
int i = 0;
if(i = 0)
printf("i nhan gia tri khong\n");
else
printf(“i khac khong\n");
return 0;
}
#include
int main(void)
{
int i = 0;
if(i = 0)
printf("i nhan gia tri khong\n");
else
printf(“i khac khong\n");
return 0;
}
i khac khongi khac khong
Phép gán
NH?P MÔN L?P TRÌNH 3712/23/2009
M?t s? phép gán ??c bi?t
? Các phép gán k?t h?p toán t? khác:
+= -= *= /= %=
&= |= ^=
>=
? T?ng quát:
bi?n op= bi?u th?c
???ng ???ng:
bi?n = bi?n op (bi?u th?c)
a += 27;a += 27;
a = a + 27;a = a + 27;
f /= 9.2;f /= 9.2;
f = f / 9.2;f = f / 9.2;
i *= j + 2;i *= j + 2;
i = i * (j + 2);i = i * (j + 2);
NH?P MÔN L?P TRÌNH 3812/23/2009
Toán t? sizeof
sizeof(Obj)
? Cho bi?t kích th??c c?a ??i t??ng theo ??n v? byte
#include
int main(void)
{
long big;
printf("\"big\" is %u bytes\n", sizeof(big));
printf("a short is %u bytes\n", sizeof(short));
printf("a double is %u bytes\n", sizeof (double));
return 0;
}
#include
int main(void)
{
long big;
printf("\"big\" is %u bytes\n", sizeof(big));
printf("a short is %u bytes\n", sizeof(short));
printf("a double is %u bytes\n", sizeof (double));
return 0;
}
"big" is 4 bytes
a short is 2 bytes
a double is 8 bytes
"big" is 4 bytes
a short is 2 bytes
a double is 8 bytes
NH?P MÔN L?P TRÌNH 3912/23/2009
Bi?u th?c ch?n theo ?i?u ki?n
(?i?u ki?n) ? BT1 : BT2
? Bi?u th?c nh?n giá tr? BT1 n?u ?i?u ki?n khác 0 (?ÚNG),
các tr??ng h?p khác nh?n giá tr? BT2
? Có th? ??nh ngh?a s?n m?t macro ?? tìm s? l?n:
#define max(x, y) ((x>y) ? x : y)
int i, j = 100, k = -1;
i = (j > k) ? j : k;
int i, j = 100, k = -1;
i = (j > k) ? j : k;
int i, j = 100, k = -1;
i = (j < k) ? j : k;
int i, j = 100, k = -1;
i = (j < k) ? j : k;
??u (j > k)
i = j;
Ng??c l?i
i = k;
??u (j > k)
i = j;
Ng??c l?i
i = k;
??u (j < k)
i = j;
Ng??c l?i
i = k;
??u (j < k)
i = j;
Ng??c l?i
i = k;
NH?P MÔN L?P TRÌNH 4012/23/2009
?? ?u tiên c?a toán t?
? Th? t? th?c hi?n các toán t? trong m?t bi?u th?c ph? thu?c
vào ?? ?u tiên c?a chúng.
? Có 15 m?c ?u tiên.
? Thông th??ng, toán t? m?t ngôi có ?? ?u tiên cao h?n toán
t? hai ngôi.
? Các c?p d?u ngo?c ??n () t???ng ???c dùng ?? ch? rõ th? t?
các toán t?. #include
int main(void)
{
int j = 3 * 4 + 48 / 7;
printf("j = %i\n", j);
return 0;
}
#include
int main(void)
{
int j = 3 * 4 + 48 / 7;
printf("j = %i\n", j);
return 0;
} j = 18
j = 18
NH?P MÔN L?P TRÌNH 4112/23/2009
B?ng th? t? th?c hi?n các toán t?
Toán t? Th? ?? (n?u cùng ??T)
() [] -> . ?
! ++ -- - + (cast) * & sizeof ?
* / % ?
+ - ?
> ?
= > ?
== != ?
& ?
| ?
^ ?
&& ?
|| ?
?: ?
= += -= *= /= %= ?
NH?P MÔN L?P TRÌNH 4212/23/2009
Luy?n t?p
#include
int main(void)
{
int i = 0, j, k = 7, m = 5, n;
j = m += 2;
printf("j = %d\n", j);
j = k++ > 7;
printf("j = %d\n", j);
j = i == 0 & k;
printf("j = %d\n", j);
n = !i > k >> 2;
printf("n = %d\n", n);
return 0;
}
#include
int main(void)
{
int i = 0, j, k = 7, m = 5, n;
j = m += 2;
printf("j = %d\n", j);
j = k++ > 7;
printf("j = %d\n", j);
j = i == 0 & k;
printf("j = %d\n", j);
n = !i > k >> 2;
printf("n = %d\n", n);
return 0;
}
NH?P MÔN L?P TRÌNH 4312/23/2009
Tóm l??c
? M?t s? thành ph?n c?a ch??ng trình trong C
? Hàm main
? L?nh xu?t / nh?p – printf / scanf
? Bi?n
? Các ki?u s? nguyên và s? th?c
? H?ng – 2 cách khai báo
? S? d?ng toán t? trong C
Các file đính kèm theo tài liệu này:
- bai_giang_nhap_mon_lap_trinh_tran_phuoc_tuan.pdf