• Task 7 [ Lập trình C cơ bản ]


    Fix Debug :
    Auto Question and Answer
    1
    .Cách khai báo một mảng ?

    Khai báo một mảng:
    Một mảng có một vài đặc tính riêng biệt và phải được khai báo khi sử dụng chúng. Những đặc tính này bao gồm:
    Lớp lưu trữ
    Kiểu dữ liệu của các phần tử mảng.
    Tên mảng
    – xác định vị trí phần tử đầu tiên của mảng.
    Kích thước mảng - một hằng số có giá trị nguyên dương.
    2.Quy tắc trong mảng ?
    Tất cả các phần tử của một mảng có cùng kiểu. Điều này có nghĩa là, nếu một mảng được khai báo kiểu int, nó không thể chứa các phần tử có kiểu khác.
    ·         Mỗi phần tử của mảng có thể được sử dụng bất cứ nơi nào mà một biến được cho phép hay được yêu cầu.
    ·         Một phần tử của mảng có thể được tham chiếu đến bằng cách sử dụng một biến hoặc một biểu thức nguyên. Sau đây là các tham chiếu hợp lệ:

    player[i]; /*Ở đó i là một biến, tuy nhiên cần phải chú ý rằng i nằm trong miền giới hạn của chỉ số đã được khai báo cho mảng player*/
    player[3] = player[2] + 5;
    player[0] += 2;
    player[i / 2 + 1];

    ·         Kiểu dữ liệu của mảng có thể là int, char, float, hoặc double.
    3.Note về cách khởi tạo mảng ?
    Các mảng không được khởi tạo tự động, trừ khi mỗi phần tử mảng được gán một giá trị riêng lẻ. Không nên dùng các mảng trước khi có sự khởi tạo thích hợp. Điều này là bởi vì không gian lưu trữ của mảng không được khởi tạo tự động, do đó dễ gây ra kết quả không lường trước. Mỗi khi các phần tử của một mảng chưa khởi tạo được sử dụng trong các biểu thức toán học, các giá trị đã tồn tại sẵn trong ô nhớ sẽ được sử dụng, các giá trị này không đảm bảo rằng có cùng kiểu như khai báo của mảng, trừ khi các phần tử của mảng được khởi tạo một cách rõ ràng. Điều này đúng không chỉ cho các mảng mà còn cho các biến thông thường.

    Trong đoạn mã lệnh sau, các phần tử của mảng được gán giá trị bằng các dùng vòng lặp for.

         int ary[20], i;
         for(i=0; i<20; i++)
               ary[i] = 0;

    Khởi tạo một mảng sử dụng vòng lặp for có thể được thực hiện với một hằng giá trị, hoặc các giá trị được sinh ra từ một cấp số cộng.
    4.Các mảng chuỗi kí tự ?
    Các mảng chuỗi/ký tự:

    Một chuỗi có thể được khai báo như là một mảng ký tự, và được kết thúc bởi một ký tự NULL. Mỗi ký tự của chuỗi chiếm 1 byte, và ký tự cuối cùng của chuỗi luôn luôn là ký tự ‘\0’. Ký tư ‘\0’ được gọi là ký tự null. Nó là một mã thoát (escape sequence)  tương tự như ‘\n’, thay thế cho ký tự có giá trị 0. Vì ‘\0’ luôn là ký tự cuối cùng của một chuỗi, nên các mảng ký tự phải có nhiều hơn một ký tự so với chiều dài tối đa mà chúng quản lý
    5.Nêu 1 vài ví dụ hàm ?

    Tên hàm
    Chức năng
    strcpy(s1, s2)
    Sao chép s2 vào s1
    strcat(s1, s2)
    Nối s2 vào cuối của s1
    strlen(s1)
    Trả về chiều dài của s1
    strcmp(s1, s2)
    Trả về 0 nếu s1 và s2 là giống nhau; nhỏ hơn 0 nếu s1<s2; lớn hơn 0 nếu s1> s2
    strchr(s1, ch)
    Trả về một con trỏ trỏ đến vị trí xuất hiện đầu tiên của ch trong s1
    strstr(s1, s2)
    Trả về một con trỏ trỏ đến vị trí xuất hiện đầu tiên của chuỗi s2 trong chuỗi s1

    6.Thế nào là mảng hai chiều ?
    Chúng ta đã biết thế nào là mảng một chiều. Điều này có nghĩa là các mảng chỉ có một chỉ số. Các mảng có thể có nhiều hơn một chiều. Các mảng đa chiều giúp dễ dàng trình bày các đối tượng đa chiều, chẳng hạn một đồ thị với các dòng và cột hay tọa độ màn hình của máy tính. Các mảng đa chiều được khai báo giống như các mảng một chiều, ngoại trừ có thêm một cặp dấu ngoặc vuông [] trong trường hợp mảng hai chiều.
    7.Cách khởi tạo mảng đa chiều ?
    Khởi tạo mảng đa chiều:

    Khai báo mảng đa chiều có thể kết hợp với việc gán các giá trị khởi tạo. Cần phải cẩn thận lưu ý đến thứ tự các giá trị khởi tạo được gán cho các phần tử của mảng (chỉ có mảng external và static có thể được khởi tạo). Các phần tử trong dòng đầu tiên của mảng hai chiều sẽ được gán giá trị trước, sau đó đến các phần tử của dòng thứ hai, … Hãy xem sự khai báo mảng sau:

         int ary[3][4] ={1,2,3,4,5,6,7,8,9,10,11,12};
    8.Cách khai báo mảng hai chiều và chuỗi ?
    Mảng hai chiều và chuỗi:

    Như chúng ta đã biết ở phần trước, một chuỗi có thể được biểu diễn bằng mảng một chiều, kiểu ký tự. Mỗi ký tự trong chuỗi được lưu trữ trong một phần tử của mảng. Mảng của chuỗi có thể được tạo bằng cách sử dụng mảng ký tự hai chiều. Chỉ số bên trái xác định số lượng chuỗi, và chỉ số bên phải xác định chiều dài tối đa của mỗi chuỗi. Ví dụ bên dưới khai báo một mảng chứa 25 chuỗi và mỗi chuỗi có độ dài tối đa 80 ký tự kể cả ký tự null.

        char str_ary[25][80];

    9. Ví dụ mảng hai chiều ?
    Ví d
    minh ho cách s dng ca mt mng hai chiu:
     nhập một danh sách các tên và sau đó sắp xếp chúng theo thứ tự bảng chữ cái.

        #include <stdio.h>
        #include <string.h>
        #include <conio.h>

        void main()
        {
               int i, n = 0;
               int item;
               char x[10][12];
               char temp[12];
                   
               printf(“Enter each string on a separate line \n\n”);
               printf(“Type ‘END’ when over \n\n”);
        
               /* Read in the list of strings */
               do
               {
                    printf(“String %d: ”, n + 1);
                    scanf(“%s”, x[n]);
               } while (strcmp(x[n++], “END”));

               /*Reorder the list of strings */
       
               n = n – 1;
               for(item = 0; item < n - 1; ++item)
               {
                    /* Find lowest of remaining strings */

                    for(i = item + 1; i < n; ++i)
                    {
                         if(strcmp(x[item], x[i]) > 0)
                         {
                               /*Interchange two strings*/
                               strcpy(temp, x[item]);
                               strcpy(x[item], x[i]);
                               strcpy(x[i], temp);
                         }
                    }
               }

               /* Display the arranged list of strings */

               printf(“Recorded list of strings: \n”);

               for(i = 0; i < n; ++i)
               {
                    printf("\nString %d is %s", i + 1, x[i]);
               }
        }


    10. Tóm tắt bài học ?

    Ø  Một mảng là một tập hợp các phần tử dữ liệu có cùng kiểu được tham chiếu bởi cùng một tên.

    Ø  Mỗi phần tử của mảng có cùng kiểu dữ liệu, cùng lớp lưu trữ và có cùng các đặc tính.

    Ø  Mỗi phần tử được lưu trữ ở vị trí kế tiếp nhau trong bộ nhớ chính. Các phần tử dữ liệu được biết như là các phần tử mảng.

    Ø  Chiều của mảng được xác định bởi số các chỉ số cần thiết để định danh duy nhất mỗi phần tử.

    Ø  Các mảng có thể có các kiểu dữ liệu như int, char, float, hoặc double.

    Ø  Phần tử của mảng có thể được tham chiếu bằng cách sử dụng một biến hoặc một biểu thức số nguyên.

    Ø  Một mảng không thể được khởi tạo, trừ khi mỗi phần tử được gán một giá trị riêng lẻ.

    Ø  Các mảng extern static có thể được khởi tạo khi khai báo.

    Ø  Mảng hai chiều có thể xem như là một mảng của các mảng một chiều.





    ___________________________________________________________________
    tóm tắt s11 qua Xmind (Screenshot ):
    ---------------------------------------------------------------------
    Gõ lại tất cả ví dụ Session 11 :
    VD 11.1

    VD 11.2


    VD 11.3



    VD 11.4 :

    VD 11.5


    VD 11.6

    _______________________________________________
    Bài tập làm trước :

    1.      Viết một chương trình để sắp xếp các tên sau đây theo thứ tự abc.

    George
    Albert
    Tina
    Xavier

          Roger

          Tim

          William




  • 0 nhận xét:

    Đăng nhận xét

    QUOTE & QUOTE

    Without requirements or design, programming is just the art of adding bugs to a blank text file.

    ADDRESS

    100000, My Dinh, Ha Noi, VN

    EMAIL

    minhbu883@mail.com
    minhnn17@fsoft.com.vn

    TELEPHONE

    +84964 214 883

    MOBILE

    +8438 5689 888