分支宣告與程式設計 黃聰明 國立臺灣師範大學數學系

Slides:



Advertisements
Similar presentations
第一單元 建立java 程式.
Advertisements

教师手册 教师职业守则(全体教师) 中文教学工作细则(中文、双语教师) 中文教师业绩评估(中文、双语教师)
丁 频 农业及食品饮料行业高级分析师 贺菊颖 中药行业分析师 王友红 化学制药及生物制药行业分析师 路 颖 商业贸易行业首席分析师 1.
黃聰明 臺灣師範大學數學系 MATLAB 基本功能介紹 黃聰明 臺灣師範大學數學系.
请说出牛顿第一定律的内容。.
淡水泉投资:安全稳健低回撤 长期业绩卓著 产品基本信息 基金经理简介 产品全称 银河证券-盘晟淡水泉成长1号 基金经理 赵军 受托人
全面预算管理培训 北大纵横管理咨询公司 2003年10月.
我国的宗教政策 第七课第三框.
1012 MATLAB 教學 彭奕翔 2013/02/27.
数学软件 Matlab —— 二维平面作图 —— 三维空间作图.
第 5 章 流程控制 (一): 條件分支.
Chapter 4 流程控制.
MATLAB簡介 MATLAB程式設計《入門篇》
第1章 MATLAB概述 1.1 MATLAB 7.x简介 是Matrix Laboratory的缩写,它将计算、可视化和编程功能于一身,是一个开放的基于矩阵的交互式开发系统。主要用于数学计算、系统建模与仿真、数据分析与可视化等。(Mathworks始创于1984) MATLAB的系统结构.
MATLAB介紹.
Visual C++ introduction
黃聰明 國立臺灣師範大學數學系 其它的資料型態與繪圖型態 黃聰明 國立臺灣師範大學數學系 T.-M.Huang.
張智星 (Roger Jang) 清大資工系 多媒體檢索實驗室
StonyBrook U
第4章 选择结构程序设计 4.1 选择结构和条件判断 4.2 用if语句实现选择结构 4.3关系运算符和关系表达式
第4章 选择结构程序设计 4.1 选择结构和条件判断 4.2 用if语句实现选择结构 4.3关系运算符和关系表达式
第四章 流程控制(一) if,if-else 與 switch
增员有方 L区 特别事务助理总监陈蕴梅 ACS ALS.
范洪源 臺灣師範大學數學系 MATLAB 基本功能介紹 范洪源 臺灣師範大學數學系.
C 程式設計— 控制敘述 台大資訊工程學系 資訊系統訓練班.
Matlab教學 Speaker:林昱志 Date:2012/10/25.
數學與電腦 的初相識 汪群超 個人網址: 變有不可者三,有不可不變者三: 能力未至不可變也、 學識未敷不得變也、 功侯未到不能變也。
Java程式概觀.
Application of Matlab Language
新觀念的 VB6 教本 第七章 讓程式轉彎的控制敘述.
PHP 程式流程控制結構.
程式流程控制 方煒 台大生機系.
研究地月距離的變化.
黃聰明 國立臺灣師範大學數學系 MATLAB 基本功能介紹 黃聰明 國立臺灣師範大學數學系
變數命名 保留字(Reserved Word)
邏輯關係運算 == 等於 & 且 (logical and) ~= 不等於 | 或 (logical or) < 小於
Introduction to MATLAB
数学建模与数学实验 MATLAB作图.
范洪源 臺灣師範大學數學系 分支宣告與程式設計 范洪源 臺灣師範大學數學系.
数据结构与数据库 习题课(2) 2016年11月25日.
P ANNUAL REPORT DESIGN BY PENELOPE ENTER THE TIME
第一單元 建立java 程式.
MATLAB介绍 Matlab基本命令介绍 Matlab矩阵运算 Matlab控制流 Matlab图像处理工具箱 实习题讲解.
Peking University SAS Club
第三章 資料型態與輸出控制 本章學習目標 認識Matlab的基本資料型態 練習資料型態的轉換 學習如何控制Matlab的輸出格式
MATLAB 程式設計入門篇 動畫製作.
小结 郭清溥.
第九单元 第1课 实验 Matlab动画 1.洛仑兹非线性奇异方程所描述的无序运动 2.作y=sin(x)的程序动画(1)
JAVA 程式設計 資訊管理系 - 網路組.
第二单元 第2课 Matlab程序控制结构 1.顺序结构 2.选择结构 3.循环结构.
MATLAB 程式設計入門篇 三維立體繪圖 (part1)
三維繪圖 Helix t = 0:pi/50:10*pi; % linspace(0,10*pi,500); figure plot3(sin(t),cos(t),t) grid on axis square Remark: zlabel, view, surf.
第二章 MATLAB编程与作图 2.1 程序设计 2.2 作图 2.3 在线帮助和文件管理 2.4 习题 2019年4月23日
人生致命的八個問題 聽聽優美的音樂!看看美景! 想想生活中周遭的問題, 也許心胸會更開闊,人生更加美好!! yy (2006,May 10)
第四章 控制结构 1、顺序控制结构 2、选择结构 3、循环结构.
張智星 (Roger Jang) 台大資工系 多媒體檢索實驗室
第二节 MATLAB 图形处理 内容: §1 二维图形显示 §2 图形可视编辑工具 §3 三维图形显示 §4 视角变换与三视图
PHP程式設計 五、程式流程控制結構 建國科技大學 資訊管理學系 饒瑞佶.
11月份豆油价格区间震荡 宏源期货农产品团队 张磊 2011年10月29日.
本章主題 C++的程式結構 資料型態與宣告 算術運算 簡易的輸入輸出指令 程式編譯(Compile)的過程與原理.
數學遊戲二 大象轉彎.
第6章 PHP基本語法介紹.
MATLAB 結構化財務程式之撰寫 MATLAB財務程式實作應用研習 主題五 資管所 陳竑廷
ABAP Basic Concept (2) 運算子 控制式與迴圈 Subroutines Event Block
LF Vendor Monthly Report
正弦函数余弦函数的性质 (二) 执教:湖南华容一中 黄奇卫老师.
張智星 清大資工系 多媒體檢索實驗室 MATLAB 程式設計入門篇 程式流程控制 張智星 清大資工系.
ABAP Basic Concept (2) 運算子 控制式與迴圈 Subroutines Event Block
Presentation transcript:

