当前课程知识点:C Programming >  Chapter 2 Algorithm >  2.1 The Concept and Description of Algorithms >  2.1 The Concept and Description of Algorithms.mp4

返回《C Programming》慕课在线视频课程列表

2.1 The Concept and Description of Algorithms.mp4在线视频

下一节:Discussion unit

返回《C Programming》慕课在线视频列表

2.1 The Concept and Description of Algorithms.mp4课程教案、知识点、字幕

大家好

我是云南大学信息学院的丁海燕老师

欢迎走进C语言程序设计课堂

今天我们讲解算法的概念和算法的描述

通过上一章的学习

我们知道通过编写正确的程序

并上机运行可以给出问题的求解结果

那么如何编写程序

利用计算机进行求解

才能实现解决问题的要求呢

下面介绍算法的概念

Pascal之父

结构化程序设计的先驱沃思提出了一个公式

程序 = 算法 + 数据结构

算法是贯穿在所有计算机程序设计中的一个基本概念

算法是程序设计的核心

是程序设计的灵魂

算法的好坏直接影响了程序的通用性和有效性

影响着解决问题的效率

那么,什么是算法

下面我们先看一个例子

一名学生要上大学

需经历一系列的步骤:

1.填高考报名表

2.拿到准考证

3.参加考试

4.填志愿

5.获得录取通知书

6.到大学报名注册

这里考入大学的1→6步骤也是算法的体现

算法是为解决一个问题而采取的方法和步骤

人们解决问题的一般过程为

明确问题→分析问题→脑中收集信息

→根据已有的知识、经验判断

推理→采用方法和设计步骤→解决问题

算法必须通过程序运行来实现

算法的好坏直接影响程序的通用性和运行效率

下面通过一个案例进一步说明解决问题的步骤

例2.1 农夫过河问题

有一农夫带着一条狼

一只羊和一筐菜

想从河的左岸乘船到右岸

但由于船太小

农夫每次只能带一样东西过河

而且如果没有农夫看管,狼会吃羊,羊会吃菜

请问:农夫怎样过河才能把每个东西安全地送过河

分析思考:要使农夫能安全地将这三样东西带过河

只需避免农夫与狼和羊

农夫与羊和菜不在同岸的情况发生

农夫即可把每样东西安全地送过河

解决方案1

第一步:人和羊过河,人返回,留下羊

第二步:人和狼过河,人和羊返回,留下狼

第三步:人和菜过河,人返回,留下菜

第四步:人和羊过河

在这个案例中

算法就是解决方案而且步骤是有限的

农夫只要按照上述四个步骤

可把每样东西安全地送过河

当然,解决方案不是唯一的

下面来看解决方案2

步骤1:人和羊过河,人返回,留下羊

第二步:人和菜过河,人和羊返回,留下菜

第三步:人和狼过河,人返回,留下狼

第四步:人和羊过河

可见,对同一个问题

可以有不同的解决方法和步骤

对照人们解决问题的一般过程

计算机解题过程可简单地概括为

分析问题→设计算法→编写程序→运行程序/验证结果

图灵奖得主 克努特给出算法的定义

一个算法就是一组有穷规则

这些规则给出求解特定类型问题的操作序列

算法的特征

1.输入:一个算法有零个或多个输入

2.输出:一个算法有一个或多个输出

3.确定性:一个算法的每个步骤都必须精确地定义

4.有限性:一个算法应包括有限的操作步骤

能在执行有穷的操作步骤之后结束

5.可行性:一个算法一般认为是可行的

在实际的算法设计中还要注意算法的通用性

当针对一个问题设计出算法后

该问题的多个实例都能被求解

对算法的评价从五个方面进行

算法的正确性、可读性、健壮性、效率、存储量需求

有三种常见的方法描述算法

(1)自然语言描述算法

例2.2 用自然语言描述解决下列问题的算法

已知圆的半径,求圆面积

算法描述:

开始

1.输入半径r 的值

2.计算面积area=3.14*r*r

3.输出面积area 的值

结束

例2.3 用自然语言描述解决下列问题

求任意两个数a 和b 中的较大数,并输出这个数

算法描述

开始

1.输入a 的值和b 的值

2.如果a≥b,则 输出a; 否则 输出b

结束

例2.4 用自然语言描述解决下列问题的算法

求出从1 开始的连续n个自然数的和

算法描述

第一步输入n 的值

第二步 设sum 的初始值为0,i 的初始值为1

第三步 如果i≤n 时

顺序执行S4,否则执行S7

