Chapter 1 What is Programing Paradigm 1



Similar documents
○○學校101學年上學期公民與社會科

FY.DOC

untitled

星宿對中國古代軍事的影響

<4D F736F F F696E74202D20312EB9FEB6FBB1F5B9A4D2B5B4F3D1A7D5E7C1BCA3BAC3E6CFF2D1D0BEBFC9FAB8B4CAD4B5C4BDE1B9B9BBAFC3E6CAD4BFBCBACBCCBDCBF7D3EBCAB5BCF92E BBCE6C8DDC4A3CABD5D>

目 錄 壹 基 本 資 料... 1 貳 課 程 執 行 成 果... 1 一 課 程 目 標 :... 1 二 服 務 進 行 機 構 :... 2 ( 一 ) 機 構 簡 介... 2 ( 二 ) 合 作 模 式... 3 ( 三 ) 服 務 進 行 方 式... 4 ( 四 ) 內 容...

Lorem ipsum dolor sit amet, consectetuer adipiscing elit

<4D F736F F D20AE67BD62B6A4C1FAB0EAB2BEA661B056BD6DAAF0B0EAB3F8A7695F30372E31302E31365F2E646F63>

云 浮 市 总 工 会 学 习 贯 彻 市 委 五 届 九 次 全 会 精 神 全 省 工 会 第 二 季 度 暨 上 半 年 劳 资 纠 纷 研 判 会 召 开 河 源 市 总 工 会 召 开 劳 资 纠 纷 研 判 会 议 湛 江 市 总 工 会 召 开 上 半 年 劳 资 纠 纷 研 判 会

C++ 程式設計

Microsoft PowerPoint - ch6 [相容模式]

<4D F736F F D20CFEEC4BFB5B3C8BACDC5B9A4D7F7B2DFBBAED6B8B5BCCAD6B2E15F315F2E646F63>

(Microsoft Word - 11\244T\246\342\277\337\260l\302\334.doc)

课 程 结 构 : 一 规 章 制 度 撰 写 二 劳 动 合 同 订 立 变 更 三 工 作 内 容 绩 效 管 理 四 违 纪 违 规 问 题 员 工 处 理 2

Microsoft PowerPoint - L17_Inheritance_v4.pptx

gongGaoMingCheng

穨japhkesch.PDF

附件1


丁无悔

Microsoft Word - 吴教普〔2016〕19号.doc


019-

042-

親鸞和懺悔道的哲學

027-

025-

江 苏 科 技 大 学 809 机 械 设 计 全 套 考 研 资 料 <2016 年 最 新 考 研 资 料 > 江 苏 科 技 大 学 810 机 械 原 理 全 套 考 研 资 料 <2016 年 最 新 考 研 资 料 > 江 苏 科 技 大 学 机 械 原

太 原 科 技 大 学 811 西 方 哲 学 史 全 套 考 研 资 料 <2016 年 最 新 考 研 资 料 > 1-1 本 套 资 料 没 真 题 注 : 若 考 前 收 集 到 最 新 考 研 真 题, 我 们 将 免 费 邮 件 发 送 给 购 买 资 料 的 考 生, 若 考 生 自

鲁 东 大 学 702 普 通 心 理 学 ( 含 发 展 心 理 学 ) 全 套 考 研 资 料 <2016 年 最 新 考 研 资 料 > 2-2 普 通 心 理 学 笔 记, 由 考 取 本 校 本 专 业 高 分 研 究 生 总 结 而 来, 重 点 突 出, 借 助 此 笔 记 可 以 大

浙 江 财 经 大 学 891 统 计 学 全 套 考 研 资 料 <2016 年 最 新 考 研 资 料 > 浙 江 财 经 大 学 统 计 学 891 全 套 考 研 资 料...22 浙 江 财 经 大 学 高 等 数 学 601 全 套 考 研 资 料

<4D F736F F D EA16DBB50B3AFA742A4A7AED1A16EBD67A6AEA4CEA8E4C3C0B34EAF53A6E2B1B4AA522D2DB3B9A5BFA9BE5F702E34332D35345F2E646F63>

苏 州 科 技 学 院 825 管 理 学 原 理 全 套 考 研 资 料 <2016 年 最 新 考 研 资 料 > 管 理 学 原 理 真 题 , 历 年 真 题 主 要 用 来 研 究 考 研 的 考 点, 重 点 和 出 题 思 路, 为 考 研 最 重 要

