no me anda este programa
Publicado por vanesasoledad (4 intervenciones) el 30/05/2010 08:10:27
Hola amigos, ando buscando alguna persona que me pudiera dar una mano en ejercicio de programacion que tengo.
El prolema es el siguiente..
************--------------*********
Hacer un programa, el cual abra un archivo de texto y me extraiga de el todas las palabras que congan la letra a con acento (á) (letra a minuscula).
Las palabras a extraerse podran contener los carateres que te damos mas bajo,
Debera ir imprimiendo en pantalla cada palabra y al final de cada renglon mostrara todas las palabras unidas por asterisco ( ** ).
Tener en cuenta que las cadenas (renglones) del archivo de texto podran tener 200, 500 o 1000 carateres inclusive.
Emplear conjuntos
************--------------*********
Bueno, el programa ya lo tengo casi hecho, pero me di cuenta tras varios dias de romperme la cabeza, dando vueltas y vueltas en el simple codigo que tengo, que no anda y no me extrae las palabras que ay en el archivo.
Siempre me salta un renglon, o no me extrae la ultima palabra buscada, o cosas asi.. resumiendo NO ANDA...
El archivo a procesar tiene estas palabras:
//////////////////////////////////////////////////////////////////
s.txt
L-Lá1 ************** ----- 2á54+45 nán v
3á_3 -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 4á4 final@2
5á5---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------6á6 finalá3
gg 7/á7 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------8á8 finalá4
//////////////////////////////////////////////////////////////////
este es el codigo de mi programita
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
Program principal;
type
tipoConjunto= set of char;
var
C : char;
archivo : text;
I : integer;
v1, v2, v3 : tipoConjunto;
cola, cadena1 : string;
begin
assign(archivo,'s.txt');
reset(archivo);
read(archivo,c);
cadena1 := '';
While not(eof(archivo)) do begin
v1:=['a','b','c','d','e','f','g','h','i', 'j','k','l','m','n','o','p','r','s','t','u','v','w','x','y','z'];
v2:=['A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'];
v3:=['.','_','+','/','0','1','2','3','4','5','6','7','8','9'];
While not(eoln(archivo)) do begin
While (c in v1) or (c in v2) or(c in v3) do
Begin
Cola := cola + c;
Read(Archivo, C);
End;
if pos('á',cola) <> 0 then {si c cumple, entonces en cola ay un a con acento }
Begin
writeln(' palabra ',cola);
cadena1 := cadena1 + ' ** ' + cola;
{ guardar valor de variable cola en archivo}
{ bloke k almacdenara contenido }
{ de la variable COLA, en el archivo }
{ ACA IRA EL BLOQUE QUE ALMACENARA EN ARCHIVO LO QUE EXTRAIGA }
end;
{ Si POS es cero, entonces no ay un a con acento en COLA }
{ y ce repite el ciclo }
{ leer caracter y comparar k este en conjunto }
cola := '';
read(archivo,C);
end;
readln(archivo,c);
end;
writeln(' cadena concatenada ',cadena1); { ACA ME IMPRIME TODO LO QUE EXTRAE }
read(i);
end.
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
y lo que me extra es
L-Lá1 ** 2á54+45 ** nán ** 5á5 ** 6á6 ** finalá3 -- 7/á7 ** 8á8 ** finalá4
salteando el segundo renglon 3á_3 4á4 final@2 que no me procesa, no entiendo por que, pero creo que debe ser por que, no entiendo.
EL TEMA DE IMPRIMIR TODO CONCATENADO NO ACE FALTA KS EA ASI, POR QUE ESA PARTE LO REMPLAZARE CON UN BLOQUE QUE ALMACENE LO QUE EXTRAIGA EN UN ARCHIVO
Desaria que alguien me poudiera dar una mano en este ejercicio.
El prolema es el siguiente..
************--------------*********
Hacer un programa, el cual abra un archivo de texto y me extraiga de el todas las palabras que congan la letra a con acento (á) (letra a minuscula).
Las palabras a extraerse podran contener los carateres que te damos mas bajo,
Debera ir imprimiendo en pantalla cada palabra y al final de cada renglon mostrara todas las palabras unidas por asterisco ( ** ).
Tener en cuenta que las cadenas (renglones) del archivo de texto podran tener 200, 500 o 1000 carateres inclusive.
Emplear conjuntos
************--------------*********
Bueno, el programa ya lo tengo casi hecho, pero me di cuenta tras varios dias de romperme la cabeza, dando vueltas y vueltas en el simple codigo que tengo, que no anda y no me extrae las palabras que ay en el archivo.
Siempre me salta un renglon, o no me extrae la ultima palabra buscada, o cosas asi.. resumiendo NO ANDA...
El archivo a procesar tiene estas palabras:
//////////////////////////////////////////////////////////////////
s.txt
L-Lá1 ************** ----- 2á54+45 nán v
3á_3 -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 4á4 final@2
5á5---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------6á6 finalá3
gg 7/á7 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------8á8 finalá4
//////////////////////////////////////////////////////////////////
este es el codigo de mi programita
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
Program principal;
type
tipoConjunto= set of char;
var
C : char;
archivo : text;
I : integer;
v1, v2, v3 : tipoConjunto;
cola, cadena1 : string;
begin
assign(archivo,'s.txt');
reset(archivo);
read(archivo,c);
cadena1 := '';
While not(eof(archivo)) do begin
v1:=['a','b','c','d','e','f','g','h','i', 'j','k','l','m','n','o','p','r','s','t','u','v','w','x','y','z'];
v2:=['A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'];
v3:=['.','_','+','/','0','1','2','3','4','5','6','7','8','9'];
While not(eoln(archivo)) do begin
While (c in v1) or (c in v2) or(c in v3) do
Begin
Cola := cola + c;
Read(Archivo, C);
End;
if pos('á',cola) <> 0 then {si c cumple, entonces en cola ay un a con acento }
Begin
writeln(' palabra ',cola);
cadena1 := cadena1 + ' ** ' + cola;
{ guardar valor de variable cola en archivo}
{ bloke k almacdenara contenido }
{ de la variable COLA, en el archivo }
{ ACA IRA EL BLOQUE QUE ALMACENARA EN ARCHIVO LO QUE EXTRAIGA }
end;
{ Si POS es cero, entonces no ay un a con acento en COLA }
{ y ce repite el ciclo }
{ leer caracter y comparar k este en conjunto }
cola := '';
read(archivo,C);
end;
readln(archivo,c);
end;
writeln(' cadena concatenada ',cadena1); { ACA ME IMPRIME TODO LO QUE EXTRAE }
read(i);
end.
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
y lo que me extra es
L-Lá1 ** 2á54+45 ** nán ** 5á5 ** 6á6 ** finalá3 -- 7/á7 ** 8á8 ** finalá4
salteando el segundo renglon 3á_3 4á4 final@2 que no me procesa, no entiendo por que, pero creo que debe ser por que, no entiendo.
EL TEMA DE IMPRIMIR TODO CONCATENADO NO ACE FALTA KS EA ASI, POR QUE ESA PARTE LO REMPLAZARE CON UN BLOQUE QUE ALMACENE LO QUE EXTRAIGA EN UN ARCHIVO
Desaria que alguien me poudiera dar una mano en este ejercicio.
Valora esta pregunta


0