Pascal/Turbo Pascal - Programa Buscador similar a GOOGLE.

 
Vista:

Programa Buscador similar a GOOGLE.

Publicado por Luis (4 intervenciones) el 24/05/2012 21:02:55
Estoy aprendiendo a programar, llevo unos meses, pero necesitaría ayuda para realizar un programa que me ayudase a avanzar en mi aprendizaje y a aprobar la asignatura. Es URGENTE, de verdad y de antemano MUCHISIMAS GRACIAS. A continuación señalo los objetivos y requisitos del programa y reitero mis más profundas y sinceras gracias.

1. Objetivo del proyecto

El objetivo es realizar una versión simplificada de un buscador de internet (search engine) similar a Google o Yahoo. El usuario introduciría la palabra a buscar en la base de datos de ficheros HTML. El programa generará un fichero HTML con los enlaces a los ficheros de la base de datos por orden de preferencia.

Se dispone de un conjunto de ficheros HTML con diversos textos (biografías obtenidas de la Wikipedia). El objetivo es realizar un programa que permita buscar una palabra introducida por el usuario en todos los ficheros de HTML adjuntos. Después, el programa debe generar una página HTML con los resultados, ordenados según el criterio de relevancia: el número de apariciones de la palabra buscada en cada fichero.
Además del conjunto de ficheros HTML se adjunta:

· Un fichero de texto ( .txt) con el listado de todos los nombres de los ficheros HTML. Cada nombre está en una línea diferente y tiene menos de 255 caracteres.
· Un fichero FreePascal (.pas) con los módulos necesarios para generar el fichero HTML con los resultados.
· Un fichero ejecutable (.exe) con una demo con el resultado esperado.

Los requisitos adicionales no serán tenidos en cuenta si no se cumplen los requisitos obligatorios.

1.1. Requisitos obligatorios:

1. Los identificadores y el sangrado deberán facilitar la comprensión del programa. Además, al principio se incluirá un comentario con el nombre y la sección de los autores.
2. El programa deberá tener, como mínimo, módulos para: leer ficheros, calcular la relevancia de una página, ordenar los resultados y generar el fichero final ...
3. Se deberá realizar el diseño de datos (declaración de tipo de datos) adecuado al propósito del programa.
4. Al iniciarse la aplicación, se deberá solicitar al usuario la palabra a buscar.
5. Al finalizar la aplicación, se generará el fichero HTML con los resultados ordenados de la búsqueda.

1.2. Requisitos adicionales:

1. Se modificarán los ficheros que generan el HTML resultante, para modificar la apariencia de la página de resultados. Por ejemplo, la página http://www.w3schools.com/ ofrece diversos tutoriales y ejemplos sobre html.
2. La búsqueda deberá hacerse sólo del texto de la página web, ignorando el texto dentro de etiquetas.
3. En el caso de que dos o más ficheros tengan el mismo número de apariciones, se deberán ordenar alfabéticamente entre sí.
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

Programa Buscador similar a GOOGLE.

Publicado por ramon (2158 intervenciones) el 30/05/2012 22:08:49
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
{Este programa lee un archivo html y presenta su contenido es algo de esto para empezar
los archivos deven de estar en un directorio c:\html\ y ser extension html}
 
program leerhtml;
uses
crt, dos;
type
linea = array[1..1024] of char;
const
camino = 'C:\html\';
 
var
f : text;
dato : linea;
texto : string;
cargados, i, u, y, x, cont : integer;
archivos : array[1..50] of string;
arh, palabra : string;
car : char;
ficheros : searchrec;
 
 
procedure marcador_archivos(cam : string);
var
ii : integer;
begin
ii := 1;
findfirst(cam + '*.html', archive, ficheros);
while doserror = 0 do
begin
archivos[ii] := ficheros.name;
ii := ii + 1;
if ii > 50 then
ii := 50;
findnext(ficheros);
end;
cargados := ii - 1;
end;
 
procedure leearchivo(archi : string);
var
ps : integer;
begin
clrscr;
assign(f,archi);
{$I-} reset(f); {$I+}
if ioresult <> 0 then
halt(1);
i := 1;
ps := 1;
while not Eof(f) do
begin
while not eoln(f) do
begin
read(f,car);
dato[i] := car;
i := i + 1;
if i > 1024 then
i := 1024;
end;
for x := 1 to i - 1 do
begin
if (dato[x] = '<') or (dato[x] = '/') or (dato[x] = '>') or
(dato[x] = chr(09)) then
begin
end
else
write(dato[x]);
end;
writeln;
i := 1;
ps := ps + 1;
if ps > 22 then
begin
writeln;
writeln('Pulse una tecla');
readkey;
ps := 1;
clrscr;
end;
readln(f);
end;
close(f);
end;
 
 
 
begin
clrscr;
marcador_archivos(camino);
for y := 1 to cargados do
writeln(' ',y,' ',archivos[y]);
readln(u);
leearchivo(camino + archivos[u]);
writeln;
writeln('Pulse [Enter]');
readln;
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