程序设计基础 贺辉 图书馆三楼办公室(进馆左侧上楼) hhdpczh@yahoo.com.cn.

Slides:



Advertisements
Similar presentations
江右弘道书院 弘 毅弘 毅. “ 启蒙运动 ” 何以重要?  “ 启蒙运动 ” 与中国转型 “ 中西古今 ” 四维中的启蒙.
Advertisements

第十届中小学 NOC 活动 学生竞赛项目 -- 信息科技类 程序设计 培 训 讲 义 孙建华. 要点  程序设计是技术与艺术相结合的赛项。每一 个程序都来源于一种观念、一个想法、一项 创意,其实现水平有赖于技术手段,其优劣 有赖于用户检验。程序设计的过程是表达和 表现作者创造性的过程。  本赛项的要点是:用户群体需求定位恰当的.
C/C++ 程序设计 吉林财经大学 管理科学与信息工程学院 李艳东 : Tel :
While 迴圈 - 不知重複執行次數
主讲:王幸民 理学院计算机基础教学部.
河內塔(Hanoi)問題.
C與C++ C++語言具有物件導向的功能,易於開發、撰寫與偵錯,成為重要系統的開發工具之一。
基础模块 模块一 程序设计基础 (一)开发环境部分.
C语言程序设计 主讲教师 :张群燕 电话:
授课教师:江星玲 1.
培养目标 1.建立基本的程序设计概念体系,掌握基础程序设计方法。
第1单元 操作系统概论 第一节 绪论 操作系统定义.
第 2 章 初探 C++.
1.3.1 细胞膜——系统的边界 ●高中生物课件(人教课标版) 万晓军生物工作室(安义中学)
Java Programming Hygiene - for DIDC
操作系统原理 Principles of Operating System
请将手机调整到静音状态 实验网站:program3.ccshu.net 资源网站:class.ccshu.org/ /
民事诉讼法学 杨嬿宁 TEL: QQ:
第一章 c语言程序设计基础 任课教师:温荷 Neusoft Institute of Information
Subversion (SVN) Presented by 李明璋 R /2/21
孙志岗 C语言四年课程经验总结 孙志岗
新世代計算機概論 第14章 程式語言.
C++程序设计 主讲:王兴波教授 1.
[什麼是靜脈注射尿路攝影] [適應症] [檢查流程] [檢查前注意事項] [檢查過程注意事項] [檢查後注意事項]
臺北市立大學 資訊科學系(含碩士班) 賴阿福 CS TEAM
高级语言程序设计 主讲人:陈玉华.
第一章 C语言概述.
第二十九章 DLL / LIB函式庫開發 當我們開發程式到一個階段之後,我們一定會希望各個Component的程式碼可以分開的越清楚越好。而這一章最主要就是要告訴各位讀者,我們常在Windows系統中看到的dll或是lib的檔案該怎麼實作?做出這樣的library我們又該如何運用?為什麼使用dll或是lib有利於我們開發程式?以上這些疑問都將會在這一章中得到解答。
C的發展史 C程式初體驗 C程式設計基本注意事項 上機實習課程
If … else 選擇結構 P27.
C 程式設計— 語言簡介 台大資訊工程學系 資訊系統訓練班.
C++ 程式設計— 語言簡介 台大資訊工程學系 資訊系統訓練班.
第12章 從C到C++語言 12-1 C++語言的基礎 12-2 C++語言的輸出與輸入 12-3 C++語言的動態記憶體配置
什么是C语言 编写HelloWorld程序 注释
第一章 C++编程简介 丘志杰 电子科技大学 计算机学院 软件学院.
第1章、系統軟體 作者:陳鍾誠 旗標出版社.
高级语言程序设计 张长海 软件自动化研究室 Tel:
Instructor:Po-Yu Kuo 教師:郭柏佑
谭浩强 编著 中国高等院校计算机基础教育课程体系规划教材 C++程序设计.
第0章作业: 教材P12-练习与实践 1.写出用符号’*’输出描绘汉字”大”的流程图。
第1章 概述 本章要点: C语言程序结构和特点 C语言程序的基本符号与关键字 C语言程序的编辑及运行 学习方法建议:
QQ群 主要用于线下讨论答疑 用于发布一些通知公告 修该备注,如 经济学院_2019_张三. 刘东华 信息技术中心 敬宾楼1406
C语言环境配置.
第一章 程序设计和C语言 主讲人:高晓娟 计算机学院.
C语言程序示例: 1.输入10个数,按从小到大的顺序排序。 2.汉诺塔问题。.
C程序设计.
C 语言程序设计 程序的循环结构 电大崇信县工作站 梁海亮.
程式語言 程式語言發展史 資料型態 程式指令 程序定義和使用.
7.1 C程序的结构 7.2 作用域和作用域规则 7.3 存储属性和生存期 7.4 变量的初始化
<编程达人入门课程> 本节内容 字符与字符串 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群: ,
本节内容 字符与字符串 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
第一章 C语言概述 教师:周芸.
導 論 教學投影片.
项目1 C程序设计起步 学习目标: 通过该项目你可以知道: C语言的用途。 C语言的基本符号和关键字。 C语言程序的结构及特点。
第一章 C语言概述 目录 什么是语言、程序 C语言的历史与发展 C语言的书写形式与程序结构 运行C语言的步骤与方法
第二章 语言设计问题.
C++程序设计 吉林大学计算机科学与技术(软件)学院.
第二章 类型、对象、运算符和表达式.
本节内容 函数嵌套调用的内存布局 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
 隐式欧拉法 /* implicit Euler method */
