Chapter 2 & Chapter 3.

Slides:



Advertisements
Similar presentations
C++语言程序设计教程 第5章 构造数据类型 第6章 C++程序的结构.
Advertisements

第 2 章 初探 C++.
第4章 数组 数组是由一定数目的同类元素顺序排列而成的结构类型数据 一个数组在内存占有一片连续的存储区域 数组名是存储空间的首地址
第八章 类和对象.
C++程序设计 王希 图书馆三楼办公室.
Introduction to the C Programming Language
走向C++之路 WindyWinter WindyWinter感谢诸位前来捧场。
Chapter 1 用VC++撰寫程式 Text book: Ivor Horton.
struct 可以在同一個名稱下擁有多種資料型態。使用struct能讓資料的存取和處理更為靈活。
資料大樓 --談指標與陣列 綠園.
函數(一) 自訂函數、遞迴函數 綠園.
第4章 函数与预处理 4.1 概述 4.2 定义函数的一般形式 4.3 函数参数和函数的值 4.4 函数的调用 *4.5 内置函数
Scope & Lifetime 前言 Local Scope Global Functions & Objects
C 程式設計— 語言簡介 台大資訊工程學系 資訊系統訓練班.
C++语言程序设计 C++语言程序设计 第六章 指针和引用 第十一组 C++语言程序设计.
刘胥影 东南大学计算机学院 面向对象程序设计1 2011~2012第3学期 刘胥影 东南大学计算机学院.
第一章 程序的基本结构. 第一章 程序的基本结构 教材及授课结构 本章目标 基本内容 扩展阅读 上机指导 应用举例 习题.
C++ 程式設計— 語言簡介 台大資訊工程學系 資訊系統訓練班.
C++语言程序设计 C++语言程序设计 第四章 数组及自定义数据类型 C++语言程序设计.
授课老师:龚涛 信息科学与技术学院 2018年3月 教材: 《Visual C++程序员成长攻略》 《C++ Builder程序员成长攻略》
Function.
Object-Oriented Programming in C++ 第一章 C++的初步知识
第12章 從C到C++語言 12-1 C++語言的基礎 12-2 C++語言的輸出與輸入 12-3 C++語言的動態記憶體配置
第 6 章 函式.
2 C++ 的基本語法和使用環境 親自撰寫和執行程式是學好程式語言的不二法門。本章藉由兩個簡單的程式,介紹C++ 程式的基本結構和開發環境,讓初學者能逐漸建立使用C++ 的信心。
程式撰寫流程.
计算机网络讲义 第5章 批量数据处理—数组 一维数组 排序和查找 二维数组 字符串.
變數命名 保留字(Reserved Word)
6 使用者函數 6.1 函數定義 宣告函數 呼叫函數 呼叫多個函數 6-6
第3讲 C++程序控制结构 3.1 顺序结构 3.2 分支结构 3.3 循环结构 3.4 转向控制 3.5 综合案例分析.
C++程序设计 string(字符串类) vector(容器类).
C++语言程序设计 第二章 C++简单程序设计.
程序的三种基本结构 if条件分支语句 switch多路开关语句 循环语句 循环嵌套 break,continue和goto语句
C++语言程序设计 第十一章 流类库与输入/输出.
C++语言程序设计 C++语言程序设计 第六章 指针和引用 第十一组 C++语言程序设计.
切換Dev c++顯示語言 工具->環境選項(V)->介面->language (Chinese TW)
C++大学基础教程 第5章 数组 北京科技大学 信息基础科学系.
C++ 程式設計 基礎篇 張啟中 Chang Chi-Chung.
C++大学基础教程 第3章 C++控制语句 北京科技大学 信息基础科学系.
C++大学基础教程 第11章 多态性 北京科技大学 信息基础科学系 2019/4/8 北京科技大学.
Name1..hour //加班時數 name2..hour //請假時數
第二章 基本数据类型及运算 C数据类型概述 基本数据类型 运算符和表达式 混合运算与类型转换 数据的输入输出 顺序程序设计举例.
C++语言程序设计 C++语言程序设计 第五章 函数 第十一组 C++语言程序设计.
程式結構&語法.
4 條件選擇 4.1 程式基本結構 循序式結構 選擇式結構 重複式結構 4-3
C++语言程序设计 C++语言程序设计 第七章 类与对象 第十一组 C++语言程序设计.
C++语言程序设计 C++语言程序设计 第九章 类的特殊成员 第十一组 C++语言程序设计.
C++语言程序设计 C++语言程序设计 第三章 控制语句 第十一组 C++语言程序设计.
物件導向程式設計 CH2.
Chap 5 函数 5.1 计算圆柱体积 5.2 使用函数编写程序 5.3 变量与函数.
第11章 從C到C++語言 11-1 C++語言的基礎 11-2 C++語言的資料型態與運算子 11-3 C++語言的輸出與輸入
第三章 数据抽象.
C++语言程序设计教程 第2章 数据类型与表达式 第2章 数据类型与表达式 制作人:杨进才 沈显君.
<编程达人入门课程> 本节内容 为什么要使用变量? 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ:
C++程式設計入門 變數與運算子 作者:黃建庭.
第二章 类型、对象、运算符和表达式.
第二讲 基本数据类 型及数组等 此为封面页,需列出课程编码、课程名称和课程开发室名称。
C/C++基礎程式設計班 C++: 物件的使用、參考、重載函式 講師:林業峻 CSIE, NTU 3/28, 2015.
第 3 章 类的基础部分 陈哲 副教授 南京航空航天大学 计算机科学与技术学院.
挑戰C++程式語言 ──第9章 函數.
#include <iostream.h>
C++语言程序设计 第十章 C++标准模板库 成都信息工程学院计算机系.
C++语言程序设计 C++语言程序设计 第十章 多态 第十一组 C++语言程序设计.
《数据结构与算法设计》第一部分 面向对象的C++程序设计基础.
C/C++基礎程式設計班 C語言入門、變數、基本處理與輸入輸出 講師:林業峻 CSIE, NTU 3/7, 2015.
C++语言程序设计 C++语言程序设计 第十一章 异常处理 C++语言程序设计.
變數與資料型態  綠園.
資料!你家住哪裏? --談指標 綠園.
C++语言程序设计 C++语言程序设计 第二章 基本数据类型与表达式 第十一组 C++语言程序设计.
Presentation transcript:

