วันพุธที่ 24 สิงหาคม พ.ศ. 2554

โค๊ด หาปีอธิกสุรธิน ตัวอย่าง ภาษาซี(c) ตัวอย่างโปรแกรมภาษาซี หาปีที่เป็นอธิกวาร(Leap year) หรือไม่

ตัวอย่างโค๊ต โปรแกรมหาปีที่มีอธิกวาร(Leap year)
หรือ อธิกสุรธิน



ข้อมูลปีตามจันทรคติที่เป็น
0 : ปกติมาส-วาร
1 : อธิกวาร
2 : อธิกมาส

ข้างล่างนี้เป็นข้อมูลตามปฏิทินอยู่ 2 เล่ม ซึ่งเมื่อทานความถูกต้องแล้ว ก็พบว่ามีความถูกต้องเหมือนกันทั้ง 2 เล่ม

|  2400 |  1857 |       0 |
|  2401 |  1858 |       2 |
|  2402 |  1859 |       0 |
|  2403 |  1860 |       1 |
|  2404 |  1861 |       2 |
|  2405 |  1862 |       0 |
|  2406 |  1863 |       2 |
|  2407 |  1864 |       0 |
|  2408 |  1865 |       1 |
|  2409 |  1866 |       2 |
|  2410 |  1867 |       0 |
|  2411 |  1868 |       0 |
|  2412 |  1869 |       2 |
|  2413 |  1870 |       0 |
|  2414 |  1871 |       1 |
|  2415 |  1872 |       2 |
|  2416 |  1873 |       0 |
|  2417 |  1874 |       2 |
|  2418 |  1875 |       0 |
|  2419 |  1876 |       1 |
|  2420 |  1877 |       2 |
|  2421 |  1878 |       0 |
|  2422 |  1879 |       0 |
|  2423 |  1880 |       2 |
|  2424 |  1881 |       1 |
|  2425 |  1882 |       2 |
|  2426 |  1883 |       0 |
|  2427 |  1884 |       0 |
|  2428 |  1885 |       2 |
|  2429 |  1886 |       0 |
|  2430 |  1887 |       1 |
|  2431 |  1888 |       2 |
|  2432 |  1889 |       0 |
|  2433 |  1890 |       2 |
|  2434 |  1891 |       0 |
|  2435 |  1892 |       1 |
|  2436 |  1893 |       2 |
|  2437 |  1894 |       0 |
|  2438 |  1895 |       0 |
|  2439 |  1896 |       2 |
|  2440 |  1897 |       0 |
|  2441 |  1898 |       1 |
|  2442 |  1899 |       2 |
|  2443 |  1900 |       0 |
|  2444 |  1901 |       2 |
|  2445 |  1902 |       0 |
|  2446 |  1903 |       1 |
|  2447 |  1904 |       2 |
|  2448 |  1905 |       0 |
|  2449 |  1906 |       0 |
|  2450 |  1907 |       2 |
|  2451 |  1908 |       1 |
|  2452 |  1909 |       2 |
|  2453 |  1910 |       0 |
|  2454 |  1911 |       0 |
|  2455 |  1912 |       2 |
|  2456 |  1913 |       0 |
|  2457 |  1914 |       1 |
|  2458 |  1915 |       2 |
|  2459 |  1916 |       0 |
|  2460 |  1917 |       1 |
|  2461 |  1918 |       2 |
|  2462 |  1919 |       0 |
|  2463 |  1920 |       2 |
|  2464 |  1921 |       0 |
|  2465 |  1922 |       0 |
|  2466 |  1923 |       2 |
|  2467 |  1924 |       0 |
|  2468 |  1925 |       1 |
|  2469 |  1926 |       2 |
|  2470 |  1927 |       0 |
|  2471 |  1928 |       2 |
|  2472 |  1929 |       1 |
|  2473 |  1930 |       0 |
|  2474 |  1931 |       2 |
|  2475 |  1932 |       0 |
|  2476 |  1933 |       1 |
|  2477 |  1934 |       2 |
|  2478 |  1935 |       0 |
|  2479 |  1936 |       1 |
|  2480 |  1937 |       2 |
|  2481 |  1938 |       0 |
|  2482 |  1939 |       2 |
|  2483 |  1940 |       0 |
|  2484 |  1941 |       0 |
|  2485 |  1942 |       2 |
|  2486 |  1943 |       0 |
|  2487 |  1944 |       2 |
|  2488 |  1945 |       1 |
|  2489 |  1946 |       0 |
|  2490 |  1947 |       2 |
|  2491 |  1948 |       0 |
|  2492 |  1949 |       1 |
|  2493 |  1950 |       2 |
|  2494 |  1951 |       0 |
|  2495 |  1952 |       1 |
|  2496 |  1953 |       2 |
|  2497 |  1954 |       0 |
|  2498 |  1955 |       0 |
|  2499 |  1956 |       2 |
|  2500 |  1957 |       1 |
|  2501 |  1958 |       2 |
|  2502 |  1959 |       0 |
|  2503 |  1960 |       0 |
|  2504 |  1961 |       2 |
|  2505 |  1962 |       0 |
|  2506 |  1963 |       1 |
|  2507 |  1964 |       2 |
|  2508 |  1965 |       0 |
|  2509 |  1966 |       2 |
|  2510 |  1967 |       0 |
|  2511 |  1968 |       0 |
|  2512 |  1969 |       2 |
|  2513 |  1970 |       1 |
|  2514 |  1971 |       0 |
|  2515 |  1972 |       2 |
|  2516 |  1973 |       1 |
|  2517 |  1974 |       0 |
|  2518 |  1975 |       2 |
|  2519 |  1976 |       0 |
|  2520 |  1977 |       2 |
|  2521 |  1978 |       0 |
|  2522 |  1979 |       1 |
|  2523 |  1980 |       2 |
|  2524 |  1981 |       0 |
|  2525 |  1982 |       0 |
|  2526 |  1983 |       2 |
|  2527 |  1984 |       0 |
|  2528 |  1985 |       2 |
|  2529 |  1986 |       0 |
|  2530 |  1987 |       1 |
|  2531 |  1988 |       2 |
|  2532 |  1989 |       0 |
|  2533 |  1990 |       1 |
|  2534 |  1991 |       2 |
|  2535 |  1992 |       0 |
|  2536 |  1993 |       2 |
|  2537 |  1994 |       0 |
|  2538 |  1995 |       0 |
|  2539 |  1996 |       2 |
|  2540 |  1997 |       1 |
|  2541 |  1998 |       0 |
|  2542 |  1999 |       2 |
|  2543 |  2000 |       1 |
|  2544 |  2001 |       0 |
|  2545 |  2002 |       2 |
|  2546 |  2003 |       0 |
|  2547 |  2004 |       2 |
|  2548 |  2005 |       0 |
|  2549 |  2006 |       1 |
|  2550 |  2007 |       2 |
|  2551 |  2008 |       0 |
|  2552 |  2009 |       1 |
|  2553 |  2010 |       2 |
|  2554 |  2011 |       0 |
|  2555 |  2012 |       2 |
|  2556 |  2013 |       0 |
|  2557 |  2014 |       1 |
|  2558 |  2015 |       2 |
|  2559 |  2016 |       0 |
|  2560 |  2017 |       0 |
|  2561 |  2018 |       2 |
|  2562 |  2019 |       0 |
|  2563 |  2020 |       0 |
|  2564 |  2021 |       2 |
|  2565 |  2022 |       0 |
|  2566 |  2023 |       2 |
|  2567 |  2024 |       0 |
|  2568 |  2025 |       1 |
|  2569 |  2026 |       2 |
|  2570 |  2027 |       0 |
|  2571 |  2028 |       0 |
|  2572 |  2029 |       2 |
|  2573 |  2030 |       1 |
|  2574 |  2031 |       2 |
|  2575 |  2032 |       0 |


