Graphiques de flux de contrôle - Décomposition des arbres
-
31-10-2019 - |
Question
Compte tenu des terminologies ci-dessus pour les graphiques de flux de contrôle de dessin pour tout programme, il est très simple. Par exemple :
While A
if B
do ..
else do ..
end while
Par exemple ci-dessus, tout en faisant la décomposition, je peux dire que c'est
D2 (d1)
c'est-à-dire que pendant et puis à l'intérieur, c'est if-then-else.
Considérant la même situation. Comment pouvez-vous représenter
Continuer et casser les déclarations
Pour toujours FOR statement
il n'y a pas de terminologie définie comme pour while
et if then else
. FOR statement
tombe sous while
.
Mon professeur dit en théorie, il n'y a rien Break and continue statement
Et je n'ai rien trouvé en ligne aussi.
Par exemple :
# 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;
}
Le graphique de flux de contrôle pour cela est comme ci-dessous: le nœud a un numéro de ligne écrit: (désolé l'image est latérale)
J'ai décomposé ceci comme:
P1;P1;D2(P1;P1;D1);P1
* P1 represents set of statements outside loops
Je ne sais pas si c'est correct. Mes professeurs dit d'utiliser quelque chose comme D22 pour la pause, comme créer un nouveau terme à partir de l'image ci-dessus.
Ma principale question ici est la décomposition. Je sais que j'ai dessiné le CFG correctement, mais la décomposition est-elle correcte selon la première image ?. L'état de pause crée un certain temps comme vous pouvez le voir dans CFG, mais je ne sais pas s'il doit être considéré comme si et je suppose que nous ne pouvons pas, selon mon professeur.
Je travaille là-dessus et je voulais savoir que si quelqu'un a rencontré quelque chose pour la pause et continuer les déclarations pendant la décomposition des graphiques, faites-le moi savoir.
Merci.
PS: S'il vous plaît, faites-le moi savoir, si je ne suis pas clair et si plus d'informations sont nécessaires. Je peux probablement écrire un exemple et télécharger l'image.
Pas de solution correcte