c语言第1章 程序设计ABC_第1页
c语言第1章 程序设计ABC_第2页
c语言第1章 程序设计ABC_第3页
c语言第1章 程序设计ABC_第4页
c语言第1章 程序设计ABC_第5页
已阅读5页,还剩59页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第1章程序设计ABC南华大学计算机科学与技术学院陈星(8栋-404)16906199级语言程序设计I来大学学什么?什么是“会计算机”?会打字?会编程?会DIY?会上网?会“黑客”?……懂原理、能应用、有创新需要了解

深入的“原理”吗?只要使用C语言,就必须知道“原理”浮于表面的使用,是无法发挥C语言的优势的如果他不需要知道“原理”,肯定他不用C语言,那么就不该让他学C语言“原理”涉及到计算机原理编译原理操作系统算法与数据结构软件工程原理为纲C语言自身的原理指针的原理数组的原理函数调用的原理内存分配的原理栈和堆人性为本在原理基础上,C语言为了让人使用方便,有很多人性化的设计比如:charsz[]=“AString”;+-*/if-else逻辑运算面向应用C语言是用来实践的。能应用,比掌握一些生僻的用法更重要应用中最信奉的就是“简单为美”软件工程思想在应用中也非常重要结果正确不能说明程序好没有绝对科学没有金科玉律,计算机科学更是如此在不同的环境下,相同的观点会产生不同的效果简单为美是基本准则,但是在用C书写像OS核心这样的代码时,效率很关键,就不能追求“简单”了把选择权留给自己,有自己的观点来大学学什么?计算机系本科生的未来之路科学家从业于大学、研究院等前瞻性地科研工作工程师从业于公司企业面向最终产品软件工程师硬件工程师其它管理、销售、政治更高的学历通常是必要的来大学学什么?自学知识计算机基本操作打字Windows、Word等常用软件网络基本的DIY广阔的领域了解对新概念、新知识、新事物的关注关注不等于盲目追新推荐读物《计算机文化》 ,JuneJamrichParsons;DanOja著,机械工业出版社《CSDN开发高手》、《电脑报》、《程序员》、《计算机世界》来大学学什么?课堂学习可持续发展的必备知识基本理论、思想、技术一定的新知识关键是学会思考“学而不思则罔,思而不学则殆”尊重权威人士,藐视权威理论容易被忽视的数学、英语、语文大四时我们要做到对任何名词都能点评一二,并有自己的见解有自己的兴趣方向,并愿意对其深入研究能熟练应用至少一门编程语言,写过至少一个小软件(课外)发现了学习的乐趣,有极其强烈的学习欲望学习的最终目的知道自己还远没有学会知道自己以后怎样继续学知道自己肯定能自己学会,并找到学习的乐趣与动力未来之路属于我,

我自己走,

并自己决定怎么走!Whatisacomputer?AComputerisadevicecapableofperformingcomputationsandmakelogicaldecisionsatspeedsmillions(evenbillions)oftimesfasterthanhumanbeingscan.目前,最快的supercomputers可每秒执行trillionsofadditions

目前的PC机可每秒执行十亿次加法人用计算器一生也完不成PC机1秒钟完成的计算量计算机行业的梦想计算机行业的梦想与人自然交流,像人一样地思考人工智能(ArtificialIntelligence)图灵测试1950年,英国数学家A.M.Turing在思想(mind)杂志上发表“计算机与人工智能”一文,提出判定机器是否具有智能的测试方法计算机行业的梦想博弈被认为是智能活动,AI之初主要研究下棋程序1997年,IBM公司研制的深蓝超级计算机在一场“人机大战”中打败了国际象棋大师卡斯帕罗夫被誉为“人工智能的一大胜利”世界排名第二的棋手印度人阿南得说:这是一个像人的机器和一个像机器的人之间的战斗深蓝的主要研制者之一许峰雄博士:胜利靠的只是不知疲倦地高速运算,并不是什么智能深蓝中输入了近200万棋谱计算机与信息技术计算机技术与通信技术结合,构成了信息技术(InformationTechnology),诞生了一个新词:IT嵌入式系统是IT未来的主要发展方向之一典型的嵌入式系统有:机器人、手机和智能家电等Whatisacomputer?硬件(hardware)键盘、鼠标、显示器、硬盘、DVDs、内存、CPU…硬件成本下降很快摩尔定律每过18个月微芯片的集成度翻一番,而芯片价格保持不变软件(software)运行于计算机之上的程序(Program)如何降低软件开发成本?硬盘CPU内存计算机基本工作过程整个过程的执行者是硬件,但硬件是受软件控制的编程,就是编写软件,使硬件按照人的意图工作“冯·诺依曼机”结构输入/输出设备存储器运算器控制器源程序和输入数据输出结果取出数据存入数据操作命令存取命令取出程序指令输入输出命令计算结果CPU大脑记忆装置眼睛和耳朵程序设计语言(ProgrammingLanguage)是人与计算机进行交流的语言计算机直接能读懂的语言机器语言(MachineCode),也叫机器代码一种纯粹的二进制语言程序设计语言计算机为什么用二进制呢?为什么不用我们日常熟悉的十进制呢?二进制在在电器元件中容易实现计算机进行二进制运算比进行十进制运算简单

