Pascal/Turbo Pascal - EJERCICIO DE EXAMEN

 
Vista:
sin imagen de perfil

EJERCICIO DE EXAMEN

Publicado por Hector ramua (4 intervenciones) el 22/08/2016 20:36:55
Hola quisiera que me den una mano con este enunciado de problema ,si me pueden presentar algunas soluciones les agradeceria

ENUNCIADO:
"Desarrollar un programa en el lenguaje a examinar que cumpla con las siguientes especificaciones:
a) El programa deberá leer un archivo secuencial llamado TEXTO.TXT, el que puede ser creado con cualquier editor (Turbo Pascal, Edit, NotePad, etc.). Entonces, el archivo se crea en forma externa a los programas solicitados.
b) El programa debe detectar y separar las palabras y números existentes en el texto. Las palabras pueden estar delimitadas por espacios en blanco y otros símbolos (coma, punto y coma, punto, dos puntos, paréntesis, comienzo de línea y fin de línea). Los números pueden estar separados de la misma manera que las palabras, y solo consideramos números enteros (no hay decimales).

Ejemplo: Suponer que el archivo TEXTO.TXT viene con el siguiente contenido (tiene cinco líneas):

De acuerdo a lo publicado en el diario El Mercurio de Santiago el día 08 de septiembre de 2002, en su cuerpo Principal, primera página: Los Cibercafé en los barrios se han convertido en la alternativa ideal para quienes no cuentan con un computador en su hogar, o tienen uno, pero sin conexión a Internet, o cuentan con una conexión muy lenta.

En el caso mostrado, se deberían detectar las palabras: DE, ACUERDO, A, LO, PUBLICADO, EN, EL DIARIO, MERCURIO, SANTIAGO, DIA, SEPTIEMBRE, SU, CUERPO, PRINCIPAL, PRIMERA, PAGINA, LOS, CIBERCAFE, BARRIOS, SE, HAN, CONVERTIDO, LA, ALTERNATIVA, IDEAL, PARA, QUIENES, NO, CUENTAN, CON, UN, COMPUTADOR, SU, HOGAR, O, TIENEN, UNO, PERO, SIN, CONEXIÓN, INTERNET, UNA, MUY, LENTA. (todas las palabras se convierten a mayúsculas, sin acentos).

También se deberían detectar los números 08 y 2002.

El programa deberá generar 2 archivos tipo texto: PALABRAS.TXT, que contendrá frecuencia y palabras (es decir, cada registro grabado contendrá una palabra y las veces que se encontró en el texto) y NUMEROS.TXT, que contendrá frecuencia y números (es decir, cada registro grabado contendrá un número y las veces que aparece en el texto).

Algunas restricciones:
- Considerar que las palabras y los números tiene a lo más 20 caracteres.
- El número no puede contener otro símbolo que no sea un digito.

El programa solicitado primero debe revisar el texto, para validar que no contenga ningún símbolo no permitido. Los símbolos permitidos son letras (mayúsculas y minúsculas, acentuadas o no), dígitos (0 a 9) y los siguientes símbolos: punto, coma, punto y coma, dos puntos, paréntesis (el que abre y el que cierra) y espacio. Si el programa encuentra cualquier carácter distinto a éstos, debe emitir un mensaje y terminar el proceso.


CODIFICAR, COMPILAR Y EJECUTAR. Comprobar con el texto sugerido. "

Desde ya gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

EJERCICIO DE EXAMEN

Publicado por ramon (2158 intervenciones) el 24/08/2016 12:44:23
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
{Espero esto te allude}
 
 program examen;
  uses
     crt;
  const
     texto : array[1..5] of string = (
'De acuerdo a lo publicado en el diario El Mercurio de Santiago el dia 08 de',
'septiembre de 2002, en su cuerpo Principal, primera pagina: Los Cibercafe en',
'los barrios se han convertido en la alternativa ideal para quienes no cuentan',
'con un computador en su hogar, o tienen uno, pero sin conexion a Internet, o',
'cuentan con una conexion muy lenta.');
 
  archivo : string = 'TEXTO.TXT';
  archpal : string = 'PALABRAS.TXT';
  archnum : string = 'NUMEROS.TXT';
 
 
  var
    f, fpal, fnum : text;
    textos, nume, palab : string;
    cont : integer;
 
   procedure creaarchivotexto;
   begin
      assign(f,archivo);
    {$I-} reset(f); {$I+}
      if ioresult = 0 then
      begin
         close(f);
         erase(f);
      end;
     rewrite(f);
     write(f,texto[1]);
     close(f);
     Append(f);
     for cont := 2 to 5 do
     write(f,texto[cont]);
     close(f);
   end;
   function archivovalido(nom : string) : boolean;
   var
      f1 : text;
      cd : char;
   begin
      assign(f1,nom);
    {$I-} reset(f1); {$I+}
      if ioresult = 0 then
      begin
         archivovalido := true;
         while not eof(f1) do
         begin
            read(f1,cd);
            if cd in['a'..'z','A'..'Z',',','.',';',':',' ','(',')',
                     '0'..'9',#160,#130,#161,
                     #163,#164,#165,' '] then
            begin
            end
         else
            begin
               archivovalido := false;
            end;
         end;
         close(f1);
      end
   else
      begin
         writeln('  Error De Archivo O No Existe Pulse Una Tecla');
         readkey;
      end;
   end;
 
   procedure tomapalabrasynumeros;
   var
      n, i : integer;
   begin
      assign(f,archivo);
    {$I-} reset(f); {$I+}
      if ioresult <> 0 then
      begin
        writeln('   Error De Archivo O No Existe Pulse Una Tecla');
        readkey;
      end
    else
       begin
         assign(fpal,archpal);
         rewrite(fpal);
         assign(fnum,archnum);
         rewrite(fnum);
      while not eof(f) do
      begin
          readln(f,textos);
          writeln(textos);
          palab := ' ';
          nume := ' ';
          i := 1;
          n := 1;
          for cont := 1 to length(textos) do
          begin
             if textos[cont] in[' ',',','.',':',';',')'] then
             begin
                if i > 1 then
                begin
                writeln(fpal,palab + ',');
                write(palab,',');
                i := 1;
                palab := ' ';
                end;
                if n > 1 then
                begin
                  writeln;
                  writeln(fnum,nume);
                  write(nume);
                  n := 1;
                  nume := ' ';
                  writeln;
                end;
             end
           else
              begin
                if textos[cont] in['0'..'9'] then
                begin
                nume[n] := textos[cont];
                nume[0] := chr(n);
                n := n + 1;
                end
             else
                begin
                palab[i] := upcase(textos[cont]);
                palab[0] := chr(i);
                i := i + 1;
              end;
            end;
          end;
           writeln;
      end;
         close(fpal);
         close(fnum);
         close(f);
       end;
   end;
 
   begin
      clrscr;
      writeln;
      creaarchivotexto;
      if archivovalido(archivo) then
      begin
      tomapalabrasynumeros;
      end
   else
      begin
        writeln('   Archivo No Valido');
        writeln;
        writeln('   Pulse Una Tecla');
        readkey;
      end;
      writeln;
      writeln('   Pulse Una Tecla');
      readkey;
   end.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

EJERCICIO DE EXAMEN

Publicado por Matias (4 intervenciones) el 25/08/2016 22:20:49
Hola, en la definición de constantes, los archivos que están como arch: string 'texto,txt' , irian las direcciones de los archivos de textos creados por nosotros en nuestro window???

Igual leyendo el enunciado, el programa no cumple con lo que pide el examen, no realiza lo que pide el enunciado
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar