Ngôn ngữ lập trình c&c++ ( Phạm Hồng Thái) P9

Chia sẻ: Yukogaru | Ngày: | Loại File: PDF | Số trang:9

0
57
lượt xem
12
download

Ngôn ngữ lập trình c&c++ ( Phạm Hồng Thái) P9

Mô tả tài liệu
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Chương 3. Cấu trúc điều khiển và dữ liệu kiểu mảng Hàm so sánh 2 xâu s và t (thay cho các phép toán so sánh). Giá trị trả lại là hiệu 2 kí tự khác nhau đầu tiên của s và t. Từ đó, nếu s1 s2. Trong trường hợp chỉ quan tâm đến so sánh bằng, nếu hàm trả lại giá trị 0 là 2 xâu bằng nhau và nếu giá trị trả lại khác 0 là 2 xâu khác nhau. Ví dụ:..........

Chủ đề:
Lưu

Nội dung Text: Ngôn ngữ lập trình c&c++ ( Phạm Hồng Thái) P9

  1. Chương 3. Cấu trúc điều khiển và dữ liệu kiểu mảng Hàm so sánh 2 xâu s và t (thay cho các phép toán so sánh). Giá trị trả lại là hiệu 2 kí tự khác nhau đầu tiên của s và t. Từ đó, nếu s1 < s2 thì hàm trả lại giá trị âm, bằng 0 nếu s1==s2, và dương nếu s1 > s2. Trong trường hợp chỉ quan tâm đến so sánh bằng, nếu hàm trả lại giá trị 0 là 2 xâu bằng nhau và nếu giá trị trả lại khác 0 là 2 xâu khác nhau. Ví dụ: if (strcmp(s,t)) cout
  2. Chương 3. Cấu trúc điều khiển và dữ liệu kiểu mảng • strlen(s) ; Hàm trả giá trị là độ dài của xâu s. Ví dụ: char s[10] = "Ha Noi" ; cout
  3. Chương 3. Cấu trúc điều khiển và dữ liệu kiểu mảng while ((t[i] = s[i]) != '\0') i++; // copy cả dấu kết thúc xâu '\0' cout
  4. Chương 3. Cấu trúc điều khiển và dữ liệu kiểu mảng không quá nhanh chương trình sử dụng hàm trễ delay(n) (thuộc dos.h, tạm dừng trong n phần nghìn giây) với n được điều chỉnh thích hợp theo tốc độ của máy. Hàm gotoxy(x, y) (thuộc conio.h) trong chương trình đặt con trỏ màn hình tại vị trí cột x dòng y để đảm bảo dòng chữ luôn luôn hiện ra tại đúng một vị trí trên màn hình. #include #include #include main() { char qc[100] = "Quảng cáo miễn phí: Không có tiền thì không có kem. "; int dd = strlen(qc); char tam[100] ; strcpy(tam, qc) ; strcat(qc, tam) ; // nhân đôi dòng quảng cáo clrscr(); // xoá màn hình char hien[31] ; // chứa xâu dài 30 kí tự để hiện i = 0; while (!kbhit()) { // trong khi chưa ấn phím bất kỳ strncpy(hien, s+i, 30); hien[30] = '\0'; // copy 30 kí tự từ qc[i] sang hien gotoxy(20,10); cout
  5. Chương 3. Cấu trúc điều khiển và dữ liệu kiểu mảng #include void main() { char pw[11]; int solan = 0; // Cho phep nhap 3 lan do { clrscr(); gotoxy(30,12) ; int i = 0; while ((pw[i]=getch()) != 13 && ++i < 10) cout
  6. Chương 3. Cấu trúc điều khiển và dữ liệu kiểu mảng trong bộ nhớ tất cả 12 phần tử của mảng được sắp liên tiếp theo từng dòng của mảng như minh hoạ trong hình dưới đây. dòng 0 dòng 1 dòng 2 a. Khai báo [m][n] ; − m, n là số hàng, số cột của mảng. − kiểu thành phần là kiểu của m x n phần tử trong mảng. − Trong khai báo cũng có thể được khởi tạo bằng dãy các dòng giá trị, các dòng cách nhau bởi dấu phẩy, mỗi dòng được bao bởi cặp ngoặc {} và toàn bộ giá trị khởi tạo nằm trong cặp dấu {}. b. Sử dụng • Tương tự mảng một chiều các chiều trong mảng cũng được đánh số từ 0. • Không sử dụng các thao tác trên toàn bộ mảng mà phải thực hiện thông qua từng phần tử của mảng. • Để truy nhập phần tử của mảng ta sử dụng tên mảng kèm theo 2 chỉ số chỉ vị trí hàng và cột của phần tử. Các chỉ số này có thể là các biểu thức thực, khi đó C++ sẽ tự chuyển kiểu sang nguyên. Ví dụ: − Khai báo 2 ma trận 4 hàng 5 cột A, B chứa các số nguyên: int A[3][4], B[3][4] ; − Khai báo có khởi tạo: int A[3][4] = { {1,2,3,4}, {3,2,1,4}, {0,1,1,0} }; với khởi tạo này ta có ma trận: 1 2 3 4 3 2 1 4 0 1 1 0 trong đó: A[0][0] = 1, A[0][1] = 2, A[1][0] = 3, A[2][3] = 0 … 74
  7. Chương 3. Cấu trúc điều khiển và dữ liệu kiểu mảng − Trong khai báo có thể vắng số hàng (không được vắng số cột), số hàng này được xác định thông qua khởi tạo. float A[][3] = { {1,2,3}, {0,1,0} } ; trong khai báo này chương trình tự động xác định số hàng là 2. − Phép khai báo và khởi tạo sau đây là cũng hợp lệ: float A[][3] = { {1,2}, {0} } ; chương trình cũng xác định số hàng là 2 và số cột (bắt buộc phải khai báo) là 3 mặc dù trong khởi tạo không thể xác định được số cột. Các phần tử chưa khởi tạo sẽ chưa được xác định cho đến khi nào nó được nhập hoặc gán giá trị cụ thể. Trong ví dụ trên các phần tử A[0][2], A[1][1] và A[1][2] là chưa được xác định. c. Ví dụ minh hoạ Ví dụ 1 : Nhập, in và tìm phần tử lớn nhất của một ma trận. #include #include #include main() { float a[10][10] ; int m, n ; // số hàng, cột của ma trận int i, j ; // các chỉ số trong vòng lặp int amax, imax, jmax ; // số lớn nhất và chỉ số của nó clrscr(); cout > m >> n ; for (i=0; i
  8. Chương 3. Cấu trúc điều khiển và dữ liệu kiểu mảng { amax = a[i][j]; imax = i; jmax = j; } cout
  9. Chương 3. Cấu trúc điều khiển và dữ liệu kiểu mảng clrscr(); cout > m >> n >> p; // Nhập ma trận A for (i=1; i
Đồng bộ tài khoản