可不可以将以下程序改写成流程图 请把下面4个C语言程序中的任意3个变成流程图的形式即可

\u8fd9\u7a0b\u5e8f\u8f6c\u6362\u6210\u6d41\u7a0b\u56fe\u662f\u4ec0\u4e48\uff1f

\u60a8\u597d,

\u7a0b\u5e8f\u662f\u6309\u6765\u6d41\u7a0b\u6267\u884c\u7684, \u800c\u7a0b\u5e8f\u6846\u56fe\u662f\u753b\u51fa\u4e86\u8fd9\u6837\u4e00\u4e2a\u6d41\u7a0b, \u6240\u4ee5\u6846\u56fe\u5411\u7a0b\u5e8f\u8f6c\u6362\u662f\u975e\u5e38\u6e90\u5bb9\u6613\u7684.

\u60a8\u53ea\u9700\u8bb0\u4f4f,

\u5e73\u884c\u56db\u8fb9\u5f62\u7684\u6846\u4ee3\u8868\u8f93\u5165\u6216\u8f93\u51fa, \u60a8\u9700\u8981\u8ba9\u7a0b\u5e8f\u63d0\u4f9b\u4e00\u4e2a\u8f93\u767e\u5165\u6216\u8f93\u51fa\u7684\u65b9\u5f0f,

\u83f1\u5f62\u4ee3\u8868\u5224\u5ea6\u65ad, \u628a\u83f1\u5f62\u5185\u4fe1\u606f\u76f4\u63a5\u4e22\u5230if()\u7684\u62ec\u53f7\u4e2d\u505a\u5224\u65ad\u6761\u4ef6\u5373\u53ef,

\u83f1\u5f62\u8ddf\u968f\u7684\u7ebf\u4ee3\u8868if\u5224\u65ad\u4e0d\u540c\u7ed3\u95ee\u679c\u7684\u51fa\u53e3,

\u65b9\u5f62\u4ee3\u8868\u7a0b\u5e8f\u4e2d\u67d0\u4e00\u4e2a\u6b65\u9aa4\u7684\u63cf\u8ff0\u53ca\u5b9e\u73b0.

\u8ddf\u7740\u6d41\u7a0b\u56fe\u6240\u793a\u6240\u6709\u6267\u884c\u7684\u987a\u5e8f\u5199\u51fa\u76f8\u5e94\u7684\u4ee3\u7801\u5373\u53ef.

\u90ae\u7bb1\u7b54\u6848\u5df2\u53d1\uff0c73\u5f00\u5934\u7684

您好,在很早期,BASIC还不是一种结构化的编程语言,没有诸如If...End If以及Select...Case这样的结构化语句,更没有函数和子程序的概念。而且——程序依赖行号,程序总是从行号小的地方开始执行,就算你把语句写在后面,只要它行号足够小,它也是先执行。

这导致了一件很尴尬的事情,写程序之前如果不打草稿,你想在两条语句中间插入几行,而这两条语句行号相邻,那么这变得很困难,你不得不调整后面的行号,腾出地方容纳新的语句——别着急,你的程序还有很多GOTO语句呢,它们指向了某些行号,你打算更改行号,不得不连带修改引用这些行号的GOTO语句,这听上去已经能把人晕倒了,别着急,在那个年代,甚至我们还没有一款能上下左右移动光标的全屏幕编辑器……你试试看怎么写程序。再说读程序的人,更加夸张,他看到100 IF I > 10 THEN 510,然后转到510行(注意没有全屏幕编辑器),看到510行,510 IF J < 20 THEN 200,好吧,再折返回来,如果是一个多重的判断+循环,那能把人搞死。如果是你遇到这样的代码,你会怎么做?只要你不是足够的蠢,都会想到流程图。

用一系列的箭头描述GOTO的流程,再用方框表示每一个代码块做得事情,流程图可以很直观地表示代码要做什么,它就是那个“草稿”。

