Announcement

Collapse
No announcement yet.

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

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

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

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

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

    ตามภาพครับ



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

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

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

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

    Comment


    • #3
      งึก !!!!!!!!!!!



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

      Comment


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

        Comment


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

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

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

          Comment


          • #6
            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, 00:50:14.

            Comment


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

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

              Comment


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

                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, 01:51:37.

                Comment


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

                  Comment


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

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

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

                    Comment


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

                      Comment

                      Working...
                      X