overclockzonefanpage  overclockzoneth  TV  RSS  


Results 1 to 11 of 11

Thread: ช่วยหน่อบครับเกี่ยวกับการเขียนโปรแกรมภาษาซีครับเพิ่งขึ้นปี1

  1. #1
    OverclockZone Member
    Join Date
    24 Jun 2007

    Question ช่วยหน่อบครับเกี่ยวกับการเขียนโปรแกรมภาษาซีครับเพิ่งขึ้นปี1

    คือผมได้การบ้านมาอะครับให้เขียนโปรแกรมด้วย Borland c++ 5.02 เพื่อใช้ในการหาค่า cosine

    จากอนุกรมของ taylor

    ตามภาพครับ



    ผมเขียนไปได้ถึงแค่รับค่ามุมมาเป็นองศาแล้วแปลงเป็น เรเดียนแล้วครับแต่ไปต่อไม่ได้ครับงงครับ

    รบกวนช่วยแนะนำหน่อยครับเขียนมาเป็นตัวอย่างด้วยก็ดีครับ

    วิศวะคอมปี1ครับ แต่เขียนไม่เป็นเลยอะ-*-เครียด!!

  2. #2
    OverclockZone Member hikky's Avatar
    Join Date
    18 Sep 2006
    Location
    Nontaburi

    Default

    หุหุ รอผู้รู้มาตอบล่ะกัน
    ถ้าเป็นเมื่อก่อนซัก 7-8 ปีที่แล้วน่าจะพอไหว แต่ตอนนี้เข้ากรุ

  3. #3
    Mac Addict User tassapon's Avatar
    Join Date
    16 Sep 2006
    Location
    Bang Na

    Default

    งึก !!!!!!!!!!!



    ตาย 5 เลยครับ ผมก็ทำไม่เป็นครับ 555 รอท่านถัดไป

  4. #4
    OverclockZone Member dears's Avatar
    Join Date
    6 Nov 2006
    Location
    Royal Thai Army

    Default

    C plus plus สมัยเรียนโครตชอบเลย แต่ตอนนี้ลงหม้อหมดแว้ว เหอะๆๆๆ....

  5. #5
    OverclockZone Member PUSH THE TEMPO's Avatar
    Join Date
    8 Nov 2006
    Location
    ในความฝัน

    Default

    เอ่อ สาบานนะว่านั่นของบทเรียนแรก - -a
    เจ้าเอกอยู่หนาย มาตอบโดยด่วน - -a

    แล้วเขาไม่ได้อะไรเพิ่มเติมมาเลยเหรอคับ เช่นพวกรายชื่อฟังก์ชันใน math.h ไรเทือกนี้ ถ้าไม่ก็แสดงว่าค่าreferenceก็ให้เราเขียนเองโดยใช้อนุกรมเทย์เลอร์ -*-

    น่าหนุกดี ขอลองหน่อย

  6. #6
    OverclockZone Member greatng's Avatar
    Join Date
    5 Dec 2006
    Location
    ปราสาทแดง

    Default

    cosine ให้ลองหา ฟังก์ชั่นใน math.h ดู (include เข้าไปด้วยนะ) เคยเขียนแต่ c แต่มันคงคล้ายๆ กัน
    เดี๋ยวลองเขียนดู ภาษา C นะครับ ไม่ใช่ C++ อาจจะไม่เหมือนกันบ้าง (อาจจะมั่วบ้างแบบว่าลืม)
    #include<stdio.h>
    #include<math.h>

    #define PI 3.14159265


    int main(void)
    {
    float n, c, t=0 ,i, e, s, sq=0, j=1, k, l;
    printf("Please enter Degree");
    scanf("%f", &n);
    printf("Input error");
    scanf("%f", &e);
    c = cos((n/180)*PI);
    printf("Cos is %lf", c);
    /* Taylor Series*/
    s=(n^sq)*((-1)^(n+1))/j;
    t=t+s
    if((t/c)*100<=e){
    printf("N is %d", n);
    } else {


    t=s;
    }
    }

    return 0;
    สีแดง คือไม่แน่ใจนะครับ คิดว่าคงผิด แต่พอเป็นแนวทางได้มั๊ง
    พอดีรีบเขียน เพราะพรุ่งนี้เรียนเช้า มึนนิดหน่อย

    รู้สึกจะผิดเป็นแถบเลย ถามต้น (ข้างล่าง) เอาแล้วกัน
    Last edited by greatng; 25 Jun 2007 at 00:50:14.

  7. #7
    OverclockZone Member PUSH THE TEMPO's Avatar
    Join Date
    8 Nov 2006
    Location
    ในความฝัน

    Default

    ได้มาประมาณนี้ ไหวมั้ยหว่า

    **เพิ่มเติม
    ตรง Taylor's Series ผมใส่ลูปแล้วเล่นประมาณนี้
    t = t+(pow(-1,i)*pow(x,2*i)/2i!)
    ตรงตัวแดงๆนั่นคือผมทำไม่เป็นเน้อ เลยใช้วิธีโกงนิดหน่อย ไม่บอกหรอกว่าโกงยังไง
    Last edited by PUSH THE TEMPO; 25 Jun 2007 at 00:17:31.

  8. #8
    OverclockZone Member PUSH THE TEMPO's Avatar
    Join Date
    8 Nov 2006
    Location
    ในความฝัน

    Default

    อะ ลงหน่อยก็ได้งับ ดูเป็นแนวไม่ใช่ไปกอปส่งล่ะเน้อ
    โดยส่วนตัวคิดว่าแค่พอถูไถ ไม่ค่อยดีเท่าที่ควร

    Code:
    #include <stdio.h>
    #include <math.h>
    
    main()
    {
       int i;
       double d, e, t=1, x, c, fr=1, diff; // ที่จริงxไม่ต้องมีก็ได้ แต่ชอบอะ - -a
    
       printf("Degree: ");
       scanf("%lf", &d);
    
       x = (d*M_PI)/180; // บรรทัดนี้แหละไม่จำเป็นต้องมี
    
       printf("Error: ");
       scanf("%lf", &e);
    
       c = cos(x); // ยกxมาใส่ในนี้ทั้งดุ้นก็ไม่ต้องมีxละ
    
       printf("1: %lf (e=%lf)\n", t, t-c; // บรรทัดนี้โกง 555+
    
       for(i=1;i<10;i++)
       {
          fr = fr*2*i*(2*i-1);
          t = t+(pow(-1,i)*pow(x,2*i)/fr); // powคือฟังก์ชันหาค่ายกกำลัง ช่องแรกคือเลขฐาน ช่อง2คือเลขชี้กำลัง
          diff = fabs(t-c); // fabsคือฟังก์ชันหาค่าสัมบูรณ์(absolute)
          printf("%d: %lf (e=%lf)\n", i+1, t, diff);
          if(diff<=e){ break; // กำหนดเงื่อนไข ถ้าค่าdiffน้อยกว่าหรือเท่ากับe ให้ออกจากลูป
          }
       }
    
       printf("n = %d\n", i+1);
       return 0;
    }
    ทดสอบใน tcpp 1.01 ผ่านฉลุย ส่วนโปรอื่นไม่รู้ ลองเอา
    Last edited by PUSH THE TEMPO; 25 Jun 2007 at 01:51:37.

  9. #9
    OverclockZone Member หัวโบราณ's Avatar
    Join Date
    16 Sep 2006
    Location
    ขั้วโลกเหนือ

    Default

    เอาไปลอกส่งแน่เลย

  10. #10
    OverclockZone Member
    Join Date
    24 Jun 2007

    Default

    ขอกราบเท้าท่าน PUSH THE TEMPO และ greatng งามๆ

    ขอบคุณมากๆเลยครับเหอๆ เด๋วผมเขียนเสร็จจะเอามาลงให้ดูครับ

    เหอะๆ ไม่ก็อปส่งครับ
    Last edited by plummet; 25 Jun 2007 at 20:29:21.

  11. #11
    OverclockZone Member Dekslam's Avatar
    Join Date
    23 Jan 2007
    Location
    Mahora Library

    Default

    โอ้ว ขอบคุณด้วยคนนะต้น เกรท
    ไม่ลอกหรอก หุหุ



Bookmarks

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •