簡易C++除錯技巧 長庚大學機械系 101.5.17.

Slides:



Advertisements
Similar presentations
—— 海淀区高三化学《考试说明》解读 2015 年 1 月 29 日 学习《考试说明》 备考理综化学.
Advertisements

Copyright © by ARTCOM PT All rights reserved. 大众媒体与医患关系 山东大学口腔医学院 郭春晓.
一张图读懂 中国乳制品行业现状及 发展趋势和前景.
計算機程式語言實習課.
昆山华东信息科技有限公司 Copyright © 2009 ECI Corporation, All Rights Reserved
第 2 章 初探 C++.
中国(成都)斯宝特房地产营销策划有限公司 2007年5月22日
生命本是一个完整的过程, 但这个过程, 我们画得不圆。
2016中重卡网络规划 中重卡营销部 2016年6月.
第九讲 类与对象 (I)面向对象基础.
第4章 数组 数组是由一定数目的同类元素顺序排列而成的结构类型数据 一个数组在内存占有一片连续的存储区域 数组名是存储空间的首地址
第八章 类和对象.
C++程序设计 王希 图书馆三楼办公室.
读秀学术搜索 读秀的图书搜索. 能够为我们解决一个 什么问题? 是什么东西? 读秀 1. 读秀知识库是以 170 万种中文图书、 6 亿页 全文资料为基础的超大型数据库。 2. 为读者提供深入到图书内容章节和全文的精 度检索,全面立体的多面检索,部分文献的 原文试读,以及参考咨询服务,是一个真正.
程式設計概論 1.1 程式設計概論 程式語言的演進 物件導向程式 程式開發流程 1.2 C++開發工具
Chapter 1 用VC++撰寫程式 Text book: Ivor Horton.
struct 可以在同一個名稱下擁有多種資料型態。使用struct能讓資料的存取和處理更為靈活。
資料大樓 --談指標與陣列 綠園.
函數(一) 自訂函數、遞迴函數 綠園.
教材 《C++程序设计》.谭浩强. 清华大学出版社 王雪晶
Scope & Lifetime 前言 Local Scope Global Functions & Objects
C++语言程序设计 C++语言程序设计 第六章 指针和引用 第十一组 C++语言程序设计.
第一章 程序的基本结构. 第一章 程序的基本结构 教材及授课结构 本章目标 基本内容 扩展阅读 上机指导 应用举例 习题.
Object-Oriented Programming in C++ 第一章 C++的初步知识
前處理指令可以要求前處理器 (preprocessor) 在程式編譯之前,先進行加入其它檔案的內容、文字取代以及選擇性編譯等工作。
2 C++ 的基本語法和使用環境 親自撰寫和執行程式是學好程式語言的不二法門。本章藉由兩個簡單的程式,介紹C++ 程式的基本結構和開發環境,讓初學者能逐漸建立使用C++ 的信心。
程式撰寫流程.
第一章 C++编程简介 丘志杰 电子科技大学 计算机学院 软件学院.
计算机网络讲义 第5章 批量数据处理—数组 一维数组 排序和查找 二维数组 字符串.
第3讲 C++程序控制结构 3.1 顺序结构 3.2 分支结构 3.3 循环结构 3.4 转向控制 3.5 综合案例分析.
C++程序设计 string(字符串类) vector(容器类).
程序的三种基本结构 if条件分支语句 switch多路开关语句 循环语句 循环嵌套 break,continue和goto语句
谭浩强 编著 中国高等院校计算机基础教育课程体系规划教材 C++程序设计.
C++语言程序设计 第十一章 流类库与输入/输出.
C++语言程序设计 C++语言程序设计 第六章 指针和引用 第十一组 C++语言程序设计.
切換Dev c++顯示語言 工具->環境選項(V)->介面->language (Chinese TW)
序及第0章.
C++大学基础教程 第5章 数组 北京科技大学 信息基础科学系.
C++ 程式設計 基礎篇 張啟中 Chang Chi-Chung.
中国科学院计算机网络信息中心 中国科技网网络中心 All rights reserved
劉崇汎 崑山科技大學 電腦與通訊系 DLL的建立與引用 劉崇汎 崑山科技大學 電腦與通訊系
C++大学基础教程 第11章 多态性 北京科技大学 信息基础科学系 2019/4/8 北京科技大学.
Name1..hour //加班時數 name2..hour //請假時數
第二章 基本数据类型及运算 C数据类型概述 基本数据类型 运算符和表达式 混合运算与类型转换 数据的输入输出 顺序程序设计举例.
Chapter 2 & Chapter 3.
C++语言程序设计 C++语言程序设计 第五章 函数 第十一组 C++语言程序设计.
C++语言程序设计 C++语言程序设计 第七章 类与对象 第十一组 C++语言程序设计.
C++语言程序设计 C++语言程序设计 第七章 类与对象 第十一组 C++语言程序设计.
可愛的鍬形蟲 五年四班2.
一種風靡全球的健康居住觀 正在逐漸蔓延! 居住不只講風水 更要追求身心舒適且善待自然的綠風水
C++语言程序设计 C++语言程序设计 第九章 类的特殊成员 第十一组 C++语言程序设计.
C++语言程序设计 C++语言程序设计 第三章 控制语句 第十一组 C++语言程序设计.
大豆有望继续跨年度牛市行情 各位领导,各位同仁,大家下午好,我是浙商期货的徐文杰,今天下午我们团队将要讲的题目是 大豆有望展开跨年度牛市行情
物件導向程式設計 CH2.
第11章 從C到C++語言 11-1 C++語言的基礎 11-2 C++語言的資料型態與運算子 11-3 C++語言的輸出與輸入
C++语言程序设计 C++语言程序设计 第二章 基本数据类型与表达式 第十一组 C++语言程序设计.
C++语言程序设计 C++语言程序设计 第八章 继承 C++语言程序设计.
C++程式設計入門 變數與運算子 作者:黃建庭.
C/C++基礎程式設計班 C++: 物件的使用、參考、重載函式 講師:林業峻 CSIE, NTU 3/28, 2015.
C++语言程序设计 C++语言程序设计 第二章 基本数据类型与表达式 第十一组 C++语言程序设计.
C++语言程序设计 第十章 C++标准模板库 成都信息工程学院计算机系.
C++语言程序设计 C++语言程序设计 第十章 多态 第十一组 C++语言程序设计.
《数据结构与算法设计》第一部分 面向对象的C++程序设计基础.
C++程序设计 概述 潘荣江 山东大学软件学院.
C++语言程序设计 C++语言程序设计 第十一章 异常处理 C++语言程序设计.
變數與資料型態  綠園.
資料!你家住哪裏? --談指標 綠園.
資料結構與C++程式設計進階 C++與資料結構 講師:林業峻 CSIE, NTU 7/ 5, 2010.
客家獅中的青獅(文的)和 黃獅(武的) 青獅(比較溫和;美濃才有) 黃獅(比較凶;內埔.萬巒才有).
C++语言程序设计 C++语言程序设计 第二章 基本数据类型与表达式 第十一组 C++语言程序设计.
Presentation transcript:

簡易C++除錯技巧 長庚大學機械系 101.5.17

錯誤種類 編譯錯誤 cl /EHsc file.cpp 出現error 程式錯誤 程式可執行,但是出錯

1. 編譯錯誤 常見錯誤: 忘記 ";" 忘記定義 格式錯誤 除錯方法: 找尋錯誤行數,讀錯誤訊息,再更正。

舉例 test1.cpp(8) : error C2784: 'std::basic_istream<_Elem,_Traits> &std::operator >>(std::basic_istream<_Elem,_Traits> &,_Elem *)' : 無法由 '多載函式型別',針對 'std::basic_istream<_Elem,_Traits> &' 推算 <未知> 引數 D:\Program Files\Microsoft Visual Studio 9.0\VC\INCLUDE\istream(934) : 請參閱 'std::operator >>' 的宣告 test1.cpp(8) : error C2676: 二元運算子 '>>' : 'std::ostream' 沒有定義此運算子或預先定義運算子可接受的型別轉換 可能是: 第8行<< >>方向相法 cin >> cout <<

舉例 test1.cpp test1.cpp(7) : error C2146: 語法錯誤 : 遺漏 ';' (在識別項 'cin' 之前) 推測 少了";",在第7行之前,也就是第6行。

2. 程式錯誤 除錯方法 思想實驗:假設輸入值,跟著指令一行一行執行。 使用debug程式。 使用cout。

例題:求陣列最小值及下標 #include <iostream> using namespace std; int main() { double A[3][2]={1.8, 4.9, 6.8, 6.2, 2.1, 3.4}; int i,j,x,y; double Min; for (i=0;i<=2; i++) for (j=0;j<=3; j++) if (Min >= A[i][j]) { Min=A[i][j]; x=i; y=j; } cout<<"最大值"<<Min<<"下標"<<x<<","<<y<<endl; return 0; }

續 test.cpp e:\tmp\cpp\test.cpp(10) : warning C4700: 使用了未初始化的區域變數 'Min' Microsoft (R) Incremental Linker Version 9.00.30729.01 Copyright (C) Microsoft Corporation. All rights reserved. /out:test.exe test.obj 增加Min=A[0][0], x=0, y=0 在for之前

續 #include <iostream> using namespace std; int main() { double A[3][2]={1.8, 4.9, 6.8, 6.2, 2.1, 3.4}; int i,j,x,y; double Min; Min=A[0][0]; x=0; y=0; for (i=1;i<=2; i++) for (j=1;j<=3; j++) { if (Min >= A[i][j]) Min=A[i][j]; x=i; y=j; } cout<<"最小值"<<Min<<"下標"<<x<<","<<y<<endl; system ("PAUSE"); return 0;

續 答案: 最小值4.24612e-314下標2,3 →錯誤 →加cout

增加cout #include <iostream> using namespace std; int main() { double A[3][2]={1.8, 4.9, 6.8, 6.2, 2.1, 3.4}; int i,j,x,y; double Min; Min=A[0][0]; x=0; y=0; for (i=0;i<=2; i++) for (j=0;j<=3; j++) { cout << i << " "<< j << " " << A[i][j]<<endl; if (Min <= A[i][j]) Min=A[i][j]; x=i; y=j; cout << "inside if " <<i << " "<< j << " " << A[i][j] << endl; } cout<<"最小值"<<Min<<"下標"<<x<<","<<y<<endl; return 0;}

續 0 0 1.8 inside if 0 0 1.8 0 1 4.9 0 2 6.8 0 3 6.2 → 1 0 6.8 → 1 1 6.2 1 2 2.1 1 3 3.4 2 0 2.1 → 2 1 3.4 2 2 1.8 inside if 2 2 1.8 2 3 4.24612e-314 → 錯誤數字 inside if 2 3 4.24612e-314 最小值4.24612e-314下標2,3 →看出iteration錯誤

續 0 0 1.8 inside if 0 0 1.8 0 1 4.9 0 2 6.8 0 3 6.2 1 0 6.8 1 1 6.2 1 2 2.1 1 3 3.4 2 0 2.1 2 1 3.4 2 2 1.8 inside if 2 2 1.8 2 3 4.24612e-314 inside if 2 3 4.24612e-314 最小值4.24612e-314下標2,3

解 #include <iostream> using namespace std; int main() { double A[3][2]={1.8, 4.9, 6.8, 6.2, 2.1, 3.4}; int i,j,x,y; double Min; Min=A[0][0]; x=0; y=0; for (i=0;i<3; i++) for (j=0;j<2; j++) { if (Min <= A[i][j]) Min=A[i][j]; x=i; y=j; } cout<<"最小值"<<Min<<"下標"<<x<<","<<y<<endl; return 0;}

常見錯誤 if ( );  if 多加 ";" for ( );  for 多加 ";"