1946年,冯.诺伊曼在计算机中引入二进制,提出著名的冯.诺伊曼结构,至今仍被采用,被誉为“计算机之父”人与计算机的对话两个说不同母语的人的对话方式:一方学另一方的语言双方都学习一种第三方语言人与计算机的对话方式:计算机学习人的语言(自然语言理解)人学习计算机的语言学习第三方语言Whatisprogramminglanguage?计算机能读懂的语言——机器语言(MachineLanguage)由一系列二进制0和1组成机器语言编写的1+1程序低级语言像不像天书?MOVAX,1101110000000000100000000ADDAX,1000001010000000100000000Whatisprogramminglanguage?PRINT1+1结果显示在屏幕上#include<stdio.h>main(){ printf("%d\n",1+1);}程序设计语言(programminglanguage)BASIC语言编写的1+1程序C语言编写的1+1程序既不是英语,也非机器语言但更像英语高级语言比写机器语言程序容易,但比使用英语难Whatisprogrammer?编写程序源代码(SourceCode)的人程序员(Programmer)计算机、程序员、程序之间的关系如果计算机是乐队,那么程序员就是指挥家,程序就是乐谱。如果计算机是军队,那么程序员就是总司令,程序就是作战计划。怎样让计算机读懂高级语言?编译器(Compiler)把源代码转换为可被计算机理解的机器代码把机器代码以可执行文件(ExecutableFile)的形式保存在磁盘上一种程序设计语言对应一种编译器怎样让计算机读懂高级语言?程序员按照该语言的语法编写程序源代码把自己的意图写入源代码中编译器读入源代码把程序员的意图转换成可执行程序,供他人使用C语言可执行程序编译器怎样让计算机读懂高级语言?程序设计语言是人与计算机进行交流的语言有很多种,分别适合做不同的事情现在人还只能主动学计算机的语言做不到计算机学会人的语言当计算机懂了人的自然语言,就几乎不再需要编程,想让计算机干什么,尽管对着它说好了,那时程序员可能也就失业了。程序是如何运行的?计算机把机器代码读入到内存(Memory)由CPU运行这些代码读取输入(Input)产生输出(Output)完成程序员预定的功能计算机专业后续课程计算机原理编译原理操作系统程序和数据硬盘CPU内存执行结果程序开发步骤Whatistobedone?可执行文件扩展名为.exe的文件

分析(Analysis)设计(Design)编码(Write)编辑(Edit)编译(Compile)链接(Link)运行(Run)调试(Debug)Howisittobedone?扩展名为.c的文件(对C而言)扩展名为.obj的文件计算机语言与人类语言自然语言:人类为了交流思想、表达感情、交换信息,逐步发明了语言。

人工语言:为了某种专门需要,人类又发明了一些新的交流工具。程序设计语言:人类为了能够更好地与计算机进行交流与通讯,发明了专门与计算机打交道的交流工具。篇、章句子或段落=词或词组+语法

词或词组=字+语法

