大家大家,请问这个python代码怎么转换成流程图啊?需要比较规范的!

大家大家,请问这个python代码怎么转换成流程图啊?需要比较规范的!,第1张

你要的这个流程图,是辅助代码理解的,通常是在学习过程中、或者一些代码块的分析中用到。
实际项目几乎用不到,而且实际项目业务逻辑复杂,要生成你说的流程图是很困难的。有复杂,对生产力又没有帮助,自然没有人会去做这样的程序
所以还是自己画吧。

1,
代码风格不好,不好阅读
2,
代码有错误
printf("\n")没有";"结束 没有挂#include<stdioh>
3,
代码扩展性不好,形状大小固定
4,
流程图和注释正在写,一会贴出来
下面小做调整,NUM后面的数字4,10,21,随便改
/\
流程图
开始

循环A 输出菱形上半三角部分NUM行

循环1 j行输出空格NUM-i个空格
NUM-i个空格是否结束 没有继续循环1 结束往下

循环2 k行输出空格2i-1个
2i-1个是否结束 没有继续循环2 结束往下

输出换行

NUM行是否结束 没有继续循环A 结束往下

循环B 输出菱形下半三角部分NUM-1行

循环3 j行输出空格i个空格
i个空格是否结束 没有继续循环1 结束往下

循环4 k行输出空格(2NUM-1)-2i个
(2NUM-1)-2i个是否结束 没有继续循环2 结束往下

输出换行

NUM-1行是否结束 没有继续循环B 结束往下

结束

\/
#include<stdioh>
#define NUM 10
void main()
{
int i,j,k;
for(i=1;i<=NUM;i++) //循环A
{
for(j=1;j<=NUM-i;j++) //循环1
{
printf(" ");
}
for(k=1;k<=2i-1;k++) //循环2
{
printf("");
}
printf("\n");
}
for(i=1;i<NUM;i++) //循环B
{
for(j=1;j<=i;j++) //循环3
{
printf(" ");
}
for(k=1;k<=(2NUM-1)-2i;k++) //循环4
{
printf("");
}
printf("\n");
}
}

程序流程图一般是写程序之前画的,就是一个编程的思路。
按照你的情况,应该要先读懂别人写的程序是个什么意思,然后再画出来就行了。
从main函数开始看,弄懂EnableInt1是什么意思,有什么作用。然后一条条地往下列就可以了。
软件也有,不过远没有自己弄的那么好

