目前分類:我與程式 (10)

瀏覽方式: 標題列表 簡短摘要
上學期用台大開放式課程聽了幾堂程式課,對C#產生興趣,但一直沒把剩下的課程看完,大概之後有時間再補吧。總之,無意中又發現一個程式學習應用程式SoloLearn,所以選擇C#單元開始學習,這款app設計和多鄰國有點像,都挺好上手的,目前學到第二課,以下是學習到的部分:

第一課
▪C#是一個在.Net架構上運行的程式語言
▪.Net Framework包含CLR(Common Language Runtime)和.Net Framework class library

第二課
▪C#分為變數名字和變數型式,變數名字需以文字或底線開始
▪內容最好以對「程式內容的描述」作為開始
▪在使用變數之前需要事先宣告
▪初級程式宣告碼(如附件)

附件:
▪int(整數)
▪float(小數)
▪double(小數點後兩位)
▪char(單字母)
▪bool(真或假)

慕沙 發表在 痞客邦 留言(0) 人氣()

介紹完程式設計背景和C#等的優缺點後,進入了整合開發環境的介紹,一開始是綱要。

1.整合發展環境初步與第一支C#程式
2.第二支C#程式與錯誤訊息
3.程式大略解說
4.偵錯器使用初步
5.基本輸入與輸出
6.剪貼視窗內容

課堂使用的整合開發環境是Visual Studio 2012,不過程式寫作大部分和最新版本還是互通的,所以不需擔心,台大的學生可以上網拿到授權軟體,外面的人想拿到這個軟體,或許要向微軟購買,以下是官網。


老師分享,如果同學在程式寫作過程遇到了撞牆期,可以上Google引擎打關鍵字「C#」和「你的問題」。

慕沙 發表在 痞客邦 留言(0) 人氣()

傳統高階程式語言架構為何難以達成跨平台?

因為利用高階程式語言寫成的原始碼,要先經過編譯器轉成一個二進碼.obj檔,很多函式的obj檔在要執行之前要連結在一起成為一個執行檔.exe檔,然後再交給平台執行。

所以不同平台如apple和google,google如果使用傳統語言很難把Compile的執行程式放在到apple去執行,因為執行的是.exe檔,.exe檔的架構是每種平台都不一樣的。

但是.NET的架構,不管是哪種語言都可以把它轉為一個.NET架構的語言叫作CIL,是一個共同仲介語言的密碼集。電腦裡只要有能執行CIL的軟體,就可以跑任何由.NET產生的程式,而達成跨平台的效果。

.NET的優缺點如下:

●優點
跨語言,跨平台
自動處理停用記憶回收
共通資料形別

慕沙 發表在 痞客邦 留言(0) 人氣()

這堂課學到的基礎程式設計介紹分成下列大綱:

變數、運算式與算符
流程控制
陣列
函式
物件
視窗

其中的物件對視窗系統的普及有重要貢獻,而要寫視窗需要有物件觀念。

而老師也提到了軟體程式設計的方法論(methodology),也就是如何寫好一個程式。

C#程式語言的特點如下:

慕沙 發表在 痞客邦 留言(0) 人氣()

老師接著提到了一部知名的二戰電影-模仿遊戲,故事的主人翁圖靈最後從譯密機設計出來的,就是以0與1組成的第一代電腦,不過由於用自然語言無法有效地和電腦溝通,於是有人設計出組合語言,也就是第一代電腦程式,第二代電腦程式是FORTRAN,中文名稱是福傳,後來又發展出第四代R語言和SQL語言,不過由於難懂,後來又有人發展了C語言。

C語言是程式語言的里程碑,因為它雖然是高階語言,但是具備了低階語言的效率,被廣泛使用,惟一的問題是錯誤很多。發現這件事的人於是發展出物件導向方式寫他的碩士論文,錯誤不多,但很慢,後來他畢業以後進入Google,把C語言結合物件導向,發展了C++語言,++是第二代C語言的意思。

後來網際網路開始發展,C++和跨平台的程式語言JAVA開始競爭,有人製作一個平台,叫作byte code,可把JAVA翻譯成byte code,於是C++的擁護者也不甘示弱,設計出. net,是任何語言都可以執行的平台,翻譯成C#語言,#代表四個+連起來,代表第三代。

再來是基礎程式設計介紹篇~




慕沙 發表在 痞客邦 留言(0) 人氣()

今天開始看台大開放式學程的「計算機程式設計」課程影片,開頭時,影片裡的教授先放給學員看兩部Ted影片,一部叫作「未來的工作是什麼樣子?」,另一部是「成長的關鍵?與電腦競爭」。

內容大致上是:例行工作都可能被電腦取代,電腦的能力愈來愈強,比如Deepblue就打敗蘇聯棋王,但是你打不贏它,怎麼辦?「如果打不贏它們,就加入它們。」要加入它們,就要懂得和電腦溝通,要先了解電腦大概的架構,用電腦語言和它溝通,這就是程式設計。

該課程的目標有三個,第一個是學會C#語言,學會高階語言之一,以後就具備自學的能力;第二個是運算思維,能夠規劃解法、設定問題,以及擁有偵錯能力;第三個則是讓他人了解,這裡指的「他人」是非程式設計專業的人。

老師一開始先介紹計算機架構-馮紐曼計算機架構。許多程式語言都可以用這個架構執行,最新的計算機架構則是平行計算機架構,但這已和馮紐曼的架構愈來愈不一樣了。

