PROGRAM CONTAR_CARACTERES; TYPE TEXTO=STRING[100]; VAR W:TEXTO; X,R,CAR:LONGINT; A:CHAR; PROCEDURE LEER(VAR S:TEXTO); VAR T,L:LONGINT; U:CHAR; BEGIN READ(U);T:=1; WHILE U<>'.' DO BEGIN S[T]:=U; READ(U); T:=T+1; END; END; PROCEDURE SALTB(S:TEXTO); VAR I:LONGINT; BEGIN WHILE (S[I]=' ') AND (S[I]<>'.') BEGIN I:=I+1; END; END; DO PROCEDURE SALTPAL(S:TEXTO); VAR I:LONGINT; BEGIN WHILE (S[I]<>' ') AND (S[I]<>'.') DO BEGIN I:=I+1; END; END; FUNCTION CONTCAR(S:TEXTO;N:LONGINT):LONGINT; VAR P,I,Z:LONGINT; BEGIN I:=1; SALTB(S); P:=1; WHILE (P<>N) AND (S[I]<>'.') DO BEGIN SALTPAL(S); SALTB(S); P:=P+1; END; Z:=1; WHILE (S[I]<>' ') AND (S[I]<>'.') DO BEGIN I:=I+1; Z:=Z+1; END; CONTCAR:=Z; END; BEGIN REPEAT car:=0; WRITELN; WRITELN; WRITELN(' *****************************************'); WRITELN(' * C O N T A R C A R A C T E R E S * '); WRITELN(' ***************************************** '); WRITELN; WRITELN(' INTRODUZCA UN TEXTO ACABADO EN PUNTO'); WRITELN; LEER(W); WRITELN; WRITELN(' INTRODUZCA AHORA LA POSICION DE LA PALABRA'); WRITELN(' CUYOS CARACTERES DESEA CONTAR'); READLN(R); CAR:=CONTCAR(W,R); WRITELN; WRITELN(' LA PALABRA SITUADA EN DICHA POSICION TIENE'); WRITELN(' UN NUMERO DE CARACTERES IGUAL A :'); WRITELN(' ',CAR); WRITELN; WRITELN(' PRESIONA <ENTER>'); READLN; WRITELN(' ¨ DESEA SALIR ? -S o N-'); READLN(A); UNTIL (A='S') OR (A='s'); END. PROGRAM SUM_ESCU; USES CRT; TYPE TABLA=ARRAY[1..100] OF LONGINT; VAR T1,T2,T3:TABLA; N,M:LONGINT; R:CHAR; PROCEDURE LEER(N:LONGINT; VAR T:TABLA); VAR I,C:LONGINT; BEGIN I:=1;T[I]:=0;I:=I+1;READ(C); { INV: LEIDOS LOS I-1 PRIMEROS DIGITOS DE LA SECUENCIA Y TRAS SER ALMACENADOS EN LOS CORRESPONDIENTES LUGARES I DE LA TABLA ^ PD(C)=Cx ELE. CURSO } { COTA: (N+2) -I } { NOTA: LA POSICION 1¦ DE CADA TABLA CONTIENE UN CERO Y DICHA POSICION ES RESERVADA PARA UNA POSIBLE LLEVADA } WHILE I<>N+2 DO BEGIN T[I]:=C; READ(C); I:=I+1; END; END; PROCEDURE SUMAR(T1,T2:TABLA;N,M:LONGINT; VAR T3:TABLA); BEGIN N:=N+1;M:=M+1; { INV: T3 CONTIENE LAS SUMAS DE LOS N-1 ULTIMOS LUGARES DE LAS TABLAS EN SUS N-1 ULTIMAS POSICIONES ^ T2[M] Y T1[N] ELE. CURSO ^ 1<=N<=MAXIMA LONG. DE LAS TABLAS } { COTA: N } WHILE N<>0 DO BEGIN IF T2[M]+T1[N]< 10 THEN T3[N]:=T1[N]+T2[M] ELSE BEGIN T3[N]:=(T2[M]+T1[N])-10;T1[N-1]:=T1[N-1] +1; END; N:=N-1;M:=M-1; END; IF T3[1]<>1 THEN T3[1]:=0 ELSE BEGIN END; END; BEGIN REPEAT CLRSCR; WRITELN; WRITELN; WRITELN(' ******************************************************************'); WRITELN(' ** PROGRAMA QUE CALCULA LA SUMA DE DOS NUMEROS COMO EN EL COLE. **'); WRITELN(' ******************************************************************'); WRITELN; WRITELN(' DEME EL NUMERO DE DIGITOS DE SU PRIMER NUMERO '); READ(N); WRITELN(' INTRODUZCA DICHO NUMERO'); LEER(N,T1); WRITELN(' DEME EL NUMERO DE DIGITOS DE SU SEGUNDO NUMERO '); READ(M); WRITELN(' INTRODUZCA SU SEGUNDO NUMERO '); LEER(M,T2); IF N<=M THEN BEGIN SUMAR(T1,T2,M,N,T3); WRITELN(' LA SOLUCION ES :'); { INV: ESCRITOS LOS N-1 1§ ELE. DE LA TABLA SUMA (T3) ^ T3[N] ES EL ELE. CURSO ^ 1<=N<=M+1 } FOR N:=1 TO M+1 DO WRITE(' END ELSE BEGIN SUMAR(T1,T2,N,M,T3); WRITELN(' LA SOLUCION ES:'); ',T3[N]); { INV: ESCRITOS LOS M-1 1§ LUGARES DE LA TABLA SUMA (T3) ^ T3[M] ES EL ELE. CURSO ^ 1<=M<=N+1 } FOR M:=1 TO N+1 DO WRITE(' END; READLN; WRITELN; WRITELN; WRITELN( ' ¨ DESEA CONTINUAR ? READ(R); UNTIL (R='N') OR (R='n'); END. ',T3[M]); TECLEE -S o N- '); program giro_de_matrices; uses crt; type matriz = array [1..15,1..15] of longint; var W,P:matriz; X,K,R:longint; S:char; U,O:boolean; procedure leer(n:longint;var a:matriz); var d,i,j:longint; begin { INV: LEIDOS LOS N*(I-1)+(J-1) PRIMEROS ELEMENTOS DE LA SECUENCIA HAN SIDO GUARDADOS COMO LAS (I-1) PRIMERAS FILAS DE LA MATRIZ Y LOS (J-1) PRIMEROS ELEMENTOS DE LA FILA I-ESIMA} for i:=1 to n do begin { INV: EL ELEMENTO N*(I-1)+J (ELEMENTO EN CURSO) ES ALMACENADO EN LA POSICION J DE LA FILA I-ESIMA} for j:=1 to n do begin read(d); a[i,j]:=d; end; end; end; procedure giro(n,z:longint;var m:matriz); var i,j,x:longint; t:matriz; begin { INV: GIRADAS LA MATRIZ X-1 VECES ^ M: MATRIZ EN CURSO} for x:=1 to z do begin { INV: TRATADAS LAS I-1 PRIMERAS FILAS Y LOS J-1 1§ ELEMENTOS DE LA FILA I-ESIMA ^ EL ELEMENTO (I,J) ES EL ELEMENTO EN CURSO ^ T[N+1-J,I]=M[I,J].} for i:=1 to n do begin { INV: TRATADOS LOS (J-1) PRIMEROS ELEMENTOS DE LA FILA I-ESIMA ^ EL ELEMENTO (I,J) ES EL ELEMENTO EN CURSO ^ t[N+1-J,I]=m[I,J].} for j:=1 to n do begin t[n+1-j,i]:=m[i,j]; end; end; { INV: RETORNADAS LAS (I-1) PRIMERAS FILAS Y LOS J-1 ELE. DE LA FILA I A LA MATRIZ DE ORIGEN ^ (I,J)= ELE. CURSO} for i:=1 to n do begin { INV: RETORNADOS LOS J-1 PRIMEROS ELEMENTOS DE LA FILA I A LA MATRIZ INICIAL ^ ELEMENTO (I,J) = ELE. CURSO} for j:=1 to n do begin m[i,j]:=t[i,j]; end; end; end; end; procedure escribir(n:longint; m:matriz); var i,j,d:longint; begin {INV: ESCRITAS LAS I-1 1¦ FILAS Y LOS J-1 ELE. DE FILA I ^ (I,J) ELE. CURSO} for i:=1 to n do begin write(' '); {INV: ESCRITOS LOS J-1 1§ ELE. DE LA FILA I ^ (I,J) ELE.CURSO} for j:=1 to n do begin d:=m[i,j]; write(' ',d); write(' '); end; writeln; end; end; BEGIN REPEAT CLRSCR; WRITELN; WRITELN; WRITELN; WRITELN(' ÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞ'); WRITELN(' ÞÞÞ G I R O D E U N A M A T R I Z ÞÞÞ'); WRITELN(' ÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞ'); WRITELN; WRITELN; WRITELN(' TECLEA EL RANGO DE LA MATRIZ'); WRITELN; WRITE(' '); READ(X); WRITELN; WRITELN(' TECLEA LOS NUMEROS QUE LA COMPONEN '); WRITELN; WRITE(' '); LEER(X,W); WRITELN; WRITELN(' WRITELN; ESCRIBIR(X,W); WRITELN; WRITELN(' WRITELN(' WRITELN(' WRITELN(' WRITELN(' WRITELN(' WRITELN; WRITE(' READLN(R); GIRO(X,R,W); WRITELN(' WRITELN; ESCRIBIR(X,W); WRITELN; WRITELN(' WRITELN; READLN; WRITELN(' WRITE(' READ(S); UNTIL (S='s') OR (S='S'); END. ESTA ES LA MATRIZ QUE HAS INTRODUCIDO :'); TECLEA UNO DE ESTOS NUMEROS SEGUN '); CUANTO QUIERAS GIRAR LA MATRIZ '); EN SENTIDO ANTIHORARIO :'); <1> - 90§'); <2> - 180§'); <3> - 270§'); '); ESTA ES SU MATRIZ UNA VEZ GIRADA :'); PRESIONA <ENTER>'); ¨ DESEA SALIR ? '); -S o N- '); program matrices_triangulares; uses crt; type matriz = array [1..15,1..15] of longint; var W:matriz; X,K:longint; S:char; U,O:boolean; procedure leer(n:longint;var a:matriz); var d,i,j:longint; begin { INV: LEIDAS LAS (I-1)*N + J-1 1§ ELE. DE LA SECUENCIA HAN SIDO ALMACENADOS EN LAS I-1 1¦ FILAS Y LOS J-1 1§ LUGARES DE LA FILA I ^ PD(S)=Dx ELE. CURSO } for i:=1 to n do begin { INV: EL ELE. (I-1)*N+J (ELE. CURSO) SE ALMACENA EN EL LUGAR (I,J) DE LA MATRIZ } for j:=1 to n do begin read(d); a[i,j]:=d; end; end; end; procedure escribir(n:longint; m:matriz); var i,j,d:longint; begin { INV: ESCRITAS LAS I-1 1¦ FILAS Y LOS J-1 1§ ELE. DE LA FILA I ^ T[I,J] ES EL ELE. CURSO } for i:=1 to n do begin write(' '); { INV: ESCRITOS LOS J-1 1§ ELE. DE LA FILA I ^ T[I,J] ES EL ELE. CURSO } for j:=1 to n do begin d:=m[i,j]; write(' ',d); write(' '); end; writeln; end; end; function triansup(n:longint; m:matriz):boolean; var i,j:longint;f:boolean; begin i:=1; j:=i+1; { INV: M[I,J]=0 PARA TODO 1<=I<J<=N ^ M[I,J] E.CURSO } { COTA: N-I} while i<>n+1 do begin { INV: M[I,J]=0 PARA TODO I<J<=N ^ M[I,J] E.CURSO } { COTA: N-J} while (j<>n+1) do begin if m[i,j]=0 then f:=true; if m[i,j]<>0 then begin f:=false;j:=n;i:=n;end; j:=j+1; end; i:=i+1; j:=i+1; end; triansup:=f; end; function trianinf(n:longint;m:matriz):boolean; var i,j:longint;g:boolean ; begin j:=1; i:=j+1; { INV: M[I,J]=0 PARA TODO 1<=J<I<=N ^ M[I,J] E.CURSO } { COTA: N-J } while j<>n+1 do begin { INV: M[I,J]=0 PARA TODO J<I<=N ^ M[I,J] E.CURSO } { COTA: N-I } while (i<>n+1) do begin if m[i,j]=0 then g:=true; if m[i,j]<>0 then begin g:=false;i:=n;j:=n;end; i:=i+1; end; j:=j+1; i:=j+1; end; trianinf:=g; end; BEGIN REPEAT CLRSCR; WRITELN; WRITELN; WRITELN; WRITELN(' ***************************************************'); WRITELN(' ** M A T R I C E S T R I A N G U L A R E S **'); WRITELN(' ***************************************************'); WRITELN; WRITELN; WRITELN(' TECLEA EL RANGO DE LA MATRIZ'); WRITELN; WRITE(' '); READ(X); WRITELN; WRITELN(' TECLEA LOS NUMEROS QUE LA COMPONEN '); WRITELN; WRITE(' '); LEER(X,W); WRITELN; WRITELN(' ESTA ES SU MATRIZ :'); WRITELN; ESCRIBIR(X,W); WRITELN; U:=TRIANSUP(X,W); O:=TRIANINF(X,W); IF (U=FALSE) AND (O=FALSE) THEN BEGIN WRITELN(' LA MATRIZ NO ES TRIANGULAR'); END; IF (U=TRUE) AND (O=FALSE) THEN BEGIN WRITELN(' LA MATRIZ ES TRIANGULAR SUPERIOR'); END; IF (U=FALSE) AND (O=TRUE) THEN BEGIN WRITELN(' LA MATRIZ ES TRIANGULAR INFERIOR'); END; IF (U=TRUE) AND (O=TRUE) THEN BEGIN WRITELN(' LA MATRIZ ES TRIANGULAR -SUPERIOR E INFERIOR'); END; WRITELN; READLN; WRITELN(' ¨ DESEA SALIR ? -S o N- '); WRITE(' '); READ(S); UNTIL (S='s') OR (S='S'); END. PROGRAM ORDENACION_DE_UNA_MATRIZ; USES CRT; TYPE MATRIZ=ARRAY [1..20,1..20] OF LONGINT; LINEA=ARRAY [1..400] OF LONGINT; VAR W,P:MATRIZ; X:LONGINT; A:CHAR; E:LINEA; PROCEDURE PASLIN(N:LONGINT; T:MATRIZ ;VAR L:LINEA); VAR I,J,C:LONGINT; BEGIN { INV: LEIDAS LAS I-1 PRIMERAS FILAS Y LOS J-1 1§ ELE. DE LA FILA I Y GUARDADOS COMO LOS N*(I-1)+(J-1) PRIMEROS ELEMENTOS DE UNA TABLA UNIDIMENSIONAL ^ T[I,J] ES EL ELEMENTO EN CURSO } FOR I:=1 TO N DO BEGIN { INV: EL ELEMENTO T[I,J] (E.CURSO) SE GUARDA COMO EL ELEMENTO N*(I-1)+J DE LA TABLA LINEAL } FOR J:=1 TO N DO BEGIN C:=N*(I-1)+J; L[C]:= T[I,J]; END; END; END; PROCEDURE PASMAT(N:LONGINT; L:LINEA; VAR T:MATRIZ); VAR I,J,C,S,K,Z:LONGINT; BEGIN Z:=N*N; I:=1; { INV: LEIDOS LOS (I-1)*N+(J-1) PRIMEROS ELEMENDOS DE UNA TABLA LINEAL Y GUARDADOS EN LAS (I-1) 1¦ FILAS Y (J-1) 1§ LUGARES DE UNA MATRIZ ^ L[N*(I-1)+J] ES EL ELEMENTO EN CURSO } FOR S:=0 TO Z DO BEGIN J:=1; { INV: EL ELEMENTO L[N*(I-1)+J] (E.CURSO) SE GUARDA EN T[I,J] } FOR K:=S+1 TO Z-S DO BEGIN C:=(I-1)*N+J; T[I,J]:=L[C]; J:=J+1; END; I:=I+1; END; END; PROCEDURE ORDENAR(N:LONGINT; VAR L:LINEA); VAR I,J,R,S,Z:LONGINT; BEGIN I:=1; Z:=N*N; { INV: PARA TODO k : 1=<k<I-1 : ( t[k]=<t[k+1] ^ PARA TODO L : I=<L=<Z : t[L]>=t[k]) ^ 1=<I=<N COTA: N-I } WHILE I<>Z DO BEGIN R:=I; J:=I+1; { INV: PARA TODO K: I=<K<J: T[R]=<T[K] ^ I+1=<J=<N+1 } { COTA: N-J } WHILE J<>(Z+1) DO BEGIN IF L[R]>L[J] THEN R:=J; J:=J+1; END; S:=L[R]; L[R]:=L[I]; L[I]:=S; I:=I+1; END; END; PROCEDURE LEER(N:LONGINT;VAR T:MATRIZ); VAR I,J,C:LONGINT; BEGIN { INV: LEIDOS LOS N*(I-1)+(J-1) 1§ ELEMENTOS DE LA SECUENCIA Y GUARDADOS EN LAS I-1 1¦ FILAS Y EN LOS J-1 1§ PUESTOS DE LA FILA I ^ pd(S)=cà E.CURSO } FOR I:=1 TO N DO BEGIN { INV: EL ELEMENTO (I-1)*N+J (E.CURSO) SE ALMACENA EN EL LUGAR (I,J) DE LA MATRIZ } FOR J:=1 TO N DO BEGIN READ(C); T[I,J]:=C; END; END; END; PROCEDURE ESCRIBIR(N:LONGINT;T:MATRIZ); VAR I,J,D:LONGINT; BEGIN { INV: ESCRITAS LAS I-1 1¦ FILAS Y LOS J-1 1§ EL. DE LA FILA I ^ T[I,J] ES EL ELEMENTO EN CURSO } FOR I:=1 TO N DO BEGIN WRITE(' '); { INV : ESCRITOS LOS J-1 1§ ELEMENTOS DE LA FILA I ^ T[I,J] ES EL ELEMENTO EN CURSO } FOR J:=1 TO N DO BEGIN D:=T[I,J]; WRITE(' ',D); WRITE(' '); END; WRITELN; END; END; BEGIN REPEAT CLRSCR; WRITELN; WRITELN; WRITELN; WRITELN(' WRITELN(' '); WRITELN(' WRITELN; WRITELN; WRITELN(' WRITELN; WRITE(' READLN(X); WRITELN; WRITELN(' WRITELN; WRITE(' LEER(X,W); WRITELN; WRITELN(' WRITELN; ESCRIBIR(X,W); '); PROGRAMA PARA LA ORDENACION DE UNA MATRIZ '); TECLEE EL RANGO DE SU MATRIZ'); '); ESCRIBA LOS NUMEROS QUE LA COMPONEN'); '); ESTA ES LA MATRIZ QUE HA INTRODUCIDO:'); WRITELN; PASLIN(X,W,E); ORDENAR(X,E); PASMAT(X,E,P); WRITELN(' WRITELN(' WRITELN; ESCRIBIR(X,P); WRITELN; READLN; WRITELN(' WRITE(' READLN(A); UNTIL (A='S') OR (A='s'); END. ESTA ES SU MATRIZ PUESTA EN ORDEN'); Y ESCRITA DE MENOR A MAYOR:'); ¨ DESEA SALIR ? '); -S o N- '); PROGRAM SUMA_DE_LOS_ANTERIORES; USES CRT; TYPE MATRIZ=ARRAY[1..100] OF LONGINT; VAR W:MATRIZ; X:LONGINT; A:CHAR; F:BOOLEAN; PROCEDURE LEER(N:LONGINT;VAR T:MATRIZ); VAR S,C:LONGINT; BEGIN { INV: LEIDOS LOS S-1 1§ ELE.DE LA SECUENCIA Y GUARDADOS EN SUS CORRESPONDIENTES LUGARES EN LA TABLA ^ PD(S)=CX ELE. CURSO } FOR S:=1 TO N DO BEGIN READ(C); T[S]:=C; END; END; FUNCTION SUMAN(T:MATRIZ;N:LONGINT):BOOLEAN; VAR S,C,L:LONGINT; G:BOOLEAN; BEGIN S:=1; C:=T[1]; WRITE(' ',C); S:=S+1; { INV: TRATADOS LOS S-1 1§ ELE. DE LA TABLA ^ G TOMA EL VALOR DE C=L ^ C= SUMA DE LOS S-1 1§ ELE. ^ L= ELE. CURSO COTA: N+1 -S } WHILE S<>N+1 DO BEGIN L:=T[S]; IF C=L THEN BEGIN G:=TRUE;S:=N;WRITE(' ',L);END; IF C<>L THEN BEGIN G:=FALSE;WRITE(' ',L);END; C:=C+L; S:=S+1; END; SUMAN:=G; END; BEGIN REPEAT CLRSCR; WRITELN; WRITELN; WRITELN; WRITELN; WRITELN(' ***************************************************'); WRITELN(' ** S U M A D E L O S A N T E R I O R E S **'); WRITELN(' ***************************************************'); WRITELN; WRITELN; WRITELN; WRITELN(' INTRODUZCA LA LONGITUD DESEADA PARA '); WRITELN(' LA TABLA DE ENTEROS '); WRITELN; WRITE(' '); READLN(X); WRITELN; WRITELN(' INTRODUZCA A CONTINUACION LOS ENTEROS '); WRITELN(' PARA LA TABLA '); WRITELN; WRITE(' '); LEER(X,W); WRITELN; WRITELN; F:=SUMAN(W,X); WRITELN; WRITELN; IF F=TRUE THEN BEGIN WRITELN(' AL MENOS UNO DE LOS NUMEROS DADOS ES IGUAL A LA '); WRITELN(' SUMA DE LOS DADOS CON ANTERIORIDAD.'); WRITELN(' ES EL ULTIMO DE LOS TERMINOS QUE SE MUESTRAN.'); END; IF F=FALSE THEN BEGIN WRITELN(' LA SECUENCIA SE HA ESCRITO EN PANTALLA.'); WRITELN(' NINGUNO DE LOS NUMEROS DADOS ES SUMA DE LOS ANTERIORES.'); END; WRITELN; READLN; WRITELN(' ¨ DESEA SALIR ? -S o N-'); WRITE(' '); READLN(A); UNTIL (A='S') OR (A='s'); END. PROGRAM SUMA_DEL_RESTO; USES CRT; TYPE MATRIZ=ARRAY[1..100] OF LONGINT; VAR W:MATRIZ; X,PEPE:LONGINT; A:CHAR; F,PEPA:BOOLEAN; PROCEDURE LEER(N:LONGINT;VAR T:MATRIZ); VAR I,C:LONGINT; BEGIN { INV: LEIDOS LOS I-1 PRIMEROS ELEMENTOS Y GUARDADOS EN LOS I-1 PRIMEROS LUGARES DE LA TABLA ^ pd(S)=cà (E.CURSO) } FOR I:=1 TO N DO BEGIN READ(C); T[I]:=C; END; END; FUNCTION SUMATOTAL(T:MATRIZ;N:LONGINT):LONGINT; VAR I,ST:LONGINT; BEGIN ST:=0; { INV: ST ES LA SUMA DE LOS I-1 PRIMEROS ELEMENTOS DE LA TABLA ^ T[I] ES EL E.CURSO } FOR I:=1 TO N DO BEGIN ST:=ST+T[I]; END; SUMATOTAL:=ST; END; FUNCTION SUMREST(T:MATRIZ;N:LONGINT):BOOLEAN; VAR I,SO:LONGINT; J:BOOLEAN; BEGIN J:=FALSE; SO:=SUMATOTAL(T,N); { INV: J INDICA SI ALGUN ELEMENTO DE ENTRE LOS I-1 PRIMEROS ES IGUAL A LA SUMA DE LOS DEMAS ^ T[I]=E.CURSO } FOR I:=1 TO N DO BEGIN IF T[I]=(SO-T[I]) THEN BEGIN J:=TRUE;WRITELN(' ',T[I]); END ELSE BEGIN END; END; SUMREST:=J; END; FUNCTION SUMAN(T:MATRIZ;N:LONGINT):BOOLEAN; VAR S,C,L:LONGINT; G:BOOLEAN; BEGIN S:=1; C:=T[1]; WRITE(' ',C); S:=S+1; { INV: G INDICA SI ALGUN ELEMENTO ES IGUAL A LA SUMA DE LOS QUE LE PRECEDEN ^T[S]=E.CURSO COTA: N+1-S } WHILE S<>N+1 DO BEGIN L:=T[S]; IF C=L THEN BEGIN G:=TRUE;S:=N;WRITE(' ',L);END; IF C<>L THEN BEGIN G:=FALSE;WRITE(' ',L);END; C:=C+L; S:=S+1; END; SUMAN:=G; END; BEGIN REPEAT CLRSCR; WRITELN; WRITELN; WRITELN; WRITELN; WRITELN(' ÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞ'); WRITELN(' ÞÞÞ S U M A D E L R E S T O ÞÞÞ'); WRITELN(' ÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞ'); WRITELN; WRITELN; WRITELN(' INTRODUZCA LA LONGITUD DESEADA PARA '); WRITELN(' LA TABLA DE ENTEROS '); WRITE(' '); READLN(X); WRITELN; WRITELN(' INTRODUZCA A CONTINUACION LOS ENTEROS '); WRITELN(' PARA LA TABLA '); WRITE(' '); LEER(X,W); WRITELN; WRITELN; PEPA:=SUMREST(W,X); IF PEPA=TRUE THEN BEGIN WRITELN; WRITELN(' COMO MINIMO UNO DE LOS NUMEROS DADOS ES IGUAL'); WRITELN(' A LA SUMA DE TODOS LOS DEMAS'); WRITELN(' EL NUMERO EN CUESTION ESTA ESCRITO SOBRE ESTAS LINEAS'); END ELSE BEGIN WRITELN; WRITELN(' NINGUNO DE LOS NUMEROS DADOS COINCIDE CON'); WRITELN(' LA SUMA DE LOS DEMAS DADOS'); END; WRITELN; WRITELN; F:=SUMAN(W,X); WRITELN; WRITELN; IF F=TRUE THEN BEGIN WRITELN(' AL MENOS UNO DE LOS NUMEROS DADOS ES IGUAL A LA '); WRITELN(' SUMA DE LOS DADOS CON ANTERIORIDAD.'); WRITELN(' ES EL ULTIMO DE LOS TERMINOS QUE SE MUESTRAN.'); END; IF F=FALSE THEN BEGIN WRITELN(' LA SECUENCIA SE HA ESCRITO EN PANTALLA.'); WRITELN(' NINGUNO DE LOS NUMEROS DADOS ES SUMA DE LOS ANTERIORES.'); END; WRITELN; READLN; WRITELN(' ¨ DESEA SALIR ? -S o N-'); WRITE(' '); READLN(A); UNTIL (A='S') OR (A='s'); END.