高超技能學習
## 有什麼技能比大多人(超過70%以上)更好?
- 書法,雖然自己水準不高,但考慮到書法的普及率過低,我還是有自信在這一領域可以超過絕大多數人的。
- 作品嘛。。由于水準不高還沒有寫過作品,目前隻有幾張這幾天寫的還沒扔的練習了。
## 針對這個技能的擷取有什麼成功的經驗?
首先需要一個正确的感興趣的學習方向,如先學習楷書是正确的方向,但是楷書名家如此之多,要學習誰?歐顔柳趙或是其他書家的?
在我選擇的時候我選擇了我最感興趣最喜歡的書體,有着興趣的驅動,使我不至于覺得枯燥而放棄。
此外還需要長久的練習,通過不斷的練習逐漸熟悉提按,筆法,結構,章法,水準才能不斷提高。
結合對于計算機的學習,我認為我更需要長久的練習。在之前按部就班地學習,做作業,并未感到自己努力不足,可是看到了學長的感想我意識到我的努力還遠遠不夠,特别是知道了輪子哥說他在學校一天要敲10小時代碼時,我更覺得我需要保持每天一定的代碼量。
C語言學習的調查
## 怎麼學習C語言的?
- 通過教材和課程學習,課下通過作業練習。另外有時候會通過慕課網學習(但是沒花太多時間)
## 與高超技能相比,C語言的學習有什麼經驗和教訓?
- 練習的過少。是以我決定要保證每日代碼量。
## 目前為止估算自己寫過多少行C代碼?了解的情況如何?
- 大緻在2000行左右,感覺自己還沒有完全掌握,還有部分課程沒教到的地方不了解。決定在假期去了解。
## 學過了C語言,你分的清數組指針,指針數組;函數指針,指針函數這些概念嗎?
- 分的清數。
- 數組指針是指向數組的指針。
- 函數指針是指向函數的指針。
- 指針數組是類似數組的指針的集合。
- 指針函數就是函數,不過其中有指針。
學過了C語言,你明白檔案和流的差別和聯系嗎?如何區分文本檔案和二進制檔案?如何程式設計操作這兩種檔案?
- 檔案和流的關系我想用水箱來類比,檔案就是水箱,存儲這"流“這種水,當需要讀取資料時,水龍頭開啟,流便如水一般流出來。
## 文本檔案和二進制檔案,差別在于文本檔案是可讀懂的,而二進制檔案無法讀懂。
至于如何編譯和操作。。。我現在還不會。。。
## 學過了C語言,你知道什麼叫面向過程程式設計嗎?它解決問題的方法是什麼?
- 面向過程指将程式分成一個一個的過程,逐個設計。運用了子產品化的思想方法。
## 在C語言裡面,什麼是子產品?你寫過多個源檔案的程式嗎?
子產品指在整個程式中實作一部分功能的一個個函數。
- 暫時還沒有寫過多個源檔案的程式嗎。
## 學過了C語言,你知道什麼是“高内聚,低耦合”嗎?這個原則如何應用到高品質程式設計中?
- 知道。這個原則要求一段功能代碼要被分為多個小塊,每個小塊獨立工作互不幹擾,小塊間協作可以實作特定功能。
- 在程式設計盡量把每一個小功能分為一個個函數,最後通過main函數調用。
## 學過了C語言,你如何把數組A的内容複制到數組B中?如何查找整數數組A中有沒有數字5?如何對整數數組A進行排序(從小到大,從大到小)?寫出相應的程式。
數組A的内容複制到數組B:
``
#include<stdio.h>
#include<string.h>
#define A 1000
#define b 2000
int main()
{
char arraya[A],arrayb[B];
int m,n,i,j;
gets(arraya);
gets(arrayb);
n=strlen(arraya);
m=strlen(arrayb);
for(i=m,j=0;i<=m+n;i++,j++)
arrayb[i]=arraya[j];
printf("%s",arrayb);
return 0;
}
``
- 查找整數數組A中有沒有數字5
``
#include<stdio.h>
#include<string.h>
#define NUMBER 1000
int main()
{
char array[NUMBER];
int n,i;
int judge=0;
scanf("%s",array);
n=strlen(array);
for(i=0;i<n;i++)
{
if(array[i]=='5')
{
judge=1;
break;
}
printf("%d",judge);
}
if(judge==0)
printf("no");
else if(judge==1)
printf("yes");
return 0;
}
``
- 整數數組A進行排序(由小到大)
``#include<stdio.h>
#define num 10
int main()
{
void swap(int a[],int n);
int i;
int a[num];
scanf("%s",a);
swap(a,num);
return 0;
}
void swap(int a[],int n)
{
int temp,i,j;
for(j=0;j<n-1;j++)
for(i=0;i<n-1;i++)
{
if(a[i]>a[i+1])
{
temp=a[i];
a[i+1]=a[i];
a[i]=temp;
}
}
}``
若要由大到小,隻需要對swap函數微調
``void swap(int a[],int n)
{
int temp,i,j;
for(j=n-1;j=0;j--)
for(i=n-1;i=0;i--)
{
if(a[i]>a[i-1])
{
temp=a[i];
a[i-1]=a[i];
a[i]=temp;
}
}
}``
- 寫一個程式,統計自己C語言共寫了多少行代碼。
`` #include<Windows.h>
#include<string.h>
#include<stdio.h>
int main()
{
FILE *p;
int n;
n=0;
char add[100],a[100];
gets(add);
p=fopen(add,"r");
while(fgets(a,100,p))
n++;
}
printf("%d",n);
fclose(p);
return 0;
}``
github的連結。。我現在在上傳時出了問題,等我解決好之後會補上。
你知道什麼是斷點嗎?給出自己調試程式的例子
程式執行到斷點會停止,這樣可以找出錯誤。
對比C語言的學習,你對《面向對象程式設計》的學習有什麼具體目标?如何通過刻意訓練提高程式設計能力和培養計算思維?如何通過“做中學”實作你的目标?
我想在這門課程的學習中打好程式設計的基礎,做一些小程式,讓自己逐漸成為一個真正的coder,,而不僅僅是一個隻會做題的學生。我覺得要學好程式設計,提高程式設計能力和計算思維,隻有不斷地練習。之前我認為看書比敲代碼重要,是以看課本的時間多于程式設計的時間,可是到了考試時,一些文法規範我居然記不清楚了,知道做題的思路,但是不确定是否合乎文法規範。這之後我決定保證敲代碼的量,将技能變得精熟。做中學,側重于在實踐中成長,在于不依靠别人的幫助自己解決問題。我認為我應該在遇到困難時先自己嘗試解決,在自己解決不了的時候再請教他人。
畢業後大多數人從事的工作的要求是“提筆能寫,開口能說,問策能對,遇事能辦”,非常重要的技能是公文寫作能力,你覺得自己寫作能力如何?要怎麼提高?
我覺得我的寫作能力還有很多需要提升。
在以前的寫作中。我會想怎麼用小衆的例子,怎麼寫華麗的排比,但是知道聯考前一段時間我才漸漸覺得,寫作應該追求表意清晰,一切例子,詞句最終都要為要講的事情,要講的道理服務。很多聯考優秀文章,詞句華麗,舉的例子聞所未聞,令人感慨其例子的積累,可是細看卻還是沒有在文章的深度或者邏輯上有動人之處。
我也讀到過一些寫得很好的文章,它們有的或許沒有鮮亮的詞句,有的或許隻是列舉人盡皆知的例子,可它們的核心卻是如此地令人折服。是以,文章的好壞,首先便是要看這篇文章所闡述的道理是否表達地清晰準确,能說服讀者,其次才是詞句的比拼。是以我今後練習寫作會注重文章的結構和邏輯,確定讀者能很容易地了解我所傳達的意思。