第0章作业: 教材P12-练习与实践 1.写出用符号’*’输出描绘汉字”大”的流程图。

Slides:



Advertisements
Similar presentations
While 迴圈 - 不知重複執行次數
Advertisements

CSIM, PU C Language Introduction to the C Programming Language 重覆敘述 (for,while,break,continue) 適合重複性的計算或判斷.
主讲:王幸民 理学院计算机基础教学部.
C语言程序设计 主讲教师 :张群燕 电话:
授课教师:江星玲 1.
培养目标 1.建立基本的程序设计概念体系,掌握基础程序设计方法。
第4章 條件判斷與迴圈 Java 2 程式設計入門與應用.
“八皇后”问题 崔萌萌 吕金华.
Loops.
第一章 C语言概述 计算机公共教学部.
请将手机调整到静音状态 实验网站:program3.ccshu.net 资源网站:class.ccshu.org/ /
程序设计基础知识.
C++程序设计 主讲:王兴波教授 1.
远程教育站点管理 及齐鲁先锋平台的使用 平阴县党员干部现代远程教育中心.
C语言程序设计 第八章 函数.
高级语言程序设计 主讲人:陈玉华.
循环结构又称为重复结构:用来处理需要重复处理的问题,它是程序中一种很重要的结构。
選擇排序法 通訊一甲 B 楊穎穆.
C的發展史 C程式初體驗 C程式設計基本注意事項 上機實習課程
C程序设计.
If … else 選擇結構 P27.
Chap 2 用C语言编写程序 2.1 在屏幕上显示 Hello World! 2.2 求华氏温度 100°F 对应的摄氏温度
计算概论 第十八讲 C语言高级编程 结构与习题课 北京大学信息学院.
QQ: 李祥 QQ: 欢迎多种方式的学习交流,祝大家学有所成.
Introduction to the C Programming Language
算法的基本概念.
1. 說明一個一維整數陣列passwd,下標範圍0至49 2. 在屏幕顯示 "Enter password"
C语言 程序设计基础与试验 刘新国、2012年秋.
第3讲 C++程序控制结构 3.1 顺序结构 3.2 分支结构 3.3 循环结构 3.4 转向控制 3.5 综合案例分析.
多维数组与指针 用指针变量可以指向一维数组中的元素,也可以指向多维数组中的元素。但在概念上和使用上,多维数组的指针比一维数组的指针要复杂一些。 1. 多维数组元素的地址 先回顾多维数组的性质,可以认为二维数组是“数组的数组”,例 : 定义int a[3][4]={{1,3,5,7},{9,11,13,15},{17,19,21,23}};
Instructor:Po-Yu Kuo 教師:郭柏佑
谭浩强 编著 中国高等院校计算机基础教育课程体系规划教材 C++程序设计.
計數式重複敘述 for 迴圈 P
第5讲 结构化程序设计(Part II) 周水庚 2018年10月11日.
第七章 函数及变量存贮类型 7.1 函数基础与C程序结构 7.2 函数的定义和声明 7.3 函数的调用 7.4 函数的嵌套与递归
第4章 顺序程序设计.
授课老师:龚涛 信息科学与技术学院 2016年3月 教材:《Visual C++程序员成长攻略》 《C++ Builder程序员成长攻略》
第1章 概述 本章要点: C语言程序结构和特点 C语言程序的基本符号与关键字 C语言程序的编辑及运行 学习方法建议:
程式結構&語法.
第三章 C++的语句和简单的程序设计 主要内容:
第 二 章 数据类型、运算符与表达式.
C语言复习2----函数.
C语言程序设计.
第一章 程序设计和C语言 主讲人:高晓娟 计算机学院.
C语言程序示例: 1.输入10个数,按从小到大的顺序排序。 2.汉诺塔问题。.
1.2 C语言程序的结构与书写规则 一、 C语言程序的总体结构
C程序设计.
C 语言程序设计 程序的循环结构 电大崇信县工作站 梁海亮.
Main() { Dfas Asdfasf fasdfa } #include <stdio.h> void main( ) {
第2章 算法与C语言程序 程序 (1)数据的描述:数据的类型和组织形式(数据结构) (2)操作的描述:操作步骤(算法) 沃思指出:
C语言程序设计 教案 崔武子制作
浙江长征职业技术学院—计算机与信息技术系—相方莉制作
Chap 5 函数 5.1 计算圆柱体积 5.2 使用函数编写程序 5.3 变量与函数.
輸出與輸入(I/O).
第一章 C语言概述 教师:周芸.
C语言程序设计 李祥 QQ:
第2章 认识C语言 教学要点 2. 1 项目二C语言程序识读 2 .2 项目三班级成绩排名 2 .3 知识链接 返回.
C++程式設計入門 變數與運算子 作者:黃建庭.
项目1 C程序设计起步 学习目标: 通过该项目你可以知道: C语言的用途。 C语言的基本符号和关键字。 C语言程序的结构及特点。
第一章 C语言概述 目录 什么是语言、程序 C语言的历史与发展 C语言的书写形式与程序结构 运行C语言的步骤与方法
本节内容 函数嵌套调用的内存布局 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
计算机程序设计 小应用工具设计 1.
程序设计基础.
第1章程序设计和C语言.
C/C++基礎程式設計班 C語言入門、變數、基本處理與輸入輸出 講師:林業峻 CSIE, NTU 3/7, 2015.
C/C++基礎程式設計班 陣列 講師:林業峻 CSIE, NTU 3/14, 2015.
第三章 流程控制 程序的运行流程 选择结构语句 循环结构语句 主讲:李祥 时间:2015年10月.
Q1(a) 小偉打算編寫一個程序。該程序把兩個44的表內的數字相加。表3內的數字是由表1和表2應格子內的數字相加而成。例如:
Introduction to the C Programming Language
C语言基础学习 从外行到入门.
Presentation transcript:

