PROBLEMA PROGRAMA PASCAL
Publicado por ISMAEL (5 intervenciones) el 29/12/2006 16:22:55
Tengo que hacer un programa para que lea una frase y nos indique el número de palabras que se repiten y muestre los resultados con las palabras en columna ordandos alfabeticamente y el nº de repeticiones al lado.
He hecho el programa de momento para que muestre los resultados en columna y ordenados pero lo ejecuto y no me sale error, pero tampoco me deja escribir la frase, lo abro y me 'salta' directamente. Ayudenme. Gracias.
PROGRAM Actividad_4 (INPUT,OUTPUT);
USES crt;
CONST
LimiteLista = 255;
TYPE
TipoElementoLista= string;
TipoLista= ARRAY[1..LimiteLista] of TipoElementoLista;
VAR
NumPalabras: integer;
Palabras: TipoLista;
PROCEDURE LeerLista (var Palabras: TipoLista; var cont: integer);
BEGIN
WRITELN;
WRITELN;
WRITELN( ' Programa para contabilizar el n£mero de palabras repetidas y presentada los resultados en columna y ordenado alfabeticamente. ');
WRITELN( ' Nota: Se permite un m ximo de ', LimiteLista, ' palabras distintas. ');
WRITELN( ' ========================================================================================================== ');
WRITELN;
WRITELN;
WRITELN( ' Introduzca, a continuaci¢n, el texto a analizar: ');
WRITELN;
WRITELN;
END;
PROCEDURE OrdenarLista (var Palabras: TipoLista; var n:integer);
VAR Menor: TipoElementoLista;
PosMenor, i, j: integer;
BEGIN
FOR i:= 1 TO n-1 DO
BEGIN
PosMenor :=1;
Menor := Palabras[PosMenor];
FOR j:= i+1 TO n DO
IF Palabras[j]< Menor THEN
BEGIN
PosMenor := j;
Menor := Palabras[j]
END;
Palabras[PosMenor] := Palabras[i];
Palabras[i] := Menor
END
END;
PROCEDURE EscribirLista (var Palabras: TipoLista; NumPalabras: integer);
VAR i: integer;
BEGIN
WRITELN;
WRITELN;
WRITELN;
WRITELN( 'Lista de ', NumPalabras,' palabras del texto odenada alfab‚tica y numericamente ');
WRITELN;
WRITELN;
FOR i:= 1 TO NumPalabras DO
WRITELN;
WRITELN;
WRITELN(Palabras[i])
END;
{PROGRAMA PRINCIPAL}
BEGIN
ClrScr;
LeerLista( Palabras,NumPalabras);
OrdenarLista( Palabras,NumPalabras);
EscribirLista( Palabras,NumPalabras);
END.
He hecho el programa de momento para que muestre los resultados en columna y ordenados pero lo ejecuto y no me sale error, pero tampoco me deja escribir la frase, lo abro y me 'salta' directamente. Ayudenme. Gracias.
PROGRAM Actividad_4 (INPUT,OUTPUT);
USES crt;
CONST
LimiteLista = 255;
TYPE
TipoElementoLista= string;
TipoLista= ARRAY[1..LimiteLista] of TipoElementoLista;
VAR
NumPalabras: integer;
Palabras: TipoLista;
PROCEDURE LeerLista (var Palabras: TipoLista; var cont: integer);
BEGIN
WRITELN;
WRITELN;
WRITELN( ' Programa para contabilizar el n£mero de palabras repetidas y presentada los resultados en columna y ordenado alfabeticamente. ');
WRITELN( ' Nota: Se permite un m ximo de ', LimiteLista, ' palabras distintas. ');
WRITELN( ' ========================================================================================================== ');
WRITELN;
WRITELN;
WRITELN( ' Introduzca, a continuaci¢n, el texto a analizar: ');
WRITELN;
WRITELN;
END;
PROCEDURE OrdenarLista (var Palabras: TipoLista; var n:integer);
VAR Menor: TipoElementoLista;
PosMenor, i, j: integer;
BEGIN
FOR i:= 1 TO n-1 DO
BEGIN
PosMenor :=1;
Menor := Palabras[PosMenor];
FOR j:= i+1 TO n DO
IF Palabras[j]< Menor THEN
BEGIN
PosMenor := j;
Menor := Palabras[j]
END;
Palabras[PosMenor] := Palabras[i];
Palabras[i] := Menor
END
END;
PROCEDURE EscribirLista (var Palabras: TipoLista; NumPalabras: integer);
VAR i: integer;
BEGIN
WRITELN;
WRITELN;
WRITELN;
WRITELN( 'Lista de ', NumPalabras,' palabras del texto odenada alfab‚tica y numericamente ');
WRITELN;
WRITELN;
FOR i:= 1 TO NumPalabras DO
WRITELN;
WRITELN;
WRITELN(Palabras[i])
END;
{PROGRAMA PRINCIPAL}
BEGIN
ClrScr;
LeerLista( Palabras,NumPalabras);
OrdenarLista( Palabras,NumPalabras);
EscribirLista( Palabras,NumPalabras);
END.
Valora esta pregunta


0