第四步 计算sum 加上i 的值后

重新赋值给sum

第五步 计算i 加1

然后将值重新赋值给i

第六步 转去执行S3

第七步 输出sum 的值

结束

第二种描述方法是流程图

使用流程图描述算法

就是用一组标准的图形符号来描述算法

常用的流程图符号有

圆角矩形表示一个算法的开始、结束

平行四边形表示算法过程中

从外部获取信息或将处理过的信息输出

矩形表示算法过程中

需要处理的信息

只有一个入口和一个出口

菱形表示算法过程中的分支结构

在菱形框中标明判断条件

箭头在算法过程中指示流程的方向

例2.2 已知圆的半径,求圆面积

下面用流程图描述的算法如图所示

输入r,计算area,输出area的值

例2.3 求任意两个数a和b中的较大数

并输出这个数

用流程图描述的算法如图所示

输入a,b,若a>=b成立,输出a,否则输出b

例2.4 求出从1 开始的连续n个自然数的和

用流程图描述的算法如图所示

用伪代码描述算法

请大家课后自学完成

好了,同学们

算法的概念和描述我们就学习到这儿

下节课再见

C Programming课程列表:

Chapter 1 Introduction

-1.1 The development and characteristics of C language

--1.The development and characteristics of C language .mp4

--1.1 Self test questions

-1.2 A simple C Language program

--1.2 A simple C Language program.mp4

--Discussion unit

--【Source program】 Example 1.1 output a line of text Hello, world! "

--【Source program】 Example 1.2 program composed of multiple functions, find the larger of two integers

--1.2 Self test questions

-1.3 Program, Programming Language and C Program Running Steps

--1.3 Program, Programming Language and C Program Running Steps.mp4

--Discussion unit

--Running steps of C source program in CodeBlocks

--1.3 Self test questions

-Course references

-chapter 1 Self-Test

Chapter 2 Algorithm

-2.1 The Concept and Description of Algorithms

--2.1 The Concept and Description of Algorithms.mp4

--Discussion unit

--2.1 Self test questions

-2.2 Examples of Simple Algorithms, Computational Thinking and Structured Programming

--2.2 Examples of Simple Algorithms, Computational Thinking and Structured Programming.mp4

--Discussion unit

--2.2 Self test questions

-Chapter 2 Self test questions

Chapter 3 Programming in C

-3.1 Simple Structure and Identifier of C Language Program

--3.1 Simple Structure and Identifier of C Language Program.mp4

--【Source program】 Example 3.1 input two integers and output the sum of two numbers.

--【Source program】 Example 3.2 input two integers and output the average value.

--【Source program】 Example 3.3 output the value of the character variable.

--3.1 Self test questions

-3.2 Constants, Variables and Assignments

--3.2 Constants, Variables and Assignments.mp4

--Discussion unit

--3.2 Self test questions

-3.3 Arithmetic, assignment, increment and decrement operators

--3.3 Arithmetic, assignment, increment and decrement operators.mp4

--3.3 Self test questions

-3.4 Conditions, commas, addresses, byte operators, and mixed operations among various numerical data

--3.4 Conditions, commas, addresses, byte operators, and mixed operations among various numerical data

--【Source program】 example of sizeof

--3.4 Self test questions

-3.5 Input and Output Examples and Character Input and Output

--3.5 Input and Output Examples and Character Input and Output.mp4

--【Source program】 Example. Find the root of quadratic equation of one variable.

--【Source program】 Example 1. Successively output three characters of BOY.

--【Source program】Example 2. Input 3 characters of BOY from the keyboard and output them to the screen

--3.5 Self test questions

-3.6 Formatted output printf function

--3.6 Formatted output printf function.mp4

--【Source program】 Example 3.4 output of integer data.

--【Source program】 Example 3.5 real data output.

--【Source program】 Example 3.6 character data output.

--【Source program】 Example 3.7 uses %s to output a string.

--3.6 Self test questions

-3.7 Formatted input scanf function

--3.7 Formatted input scanf function.mp4

--Discussion unit

--【Source program】 Example 3.8 Input and output integer data

--【Source program】Example 3.9 Input and output single precision and double precision real data.

--【Source program】Example 3.10 input and output character data.

--【Source program】Example 3.11 input and output string.

--3.7 Self test questions

-3.8 Basic Data Types of C Language

--3.8 Basic Data Types of C Language.mp4

--3.8 Self test questions

-Chapter 3 Self test questions

-Operator and expression self test questions

