算法||编写prog的方法

时间:2011-01-01 08:29:36

标签: algorithm computer-science

我是计算机科学专业的学生之一。每个人用不同或相同的方法解决问题,(但实际上我不知道他们是否使用方法或我不知道是否有这样的常用方法来解决问题。)

  • 如果有常用方法,那是什么?
  • 如果有不同的方法,您使用的是哪种方法?

所有教师有时会以简单的形式给我们提出问题,但是他们没有介绍任何方法或方法,因此我们无法决定选择方法然后将其应用于问题,然后找到解决方案然后编写代码。没有老师的帮助,推动我们找到解决作业的方法。例如:我的朋友没有使用任何方法,他说“我在尝试编写prog时开始构建算法。”

我在课程失败时找到了一种方法,

更准确地说,我的方法: 当我用语言来解决问题时,我会得到更多的论文然后;

first, input/ output  step ; 
       my prog will take this / these there argument(s) and return namely X , 
       ex : in c, 
            input length is not known and at same type ,
                so I must use pointer 
            desired output is in form of package , 
                so use structure 
second, execution part    ;
   in that step , I am writing all step which are goes to final output 
       ex : in python ;
             1.) [ + , [- , 4 , [ * , 1 , 2 ]], 5]
             2.) [ + , [- , 4 , 2 ],5 ]
             3.) [ + , 2 , 5] 
             4.)  7      ==> return 7 
third, I will write test code 
       ex :    in c++
           input : append 3  4 5 6 vector_x remove 0 1 
           desired output  vector_x holds : 5 6       
  • 现在,我的另一个问题是;什么是/已经;

    的其他方法
     used to construct class  :::: for  c++ , python, java  
    
    
     used to communicate classes / computers
    
    
     used for solving  embedded system problem  ::::: for c 
    
其他用户

  • 有些程序员使用通用方法而不考虑编程语言(java,perl ..),这个方法是什么?

为什么我想知道,因为我知道如果你不在纸上构建算法,你可能会实现你的目标。像没有钱没有午餐,我可以说没有算法没有前卫

因此,当你编写自己的方法时感到自由,这是一种由别人介绍但你正在使用的方法,你发现它非常有效

1 个答案:

答案 0 :(得分:4)

计算机科学家经常面临一个大问题,一个本质上是抽象的问题。但是,计算机只接受小指令:添加这些数字,减去这些数字。计算尚未达到我们可以简单地说“计算机,解决这个问题”的程度。 - 我们必须将问题说成计算机可以理解的一系列小指令。

将此与厨房厨师比较。如果他正在写一本食谱,他不能简单地说“John's Special Chili” - 他必须写下使用的成分,用于烹饪或准备各种成分的程序,使用的数量等等。

同样,计算机科学家必须解决抽象问题,并将其分解为机器可以用来获得正确输出的指令,并给出问题的输入。这种打破更大问题的行为,通常在最终到达代码之前变成较小的问题,对任何程序员来说都是一项基本技能,而且很可能是最难教的技能,因为它依赖于个人的解决问题的能力。 / p>

算法本质上是解决问题的结果:维基词典定义的算法是“计算过程的精确分步计划,以输入值开始并产生有限数量的输出值步骤。“这是从输入到输出的方法,通常是程序员必须弄清楚的。有些问题当然已经解决了:排序,作为一个典型的早期学生的例子,有一个已知的算法:通常你只是用特定的语言实现它。

一旦基础知识通过,问题通常是独一无二的。然后由程序员来计算算法。给出的常见建议是“将问题分解为更小,更容易解决的子问题” - 通常两个(或更多)较小的问题等同于您的大问题。如果我们想解决“翻转图像文件”的问题,我可能会将其分解为:

  1. 加载图片
  2. 翻转图像中的像素行
  3. 将生成的图像写回文件
  4. 其中每一个都仍然非常抽象,需要进一步充实,但想法是一样的:继续将它分开,直到这个想法很简单,转化为代码。根据您使用的语言,问题的人类形式将有不同的翻译。我不会像在Python或Java等中那样在C或C ++中编写相同的代码。

    (PS:这个问题很难理解,所以如果这不能回答你的问题,或者其中的内容不清楚,请注释。)