Trang 1 trên tổng số 2 12 Cuối cùngCuối cùng
Từ 1 tới 10 trên tổng số 18 kết quả

Đề tài: Các kiến thức cơ bản về lập trình C

  1. #1
    Ngày gia nhập
    07 2006
    Bài viết
    121

    Mặc định Các kiến thức cơ bản về lập trình C

    Bài 1
    *** Lệnh khai báo thư viện
    *vd : #include <stdio.h>
    Thư viện stdio.h là thư viện chuẩn trong C
    các bạn có thể biết thêm 1 số thư viện khác như
    <string.h> thư viện dùng đẻ xử lý chuỗi ký tự
    <malloc.h> thư viện dùng để cấp phát bộ nhớ
    <conio.h> cái nì quên rồi ai biết thì trích dùm tôi, lâu rồi nên quên nhưng tôi nhớ là khai báo thư viện này thì sử dụng được lệnh clrscr();
    - tiếp theo là khai báo hàm :
    * Có 2 kiểu khai báo hàm :
    void main() <=== hàm không trả về giá trị
    vd:
    C Code:
    1. #include <stdio.h>
    2. void main()
    3. {
    4.      printf("Test test test");
    5. }
    kiểu khai báo thứ 2 :
    int main() <=== hàm trả về giá trị kiểu int
    vd:
    C Code:
    1. #include <stdio.h>
    2. int main
    3. {
    4.      int a;
    5.      printf("\n Nhap gia tri");
    6.      scanf("%d",&d);
    7.      return(a);
    8. }
    Tiếp theo ta học đến phần kiểu dự liệu cơ bản:
    * int<số nguyên>
    Kích thước :16 bit
    Khoảng giá trị : -32768->32767
    * float<số thực>
    Kích thước : 32 bit
    Khoảng giá trị :6 ký số, ví dụ như 6,55555
    * char
    Kích thước : 8bit
    Khoảng giá trị : -128 ->127

    Thôi buồn ngủ rồi ai có kiến thức post tiếp và edit giùm với
    Đã được chỉnh sửa lần cuối bởi shinichi_haha : 09-12-2006 lúc 12:45 PM.

  2. #2
    Ngày gia nhập
    07 2006
    Bài viết
    121

    Mặc định Biến và Hằng

    Biến và Hằng.

    Biến: trong C biến là một vùng nhớ có tên dùng để lưu trữ các giá trị khi tính toán, các giá trị của biến có thể thay đổi trong suốt thời gian chương trình thực thi.
    các thuộc tính của biến gồm có kiểu dữ lệu của biến (type), TênBiến (name),và Miền giá trị (Domain).Các kiểu dữ liệu của biến và miền giá trị đã được giới thiệu ở trên.
    để khai báo một biến ta thực hiện cú pháp sau:
    Code:
              type name[=giá trị khởi tạo];
    [=giá trị khởi tạo] có thể có hoặc không.
    ví dụ:
    Code:
              int a;
              long b=10;
    Ta có thể khai báo nhiều biến có cùng kiểu dữ liệu trên cùng một dòng.
    ví dụ:
    Code:
            int a,b=10,c,d;
    Hằng: là một vùng nhớ có tên giống như biến, tuy nhiên giá trị của hằng là không thay đổi suốt chương trình.
    Để khai báo một hằng ta dùng từ khóa const với cú pháp như sau:
    Code:
     const type name=giátrị;
    Lưu ý: giá trị của hằng phải xác định trong câu khai báo hằng.
    ví dụ:
    Code:
    const float pi=3.14;
    Đã được chỉnh sửa lần cuối bởi shinichi_haha : 18-09-2006 lúc 07:59 PM.

  3. #3
    Ngày gia nhập
    07 2006
    Bài viết
    121

    Mặc định Các phép toán trong lập trình C

    Các phép toán trong C

    Phép gán =
    Phép tóan này dùng để gán một giá trị cho một biến với cú pháp sau:
    Syntax Code:
    1. dest=source;
    với dest phải là một biến. source là biến hay là một hằng số bất kỳ.
    ví dụ:
    C Code:
    1.     int a,b=10;
    2.     const int c=12;
    3.     a=b; //ok a=10.
    4.     a=11;//ok a=11.
    5.     11=a;//false 11 không phải là biến.
    6.     c=12;// false c là một hằng số không thể thay đổi được.

    Các phép tóan đại số:

    Phép tóan cộng +
    ví dụ:
    C Code:
    1.     int a=0,b=1,c=2;
    2.     a=12+1;   //lấy 12+1=13 rồi gán cho a, kết quả(kq) a=13.
    3.     a=b+c;    //lấy biến giá trị b cộng giá tri c tức 1+2 rồi gán cho a, kq a=3.
    4.     a=c+10;  //lấy biến c cộng 10 rồi gán cho a, kq a=12.
    5.     a=a+10;  //lấy biến a cộng 10 rồi gán cho a,kq a=12+10=22.
    6.     a=a+a;   //lấy biến a cộng cho a rồi gán cho a,kq=22+22=44.

    Chương trình sau cho phép bạn nhập vào 2 số và in kết quả phép tính cộng hai số ra màn hình.
    C Code:
    1. #include<stdio.h>
    2. #include<conio.h>
    3. int main()
    4. {
    5.     float a,b,c;
    6.     printf("Chuong trinh tinh tong hai so\n")
    7.     printf("Ban hay nhap vao so thu nhat :");
    8.     scanf("%f",&a);
    9.     printf("Ban hay nhap vao so thu hai :");
    10.     scanf("%f",&b);
    11.     c=a+b;
    12.     printf("\nKet Qua của phep cong: %f+%f=%f",a,b,c);
    13.     return 0;
    14. }

    .................................................. ..............................

    Tiếp theo các phép toán.

    Phép tóan trừ -
    ví dụ:
    C Code:
    1.     int a,b=0,c=0;
    2.     a=12-1;  //lấy 12-1 gán vào a, Kết quả(kq) a=11.
    3.     b=a-3;   //lấy a-3 gán vào b, kq b=11-3=8.
    4.     c=b-8;   //lấy b-8 gán vào c, kq c=8-8=0.
    Chương trình sau cho phép bạn nhập hai số sau đó xuất giá trị hiệu của hai số ra màn hình.
    C Code:
    1. #include<stdio.h>
    2. #include<conio.h>
    3. int main()
    4. {
    5.     float a,b,c;
    6.     printf("Chuong trinh tinh tong hai so\n")
    7.     printf("Ban hay nhap vao so thu nhat :");
    8.     scanf("%f",&a);
    9.     printf("Ban hay nhap vao so thu hai :");
    10.     scanf("%f",&b);
    11.     c=a-b;
    12.     printf("\nKet Qua của phep cong: %f-%f=%f",a,b,c);
    13.     return 0;
    14. }

    Phép toán nhân *
    C Code:
    1.     int a, b;
    2.     a=2*20; //lấy 2 nhân với 20 rồi gán vào cho a, kết quả (kq) a=40.
    3.     b=a*2;  //lấy a=40 nhân với 2 rồi gán vào b, kq b=80.
    4.     a=a*a; // lấy a=40 nhân với a=40 rồi gán lại cho a, kq a=1600

    Chương trình sau cho phép bạn nhập hai số sau đó in ra kết quả tích của hai số đó.
    C Code:
    1. #include<stdio.h>
    2. #include<conio.h>
    3. int main()
    4. {
    5.      float a,b,c;
    6.      printf("Chuong trinh tinh tich hai so\n")
    7.      printf("Ban hay nhap vao so thu nhat :");
    8.      scanf("%f",&a);
    9.      printf("Ban hay nhap vao so thu hai :");
    10.      scanf("%f",&b);
    11.      c=a*b;
    12.      printf("\nKet Qua của phep nhan: %f*%f=%f",a,b,c);
    13.      return 0;
    14. }

    [b]Phép toán chia /

    Phép chia số nguyên:
    kết quả của phép toán là lấy phần nguyên của phép toán.
    Ví dụ: 5/2 ta được 2 dư 1. Kết quả(kq) ta được 2.
    Chú ý: Phép toán này chỉ thực được hiện trên tập số nguyên.
    Vậy: Nếu ta có n=a*b+c thì phép toán chia nguyên của n/b=a và n/a=b.

    Chương trình sau sẽ cho phép nhập vào hai số sau đó lấy phần nguyên của kết quả phép chia.
    C Code:
    1. #include<stdio.h>
    2. #include<conio.h>
    3. int main()
    4. {
    5.      int a,b,c;
    6.      printf("Chuong trinh tinh tong hai so\n");
    7.      printf("Ban hay nhap vao so thu nhat :");
    8.      scanf("%d",&a);
    9.      printf("Ban hay nhap vao so thu hai :");
    10.      scanf("%d",&b);
    11.      c=a/b;
    12.      printf("\nKet Qua của phép chia nguyên: %d-%d=%d",a,b,c);
    13.      return 0;
    14. }
    [U]

    Phép toán chia đối với số thực
    Phép toán này có kết quả như ta chia một số thực bình thường kết quả sẽ là một số thực như 5/2=2.5.
    C Code:
    1. #include<stdio.h>
    2. #include<conio.h>
    3. int main()
    4. {
    5.      float a,b,c;
    6.      printf("Chuong trinh tinh tong hai so\n");
    7.      printf("Ban hay nhap vao so thu nhat :");
    8.      scanf("%f",&a);
    9.      printf("Ban hay nhap vao so thu hai :");
    10.      scanf("%f",&b);
    11.      c=a/b;
    12.      printf("\nKet Qua của phep chia so thuc: %f / %f=%f",a,b,c);
    13.      return 0;
    14. }

    Phép toán lấy phần dư của phép chia số nguyên % (phép toán mode)

    Như tôi đã nói như trên nếu n=a*b+c. ta có n/a=b và n/b=a là phép toán chia nguyên còn n%a=c hay n%b=c là phép toán lấy phần dư của phép chia nguyên. ví dụ ta có 5/2 được 2 dư 1 thì 5%2 sẽ được 1.
    C Code:
    1. #include<stdio.h>
    2. #include<conio.h>
    3. int main()
    4. {
    5.      int a,b,c;
    6.      printf("Chuong trinh tinh tong hai so\n");
    7.      printf("Ban hay nhap vao so thu nhat :");
    8.      scanf("%d",&a);
    9.      printf("Ban hay nhap vao so thu hai :");
    10.      scanf("%d",&b);
    11.      c=a%b;
    12.      printf("\nKet Qua của phép chia nguyên: %d %% %d=%d",a,b,c);
    13.      return 0;
    14. }

  4. #4
    Ngày gia nhập
    07 2006
    Bài viết
    121

    Mặc định Các phép toán luận lý trong lập trình C

    Các phép toán luận lý

    Các phép toán luận lý có hai kết quả trả về là đúng hay sai, giá trị đúng là 1, giá trị sai là 0.

    Phép toán so sánh bằng ==
    Phép so sánh hai biểu thức A và B ký hiệu A==B là một mệnh đề. Mệnh đề này có giá trị là đúng(bằng 1) nếu biểu thức A bằng biểu thức B, ngược lại mệnh đề này sẽ có giá trị false (bằng 0).
    C Code:
    1.    int a,b;
    2.    a=1;
    3.    b=2;
    4.    b==a;//có giá trị là sai (0)
    5.    a==1;//có giá trị là đúng (1)
    6.    2==b;//có giá trị là đúng.
    7.    2==2;//có giá trị là đúng.

    Ta có thể lấy giá trị của kết quả phép toán so sánh bằng cách gán giá trị trả về của phép so sánh vào một biến cụ thể.
    C Code:
    1.      int a;
    2.      a=(1==2);//Mệnh đề 1==2 là một mệnh đề sai,a sẽ được gán kết quả là a=0.
    3.      a=(a==0);//mệnh đề a==0 là một mệnh đề đúng do đó kết quả a=1.
    Chương trình cho phép bạn nhập vào 2 số và in ra giá trị đúng sai của biểu thức so sánh hai số.
    C Code:
    1. #include<stdio.h>
    2. #include<conio.h>
    3. int main()
    4. {
    5.      int a,b,c;
    6.      printf("Chuong trinh tinh tong hai so\n");
    7.      printf("Ban hay nhap vao so thu nhat :");
    8.      scanf("%d",&a);
    9.      printf("Ban hay nhap vao so thu hai :");
    10.      scanf("%d",&b);
    11.      c=(b==a);
    12.      printf("\nKet Qua cua phep so sanh: (%d == %d)=%d",a,b,c);
    13.      return 0;
    14. }


    Phép so sánh không bằng !=

    Phép so sánh A!=B là một mệnh đề, mệnh đề này đúng(bằng 1) khi A khác B (hay A không bằng B) và có giá trị sai (bằng 0) khi A==B.

    C Code:
    1.    int a,b;
    2.    a=1;
    3.    b=2;
    4.    1!=2; //Mệnh đề 1 khác 2 có giá trị đúng (1).
    5.    a!=b;//Mệnh đề a khác b có giá trị đúng.
    6.    2!=b;//Mệnh đề 2 khác b có giá trị sai (0).

    Ta có thể lưu giá trị của phép so sánh không bằng vào biến.
    Code:
        int a;
        a=(1!=2);//1 khác 2 là một mệnh đề đúng do đó biến a sẽ có giá trị 1.
        a=(1!=a);//1 khác a (a=1) là một mệnh đề sai do đó biến a sẽ có giá trị là 0.
    Chương trình cho phép bạn nhập vào hai số, in ra giá trị đúng sai của phép toán so sách khác nhau giữa hai số.
    C Code:
    1. #include<stdio.h>
    2. #include<conio.h>
    3. int main()
    4. {
    5.      int a,b,c;
    6.      printf("Chuong trinh tinh tong hai so\n");
    7.      printf("Ban hay nhap vao so thu nhat :");
    8.      scanf("%d",&a);
    9.      printf("Ban hay nhap vao so thu hai :");
    10.      scanf("%d",&b);
    11.      c=(b!=a);
    12.      printf("\nKet Qua cua phep so sanh: (%d != %d)=%d",a,b,c);
    13.      return 0;
    14. }


    Phép toán so sánh lớn hơn >, lớn hơn bằng >=, nhỏ hơn < nhỏ hơn bằng<=

    Code:
       1>2;     //Mệnh đề(MĐ) có giá trị Sai.
       1>=2;   //MĐ có giá trị Sai.
       1<2;    //MĐ có giá trị đúng.
       1<=2   //Mệnh đề có giá trị đúng.
    Phép toán Or ||

    Cho A B là các mệnh đề mệnh phép toán A or B (A||B) có kết quả là một mệnh đề, và mệnh đề này chỉ sai khi và chỉ khi A và B cùng là hai mệnh đề sai.

    Ta có bảng chân trị sau:
    Code:
         A \ B  0  1
         0    0  1
         1    1  1
    ví dụ:
    Code:
        (1<2)||(1==2); //Mệnh đề kết quả có giá trị sai do 1<2 và 1==2 là hai mệnh đề sai.
        (1==1)||(1==2);// Mệnh đề kết quả là một mệnh đề đúng do 1==1 là MĐ đúng và 1==2 là một mệnh đề sai.


    Phép toán and &&

    Hai mệnh đề A và B, phép toán and hai mệnh đề A và B (A&&B) là một mệnh đề,mệnh đề này có giá trị là đúng khi và chỉ khi A và B là hai mệnh đề đúng.

    bảng chân trị
    Code:
          A/B   0   1
           0    0   0
           1    0   1
    ví dụ:
    C Code:
    1.    int a;
    2.    a=(1==1)&&(0<1); //Hai mệnh đề 1==1 và (0<1) là hai mệnh đề đúng kết quả a=1;
    3.    a=(1>2)&&(1==1);// Do mệnh đề 1>2 là mệnh đề sai nên kết quả a=0;

  5. #5
    Ngày gia nhập
    07 2006
    Bài viết
    121

    Mặc định Cấu trúc tuần tự:

    Cấu trúc tuần tự:
    Gọi A B là hai đoạn mã trong C.
    Code:
         A;
         B;
    Thì theo cấu trúc tuần tự đoạn mã A sẽ được thực thi trước sau đó mới tới đoạn mã B.
    Ví dụ minh họa việc thực hiện tuần tự các câu lệnh trong C.
    C Code:
    1. #include<stdio.h>
    2. int main()
    3. {
    4.     int i;
    5.     printf("Ban nhap vao mot so nguyen");
    6.     scanf("%d",&1);
    7.     printf("So nguyen cua ban vua nhap co gia tri la %d",i);
    8.     return 0;
    9. }

    Thứ thực hiện câu lệnh tuần tự sẽ lệnh khai báo biến i --> lệnh printf nhắc nhap so nguyen -->lệnh scanf cho phep nhan bien i-->printf xuất số nguyên và cuối cùng là lệnh return 0.

  6. #6
    Ngày gia nhập
    07 2006
    Bài viết
    121

    Mặc định Cấu trúc lệnh rẻ nhánh | Cấu trúc if , if else trong lập trình C

    Cấu trúc lệnh rẻ nhánh - Cấu trúc if , if else

    Cấu trúc if có dạng như sau:
    Code:
     if(A) { S1; }
    Với cấu trúc trên nhóm lệnh S1 chỉ được thực hiện khi và chỉ khi MệnhĐềA có đạt giá trị đúng.
    C Code:
    1. #include<stdio.h>
    2. int main()
    3. {
    4.     int a,abs;
    5.     printf("Ban hay nhap vao mot so");
    6.     scanf("%d",&a);
    7.     asb=a;
    8.     if(a<0) abs=-1*a;
    9.     printf("|%d|=%d",a,asb);
    10.     return 0;
    11. }
    Với chương trình trên cho phép bạn nhập vào một số và tính trị tuỵêt đối của số vừa nhập.
    nếu bạn nhập vào a=2 là một số dương thì a<0 là một mệnh đề sai câu lệnh asb=-1*a sẽ không được thực hiện lúc này asb sẽ bằng a=2.
    khi bạn nhập a=-2 lúc này mệnh đề a<0 là đúng câu lệnh abs=-1*a sẽ đựơc thực hịên và abs sẽ bằng 2.

    Các điều lưu ý nếu mệnh đề A không phải là một mệnh đề mà là một giá trị nào đó ví dụ if(2) hay if(2-2) thì các câu lệnh trong if chỉ được thực hiện khi giá trị tính toán trong ngọăc khác không.
    do đó ở đây các bạn sẽ gặp một lỗi rất phiền tóai là mệnh đề A là một câu so sánh mà bạn lại viết sai như sau:
    Thay vì bạn viết a==b bạn lại viết a=b bạn sẽ gặp rắc rối như sau:
    C Code:
    1.   inta,b;
    2.   a=1;
    3.   b=2;
    4.   if(a=b) printf("a va b bang nhau vi:%d=%d",a,b);
    ở đây bạn thấy ý muốn của tôi là so sánh a có bằng b không nếu bằng xuất ra câu trong if. Nếu đúng theo suy nghĩ thì câu xuất ra sẽ không được xuất tuy nhiên, tôi lại viết sai là a=b tức gán a bằng b câu kết thúc câu lệnh này a=2 và là một số khác không nên câu lệnh trong if vẫn được thực hiện.Rất nguy hiểm!!!!!!!!!!!!!!!!!!!

    Cấu trúc if else

    Cú pháp của cấu trúc này như sau:
    C Code:
    1.    if(A) S1;
    2.    else S2;

    Thứ tự thực hiện của cấu trúc này như sau:
    Nếu mệnh đề A là một mềnh đề đúng hay giá trị của A là khác 0(Nếu A không phải là mệnh đề) thì nhóm lệnh S1 được thực hiện ngược lại thì lệnh S2 sẽ được thực hiện.

    Chương trình Giải Phương trình dạng Ax+B=0;
    C Code:
    1. [B]#include[/B]<stdio.h>
    2. int main()
    3. {
    4.    float  A,B;
    5.    printf("Ban nhap vao theo yeu cau sau:\n");
    6.    printf("Nhap vao he so A=");
    7.    scanf("%f",&A);
    8.    printf("Nhap vao he so B=");
    9.    scanf("%f",&B);
    10.    if(A==0) //Nếu bạn nhập A bằng 0 thì khối lệnh trong if được thực hiện.
    11.    {
    12.          if(B==0)// trường hợp này A==0 và B==0 pt có vô số nghiệm
    13.          {
    14.              
    15.               printf("Phương trình trên có vô số nghiệm");
    16.          }
    17.          else //trường hợp này A==0 và B!=0 pt sẽ vô nghiệm
    18.         {
    19.              printf("Phuong trinh trên vô nghiệm");
    20.         }
    21.    }
    22.    else //trường hợp này A!=0 nghịêm pt là -B/A
    23.    {
    24.        printf("phuong trinh tren co nghiem x=%f",-B/A);
    25.    }
    26.  
    27.    return 0;
    28. }

  7. #7
    Ngày gia nhập
    10 2006
    Nơi ở
    Hà Nội
    Bài viết
    146

    Mặc định Cấu trúc switch trong C

    Cấu trúc switch :

    Syntax Code:
    1. switch(biến/biểu thức) {
    2. case <giá trị 1 > : Lệnh 1;
    3.                        break;
    4. case <giá trị 2> : Lệnh 2;
    5.                          break;
    6. ......
    7. case <giá trị n> : lệnh n;
    8.                          break;
    9. [default] :lệnh(n+1);
    10. }

    cấu trúc này nhằm kiểm tra biến/biểu thức nếu thuộc 1 trong các trường hợp có giá trị i thì thực hiênh lệnh i.
    Nếu không thì mặc định sẽ thực hiện lệnh (n+1).

  8. #8
    Ngày gia nhập
    08 2006
    Bài viết
    59

    Syntax Code:
    1. switch(biến/biểu thức)
    2. {
    3. case <giá trị 1 > : Lệnh 1;
    4.                        break;
    5. case <giá trị 2> : Lệnh 2;
    6.                          break;
    7. ......
    8. case <giá trị n> : lệnh n;
    9.                          break;
    10. [default] :lệnh(n+1);
    11. }

    cấu trúc này nhằm kiểm tra biến/biểu thức nếu thuộc 1 trong các trường hợp có giá trị i thì thực hiênh lệnh i.
    Nếu không thì mặc định sẽ thực hiện lệnh (n+1).
    => tui nghĩ trình bày switch như trên có lẽ chưa đủ:

    Lập trình viên có thể nghĩ

    Syntax Code:
    1. switch(biến/biểu thức) {
    2. case <giá trị 1> : nhóm lệnh 1;
    3. case <giá trị 2> : nhóm lệnh 2;
    4. ......
    5. case <giá trị n> : nhóm lệnh n;
    6. default : nhóm lệnh(n+1);
    7. }

    là tương đương với

    if (biến/biểu thức là giá trị 1) { nhóm lệnh 1; }
    else if (biến/biểu thức là giá trị 2) { nhóm lệnh 2; }
    ....
    else: nhóm lệnh(n+1);

    => nhưng chưa chắc là tương đương. Chỉ tương đương nếu có xài "break" ở mỗi nhóm lệnh thôi

    Tổng quát hơn sẽ là tương đương với:

    Syntax Code:
    1. if (biến/biểu thức là giá trị 1) { goto label_1; }
    2. else if (biến/biểu thức là giá trị 2) { goto label_2; }
    3. ......
    4. else { goto label_n_cộng_1; }
    5. label_1: { nhóm lệnh 1; }
    6. label_2: { nhóm lệnh 2; }
    7. label_n_cộng_1: { nhóm lệnh n+1; }
    8. label_end_switch:

    và "break" là tương đương với "goto label_end_switch".

    Nói rõ hơn 1 chút, có thể coi như là giá trị của biến hay biểu thức được xài để biết cần nhảy ("goto") tới nhóm lệnh nào; sau đó sẽ làm cho tới khi gặp "break" thì nhảy tới cuối của switch; nếu không gặp "break" nào thì làm cho tới cuối của switch.

    Có 1 lỗi dễ bị mắc phải là quên không có "break" (thường là ở cuối mỗi nhóm lệnh). Tuy nhiên cũng có trường hợp không xài break do cần thiết, ví dụ nếu n là 1 thì cần làm nhóm lệnh 1, 2 và 3; còn nếu nếu n là 2 thì chỉ cần làm nhóm lệnh 2 và 3; còn không thì chỉ làm nhóm lệnh 3. Khi đó mình có thể viết (các nhóm lệnh 1, 2 và 3 không chứa "break")

    Syntax Code:
    1. switch (n) {
    2. case 1: nhóm lệnh 1;
    3. case 2: nhóm lệnh 2;
    4. default: nhóm lệnh 3
    5. }

    (có gì sai sót mong được góp ý, xin cám ơn)

    -thân

  9. #9
    Ngày gia nhập
    07 2006
    Bài viết
    121

    Mặc định Cấu trúc switch trong lập trình C

    Cấu trúc switch

    Syntax Code:
    1. switch(A)
    2. {
    3.      case Giá_Trị_1: S1;break;
    4.      case Giá_Trị_2: S2;break;
    5.      ..................
    6.      case Giá_trị_n: Sn;break;
    7.      [default: S;]
    8.  
    9. }

    với cấu trúc này nếu giá trị A bằng với một Giá_trị_k nào đó thì nhóm lệnh Sk sẽ được thực hiện.
    Câu lệnh break đảm bảo rằng nếu nhóm lệnh Sk đã thực hiện xong thì chương trình sẽ thóat ra khỏi cấu trúc switch.
    Nếu không có lệnh break này thì nếu có default câu lệnh trong default sẽ thực hiện.(điều này chắc chương trình của bạn sẽ không muốn)
    Bạn nên tuân thủ đúng quy cách sau mỗi trường hợp phải có lệnh break để thóat khỏi switch.

  10. #10
    Ngày gia nhập
    07 2006
    Bài viết
    121

    Mặc định Vòng lặp | lệnh lặp trong lập trình C

    Vòng lặp.

    Cấu trúc lặp với while

    C Code:
    1. while(A)
    2. {
    3.     S;
    4. }

    Cấu trúc while sẽ làm việc như sau:
    Trong khi Mệnh đề A còn đúng hay giá trị A khác 0(nếu A không phải mệnh đề) thì câu lệnh S sẽ được thực hiện.
    Câu lệnh S sẽ được thực hiện lặp đi lặp lại đến khi A sai hay khác 0.

    Đọan mã tính giai thừa của một số.
    C Code:
    1. #include<stdio.h>
    2. int main()
    3. {
    4.       long i=1,kq=1,n;
    5.       printf("Ban muon tinh giai thua cua so nao ? n=");
    6.       scanf("%d",&n);
    7.       while(i<=n)
    8.        {
    9.          kq=kq*i;
    10.          i++;
    11.        }
    12.      printf("ket qua %d!=%d",n,kq);
    13.      return 0;
    14. }


    do ............while()

    C Code:
    1. do
    2. {
    3.       S;
    4. }while(A)

    cấu trúc này tương tự như cấu trúc sau;
    C Code:
    1. S;
    2. while(A)
    3. {
    4.        S;
    5. }

    Tức lệnh S sẽ được thực hiện sau đó nếu Mệnh đề A là một mệnh đề đúng hay là một giá trị khác 0 thì lệnh S tiếp tục thực hiện. Và chỉ thóat khỏi vòng while khi A là mệnh đề sai hay có giá trị là 0.

    Cấu trúc lặp với for()

    Vòng lặp for có dạnh như sau:

    C Code:
    1.  for(X,Y,Z)
    2.  {
    3.         S;
    4.  }
    Vòng lặp này rất khó giải thích tuy nhiên thông thường chúng được thực hiện với ý nghĩa như sau:
    C Code:
    1. int i;
    2. for(i=1;i<10;i=i+1)
    3. {
    4.      S;
    5. }

    thao tác thực hịên:
    Đầu tiên X được thực hịên sau đó nếu Y là một mệnh đề đúng hay có giá trị khác 0 thì S sẽ được thực hiện sau đó Z sẽ được thực hiện. Và S sẽ được thực hịên đến khi Y sai hay Y có giá trị 0.
    Nếu như vậy tại sao tôi lại nói là khó giải thích vì for có thể có những trường hợp sau:
    C Code:
    1.    for(X;Y;)
    2.    for(X;;)
    3.    for(;;)

    tức thiếu 1 trong X,Y,Z, hay thiếu hết(nhưng phải có đủ 2 dấu 2 chấm) thì vẫn không bị coi là lỗi cú pháp.
    Ví dụ
    C Code:
    1. #include<stdio.h>
    2. int main()
    3. {
    4.     for(;;)
    5.     {
    6.          break;
    7.  
    8.     }
    9.     return 0;
    10. }

    tuy nhiên việc này là vô nghĩa ta không nên sử dụng theo kiểu này.

    Ví dụ trương trình tính giai thừa của một số nguyên:
    C Code:
    1. #include<stdio.h>
    2. int main()
    3. {
    4.     unsigned int n, i;
    5.     unsigned long kq=1;
    6.  
    7.     printf("Ban nhap vao so nguyen duong");
    8.     scanf("%d",&n);
    9.     if (n<0 )
    10.          return 1;
    11.     for(i=1;i<=n;i++)
    12.     {
    13.         kq=kq*i;
    14.     }
    15.    
    16.     printf("ket qua %d!= %d",n,kq);
    17.     return 0;
    18. }

Các đề tài tương tự

  1. [Kiếm Thế] Kiếm Thế Ngạo Thiên Kiếm Chạy Thử Nghiệm vào 10h ngày 15/09
    Gửi bởi c0jskull trong diễn đàn Giới thiệu website, sản phẩm của bạn
    Trả lời: 5
    Bài viết cuối: 29-09-2013, 10:45 AM
  2. [Kiếm Thế] Kiếm Thế Kiếm Linh Chạy Thử Nghiệm vào 10h ngày 4/7
    Gửi bởi c0jskull trong diễn đàn Giới thiệu website, sản phẩm của bạn
    Trả lời: 1
    Bài viết cuối: 05-07-2013, 12:16 PM
  3. [Kiếm Thế] Kiếm Thế Kiếm Linh Chạy Thử Nghiệm vào 10h ngày 4/7
    Gửi bởi c0jskull trong diễn đàn Giới thiệu website, sản phẩm của bạn
    Trả lời: 0
    Bài viết cuối: 03-07-2013, 10:30 PM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn