Pascal/Turbo Pascal - ayuda con programita!!

 
Vista:

ayuda con programita!!

Publicado por flor (2 intervenciones) el 14/05/2008 03:02:07
Se lee una secuencia de caracteres terminada en ‘*’. Determinar si la secuencia cumple con el patrón A#B#C, donde:
# es el carácter ‘#’ que seguro existe.
A debe ser una secuencia de a lo sumo cuatro palabras, y cada una debe tener una longitud de tres caracteres como mínimo.

B debe ser una secuencia que solo contenga la letra ‘j’ y exactamente 7 blancos. Los blancos pueden estar intercalados o todos juntos.

C debe ser una secuencia que tenga la misma cantidad de palabras que la secuencia A y que no contenga los caracteres dígitos del `1`al `5`.

Nota: se debe modularizar la solución. Utilizar readln, writeln y readkey para visualizar correctamente.



alguien me puede ayudar con esto. Se me re complicoo..!!

por favorrr...una manitoo..

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

RE:ayuda con programita!!

Publicado por micropais (209 intervenciones) el 14/05/2008 17:52:47
hola flor:

Como no muestras tu tarea ahi va una posible forma , pero solo para el comando A# , el fin de este ejemplo no es que lo copies , si no que entiendas como se podria hacer , el código esta comentado , para que entiendas la lógica , una vez entendido deberias reutilizar el code para B# y C , no tienes que hacerl igual ni mucho menos , SALUDOS y espero hberte ayudado.
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

RE:ayuda con programita!!

Publicado por micropais (209 intervenciones) el 14/05/2008 17:54:12
....se me olvidava el code jejejeje.
_____________________________________________

uses crt;
// 1§ necesitamos una variable para recoger cada parametro
var unalinea:string;
// debemos crear un bucle para recorrer el parametro
a:byte;
// con este bucle despiezamos cada palabra , para ello usamos el caracter
// espacio como separador
const espacio=' '; // representa al caracter espacio
// cuando encontremos un caracter espacio ya tenemos otra palabra
// por ello necesitamos un array para guardarlas
var palabra:array[1..4]of string;
// y un contador que lleve la cuenta
cnt_palabras:byte;
otra_palabra:string; // variable temporal leido
ultimo_caracter:char; // para controlar el caracter #

// ********************************************************************
// comienza el programa
// ********************************************************************
begin
clrscr;

writeln('introducca la secuencia A#B#C');
writeln('A = secuencia de 4 palabras de tres digitos minimo ');
writeln('B = secuencia letra J + 7 caracteres blancos seguidos o intercalados con J');
writeln('C = secuencia de 4 palabras sin caracteres 1,2,3,4,5');
writeln('_______________________________');

writeln ('itroducca secuencia A#');
readln(unalinea); // obtenemos el parametro


writeln ('analizando...' );
// valores iniciales
cnt_palabras:=1;
otra_palabra:='';
// recorremos la linea de texto , y con ello el parametro
for a:=1 to length(unalinea) do
begin
// otra_palabra , variable temporal , ir  creciendo con el caracter
// de unalinea[a] hasta que encontremos el caracter espacio
otra_palabra:=otra_palabra+unalinea[a];
// nota1:

if unalinea[a]=espacio then
// si el caracter recorrido es el caracter espacio ya tenemos otra palabra
begin
// por ello incrementamos el contador de palabras
cnt_palabras:=cnt_palabras+1;
// y borramos el contenido de la variable temporal
otra_palabra:='';
end;
// guardamos la palabra en el array de palabras
// nota1: lo hacemos desde aqui para evitar que el caracter espacio forme
// parte del final de cada palabra
palabra[cnt_palabras]:=otra_palabra;
end;

// ahora el array palabra:array[1..4]of string; deberia estar completo
// con cnt_palabras palabras

// buscamos el ultimo_caracter de la ultima palabra
ultimo_caracter:=otra_palabra[length(otra_palabra)];
// writeln('caracter # :', ultimo_caracter);
// si no es el caracter # error
if ultimo_caracter <>'#' then writeln ('Error: no existe el caracter #');

writeln('total de ', cnt_palabras ,' Palabras introducidas');
if cnt_palabras < 4 then writeln ('Error:hay menos de 4 palabras');

// otro bucle
for a:=1 to cnt_palabras do
begin
writeln('palabra ',a,' :',palabra[a], ' caracteres :' , length(palabra[a]));
if (length (palabra[a])<3) then writeln('Error: Palabra: ',a ,' menos de tres caracteres');
end;

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