ข้อมูลจาก   http://www.horasaadrevision.com/index.php?lay=show&ac=article&Id=129532&Ntype=4





โดยโปรแกรมภาษาซีของเราจะมีการรับค่าเข้าเป็นเลขจำนวนเต็มบวก 3 ตัว 

ได้แก่
day,month และ year  


แล้วพิมพ์วันที่ เดือน ปี เพื่อแทนค่านั้นออกมา 
และข้อความที่บอกว่าปีนั้นเป็นปีอธิกวาร(leap year) หรือไม่ด้วย
ตัวอย่าง

                                                             Input :     6  4  1997
                                                          Output :  April 6, 1997 and 1997 is not a leap year
แนวคิดว่าเป็นปีอธิกวารหรือไม่ครับ - -*


  •  ปีอธิกวารจะหารด้วย 4 ลงตัว แต่หารด้วย 100 ไม่ลงตัว หรือเป็นปี ค.ศ.ซึ่งหารลงตัวด้วย400

  • ข้อยกเว้นที่ 1 ถ้าปีที่หารด้วย 4 ลงตัว แต่ ถ้าปีนั้นหารด้วย 100 ลงตัวด้วย ก็ไม่นับเป็นปี อธิกสุรธิน (กพ.มี 28 วัน) เช่นปี 1400,1500,1700,1800 เป็นต้น

  • ข้อยกเว้นที่ 2 ถ้าปีนั้นหารด้วย100 ลงตัว แต่ว่าหารด้วย 400 ลงตัว ก็ให้นับเป็น ปีอธิกสุรทิน (กพ.มี 29 วัน )เช่นปี 400,800,1200,1600 และปี 2000 ที่เพิ่งผ่านมาเป็นต้น




