程序的灵魂-算法

      通过学习C语言的概述,相信对C语言有了一定的了解了吧,接下来我们看一下程序的灵魂--算法

      程序主要包括以下两个方面:
       (1)对数据的描述。在程序中要指定用到哪些数据以及这些数据的类型和数据的形式。
       (2)对操作的要求。要求计算进行的步骤
      数据是操作队形,草的目的始对数据进行加工处理。即得到期望的结果。
著名科学家沃思提出一个公式:算法+数据结构=程序

      以上是对程序的简单概述,接下来说一下算法:
      算法简单的来说,就是一个问题多种不同的解题方法和步骤。例如:1+2+3+........+100,有些人可能先加2,再加3,一直加到100,而有的人采取100+(1+99)+........+(49+51)+50=100+49*100+50=5050,还有很多方法。有的方法秩序进行很少的步骤,有些方法需要较多的步骤。相对来多,人们更喜欢使用较少步骤的算法。
      接下来说一下计算机算法,可分为两大类:数值运算算法和非数值运算算法。数值运算的目的是求数解,如:求一个方程等。非数值运算包括的十分广泛,最常见的是用于事务管理领域,如:我们平时写的人事管理系统中的姓名排序、图书检索、人事管理等。
      目前数值运算已经有了现成的模型,很多人在这方面进行研究、比赛等。如ACM竞赛,蓝桥杯等。
     一、简单的算法举例
          求1*2*3*4*5.
          最原始的方法:
          先让1*2等到2,2*3得到6,6*4得到24,24*5得到120.
          #include<stdio.h>
          int main() {
              int p=1,i=2;
              while(i<=5){
                    p=p*i;
                    i++;
             }
            printf("%d",p);
            return 0;
          }
          更改后:
          让P=1,i=2,使P*i,结果依旧放在变量P中,可表示为:P*i=>P,接下来是i的值加1,用一个判断条件结束程序的执行,使i<=5。结束执行。
          将题目改成1*3*5*7*9
          只需将i=3,i循环的时候加2,判断条件改成i<10就行。
          #include<stdio.h>
          int main() {
               int p=1,i=3;
               while(i<10){
                     p=p*i;
                     i+2;
                     printf("%d %d\n",p,i);//显示p,i的变化
               }
              printf("%d",p);
              return 0;
          }
         以上是代码的演示,可以找其他的例子进行练习,如:判断闰年问题(下面用流程图的方式进行解答)
        二、算法的特性
              (1)有穷性。一个算法包含有限的步骤,而不是无限的
              (2)确定性。算法的每一步都是确定的,而不是模棱两克的答案
              (3)有零个或多个输入。输入就是执行算法时从外界取得必要的信息,也可说是打的数字
              (4)有一个或多个输出。算法的目的就是求解,“解”就是输出。
              (5)有效性。算法的每一个步骤都应有效的执行,并得到确定的结果。
        三、怎样表示一个算法
              (1)自然语言表示
                      如:他大舅去二舅家找三舅说四舅被五舅骗去六舅家偷七舅放在八舅柜子里九舅借十舅发给十一舅工资的1000元。问:谁是小偷?钱原本是谁的?
                      我们很难判断谁是小偷,钱原本是谁的,我们必须经过一番思考才能做答,所以我们平时表达是很少用在自然语言进行表示,基本上都是流程图表示。
              (2)流程图表示
                      流程图用一些图框进行表示。用图形表示,直观易于理解。美国国家标准协会规定一些常用的流程符号,已被广泛采取。如下图

 

              (3)三种基本结构
                      顺序结构

                     


                      选择结构

   


                      循环结构
                            


                       

                     举例:判断闰年:


 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值