鄭士康 國立台灣大學 電機工程學系/電信工程研究所/ 資訊網路與多媒體研究所

Slides:



Advertisements
Similar presentations
1 第二讲 C++ 编程基础. 2 主要内容 C++ 语言概述 C++ 编程基础 数据的简单输入输出 C++ 的发展 C++ 源程序结构与书写规范 C++ 编译器和集成开发环境.
Advertisements

第一單元 建立java 程式.
现代电子技术实验 ——综合实验之单片机部分
物件導向語言基礎 Chapter 4 認知 學完本章應了解何謂常數、變數。 了解有哪些運算式、運算子和基本輸入、輸出指令。
C#程序设计案例教程 第3章 程 序 结 构.
第一章 C语言概述 计算机公共教学部.
JAVA 程式設計 資訊管理系 - 網路組.
第 5 章 流程控制 (一): 條件分支.
趙靖宇時間-專治你的Monday blue
2.1 基本資料型別 2.2 變數 2.3 運算式與運算子 2.4 輸出與輸入資料 2.5 資料型別轉換 2.6 實例
第3章 變數與運算子 3-1 電腦記憶體的基礎 3-2 變數的命名與宣告 3-3 VB.NET的資料型別
Visual C++ introduction
.NET 程式設計入門(使用 C#) 講師:鄧智鴻.
第二章 C# 基础知识.
C++程序设计 第二讲 清华大学软件学院.
第3章 變數、資料型別與運算子.
2 C++ 程式概論 2.1 C++ 程式結構 程式註解 // 插入標題檔 #include 2-3
列舉(enum).
鄭士康 國立台灣大學 電機工程學系/電信工程研究所/ 資訊網路與多媒體研究所
Language Basics Lecturer: 曾學文.
结构体和共用体 2 梁春燕 华电信息管理教研室.
保留字與識別字.
Java程式概觀.
授课老师:龚涛 信息科学与技术学院 2018年3月 教材: 《Visual C++程序员成长攻略》 《C++ Builder程序员成长攻略》
JAVA 程式設計 資訊管理系 - 網路組.
第3章 變數、資料型別與運算子 3-1 變數與資料型別的基礎 3-2 變數的命名與宣告 3-3 資料型別 3-4 運算式與運算子
本章中將會更詳細地考慮有關重複的概念,並且會 介紹for和do…while等兩種用來控制重複的敘述 式。 也將會介紹switch多重選擇敘述式。 我們會討論直接和迅速離開某種控制敘述式的 break敘述式,以及用來跳過重複敘述式本體剩餘 部份的continue敘述式。 本章會討論用來組合控制條件的邏輯運算子,最後.
邏輯關係運算 == 等於 & 且 (logical and) ~= 不等於 | 或 (logical or) < 小於
C++语言程序设计 第二章 C++简单程序设计.
明解C++教學手冊 柴田望洋 博士 著 書號:PG20269
C#程序设计基础 第二章 数据类型.
程式設計 博碩文化出版發行.
程式設計實習課(四) ----C 函數運用----
第二讲 C#程序设计基础(一) 精品教程《C#程序设计与应用(第2版)清华大学出版社 谭恒松 主编
第一單元 建立java 程式.
標籤、按鈕、工具列、狀態列 (Labels, Buttons, Tool Strips, and Status Strips)
第三章 C# 基础知识.
分支宣告與程式設計 黃聰明 國立臺灣師範大學數學系
選擇性結構 if-else… switch-case 重複性結構 while… do-while… for…
C程式的架構 基本的資料型態 變數的宣告 常見的語法錯誤 基本的運算 優先順序與結合律 資料型態的轉換
第二章Java基本程序设计.
JAVA 程式設計 資訊管理系 - 網路組.
輸入&輸出 函數 P20~P21.
Java變數 2014/6/24.
ASP基礎— VBScript基本語法 張森.
2011 邀请中国姐妹学校韩国语研修团项目 申请时间: ~5月 27日 / 项目地点: 汉阳大学 安山校区 / 项目时间: (星期日) ~ 7.22(星期五) 费用: 100万元(韩币/人 (包含项目 - 学费, 教材费, 宿舍费, 接机费用及所有文化体验活动项目费用)
保留字與識別字.
第二章 Java基本语法 讲师:复凡.
|第 2 章 變數與資料型態.
認識常數與變數 學習C++所提供的各種基本資料型態 瞭解溢位的發生 學習認識資料型態之間的轉換
C++语言程序设计教程 第2章 数据类型与表达式 第2章 数据类型与表达式 制作人:杨进才 沈显君.
<编程达人入门课程> 本节内容 为什么要使用变量? 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ:
第二章 Java语法基础.
計算機程式設計 老師:蘇炳煌 助教:楊斯竣.
函數應用(二)與自定函數.
#include <iostream.h>
第二章 Java基本语法 讲师:复凡.
選擇性結構 if-else… switch-case 重複性結構 while… do-while… for…
本章主題 C++的程式結構 資料型態與宣告 算術運算 簡易的輸入輸出指令 程式編譯(Compile)的過程與原理.
計算機程式設計 老師:謝孟諺 助教:楊斯竣.
變數、資料型態、運算子.
第2章 Java语言基础.
Programming & Language Telling the computer what to do
變數、常數與資料型態 大綱 變數與常數 變數 資料型別 資料的輸出.
鄭士康 國立台灣大學 電機工程學系/電信工程研究所/ 資訊網路與多媒體研究所
ABAP Basic Concept (2) 運算子 控制式與迴圈 Subroutines Event Block
第二章 Java基础语法 北京传智播客教育
鄭士康 國立台灣大學 電機工程學系/電信工程研究所/ 資訊網路與多媒體研究所
Introduction to the C Programming Language
ABAP Basic Concept (2) 運算子 控制式與迴圈 Subroutines Event Block
Presentation transcript:

鄭士康 國立台灣大學 電機工程學系/電信工程研究所/ 資訊網路與多媒體研究所 實值變數與運算式 鄭士康 國立台灣大學 電機工程學系/電信工程研究所/ 資訊網路與多媒體研究所

示範程式UsingVariable重要片段 char aChar = 'a'; Console.WriteLine(aChar); int anInt = 123; Console.WriteLine(anInt); double aDouble; aDouble = 123.456; Console.WriteLine(aDouble); bool aTrueValue = true; Console.WriteLine(aTrueValue);

主記憶系統概念 *J. G. Brookshear, Computer Science – An Overview, 8th edition, Addison-Wesley, 2005

使用變數 變數宣告與地址觀念 變數命名 設值 (Assignment) 與初始化 (Initialization) 型別相容 命名規定與關鍵字 維護考量 軟體紀律 匈牙利命名法 設值 (Assignment) 與初始化 (Initialization) 型別相容

示範程式UsingNumeric重要片段 int x = 256; Console.WriteLine("x : " + x); byte y = 255; Console.WriteLine("y : " + y); double z = 123.45; Console.WriteLine("z : " + z); float f = 123.45f; Console.WriteLine("f : " + f); decimal d = 123.45m; Console.WriteLine("d : " + d);

整數型別 sbyte: -128 ~ 127 byte: 0 ~ 255 short: -32768 ~ 32767 unshort: 0 ~ 65535 int: -2147483648 ~ 2147483647 uint: 0 ~ 4294967295 long: -9223372036854775808 ~ 9223372036854775807 ulong: 0 ~ 18446744073709551615 char: U+0000 ~ U+ffff

浮點數型別 float: 7 位精確度, 正負1.5e-45 ~ 3.4e38, 32 位元 double: 15~16位精確度, 正負5.0e-324 ~ 1.7e308, 64 位元

decimal 型別 28 ~ 29 位小數, 正負1.0e-28 ~ 7.9e28, 128 位元

示範程式UsingChar重要片段 char c1 = 'a'; char c2 = '文'; char c3 = '\x0059'; char c4 = '\u0058'; char c5 = '\n'; char c6 = '\'';

字元表示 ASCII vs. Unicode 十六進位與Unicode表示法 逸散字元( Escaped character ) ‘\a’: 警示(alarm) ‘\b’: 退格(backspace) ‘\’’: 單引號(apostrophe) ‘\\’: 倒斜線(backslash) ‘\t’: 水平定位(tab) ‘\n’: 換行(next line)

字串與字元 string s1 = “abc”; string s2 = “a”; char c = ‘a’;

堆疊(Stack)與堆積(Heap) Heap . Stack

實值型別儲存方式 堆疊(Stack) int x = 100; x 100

參考型別儲存方式 堆積(Heap) 堆疊(Stack) string x = “abc”; x 參考 ‘a’ ‘b’ ‘c’

練習 撰寫一程式,宣告與設定數個變數,並予輸出。

示範程式Conversion重要片段 int a = 10; double b = 0; b = a; b = 20.5; a = (int)b; float c = 20; c = 20.5f; c = (float)20.5; char d = (char)65;

變數設值與型別轉換 變數設值 (Assignment) 隱含轉換 (Implicit conversion) 強制轉換 (Explicit conversion)

型別轉換錯誤三例 例1 例2 例3 byte bValue = 254; bValue = bValue*2; byte bValue; int aa = 0; bValue = aa + 0; 例3 float f = 0; f = 0.1 + 0.1;

示範程式UsingMathOperator重要片段 Console.WriteLine("請輸入第一個整數值x :"); int x = int.Parse(Console.ReadLine()); Console.WriteLine("請輸入第二個整數值y :"); int y = int.Parse(Console.ReadLine()); Console.WriteLine(" x + y = {0} ", x + y); Console.WriteLine(" x - y = {0} ", x - y); Console.WriteLine(" x * y = {0} ", x * y); Console.WriteLine(" x / y = {0} ", x / y); Console.WriteLine(" x % y = {0} ", x % y);

設值與算術運算 運算元(Operand)與運算子(Operator) 設值運算子(Assignment) 算術運算子 括弧使用與計算順序 加、減、乘、除 模數 括弧使用與計算順序

示範程式UsingMathFunctions重要片段 Console.WriteLine("Sqrt(2) = " + Math.Sqrt(2.0)); Console.WriteLine("PI = " + Math.PI); Console.WriteLine("Sin(PI/6.0) = " + Math.Sin(Math.PI / 6.0)); Console.WriteLine("Pow(2.0, 0.5) = " + Math.Pow(2.0, 0.5)); Console.WriteLine("Exp(1) = " + Math.Exp(1.0)); Console.WriteLine("ln(e) = " + Math.Log(Math.E)); Console.WriteLine("log10(100) = " + Math.Log10(100.0));

練習 撰寫一程式,宣告變數,以算式與數學函式設值,並予輸出。

示範程式UsingConstant重要片段 int anInt = 123; const int A_CONST = 456; anInt = 321;

使用常數 常數設定 常數特性 常數與程式維護

示範程式UsingInDeOperator重要片段 Console.WriteLine("請輸入整數變數x初值"); int x0 = int.Parse(Console.ReadLine()); Console.WriteLine("請輸入所要加總的整數值add"); int add = int.Parse(Console.ReadLine()); int x = x0; x = x + add; x = x0; x += add; int post; post = x++; int pre; pre = ++x;

遞增遞減運算子 運算子 +=、-=、*=、/-、%= 運算子++、-- 前置運算子(prefix) 後置運算子(postfix) result = ++x; 後置運算子(postfix) result = x++;

練習 利用偵錯器觀察遞增遞減算式的作用

示範程式UsingLB重要片段 bool x = 7 > 3; bool y = 2 < 0; bool xORy = x | y; bool xANDy = x & y; bool xOy = (x & y) | (x | y); bool xNy = (x & y) & (x | y);

布林型別與算式 邏輯敘述, 流程控制, Debug.Assert() true/false, 不可寫為數值如1 或 0 關連算式 布林算式 x > 1 true/false, 不可寫為數值如1 或 0 關連算式 布林算式

關連(Relation)運算子與布林變數 說明 == 相等 != 不等於 > 大於 >= 大於等於 < 小於 <= 小於等於

一般邏輯運算 x y x & y x | y x ^ y !y false true

Short-Circuit 邏輯運算 && 與 || 範例 x && y x || y (x & y) || (x | y)

字串物件比較 string first = “one”; string second = “One”; string third = “one”; Console.WriteLine( first == second ); Console.WriteLine( first == third ); Console.WriteLine( first != second ); Console.WriteLine( first != third );

if 流程 grade < 60 false true grade = 60

示範程式UsingSimpleIf重要片段 Console.Write( "請輸入一個小於100的整數原始成績: "); int grade = int.Parse(Console.ReadLine()); // 調分公式 if (grade < 60) { grade = 60; } Console.WriteLine("調分後成績: " + grade);

if-else 流程 grade < 60 true false result = grade result = 60

示範程式UsingTerOp重要片段 Console.Write( "請輸入一個小於100的整數原始成績: "); int grade = int.Parse(Console.ReadLine()); int result = grade < 60 ? 60 : grade; // 調分公式 Console.WriteLine("調分後成績: " + result);

運算子優先順序 算術運算優先順序 關連運算子 邏輯運算子 !, &, ^, |, &&, || 三元運算子 一元遞增遞減運算子 正負號 四則運算與模數計算 關連運算子 邏輯運算子 !, &, ^, |, &&, || 三元運算子 設定 =,*=,/=,%=,+=,-=,&=,^=,|= 使用括弧改變順序

練習 撰寫程式混合運用學過的運算式與if或三元算符敘述,添加註解說明程式目的、作者、時間、關鍵算式

示範程式UsingEnum重要片段(1/2) enum WeekDay { SUN = 1, MON = 2, TUE = 3, WED = 4, THU = 5, FRI = 6, SAT = 7 }

示範程式UsingEnum重要片段(2/2) WeekDay day = WeekDay.TUE; switch (day) { case WeekDay.SUN: Console.WriteLine("星期日為一週的第{0}天!!", (int)WeekDay.SUN); break; case WeekDay.TUE: Console.WriteLine("星期二為一週的第{0}天!!", (int)WeekDay.TUE); default: Console.WriteLine("一週的第{0}天!!", (int)day); }

列舉型別 (Enumeration) 組織整數常數與程式維護 省略數值指定 應用列舉型別

練習 宣告並測試列舉型別Season,其中包括常數Spring、Summer、Fall、Winter