Word中如何绘制流程图
流程图可以给我们清楚的展现出一些复杂的数据,让我们分析或观看起来更加清楚明了。一般在企业、公司、医疗、教学、生产线上等都会派上非常大的作用,一个工场的生产流程,一个公司的运营模式都只需要用一张流程图就可以简单的概括出来,所以制作流程图是办公人员必备的武器之一。
工具/原料
word 2003
方法/步骤
1
新建一个word 文档,通过“视图”-“工具栏”-“绘图”,如下图1,显示“绘图工具栏”,如下图2;
2
单击“绘图”工具栏上的“自选图形”,然后选择“流程图”,这里就可以看到众多制作流程图时所用到的形状了,大家可以选择自己喜欢的的形状;
3
单击要绘制流程图的位置,此时会出现个虚框;
在绘图画布上插入你选择的图形,然后插入;
我们再重复上述步骤,插入多种不同的图形,(如下图,我已经插入了很多种不同的图形);
接下来,我们要建立各种图形之间的连接了。这里我们使用Word提供的一个非常好用的自选图形——连接符来建立连接。 连接符的选择见下图;
选择连接符自选图形后,将鼠标指针移动到对象上时,会在其上显示蓝色连接符位置,这些点表示可以附加连接符线的位置;
我们首先用带箭头的肘形线连接符和直线连接符将图形连接到一起,如图;
绘制折线箭头;
接下来,我们需要在图形中添加文字。用鼠标右键单击形状,单击“添加文字”并开始键入。
我们随便录入文字;
制作好后,我按住左键不放,框选所有图形,点击右键,组合;
一个简单的流程图就设计好了,大家可以按照自己的工作需要进行更复杂的设计。
-----------------------------
一、什么是程序流程图
“程序流程图”常简称为“流程图”,是一种传统的算法表示法,程序流程图是人们对解决问题的方法、思路或算法的一种描述。它利用图形化的符号框来代表各种不同性质的 *** 作,并用流程线来连接这些 *** 作。在程序的设计(在编码之前)阶段,通过画流程图,可以帮助我们理清程序思路。下图是一个简单的流程图,描述求两个数的最大公约数的算法(辗转相除法)。
勘误:最后的结果,该是output a。感谢8楼童鞋指出!
画流程图是每个程序员的基本功。流程图有其规范,这是用于技术人员之间交流的需要,并不是想怎么画就怎么画。流程图中常用的符号见右图,在前述求最大公约数的流程图中找出对应的部分。
二、三种控制结构的流程图表示
这部分不再写文字,各种程序设计的教材中都会写一些,至少在讲各种控制结构时,总时要讲的。请参考自己手头能找到的教材,认真品味。
我们直接提示若干任务,画一画,就会了。
三、练习题目(各部分分别至少选两个画一画,注意用一张质量好一些纸,书写整齐,确保越画越高兴)
1、热身
(1)将英尺转换为米
(2)输入两个点的坐标,求两点之间的距离并输出
2、分支程序
(1)描述一下今晚的计划:如果下雪,校园内玩雪;否则,在103上机(怀念)
(2)丢硬币决定今晚:正面,K歌;反面:逛街;立起来,学C++
(3)求函数值:
(4)输入一元二次方程ax^2+bx+c=0的各项系数,并根据各系数的值的情况,分别进行求解(考虑对系数的各种可能太复杂时,给自己降低些难度,先从不考虑系统直接求解开始)
(5)输入个人月收入总额,计算出他本月应缴税款和税后收入(税率等参考第9周任务)
3、循环结构
(1)求1+2+3++100(三种循环结构都画一画)
(2)输出1/3-3/5+5/7-7/9…+19/21的结果
(3)一个数如果恰好等于它的因子之和,这个数就称为“完数”。找出1000内的所有完数。
(4)输出1000以内的所有回文数
(5)鸡翁一,值钱五,鸡母一,值钱三,鸡雏三,值钱一,百钱买百鸡,如何买?
4、复杂结构的程序
在解决问题中,利用函数可以让我们利用更“有序”的思维去想问题,“自顶向下,逐步求精”,真理。例:下面的流程图用于输出星号图,体现的是这种思维,右边的图可以嵌入到左边中,替代“输出第i行”的框子,也可以指导我们专门编成一个函数。
任务:
(1)输出10000以内的所有回文素数。将判断回文和判断素数分别单独画,对应将这两个功能用函数实现的方法。
(2)画出银行系统的流程图(各具体业务点到为止,不必全画)
注:在传统教学中,未学写代码,先学画流程。以前的实践中,感觉效果不好。控制结构为何物都晕,如何能画出来。有一定编程体验后再画,是改革的思路。这是编程的一项基本功,务必掌握!
------------------------
用什么绘制流程图
一、什么是程序流程图
“程序流程图”常简称为“流程图”,是一种传统的算法表示法,程序流程图是人们对解决问题的方法、思路或算法的一种描述。它利用图形化的符号框来代表各种不同性质的 *** 作,并用流程线来连接这些 *** 作。在程序的设计(在编码之前)阶段,通过画流程图,可以帮助我们理清程序思路。下图是一个简单的流程图,描述求两个数的最大公约数的算法(辗转相除法)。
勘误:最后的结果,该是output a。感谢8楼童鞋指出!
画流程图是每个程序员的基本功。流程图有其规范,这是用于技术人员之间交流的需要,并不是想怎么画就怎么画。流程图中常用的符号见右图,在前述求最大公约数的流程图中找出对应的部分。
二、三种控制结构的流程图表示
这部分不再写文字,各种程序设计的教材中都会写一些,至少在讲各种控制结构时,总时要讲的。请参考自己手头能找到的教材,认真品味。
我们直接提示若干任务,画一画,就会了。
三、练习题目(各部分分别至少选两个画一画,注意用一张质量好一些纸,书写整齐,确保越画越高兴)
1、热身
(1)将英尺转换为米
(2)输入两个点的坐标,求两点之间的距离并输出
2、分支程序
(1)描述一下今晚的计划:如果下雪,校园内玩雪;否则,在103上机(怀念)
(2)丢硬币决定今晚:正面,K歌;反面:逛街;立起来,学C++
(3)求函数值:
(4)输入一元二次方程ax^2+bx+c=0的各项系数,并根据各系数的值的情况,分别进行求解(考虑对系数的各种可能太复杂时,给自己降低些难度,先从不考虑系统直接求解开始)
(5)输入个人月收入总额,计算出他本月应缴税款和税后收入(税率等参考第9周任务)
3、循环结构
(1)求1+2+3++100(三种循环结构都画一画)
(2)输出1/3-3/5+5/7-7/9…+19/21的结果
(3)一个数如果恰好等于它的因子之和,这个数就称为“完数”。找出1000内的所有完数。
(4)输出1000以内的所有回文数
(5)鸡翁一,值钱五,鸡母一,值钱三,鸡雏三,值钱一,百钱买百鸡,如何买?
4、复杂结构的程序
在解决问题中,利用函数可以让我们利用更“有序”的思维去想问题,“自顶向下,逐步求精”,真理。例:下面的流程图用于输出星号图,体现的是这种思维,右边的图可以嵌入到左边中,替代“输出第i行”的框子,也可以指导我们专门编成一个函数。
任务:
(1)输出10000以内的所有回文素数。将判断回文和判断素数分别单独画,对应将这两个功能用函数实现的方法。
(2)画出银行系统的流程图(各具体业务点到为止,不必全画)
注:在传统教学中,未学写代码,先学画流程。以前的实践中,感觉效果不好。控制结构为何物都晕,如何能画出来。有一定编程体验后再画,是改革的思路。这是编程的一项基本功,务必掌握!
——知乎