第0章作业: 教材P12-练习与实践 1.写出用符号’*’输出描绘汉字”大”的流程图。 1. 复习第0章内容, 熟悉VC++上机界面. 2. 上机完成第一章上的例1.2 1.3 1.4 3. 上机完成“实验指导”书上: “实验一”。 教材P12-练习与实践 1.写出用符号’*’输出描绘汉字”大”的流程图。 提示:用顺序结构的多个printf语句输出。 输入一个数,如果此数大于零,输出一个’+’号,否则输出一个’-’号,请描述程序设计的过程,并画出流程图。 提示: 用判断的方法解决此问题,可以描述为: 程序开始 定义变量

3. 以循环的方式计算某人的年收入,假定此人以月为单位的收入,请描述程序设计的过程,并画出流程图。 读入一个数 如果此数大于0 输出+ 否则 输出- 程序结束 3. 以循环的方式计算某人的年收入,假定此人以月为单位的收入,请描述程序设计的过程,并画出流程图。 提示:循环12次 4.键盘输入一批数,输入零时结束,分别计算负数与正数的总和,最后输出结果,请描述程序设计的过程,并画出流程图。 5.有一批数,在这批数中要查找一个特定的数是否存在,请描述程序设计的过程,并画出流程图。

第 1 章 程 序 的 概 念 与 算 法

1.1 程序的概念 程序是指把希望计算机做的工作写成一定形式的指令,并把它们存储在计算机的内部存储器中。当人们给出命令之后,它就按指令操作顺序自动进行,把这种可以连续执行的一条条指令的集合称为“程序”。 目前,正在使用的计算机程序设计语言有很多种,有些语言是面向机器的,如二进制语言,而多数是面向问题的语言。

面向问题的语言都被称为计算机的“高级语言”,如C与C++语言等。 目前的程序设计一般可分为非结构化程序设计、结构化程序设计和面向对象的程序设计. C语言是结构化程序设计语言,而C++称为面向对象的语言。

这些语言都是用接近人们习惯的自然语言和数学语言作为语言的表达形式,人们学习和操作起来感到十分方便。 程序是为了解决某个问题而设计,用C语句所写的序列称为C源程序,它的后缀为(.c) . C源程序经过编译(Compile)后生成一个目标文件(.obj). 经过链接库函数后生成可执行文件(.exe)。

问题的提出及分析 确定该问题的算法 用C语言描述算法建立语言源程序 编译生成.obj文件 连接有关库函数后 生成可执行文件 运行程序并输出正确的结果

1.2 算法与流程图 什么是算法? 算法是指解决问题所使用的一系列合乎逻辑的解题步骤. 一个程序应包括两方面内容: (1).对数据的描述. 指定数据的类型和数据的组织形式, 即数据结构. (2).对操作的描述, 操作步骤,即算法(algorithm). 著名计算机科学家Wirth(沃思)提出: 数据结构+算法=程序