Microsoft Word 司仲敖.doc

重 庆 邮 电 大 学 数 据 结 构 802 初 试 内 部 精 华 资 料 1-1 数 据 结 构 2007, 暂 无 答 案 2-1 考 研 复 习 规 划 指 导 全 年 专 业 课 复 习 计 划, 指 导 考 生 科 学 时 间 分 配, 提 高 备 考 效 率, 免 费 赠 送 2-2

海 军 大 连 舰 艇 学 院 807 有 机 化 学 全 套 考 研 资 料 <2016 年 最 新 考 研 资 料 > 2-2 有 机 化 学 笔 记, 此 笔 记 为 高 分 研 究 生 复 习 所 用, 借 助 此 笔 记 可 以 大 大 提 高 复 习 效 率, 把 握 报 考 院 校 2

喜 临 门 家 具 股 份 有 限 公 司 2016 年 第 二 次 临 时 股 东 大 会 会 议 议 程 会 议 召 集 人 : 公 司 董 事 会 现 场 会 议 时 间 :2016 年 6 月 16 日 ( 星 期 五 ) 下 午 14 时 现 场 会 议 地 点 : 浙 江 省 绍 兴 市

关于调整可充抵保证金证券的通知( )

Microsoft Word - Book 2 月下行.doc

Microsoft Word - Book 11 人道行.doc

山 东 财 经 大 学 431 金 融 学 综 合 全 套 考 研 资 料 <2016 年 最 新 考 研 资 料 > 2-2 金 融 学 笔 记, 由 考 取 本 校 本 专 业 高 分 研 究 生 总 结 而 来, 重 点 突 出, 借 助 此 笔 记 可 以 大 大 提 高 复 习 2-3 金

盐 田 区 2015 年 社 会 建 设 行 动 计 划 2015 年 是 全 面 深 化 改 革 的 关 键 之 年 全 面 推 进 依 法 治 区 的 开 局 之 年, 也 是 十 二 五 规 划 的 收 官 之 年 十 三 五 规 划 的 谋 划 之 年 结 合 省 市 年 度 社 会 工 作

Microsoft Word - _二_-1-2D研習講義-孫藝玨.doc


证券代码: 证券简称:航空动力 公告编号:2011临-【】

zt

Microsoft Word - Book 3 巫山行.doc

Microsoft Word - 【預官_士_考選歷屆試題86~100】.doc

一、银行结售汇业务

田有關田有關田有關田有關田有關田有關田有關田有關田有關田有關田有關田有關田有關田有關田有關田有關田有關田有關田有關田有關田有關田有關田有關田田有關田有關田有關田有關田有關田有關田有關田有關田有關田有關田有關田有關田有關田有關田有關田有關田有關田有關田有關田有關田有關田有關田有關田

<4D F736F F D BEC7A67E2DB5A7B8D52DBB79A4E5AFE0A44FB4FAC5E7BEE3A658A5FE2E646F63>

第 一 部 分 目 录 销 售 管 理 规 范 汇 编... 5 Ⅰ 销 售 资 格 管 理 篇 关 于 保 险 公 司 销 售 人 员 资 格 管 理 的 规 定 关 于 银 邮 代 理 机 构 代 理 资 格 管 理 的 规 定 关 于 银 邮

ttian

国 家 文 件 关 部 门 制 定 并 实 施 与 当 地 经 济 发 展 水 平 和 校 车 服 务 需 求 相 适 应 的 校 车 服 务 方 案, 统 一 领 导 组 织 协 调 有 关 部 门 履 行 校 车 安 全 管 理 职 责 县 级 以 上 地 方 人 民 政 府 教 育 公 安 交


Microsoft Word - 台東縣文學.doc

第 1 頁 C97131 第 一 部 分 : 選 擇 題 ( 佔 54 分 ) 一 單 選 題 ( 佔 36 分 ) 說 明 : 第 1 題 至 第 18 題, 每 題 選 出 一 個 最 適 當 的 選 項, 標 示 在 答 案 卡 之 選 擇 題 答 案 區 每 題 答 對 得 2 分, 答 錯

<4D F736F F D F F355FCCECB5D8BFC6BCBCB5DACEE5BDECB6ADCAC2BBE1B5DAB6FEB4CEBBE1D2E9BEF6D2E9B9ABB8E62E646F6378>