如果你用过VB,你就知道,if ... end if, for ... next, select ... case ... end select, function ... end function这样的层次结构把代码和代码之间的关系描述的一清二楚,配合良好的缩进,代码的可读性超过了流程图,你还想画流程图么?如果你想画流程图,就是对此一举——你画流程图需要很久的时间,而我说了,这些东西无论是编码还是作为别人阅读代码的参考都是没有价值的,最糟糕的是,代码经常变动,流程图也要跟着变,一旦两者不同步,反倒引起很多混淆,谁来维护流程图,谁来裁定流程图和代码的不一致,是编码的错误还是流程图的错误,流程图用什么工具维护,产生的文件如何随项目源代码组织?

我们从一个特别的视角来看结构化编程和非结构化编程吧,非结构化编程,我们的代码是一维的,线性的,代码一行一行写下去,虽然GOTO可以改变代码的执行方向,但是这些高层次的结构信息在代码层面是无法体现的。

在结构化编程的时代,我们不需要流程图了,因为流程图包含的信息在代码中已经反映了出来。但是新的问题来了,程序被划分成了很多函数,我们从一个函数调用另一个函数。那么当我们有了很多函数,新的麻烦出现了,我们发现一个大程序的一个函数很好,我们想在另一个程序中利用,于是我们把这个函数代码拷贝了出来,放入新的程序——程序并不能工作,为什么呢?很简单,这个函数中调用了另一个函数,显然这个函数仅仅存在在原来的程序中,好吧,我们在那个程序中搜索了一番,然后把那个函数拷贝了出来,又放入新的程序,程序还是不能运行!你猜到了,这个函数又调用了另一个函数,好吧,忙活了半天,眼看搞好了,突然,你发现了一个大灾难!什么灾难呢,你拷贝的第99个函数的函数名和你新程序中一个已经存在的函数的函数名相同,你必须修改其中的一个,而这种修改将会导致调用函数名的地方全部都要修改。于是又得想办法了,我们需要一个调用关系图,或者叫程序模块框图。

到了面向对象的时代,这个问题有了新的解决方式,我们可以用类将功能相关的方法和用到的数据加以组织,面向对象的类的组合、继承和聚合表达了他们之间的依赖关系,又有原本设计层面的信息被包含在代码中了,观察面向对象的程序的代码,不需要什么程序模块框图,也能很清晰看懂程序的组织结构。

还是刚才的视角,我们说结构化代码是二维的,一个维度是代码本身,一个维度则表明了它们的流程和层次,但是模块的依赖关系还是无法体现出来的,那么面向对象就是三维的,第三个维度,模块的依赖和组织被用代码表示出来了。

多说几句,其实还有第四个维度、第五个维度……很多使用VB的程序员也就看到第三个维度了,那么第四个维度是什么呢,对依赖关系和代码流程的复用——一个VB程序员明白如何将“公共”的代码提取成一个方法,而一个方法/函数本身做什么事情是确定无疑的。那么当我们的需求和函数的实现略有差异怎么办呢,一个典型的VB程序员的做法是,给这个函数增加一个参数,把两个不同需求作为这个参数,在函数里面判断。这意味着调用这个函数的用户,必须懂得修改这个函数的方法,并且越俎代庖代替函数的创建者修改它,还要处理现有代码对使用它的冲突。而一个C#程序员可以使用委托,使用委托使得函数编写者可以把细节的完善交给调用者,而他编写的代码只有算法的框架,细节和代码流程的分离在语言层面支持了,代码中不但包含了如何做的信息,还包含了做什么的信息——在此之前,做什么的信息是必须借助额外的文档说明的。