Chapter 2 & Chapter 3

變數型態和型態轉換 原則: 範圍小的型態轉成大的型態 page 69

變數型態和型態轉換 value = (value-count)*(count-num)/many+num/many; double value = 31.0; int count = 16; float many = 20.0f; char num = 4; value = (value-count)*(count-num)/many+num/many;

Explicit casts 明確轉換 static_cast<the_type_to_convert_to>(expression)

Keywords about casting static_cast: 程式編譯時靜態檢查轉換 dynamic_cast: 程式執行時動態檢查 const_cast: 常數轉換 reinterpret_cast: 重新解釋的轉換-無條件的型態轉換

運算子的優先權 table (page 67) 當運算子同時具有一元運算及二元運算的意義, 一元運算優先權高於二元運算

運算種類 算術運算 關係運算 邏輯運算 以位元為單位 以運算元為單位

算術運算子 算術運算子 意義 + 加 - 減 * 乘 / 除 % 取餘數 ++、-- 遞增、遞減 +、- 正負號

關係運算子 關係運算子 意義 < 小於 > 大於 == 等於 <= 小於等於 >= 大於等於 != 不等於

邏輯運算子 基本邏輯運算子 意義 && 運算元作AND運算 || 運算元OR運算 ! 運算元NOT運算

位元運算子 bitwise AND & bitwise OR | bitwise exclusive OR ^ bitwise NOT ~ shift right >> shift left <<

AND位元運算子 bitwise AND 1

Example letter1:0x41 char letter1=‘A’, letter2=‘Z’, result=0; 1 result=letter1 &letter2; letter1:0x41 1 letter2:0x5A result

OR位元運算子 bitwise OR 1

XOR位元運算子 bitwise EOR 1

NOT位元運算子 bitwise NOT 1

位移位元運算子 16387=>0100000000000011 向左shift 2位 1 1 0000000000001100=12

位移位元運算子 16387=>0100000000000011 向右shift 2位 1 1 0001000000000000=4096

範圍與生命週期 空間 時間 有效範圍,指的是變數本身的作用及影響範圍 生命週期是變數於程式執行階段,實際存在的時間區段

變數的範圍(scope) 變數名稱在程式裡的有效區域

變數的生命週期 (storage duration) automatic static dynamic (describe in ch4)

自動變數 (auto) auto 為預設值,當變數宣告時,沒有額外以儲存類別關鍵字宣告,即表示其為 auto 類別。 自動變數的生命期和宣告的位置有關 區塊結束變數生命結束 區塊重新執行, 變數重新被建立並指定初值

Example (EX2_06.cpp) // EX2_06.CPP // Demonstrating variable scope #include <iostream> using namespace std; int main() { // Function scope starts here int count1 = 10; int count3 = 50; cout << endl << "Value of outer count1 = " << count1 << endl; { // New scope starts here... int count1 = 20; // This hides the outer count1 int count2 = 30; cout << "Value of inner count1 = " << count1 count1 += 3; // This affects the inner count1 count3 += count2; } // ...and ends here

Example (EX2_06.cpp) (cont.) cout << "Value of outer count1 = " << count1 << endl << "Value of outer count3 = " << count3 << endl; // cout << count2 << endl; // uncomment to get an error return 0; } // Function scope ends here

靜態變數 (static) 區域靜態變數 全域靜態變數

區域靜態變數 當函式結束, 區域靜態變數的生命期並不會跟著結束, 同時還會保有原來的值, 直到整個程式結束時, 變數的生命期才會結束 區域靜態變數若無設定初值,則預設為 0 區域靜態變數只能被該宣告者函式使用

