Considering above terminologies for drawing control flow graphs for any program, it is very simple. For example :
While A
if B
do ..
else do ..
end while
For above example, while doing decomposition, I can say its
D2 (D1)
i.e while and then inside while, its if-then-else.
Considering same situation. How can you represent
CONTINUE and BREAK statements
Ever for FOR statement
there is no defined terminology like for while
and if then else
. FOR statement
falls under while
.
My prof says in theory, there is nothing about Break and continue statement
and I couldnt find anything online too.
For example :
# include <stdio.h>
int main(){
float num,average,sum;
int i,n;
printf("Maximum no. of inputs\n");
scanf("%d",&n);
for(i=1;i<=n;++i){
printf("Enter n%d: ",i);
scanf("%f",&num);
if(num<0.0)
break; //for loop breaks if num<0.0
sum=sum+num;
}
average=sum/(i-1);
printf("Average=%.2f",average);
return 0;
}
Control flow graph for this is as below: the nodes has line number written : (Sorry the image is side ways)
I decomposed this as :
P1;P1;D2(P1;P1;D1);P1
* P1 represents set of statements outside loops
I'm not sure if this is correct. My professors says to use something as D22 for break, like create a new term from above image.
My main question here is the decomposition. I Know that i drew the CFG correctly, but is the decomposition correct according to the first image?. The break state kind of creates a while as you can see in CFG, but i'm not sure if it has to be considered as while and I guess we cannot, as per my professor.
I am working on this and wanted to know, if anyone has come across something for Break and continue statements while decomposition of graphs, please let me know.
Thanks.
PS : Please, Let me know, if am unclear and if anymore info is needed. I can probably write down an example and upload the picture.
continue
as anif
, andbreak
as anif
which in addition modifies the loop condition. I'm not sure that is enlightening for your applications. $\endgroup$