C#程序员也就只能看到第四个维度了,那么还有什么没有被包括进来呢?在C#程序员看来,程序是用来执行的,他们可能会编写一些小工具,把UML图转化为可以执行的程序,或者把程序转化成文档,他们可能会编写一些代码生成器产生那些冗繁而雷同的程序。前面我们说了,程序包含了原本是文档或者图中的信息,现在,我们可以说,既然如此,程序也可以被当作文档或者数据来被程序处理。程序本身只描述了它要做什么,至于它应该在上下文中做出怎样的行为,由它的上下文程序根据它的判断去完善这个程序——比如说,我们用javascript实现了一个算法,我们希望这个程序需要移植到GPGPU中运行,我们不需要人工去改写,我们知道,这个在CPU上运算的算法虽然无法直接在GPU上运行,但是它包含了算法应该如何做的全部信息,我们可以在运行时解析这个程序,而不是执行它,解析的目的是为了产生一个新的程序,新的程序适合我们的上下文(GPGPU),而这种代码变换由机器而不是人去处理——原先程序需要假设它的上下文,现在这些信息也不需要了。

注意,第五个维度是一个分界线——一个程序,去处理一个程序,而不是执行它,你觉得这件事情是编译器/解释器干的呢?还是库函数,用户编写的代码干的?我不知道。我不关心。因此,代码和控制代码运行的解释器/编译器的界限模糊了,这也意味着我们没有办法说它还是某种编程语言上写的一个程序,因为这个程序也可以看做是对这种语言语法的扩展。一种语言可以包含这种语言构成的原语,这意味着什么呢?这种编程语言可以模仿任何编程语言的任何特性,事实上,你可以说它是那种语言的一种方言。

  • 鍙笉鍙互灏嗕互涓嬬▼搴忔敼鍐欐垚娴佺▼鍥
    绛旓細濡傛灉浣犵敤杩嘨B锛屼綘灏辩煡閬擄紝if ... end if, for ... next, select ... case ... end select, function ... end function杩欐牱鐨勫眰娆$粨鏋勬妸浠g爜鍜屼唬鐮佷箣闂寸殑鍏崇郴鎻忚堪鐨勪竴娓呬簩妤锛岄厤鍚堣壇濂界殑缂╄繘锛屼唬鐮佺殑鍙鎬ц秴杩囦簡娴佺▼鍥撅紝浣犺繕鎯崇敾娴佺▼鍥句箞锛熷鏋滀綘鎯崇敾娴佺▼鍥撅紝灏辨槸瀵规涓涓锯斺斾綘鐢绘祦绋嬪浘...
  • VB鎬庝箞浠ヤ笅绋嬪簭鏀瑰啓鎴瀛愮▼搴
    绛旓細1銆佸湪鑿滃崟鈥滃伐鍏封--鈥滅敓鎴愯繃绋嬧濓紝鍙互鐢熸垚瀛绋嬪簭銆2銆佸伐鍏凤細vb6 3銆佹墦寮vb6,鍙屽嚮form鎴栧湪宸ョ▼绐楀彛鍗曞嚮鏌ョ湅浠g爜锛岀劧鍚庡崟鍑烩滃伐鍏封--鈥滄坊鍔犺繃绋嬧濓紝鍦ㄥ脊鍑虹殑绐楀彛涓坊鍔犺繃绋嬪悕xx锛岄夋嫨绉佹湁鐨勶紝纭畾灏卞彲浠ョ敓鎴恜rivate sub xx()杩囩▼銆4銆佹敞鎰忥細杩囩▼鐨勫叕鏈夋垨绉佹湁鏍规嵁闇瑕侀夋嫨銆
  • 鍏氬憳鍙戝睍娴佺▼鍥
    绛旓細鍏氬憳鍙戝睍娴佺▼鍥姒傝堪浜嗕粠鍒濇鍩瑰吇鍒拌浆姝g殑璇︾粏姝ラ锛岀‘淇濆叆鍏氳繃绋嬩弗璋ㄦ湁搴忋浠ヤ笅鏄鏀瑰啓鍚庣殑鍐呭锛氬厷鍛樺彂灞曟祦绋嬪垎涓哄嚑涓叧閿樁娈碉細鍒濇鍩瑰吇闃舵锛氱敵璇蜂汉閫掍氦鍏ュ厷鐢宠涔︼紝鍥㈡敮閮ㄦ帹鑽愶紝鍏氭敮閮ㄧ‘瀹氬煿鍏讳汉锛屽苟瀵圭敵璇蜂汉杩涜瀹氭湡鏁欒偛鍜岃冨療銆傚厷鏀儴浼氬彫寮鏀浼氾紝纭畾鍏ュ厷绉瀬鍒嗗瓙锛屽苟璁板綍鍦ㄣ婄Н鏋佸垎瀛愯冨療鐧昏绨裤嬩腑銆
  • 鎴愭湰鏍哥畻娴佺▼鍥
    绛旓細浠ヤ笅鏄叧浜庢苯杞︿慨閰嶅巶鎴愭湰鏍哥畻娴佺▼鐨鏀瑰啓锛氭苯杞︿慨閰嶅巶鐨勮储鍔$鐞嗗伐浣滄秹鍙婁弗璋ㄧ殑姝ラ銆傞鍏堬紝浼氳浜哄憳闇鏍规嵁瀹為檯涓氬姟锛岄伒寰細璁″埗搴﹀缓绔嬭处绨匡紝閲嶇偣鍏虫敞鐜伴噾鏃ヨ璐﹀拰閾惰瀛樻鏃ヨ璐︼紝纭繚鏃犺锛屽洜涓哄畠浠槸璁板綍鏃ュ父浜ゆ槗鐨勫熀纭锛屼竴鏃﹀嚭閿欑籂姝h捣鏉ヨ緝涓哄鏉傘傛帴鐫锛屼細璁′换鍔″寘鎷櫥璁版昏处銆佺幇閲戦摱琛岃处銆佹潗鏂欒处銆佸線鏉ヨ处...
  • [鎮祻]姹傝ВC璇█姹囩紪棰樼洰
    绛旓細1銆佺▼搴忔祦绋嬪浘鍒嗘瀽涓庢敼鍐欏洜涓哄弬鑰冪▼搴忔祦绋嬪浘涓瓨鍦ㄤ袱涓猧f鍒嗘敮浜ゅ弶鐨勬儏鍐碉紝杩欑绋嬪簭娴佺▼鏃犳硶鐩存帴鐢ㄥ惊鐜粨鏋勫疄鐜帮紝鎵浠ラ渶瑕佸绋嬪簭娴佺▼鍥捐繘琛屾敼鍐銆傚湪鏀瑰啓涔嬪墠闇瑕佸鏁翠釜娴佺▼鍥捐繘琛屽垎鏋愩傚弬鑰冩祦绋嬪浘鍙互鍒嗘垚涓ら儴鍒嗭紝濡備笂鍥炬墍绀猴紝绗竴閮ㄥ垎鏄孩鑹叉閮ㄥ垎锛屽搴旂悊璁鸿绠椾腑鐨勪粠鍔ㄤ欢杩愬姩瑙勫緥閮ㄥ垎锛涚浜岄儴鍒嗘槸榛勮壊妗嗛儴鍒...
  • 杞欢娴佺▼鍥鎬庝箞鐢
    绛旓細- 娴佺▼鍥鏈夊姪浜庤瘑鍒暟鎹祦鍜屾帶鍒舵祦绋嬩腑鐨勯棶棰樸- 浣跨敤涓嶅悓绗﹀彿鍜岄鑹茶〃绀烘暟鎹被鍨嬪拰鎺у埗淇″彿锛屽寮洪棶棰樿瘑鍒3. 鍥㈤槦娌熼氫笌鍗忎綔锛- 娴佺▼鍥句績杩涘紑鍙戜汉鍛樹笌鍏朵粬鍥㈤槦鎴愬憳涔嬮棿鐨勪氦娴併- 鍏变韩绯荤粺鐞嗚В鍜岃璁★紝鎻愰珮鍗忎綔鏁堢巼銆傞氳繃浠ヤ笂鏀瑰啓锛屽唴瀹规洿鍔犳潯鐞嗗寲鍜屼笓涓氾紝鍚屾椂淇濈暀浜嗗師鏈変俊鎭殑瀹屾暣鎬с
  • 璋佹潵甯垜鐢讳笅杩欎釜C++绋嬪簭鐨娴佺▼鍥
    绛旓細input1.open(a.c_str()); //浣跨敤a鐨勬柟娉昪_str()灏唖tring绫诲瀷鐨勬枃浠惰浆鎹负c璇█瀛楃涓插舰寮忕殑鏂囦欢鍚屾椂璁惧畾璇ユ枃浠朵负鍙褰㈠紡(涔熷氨鏄皢鏂囦欢const鍖),浠ュ悗鍦绋嬪簭涓涓嶈兘鏀瑰啓璇ユ枃浠(浣嗗彲浠ヨ)锛岀劧鍚庣敤瀵硅薄input1鐨刼pen()鏂规硶(灏辨槸鍑芥暟)鎸囧悜/鍏宠仈骞舵墦寮杩欎釜鏂囦欢 input2.open(b.c_str());//鍚屼笂...
  • 瓒呭競浠撳簱涓氬姟娴佺▼鍥
    绛旓細- 閲囪喘灏嗏滈佽揣鈥濈粰鍒颁粨搴撳悗锛屼粨搴撲汉鍛橀渶瑕佸皢璐х墿鏀惧埌浠撳簱鍐呴儴锛屼笉鍏佽鏀惧湪浠撳簱澶栵紝灏ゅ叾涓嶈兘闅斿鏀惧湪浠撳簱澶栵紝涓嬬彮鍚庡繀椤诲皢璐х墿妫鏌ユ斁鍦ㄤ粨搴撳唴閮ㄣ- 鏀惰揣鏃堕渶瑕佹眰閲囪喘浜哄憳缁欏埌鈥滈佽揣鍗曗濓紝娌℃湁鏃堕渶瑕佽拷鏌ワ紝鐩村埌鎷垮埌鍗曟嵁涓烘锛屽苟濉啓鍏ュ簱鍗曘備粨搴撲汉鍛樿礋杩芥煡鍜屼繚绠″崟鎹殑璐d换銆2. 鍑哄簱棰嗘枡 - 闇涓ユ牸鎸夌収鈥...
  • 浠ヤ笅绋嬪簭绛変环鏀瑰啓鎴"?:"琛ㄨ揪寮忔槸y=___;
    绛旓細y=x>=0?10:5;杩欎釜灏辨槸绛旀鍟婏紒锛侊紒
  • 濡傚浘鏄皢浜岃繘鍒舵暟11111 (2) 鍖栦负鍗佽繘鍒舵暟鐨勪竴涓绋嬪簭妗嗗浘.(1)灏嗗垽鏂...
    绛旓細i浠嶄笉婊¤冻鏉′欢锛屾墽琛孲=1+2脳15=31锛屾鏃31鏄杈撳嚭鐨凷鍊硷紝璇存槑i涓嶆弧瓒冲垽鏂涓殑鏉′欢锛岀敱姝ゅ彲鐭ワ紝鍒ゆ柇妗嗕腑鐨勬潯浠跺簲涓篿锛4锛庯紙2锛夌洿鍒板瀷寰幆缁撴瀯鐨勫畾涔夛細鍦ㄦ墽琛屼竴娆″惊鐜悗锛屽鏉′欢杩涜鍒ゆ柇锛屽鏋滄潯浠朵笉婊¤冻锛屽氨缁х画鎵ц寰幆浣擄紝鐩村埌鏉′欢婊¤冻鏃剁粓姝㈠惊鐜紟 鐢ㄧ洿鍒板瀷寰幆缁撴瀯鏀瑰啓娴佺▼鍥锛屽鍥炬墍绀猴紟
  • 扩展阅读:ai智能写作一键生成 ... word里怎么做流程图 ... 宝宝用遥控器催眠妈妈 ... 流程图程序 ... 被王鹏控制的一家人 ... 工程设计变更流程步骤 ... 一键生成流程图 ... 修订版怎么改成清洁版 ... 一个完整的项目流程图 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网