自然语言的构成字文章构造单元程序设计语言的构成基本单元词:常量、变量、函数句子:语句篇章:程序编程并不神秘,与从小母语或自然语言如一门外语的学习有许多相似之处。语法规则程序设计规则计算机语言是一种跨国界的世界通用的语言,通过编程可以表达自己的思想,互相交流!高级程序员可以通过一个人编写程序的风格判断出这个人的习惯、性格。编译运行编译过程程序员(Programmer)编写程序源代码(SourceCode)编译器(Compiler)把源代码转换为可被计算机理解的机器代码(MachineCode),并把机器代码以可执行文件(ExecutableFile)的形式保存在磁盘上软件的运行计算机把机器代码读入到内存(Memory),由CPU运行这些代码,读取输入(Input),产生输出(Output),完成程序员预定的功能解释运行解释运行过程程序员编写程序源代码解释器读入源代码,并执行源代码解释运行的语言特点执行速度慢好学易用先编译、后解释把源代码编译成更容易解释的中间代码,然后再解释运行存储空间地址的概念什么是地址哪?存放二进制数0,1的装置称为位,为便于计算机管理,将每8个二进制位分成一组,称为字节。为便于计算机管理这些字节,将每一个字节进行编码,该编码唯一识别字节,这个编码就是存储空间的地址。哈哈,我知道了,计算机是通过这些编码,即存储空间地址来访问存储单元的。太好玩了,地址是数字编码。计算机存储模型内存的地址房间号房间里的住客内存中的内容,包括数据与程序200020012002200320052004计算机存储模型与房间安排对照图高级语言的魅力易学、易用、易读、易懂、强大、可移植百家争鸣,据不完全统计2500种,绝大多数是高级语言/~nkinners/LangList/Extras/langlist.htm可看到其列表和简介影响最大、寿命最长的是C语言程序设计语言数以千计,能广为流传的不过几十种,能够风光20年的更是屈指可数流行的高级语言应用编程语言机器语言汇编语言BasicPascalCC++JavaC#专项编程语言LotusNotesPowerBuilderWeb编程语言HTMLXMLPHPASPJSPJavaScriptVBScript其他perlpythonVBA/lang/搜集了大约50种极具代表性的语言的故事和资料有最好的编程语言吗?Pascal的学院气息Java的效率问题C#的中庸之道,个性不鲜明VisualBasic的稚嫩面孔Smalltalk的实验风格Ada的集大成,但又琐碎和繁冗C++的难学易用有最好的编程语言吗?能很好的解决问题的语言就是好语言。Fortran已问世50年,仍然是科学计算首选C语言辉煌30年,至今老当益壮C++已度过其20岁生日,相信属于它的日子还很长很长在最恰当的地方,最恰当的时候,选择最恰当的语言,同时防止跌入语言自身的陷阱。C语言的创世纪一切从一个叫“SpaceTravel”的电子游戏开始……为了让他的游戏能在PDP-7上运行,KenThompson用汇编语言给PDP-7写了一个操作系统——UNIX汇编太不好用了,Thompson需要高级语言试验了一些高级语言,包括Fortran,都不理想他在BCPL基础上,自己设计了一个B语言UNIX开始发展,B也不够用了DennisRitchie加入,把B改造成C开始用C重写UNIXRitchie和Thompson在开发UNIXC语言的设计者

DennisM.RitchieRitchie漫画像和Unix的设计者KenThompson

接受美国国家技术勋章C程序设计语言是一种高级语言高级语言并不是“高级”,只是相对低级语言,在一个高的级别上进行编程历史悠久,战勋卓著诞生于上世纪70年代初,成熟于80年代“ANSIC”标准的发布是C语言成熟的标志很多重量级软件都是用C写的上天入地,无所不能几乎没有不能用C写出来的软件,没有不支持C的系统C程序设计语言C语言被分类为高级语言,但实际上它是一种介于高级语言和低级语言之间的语言。很多流行语言、新生语言都借鉴了它的思想、语法从C++,到Java,再到C#正确地学好C语言,是学习这些流行语言的基础。C程序设计语言的地盘硬件(Hardware)操作系统(OS)应用程序

(Application)应用

平台基于

平台的

应用

程序低级语言的地盘高级语言的地盘C语言的地盘C程序设计语言的地盘以往的擅长:与操作系统和基础工具有关的编程任务操作系统核心,设备驱动程序,系统工具,网络应用,编辑器,字处理工具,编译器,某些图形和GUI应用,以及数据库应用未来的发展:高性能、实时中间件,嵌入式领域,并发程序设计等怎样学好编程?学习编程最好的方法之一就是阅读源代码熟读唐诗三百首,不会做作诗也会吟多读书,积累编程技巧擅于利用身边的工具与环境学习编程的秘诀是:编程,编程,再编程!何以解忧,唯有编程!优秀程序员的基本素质扎实的基础。数据结构、离散数学、编译原理程序人人都会写,但当你发现写到一定程度很难再提高的时候,就应该想想是不是要回过头来学学这些最基本的理论。不要一开始就去学OOP,即使你再精通OOP,遇到一些基本算法的时候可能也会束手无策。优秀程序员的基本素质丰富的想象力。不要拘泥于固定的思维方式,遇到问题的时候要多想几种解决问题的方案。优秀程序员的基本素质不滥用技巧技巧的优点:能另辟蹊径的解决问题缺点:不为人所熟知,可读性差,容易留下隐患滥用技巧不是锦上添花,而是画蛇添足失败的技巧常被讽刺为“伎俩”《卖油翁》的故事优秀程序员的基本素质不钻牛角尖。当你遇到障碍的时候,不妨暂时远离电脑,看看窗外的风景,听听轻音乐,和朋友聊聊天。让负责编

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论