#include <stdio.h>
int main(){
    int i,day,month,year,check1=0,check2=0,check3=0;
    char mstr;
    printf("\t\tProgram check 'Leap year'.\n");
    printf("\t\tInput 'dd mm yyyy' Only.\n");
    printf("\t\tInput:");
    scanf(" %d %d %d",&day,&month,&year);
    check1=year%4;
    check2=year%400;
    check3=year%100;
    if(month==2&&day>29){
        printf("\t\tData fail.!!!\n");
    }else{
        if(month>0&&month<13&&day>0&&day<32){
    switch(month){
            case 1:printf("\tJanuary");
            break;
            case 2:printf("\tFabruary");
            break;
            case 3:printf("\tMarch");
            break;
            case 4:printf("\tApri");
            break;
            case 5:printf("\tMay");
            break;
            case 6:printf("\tJune");
            break;
            case 7:printf("\tJunly");
            break;
            case 8:printf("\tAgust");
            break;
            case 9:printf("\tSeptember");
            break;
            case 10:printf("\tOctober");
            break;
            case 11:printf("\tNovember");
            break;
            case 12:printf("\tDecember");
            break;
            }
    if (check1==0){
        if(check3!=0){
                printf(" %d, %d and %d is a leap year.\n",day,year,year);
            }else if(check3==0&&check2==0){
                printf(" %d, %d and %d is a leap year.\n",day,year,year);
            }else{
            printf(" %d, %d and %d is not a leap year.\n",day,year,year);
            }
        }else{
        printf(" %d, %d and %d is not a leap year.\n",day,year,year);
    }
    }else{
        printf("\t\tData fail.!!!\n");
    }
    }
   return 0;
}



ปล.อันนี้ลองไปทำกันดูครับ ถ้ามีโค๊ต อะไรที่น่าสนใจ หรือมีโจทย์มาถาม โพท์ต ถาม-ตอบกันได้เลยครับ...


วันอังคารที่ 16 สิงหาคม พ.ศ. 2554

โค๊ด ตัวอย่าง ภาษาซี(c) ตัวอย่างโปรแกรมภาษาซี ทำการอ่านลำดับของเลขจำนวนเต็มบวกซึ่งจะยุติการอ่านเมื่อ อ่านพบเลข 0 และทำการพิมพ์หาค่าเฉลี่ย

โปรแกรมทำการอ่านลำดับของเลขจำนวนเต็มบวกซึ่งจะยุติการอ่านเมื่อ อ่านพบเลข 0 และทำการพิมพ์หาค่าเฉลี่ย





