北京大学《计算概论》课件:ch14-c语言编程应用
北京大学计算概论-课件:ch02-2-计算机-互联网-信息社会
2019/10/11
北京大学
9
1.2 计算机的发展历史
——第一台现代意义上的计算机:EDVAC
EDVAC (Electronic Discrete
Variable Automatic Computer)
1945年提出设计方案, 1951年完成
1.1 信息与信息社会
信息处理技术的几个历史里程碑
1、发明文字
使得 信息 得以在 更大的范围内 跨越时间和空间 而传播
2、发明算术
使得 量化的数字信息 可以被 加工和变换
3、发明活字印刷
使得 大量信息的批量复制 成为可能,使信息成为一种可大规 模共享的资源
4、计算机和互联网的出现
目前,通用数字计算机和计算机互联网络的出现,使得全球性
1986年,美国国家科学基金会NSF资助建成了基于TCP/IP技术的主干 网NSFNET,世界上第一个互联网产生;2019年,NSFNET开始商业 化运行
1994年,中国建设了CERNET示范网工程;中国第一个全国性的 TCP/IP互联网
截止2019年,全球互联网的用户数量已达24亿
2019/10/11
第一代计算机:1940年代 冯诺伊曼体系结构,电子管 第二代:晶体管 第三代:集成电路 第四代:大规模集成电路 第五代:生物,量子等
Internet时代:1990年代开始
姚期智:下一代互联网是量子网络
techweb/people/2019-09-02/1088896.shtml
北京大学
23
1.5.2 局域网——互联网的细胞
局域网中的硬件成分
计算机:
网卡(NC)
计算概论与程序设计基础 北京大学 2 计算机的历史与未来 (2.2.1) 课件
⏹时间:20世纪40、50年代⏹主要特点◆使用真空管存储数据●真空管是一种控制真空中电子流动的电子装置●被设置为两个状态以表示0或1●响应比机械快,但体积大、耗能高、易烧坏●ENIAC有18000个真空管,第一年运行就替换了19000个⏹只能使用0/1进行编程◆111000000100101100110 …⏹始于20世纪50年代后期⏹主要特点◆使用晶体管存储数据●晶体管由贝尔实验室于1947年发明●功能与真空管类似,但更小、更便宜、功耗更少、更可靠◆产生操作系统●标准化的硬件资源管理●但不可移植◆产生高级编程语言●Fortran, Cobol⏹始于20世纪50年代后期⏹晶体管计算机◆使用晶体管存储数据◆晶体管比电子管更快、更小。
更便宜,更可靠●不需要预热时间,不会产生热量,不会烧坏,它也不会漏气和爆烈。
●电子管需要1瓦特的功率,晶体管只要百万分之一瓦特。
⏹1948年1月23日贝尔实验室⏹1956年诺贝尔物理学奖William Shockley威廉·肖克利(1910-1989)⏹始于1965年⏹主要特点◆使用集成电路●集成电路可将成千上万的真空管或晶体管压在一个单独的微型芯片上●1958年由德州仪器公司发明◆操作系统可移植◆C 语言产生Jack St. Clair Kilby 杰克·基尔比(1923年-2005)⏹始于1965年◆集成电路可将成千上万的真空管或晶体管压在一个单独的微型芯片上⏹1958年9月12日德州仪器公司◆“我坐在桌子前,待的时间好像比平常晚一点”◆“我的工作可能引入了看待电路部件的一种新角度,并开创了一个新领域,自此以后的多数成果和我的工作并无直接联系”◆2000年,诺贝尔物理学奖Jack St. Clair Kilby杰克·基尔比(1923年-2005)⏹始于20世纪70年代⏹主要特点◆使用超大规模集成电路◆更快、更小、更便宜⏹第一块微处理器是1971年制造的Intel 4004●2400个晶体管,计算能力与ENIAC 相当●但尺寸只有3毫米x 2毫米●而ENIAC 尺寸为30米长,3米高⏹计算机发展出现瓶颈◆硬件、软件全方位地出现瓶颈◆第5代计算机正在酝酿中……⏹1965年Intel 公司创始人之一G.Moore提出◆芯片密度每18个月增加1倍;●1972年第1代Intel4004 芯片总共不到3000晶体管●Intel Pentium 芯片元件数达到千万数量级◆CPU 性能价格比大约18个月翻一番●芯片工作速度已经达到10000 MIPS 的工作频率(MIPS,MillionInstruction Per Second)●速度越来越快,价格越来越便宜现代计算机⏹全称:“通用电子数字计算机”(General ‐Purpose ElectronicDigital Computer)◆通用:计算机是一种通用信息处理设备,只要有合适的软件,它能适用于各种用途◆电子:是计算机硬件实现的物理基础,计算机的运行最终都通过电子电路中的电流、电位等实现◆数字化:是计算机的信息表示方式。
计算概论与程序设计基础 北京大学 9 C语言中的控制成分 (9.1.1) 课件
#include<iostream> using namespace std; int main() {
char grade = 'a'; cin>>grade; switch (grade) { case 'a': cout << "85~100" << endl; case 'b': cout << "70~84" << endl; case 'c': cout << "60~69" << endl; case 'd': cout << "<60" << endl; default: cout << "error" << endl; } return 0; }
多分支语句
Switch语句的一般形式如下:
switch(表达式) {
case 常量表达式1: 语句1; case 常量表达式2: 语句2;
…; case 常量表达式n: 语句n; default: 语句n+1; }
当表达式的值与某一个case后面的常量表达式的值相等时,就 执行此case后面的语句,若所有的case中的常量表达式的值都 没有与表达式的值匹配的,就执行default后面的语句。
分支语句
#include<iostream>
using namespace std;
int main()
{
float weight = 0, height = 0, healthRate = 0;
《C语言程序设计及应用》课件第1章程序设计基础
C语言程序设计及应用
第 1章
目录 上一页 下一页 退出
1.1.2 算法
开始
输入 n 的值
A=1 SUM=1
SUM=SUM*A
A=A+1
Y
A≤n
N
输出 SUM 的值
C语言程序设计及应用 结束
第 1章
1.1.2 算法
目录 上一页 下一页 退出
3. 伪代码
(3)使A增加1。
(4)如果A≤ n,跳到步骤(2);如果A>n, 则算法终止,此时SUM中的值就是所求的结 果。
C语言程序设计及应用
第 1章
1.1.2 算法
目录 上一页 下一页 退出
1. 自然语言
前面的【例1-1】就是用自然语言 描述的。
2. 传统流程图
【例1-1】的传统流程图表示如下一 页的图示。
C语言程序设计及应用
第 1章
1.2.3 编程
目录 上一页 下一页 退出
在程序设计中要特别注意以下 三点:
(1)语法。 (2)语义。 (3)语用。
C语言程序设计及应用
第 1章
1.2.4 测试及调试
目录 上一页 下一页 退出
编程完成以后,首先应该静态审查程 序,然后将高级语言源程序输入计算 机,经过编译、连接,然后运行。如 果在某一步发现错误,就必须找到错 误并改正,然后再从重新编译运行, 直到得到正确结果为止。
4. N-S结构流程图
1966年Bobra和Jacopini提出了三种基本结构: (1)顺序结构,如左左图所示。 (2)选择结构,如右下图所示。
C语言程序设计及应用
第 1章
1.1.2 算法
编程语言基础-C语言-第1章-C语言概述ppt课件
c = sum( a, b );
/* 计算2个整数之和 */
printf("sum = %d \n", c); /* 输出结果
*/
getch();
}
认识到了贫困户贫困的根本原因,才 能开始 对症下 药,然 后药到 病除。 近年来 国家对 扶贫工 作高度 重视, 已经展 开了“ 精准扶 贫”项 目
C程序特点
认识到了贫困户贫困的根本原因,才 能开始 对症下 药,然 后药到 病除。 近年来 国家对 扶贫工 作高度 重视, 已经展 开了“ 精准扶 贫”项 目
第1章 C 语 言 概 述
❖ 1.1 C语言的产生和发展 ❖ 1.2 C语言的特点 ❖ 1.3 简单的C程序介绍 ❖ 1.4 C 程序上机步骤 ❖ 本章小结
❖ C语言程序以一个至多个函数组成,至少有 一个main( ) 函数。
❖ 使用高级编程语言编写的源程序必须经过编 译后才能运行。
❖ 熟练掌握源程序的编辑、保存、编译、连接 及运行的操作方法,了解程序调试的基本概 念。
1.4 C 程序上机步骤
开始
有 不正确
编辑
编译
有错? 无
连接
执行
结果 正确? 正确
结束 图 1-1
目标
认识到了贫困户贫困的根本原因,才 能开始 对症下 药,然 后药到 病除。 近年来 国家对 扶贫工 作高度 重视, 已经展 开了“ 精准扶 贫”项 目
WinTc介绍
认识到了贫困户贫困的根本原因,才 能开始 对症下 药,然 后药到 病除。 近年来 国家对 扶贫工 作高度 重视, 已经展 开了“ 精准扶 贫”项 目
程序如下:
#include <stdio.h>
main( )
最新计算概论(北大期末复习资料:计概复习幻灯片课件
#define JINGDU 0.00001 #include <stdio.h> int main(){
x1 = 1 xn+1 = (xn + a/xn)/2
double a, x2, x1;
scanf(“%lf”, &a);
x1 = 1;
x2 = (x1+a/x1)/2;
while(x2-x1 > JINGDU || x1-x2 > JINGDU){
长短。 (3)控制完成洗衣时信号提示。
全自动洗衣机的控制方案
1. 打开总开关,设置水位(高/中/低)且水位灯亮, 设置洗涤方式(轻柔/标准/强劲)且对应洗涤灯亮, 设置漂洗次数(2/3/4)且对应漂洗灯亮。
2. 按下启动/暂停键,开始进水,进水灯亮,水到 设定水位停止进水,进水灯灭,延时2S后,开始洗涤。
称:这两个字符串相等,
“字符串复制”函数
strcpy(目标字符串, 源字符串);
功能:把 源字符串 赋值给 目标字符串
int main(){ char zfc_src[50], zfc_tgt[50]; gets(zfc_src); strcpy(zfc_tgt, zfc_src); printf(“%s\n”, zfc_tgt); return 0;
用 冒泡法 对 数组 int sz[LEN] 进行排序
int e;
for(int k = 1 ; k <= LEN ; k++){
for(int i = 0; i < LEN - k; i++){
if(sz[i] > sz[i+1]){
e = sz[i+1];
计算概论与程序设计基础 北京大学 10 C程序中的数组 (10.5.1) 课件
sum = sum + i; if (sum < 100) a[sum] = 1; } } }
for (int i = 2; i < 100; i++) {
if (a[i] == 0) cout << i << " "; } return 0; }
数组的作用
不仅 当你有一些数据要进行存储时:
例3 找出素数
问题:
请编写程序,输出100以内的所有素数;
a[0] a[1] a[2] a[3] a[4] a[5] a[6] a[7] a[8] a[9] a[10] a[11] a[12பைடு நூலகம் a[13] a[14] a[15] a[16] a[17] a[18]
例3 找出素数
问题:
请编写程序,输出100以内的所有素数;
● 用于存放一系列数据类型相同的数据;
还能 当你的处理对象是连续的整数时:
● 利用数据与下标间的对应关系,解决问题;
典型的解决方法:
循环(i 从 2 至 100)
●设置一个标识 p = 0; ● 循环(j 从 2 至 i-1)
如果(i mode j == 0)p = 1
●如果p = 0,输出 i
例3 找出素数
#include <iostream> using namespace std; int main() {
#include<iostream> #include<cmath> using namespace std; int main() {
int sum = 0, a[100] = { 0 }; for (int i = 2; i < sqrt(100.0); i++) {
C完整精华版ppt课件(2024)
C语言具有良好的可移植性,可以在不同的 平台上进行开发,使得程序可以方便地从 一个系统移植到另一个系统。
灵活性
底层访问能力
C语言是一种灵活的语言,它提供了多种数 据类型和控制结构,使得程序员可以自由 地表达自己的算法和思路。
C语言可以直接访问计算机底层硬件资源, 如内存、寄存器等,使得它在系统级编程和 嵌入式系统开发中具有独特的优势。
2024/1/30
逐行读写文件
使用fgets()和fputs()函数实现。
随机访问文件
使用fseek()函数实现,可以定位到文件的任 意位置进行读写操作。
30
08
C语言高级特性
2024/1/30
31
预处理指令的使用
01
预处理指令介绍
C语言中的预处理指令是在编译之 前对程序进行处理的指令,以 “#”开头。
2024/1/30
5
C语言的应用领域
系统级编程
C语言在系统级编程领域具有广 泛应用,如操作系统、编译器 、数据库等核心系统软件的开 发。
2024/1/30
嵌入式系统开发
C语言是嵌入式系统开发的首选 语言,如智能家居、智能穿戴 、工业控制等领域。
游戏开发
C语言在游戏开发领域也有广泛 应用,如游戏引擎、游戏逻辑 等模块的开发。
顺序结构
程序按照代码顺序逐行执行
2024/1/30
循环结构
for循环、while循环、dowhile循环,实现重复执行某 段代码
控制语句跳转
break语句、continue语句, 用于改变程序执行流程
10
03
函数与模块化设计
2024/1/30
11
函数的定义与调用
