i J1~' T"_ APENDICE CODIFICACION DE LAS ESTRUCTURAS AS ALGOL C PL/I
APENDICE. CODIFICACION DE LAS ESTRUCTURAS AS 231 ESTRUcrURAIF Ejemplo: EVALUATE L1BRERIA,CLlENTE,TITULO WHEN 1 THRU 5,1 THRU 20,ANY PERFORM GIRO 1 WHEN 6 THRU 7,1 THRU 20,NOT AS PERFORM GIR02 WHEN 8 THRU 10 ANY,ANY PERFORM GIR03 WHEN OTHER PERFORM GIR04 END-EVALUATE, PLjI Y ALGOL Formato: IF expr. lógica THEN [ELSE ] BEGIN Formato: IF exp. lógica [THEN] {Sentencia l IFA = OTHEN NEXT SENTENCE IF B = OTHEN WRITELN ('SOLUCION INDETERMIN') [{ ELSE l {Sentencia l] ELSE WRITELN ('SOLUCION IMPOSIBLE') OTHERWISE NEXT SENTENCE [.] ELSE... Ejemplo: IF DELTA < O DISPLAY "SOLUCION IMAGINARIA" ELSE IF DELTA = O DISPLAY "SOLUCIONES IGUALES" ELSE COMPUTE RAIZ =. o también IF K < A ANO (C > J) PERFORM RUTINA-1 ELSE IF (K = A) OR (C = J) PERFORM... ELSE... Formato: if expresión lógica then ; [elsif expresión lógica then ;] [else ;] end if; Ejemplo: IF CIUDAD = MADRID THEN DISTANClA: = DISTANCIA+200; ELSIF CIUDAD = ZARAGOZA THEN DISTANCIA: = DISTANCIA+300; ELSE DISTANCIA: = O END IF; estructurado j identificador Formato: EVALUATE expresión Formato: if (expresión lógica) ; [...] TRUE [elsif (expresión lógica) ;] FALSE J [else ;] WHEN objeto-selección Ejemplo: if (R = 40) [WHEN OTHER ] if (DELTA = O) [END-EVALUATE] K = O; else 230 K = DELTA; ~:,L
232 METODOLOGIA DE LA PROGRAMACION APENDICE. CODIFICACIQN DE LAS ESTRUCTURAS AS 233 ALGOL 68 Formato: if condición then else if condició~j sentencia [ fi fi Ejemplo: IF A > B THEN 400 IF A > B GOTa 400 Formato: IF expresión lógica THEN -etiqueta -etiqueta 1 \ [:...] Ejemplo: if ROMBO < O [ ELSE \ [:...] then PRINT (("SOLUCION NEGATIVA ")) else Ejemplo: IF M < OTHEN N=5 : M=7 : N= 15 if ROMBO = O ELSE N = 5 : M=14 : N=4 then PRINT (("SOLUCIONES IGUALES")) else if... fi fi fi ESTRUcrURA CASE IJ Formato: IF (expresión aritmética) etiqueta 1, etiqueta2, etiqueta3 IF (expresión lógica) Ejemplo:IF (peso.ea.1.and.staiv.gt.1)m = k * 8 IF(K.GT.500)GOTO 500 Formato: case expresión OF C1: 1; C2: 2; Formato: IF (expresión lógica) THEN [ELSE IF (expresión lógica) THEN ] Cn: n; [ELSE ] end ENDIF Ejemplo: case Notas of Ejemplo: IF (A.GT.O) THEN 1,2,3 :N:=N+3 PAUSE 999 4 :N:=(N-2)*Q; ELSE 5,9 :N:=N+Q; N = N * 30 10,14 :N:=N*Q; ENDIF end case MARCA of 'SANYO' : DESCUENTO:=0.10; 'SONY' : DESCUENTO:=0.20; 'PIONNER' : DESCUENTO:=0.05; Formato: {THEN } 'MARCONI': DESCUENTO:=0.15; IF (expresión lógica) GOTa s (números o etiquetas) end GOSUB
234 METODOLOGIA DE LA PROGRAMACION PLjI Formato: switch (expresión entera) I case constante: ;] [default:] 1 Ejemplo: switch (var) I case '1': case '2': case '3': n=(k+5); case' 4' :n=(k-4)-j; case '5': case '7' :n=j+k; case '10':n=j-k; default:break; 1 Formato: case expresión is when valor [1 valor...] => ; when others => ; end case; Ejemplo: case MARCA is when SEAT => DESCUENTO:=0.12; when OPEL=> DESCUENTO:=0.15; when FORD => DESCUENTO:=0.08; when RENAULT = > DESCUENTO:=0.10; when others => PRINT MENSAJE("NO SE VENDE ESA MARCA"); end case; Formato: SELECT (expresión); WHEN (expresión) ; [WHEN...] OTHERWISE ; APENDICE. CODIFICACION DE LAS ESTRUCTURAS AS 235 Ejemplo: SHECT (MARCA); WHEN (MARCA='SEAT') DESCUENTO=0.12; WHEN (MARCA='OPEL') DESCUENTO=0.10; ~ OTHERWISE CALL SALIDA; ESTRUcrURA DOWHILE Formato: WHILE condición DO Ejemplo: WHILE BRAVO> O DO BEGIN \R1 :=(-B+M)j(2-N); R2:=(-B-M)j(2-N); ALGOL 68 Formato: while condición do od Formato: while (expresión) Formato: while (condición) loop s; end loop; Ejemplo: while parcial/=demo parcial loop total:=total+campo; end loop;
236 METODOLOGIA DE LA PROGRAMACION PLjl Formato: DO WHILE (condición) Formato: PERFORM nombre procedimiento [THRU nombre procedimiento] UNTIL (NOT condición) AFTER 1 PERFORM WITH TEST BEFORE UNTIL [NOT] condición END-PERFORM Ejemplo: PERFORM WITH TEST BEFORE UNTIL (DISCRIMINANTE < O) R1=(-B+DISCRIMINANTE**0.5)/(2*Al R2=(-B-DISCRIMINANTE**0. 5)/(2* A) END-PERFORM Formato: WHILE condición WEND APENDICE. CODIFICACION DE LAS ESTRUCTURAS AS 237 Ejemplo: DOWHILE (N.GT.M) DISCRIMINANTE=B**2-4*A*C IF (DISCRIMINANTE.GT.O) THEN R1=(-B+SORT(DISCRIMINANTE))/(2*Al R2=(-B-SORT(DISCRIMINANTE))/(2*Al ENDIF ENDDO ESTRUcrURA DOUNTIL Formato: REPEAT : [:...] UNTIL expresión lógica Ejemplo: NUMFIN: =0; TOTAL: =0; REPEAT BEGIN READLN (NUMERO); TOTAL:=TOTAL+NUMERO, NUMFIN:=NUMFIN+1 UNTIL EOF; MEDIA: =TOTAL/NUMFIN; Formato: En las versiones antiguas de no existe la estructura DOWHILE y se debe simular. 1 IF (.NOT.(EXPERL)) GOTO 2 s Formato: do s while (expresión); GOTO 1 2 CONTINUE En las versiones más recientes DOWHILE (expresión lógica) ENDDO PLjI Formato: DO WHILE (condición)
'rfi7 238 METODOLOGIA DE LA PROGRAMACION APENDICE. CODIFICACION DE LAS ESTRUCTURAS AS 239 Formato: a: PERFORM nombre procedimiento [THRU nombre procedimiento] WITH TEST AFTER UNTIL condición b: PERFORM WITH TEST AFTER UNTI Lcondición END PERFORM Formato: 1 CONTINUE... s IF (.NOT.(EXPRL)) GOTO 1 Formato: exit [nombre bucle] [when condición] FORTH Formato: BEGIN condición UNTIL \, Formato: goto etiqueta Formato: GOTO {ent~ro } varjable PL/l Formato: GO TO nombre procedimiento Formato: GOTO {eti~ueta} varjable Formato: goto etiqueta SALTOS INCONDICIONALES Formato: GOTO número de línea ALGOL 68 Formato: Goto etiqueta Formato: goto etiqueta ~ Formato: SALTOS CONDICIONALES a) GOTO (etiqueta 1, etiqueta2,.,. etiquetan),n N=J-L GOTO(10,20,30,60),N 10 I=I*N GOTO 100 20 1={I*N)-5 GOTO 100 30...
240 METODOLOGIA DE LA PROGRAMACION b) GOTO N.(etiqueta t etiqueta2,... etiquetan) ASSIGN 2 TO N GOTa N,(l,2,3,4) 1 I=I*N GOTa 100 2 1=(I*N)-5 GOTa 100 3. 4.. 100 PRINT 45,N Formato: I THEN ON expresión GOTO nl'n 2,n 3,... GOSUB Ejemplo: ON N GOTO 100,200,300,40 Formato: GO TO etiqueta 1[,]etiqueta2[,]... etiquetan OEPENOING ON. identificador INTERACCION GENERAL/BUCLES REPETITIVOS Formato: FOR variable control=valor inicialto valor final [STEP incremento]... s NEXT variable de control Ejemplo: FOR 1= 1 TO 100 STEP 4 PRINT 1*4 NEXTI PL/l APENDICE. CODIFICACION DE LAS ESTRUCTURAS AS 241 Formato: DO variable control= valor inicial [,valor inicial... ] [BY incremento](to valor fina~ [WHILE ( expresión lógica)] s ENO; ALGOL Formato: for variable contro/:= valor inicial step paso until valor final do ; Ejemplo: for N:=l step 1 until 20 do if A I Othen 1:=1+ 1; Formato: for variable control:=valor inicial to valor final downto do Formato: for variable control in [reverse]..intervalo discreto s while condición Ejemplo: for M in 1... 15 loop if A(I) > Othen 1:=1+ 1; endif end loop; ALGOL 68 Formato: for variable control [from valor inicia~[by paso] [to valor fina~ [while condición] do s od
242 "c" METODOLOGIA DE LA PROGRAMACION ;~:f!! ~ ",~ f' " '1" "... ' ~, 7t \, 1,1" Formato: for ([valor variable]:[condición]:[paso]) s; Formato: DO etiqueta variable control= valor inicial valor final, [incremento] Ejemplo: DO 10 N= 1,8 10 TOTAL=TOTAL+IMPORTE(K) "~; '11'" It;,