若是画主程序流程图,那就需看懂主函数的程序,按照main()函数中的具体书写过程来画,例如:
程序开始---定义变量---初始化变量---使用选择或者循环或者顺序结构---调用某一个子函数(可以没有)---程序结束
以上是最简单的程序流程图画法。
若你是画某一算法或是某一模块的流程图,就要把相应的算法或是模块看懂。分析算法或是模块的具体走法,根据此走法就可以画出对应的流程图。
如果你是初学者,想根据流程图的画法而去尝试编程,建议就一定要研究清楚每一个使用到的算法,读懂题目再开始编程。
下面是使VISO画流程图的几个要点:
1、选择下载一个合适版本的VISO
2、程序开始结束用胶囊
3、分页用圆圈
4、输入用平行四边形
5、语句用方块
6、判断用菱形
7、打印用波浪
/*找9张牌给card*/for (deckp = 0deckp <sizedeckp++)
{
div_t card = div(deck[deckp], SUITSIZE)
cards[deckp].val = "A23456789TJQK"[card.rem]/*把余数给card.val*/
cards[deckp].kind = "3456"[card.quot]/*把商给card.kind*/
}
}
/*show的原代码,将会自动换行*/
void show(const Card *cards, int size)
{
for(int i = 0i <sizei++)
{
printf("%c%c ",cards[i].kind,cards[i].val)
if( (i !=0) &&(((i+1 ) % 3) == 0))
puts("")
}
puts("")/*自动换行*/
}
/*grouping 的原代码*/
void grouping(const Card *cards, Card *carr1, Card *carr2, Card *carr3)
{
int i = 0/*循环参数*/
/*分给carr1三个数*/
while (i <3)
{
carr1[i].val = cards[i].val
carr1[i].kind = cards[i].kind
i++
}
/*分给carr2接下来的三个数*/
while (i <6)
{
carr2[i-3].val = cards[i].val
carr2[i-3].kind = cards[i].kind
i++
}
/*分给carr3接下来的三个数*/
while (i <9)
{
carr3[i-6].val = cards[i].val
carr3[i-6].kind = cards[i].kind
i++
}
}
/*rshift的实现*/
void rshift(Card *carr1, Card *carr2, Card *carr3, int counter)
{
Card temp2/*用于存放carr2[counter]*/
Card temp3/*用于存放carr3[counter]*/
/*temp = carr2*/
temp2.val = carr2[counter].val
temp2.kind = carr2[counter].kind
/*carr2 = carr1*/
carr2[counter].val = carr1[counter].val
carr2[counter].kind = carr1[counter].kind
/*temp3 = carr3*/
temp3.val = carr3[counter].val
temp3.kind = carr3[counter].kind
/*carr3 = carr2*/
carr3[counter].val = temp2.val
carr3[counter].kind = temp2.kind
/*carr1 = carr3*/
carr1[counter].val = temp3.val
carr1[counter].kind = temp3.kind
}
Card* result_process(Card *carr1, Card *carr2, Card *carr3, int counter)
{
rshift(carr1, carr2, carr3, counter)/* 把数组的第一个元素依次右移*/
if(counter == 2)
{
return(&carr2[2])
}
show(carr1, 3)
show(carr2, 3)
show(carr3, 3)
puts("请给出你记住的牌所在行数:")
fflush(stdin)
int input = 1
input = getchar()/*获取你选的组*/
switch(input)
{
case '1':
return(result_process(carr1, carr2, carr3, ++counter))
break
case '2':
return(&carr2[counter])
break
default:
puts("你在撒谎!不和你玩了!")
return NULL
}
}
我就个人的经验来谈一下吧:如果你是会编程序而不会画流程图的这种我建议你应该先把自己的程序研究一遍倘若是画主程序流程图的话那就只需看懂主函数的程序就行了按照Main()函数中的具体书写过程来画比如:定义变量--------初始化变量------使用选择或者循环或者顺序结构------调用某一个子函数(可以没有)----------程序结束 以上是最简单的程序流程图画法倘若你是画某一算法或是某一模块的流程图的话就要把相应的算法或是模块看懂再说分析算法或是模块的具体走法根据此走法就可以画出对应的流程图
如果你是初学者是想根据流程图的画法而去尝试编程的话我建议你就一定要研究好每一个使用到的算法读懂题目再画流程图