分支宣告與程式設計 黃聰明 國立臺灣師範大學數學系 min@math.ntnu.edu.tw 黃聰明 國立臺灣師範大學數學系 min@math.ntnu.edu.tw http://math.ntnu.edu.tw/~min 分支宣告與程式設計 T.-M.Huang T.-M.Huang

3-1 由上而下的設計方法 開始 結束 陳述嘗試解決的問題 測試完成的MATLAB程式 定義輸入與輸出 把演算法轉換成MATLAB宣告式 由上而下的設計流程 開始 結束 陳述嘗試解決的問題 測試完成的MATLAB程式 定義輸入與輸出 分解成小問題 把演算法轉換成MATLAB宣告式 設計演算法 撰寫虛擬碼 T.-M.Huang

3-3 邏輯資料型態 邏輯資料型態 關係運算子 邏輯運算子 true false 運算子 說明 == 等於 ~= 不等於 > 大於 >= 大於或等於 < 小於 <= 小於或等於 邏輯運算子 運算子 說明 & AND && 快速求值的AND | OR || 快速求值的OR xor 互斥OR ~ NOT 分支宣告與程式設計 T.-M.Huang

真 值 表 & && | || xor ~ F T 分支宣告與程式設計 T.-M.Huang

3-4 分支 (Branching Command) 條件指令 if-else switch switch_expr case case_expr, statements case {case_expr1, case_expr2,...} statements ... otherwise, statements end switch - case - otherwise if expression statements elseif expression statements else statements end 分支宣告與程式設計 T.-M.Huang

範例:一元二次方程式 輸出二次方程式的根 輸入係數a、b、c 不同的實數根 重複的實數根 複數根 分支宣告與程式設計 T.-M.Huang