認識 Visual Studio 李明山
Introduction to the C Programming Language
第1章程序设计和C语言.
第十二章 位运算.
《数据结构与算法设计》第一部分 面向对象的C++程序设计基础.
C++程序设计 概述 潘荣江 山东大学软件学院.
Programming & Language Telling the computer what to do
第三章 流程控制 程序的运行流程 选择结构语句 循环结构语句 主讲:李祥 时间:2015年10月.
Introduction to the C Programming Language
隨機函數.
Presentation transcript:

程序设计基础 贺辉 图书馆三楼办公室(进馆左侧上楼) hhdpczh@yahoo.com.cn

大学的学习你准备好了么? 大学的学习 希望大家能早日适应大学的学习生活! 不同的教学方式 不同的学习方式 不同的学习目标 不同的考核方式 00:39:58

怎样学好这门课? 端正学习态度——态度决定一切 课前预习——有目的 课后复习——温故知新 认真完成作业——检验学习成果 多做练习——熟能生巧 参考课外书籍——它山之石 互相交流——兼听则明 00:39:58

好书推荐 “Computer Systems A Programmer's Perspective”(Randal E.Bryant&David O'Hallaron著;深入理解计算机系统(龚奕利译)) “The C Programming Language”(Kernighan &Ritchie ) “Expert C Programming”(Linden) “Write Clean Code”(Steve Maguire) 高质量C++/C 编程指南(林锐) C 语言深度解剖-----解开程序员面试笔试的秘密 00:39:58

你希望将来运用计算机到何种境界?

本课堂要求 按时到课 关闭手机或调到静音 积极思考 多多实践 时时总结 主动学习 00:39:58

我对大家的期望 这门课结束后希望你--- 迈入“程序设计”之门 学习用计算机的方式思考问题 使用计算机帮你减轻一些负担 创作出作品给他人欣赏 强逻辑...... 使用计算机帮你减轻一些负担 创作出作品给他人欣赏 为后续课程打好基础 00:39:58

实验课要求 不得在上课期间上QQ、偷菜等,浏览与课程无关的网页 没有特殊事情请不要中途离开 00:39:58

课堂出勤要求 每位同学可以有一次无假条请假机会 如果你认为你都会了,向我证明,然后可以免听 请班长协助考察 “听明白,看明白不代表你懂了,你懂了不代表你会用了,你会用了不代表你能用明白,你能用明白不代表你真正懂了!什么时候表明你真正懂了呢?你站在我这来,把问题给下面的同学讲明白,学生都听明白了,说明你真正懂了。” ---《C语言深度剖析》 请班长协助考察 00:39:58

关于教材 简单但是经典 练习以及配套材料丰富 00:39:58

助教…… 林永吉(08级) Tel:13824129430 Email:godxiaoji@vip.qq.com 00:39:58