全域靜態變數 全域靜態變數的有效範圍只限於該檔案內的函式 範例:CH6-6C1.C static int i=1; void main() {   void f();   f();   printf("main:i=%d", i); } 範例:CH6-6C2.C static int i=2; void f() {   printf("f:i=%d\n", i); }

Example #include <iostream> using namespace std; static int i; void main() { void f(void); f(); cout << "main:i=" << i << endl; } void f(void) static int i=2; cout << "\nf:i=" << i << endl;

全域變數與區域變數 區域變數(local variable)只在某個範圍裡有效,超出範圍就變成無效了 全域變數(global variable)的有效範圍是變數宣告之後的所有函式

Figure (page 82) Example.cpp value2 Value1 value3 value4 value5 value1 long value1; Value1 int main() { int calue2; … int value3; } value2 value3 int value4; value4 int function(int) { long value5; int value1; … } value5 value1

區域變數的獨立性 main() { int age; /*區域變數*/ printf("main:How old are you?"); scanf("%d", &age); sub(); printf("main:You are %d years old.\n", age); } sub() int age; /*區域變數*/ printf("sub:How old are you?"); printf("sub:You are %d years old.\n", age);

隱藏全域變數 全域變數和區域變數可以同名,然而在函式中使用的變數和全域變數同名時,全域變數的有效範圍會被遮蔽 int i=123; /*全域變數*/ main() { int i=456; /*區域變數*/ printf("%d",i); } 全域變數和區域變數可以同名,然而在函式中使用的變數和全域變數同名時,全域變數的有效範圍會被遮蔽 不建議使用,因為很容易搞混變數名稱而出錯

全域、區域變數的關係 相同有效範圍的變數,名稱不可重複。相對地,不同範圍的區域變數,名稱可以相同。區域變數和全域變數的名稱也可以相同。 不同有效範圍的同名區域變數不會相互影響。 區域變數和全域變數同名時,在區域變數的有效範圍,全域變數會受到遮蔽。

使用全域變數時的注意事項 在全域變數宣告之後所定義的函式,才能使用該全域變數。 儘量少用全域變數。 小心使用全域變數,並避免誤改全域變數值。 全域變數在宣告後,預設值為0。

Namespace 是否可以在程式中宣告名稱為cout的變數

Example-Modify from EX2_08.cpp //Modify the example of Ex2_08.cpp #include<iostream> int cout =0; int main() { std::cout << "enter an integer: "; std::cin >> cout; std::cout << "\nYou entered " << cout << std:: endl; return 0; } 未使用假指令 using namespace std;

宣告名稱空間 namespace mystuff { // Code that I want to have in the namespace mystuff… }

Example (Ex2_09.cpp) // EX2_09.CPP // Declaring a namespace #include <iostream> namespace myStuff { int value = 0; } int main() std::cout << "enter an integer: "; std::cin >> myStuff::value; std::cout << "\nYou entered " << myStuff::value << std::endl; return 0;

Example (Ex2_10.cpp) // EX2_10.CPP // Using a using directive #include <iostream> namespace myStuff { int value = 0; } using namespace myStuff; int main() std::cout << "enter an integer: "; std::cin >> value; std::cout << "\nYou entered " << value << std::endl; return 0;

Example (Modify from Ex2_10.cpp) // Using a using directive #include <iostream> namespace myStuff { int value = 0; } using namespace myStuff; using namespace std; int main() cout << "enter an integer: "; cin >> value; cout << "\nYou entered " << value << endl; return 0;

Chapter 3 決策與迴圈

In this chapter 資料的比較 由比較結果決定程式執行順序 邏輯運算子及邏輯運算式 多重選擇 迴圈的撰寫與使用

流程控制 結構化程式設計 循序結構 選擇結構 重複結構

循序結構 Example: cout << endl; cout << num1 << num2;

選擇結構 if 敘述 if (測試條件) { //敘述 }

Example (Ex3_01.cpp) // EX3_01.CPP // A nested if demonstration #include <iostream> using namespace std; int main() { char letter = 0; // Store input in here cout << endl << "Enter a letter: "; // Prompt for the input cin >> letter; // then read a character if(letter >= 'A') // Test for 'A' or larger if(letter <= 'Z') // Test for 'Z' or smaller << "You entered a capital letter." << endl; return 0; } if(letter >= 'a') // Test for 'a' or larger if(letter <= 'z') // Test for 'z' or smaller { cout << endl << "You entered a small letter." << endl; return 0; } cout << endl << "You did not enter a letter." << endl;

選擇結構 if-else敘述 if (測試條件) { 敘述區塊1 } else 敘述區塊2

Example Ex3_02.cpp

選擇結構 巢狀 If 格式 If 條件1 Then If 條件2 Then 敘述區塊1-1 Else 敘述區塊1-2 End If ……. 敘述區塊2