• 
    

    
    

      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)新教法
      鄂尔多斯市| 泾阳县| 南汇区| 阿鲁科尔沁旗| 广平县| 商南县| 年辖:市辖区| 仙桃市| 吕梁市| 镇远县| 射阳县| 昭通市| 科技| 定州市| 大同市| 武宣县| 惠州市| 六安市| 东平县| 鄱阳县| 西城区| 浠水县| 延安市| 怀集县| 巍山| 浦县| 孟津县| 喀喇沁旗| 游戏| 乐亭县| 两当县| 周宁县| 临海市| 霸州市| 黄梅县| 清水河县| 龙游县| 荣成市| 安康市| 那坡县| 城步|