第一周9.14

来源:互联网 发布:java base64类 编辑:程序博客网 时间:2024/05/23 13:04

1 算法的基本概念

程序=算法+数据结构

 用数据结构描述数据   用算法描述对数据的操作

算法:是由一系列规则组成的过程,这些规则确定了一个操作的顺序,  以便能在有限步骤内得到特定问题的解


2算法的描述工具 

  自然语言   流程图:程序流程图、N-S图   伪代码

“程序=算法+数据结构”的体现 

 #include <stdio.h>  

int main() 

 {   int a,b,r;  

 scanf("%d %d", &a, &b); 

  while (b!= 0)  

 {   r=a%b;   a=b;   b=r;  

 }   printf("%d\n", a);  

 return 0;  

}



3体会算法的概念 

  算法:把需要解决的问题用计算机语言梳理出来  /把问题拆解了,拆解成计算机语言能识别,按顺序执行出来的过程

为解决问题而采取的方法和步骤  

一个问题可以有多种算法

常见问题的算法有很多现成的举例和代码,多看看

求最大公约数的三种算法链接(转载他人链接)

http://blog.csdn.net/iwm_next/article/details/7450424


 乐谱是乐队演奏的算法  

 菜谱是做菜肴的算法 

  珠算口诀是使用算盘的算法  

 图纸是施工的算法

   编程序解决问题需要算法 

  算法要说明如何得到解,而不是给出问题的解。  

 在学习程序设计过程中,学会语言,提高算法能力。


4循环控制结构和流程图

画出实现下面求解任务的流程图【提示:m是一个变量,在程序中输入】

 求1到m的平方和

int main()
{
    int n,m,sun=0;
    printf("请输入m的值");
    scanf("%d",&m);
    for(n=1;n<=m;n++)
    {
        sun+=n*n;
    }
    printf("%d",sun);
    return 0;
}

 求1到m间所有奇数的和


5循环的嵌套

思考与实践

 求s=1!+2!+……10!,即求1到10的阶乘和

 求s=1+22+33+44+55+66,要求nn不能用求幂的运算直接计算


6循环思维启蒙

a 输出50个星号

int main()
{
 int i;
 for(i=0;i<50;++i)
 {
 printf("*");
 }
 printf("\n");
 return 0;
}

b用循环改造任务3:用单层循环
#include <stdio.h>
int main() {
 int i;
 for(i=0; i<7; ++i)
 {
 printf("********\n");
 }
 return 0; }

 用循环嵌套改造任务3:
#include <stdio.h>
int main() {
 int i,j;
 for(i=0; i<7; ++i)
 {
 for(j=0; j<8; ++j)
 {
 printf("*");
 }
 printf("\n");
 }
 return 0; }