第 1 頁 C97232 第 一 部 分 : 選 擇 題 ( 佔 55 分 ) 一 單 選 題 ( 佔 34 分 ) 說 明 : 第 1 至 第 17 題, 每 題 選 出 一 個 最 適 當 的 選 項, 劃 記 在 答 案 卡 之 選 擇 題 答 案 區 每 題 答 對 得 2 分, 答 錯 或

蘇轍〈黃州快哉亭記〉析論

<4D F736F F D20BBA6CBC9BDCCC8CBA1B A1B BAC5B8BDBCFE2E646F63>

准 尧 角 色 定 位 尧 存 在 周 期 形 态 和 方 式 等 角 度 与 传 统 媒 介 环 境 进 行 比 较 袁 分 析 了 网 络 传 播 中 野 意 见 领 袖 冶 在 分 散 而 微 尧 重 局 部 事 实 细 节 真 实 尧 非 层 级 去 权 力 化 等 方 面 的 形 态 特

一 緒 論 ( 一 ) 研 究 動 機 及 目 的 中 國 唐 代 為 佛 教 發 展 輝 煌 時 期, 其 中 禪 宗 也 是 當 時 鼎 盛 流 行 的 宗 派 之 一 本 文 主 要 在 探 討 馬 祖 道 一 (709~788, 以 下 簡 稱 馬 祖 ) 所 傳 承 的 洪 州 禪 ( 又

由 于 企 业 的 经 营 活 动 具 有 内 在 不 确 定 性, 某 些 财 务 报 表 项 目 不 能 精 确 计 量, 只 能 进 行 估 计 正 是 由 于 这 种 不 确 定 性, 在 会 计 实 务 中, 很 多 财 务 报 表 舞 弊 都 与 会 计 估 计 相 关 对 于 注 册


红塔证券股份有限公司关于

2. 国 营 企 业 实 行 劳 动 合 同 制 暂 行 规 定 和 国 营 企 业 招 用 工 人 暂 行 规 定 1986 年 7 月 12 日, 国 务 院 发 布 国 营 企 业 实 行 劳 动 合 同 制 暂 行 规 定 和 国 营 企 业 招 用 工 人 暂 行 规 定 ( 国 发 19


CIC _Appendix

目 录 福 建 档 案 2015 年 第 6 期 总 第 204 期 佳 作 欣 赏 你 如 此 端 详 的 这 张 迷 惑 的 脸 和 那 历 经 风 雨 和 冰 霜 寂 寞 的 眼 寒 冷 的 冬 天 怕 你 在 夜 里 着 凉 事 业 管 理 亮 点 与 重 点 试 谈 我 省 依 法 治 档

2016年微信3月(3)

两 级 党 委 ( 党 总 支 ) 中 心 组 理 论 学 习 提 出 如 下 安 排 意 见 一 总 体 要 求 高 举 中 国 特 色 社 会 主 义 伟 大 旗 帜, 以 马 克 思 列 宁 主 义 毛 泽 东 思 想 邓 小 平 理 论 三 个 代 表 重 要 思 想 科 学 发 展 观 为

鲤城区保留的区级前置审批事项目录(116项).xls

untitled

关于印发《干部人事档案材料收集归档规定》的通知

<4D F736F F D DB6C0B752A5AD5FA16DBDD7BB79B5A7B8D1A16EAF75B0B0A6D2B8C92E646F63>

国家邮政局2010年部门预算

第 1 頁 C97231 第 一 部 分 : 選 擇 題 ( 佔 55 分 ) 一 單 選 題 ( 佔 34 分 ) 說 明 : 第 1 至 第 17 題, 每 題 選 出 一 個 最 適 當 的 選 項, 劃 記 在 答 案 卡 之 選 擇 題 答 案 區 每 題 答 對 得 2 分, 答 錯 或




彰化縣九十一年運動大會目錄



<4D F736F F D20ACA1B0CAA6A8AA47B3F8A769AED1>

专业技术人员正高级

<4D F736F F D20E1E9C7F8C8CBC0CDB9ABA1B A1B BAC5B9D8D3DAD3A1B7A2A1B6E1E9BDADC7F8CAC2D2B5B5A5CEBBB8DACEBBC9E8D6C3B9DCC0EDCAB5CAA9B7BDB0B8A1B7B5C4CDA8D6AA>

一 本 所 新 闻 1. 最 高 人 民 法 院 发 布 关 于 适 用 < 中 华 人 本 所 诉 讼 与 仲 裁 专 业 委 员 会 与 北 京 工 业 大 学 联 合 主 办 商 标 法 实 务 研 讨 会 民 共 和 国 保 险 法 > 若 干 问 题 的 解 释 ( 二 ) 该 司 法 解

76 宣 城 年 鉴 种 权 专 项 执 法 行 动 农 产 品 质 量 安 全 执 法 年 活 动 ) 组 织 开 展 了 自 查 自 纠 和 集 中 整 治 活 动 印 发 了 关 于 开 展 2009 年 放 心 农 资 下 乡 进 村 宣 传 周 活 动 的 通 知, 组 织 开 展 第 五


語文學習領域─本國語文(國語文)



学 习 贯 彻 中 央 尧 省 尧 市 纪 委 全 会 精 神 专 栏 中 国 共 产 党 第 十 八 届 中 央 纪 律 检 查 委 员 会 第 六 次 全 体 会 议 公 报 渊 2016 年 1 月 14 日 中 国 共 产 党 第 十 八 届 中 央 纪 律 检 查 委 员 会 第 六 次

Microsoft Word - 临政办发12.doc

中共山东省委高校工委

标题

目 录 第 一 部 分 国 家 知 识 产 权 局 概 况 一 主 要 职 能 二 部 门 预 算 单 位 构 成 第 二 部 分 国 家 知 识 产 权 局 2016 年 部 门 预 算 表 一 财 政 拨 款 收 支 总 表 二 一 般 公 共 预 算 支 出 表 三 一 般 公 共 预 算 基

ᄐ↓ᅯᄎ2015ᅣ↑ᄇ﾿ᅢᅤᅯ녜 ̄

科学技术部2013年度部门预算

Transcription:

An Introduction to Programing Paradigm Chase Zhang May 8, 2013

Chapter 1 What is Programing Paradigm 1

CHAPTER 1. WHAT IS PROGRAMING PARADIGM 2 Definition from Wikipedia 1. Object-oriented programming/ 2. Functional programing / 3. Meta programing/

CHAPTER 1. WHAT IS PROGRAMING PARADIGM 3 Python Ruby, JavaScript C Java

Chapter 2 4

CHAPTER 2. 5 1. SmallTalk 2. C++ 3. Java 4. Python 5. Ruby 6. JavaScript 7. Objective-C 8. C#

CHAPTER 2. 6 1 // A C lang s way to do this 2 typedef struct _member { 3 char* name; 4 int sex; 5 int student_id; 6 int class_id; 7 int school_id; 8 int grade; 9 }member; 10 11 // define the functions to generate and destroy structs 12 member* create_member(); 13 void delete_member(member* m);

CHAPTER 2. 7 1 member* m = create_member(); 2 3 // It s not good to allow accessing to properties directly 4 m->sex = 12431234; 5 m->grade = 3000; 6 7 // You should uses setter functions 8 void set_member_name(member* m,char* name); 9 void set_member_sex(member* m,int name); 10 void set_member_student_id(member* m,int name); 11 void set_member_class_id(member* m,int name); 12 void set_member_grade(member* m,int name);

CHAPTER 2. 8 1 //redefine struct 2 3 typedef struct _member { 4 char* name; 5 int sex; 6 int student_id; 7 }member; 8 9 //define getter functions 10 11 char* get_member_name(member* m); 12 int get_member_sex(member* m); 13 int get_member_student_id(member* m); 14 int get_member_class_id(member* m); 15 int get_member_grade(member* m);

CHAPTER 2. 9 C 1. 2. set_member_xxx get_member_xxx 3. set_xxx get_xxx 4. member 5. 10 Let's solve these problems!

CHAPTER 2. 10 See Ruby s Way 1 class Member 2 def initialize(name,student_id) 3 # Hello everyone, I am the initializer 4 @name = name 5 @student_id = student_id 6 @sex = sex 7 end 8 9 def name=(name) 10 # do something here to make sure a valid name is given 11 @name = name 12 end 13

CHAPTER 2. 11 14 def name 15 @name # you do not need a reference to the instance here 16 end 17 end 18 19 # generate a new member, the initialize function will be called automatically 20 a_member = Member.new("Chase Zhang","0709xxxx","boy") 21 a_member.name = "Hello" 22 puts a_member.name

CHAPTER 2. 12 Why this way? 1. 1 2. 4 3. 4. 3 5.

CHAPTER 2. 13 1 class Member 2 # magics here!add only one line, you get 3 pairs of setters and getters 3 # it s the magic of metaprograming that we ll talk about later 4 attr_accessor :student_id,:name,:sex 5 def initialize(name,student_id,sex) 6 @name = name # this is a property 7 @student_id = student_id 8 @sex = sex 9 end 10 end 11 a_member = Member.new("Chase Zhang","0709xxxx","boy") 12 a_member.student_id = "01111111" 13 puts a_member.student_id # print a_member.student_id

CHAPTER 2. 14 / 1. / 2.

CHAPTER 2. 15 1 # all instances of the same class shared the functions 2 # but every instance of class is seperated 3 # the interperetor knows whose perperties to use 4 # and returns the correct value 5 6 a = Member.new("Chase Zhang","xxxxxxx","boy") 7 b = Member.new("Sean Lee","xxxxxxxx","boy") 8 9 puts a.name 10 # Chase Zhang 11 12 puts b.name 13 # Sean Lee

CHAPTER 2. 16 Ruby Python C++ / new

CHAPTER 2. 17 1 class Vec2 2 attr_accessor :x,:y 3 def initialize(x,y) 4 @x=x 5 @y=y 6 end 7 def +(v2) 8 x = @x + v2.x 9 y = @y + v2.y 10 Vec2.new(x,y) 11 end 12 end 13 v1 = Vec2.new(1,3) 14 v2 = Vec2.new(2,5) 15 v1+v2 # we get Vec2(3,8)

CHAPTER 2. 18

Chapter 3 Magics Magic 19

CHAPTER 3. MAGICS 20 1 int sort_member(const void* member1,const void* member2) 2 { 3 member* m1 = (member*) member1; 4 member* m2 = (member*) member2; 5 return strcmp(m1->name,m2->name); 6 } 7 int main(void) 8 { 9 //... 10 qsort(member_list, 11 sizeof(member_list)/sizeof(member*), 12 sort_member); 13 return 0;}

CHAPTER 3. MAGICS 21 1 # ruby 2 3 member_list.sort do x,y 4 x.name <=> y.name 5 end 6 # that s all

CHAPTER 3. MAGICS 22 C 1 void print_member_if_sex(member* m,int sex) 2 { 3 if(sex==0){ 4 printf("%s\n",m->name); 5 } 6 } 7 8 int main(int argc, const char *argv[]) 9 { 10 //... 11 int i; 12 int sex = 0; // Zero stands for boy

CHAPTER 3. MAGICS 23 13 for (i = 0; i < sizeof(member_list)/sizeof(member*); i++) { 14 print_member_if_sex(member_list[i],sex); 15 // You must past the varible sex into the function 16 } 17 return 0; 18 }

CHAPTER 3. MAGICS 24 1 sex_wanted = "boy" 2 3 member_list.each do member 4 if member.sex == sex_wanted 5 puts member.name 6 end 7 end 8 # that s all

Chapter 4 Meta 25

CHAPTER 4. META 26

CHAPTER 4. META 27 1 class Member 2 attr_accessor :student_id,:name,:sex 3 4 5 # magic >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 6 7 def self.field(sym,range) 8 # a program to program 9 define_method sym do 10 @student_id[range] 11 end 12 end 13 14 # magic <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 15

CHAPTER 4. META 28 16 def initialize(name,student_id,sex) 17 @name = name 18 @student_id = student_id 19 @sex = sex 20 # magic > 21 Member.field :school_id, 0..1 22 Member.field :grade, 2..3 23 # magic < 24 end 25 end 26 27 c = Member.new "Chase Zhang","0709xxxx","boy" 28 29 puts c.school_id # 07 30 puts c.grade # 09

CHAPTER 4. META 29 1 # before magic 2 puts 1+1 # 2 3 4 # magic >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 5 class Fixnum 6 alias :old_plus :+ # new name for plus operator 7 8 def +(value) 9 0 10 end 11 end 12 # magic <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

CHAPTER 4. META 30 13 14 # after magic 15 puts 1+1 # 0

Chapter 5 Thank you and... 31

CHAPTER 5. THANK YOU AND... 32 1. Ruby 2. Dive into Python 3. Ruby Some Books Some websites 1. http://ruby.learncodethehardway.org/ 2. http://learnpythonthehardway.org/ 1. JavaScript/CoffeeScript 2. Lisp Some Languages