SYSTEM mystem1; SIGNAL S1,S2; PROCESS P1,P2; PROCESSDEF P1 START BLOCK blockid1 BEGIN START int i=0,j=0; char t[50]; char max,secondmax; GOTO mydec1 END DECISION mydec1 IF i<10 THEN GOTO comid1 ELSE GOTO blockid2 BLOCK blockid2 BEGIN START printf("Done 1\n"); secondmax = max; max = a[j]; GOTO mydec1a END BLOCK blockid3 BEGIN START i++; GOTO mydec1 END COMM comid1 SEND(S1,'a'); RECV(S2,t[i]); GOTO blockid3 DECISION mydec1a IF j < 0 THEN GOTO mydec2a ELSE GOTO myblock8a DECISION mydec2a IF t[j] > max THEN GOTO myblock4a ELSE GOTO mydec3a BLOCK myblock4a START secondmax = max; max = t[j]; END DECISION mydec3a IF t[j] > secondmax THEN GOTO myblock7a ELSE GOTO myblock5a BLOCK myblock5a START j++; GOTO mydec1a; END BLOCK myblock7a START secondmax = t[j]; GOTO myblock5a; END BLOCK myblock8a START printf("max = %c, secmax = %c\n",max,secondmax); END END PROCESSDEF P2 START BLOCK blockid4 BEGIN START int i=0; char c[50]; c[0]='e'; c[1]='f'; c[2]='r'; c[3]='*'; c[4]='x'; c[5]='T'; c[6]='E'; c[7]='0'; c[8]='q'; c[9]='w'; char v; GOTO mydec2 END DECISION mydec2 IF i<10 THEN GOTO comid2 ELSE GOTO blockid4 BLOCK blockid4 BEGIN START printf("Done\n"); END BLOCK blockid5 BEGIN START i++; printf("%c",v); GOTO mydec2 END COMM comid2 RECV(S1,v); SEND(S2,c[i]); GOTO blockid5 END