在计算机科学中,算法要用计算机算法语言描述 在计算机科学中,算法要用计算机算法语言描述. 要解决一个复杂的问题,需要仔细的分析与研究此问题,并进行精确的逻辑分析,找到解决问题的方法,再用计算机实现。 当然,求解一个给定的可解的问题,不同的人可以编写出不同的程序。

例如判断一个整数的奇偶性,大致分成以下几步: 计算机读入该数; 将该数除以2; 判断余数是否为0; 如果为0,该数为偶数; 否则为奇数. 以上这些解决问题的一系列步骤就是算法,并且可以用C语言编写成程序,用以解决数的奇偶性问题。

流程图是一种用图解方式说明,解决一个问题所要的一系列操作。 流程图比文字更容易理解,更加直观. 什么是流程图? 流程图是一种用图解方式说明,解决一个问题所要的一系列操作。 流程图比文字更容易理解,更加直观. 常用基本组件 含义 程序的入口和出口 流程图中的符号含义如右所示: 加工、处理 条件判断 控制流 连接符 输入输出 流程图的符号及含义

从键盘输入两个数,求这两数之和,并把结果输出. 画出此问题的流程图。 例1.1 从键盘输入两个数,求这两数之和,并把结果输出. 画出此问题的流程图。 开始 输入两数 两数相加 显示结果 结束 定义两个变量 程序流程图

1.3 结构化程序设计包含的三种结构 1.3.1 顺序结构 结构化程序设计由三种结构组成: 顺序结构、选择结构、循环结构。 1.3 结构化程序设计包含的三种结构 结构化程序设计由三种结构组成: 顺序结构、选择结构、循环结构。 语句1 语句2 语句3 1.3.1 顺序结构 顺序结构的程序是一条语句接一条语句顺序地往下执行的。 例如右图中,先执行语句1,然后执行语句2,最后执行语句3. 顺序结构的程序是最简单的程序。

例1.2 编写一个C语言程序,输出显示下列图形。 ***************** C语言的学习要努力! 这是一个典型的顺序执行的程序设计,输出三个字符串,输出字符串用函数printf()完成,具体的过程描述为: 开始 输出: *************** 换行后再输出:C语言的学习要努力! 换行后再输出:*************** 程序结束

程序流程图如图所示: 开始 输出:************** 输出:C语言的学习要努力! 输出:************** 结束

下面先介绍几个C语言程序, 使我们对C语言程序的特点有一个初步认识和了解. 刚开始学习,可能在某些语法点上还有不理解的地方,可以在以后的章节中得到介决和加深. #include <stdio.h> /*包含标准输入输出库预处理命令*/ int main( ) /*主函数开始*/ { printf(“*************\n”); printf(“C语言的学习要努力!\n”); printf(“***************\n”); return 0; } /*程序结束*/ 虽然这是一个并不复杂的程序, 但它包含了很多重要的语法点和一个程序的框架. 下面逐条进行分折讲解:

printf(“*************\n”); 这是一条编译预处理命令. C语言程序设计中往往要用到输入与输出函数printf 、 sacnf, 因此要有文件包含命令:#include<stdio.h>. 用C语言写成的源程序为:(P4) #include <stdio.h> /*包含标准输入输出库预处理命令*/ int main( ) /*主函数开始*/ { printf(“*************\n”); printf(“C语言的学习要努力!\n”); printf(“***************\n”); return 0; } /*程序结束*/ main( )是主函数,每一个C 程序都必须一个main( )主函数.且只能有一个main( )主函数. 函数体用大括号{ }括起来。

printf(“C语言的学习要努力!\n”); /*输出一行字符*/ #include<stdio.h> int main( ) { printf(“*************\n”); printf(“C语言的学习要努力!\n”); /*输出一行字符*/ printf(“***************\n”); return 0; } printf ( )函数是C 语言中的专用输出函数, 双引号内的字符串按原样输出 /*……*/是注释部分,对编译和运行不起作用,基本上可放于程序任何地方 语句最后有一个分号 ; ‘\ n’ 是一转义字符 (为换行符).

return 0; /*与main函数中的int相对应*/ } #include<stdio.h> int main( ) { printf(“*************\n”); printf(“C语言的学习要努力!\n”); printf(“***************\n”); return 0; /*与main函数中的int相对应*/ } main( )函数是由操作系统调用的.标准C++要求main( )函数声明 为int 型. 如果程序正常执行,则向操作系统返回0, 否则返回1. 细节问题将通过随后章节的学习,以及上机练习来加深理解.