网络学习平台…… http://www.5ic.net.cn http://172.20.10.138 用户名:13177+学号 密码:5ic http://172.20.10.138 00:39:58

ACM程序设计比赛 欢迎感兴趣的同学参加我们学院的各项比赛 珠海、广东、亚洲赛区,更多广阔的舞台 00:39:58

程序设计:艺术?科学? 一方面需要在大学里学习有关计算机科学的课程 另一方面又要看著名的如Donald Knuth“The Art of Computer Programming”系列的书 物理学家Richard Feynman“更确切的说,计算机科学更像工程--都是用一些东西来实现另一些东西” 有时人们在争议程序设计到底是一门艺术还是一门科学 00:39:58

人与计算机的对话 两个说不同母语的人的对话方式: 人与计算机的对话方式: 一方学另一方的语言 双方都学习一种第三方语言 计算机学习人的语言(自然语言理解) 人学习计算机的语言 学习第三方语言 00:39:58

机器语言 计算机掌握的语言 由二进制序列(0、1)组成 一条指令由操作码+数据信息构成 00:39:58

冯诺依曼结构 计算机使用二进制形式 存储程序,顺序执行 程序和数据以二进制代码形式不加区别地存放在存储器中,存放位置由地址确定 00:39:58

机器语言 用机器码编程就像用牙签吃东西,刺的块很小且有些费力,吃一顿饭要花很长时间 同样,每个机器码字节只是完成可以想象得到的最小且最简单的计算工作:从内存装入一个数至处理器,将其与另一个数相加把结果再存回内存 所以很难想象机器码如何完成一整项的工作 00:39:58

汇编语言 用英文缩写符号代替操作码 用英文名字代替存储地址 比机器语言方便,但仍然不够方便 冗长乏味 不可移植 00:39:58

低级语言 难以学习、难以使用 与计算机结构相关 00:39:58

高级语言 容易学习、容易使用(示例) 通常是可移植的,不像汇编语言那样依赖于特定的处理器 与计算机结构无关 问题:高级语言是审慎而周密的概念语言,用高级语言写的代码如何让计算机识别呢? 00:39:58

高级语言向低级语言的转化 逐句转换 解释器=》解释语言 批量转换 编译器=》编译语言 其余方式? 00:39:58

高级语言发展简史

最古老的高级语言 FORTRAN,今天仍在使用(尽管有了广泛的修改) 由FORmula前3个字母和TRANslation前4个字母混合而成 20世纪50年代中期由IBM公司为704系列计算机开发的 广泛支持浮点运算甚至复数运算 00:39:58

早期的许多程序设计者都是科学家和工程师,他们利用FORTRAN和ALGOL所要求的数学算法来阐述自己的问题 然而,纵观程序设计语言的历史可以发现,人们希望有能被更大范围的人们所使用的语言 00:39:58

第一个为商务系统设计的成功语言是COBOL,今天仍被广泛使用(1959年早期由美国工业和国防部组成的委员会推出) 20世纪60年代中期,伴随着System/360项目的开发,IBM公司开发了名为PL/1(programming language number one) 00:39:58

Pascal,瑞士计算机科学教授Niklaus Wirth在20世纪60年代后期设计而成 ...... BASIC(beginner‘s all-purpose symbolic instruction code),Dartmouth数学系的John Kemeny等1964年为Dartmouth的分时系统开发的 Pascal,瑞士计算机科学教授Niklaus Wirth在20世纪60年代后期设计而成 ...... 然后就有了C语言,一种受到万般宠爱的程序设计语言 00:39:58

C语言的那些事儿 Ken Thompson大牛某日想玩一个叫Space Travel的游戏 为了能更爽的玩游戏,他忽悠了Dennis Ritchie加入,决定重新开发一个操作系统 用汇编语言写操作系统不太爽,于是他们决定设计一种新的语言 他们从BCPL语言中整合出了B语言 然后将B语言改良成了C语言 00:39:58

C语言的那些事儿 (1970年) BCPL – Martin Richards (1967年) B – Ken Thompson C – Dennis Ritchie (1972-1973年) 00:39:58

Ritchie和Thompson在开发UNIX 贝尔电话实验室 00:39:58

C语言的祖师爷——Dennis M. Ritchie C is quirky, flawed, and an enormous success. http://www.cs.bell-labs.com/who/dmr/ 00:39:58