disp ('This program solves for the roots of a quadratic '); disp ('equation of the form A*X^2 + B*X + C = 0. '); a = input ('Enter the coefficient A: '); b = input ('Enter the coefficient B: '); c = input ('Enter the coefficient C: '); % Calculate discriminant discriminant = b^2 - 4 * a * c; % Solve for the roots, depending on the value of the discriminant if discriminant > 0 % there are two real roots, so... x1 = ( -b + sqrt(discriminant) ) / ( 2 * a ); x2 = ( -b - sqrt(discriminant) ) / ( 2 * a ); disp ('This equation has two real roots:'); fprintf ('x1 = %f\n', x1); fprintf ('x2 = %f\n', x2); elseif discriminant == 0 % there is one repeated root, so... x1 = ( -b ) / ( 2 * a ); disp ('This equation has two identical real roots:'); fprintf ('x1 = x2 = %f\n', x1); else % there are complex roots, so ... real_part = ( -b ) / ( 2 * a ); imag_part = sqrt ( abs ( discriminant ) ) / ( 2 * a ); disp ('This equation has complex roots:'); fprintf('x1 = %f +i %f\n', real_part, imag_part ); fprintf('x1 = %f -i %f\n', real_part, imag_part ); end

範例:根據月份來判斷其季別(1) for month = 1:12 switch month case {3,4,5} season = 'Spring'; case {6,7,8} season = 'Summer'; case {9,10,11} season = 'Autumn'; case {12,1,2} season = 'Winter'; end fprintf('Month %d ===> %s.\n', month, season); 分支宣告與程式設計 T.-M.Huang

範例:根據月份來判斷其季別(2) month = {'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep'}; for i = 1:length(month) switch month{i} case {'Mar','Apr','May'} season = 'Spring'; case {'Jun','Jul','Aug'} season = 'Summer'; case {'Sep','Oct','Nov'} season = 'Autumn'; case {'Dec','Jan','Feb'} season = 'Winter'; end fprintf('%s is %s.\n', month{i}, season); 分支宣告與程式設計 T.-M.Huang

額外的繪圖功能 x = -2.5*pi:pi/100:2.5*pi; y1 = sin(2*x); y2 = 2*cos(2*x); plot(x, y1,'ro-.'); hold on plot(x, y2, 'gx:'); hold off legend('sin(2x)','2cos(2x)','Location','NorthWest'); text(1.5, 0.5, 'sin(2x)') text(3.3, 1.5, '2cos(2x)') xlabel('x'); ylabel('y'); title('Plot figure of sin(2x) and 2cos(2x)'); set(gca,'xtick',[-2*pi -pi 0 pi 2*pi]) set(gca,'xticklabel',{'-2 pi','- pi','0','pi','2 pi'}) 分支宣告與程式設計 T.-M.Huang

額外的繪圖功能 axis([-2*pi 2*pi -2.5 2.5]) 分支宣告與程式設計 T.-M.Huang

額外的繪圖功能 axis equal axis square axis normal 分支宣告與程式設計 T.-M.Huang

額外的繪圖功能 axis off axis on 分支宣告與程式設計 T.-M.Huang

x = -2.5*pi:pi/100:2.5*pi; y1 = sin(2*x); y2 = 2*cos(2*x); figure(1) plot(x, y1,'ro-.'); title('plot sin(2x)'); figure(2) plot(x, y2, 'gx:'); title('plot 2 cos(2x)'); 分支宣告與程式設計 T.-M.Huang

subplot(m,n,p) x = -2.5*pi:pi/100:2.5*pi; y1 = sin(2*x); y2 = 2*cos(2*x); z1 = exp(x/10); z1 = z1.*y2; z2 = y1.*y2; subplot(2,2,1) plot(x, y1,'r'); title('plot sin(2x)'); subplot(2,2,2) plot(x, y2, 'g'); title('plot 2 cos(2x)'); subplot(2,2,3) plot(x, z1, 'b'); title('plot 2cos(2x)exp(x/10)'); subplot(2,2,4) plot(x, z2, 'm'); title('plot 2cos(2x)sin(2x)'); 分支宣告與程式設計 T.-M.Huang