[开始]按钮→ [所有程序]→ [Microsoft Visual C++6.0] 上机练习1 (P5) 步骤1: 在Visual C++环境下新建文件: [开始]按钮→ [所有程序]→ [Microsoft Visual C++6.0] 如果出现每日提示,如图所示,即点击关闭按扭。

步骤2: 在引导出的C++集中开发环境中,点击菜单: [文件] →[新建]

[文件]→[C++ Sourse File] 在随后出现的”新建”对话框中,点击菜单: [文件]→[C++ Sourse File] 输入文件名: 如:1_1.c 指定存放此文件的位置: 例如: D:\VC++

步骤3:在编辑框内输入C源程序。

步骤4:在Visual C++环境下点击工具图标: 进行编译(相当:Ctrl+F7), 产生 .obj文件. 出现对话框(英文): 这条编译命令需要一个活动的工程工作区.你要产生一个默认的工作区? 回答:是

如果程序无错,编译通过. 产生一个相应的1_1.obj文件.

如果程序有错,编译没有通过. 提示错误信息.

现设程序无错,编译通过. 步骤5:点击连接图标: 进行连接(相当:F7), 产生 .exe文件.

如果程序无错,连接通过. 产生一个相应的1_1.exe文件.

步骤6:点击执行图标: 进行执行此 1_1 .exe文件.

思考: 1.在例1-1.c中,如果没有main(),编译程序后出现的错误提示是什么?在C程序设计中要注意什么问题? 2.在例1-1.c中,如把main写成了Main,编译程序后出现的错误提示是什么?在C程序设计中要注意什么问题? 3.在例1-1.c中,如printf(“********\n”); 后少了“;”号,编译程序后出现的错误提示是什么?在C程序设计中要注意什么问题?

4.在例1-1.c中,如没有写上预处理命令#include<stdio.h>, 编译程序后出现的错误提示是什么?想想这是为什么? 5.在例1-1.c中,任何一行的输出语句中少了符号\n, 程序运行后的结果有什么变化?问在C语言中符号\n 的作用是什么? 6.在例1-1.c中,如printf(“***********\n”); 后少了双引号,编译程序后出现的错误提示是什么?

1.3.2 分支结构 在程序执行过程中,程序的流程可由多路分支组成,根据不同的条件去执行不同的语句块。 假 真 语句块1 1.3.2 分支结构 在程序执行过程中,程序的流程可由多路分支组成,根据不同的条件去执行不同的语句块。 这是一个两分支结构。 首先判断条件是否为“真”,如为真,执行语句块1,否则执行语句块2。 假 真 条件 语句块2 语句块1

假如判断从键盘输入的两个数的大小: 如果: x>y,提示:x大于y. 如果: x<y,提示:x小于y, 分支结构形式 x>y? 输出x小于y 真 假 输出x大于y 下一步 输出: 此时将会用到如下所示的流程图:

分析:这是一个分支程序设计,具体的过程描述为: 开始 例1.3 从键盘输入两个数,判断两个数的大小。 分析:这是一个分支程序设计,具体的过程描述为: 程序开始 定义两个变量: x,y 输入二个数给x,y 如果x大于y 输出:x大于y 否则 输出:x小于y 程序结束 定义两个变量:x,y 给x,y输入相应的值 真 假 x>y? 输出:x大于y 输出: x小于y 结束 两数中求最大值流程图

#include<stdio.h> int main( ) { int x, y; /*定义二个变量*/ 例1.3 用C语言写成的源程序为: (P8) #include<stdio.h> int main( ) { int x, y; /*定义二个变量*/ scanf(“%d%d”,&x,&y); /*读入两个整型数给变量x、y*/ if(x>y) /*如果x大于y*/ printf(“x大于y\n”); /*输出:x大于y */ else /*否则*/ printf(“x小于y\n”); /*输出:x小于y */ return 0; } 这一行为变量定义,指明 x, y是整型变量(integer)。 scanf( ) 函数是专用的输入函数. &的含义是“取地址”的意思,函数的作用是:从键盘输入的两个值,分别送到 x,y所占地址的内存单元中去,也就是输入x, y的值. %d为输入格式说明, d为十进制整数格式说明符。 两分支结构

上机练习 步骤1:调出VC++ 6.0,关闭“每日提示”。 步骤2:点击菜单:[文件] →[新建]→[文件] → [C++ Sourse File] 输入文件名1-2.c,点击确定按扭。 步骤3:在编辑框内输入C源程序1-2.c。