Chapter 4 Selection Structure

-4.1 Relational operators, logical operators, and if statements

--4.1 Relational operators, logical operators, and if statements.mp4

--Discussion unit

--【source example】Example 4.1 Find the root of the quadratic equation of one variable.

--【Source program】Example 4.2 Input two real numbers and output them from small to large.

--4.1 Self test questions

-4.2 Switch Statement

--4.2 Switch Statement .mp4

--Discussion unit

--【Source program】Example 4.3 uses switch statement to implement simple menu program

--【Source program】Example 4.4 converts centesimal score into the corresponding grade system score.

--4.2 Self test questions

-4.3 Examples of Selection Structural Programs

--4.3 Examples of Selection Structural Programs.mp4

--【Source program】 Example 4.5 determines whether a year is a leap year.

--【Source program】 Example 4.6 find the solution of quadratic equation of one variable.

--【Source program】Example 4.7 calculate the transportation cost for the user.

--4.3 Self test questions

-Chapter 4 Self test questions

Chapter 5 Loop Structure

-5.1 While and Do-While Statement

--5.1 While and Do…while statement.mp4

--Discussion unit

--【Source program】example 5.1 Use while statement to find 1 + 2 + 3 + +100

--【Source program】example 5.2 using do while statement to find 1 + 2 + 3 + +100

--5.1 Self test questions

-5.2 For Statement

--5.2 for statement.mp4

--【Source program】example 5.3 Use for loop to find 1 + 2 + 3 +100

--5.2 Self test questions

-5.3 Change the State of Loop Execution and Nested Loop

--5.3 Change the state of loop execution and nested loop .mp4

--【Source program】example 5.4 collecting charity donations

--【Source program】example 5.5 output a number between 100 and 200 that cannot be divided by 3.

--【Source program】multiplication table

--【Source program】example 5.6 Output the following 4*5 matrix.

--5.3 Self test questions

-5.4 Loop Structure Program example 1

--5.4 Loop structure program example 1.mp4

--【Source program】example 1

--【Source program】example 2

--【Source program】example 3

--【Source program】 Example 4

--5.4 Self test questions

-5.5 Loop Structure Program example 2

--5.5 Loop structure program example 2.mp4

--【Source program】example 5. Output the following figure.

--【Source program】example6. The problem of 100 chickens and 100 coins

--【Source program】example 7. Find the approximate value of PI

--5.5 Self test questions

-Chapter 5 Self test questions

Chapter 6 Batch Data Processing with Array

-6.1 Definition, Reference and Initialization of One-Dimensional Arrays

--6.1 Definition, Reference of One-Dimensional Arrays.mp4

--Discussion unit

--6.1 Self test questions

-6.2 One-Dimensional Array Programming

--6.2 One-Dimensional Array Programming.mp4

--【Source program】example 1. Fibonacci sequence

--【Source program】example 2. Find the maximum value and the minimum value.

--【Source program】example 3 exchanging array elements in reverse order.

--【Source program】example 4. Bubble sorting.

--6.2 Self test questions

-6.3 Definition, Reference and Initialization of Two-Dimensional Arrays

--6.3 Definition, Reference of Two-Dimensional Arrays.mp4

--6.3 Self test questions

-6.4 Two-Dimensional Array Programming

--6.4 Two-Dimensional Array Programming.mp4

--【Source program】example 1. Get the average score of each subject.

--【Source program】Example 2. The elements of row and column of a 2D array are interchanged

--6.4 Self test questions

-6.5 Definition, initialization and input and output of character arrays

--6.5 Definition, initialization and input and output of character arrays .mp4

--Discussion unit

--【Source program】Example 6.6 Output a known string.

--【Source program】Example 6.7 Output a diamond.

--【Source program】Example 6.10 Sorting of strings.

--6.5 Self test questions

-6.6 String Processing Function

--6.6 String Processing Function.mp4

--6.6 Self test questions

-6.7 Character Array Programming

--6.7 Character Array Programming.mp4

--6.7 Self test questions

-Chapter 6 Self test questions

Chapter 7 Modular Programming with Functions

-7.1 Function Concept and How to Define and Call Functions

--7.1 Function Concept and How to Define and Call Functions.mp4

--【Source program】Example 7.1

--7.1 Self test questions

-7.2 Data Transfer in Function Call, Call Procedure and Function Return Value

--7.2 Data Transfer in Function Call, Call Procedure and Function Return Value.mp4

--Discussion unit

--【Source program】Example 7.2

--7.2 Self test questions