中级语言 结构化编程语言 C 语言允许分割代码和数据 可以使用函数或代码块来实现这种特性 代码块是逻辑上连接在一起的一组程序语句,可以当作一个单元来使用 强类型语言 高级语言 C语言 汇编语言 00:39:58

C语言的特点 (1)语言简洁、紧凑,使用方便、灵活。 32个关键字、9种控制语句,程序形式自由。 (2)运算符丰富。34种运算符 。 (3)数据类型丰富,具有现代语言的各种数据结构。 (4)具有结构化的控制语句 ,是完全模块化和结构化的语言。 (5)语法限制不太严格,程序设计自由度大。 00:39:58

C语言的特点 (6)允许直接访问物理地址,能进行位操作,能实现汇编语言的大部分功能,可直接对硬件进行操作。兼有高级和低级语言的特点 。 (7)目标代码质量高,程序执行效率高。只比汇编程序生成的目标代码效率低10%-20%。 (8)程序可移植性好(与汇编语言比)。基本上不做修改就能用于各种型号的计算机和各种操作系统。 00:39:58

随着微型计算机的日益普及, 出现了许多C 语言版本。 说明: 随着微型计算机的日益普及, 出现了许多C 语言版本。 由于没有统一的标准,使得这些C 语言之间出现了一些不一致的地方。为了改变这种情况, 美国国家标准研究所(ANSI)为C 语言制定了一套ANSI标准, 成为现行的C语言标准。 00:39:58

说明: 不同版本的C编译系统所实现的语言功能和语法规则又略有差别,因此同学们应了解所用的C语言编译系统的特点(可以参阅有关手册)。 教材的叙述基本上以ANSI C 为基础。 00:39:58

问题:既然有了面向对象的C++语言,为什么还要学习C语言?(C过时了?) 解释3:面向对象的基础是面向过程。C++是面向对象的语言,C是面向过程的, C++学起来比C语言困难得多,所以不太适合程序设计的初学者。 有些大学 居然取消了C 语言课程,认为其过时了。我个人的观点是“十鸟在林,不如一鸟在手”,真 正把C 语言整明白了再学别的语言也很简单,如果C 语言都没整明白,别的语言学得再好 也是花架子,因为你并不了解底层是怎么回事。 00:39:58

编写C程序的步骤 打开编程环境 添加源文件 编写源程序 编译源程序 连接目标文件 执行可执行文件(.exe) 00:39:58

编译和运行程序 程序文本用户 #include文件 可以阅读 源文件 库文件 #编译器 将扩展的源代码 转换成机器语言 目标文件 将目标代码与函数链接 成可执行代码 其他用户生成 的目标文件 链接器 可执行文件 00:39:58

我们要使用的软件 Dev-cpp 4.9.9.0 我们还可能叫它编译器、集成开发环境、Compiler、IDE 00:39:58

我们的第一个C语言程序 在屏幕上打印Hello Boys and Girls 00:39:58

从函数开始 在数学领域,函数是一种关系,这种关系使一个集合里的每一个元素对应到另一个(可能相同的)集合里的唯一元素。 f(x)=x+2 x是自变量,随着x的变化,f(x)也随之变化 00:39:58

C语言的函数 C语言由很多个函数组成,每个函数完成一项任务 00:39:58

函数分为两种 一种是自己写的函数,这样的函数需要由我们自己完成任务(模块化程序设计) 一种是别人写的函数,它已经可以完成一项独立的任务,我们只需要调用它即可(前提?) 00:39:58

调用别人写的函数完成任务 如果我们需要请同宿舍的同学帮我们带一份外卖,需要进行哪些数据的传递? 00:39:58

函数的三个重要信息 叫什么名字 需要什么信息 返回什么信息 00:39:58

函数 所有的程序都必须有一个入口函数,叫做main,这个函数是由我们自己完成的 自己写的每个函数除了圆括号,还需要一对花括号 圆括号里面是我们需要的信息 花括号里面是我们为了完成我们的任务所做的工作 00:39:58

注意 C语言区分大小写 使用半角英文字符标点 小心拼写错误 00:39:58

注意 我们的这个函数名字叫做main 它暂时不需要任何信息,因此圆括号为空 那么它完成任务后返回什么结果呢? 00:39:58