步骤4:点击图标 进行编译源程序1-2.c,产生可执行文件1-2.obj。 步骤5:点击连接图标: 进行连接, 产生 .exe文件. 执行程序1_2.exe 步骤6: 点击执行图标

程序运行结果如图所示。 程序运行时输入: 1000  500 (然后回车). 两数间用空格分隔.

数据输入行的显示. 程序运行后,结果显示. 程序运行结果

思考: 1.在例1_2.c中,如果没有语句int x,y;编译程序后出现的错误提示是什么?在C程序设计中要注意什么问题? 2.在例1_2.c中,如把语句scanf(“%d %d”,&x,&y); 写成:scanf(“%d %d”,x,y); 用来读入两个整型数给变量x、y,程序的运行结果会如何? 3.在例1-2.c中,如程序在运行时输入为:1000,500,程序能否得出正确的运行结果? 4.在例1-2.c中,如果在if(x>y) 后加上“;”号,编译程序后出现的错误提示是什么?想想这是为什么? 5.在例1-2.c中,输入源程序后,int、if、else为什么会变颜色,在C程序设计中有什么特殊的意义?

1.3.3 循环结构 如果在程序中需要根据某项条件重复地执行某项任务若干次,直到满足或不满足某条件为止,这就构成循环结构。 首先判断循环条件是否为“真”,如循环条件为“真”,执行循环语句. 循环条件? 初始条件 循环语句 假 真 循环语句执行完成后,又转去判断循环条件,如循环条件仍为真,再次执行循环语句,如此反复,直到循环条件为假,退出此循环。 注: 循环不是简单的重复.

例如,要做一个累加运算,从1加到100. 算法是: 先把计数变量i 和 sum设为0,然后变量i从1开始,把1加入总数;然后i增加1,i为2,把i加入总数;然后i再增加1,i为3,再把i加入总数; 一直累加,当i为100加入总数后,i还要增加1,到i的值为101,此时条件不满足,循环不再做。 最后的总数就是1加到100的和。

例1.4 计算1+2+3+4+……+100的值,用循环的方法,画出程序的流程图。 例1.4 计算1+2+3+4+……+100的值,用循环的方法,画出程序的流程图。 分析: 和的初始值sum为0,循环变量i的变化从1到100。 sum为什么 要置0? 当i值为1时,把i加入sum,然后判断i的值是否小于100, 如果是, i增1,再把i加入sum; 然后判断i的值是否小于 100,如此反复循环,当i的值大于100时,停止循环,最后输出sum。

具体的过程描述为: 程序开始 定义变量sum,i,并分别赋值0、1 判断i是否小于等于100 如是,把i加入sum,i增加1 否则停止循环 程序结束 开始 定义变量sum、i i<=100 sum=sum+i i=i+1 输出sum 结束 Y N

#include<stdio.h> int main( ) { int i=1,sum=0; while(i<=100) 例1_4.c : 计算1+2+3+4+……+100的值 ( P10) #include<stdio.h> int main( ) { int i=1,sum=0; while(i<=100) sum=sum+i; i++; } printf("从1加到100的和为%d :\n", sum); return 0; 这一行定义i, sum为整型变量(integer),并赋初值. (注:局部变量不赋初值,其值为随机值). 这是一个循环结构. 这一行是sum+i的值赋给变量sum. i的值自增1.

#include<stdio.h> int main( ) { int i=1,sum=0; while(i<=100) sum=sum+i; i++; } printf("从1加到100的和为:%d \n", sum); return 0; 注: 这里没有”;”号 %d 为数据输出格式说明。 输出时,该位置由后面的变量sum的值代替.

上机练习 1. 编辑文件名1_4.c . 2.编译,连接1_4.c,产生可执行文件1_4.exe。 3.执行程序1_4.exe

思考: 1.在例1_3.c中,为什么语句int i=1,sum=0;中的sum要赋初值0?如果不赋值,程序运行时会有什么结果? 2.在例1-3.c中,如语句while(i<=100)后有”;”号,程序的运行结果会如何? 3.在例1-4.c中,如语句段中: while(i<=100) { sum=sum+i; i++; } 无大括号,程序的运行结果会如何? 4.在例1-4.c中,上述程序段中少了i++,程序能否得 出正确的运行结果? 复合语句: 用一对“{ }”将若干语句顺序组合在一起,形成了一个程序段(块),称为复合语句.