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

Đề tài: chuyển về while

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

    Mặc định chuyển về while

    Bài tập
    Cho biết kết quả chương trình và chuyển chương trình về dạng tối thiểu chỉ dùng vòng lặp while và 1 số biến phụ

    Code:
    #include <stdio.h>
    #include <conio.h>
    int nguyen_to(long int n)
    {    
        long int i,k=sqrt(n);
        for ( i=2;i<=k;i++)
            if (n%i==0) return(0);
        return(1);
    }
    void main()
    {
        long int n=1784742960; int k=0,i=2,OK=1,clrscr();
        do
        {
            if (nguyen_to(n))
            {
                printf("Ket qua buoc %d,%d",++k,n);OK=0;
            }
            else if n%i==0
            {    
                printf("ket qua buoc %d,%d".++k,i);
                n=n/i;
            }
            else i++;
        }while (OK) 
        getch();
    }
    Do... while --------> while ???
    Đã được chỉnh sửa lần cuối bởi muadem : 15-10-2008 lúc 11:58 PM.

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

    Trích dẫn Nguyên bản được gửi bởi muadem Xem bài viết
    Bài tập
    Cho biết kết quả chương trình và chuyển chương trình về dạng tối thiểu chỉ dùng vòng lặp while và 1 số biến phụ



    Do... while --------> while ???
    sao k ai trả lời vậy ta :( ai bít làm bài này replay hộ mình cái .. đang rất cần

  3. #3
    Ngày gia nhập
    07 2008
    Nơi ở
    /media/Anime
    Bài viết
    2,288

    Mình thấy lạ quá, while và do...while trong trường hợp này là như nhau mà.

    C++ Code:
    1. #include <stdio.h>
    2. #include <conio.h>
    3. #include <math.h>
    4.  
    5. int nguyen_to(long int n)
    6. {
    7.     long i, k = (long)sqrt(n);
    8.    
    9.     for ( i=2;i<=k;i++)
    10.         if ((n%i)==0) return 0;
    11.    
    12.     return 1;
    13. }
    14.  
    15. void main()
    16. {
    17.     long n = 1784742960, k=0, i=2, OK = 1;
    18.    
    19.     while (OK)
    20.     {
    21.         if (nguyen_to(n))
    22.         {
    23.             printf("Ket qua buoc %d,%d\n",++k,n);
    24.             OK = 0;
    25.         }
    26.         else if ((n%i)==0)
    27.         {
    28.             printf("ket qua buoc %d,%d\n",++k,i);
    29.             n=n/i;
    30.         }
    31.         else i++;
    32.     }
    33.     //while (OK);
    34.  
    35.     getch();
    36. }
    Càng yêu mèo thì mèo càng mập. Mèo càng mập ta lại càng yêu.

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

    1- Bạn mới post bài từ 4h36 phút PM ngày hôm nay mà giờ bạn đã la làng lên là không ai giúp bạn
    2- Với cách hỏi như bạn thì xác suất không được trả lời là rất cao, vì câu hỏi của bạn không rõ ràng, đọc vào người khác không hiểu thì sao mà trả lời cho bạn được.


    1 - Kết quả chương trình của bạn là như thế nào??? <------ khó hiểu
    2 - Nếu đã biết kết quả chương trình rồi thì lặp lại làm gì nữa cho mất công???

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

    Trích dẫn Nguyên bản được gửi bởi zkday2686 Xem bài viết
    1- Bạn mới post bài từ 4h36 phút PM ngày hôm nay mà giờ bạn đã la làng lên là không ai giúp bạn
    2- Với cách hỏi như bạn thì xác suất không được trả lời là rất cao, vì câu hỏi của bạn không rõ ràng, đọc vào người khác không hiểu thì sao mà trả lời cho bạn được.


    1 - Kết quả chương trình của bạn là như thế nào??? <------ khó hiểu
    2 - Nếu đã biết kết quả chương trình rồi thì lặp lại làm gì nữa cho mất công???
    pó tay. đây là đề thi của mình.

    Pó tay vì câu này:
    1 - Kết quả chương trình của bạn là như thế nào??? <------ khó hiểu
    . Câu 1 : Cho biết kết quả đoạn chuơng trình trên ->>> Chuơng trình chạy ra thế nào ???
    . Câu 2 : Chuyển chương trình về dạng tối thiểu chỉ dùng vòng lặp while --->> Chuyển các cấu trúc FOR, IF, DO... WHILE về dạng chỉ dùng vòng lặp while thôi

    Ví dụ

    Code:
    int nguyen_to(long int n)
    {
        long i, k = (long)sqrt(n);
        
        for ( i=2;i<=k;i++)
            if ((n%i)==0) return 0;    
        return 1;
    }
    Sẽ thành
    Code:
    int nguyen_to(long int n)
    {
        long i=2, k = (long)sqrt(n);
        While (i<=k)
            {
            While ((n%i)==0) 
                {
                return 0;            
                break; 
                }return 1;
            i++;
            }
    }
    Đã được chỉnh sửa lần cuối bởi muadem : 15-10-2008 lúc 11:50 PM. Lý do: hiểu chết liền

  6. #6
    Ngày gia nhập
    07 2008
    Nơi ở
    /media/Anime
    Bài viết
    2,288

    Mặc định chuyển về while

    C++ Code:
    1. #include <stdio.h>
    2. #include <conio.h>
    3. #include <math.h>
    4.  
    5.  
    6. int nguyen_to(long int n)
    7. {
    8.     long i = 2, k = (long)sqrt(n);
    9.    
    10.     while (i <= k)
    11.     {
    12.         if ((n%i)==0)
    13.             return 0;
    14.         i++;
    15.     }
    16.    
    17.     return 1;
    18. }
    19.  
    20. void main()
    21. {
    22.     long n = 1784742960, k=0, i=2, OK = 1;
    23.    
    24.     while (OK)
    25.     {
    26.         if (nguyen_to(n))
    27.         {
    28.             printf("Ket qua buoc %d,%d\n",++k,n);
    29.             OK = 0;
    30.         }
    31.         else if ((n%i)==0)
    32.         {
    33.             printf("ket qua buoc %d,%d\n",++k,i);
    34.             n=n/i;
    35.         }
    36.         else i++;
    37.     }
    38.  
    39.     getch();
    40. }
    - Kết quả sau khi chạy chương trình : chạy sẽ rõ.
    - Mình đã chuyển hết về while, if thì chưa chuyển được.
    Càng yêu mèo thì mèo càng mập. Mèo càng mập ta lại càng yêu.

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

    Trích dẫn Nguyên bản được gửi bởi meoconlongvang Xem bài viết
    C++ Code:
    1. #include <stdio.h>
    2. #include <conio.h>
    3. #include <math.h>
    4.  
    5.  
    6. int nguyen_to(long int n)
    7. {
    8.     long i = 2, k = (long)sqrt(n);
    9.    
    10.     while (i <= k)
    11.     {
    12.         if ((n%i)==0)
    13.             return 0;
    14.         i++;
    15.     }
    16.    
    17.     return 1;
    18. }
    19.  
    20. void main()
    21. {
    22.     long n = 1784742960, k=0, i=2, OK = 1;
    23.    
    24.     while (OK)
    25.     {
    26.         if (nguyen_to(n))
    27.         {
    28.             printf("Ket qua buoc %d,%d\n",++k,n);
    29.             OK = 0;
    30.         }
    31.         else if ((n%i)==0)
    32.         {
    33.             printf("ket qua buoc %d,%d\n",++k,i);
    34.             n=n/i;
    35.         }
    36.         else i++;
    37.     }
    38.  
    39.     getch();
    40. }
    - Kết quả sau khi chạy chương trình : chạy sẽ rõ.
    - Mình đã chuyển hết về while, if thì chưa chuyển được.
    Chuyển như của cậu thì chuơng trình lỗi hết ah???????????????????????????
    Cậu đã chạy thử chuơng trình của mình và bài chuyển của cậu chưa ??????????????

    ------------------------------------------------------

    Cấu trúc chuyển từ IF... ELSE thành WHILE

    Code:
    if <dk>
    <lệnh 1>;
    else
    <lệnh 2>
    mình sẽ dùng 1 biến phụ OK để chuyển
    Code:
    int OK=1
    WHILE <dk>
    {
    <lệnh 1>;OK=0;break;
    }
    WHILE (!OKE)
    {
    <lệnh 2>
    break;
    }
    Nhưng cái chính ở đây là cấu trúc lênh là IF .. ELSE IF .. ELSE kìa

    Cái này thì mình chịu.....

    Và chuyển DO... WHILE sang WHILE sẽ là

    Code:
    DO
    {
    <lệnh 1>
    }
    WHILE <DK>
    Code:
    <lệnh 1>
    WHILE <DK>
    {
    <lệnh 1>
    }
    Vì là cấu trúc trong bài là

    Code:
    OK=1;
    DO
    {
    if <dk1> <lệnh 1>;OK=0;
    esle if <dk2> lệnh 2>;
    else lệnh 3;
    }
    while (!OK)
    Ai làm được replay hộ cái ..
    Đã được chỉnh sửa lần cuối bởi muadem : 16-10-2008 lúc 07:56 AM.

  8. #8
    Ngày gia nhập
    12 2006
    Nơi ở
    US
    Bài viết
    1,917

    C++ Code:
    1. #include <stdio.h>
    2. #include <conio.h>
    3. int nguyen_to(long int n)
    4. {    
    5.     long int i,k=sqrt(n);
    6.     for ( i=2;i<=k;i++)
    7.         if (n%i==0) return(0);
    8.     return(1);
    9. }
    10. void main()
    11. {
    12.     long int n=1784742960; int k=0,i=2,OK=1,clrscr();
    13.     do
    14.     {
    15.         if (nguyen_to(n))
    16.         {
    17.             printf("Ket qua buoc %d,%d",++k,n);OK=0;
    18.         }
    19.         else if n%i==0
    20.         {    
    21.             printf("ket qua buoc %d,%d".++k,i);
    22.             n=n/i;
    23.         }
    24.         else i++;
    25.     }while (OK)
    26.     getch();
    27. }
    - Code cậu đã đúng chưa mà cậu cứ la làng lên thế ?
    - Cái kiểu hỏi ra lệnh và ngang tàng của cậu thì dù có ai biết họ cũng chẳng rảnh để trả lời.

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

    ừm .. Sozy . mình tự làm xong rồi... Hiz... thôi vậy

  10. #10
    Ngày gia nhập
    12 2006
    Nơi ở
    US
    Bài viết
    1,917

    ừm .. Sozy . mình tự làm xong rồi... Hiz... thôi vậy
    Bị người ta nói 1 chút thì lại lẫy trong khi mình nói gì cũng chẳng nghĩ tới người khác :
    C++ Code:
    1. #include <stdio.h>
    2. #include <math.h>
    3.  
    4.  
    5. int nguyen_to( long int n )
    6. {
    7.     long i = 2, k = ( long )sqrt( ( double )n );
    8.     while( i <= k )
    9.     {
    10.         while( !( n % i ) )
    11.             return 0;
    12.         i++;
    13.     }
    14.     return 1;
    15. }
    16.  
    17. int main()
    18. {
    19.     long n       = 1784742960,
    20.          step    = 0,
    21.          i       = 2,
    22.          is_done = 1;
    23.    
    24.     while( is_done )
    25.     {
    26.         while( nguyen_to( n ) )
    27.         {
    28.             printf( "Ket qua buoc %d,%d\n", ++step, n );
    29.             is_done = 0;
    30.             break;
    31.         }
    32.         while( ( n % i ) == 0 )
    33.         {
    34.             printf( "ket qua buoc %d,%d\n", ++step, i );
    35.             n = n / i;
    36.             break;
    37.         }
    38.         while( n % i != 0 )
    39.             i++;
    40.     }
    41.     return 0;
    42. }

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

  1. Mẹo hay khi chuyển nhà trọn gói, chuyển văn phòng
    Gửi bởi quynhcute 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: 20-08-2012, 09:53 PM
  2. Trả lời: 0
    Bài viết cuối: 07-08-2012, 05:12 PM
  3. Chuyển nhà,Chuyển Văn Phòng trọn gói giá rẻ 098.229.5559
    Gửi bởi nguyenrong 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: 26-06-2012, 02:05 PM
  4. Trả lời: 20
    Bài viết cuối: 27-02-2012, 12:05 AM
  5. ADO.NET Chuyể Phần mềm QLNS sang Ngôn ngữ Dynamic Programming. Ai chuyển giúp mình!?
    Gửi bởi huynhanhton trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 0
    Bài viết cuối: 03-04-2011, 11:41 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