陳益
摘要:文章主要以C程序設(shè)計課程中函數(shù)調(diào)用的基本內(nèi)容為專業(yè)理論教學點,甄選蘊藏其中的合作思政點,以此為契,研究程序設(shè)計中函數(shù)調(diào)用規(guī)則與現(xiàn)實社會里合作共贏法則的同向問題。函數(shù)調(diào)用內(nèi)容分四部分,以由淺入深、逐一擊破的方式剖析理論的本質(zhì)、內(nèi)涵及應(yīng)用。思政元素,以基因式的方式逐步向?qū)I(yè)知識深入融合,達到智慧教學。讓教學活動有深度、有廣度亦有溫度,教書與育人同向同行。
關(guān)鍵詞:C程序設(shè)計;函數(shù)調(diào)用;思政元素;合作;共贏;智慧教學
中圖分類號:G642? ? ? ? 文獻標識碼:A
文章編號:1009-3044(2022)33-0119-03
積極踐行習近平總書記在全國高校思想政治會議上的講話精神,用好課堂教學這一主渠道,各類課程都要與思想政治理論課同向同行,深挖專業(yè)課教學中蘊藏的思政元素,將思政資源在專業(yè)知識教學中基因式融入,實現(xiàn)教書與育人的同步統(tǒng)一,是新時代所賦予的專業(yè)課教師高質(zhì)量完成教學任務(wù)的最新標準[1]。
本文以C程序設(shè)計中的函數(shù)調(diào)用為例,甄選函數(shù)調(diào)用專業(yè)知識中蘊藏的思政元素-合作,以此為契研究函數(shù)調(diào)用與合作的同向性。函數(shù)調(diào)用內(nèi)容分四部分,以學生熟練掌握函數(shù)調(diào)用的本質(zhì)為教學目的,每部分理論內(nèi)容后,都賦予與之相匹配的思政內(nèi)容的滲入和對照,以此拓展教學活動,在培養(yǎng)學生用調(diào)用函數(shù)的方式解剖復雜工程問題的思維能力的同時,從思政角度,倡導、鼓勵團隊合作精神,發(fā)揚自主創(chuàng)新精神,弘揚愛國主義精神,對學生進行智慧教育[2]。
1函數(shù)調(diào)用的基本形式和基本方法
C程序中的函數(shù)又稱模塊,一般分3種類型:①主函數(shù)main函數(shù),是源程序執(zhí)行的入口函數(shù);②庫函數(shù),已被封裝好具體功能的函數(shù),用戶只需根據(jù)規(guī)定傳遞相關(guān)參數(shù)便可獲得結(jié)果;③自定義函數(shù),用戶根據(jù)自己的需求所編寫的函數(shù),包括函數(shù)名字、函數(shù)參數(shù)、函數(shù)返回類型及函數(shù)功能體,自定義函數(shù)可以被自己或別的函數(shù)調(diào)用[3]。
1.1函數(shù)調(diào)用的基本形式
主函數(shù)可以調(diào)用庫函數(shù)和自定義函數(shù),庫函數(shù)也可以調(diào)用自定義函數(shù),自定義函數(shù)間可以相互調(diào)用。函數(shù)調(diào)用的一般形式為:函數(shù)名(實參表列);函數(shù)名的取名規(guī)則與其他標識符一致,實參表列為函數(shù)的參數(shù),實參表列包括類型名和參數(shù)名,若有多個實參,每個參數(shù)名前都有自己的類型名,各個參數(shù)間用逗號分隔。調(diào)用無參函數(shù),“實參表列”的內(nèi)容為空,括號不能省。
1.2函數(shù)調(diào)用方法的分類
函數(shù)調(diào)用方法按照形式和出現(xiàn)的位置分3種:
①函數(shù)調(diào)用語句,函數(shù)調(diào)用可以單獨作為一個語句。如:printf_star();語句為調(diào)用無參函數(shù),執(zhí)行printf_star函數(shù)體中的某種具體操作,主調(diào)函數(shù)最終通過正確結(jié)果的顯示詮釋對被調(diào)函數(shù)功能的驅(qū)動。
②函數(shù)表達式,函數(shù)調(diào)用可以出現(xiàn)在另一個賦值表達式中。如:c=max(a,b); 從max(a,b)函數(shù)被調(diào)用的位置分析,它作為賦值號右邊的表達式,有返回值,當max(a,b)函數(shù)被調(diào)用后,它返回的較大的值會賦值給主調(diào)main函數(shù)的變量c。
③函數(shù)參數(shù),函數(shù)調(diào)用可以作為另一個函數(shù)調(diào)用時的實參。如:printf(“%d”,min(x,y)); 本次調(diào)用中min(x,y)函數(shù)作為printf函數(shù)的輸出表列,由庫函數(shù)的格式控制可知,min(x,y)函數(shù)的返回值類型必須為int型[4]。
1.3函數(shù)調(diào)用與合作的同向性分析
總結(jié)以上①②③點信息可知,除了主函數(shù)main函數(shù)外,每個函數(shù)的功能固定且有限,要完成規(guī)模較大的任務(wù),必須通過函數(shù)間的調(diào)用,最大限度發(fā)揮主調(diào)函數(shù)和被調(diào)函數(shù)各自的優(yōu)勢,獲得預(yù)期的結(jié)果。軟件開發(fā)本身是一項涉及多部門、多任務(wù)的復雜的協(xié)同工作,團隊合作極為重要。
現(xiàn)實社會中的團隊合作,與軟件開發(fā)中函數(shù)調(diào)用的作用不謀而合,如果把一個個函數(shù)形象地比喻為一個個國家,那么函數(shù)間的調(diào)用猶如國家之間為實現(xiàn)一個更大的目標,在一定程度和一定范圍內(nèi)開展的互惠互利的合作。每個國家根據(jù)自己的獨特優(yōu)勢,積極尋求與別國的合作機會,求同存異、產(chǎn)生共鳴[5]。于個人而言,團隊合作本身是力量的匯聚,除去技術(shù)過硬這一至關(guān)重要的因素外,合作意識、組織能力、服務(wù)意識,能夠求同存異,虛心聽取不同意見,這些同樣是決定一個人未來發(fā)展道路的關(guān)鍵因素。與函數(shù)調(diào)用一樣,合作對于國家、對于個人都是發(fā)揮自身優(yōu)勢、取得更大收益的良好途徑。
2 函數(shù)調(diào)用時的數(shù)據(jù)傳遞
函數(shù)進行調(diào)用時,主調(diào)函數(shù)和被調(diào)函數(shù)之間是否有參數(shù)的傳遞,是否能進行參數(shù)間的正確傳遞,是進行函數(shù)調(diào)用要考慮的第一條件。
2.1 形式參數(shù)和實際參數(shù)
當主調(diào)函數(shù)調(diào)用無參函數(shù)時,二者之間不存在參數(shù)傳遞,被調(diào)函數(shù)只需根據(jù)自身功能配合主調(diào)函數(shù)完成調(diào)用過程即可。當主調(diào)函數(shù)調(diào)用有參函數(shù)時,二者之間需要有相同數(shù)據(jù)類型的參數(shù)傳遞,稱“數(shù)據(jù)傳遞”。
主調(diào)函數(shù)的參數(shù)為實際參數(shù),稱“實參”;被調(diào)函數(shù)的參數(shù)為形式參數(shù),稱“形參”。形參和實參數(shù)據(jù)可以是整型、實型、字符型等各種基本數(shù)據(jù)類型,或數(shù)組、指針等引用類型。本文中的應(yīng)用舉例,形參和實參數(shù)據(jù)的類型均以基本數(shù)據(jù)類型為例。
2.2實參和形參間的數(shù)據(jù)傳遞
在調(diào)用函數(shù)過程中,系統(tǒng)會把實參的值傳遞給被調(diào)用函數(shù)的形參,即形參從實參得到一個值。形參獲取的值在函數(shù)調(diào)用期間有效,能參與該函數(shù)中的運算。
2.3數(shù)據(jù)傳遞規(guī)則與合作共識規(guī)則對照
函數(shù)調(diào)用如果是有參數(shù)的,參數(shù)傳遞只能是實參傳給形參,這是規(guī)則,不容商榷[6]。如果將參數(shù)傳遞規(guī)則作為軟件開發(fā)中函數(shù)間調(diào)用的共識基礎(chǔ),那么現(xiàn)實社會里國家之間合作的共識首先應(yīng)該是以平等和尊重為基礎(chǔ)的,然后是有主導、按規(guī)則、守秩序、同進退、相互信任相互包容。任何有效、深度的合作都應(yīng)該是建立在有規(guī)則的前提之下。對于基本規(guī)則,只能遵守,不得逾越。
3函數(shù)調(diào)用的過程
3.1函數(shù)調(diào)用的執(zhí)行流程
主調(diào)函數(shù)的實參向被調(diào)函數(shù)的形參進行的數(shù)據(jù)傳遞為單向“值傳遞”,且只能是實參傳遞給形參。特別注意:當實參有多個參數(shù)對形參進行傳遞時,必須是從左到右地一一傳遞,絕不能交叉。實參向形參進行數(shù)據(jù)值傳遞的過程如例1所示。例1 交換形參數(shù)據(jù)
#include “stdio.h”
void swap(int x,int y)
{ int t;
t=x;x=y;y=t;? ?//三條賦值語句實現(xiàn)形參x,y值的交換
printf(“形參:x=%d,y=%d ****”,x,y);
}
int main()
{ int a,b;
printf(“\n請輸入兩個整數(shù):”);
scanf(“a=%d b=%d”,&a,&b);
printf(“輸出結(jié)果:\n”);
swap(a,b);
printf(“實參:a=%d,b=%d\n”,a,b);
return 0;
}
對函數(shù)調(diào)用過程進行分析:例1中,當swap函數(shù)被main主函數(shù)調(diào)用時,事先通過scanf輸入函數(shù)從鍵盤讀取到的a和b的值,7和9,作為實參分別依次傳遞給swap函數(shù)的形參x和y(注意傳遞過程絕不能交叉),即此時x=7,y=9。至此實參和形參二者之間的數(shù)據(jù)傳遞工作結(jié)束,swap函數(shù)的x和y獲得了值之后,在swap函數(shù)體中通過t=x;x=y;y=t;3個賦值語句進行了形參x和形參y值的交換,即形參x由實參a傳遞過來的7變成了9,形參y由實參b傳遞過來的9變成了7,而形參數(shù)據(jù)進行交換的這一過程與實參a和實參b沒有任何關(guān)系,形參x和形參y值的交換是由swap函數(shù)的功能所賦予的。例1程序運行結(jié)果如圖1所示。
從程序的運行結(jié)果可知,實參和形參在內(nèi)存中都有各自不同的存儲單元,它們之間的傳遞是單向的。形參有從實參獲取值的權(quán)力,但形參最終的值由它所在的函數(shù)功能決定。即使因函數(shù)功能讓形參值變化了也不會影響到實參,它們之間的單向傳遞關(guān)系,表明了實參無法獲得形參的值。
3.2函數(shù)調(diào)用的操作過程與合作的執(zhí)行過程
例1函數(shù)調(diào)用的說明:①swap函數(shù)中3條交換形參值的語句,必須經(jīng)主調(diào)main函數(shù)調(diào)用時實參把具體的值傳遞給形參后才能進行,沒有實參向形參傳值的起因,形參值的交換結(jié)果,猶如“無米之炊”;②實參和形參間發(fā)生參數(shù)的傳遞,必須是實參傳給形參,且是從左到右對應(yīng)一一傳遞,不能反向,不能交叉,是既定的規(guī)則;③當實參把信息傳遞給形參后,它們之間的關(guān)系結(jié)束,形參自己有權(quán)在自身所在的函數(shù)內(nèi)做自己的事情,比如,形參的值進行交換,實參無權(quán)干預(yù)。
總結(jié)以上①②③點,對主調(diào)main函數(shù),實參值的傳遞發(fā)揮了積極的作用,是推動被調(diào)函數(shù)工作的先決條件;對被調(diào)swap函數(shù),因為有實參向形參值的傳遞,才能凸顯被調(diào)函數(shù)中3條賦值語句的實際作用。因此函數(shù)調(diào)用中它們都各自發(fā)揮作用,各自都有收獲。
由例1中的①②③說明,聚焦到國家之間的關(guān)系,如果需要可以在一定程度、一定范圍內(nèi)開展各種實質(zhì)且有效的合作。合作首先要平等,尤其是大國和小國、強國和弱國之間,開展合作的原則首先必須消滅霸權(quán)主義和強權(quán)條約、保證合作國家平等獨立、彼此尊重國家主權(quán),領(lǐng)土完整,遵守國際公約等條件。各國之間平衡利弊、取長補短,將自己最擅長的事務(wù)發(fā)揮到極致,將合作的有效性和實效性擴展到最大化。映射到人與人之間或組織之間的合作,同樣體現(xiàn)了尊重、平等、誠信及遵守社會秩序、執(zhí)行基本規(guī)則和擁有良好信譽的基本前提。
當主調(diào)函數(shù)將實參按照既定的規(guī)則一一傳遞給被調(diào)函數(shù)的形參時,相當于多方合作的條件都達成共識或一一具備,接下來的合作過程應(yīng)該是平滑的、順暢的,最后取得的合作結(jié)果自然是合作方不同程度的收獲。我國提出的“一帶一路”倡議取得的輝煌成績及各國在全球氣候變暖上采取的分工、協(xié)作等積極措施,都極大地詮釋了合作為全人類所帶來的巨大福祉。
4 函數(shù)的返回值
4.1 函數(shù)返回值的執(zhí)行過程
在函數(shù)調(diào)用過程中,通常希望通過函數(shù)調(diào)用使主調(diào)函數(shù)能得到一個確定的值,即為函數(shù)值,也稱函數(shù)的返回值。關(guān)于函數(shù)的返回值需要注意內(nèi)容有:(1)函數(shù)的返回值是通過函數(shù)中的return語句獲得的。(2)函數(shù)值的類型,應(yīng)該在定義函數(shù)時指定函數(shù)值的類型。如:int max(float x,float y) //max函數(shù)值的類型為int型。(3)在定義函數(shù)時指定的函數(shù)類型一般應(yīng)該與return語句中的表達式值的類型一致。如不一致,以函數(shù)類型為準,對數(shù)值型數(shù)據(jù),進行自動類型轉(zhuǎn)換,即函數(shù)類型最終決定返回值的類型。(4)不帶回值的函數(shù),定義函數(shù)為“void類型”。如:void fn(){} //表示fn函數(shù)的返回類型為void型。
當主調(diào)函數(shù)調(diào)用fn函數(shù)時,其目的僅僅只是為了讓fn函數(shù)執(zhí)行某個過程,而并不需要為主調(diào)函數(shù)帶回fn函數(shù)的任何值,或fn函數(shù)也沒有值可以帶回時,函數(shù)體中也不需要return語句了。以下示例2具體說明了return語句的用法。
例2 比較兩個整數(shù)的大小
#include “stdio.h”
int max(int x,int y)
{? int z;
if(x>y) z=x;
else z=y;
return(z); //將z的值通過max函數(shù)被調(diào)用帶回給主調(diào)函數(shù)
}
int main()
{? int a,b,c;
printf(“\n請輸入兩個整數(shù):”);
scanf(“%d,%d”,&a,&b);
c=max(a,b); //調(diào)用max函數(shù),a,b為實參,調(diào)用后的值賦給c
printf(“輸出結(jié)果\n 最大值:max=%d”,c);
return 0;
}
對函數(shù)調(diào)用過程進行分析:例2是比較兩個整數(shù)的大小,由題意可知,被調(diào)用函數(shù)應(yīng)該為主調(diào)函數(shù)帶回兩個整數(shù)中較大的一個值,所以被調(diào)用函數(shù)在定義時必須有返回值,且類型為int型,在函數(shù)體中用返回語句帶回函數(shù)被調(diào)用之后的較大值賦給主調(diào)函數(shù)的某個變量,或是直接作為輸出函數(shù)的輸出表列打印出來。例2的源程序中包含三個函數(shù),其中max函數(shù)為被調(diào)用,其功能是首先從主調(diào)main函數(shù)中為參數(shù)x和參數(shù)y獲取兩個整數(shù),接著完成比較大小的工作,最后由return語句為主調(diào)main函數(shù)返回一個較大的值;main函數(shù)為主調(diào)函數(shù),其功能是在調(diào)用被調(diào)函數(shù)時,向其傳遞兩個整數(shù)值,即實參a和實參b將從鍵盤讀取的值傳遞給max函數(shù)的形參x和形參y,完成函數(shù)調(diào)用工作后,用變量c接收了其中一個較大的值;printf庫函數(shù)打印變量c的值。例2程序運行結(jié)果如圖2所示。
4.2函數(shù)返回值的取得與合作結(jié)果的對照
例2函數(shù)返回值的說明:①max函數(shù)首先必須有能實現(xiàn)兩個整數(shù)比較大小的功能,才會被主調(diào)main函數(shù)調(diào)用,此點說明了有自身優(yōu)勢的重要性;②函數(shù)的返回值,在函數(shù)定義時是靜態(tài)的,return語句展現(xiàn)了函數(shù)的返回信息。無論這些返回信息指的是一個具體的數(shù)值還是一次詳細的執(zhí)行操作,都是在被調(diào)max函數(shù)被主調(diào)main函數(shù)調(diào)用后獲得的,是一個動態(tài)的過程,即“動爆發(fā)能量”。
例2的①說明可知,自身有過硬的本領(lǐng)和一定的優(yōu)勢是合作的前提和基礎(chǔ),是內(nèi)因。②說明了任何人、物力量都是有限的,要展示自身優(yōu)勢,在一定程度上須借助外力,內(nèi)因主導、外力推動,二者同向同行爆發(fā)巨能,函數(shù)返回值彰顯合作、借力的重要性。延伸到國家之間的道理是一樣的,集中本國優(yōu)勢,積極與他國合作。如此一來既展現(xiàn)了自身的優(yōu)勢,同時優(yōu)勢也被認可,在合作中發(fā)光發(fā)熱,創(chuàng)造福祉的同時也獲得更大的收益。
5 結(jié)語
本文以C程序設(shè)計課程中的函數(shù)調(diào)用內(nèi)容為例,甄選與理論知識相匹配的思政元素-合作,作為分析程序設(shè)計與現(xiàn)實社會同向的契點,每個理論知識點的基本內(nèi)容后都恰到好處地分析二者的共通性,深入探討專業(yè)知識點與德育點的基因式融入,為深化高校課程思政教學改革體系的構(gòu)建起了拋磚引玉的作用[7-8]。教學過程中深層地分析德育點-合作在新時代于國家、于個人所賦予的規(guī)則和意義。
參考文獻:
[1]新華社.全國高校思想政治工作會議[EB/OL].[2016-12-08].http://www.gov.cn/xinwen/2016-12/08/content_5145253.htm#1.
[2]教育部.高等學校課程思政建設(shè)指導綱要[EB/OL]. [2020-05-28].http://www.gov.cn/zhengce/zhengceku/2020-06/06/content_5517606.htm.
[3] 何欽銘,顏暉.C語言程序設(shè)計[M].北京:高等教育出版社,2020.
[4] 譚浩強.C程序設(shè)計[M].4版.北京:清華大學出版社,2010.
[5] 李文潔,王曉芳.混合教學賦能高校課程思政研究[J].中國電化教育,2021(12):131-138.
[6] 那俊,李丹程.課程思政在計算機類課程中的探索與實踐[J].中國大學教學,2021(3):48-51.
[7] 王巖,朱世敏,張重陽,等.高校“課程思政”在《大學計算機基礎(chǔ)》的實踐探索[J].科技資訊,2021,19(19):126-128.
[8] 李薇,黑新宏,王磊,等.課程思政教育在C語言程序設(shè)計課程中的應(yīng)用[J].計算機教育,2019(11):20-23.
【通聯(lián)編輯:王力】