版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
计算机程序设计01计算机系统的工作原理硬件软件系统软件:OS、编译系统应用软件计算机系统CPU、内存外存输入/输出设备计算机系统的工作原理计算机硬件系统计算机软件系统CPU输入设备键盘、鼠标触摸屏扫描仪输出设备显示器打印机音箱外存光盘、硬盘、U盘、磁带程序/数据程序/数据运行结果运行结果主存计算机系统的工作过程内
存内存的组织——存储单元内存的功能——数据存入和取出存储的数据类型——二进制数据内存的组织存储单元(1byte)存储单元地址线性排列存储的内容程序指令数据计算结果内存地址010000010x10010x10020x10030x10040x10050x10060x10070x1008地址内容二进制1bit0或11Byte=8bits00000000~111111111KB(Kilobyte)=1024bytes=210B
1MB(Megabyte)=1024KB=220B
1GB(Gigabyte)=1024MB=230B1TB(Terabyte)=1024GB=240B1PB(Petabyte)=1024TB=250B1EB(Exabyte)=1024PB=260B1ZB(Zettabyte)=1024EB=270B1YB(Zettabyte)=1024ZB=280B二进制数据解释假设1Byte内容为:01000001。对该内容,计算机可有多种不同的解释:一个整数—01000001表示十进制整数65,直接进行二进制到十进制的转换,一个字母—01000001编码表示字符‘A’,计算机使用ASCII编码表示字符。一条指令—01000001也许告诉计算机两个数相加如何解释一个比特流取决于计算机在做什么?存储和取出开机后,内存单元中每一位的状态并不是0,而是不可控制、随机的。信息的存储:重新设置存储单元的每一位为0或1。信息的取出:复制存储单元的内容到另一个存储位置,例如CPU的寄存器。02计算机问题求解计算机问题求解的步骤又叫程序思维(ProgramminThinking)“理解问题-找出路径”的思维过程,包含分解、识别、抽象、算法四个步骤将复杂问题拆分若干个相对容易的小问题,对每个小问题单独进行考察,找到合适的解决方案模板。然后,聚焦到几个重要节点,忽略细枝末节,形成问题的初步解决思路。最后设计出具体的解题步骤编程思维是一种解决问题的思维方式,其核心在于如何分解问题,从中发现规律性,建立解决问题的模型并映射到合适的数据结构和解题方法上,最终形成相应的算法编程思维步骤:分析问题设计算法编写程序调试运行分析问题
计算机角度输入输出解题方法数学角度已知条件求解对象解题思路阶段成果:数学模型设计算法
计算机求解问题的关键之一在于算法,算法提供了利用计算工具求解问题的技术。对同一个问题,可有不同的解题方法和步骤广义地说,为解决一个问题而采取的方法和步骤,就称为“算法”(Algorithm)第一步:拿出茶杯,用沸水洗干净;第二步:抓取少许茶叶倒入茶杯内;第三步:往茶杯内倒入适量的沸水;第四步:放置至温度合适即可饮用。例:求解实数方程ax+b=0,其中参数a和b由键盘上输入。
第1步:输入a和b的值;第2步:若a≠0,则方程的解为x=-b/a。转入第4步;第3步:若a=0,这时不能简单弃之不理,还需要对b进行讨论:(1)如果b=0,方程的解为全体实数;(2)如果b≠0,方程没有实数解。第4步:输出方程的解;第5步:结束。算法有优劣之分。为了有效地进行解题,不仅需要保证算法正确,还要考虑算法的质量,选择合适的算法(方法简单,运算步骤少)。方法1:1+2,+3,+4,一直加到10099次加法方法2:100+(1+99)+(2+98)+…+(49+51)+50=100+49×100+50
50次加法例:求
算法的特点有穷性:包含有限的操作步骤确切性:算法中的每一个步骤都应当是确定的有效性:算法中的每一个步骤都应当能有效地执行,并得到确定的结果输入项:输入是指在执行算法时需要从外界取得必要的信息。有零个或多个输入输出项:算法的目的是为了求解,“解”就是输出。有一个或多个输出
算法包含的操作算术运算:加、减、乘、除、求余数…关系运算:大于、小于、等于、不等于…逻辑运算:逻辑与、逻辑或、逻辑非数据传输:输入、输出、赋值…其他运算数值运算算法:主要是求数值解,如公式求值、求方程的根、计算函数的定积分等非数值运算算法:主要应用于数据管理、事务管理、实时控制、过程控制、定理证明等诸多领域
算法的分类描述算法的工具自然语言流程图N-S流程图PAD图伪代码…自然语言就是人们日常使用的语言用自然语言表示通俗易懂。但文字冗长,容易出现“歧义性”南京市长江大桥自然语言表示的含义往往不大严格,要根据上下文才能判断其正确含义,描述包含分支和循环的算法时不方便除了极简单问题外,一般不用自然语言描述算法自然语言美国国家标准化协会ANSI(AmericanNationalStandardInstitute)规定了一些常用的流程图符号:流程图例:用流程图表示求1+2+3+…+100的算法传统流程图的弊端传统流程图用流程线指出各框的执行顺序,对流程线的使用没有严格限制使用者可以毫不受限制地使流程随意地转向,使流程图变得毫无规律,阅读者要花很大精力去追踪流程:这种如同乱麻一样的算法称为BS型算法(ABowlofSpaghetti),乱无头绪。缺点:难以阅读、修改,使算法的可靠性和可维护性难以保证解决办法:限制箭头的滥用,即不允许无规律地使流程随意转向,只能顺序地进行下去
1972年由美国学者I.Nassi和B.Shneiderman提出,是一种新的流程图形式在这种流程图中,完全去掉了带箭头的流程线。全部算法写在一个矩形框内,在该框内还可以包含其它的从属于它的框N-S流程图例:用N-S图表示求1+2+3+…+100的算法N-S流程图表示算法的优点比文字描述直观、形象、易于理解,比传统流程图紧凑易画废除了流程线,流程不可能出现无规律的跳转,流程图中的上下顺序就是执行时的顺序整个算法由各个基本结构按顺序组成的,用N-S流程图表示的算法都是结构化的算法问题分析图,1973年由日本日立公司创立,其用二维树形结构的图来描述算法。PAD图例:用PAD图表示求1+2+3+…+100的算法概念:伪代码是用介于自然语言和计算机语言之间的文字和符号来描述算法。特点:它如同一篇文章一样,自上而下地写下来。每一行(或几行)表示一个基本操作。不用图形符号,书写方便、格式紧凑,易懂,便于向程序过渡。用处:适用于设计过程中需反复修改时的流程描述。伪代码例:用伪代码表示求1+2+3+…+10的算法时间复杂性:反映执行当前算法所消耗的时间情况。通常用“大O符号表示法”表示,即T(n)=O(f(n))空间复杂性:反映执行当前算法需要占用的内存空间情况。空间复杂度是对一个算法在运行过程中临时占用存储空间大小的一个量度,同样反映的是一个趋势,一般用S(n)来定义,即S(n)=O(f(n))
算法的效率编写程序算法实现变量定义数据输入程序语句结果输出解题算法数学符号获取数据解题步骤求得结果调试运行编译程序链接资源运行程序分析结果华氏温度到摄氏温度的转换
国际上许多国家使用华氏温度为单位,而中国使用摄氏温度为单位,现在希望编写程序以实现华氏温度到摄氏温度的转换。案例:分析问题
设计算法第1步:获得华氏温度的数值第2步:将华氏温度转换成摄氏温度第3步:显示摄氏温度的数值编写程序定义变量两个变量分别表示华氏温度、摄氏温度数据类型:浮点型
数据处理确定华氏度转换数据输出摄氏度/*华氏温度到摄氏温度的转换*/#include<stdio.h>intmain(){floatf,c;//定义f和c为单精度浮点型变量
f=32;//确定f的值
c=(5.0/9)*(f-32);//利用公式计算c的值
printf("f=%f\nc=%f\n",f,c);//按行输出f和c的值
return0;}运行求解03计算机程序需要设计计算机程序简称“程序”,一组计算机能识别和执行的指令序列程序在计算机中是以0、1组成的指令代码来表示的计算机的一切操作都是由程序控制的只要让计算机执行这个程序,计算机就会自动地、有条不紊地进行工作优秀的程序:逻辑清晰、代码冗余少、可读性好,健壮性、可移植好、执行时间短,内存占用量小……怎样获得优秀的程序?精巧设计数据结构+
算法=程序NiklausWirth1984年度图灵奖获得者、Pascal之父如何设计程序?数据结构:即指定处理数据的类型和存储方式。数学模型中涉及很多数据,需要用恰当的数据结构来进行处理和保存。不同数据结构,性能会有差异算法:指定对数据的操作步骤,即进行控制结构的设计。算法设计时,除了要保证算法的正确性和效果外,还需要考虑算法的复杂性。算法的复杂性包括算法的时间和空间复杂性
除此之外,还必须借助于一个与计算机交互的平台,即程序设计语言和环境
数据结构+算法+程序设计语言=程序程序设计的实质:数据结构的设计与
控制结构的设计程序设计语言也叫计算机语言:人和计算机交流信息的、计算机和人都能识别的语言计算机语言发展阶段:机器语言(由0和1组成的指令)符号语言(用英文字母和数字表示指令)高级语言(接近于人的自然语言和数学语言)面向过程的语言(非结构化的语言、结构化语言)面向对象的语言低级语言算法漫谈中国科学院资深院士张效祥:“计算机科学就是算法的科学”硬件:计算机系统的物质基础软件:计算机系统的上层建筑算法:计算机系统的灵魂计算机领域竞争的焦点就是算法竞争(以中美为例)中国硬件方面:天河系列、神威系列、曙光系列、联想等,但高端的芯片、智能工业机器人等硬件目前几乎不能生产…软件方面:虽然古代数学曾经无比辉煌,现代有TikTok等企业,但全面落后,缺芯少魂:缺少核心算法,原创的操作系统等这些关键软件也要依靠进口,面临卡脖子窘境…美国硬件方面:IBM、Intel、HP、Apple…软件方面:Microsoft、Google、Oracle、IBM…每个中国人在为新中国的伟大成就自豪的同时,应该居安思危、增强忧患意识。危机既是“危”也是“机”。“在危机中育新机、于变局中开新局”习近平“我们不能在这场科技创新的大赛场上落伍,必须迎头赶上、奋起直追、力争超越”科技强则国家强。大学生要肩负起时代重任,关注超越自身的利害、荣辱、成败,将世界、社会、国家、人民的前途命运萦系于心,勇于创新,实现中国梦04初识C语言最好的入门语言C语言是国际上广泛流行的计算机高级语言之一语法结构简洁、灵活方便,功能丰富,表达力强,易于描述问题和算法,程序可读性好,易于调试、修改和移植,代码质量高,非常适合初学者开发语言世界排行榜TIOBE,每月更新一次,其结果反映了业内程序开发语言的热门程度。过去30年中,90%的时间里,C语言都是独领风骚的,仅偶尔被Java或Python超越。在2023年8月公布的TIOBE排行榜中,前四名分别为Python、C、C++和Java为什么是C语言?能够使用户能深入系统底层,目前市面上流行的操作系统,很多都是用C语言写的,如Windows、Unix、Linux、Mac等如果想了解计算机硬件的体系结构,C语言是必须要深刻掌握的语言,它已经把硬件的运行效率压缩到了极致,使得它比C++、Java、Python语言等更接近机器开源代码很多都是基于C语言实现,通过加入开源社区可以学习标准的代码规范,基于开源项目进行软件开发,提升自身的项目经验,了解最前沿的技术发展方向Code::Blocks
20.03集成开发环境VisualC++6.0集成开发环境对源程序***.c中以“#”开头的预处理命令进行处理。C编译系统会将#include命令后面的.h文件内容插入到原来的源程序文件中,形成一个新的源程序文件***.i由编译程序(或编译器)对预处理后得到的源程序文件***.i进行编译(词法分析、语法分析、语义分析、代码生成与优化、存储分配等),生成一个汇编语言源程序文件***.s由汇编程序(或汇编器)对汇编语言源程序文件***.s进行汇编,生成一个可重定位的目标文件***.o(重定位是指重新确定代码和数据的地址并更新指令中被引用符号地址)由链接程序(或链接器,Linker)将多个可重定位目标文件和标准函数库中的可重定位目标文件及其他目标文件等进行组合,装配为一个可执行目标文件***.exe在C环境下运行可执行文件***.exe,系统会用加载器(Loader)复制可执行文件到内存中,启动指令执行,从而得到运行结果HelloWorld.c源程序文件的存放方式要求在屏幕上输出以下一行信息
ThisisaCprogram.解题思路:
在主函数中用printf函数原样输出以上文字。简单的C程序举例#include<stdio.h>int
main
(
){
printf("ThisisaCprogram.\n");return0;}/*文件包含*//*主函数*//*函数体开始*//*输出语句*//*函数体结束*/说明:main-主函数名,void-函数类型每个C程序必须有一个主函数main{}是函数开始和结束的标志,不可省每个C语句以分号结束使用标准库函数时应在程序开头一行写:
#include<stdio.h>#include<stdio.h>intmain(){
printf(”ThisisaCprogram.\n”);return0;}函数的名字,表示主函数C程序必须有一个
main函数#include<stdio.h>intmain(){
printf(”ThisisaCprogram.\n”);return0;}主函数类型#include<stdio.h>intmain(){
printf(”ThisisaCprogram.\n”);return0;}
函数体#include<stdio.h>intmain(){
printf(”ThisisaCprogram.\n”);return0;}
输出函数输出语句#include<stdio.h>intmain(){
printf(”ThisisaCprogram.\n”);return0;}
输出语句#include<stdio.h>intmain(){
printf(”ThisisaCprogram.\n”);return0;}
换行符#include<stdio.h>intmain(){
printf(”ThisisaCprogram.\n”);return0;}
当main函数执行结束前将整数0作为函数值#include<stdio.h>intmain(){
printf(”ThisisaCprogram.\n”);return0;}
表示语句结束用到函数库中的输入输出函数时中国古代数学“鸡兔同笼”问题设有a只鸡,b只兔a+b
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2026学年河北省唐山市玉田县爱英才联考高三上学期开学检测语文试题
- 2025-2026年按摩推拿理疗师职业资格认证考试试卷
- 2025-2026年考研化学有机化学结构解析与反应机理习题
- 2025-2026年公务员考试申论作文素材积累与运用模拟试卷
- 电商双十一大促直播间互动促单逼单憋单营销话术及切款排品过款脚本的逐字稿
- 中班春天主题响亮的大鼓教案反思
- 2026加油站、加油车风险评估
- 医疗保障经办政务服务事项清单(2023年版)
- Unit 5 What a Delicious Meal Section A (1a~1d) 同步练习人教版英语八年级上册
- 外科无菌技术试题及答案-
- 2026年机关事业单位工勤人员计算机操作员高级工考试试题及答案
- 4、《走进新能源汽车》教案 第四章 新能源汽车的未来不是梦 4课时
- 大连船舶重工集团笔试题目及答案
- 部编人教版一年级数学上册教案(全册)
- 2026年秋季学期苏教版一年级上册数学教学计划含进度表
- 蓄热式热力焚化炉阀门切换时序检查作业指导书
- 基坑深层水平位移监测施工方案及工艺方法
- 2026年上半年教师资格证考试信息技术学科真题及解析附答案
- 隐翅虫皮炎防控科普
- 通辽医院医疗垃圾原位处理建设项目环境影响报告表
- 涉氨考试题(ABC及答案)
评论
0/150
提交评论