#include 

main(){
int n=0,number,sum=0,average=0;
             printf("\t\t**********************************************\n");
             printf("\t\tAverage for only realnumber program.\n");
             printf("\t\t----------------------------------------------\n");
             printf("\t\tPress number 0 for stop program.\n");
             printf("\t\t**********************************************\n");
do{
            printf("\t\tInsert Realnumber : ");
            scanf("%d",&number);
        if(number>0){
           sum+=number;
           n++;
       }else{
               printf("\t\tOnly realnumber for program 0,1,2,...,n\n");
       }
     }while(number!=0);
            average=sum/n;
printf("\t\t**********************************************\n");
printf("\t\t\t\tYou're average is %d",average);
printf("\t\t**********************************************\n");
}

ปล.อันนี้ใช้ลูปแบบ do while ครับก็ลองดูศึกษาดูได้นะครับ


วันอาทิตย์ที่ 7 สิงหาคม พ.ศ. 2554

โค๊ด ตัวอย่าง ภาษาซี(c) ตัวอย่างโปรแกรมภาษาซี เกาส์(Gauss elimination)

โค๊ด ตัวอย่าง ภาษาซี(c) 
ตัวอย่างโปรแกรมภาษาซี เกาส์(Gauss elimination)


ตัวบนทำตัวรับค่าทาง keyboard (ของเค้าทำแบบ fix ค่าให้ขนาดของ array)
เพื่อเก็บค่าจากโจทย์ ลงใน array
แล้วค่อยลงในโค้ทด้านล่าง



#include <stdio.h>
main(){
            int n=3,i=0,j=0,k=0,rows,columns;
            double t=0,sum=0;
            printf("Input rows and columns:");
            scanf("%d %d",&rows,&columns);

            double [rows][columns]a = new double [n][n+1];
            double []x = new double [n];

                for(i=0;i<n+1;i++){      // อันนี้คือ การแก้งานตาม Guass emination

                for(k=i+1;k<n;k++){

                        t = -(a[k][i]/a[i][i]);

                    for(j=0;j<n+1;j++){

                        a[k][j] = (t*a[i][j])+(a[k][j]);

                    }

                }

            }
 //สร้างตัวปริ้นค่าออกทางหน้าจอตามใจ





            for(i=n-1;i>=0;i--){                // อันนี้คือ หาค่า x1 , x2 , x3
                for(j=i+1;j<n;j++){
                    sum=sum+(a[i][j]*x[j]);
                }
                a[i][n]=a[i][n]-result1;
                result1=0;
                x[i]=a[i][n]/a[i][i];
            }
            for(i=0;i<=2;i++){
                    printf("X%d = %.4f \n",i+1,x[i]); // อันนี้คือ พิมพ์ x1 , x2 , x3
            }
}


X1 = -0.5000

X2 = -0.1667

X3 = 1.1667*/

ลองหัดเขียนเล่นๆดูครับ มีประโยชน์มาก เกาส์(Gauss elimination)



วันพุธที่ 3 สิงหาคม พ.ศ. 2554

โปรแกรมภาษาซี ตอน โค๊ด ตัวอย่างโปรแกรมสมการเชิงเส้น

โปรแกรมภาษาซี ตอน โค๊ด ตัวอย่างโปรแกรมสมการเชิงเส้น





#include <stdio.h>
#include <math.h>
    void main(){
        int a,b,c,x,x1;
        printf("AX^2+BX+C=0\n");
        printf("Insert A :");
        scanf("%d",&a);
        printf("Insert B :");
        scanf("%d",&b);
        printf("Insert C :");
        scanf("%d",&c);
if(a!=0){
        printf("%dX^2+%dX+%d=0\n",a,b,c);
        x=(-b-sqrt(b*b-4*a*c))/(2*a);
        x1=(-b+sqrt(b*b-4*a*c))/(2*a);
        printf(" x  = %d\n",x);
        printf(" x1 = %d\n",x1);
}
else{
printf("Data Error!!!.");
       }
}

