intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Bài giảng Ngôn ngữ lập trình C - Chương 3: Hằng, biến và mảng

Chia sẻ: Đinh Trường Gấu | Ngày: | Loại File: PPT | Số trang:31

119
lượt xem
10
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Hằng chính là một giá trị thông tin cụ thể. Biến và mảng là các đại lượng mang tin. Mỗi loại biến (mảng) có thể chứa một dạng thông tin nào đó, ví dụ biến kiểu int chứa được các số nguyên, biến kiểu float chứa được các số thực. Để lưu trữ thông tin, biến và mảng cần phải được cấp phát bộ nhớ. Mời các bạn tham khảo "Bài giảng Ngôn ngữ lập trình C - Chương 3: Hằng, biến và mảng" để nắm bắt được những nội dung chi tiết.

Chủ đề:
Lưu

Nội dung Text: Bài giảng Ngôn ngữ lập trình C - Chương 3: Hằng, biến và mảng

  1. Chương III  HẰNG, BIẾN  VÀ MẢNG Trong chương trình C sử dụng các dạng thông tin  (kiểu giá trị) sau: số nguyên (int), số thực hay số  dấu phẩy  động (float), số dấu phẩy  động có  độ  chính xác gấp đôi (double) và ký tự (char). Hằng  chính là một giá trị thông tin cụ thể. Biến  và  mảng  là  các  đại  lượng  mang  tin.  Mỗi  loại  biến (mảng) có thể chứa một dạng thông tin nào  đó, ví dụ biến kiểu int chứa được các số nguyên,  biến  kiểu  float  chứa  được  các  số  thực.  Để  lưư  trử  thông tin, biến  và mảng cần phải  được cấp 
  2. Người ta chia biên ( mảng) thành: ­         Biến (mảng) tự động ­         Biến (mảng) ngoài ­         Biến (mảng) tĩnh. Biến  (mảng)  tự  động  chỉ  tồn  tại  (được  cấp  phát  bộ nhớ) khi nào chúng được sử dụng. Biến (mảng) ngoài và tĩnh tồn tại trong suốt thời  gian làm việc của chương trình. Cách  tổ  chức  như  vậy  vừa  tiết  kiệm  bộ  nhớ  (vì  cùng  một  khoảng  nhớ  lúc  thì  phân  cho  biến  này,  lúc thì phân cho biến khác), vừa cho phép sử dụng  một  tên  biến  cho  các  đối  tượng  khác  nhau  mà  không gây ra một sự nhầm lẫn nào. 
  3. I Kiểu dữ liệu Trong C sử dụng các kiểu dữ liệu sau: ­         Ký tự (char) ­         Số nguyên (int) ­         Số dấu phẩy động độ chính xác đơn (float) ­          Số  dấu  phẩy  động  độ  chính  xác  gấp  đôi  (float) 1. Một giá trị kiểu char  chiếm một byte (8bit) và  biểu  diễn  được  một  ký  tự  thông  qua  bảng  mã  ASCII Thực  chất  dữ  liệu  kiểu  char  là  một  số  nguyên  không dấu trong khoảng từ 0 đến 255. 
  4. Dưới  đây là phạm vi và kích cỡ biểu diễn của giá  trị kiểu char  Phaûm vi biãøu Säú kyï Kiãøu Kêch thæåïc diãùn tæû char 0  255 256 1 byte 2. Giá trị kiểu nguyên (int). Trong C cho phép sử  dụng: Số nguyên (int), số nguyên dài (long) và số  nguyên  không  dấu  (unsigned).  Kích  thước  và  phạm vi biểu diễn của chúng là:  Kêch Kiãøu Phaûm vi biãøu diãùn thæåïc int -32768  32767 2 byte long int -2145483648 2145483648 4 byte unsigned
  5. 3.  Giá  trị  dấu  phẩy  động.  Trong  C  cho  phép  sử  dụng  2  loại  giá  trị  dấu  phẩy  động  là  float  và  double. Kích thước và phạm vị biểu diển là:  Säú chæî Phaûm vi biãøu Kêch Kiãøu säú coï diãùn thæåïc nghéa 1.5e-45  3.4e+38 float 7-8 4 byte 5.0e-324  Giải thích: Máy có th double 1.7e+308 ể lưu trữ15-16   được số d8 ấu ph byteảy  dộng  có  giá  trị  tuyệt  đối  trong  khoảng  từ  1.5e­45  đến 3.4e+38. Số có giá trị tuyệt  đối nhỏ hơn 1.5e­ 45  được  xem  bằng  0.  Phạm  vi  biểu  diễn  của  số  double được hiểu theo nghĩa tương tự.
  6. II.   Hằng Hằng  là  các  đại  lượng  mà  các  giá  trị  của  nó  không  thay  đổi  trong  quá trình tính toán. Các loại hằng được sử dụng: ∙ Hằng dấu chấm động (float và double) được viết theo hai cách Cách  1:  (Ký  pháp  tự  nhiên):  Số  được  viết  theo  cách  thông  thường  chỉ  có  khác  là  dấu  phẩy  thập  phân  được  thay  bởi  dấu  chấm. Ví dụ: 44.356, ­43442.54546 Cách  2:  (Ký  pháp  khoa  học):  Số  được  tách  thành  hai  phần  là  phần  định trị và phần bậc. Phần  định trị là một số nguyên hoặc  số  thực  được  viết  theo  ký  pháp  tự  nhiên,  phần  bậc  là  một  số  nguyên. Hai phần này cách nhau bởi ký tự e hoặc E Ví dụ: 123.456e­5 (Biểu diễn giá trị 0.00123456) 0.123E5 (Biểu diễn giá trị 12300) ­123.56e­4 (Biểu diễn giá trị ­0.012356) 2E4 (Biểu diễn giá trị 20000)
  7. Hằng  int là số nguyên có giá trị trong khoảng từ ­32768   32767 ∙ Hằng long được viết theo kiểu: ­4234253l hoặc ­4234253l (Thêm l hoặc L). Một số nguyên vượt ra ngoài miền xác  định của int cũng được xem là hằng long. ∙ Hằng int  hệ 8 được viết theo cách: 0x1x2x3... Ở đây x1, x2, x3, ... là số nguyên trong khoảng từ 0 đến 7.  Hằng nguyên hệ 8 luôn luôn nhận giá trị dương. ∙ Hằng int  hệ 16 được viết theo cách: 0xx1x2x3... hoặc 0Xx1x2x3... Ở đây x1, x2, x3, ... là số nguyên trong khoảng từ 0  đến 9  và các chữ cái từ a(A)  đến f(F). Hằng nguyên hệ 16 luôn  luôn nhận giá trị dương.
  8. Hằng  ký tự   là một ký tự riêng biệt  được viết trong dấu  nháy đơn (‘), ví dụ: ‘a’, giá trị ‘a’ chính là mã ASCII của  chữ  a.  Như  vậy  giá  trị  của  ‘a’  là  97.  Hằng  ký  tự  có  thể  tham gia vào các phép toán như mọi số nguyên khác.  Ví dụ, giá trị của biểu thức: ‘a’ ­ ‘A’ = 97 ­ 65 = 32 Hằng ký tự còn có thể được viết theo cách ‘\x1x2x3...’ Ở  đây x1, x2, x3, ... là một số hệ 8 mà hệ giá trị của nó  bằng mã ASCII của ký tự cần biểu diễn. Ví dụ: Chữ a có mã hệ 10 là 97  đối ra hệ 8 là 141. Vậy hằng ký  tự ‘a’ có thể viết dưới dạng ‘\141’
  9.  Hằng xâu ký tự: là một dãy các ký tự bất kỳ  đặt  giữa hai dấu nháy kép (“) Ví dụ: “Dai Hoc Su Pham” “” /* Xâu rỗng */ Cách định nghĩa một hằng: #define      Hoặc: const   = 
  10. III. Biến Mọi biến cần phải khai báo trước khi sử dụng. Cách khái  báo một biến: type  Vị trí khái báo biến:  Các biến khai báo cần  đặt ngay sau  dấu {  đầu tiên của thân hàm và cần  đứng trước mọi câu  lệnh. Như vậy, sau một câu lệnh gán chẵng hạn thì không  được khai báo nữa. Việc  khởi  đầu  cho  các  biến:  Nếu  trong  khai  báo,  ngay  sau tên iến ta đặt dấu = và một giá trị nào đó thì đây chính  là cách vừa khai báo vừa khởi đầu cho một biến. Ví dụ: int a, b = 45, c =50; float c, b = 35.79;
  11. Các kiểu dữ liệu  TYPE FORMAT  BYTES MINIUM  MAXIMUM Integer char CHAR_MIN %c 1 CHAR_MAX signed char SCHAR_MI %c 1 SCHAR_MAX unsigned char N %c 1 UCHAR_MAX short [int] 0 %hi 2 SHRT_MAX unsigned SHRT_MIN %hu 2 USHRT_MAX short 0 %i 2 or 4 INT_MAX int INT_MIN %u 2 or 4 UNIT_MAX unsigned int 0 %li 4 LONG_MAX long LONG_MIN %lu  4  ULONG_MAX  unsigned long  0 
  12. TYPE FORMAT  BYTES MINIUM  MAXIMUM Real 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
  13. IV Một số ví dụ về hằng và biến: Ví dụ 1: Chương trình hiển thị các giá trị lớn nhất và nhỏ nhất trong  kiểu số nguyên #include "stdio.h" #include "limits.h" int main(void) { unsigned long big = ULONG_MAX; clrscr(); printf(" Minimum int = %i  ", INT_MIN); printf(" \n Maximum int = %i  ", INT_MAX); printf(" \n Maximum unsigned = %u  ", UINT_MAX); printf(" \n Maximum long int = %li  ", LONG_MAX); printf(" \n Maximum unsigned long = %lu  ", big); getch(); return 0; }
  14. Ví dụ 2: Chương trình hiển thị các giá trị trong kiểu char  #include "stdio.h" #include "limits.h" int main(void) { char lower_a ='a'; char lower_z ='z'; clrscr(); printf(" Minimum char = %i  ", CHAR_MIN); printf(" \n Maximum char = %i  ", CHAR_MAX); printf(" \n Sau ky tu '%c' la ky tu '%c' ",lower_a, lower_a+1); printf(" \n Ky tu hoa cua '%c' la '%c' ", lower_z,lower_z­'a'+'A'); getch(); return 0; }
  15. Ví dụ 3: Hãy viết chương trinh chuyển đổi giữa các hệ cơ số: #include "stdio.h" int main(void) { int dec = 45 , oct = 045, hex = 0xA5, heX =0XA5; clrscr(); printf("Decimal = %d   Octan = %d  Hexa = %d, Hexa = %d \n", dec,  oct, hex,heX); printf("Decimal = %d   Octan = %o  Hexa = %x\n", dec, oct, hex); printf("Decimal = %d   Octan = %o  Hexa = %X", dec, oct, heX); getch(); return 0; }
  16. VI. Mảng Một biến chỉ có thể biểu diễn được một giá  trị. Để biểu diễn một dãy hay một bảng số ta có thể  dùng nhiều biến nhưng cáhc này không tiên lợi.  Việc sử dụng mảng là cách tốt hơn nhiều trong  những trường hợp như vây. Mảng có thể hiểu là tập hợp nhiều phần tử  có cùng một kiểu giá trị và có chung một tên. Mỗi  phần tử của mảng biểu diễn được một giá trị Có bao nhiêu kiểu biến thì cũng có bấy nhiêu  kiểu mảng. Mảng cần được khai báo để định rõ: ­ Loại mảng (int, float, double,...) ­ Tên mảng ­ Số chiều và kích thước mỗi chiều.
  17. Khai bái mảng: Mảng một chiều:  [Number of elements] Mảng nhiều chiều:  [Num of elements1][Num of  elements ] Ví dụ: Khai báo mảng 1 chiêu: int  a[10] /*Khai báo một mảng chứa 10 số  nguyên*/ Khai báo mảng 2 chiều: int b[5][4] /Khai báo một ma trận có 5dòng 4  cột*/
  18. Chú ý: Các  phần  của  mảng  được  cấp  phát  các  khoảng  nhớ  liên  tiếp  nhau  trong  bộ  nhớ.  Nói  cách  khác  phần tử có địa chỉ liên tiếp nhau trong bộ nhớ. Trong  bộ  nhớ,  các  phần  tử  của  mảng  hai  chiều  được sắp xếp theo hàng. Truy cập đến từng phần tử của mảng: – Mỗi  phần  tử  của  mảng  được  xác  định  nhờ  các  chỉ số của nó. – Chỉ  số  của  mảng  phải  có  giá  trị  int  không  vượt  quá kích thước của chiều tương ứng. Ví dụ:  a[i] b[i][j]
  19. Chú ý: Cho phép lấy địa chỉ của mảng một chiều: &a[I] Và không chấp nhận phép tính: &b[i][j] V. Khối lệnh: 1. Định nghĩa: Một khối lệnh là gồm dãy các câu lệnh được bao bởi  các dấu { và } Ví dụ: { a = 4; b = 5; printf(“\n %6d%6d”,a,b)
  20. Máy  xem  một  khối  lệnh  cũng  như  một  câu  lệnh  riêng  lẻ. Nói cáhc khác, chổ nào trong chương trình đặt được  một câu lệnh thì có thể đặt một khối lệnh 2. Khai báo biến ở đầu khối lệnh: Các  khai  báo  chẳng  những  có  thể  đặt  ở  đầu  mỗi  hàm  mà còn có thể viết ở đầu khối lệnh. Ví dụ: { int a ,b; float x, y,z; a=b=3; x=5; y=a*x; z= 5­b*y; printf(“\ny = %8.2f\nz = %8.2f”,y,z); }
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2