char a,b,c;
{if (n==1) printf("%c-->%c\n",a,c);
else {hanoi (n-1,a,c,b);
printf ("%c-->%c\n",a,c);
hanoi (n-1,b,a,c);}
}
我给你详细解释下这个程序中的代码吧。我也是刚学,希望对你有用。可能有些不好之处,还希望谅解。
先说下这个问题的整体思想:
1,如果只有1个盘,那么就直接把这个盘从A移动到C上。
2,如果存在两个盘,那么先把第一个盘移动到B上,在把最下面一个盘移动到C上,在把B上的盘移动到C上。
3,这样,我们可以得出一个结论,如果存在N个盘,可以先把上面N-1个盘通过C 移动到B上,然后把第N个盘移动到C上, 再把B上的N个盘通过A移动到C上。
if (n==1) printf("%c-->%c\n",a,c);
这一句,表示只有1个盘子的时候,那么就是把第一个盘子直接移到第三个盘子上。
else {hanoi (n-1,a,c,b);
如果超过一个盘字,则需要先把N-1个盘子通过C 移动到B上。
printf ("%c-->%c\n",a,c);
把剩下的第N个盘,从A移动到C上。

hanoi (n-1,b,a,c);}
再把剩下的在B上的N-1个盘,通过A移动到C上。
这属于一个递归算法。
现在,N=3。
我们看下程序怎么运行的。
else {hanoi (n-1,a,c,b);
printf ("%c-->%c\n",a,c);
hanoi (n-1,b,a,c);}
N=3,也就是开始程序会执行
hanoi (2,a,c,b);这句语句。
再看,2还是大于1,所以
程序会继续运行。 注意,这里,为hanoi (2,a,c,b); C和B 换了位置。
hanoi (2,a,c,b);
我们把数字代入,得出。
根据 N=2,C和B 互换。以及下面的代码,得出
````````````````````````````````````````````````
hanoi(n,a,b,c)
int n;
char a,b,c;
{if (n==1) printf("%c-->%c\n",a,c);
else {hanoi (n-1,a,c,b);
printf ("%c-->%c\n",a,c);
hanoi (n-1,b,a,c);}
}
```````````````````````````````````````````````
hanoi(2,a,c,b)
int n=2;
char a,c,b;
{if (n==1) printf("%c-->%c\n",a,b);
else {hanoi (1,a,b,c);
printf ("%c-->%c\n",a,b);
hanoi (1,c,a,b);}
} / 这并不是正确的代码,只是为了得出答案而写的一些数据。/
这样, 我们可以看出,程序会先执行
else {hanoi (1,a,b,c);
所以,开始会先输出A C(中间的符号省略,以下也一样)
然后,再输出
printf ("%c-->%c\n",a,b); A B
接着,执行
hanoi (1,c,a,b);} 这时候,就是C B了。
也就是说 hanoi(2,a,c,b) 的输出为 AC AB CB
你的问题就已经解决了。
接下来再返回第一层:
现在,N=3。
我们看下程序怎么运行的。
else {hanoi (n-1,a,c,b);
printf ("%c-->%c\n",a,c);
hanoi (n-1,b,a,c);}
这时候,我们再把数字代进去。
现在,N=3。
我们看下程序怎么运行的。
else {hanoi (2,a,c,b);
printf ("%c-->%c\n",a,c);
hanoi (2,b,a,c);}
根据上面的结论
/ 也就是说 hanoi(2,a,c,b) 的输出为 AC AB CB /
可以看出,先执行第一条语句:
else {hanoi (2,a,c,b);
则输出 AC AB CB
再执行第二条语句:
printf ("%c-->%c\n",a,c);
输出 AC
然后执行第三条
hanoi (2,b,a,c);}
根据这里,/ 也就是说 hanoi(2,a,c,b) 的输出为 AC AB CB /
字母进行替代后,A变B,C变A B变C。
所以输出的AC AB CB 则为
BA BC AC
所以,最终的结果为 AC AB CB AC BA BC AC
中间可能有很多废话,可以不看。
这样算下去,不管多少层都能推算出来,可复杂度会高得难以想像。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/13098421.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-30
下一篇 2023-05-30

发表评论

登录后才能评论

评论列表(0条)

保存