-7.3 Declarations of called functions and nested calls to functions

--7.3 Declarations of called functions and nested calls to functions .mp4

--【Source program】Example 7.4 use a function to find the sum of t

--7.3 Self test questions

-7.4 Recursive call to function

--7.4 Recursive call to function.mp4

--【Source program】Example 7.6. How old is the fifth student?

--【Source program】Example 7.7 Use recursion method to find n!

--7.4 Self test questions

-7.5 Array as function parameter (1)

--7.5 Array as function parameter (1).mp4

--Discussion unit

--【Source program】Example 7.10

--7.5 Self test questions

-7.6 Array as function parameter (2)

--7.6 Array as function parameter (2).mp4

--【Source program】Selection sorting.

--【Source program】Example 7.13 find the maximum of a 3×4 matrix.

--7.6 Self test questions

-7.7 Local and global variables, internal and external functions

--7.7 Local and global variables, internal and external functions.mp4

--【Source program】Example 7.14

--7.7 Self test questions

-7.8 The Survival Period of Variables and the Storage Mode of Local Variables

--7.8 The Survival Period of Variables and the Storage Mode of Local Variables.mp4

--【Source program】Example 7.17

--7.8 Self test questions

-7.9 Storage Categories of Global Variables

--7.9 Storage Categories of Global Variables.mp4

--7.9 Self test questions

-Chapter 7 Self test questions

Chapter 8 Pointer

-8.1 Pointer Concept, Definition and Reference of Pointer Variables

--8.1 Pointer Concept, Definition and Reference of Pointer Variables.mp4

--【Source program】Example 8.1

--8.1 Self test questions

--Discussion unit

-8.2 Pointer variables as function parameters

--8.2 Pointer variables as function parameters.mp4

--Discussion unit

--【Source program】Example 8.3. Exchange two data with function call.

--8.2 Self test questions

-8.3 Pointer of array element, operation of pointer and reference of array element by pointer

--8.3 Pointer of array element, operation of pointer and reference of array element by pointer.mp4

--【Source program】Point to array elements with pointer variables.

--8.3 Self test questions

-8.4 Using Array Name as Function Parameter

--8.4 Using Array Name as Function Parameter.mp4

--【Source program】Store array elements in reverse order.

--8.4 Self test questions

-8.5 Reference to multidimensional arrays by pointers

--8.5 Reference to multidimensional arrays by pointers.mp4

--【Source program】Pointer variable pointing to one-dimensional array.

--8.5 Self test questions

-8.6 Referencing strings through pointers

--8.6 Referencing strings through pointers.mp4

--【Source program】Reference string by pointer.

--8.6 Self test questions

-8.7 Character pointer as function parameter

--8.7 Character pointer as function parameter.mp4

--【Source program】Character pointer as function parameter.

--8.7 Self test questions

-8.8 Pointer pointing to function

--8.8 Pointer pointing to function.mp4

--【Source program】Pointer variable pointing to the function.

--8.8 Self test questions

-8.9 Functions that return pointer values

--8.9 Functions that return pointer values.mp4

--【Source program】Intercept substring.

--8.9 Self test questions

-8.10 Pointer arrays and multiple pointers

--8.10 Pointer arrays and multiple pointers.mp4

--【Source program】Sorting of strings.

--8.10 Self test questions

-8.11 Dynamic memory allocation and pointer variables pointing to it

--8.11 Dynamic memory allocation and pointer variables pointing to it.mp4

--Discussion unit

--【Source program】Dynamic memory allocation.

--8.11 Self test questions

-Chapter 8 Self test questions

Chapter 9 Structure

-9.1 Define and use structural variables

--9.1 Define and use structural variables.mp4

--【Source program】Structure variable

--9.1 Self test questions

-9.2 Using structure arrays

--9.2 Using structure arrays.mp4

--Discussion unit

--【Source program】Structure array

--9.2 Self test questions

-9.3 Structure pointer

--9.3 Structure pointer.mp4

--【Source program】Structure pointer

--9.3 Self test questions

-Chapter 9 Self test questions

CodeBlocks Baidu online disk download

-CodeBlocks Baidu online disk download address

Final Exam

-Final Exam

--final exam

2.1 The Concept and Description of Algorithms.mp4笔记与讨论

也许你还感兴趣的课程:

© 柠檬大学-慕课导航 课程版权归原始院校所有,
本网站仅通过互联网进行慕课课程索引,不提供在线课程学习和视频,请同学们点击报名到课程提供网站进行学习。