摘 要:作者多年從事計(jì)算機(jī)應(yīng)用技術(shù)研究和教學(xué),在C語(yǔ)言程序設(shè)計(jì)的教學(xué)過(guò)程中,作者一直在探索激發(fā)學(xué)生學(xué)習(xí)興趣、降低課程難度、提高學(xué)習(xí)成績(jī)的有效途徑,并提出自己的一些做法供同行們參考。
關(guān)鍵詞:C語(yǔ)言;教法;計(jì)算機(jī)
1 乘法口訣(二)
程序說(shuō)明:
這個(gè)程序使用while語(yǔ)句實(shí)現(xiàn)了前面程序的功能,教師可以通過(guò)這個(gè)程序給學(xué)生講解while語(yǔ)句的使用,其他可以設(shè)置特殊形狀的窗口并且逐行顯示乘法口訣,涉及了多個(gè)頭文件、休眠,還涉及嵌套循環(huán)的使用。
教師講解這個(gè)程序的時(shí)候應(yīng)該多突出它的趣味性,激發(fā)學(xué)生的學(xué)習(xí)熱情。
#include
#include
#include
int main(void)
{
system(“color 3f”);
system(“title 乘法口訣”);
system(“mode con cols=130 lines=20”);
int i=1,j=1;
while(i<=9)
{
printf(“\n “);
while(j<=i)
{
printf(“%d*%d=%-6d”,j,i,i*j);
j++;
}
j=1;
Sleep(500);
i++;
}
printf(“\n\n “);
}
后記:
教師需要一邊講解,一邊逐步增加各項(xiàng)功能,以免學(xué)生跟不上教師的思路。
教師講解這個(gè)程序的時(shí)候應(yīng)該多突出它的趣味性,激發(fā)學(xué)生的學(xué)習(xí)熱情。
2 求100以?xún)?nèi)的所有素?cái)?shù)
程序說(shuō)明:
這個(gè)程序使用for語(yǔ)句,找出100以?xún)?nèi)的所有素?cái)?shù),教師可以通過(guò)這個(gè)程序給學(xué)生講解for語(yǔ)句和if語(yǔ)句的綜合使用。
教師講解這個(gè)程序的時(shí)候應(yīng)該多講解它的算法分析,培養(yǎng)學(xué)生的算法設(shè)計(jì)能力。
練習(xí)方法:
(1).程序原型
#include
#include
int main(void)
{
system(“color 3f”);
system(“title 100以?xún)?nèi)的所有素?cái)?shù)”);
system(“mode con cols=90 lines=30”);
int i=2,j=2,k=0;
for(i=2;i<=100;i++)
{
for(j=2;j
{
if(i%j==0)
break;
}
if(i==j)
{
printf(“\t%d\t”,i);
k++;
if(k%4==0)
printf(“\n”);
}
}
printf(“\n\n “);
}
(2).算法分析
1)開(kāi)始:i=2,j=2;
2)設(shè)置i從2到100的循環(huán)
3)設(shè)置j從2到i的循環(huán)
4)第一次判斷:J每一次取值,都驗(yàn)證i%j是否為零,如果為零,則終止j的循環(huán)
5)第二次判斷:驗(yàn)證i==j是否成立,如果成立,則找到一個(gè)素?cái)?shù)
后記:
教師在使用這個(gè)程序時(shí)應(yīng)該多關(guān)注算法設(shè)計(jì),多給學(xué)生講解算法設(shè)計(jì),培養(yǎng)學(xué)生算法設(shè)計(jì)能力。
3 用1、2、3、4,能組成多少個(gè)互不相同且無(wú)重復(fù)數(shù)字的三位數(shù)?都是多少?
程序說(shuō)明:
這個(gè)程序使用三層嵌套for語(yǔ)句,找出1、2、3、4組成的所有不同的并且沒(méi)有重復(fù)的三位數(shù),教師可以通過(guò)這個(gè)程序給學(xué)生講解for語(yǔ)句和if語(yǔ)句的綜合使用。
教師講解這個(gè)程序的時(shí)候應(yīng)該多講解它的算法分析,并且引導(dǎo)學(xué)生設(shè)計(jì)不同的算法,培養(yǎng)學(xué)生的算法設(shè)計(jì)能力。
練習(xí)方法:
(1).程序原型
#include
#include
int main(void)
{
system(“color 3f”);
system(“title 用1--4組成的互不相同且無(wú)重復(fù)數(shù)字的三位數(shù)”);
system(“mode con cols=90 lines=30”);
int i,j,k,m=0,n=0;
printf(“\n”);
for(i=1;i<5;i++) //以下為三重循環(huán)
for(j=1;j<5;j++)
for(k=1;k<5;k++)
{
if (i!=k&&i!=j&&j!=k) //確保i、j、k三位互不相同
{
m++;
printf(“\t%d,%d,%d\t”,i,j,k);
n++;
if(n%4==0)
printf(“\n”);
}
}
printf(“\n 以上一共 %d 個(gè)。\n “,m);
}
(2).算法分析
算法一
1)設(shè)置i=1,j=1,k=1
2)嵌套設(shè)置I,j,k三層循環(huán)
3)判斷分揀出I,j,k互不相同的組合打印
算法二
1)設(shè)置i=1,j=1,k=1
2)設(shè)置i循環(huán)
3)設(shè)置j循環(huán),分揀出與i不同的j
4)設(shè)置k循環(huán),分揀出與I,j不同的k
5)打印
(3).參考程序
#include
#include
int main(void)
{
system(“color 3f”);
system(“title 1--4組成的互不相同且無(wú)重復(fù)數(shù)字的三位數(shù)”);
system(“mode con cols=90 lines=30”);
int i,j,k,m=0,n=0;
printf(“\n”);
for(i=1;i<5;i++) //以下為三重循環(huán)
{
for(j=1;j<5;j++)
{
if(i==j)
continue;
else
{
for(k=1;k<5;k++)
if((i==k)||(j==k)) //確保i、j、k不相同
continue;
else
{
printf(“\t%d,%d,%d\t”,i,j,k);
m++;
n++;
if(n%4==0)
printf(“\n”);
}
}
}
}
printf(“\n 以上一共 %d 個(gè)。\n “,m);
}
后記:
教師應(yīng)該多講解它的算法分析,并且引導(dǎo)學(xué)生設(shè)計(jì)不同的算法,培養(yǎng)學(xué)生的算法設(shè)計(jì)能力。
作者簡(jiǎn)介
楊英翔,副教授。