馮紐曼計算機架構裡的CPU包含實際運算的ALU和控制單元,由包含在封裝的晶片裡面的電晶體執行,晶片愈來愈小,電晶體愈來愈多,有助於運算的執行。CPU之外則有負責儲存的記憶系統。計算機的限制是沒有自由意志,對於自然語言理解不進步,因此它的能力依賴一步步的說明,即演算法。而應用程式設計則是專業知識加上程式設計的能力。

下一篇是程式的歷史~


慕沙 發表在 痞客邦 留言(0) 人氣()

這篇仍是Python語法的部分~

(計算篇)

Exponentiation——冪,又稱指數,符號為**,舉例來說,若sample=1**2,那print(sample)就為1

Python Integer Division——Python第三版會自動把被除的整數變成小數,但第二版不會

Plus—Equals Operator——可用於數字和字串,用在數字時,可在既有的數值上增加數值,用於字串上時,可表現成Python String Concatenation的功能(詳見<數字與字串篇>)

Modulo Operator——為除式之後的餘數,符號為%,比如:zero=8%4,nonzero=12%5

Python Variables——使用在儲存程式所使用的數據,數據可以是各種不同形式。每一種Variable有一個名字,這個名字可包含字母、數字和底線,但名字不能以數字作為開頭,=符號用來分配數值予名字。原始數值可以被重寫,比如:car_weight=1000  car_weight=2000

慕沙 發表在 痞客邦 留言(0) 人氣()

最近開始用Codecademy的APP學習Python語法,以下是目前的學習心得:

(數字與字串篇)

Python Integers——數字,不需引號,正負數與零均可,不含小數點

Python print () Function——為最後呈現的語法,print()中,如果為字串,加引號,為數字,不加引號

Python String Concatenation——可串聯字串,用加號串聯

Strings——字串

Floating Point Numbers——有小數點的數字

慕沙 發表在 痞客邦 留言(0) 人氣()

最近快要考試了,可是我還是一直東摸摸西摸摸,今天看了羅胖寫的《我懂你的知識焦慮》,裏頭收錄的張泉靈的一篇文章馬上打動了我的知識焦慮,她提到了內容經濟的未來發展,她提到了互聯網,她提到了國外一個為了讓孩童自己寫程式所成立的網站,叫做"Scratch"。

我自認自己的寫程式等級在初心者的剛創角等級,從前的我只愛玩電動(不良示範),但如今的我極渴望學會寫程式,而且不是學會而已,還要能創造出自己的代表作,這,就是我的野心!

事不宜遲,我立刻上網註冊了一個Scratch帳號,足甘心的是,它有繁體中文版喔!

我同時發現目前已經在使用的一個開放式學習網站「均一教育平台」有在教人怎麼使用Scratch(之前我用它來學理化),所以我點擊進去看,從「Scratch主題創作坊  主題一:互動節日卡片」開始看起。

按下右上角的Create鍵,就可以開始你自己的專案了!

剛開始使用,就發現了Scratch的一個缺點,那就是儲存速度太慢了,讓我想到以前玩的「尼奧世界」(這款網站式遊戲在我國中時代很流行),每當添購了一項家具為尼奧屋裝潢更新時,總在大塞車,我覺得速度是未來這個網站可以改進的地方之一。

Scratch第二個缺點就是常常從登入跳出來,而且頁面也常常當掉。

之前看書時,大概知道寫程式是需要邏輯的,簡單來說不是隨便寫的,Scratch一個很棒的地方是,它把這個邏輯內化成為好玩的積木拼圖遊戲,讓人可以愛怎麼拼就怎麼拼,因為太好玩了,配上均一教育平台的教學,忍不住做了一個惡搞卡片。

 

以下是卡片網址:https://scratch.mit.edu/projects/259746744/

 

各位客倌就玩看看吧!

 

 


慕沙 發表在 痞客邦 留言(0) 人氣()

今天再度打開了《C語言教學手冊》這本書,打算自己來看書學寫程式。

這本書所使用的教學軟體是Dev C++。

這本書的前言附有幾個網址,若在學習C語言時發生困難,就可以到以下網站求助:

1. http://www.bloodshed.net/devcpp-ml.html   (Dev C++的討論區)

2. http://bbs.openfind.com.tw  (「電腦網路」→「程式設計」→「電腦程式語言」討論版)

3. http://www.cplusplus.com/ref/  (C和C++函數庫的解說)

 

1.1.1

C語言是誰發明的這件事我就先略過不提了,反正有興趣的人可以Google。

所以挑重點的部分來整理:

●原始程式碼編輯完畢,要轉換成機器語言(機器碼,machine code)

●所有的程式語言中都附有轉換程式。轉換程式分兩種:直譯器(interpreter)與編譯器(compiler)。

●直譯器:將程式逐行翻譯,沒有錯誤便直接執行,碰到錯誤就會立刻中斷。優點是占用的記憶體較少,僅需存取原始程式即可。缺點是翻譯時間會延遲執行時間,效率也較低。屬於直譯器的程式語言有Basic。

●編譯器:先檢查所有的程式碼是否合語法,才編譯成可執行檔。當原始程式每修改一次就需要再重新編譯,然而執行檔執行時不需再翻譯,因此執行速度高於直譯程式。常見的編譯式程式語言有C、Cobol、Pascal等。C的執行效率與使用普遍性遠高於其他程式語言。

●C語言對硬體的控制能力佳,同時易於除錯、撰寫,而且很容易和組合語言連結,利用低階語言的特點來提高程式碼的執行效率。

●C語言的其他優點:靈活的程式控制流程、可攜性佳、是為程式設計師所設計的語言;C語言的缺點:需要用心學習。

1.1.2

基本上是一些背景知識,挑重點整理:

●C++或者是Java均以C為根基

 

慕沙 發表在 痞客邦 留言(0) 人氣()