函数 在main函数中,我们约定返回0代表程序正常结束,因此在花括号中加上return 0 记住每一条语句都以一个分号(;)结束 最后我们在main前面加上int 思考:int代表什么意思呢? 00:39:58

思考 现在我们已经有了一个程序的基本框架 接下来如何输出Hello Boys and Girls ? 00:39:58

注意 在屏幕上输出文字这项任务已经有人完成,将其写成了一个函数 我们只需要调用这个函数完成任务即可 00:39:58

00:39:58

输出语句 对应函数为printf,在括号中用双引号包含你想要打出来的内容,最后不要忘记分号结束 什么时候需要分号?参见编程注解 因为这个函数是别人写的,因此不需要花括号,也不需要花括号里面的内容 00:39:58

预处理器命令 因为我们在程序中使用了别人写的函数,因此需要在程序开头和编译器打个招呼 这个函数是存放在stdio.h文件中的,因此我们使用#include <stdio.h> Standard Input Output Header头文件 打招呼放在程序最开始,后面没有分号 00:39:58

运行程序 存盘,文件扩展名为c 编译——如果程序有问题,在这个阶段会报错 注意这个步骤实际上包括了编译与链接 运行 00:39:58

一个小问题 这个编译器运行程序后,结果一闪而过,因此我们所有的程序都需要在最后增加一句话,让他暂停下来,帮助我们看清楚 system( “pause” ); 再运行,就能看清效果 注意:函数只要遇见return,就会马上结束,请特别留意所加这句话的位置。 00:39:58

注意 代码中的空行 换行 空格 不会对输出产生任何影响 双引号中间的空格会原样输出 00:39:58

思考 如果希望让输出结果后换到新一行,要怎么做呢? 00:39:58

良好的编程习惯 永远在最后输出一个换行字符 \n newline 00:39:58

注释 程序为了方便自己也方便别人看懂,需要增加一些说明——注释 注释用/* */包含,中间不管写什么,编译器都不会处理 00:39:58

良好的编程习惯 给程序写注释,在每个函数前面说明函数的作用 注释尽量用英文 00:39:58

写好代码的12个步骤 Do you use source control? Can you make a build in one step? Do you make daily builds? Do you have a bug database? Do you fix bugs before writing new code? Do you have an up-to-date schedule? Do you have a spec? Do programmers have quiet working conditions? Do you use the best tools money can buy? Do you have testers? Do new candidates write code during their interview? Do you do hallway usability testing? 00:39:58

写好代码的12个步骤 是否使用源码控制软件? 是否可以一步构建一个build? 是否进行daily build? 是否有bug数据库? 是否及时更新了你的时间表? 是否有详细的设计规格说明书? 程序员是否有个安静的工作环境? 是否在使用金钱可以买到的最好的工具? 有没有测试人员? 面试的时候是否要求求职者写代码? 是否利用陌生人进行可用性测试(直译为走廊过客可行性测试)? 00:39:58

小结: (1) C程序总是从main函数开始执行的,与main函数的位置无关。 (2) C程序书写格式自由,一行内可以写几个语句, 一个语句可以分写在多行上,C程序没有行号。 (3) 每个语句和数据声明的最后必须有一个分号。 (4) C语言本身没有输出语句。输出的操作是由库函数printf等函数来完成的。C对输出实行“函数化”。 00:39:58

C语言的基本结构 说明: main-主函数名, void-函数类型 每个C程序必须有一个主函数main { }是函数开始和结束的标志,不可省 #include <stdio.h> //命令行部分 void main() { int a; int b; int sum; printf("请输入a的值:"); scanf("%d",&a); //给a赋值 printf("请输入b的值:"); scanf("%d",&b); //给b赋值 sum=a+b; printf("sum=%d\n",sum); /*输出sum的值*/ } 主函数 定义部分 说明: main-主函数名, void-函数类型 每个C程序必须有一个主函数main { }是函数开始和结束的标志,不可省 每个C语句以分号结束 使用标准库函数时应在程序开头一行写: #include <stdio.h> 函数体 执行部分 00:39:58

今日内容 了解课程要求与授课老师 认识C语言的祖师爷 了解C语言的编译运行 00:39:58