• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    嘗試用C語言計算π的小數(shù)點后300位C語言趣味課堂練習

    2022-05-13 20:43:36楊英翔
    電子樂園·下旬刊 2022年5期
    關鍵詞:教法計算機

    摘要:作者多年從事計算機應用技術研究和教學,在C語言程序設計的教學過程中,作者一直在探索激發(fā)學生學習興趣、降低課程難度、提高學習成績的有效途徑,并提出自己的一些做法供同行們參考。

    關鍵詞:C語言;教法;計算機

    正文:

    源程序:

    #include<stdio.h>

    #include<stdlib.h>

    void main()

    {// 嘗試計算圓周率小數(shù)點后300位

    // 格里高利公式:pi=1-1/3+1/5-1/7+... ...

    // 設置變量

    int a[20000]={0};int s=1,s0;int v=1;int i,j,k,m;

    for(i=1;i<50000000;i++)

    {j=0;s0=s;

    while(!(s0/v))

    {j++;s0*=10;}

    for(k=1;k<=300;k++)

    {a[j]+=s0/v;s0=(s0%v)*10;j++;}m=j;

    for(j=m;j>=1;j--)

    {a[j-1]=a[j-1]+a[j]/10;

    a[j]=a[j]%10;

    if(a[j]<0)

    {a[j-1]=a[j-1]-1;

    a[j]=10+a[j];}}s=-1*s;v=v+2;}

    for(j=0;j<=m;j++)

    a[j]=a[j]*4;

    for(j=m;j>=1;j--)

    {a[j-1]=a[j-1]+a[j]/10;a[j]=a[j]%10;

    if(a[j]<0)

    {a[j-1]=a[j-1]-1;a[j]=10+a[j];}}

    printf("\n\n ? ?PI=\n ? ?");

    for(j=0;j<=m;j++)

    {printf("%d",a[j]);

    if((j+1)%4==0)

    printf(" ");}

    /*FILE * p;

    p=fopen("圓周率.doc","w");

    fprintf(p,"\n\n ? ?PI=\n ? ?");

    for(j=0;j<=m;j++)

    {fprintf(p,"%d",a[j]);

    if((j+1)%4==0)

    fprintf(p," ");}

    fprintf(p,"\n\n ? ?");

    fclose(p);*/

    printf("\n\n ? ?Game Over\n\n ? ?");

    system("pause");

    printf("\n ? ?");}

    程序說明:

    這個程序里用一個整型數(shù)組來存放π的計算結果,通過程序的講解,我們可以初步理解用數(shù)組存放和打印大數(shù)據(jù)的方法,這也是用C語言進行科學計算的一個使用例子,為學生們打開程序設計的一面窗戶。

    整個程序結構上很實用,語言上很簡練,算法也簡單。

    相關知識:

    這個例子里用數(shù)組存放大數(shù)據(jù),大致可以分兩步,第一步是數(shù)組里每一個元素中數(shù)據(jù)的計算,第二步是數(shù)組中每一個元素中數(shù)據(jù)的進位。

    相關練習:

    (1) π的另一種計算方法,這是網(wǎng)上流傳很廣的一個程序,已經(jīng)找不到出處了,經(jīng)過驗證是可以運行的,大家可以嘗試分析一下其算法原理。

    #include<stdio.h>

    #include<stdlib.h>

    Int main()

    {system("title 圓周率計算");

    system("color 2f");

    long a=10000,b=0,c=3500,d=0,e=0,f=0,g[3501];

    for( ;b-c; )

    g[b++]=a/5;

    for( ;d=0,f=c*2;c-=14,printf( "%.4d ?",e+d/a),e=d%a)

    for(b=c;d+=g[b]*a,g[b]=d%--f,d/=f--,--b;d*=b);

    printf("\n\n ? ?");}

    (2) 選擇排序法排序,這是一個簡單的排序法練習,頭文件里有time.h,大家可以嘗試使用隨機數(shù)來給數(shù)組賦值。

    #include<stdio.h>

    #include<stdlib.h>

    #include<time.h>

    #include<windows.h>

    main()

    {system("color 2f");

    system("title ---選擇排序法");

    system("mode con cols=130 lines=40");

    int m[256],i,j,t,k,s;

    printf("\n\n ? ?輸入10個數(shù):\n\n ? ? ");

    for(i=0;i<10;i++)

    {scanf("%d",&m[i]);}

    printf("\n您輸入的數(shù)組—————\n");

    for(i=0;i<10;i++)

    {printf("%5d",m[i]);}

    for(i=0;i<9;i++)

    {t=i;for(j=i+1;j<=9;j++)

    {if(m[t]>m[j])t=j;}

    s=m[t];m[t]=m[i];m[i]=s; }

    printf("\n\n排序后的數(shù)組—————\n");

    for(k=0;k<10;k++)

    printf("%5d",m[k]);

    printf("\n\n");

    getchar();}

    總結:

    C語言程序設計是一門非常注重實踐的課程,無論課堂教學還是上機實踐,教師的童心和發(fā)散思維,都是學生們突破學習難點、提高學習興趣和建立良好的學習習慣的強有力的助力和催化劑。

    參考文獻

    [1]. 《C程序設計》(第三版),譚浩強 著,清華大學出版社,2005年7月

    [2]. C程序設計題解與上機指導》(第三版),譚浩強著,清華大學出版社,2005年7月

    [3]. 《C語言程序設計習題指導與練習》,劉宏著,清華大學出版社,2009年1月

    作者簡介:楊英翔(1964.06-),男,漢族,副教授,就職于沈陽建筑大學。

    猜你喜歡
    教法計算機
    計算機操作系統(tǒng)
    穿裙子的“計算機”
    基于計算機自然語言處理的機器翻譯技術應用與簡介
    科技傳播(2019年22期)2020-01-14 03:06:34
    計算機多媒體技術應用初探
    科技傳播(2019年22期)2020-01-14 03:06:30
    實戰(zhàn)視角下擒敵拳教學教法路徑研究
    武術研究(2019年11期)2019-04-20 12:14:56
    信息系統(tǒng)審計中計算機審計的應用
    消費導刊(2017年20期)2018-01-03 06:26:40
    開放在線課程教法的適應性變革:從OCW到MOOC
    “教法融合”:得道方能行遠
    Fresnel衍射的計算機模擬演示
    語文教學要創(chuàng)新教法
    南部县| 改则县| 衡阳市| 称多县| 泾源县| 安国市| 峨边| 西城区| 集贤县| 鄂伦春自治旗| 清镇市| 嘉义市| 景谷| 尼玛县| 岗巴县| 施甸县| 沐川县| 西丰县| 多伦县| 辽阳县| 铁力市| 凌海市| 赤城县| 特克斯县| 靖远县| 牟定县| 从化市| 伊川县| 北票市| 栾川县| 潞城市| 抚宁县| 龙陵县| 咸宁市| 文水县| 石屏县| 泰来县| 留坝县| 凤台县| 中卫市| 新竹市|