Từ 1 tới 2 trên tổng số 2 kết quả

Đề tài: Tư duy và rèn luyện coding

  1. #1
    Ngày gia nhập
    09 2006
    Nơi ở
    /usr/share/.hack@
    Bài viết
    1,433

    Talking Tư duy và rèn luyện coding

    Cũng như tất cả các thứ khác, coding cũng là một quá trình làm việc có trình tự kiểu như một bài văn, cần có dàn bài xây dựng ý, tạo khung, và viết thử lấp đầy ý cho văn vẻ; cuối cũng chắp ghép lại cho hợp ý mình.

    Ở bài này mình hướng dẫn các bạn cách tư duy và rèn luyện khi coding.

    Đề bài mẫu : Tính tổng 2 số nguyên và in ra màn hình kết quả

    1. Tạo khung sườn ban đầu chương trình:
    Đơn giản như bao bài tập , như hồi đầu mới yêu C
    Code:
    /* 1. Cần có thư viện chuẩn */
    #include <stdio.h>
    
    /* 2. Entry Point - Điểm bắt đầu chương trình */
    int main(void)
    {
          /* 3. Thân chương trình */
          return 0;
    }
    Vậy là được cái sườn hơi chua

    2. Xác định yếu tố cần thiết
    Cái này trong thân chương trình.
    Tính tổng : cần có 3 số và một toán tử '+'
    Cần ít nhất khai báo 2 biến, giả sử là a và b
    In ra màn hình : xài printf();
    Áp dụng
    Code:
    #include <stdio.h>
    
    int main(void)
    {
             int a,b;
              
             a = 1;
             b = 2;
             printf(" Ket qua: %d + %d = %d ", a, b, a+b);
             return 0;
    }
    3. Mở rộng ra với yêu cầu người dùng nhập vào 2 số từ bàn phím:
    Để lấy input sử dụng hàm scanf()
    Code:
    #include <stdio.h>
    
    int main(void)
    {
             int a,b;
              
             printf("Nhap a = ");scanf("%d",&a);
             printf("Nhap b = ");scanf("%d",&b);
             printf(" Ket qua: %d + %d = %d ", a, b, a+b);
             return 0;
    }
    4. Thêm một biến lưu trữ tổng đi:
    Giả sử biến lưu tổng là s
    Code:
    #include <stdio.h>
    
    int main(void)
    {
             int a,b;
             int s; 
             printf("Nhap a = ");scanf("%d",&a);
             printf("Nhap b = ");scanf("%d",&b);
             s = a + b;
             printf(" Ket qua: %d + %d = %d ", a, b, s);
             return 0;
    }
    5. Giờ cho nguyên cái đoạn xử lý vào một hàm:
    Giả sử gọi hàm là: Sum()
    Code:
    #include <stdio.h>
    
    void Sum()
    {
             int a,b;
             int s; 
             printf("Nhap a = ");scanf("%d",&a);
             printf("Nhap b = ");scanf("%d",&b);
             s = a + b;
             printf(" Ket qua: %d + %d = %d ", a, b, s);
    }
    
    int main(void)
    {
             Sum(); 
             return 0;
    }
    6. Tạo hàm xử lý input cho đỡ đơn điệu:
    Hàm Sum() nhận 2 tham số;
    Code:
    #include <stdio.h>
    
    void Sum(int x, int y)
    {
            int s;
            s = x + y;
            printf("Ket qua: %d + %d = %d", x, y, s);
    }
    int main(void)
    {
           int a,b;
           printf("Nhap a = ");scanf("%d",&a);
           printf("Nhap b = ");scanf("%d",&b);
           Sum();
           return 0;
    }
    7. Chia nhỏ cái nhập số:
    Code:
    #include <stdio.h>
    
    int Input()
    {
          int num;
          printf(" Nhap so : ");scanf("%d",&num);
          return num;
    }
    
    void Sum(int x, int y)
    {
          int s = x + y;
          printf("Ket qua: %d + %d = %d ", x, y, s);
    }
    
    int main(void)
    {
          int a,b;
          a = Input();
          b = Input();
          Sum();
          return 0;
    }
    8. Để hàm main chỉ có gọi sub-function thôi vậy:
    Code:
    #include <stdio.h>
    
    int Input()
    {
          int num;
          printf(" Nhap so : ");scanf("%d",&num);
          return num;
    }
    
    void Sum()
    {
          int x, y, s;
          x = Input();
          y = Input();
          s = x + y;
          printf("Ket qua: %d + %d = %d ", x, y, s);
    }
    
    int main(void)
    {      
          Sum();
          return 0;
    }
    Nghe chừng gọn quá

    9. Giờ lấy input thông qua arg xem thế nào:
    Code:
    #include <stdio.h>
    
    void Sum(int x, int y)
    {
           int s = x + y;
           printf("Ket qua: %d + %d = %d ",x , y, s);
    }
    
    int main(int argc, char *argv[])
    {
           if ( argc != 2 ) {
                   printf(" Usage: sum.exe num1 num2 \n");
                   printf(" Example: sum 3 4 \n");
                   printf(" Result: Ket qua: 3 + 4 = 7");
                   return -1;
           }
           
           Sum(argv[0],argv[1]);
           return 0;
    }
    Vậy là có được một loạt sản phẩm rồi đó, chỉ cần chọn một cái ưng ý thôi ^^
    Đã được chỉnh sửa lần cuối bởi Xcross87 : 22-11-2007 lúc 02:42 PM.
    None!

  2. #2
    Ngày gia nhập
    09 2007
    Bài viết
    724

    mình thấy bài viết của bạn hay và có ý nghĩa cho những bạn mới tiếp cận C. nhưng mình có một góp ý nhó thế này.

    ở trong phần 8 bạn bị nhầm lẫn chút xíu về: argv[]
    argv ở đây thực chất là nó là một mảng các chuổi ký tự.
    nó sẽ chứa tất cả những chuổi mà bạn nhập vào và cái mà nó phân biệt để biết đưa vào phần tử thứ mấy trong mảng argv[] chính là ký tự khoảng trắng(" ") (tất nhiên là không tính các khoảng trắng ở đầu và cuối chuổi, và giữa các phần tử chỉ có 1 khoảng cách mà thôi ). => argc = số ký tự khoảng trắng + 1;

    vd:

    Code:
    c:\> sum.exe 3 4 
    
    thì agrc = 3 và các giá trị của argv là:
    argv[0] = sum.exe
    argv[1] = 3
    argv[2] = 4

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

  1. Thuật toán C++ Đưa Cây Huffman Coding Sau Khi Duyệt Và Xử Lý Ra Màn Hình
    Gửi bởi vandergun trong diễn đàn Thắc mắc CTDL & Giải thuật
    Trả lời: 0
    Bài viết cuối: 29-11-2012, 04:21 PM
  2. TP Huế- Thông tin tuyển dụng (coding)
    Gửi bởi thamtulungdanh trong diễn đàn Tuyển dụng - Việc làm CNTT
    Trả lời: 0
    Bài viết cuối: 15-02-2011, 11:19 AM
  3. coding standard ?
    Gửi bởi nh0cbilly trong diễn đàn Kinh nghiệm CNTT
    Trả lời: 3
    Bài viết cuối: 24-07-2010, 09:17 PM
  4. Coding convention
    Gửi bởi haian trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 6
    Bài viết cuối: 10-04-2010, 10:00 PM
  5. Linker in VC++ when coding winsock.h
    Gửi bởi RadiRadic trong diễn đàn Thắc mắc lập trình Visual C++
    Trả lời: 0
    Bài viết cuối: 06-07-2009, 12:20 AM

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