แบ่งบันโค๊ด ตัวอย่างโปรแกรม โจทย์กันได้นะครับ ปรึกษาได้ครับ สังคมแห่งการแบ่งบันโปรแกรมภาษาซี

โค๊ต ตัวอย่างโปรแกรมภาษาซี โจทย์โปรแกรมภาษาซีหัดเขียนโค๊ด

ต้องขยันทำโจทย์เล่น บ่อยๆครับ 
ภาษาคอมพิวเตอร์ภาษาใด ภาษาหนึ่งสามารถนำไปประยุกต์ใช้กับภาษาอื่นๆได้

1.จงเขียนโปรแกรมทำการอ่านลำดับของเลขจำนวนเต็มบวกซึ่งจะยุติการอ่านเมื่ออ่านพบเลข 0 และทำการพิมพ์หาค่าเฉลี่ย

2.จงเขียนโปรแกรมทำการอ่านลำดับของเลขจำนวนเต็มบวกซึ่งจะยุติการอ่านเมื่ออ่านพบเลข 0 และแสดงผลตัวเลขที่มีค่าน้อยที่สุด และค่ามากที่สุดตามลำดับ

3.จงเขียนโปรแกรมสำหรับการหาตัวหารร่วมมากของจำนวนเต็มบวกที่กำหนดให้สองจำนวน

4. รับข้อมูลจำนวนเต็มจากผู้ใช้ จะหยุดรับข้อมูลเมื่อผลรวมของข้อมูลนั้นมีค่ามากกว่า
300  ให้หาว่ามีการรับข้อมูลทั้งหมดกี่จำนวนเมื่อโปรแกรมทำงานเสร็จให้ทำงานวนรับข้อมูลต่อไป โดยขึ้น ข้อความสอบถามว่า Exit program (Y/N) ? หากผู้ใช้ป้อนข้อมูล  y หรือ ให้หยุดการทำงานของโปรแกรม แต่ถ้าป้อนข้อมลูอื่น ๆ ให้เรียกโปรแกรมเดิมกลับมาทำงานอีกครั้ง

5. กำหนดค่าตัวเลขจำนวนเต็ม N (N >1 และเป็นเลขบวก) ใดๆ  โดยที่  N < 100000 กำหนดให้รับค่า N ผ่านทาง keyboard  จงคำนวณหาว่ามีเลข Prime ทั้งหมดกี่เลข และ เลข Prime แต่ละตัวคืออะไร ให้แสดงเลข Prime บรรทัดละ 10 ตัว

ตัวอย่าง

     INPUT  N  = 50
     2 3              5              7              11           13           17           19           23           29
     31              37           41             43            47          





วันจันทร์ที่ 1 สิงหาคม พ.ศ. 2554

โปรแกรมภาษาซี ตอน โค๊ด ตัวอย่างโปรแกรมเป่ายิ๊งฉุบ ตอนที่ 1

โค๊ตโปรแกรมเป่ายิ้งฉุบ ตอนที่ 1
โปรแกรมภาษาซี ตอน โค๊ด ตัวอย่างโปรแกรมเป่ายิ๊งฉุบ ตอนที่ 1


#include <stdio.h>
#include <math.h>
    void main(){
        char num1[20],num2[20];
        printf("input num1 :");
        scanf("%s",num1);
        printf("input num2 :");
        scanf("%s",num2);

        if(strcmp(num1)==strcmp(num2)){
        printf("no win");

               }
        else if(strcmp(num1)==strcmp("rock")){
                 if(strcmp(num2)==strcmp("paper")){
                 printf("num2 win");
                 }
                 else{
                 printf("num1 win");
                 }
        }
        else if(strcmp(num1)==strcmp("paper")){
                 if(strcmp(num2)==strcmp("rock")){
                 printf("num1 win");
                 }
                 else{
                 printf("num2 win");
                 }
        }
        else if(strcmp(num1)==strcmp("scissors")){
                 if(strcmp(num2)==strcmp("paper")){
                 printf("num1 win");
                 }
                 else{
                 printf("num2 win");
                 }
        }
}