Pascal/Turbo Pascal - AYUDA PROGRAMA SENCILLO CONTAR PALABRAS

 
Vista:

AYUDA PROGRAMA SENCILLO CONTAR PALABRAS

Publicado por luisina (18 intervenciones) el 25/04/2013 00:21:10
HOLA GENTE NECESITO RESOLVER ESTE EJERCICIO, LA DUDA QUE TENGO ES COMO CONTAR LA PALABRA FINAL, YA QUE EN MI CONTADOR SOLAMENTE CUENTO LAS QUE ESTÁN SEPARADAS POR BLANCOS, Y LA ULTIMA TERMINA CON . (PUNTO)

- TODAVÍA NO PUEDO USAR PROCESOS NI FUNCIONES-

Se lee una secuencia de caracteres terminada en punto ('.'). La secuencia se divide en palabras. Se pide informar la cantidad de palabras leídas.
NOTA: para los ejercicios de secuencia de caracteres dividida en palabras considere que las palabras pueden estar separadas por uno a más blancos, y que al principio y al final de la secuencia puede haber cero, uno o más blancos.

YO HICE ESTO:

Program ejercicio2;
var car:char;
cant: integer;
Begin
writeln('ingrese palabras');
read (car);
while (car <> '.') do begin
if (car = ' ') then begin

cant:= cant +1 ;
end;
read(car);


end;
readln;
writeln ('la cantidad de palabras es: ', cant);
readln;

End.
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

AYUDA PROGRAMA SENCILLO CONTAR PALABRAS

Publicado por ramon (2158 intervenciones) el 25/04/2013 21:58:11
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
{A ver así}
 
Program ejercicio2;
var
   car : string;
   g, cant : integer;
  Begin
    g := 1;
    write('ingrese texto terminado en punto : ');
    readln(car);
    while (car[g] <> '.') and (g < 255) do
    begin
   if (car[g] = ' ') then
   begin
     cant := cant + 1;
   end;
     g := g + 1;
 end;
   cant := cant + 1;
   writeln ('la cantidad de palabras es: ', cant);
    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

AYUDA PROGRAMA SENCILLO CONTAR PALABRAS

Publicado por luisina (18 intervenciones) el 26/04/2013 01:52:21
funciona de 10.. pero me podes explicar lo que agregaste??
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

AYUDA PROGRAMA SENCILLO CONTAR PALABRAS

Publicado por franco sanguedolce (32 intervenciones) el 28/04/2013 08:39:26
A diferencia de tu programa lo que hace es usar un segundo contador, recorda que un string es un array de caracteres, este segundo contador busca los espacios en blanco, entonces aqui se lee caracter a caracter(car[g]), y cuando encuentra el blanco suma una palabra; es la diferencia; lo segundo.es la.condicion para el.string(un.string guarda hasta 255 caracteres) para que no haya un overflow; :) espero te sirva de ayuda;
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

AYUDA PROGRAMA SENCILLO CONTAR PALABRAS

Publicado por franco sanguedolce (32 intervenciones) el 29/04/2013 06:06:00
Ramon, en el enunciado dice qe el texto puede empezar en cero uno o mas espacios en blanco, corriendo el programa cuando puse un espacio al principio, cuenta una palabra mas de las que realmente son, al igual que cualquier espacio antes del punto, en ese caso, el programa no cumple tal condicion, como sd hace en ese caso?
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

AYUDA PROGRAMA SENCILLO CONTAR PALABRAS

Publicado por luisina (18 intervenciones) el 29/04/2013 06:22:26
Gracias Franco muy clara y sencilla la explicacion.. Yo no lo probe con espacios al comienzo, puede ser q este mal eso.
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

AYUDA PROGRAMA SENCILLO CONTAR PALABRAS

Publicado por franco sanguedolce (32 intervenciones) el 29/04/2013 06:39:50
Liusina aqui te paso un codigo donde solucione el tema de los espacios antes y desp del texto

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
uses crt,dos;
var
   car:string;
   cant,i:byte;
 
begin;
      write('ingrese texto: ');
      readln(car);
      for i:= 1 to length(car) do
        begin
          if (car[i]=' ') and (car[i-1]<>' ') and (car[i-1]<>'') and (car[i+1]<>' ') and (car[i+1]<>'.') then
            begin
               cant:=cant+1;
            end;
          if (car[i]='.') then
            begin
              cant:=cant+1;
            end;
        end;
  write('la cantidad de palabras es: ',cant);
end.


Como sabemos cuantas veces se va a repetir el bucle use un for

Y en las condiciones elimino los espacios.en blanco con los (car[i-
]<>) y (car[i+1]<>)

El segundo if suma la ultima palabra ya que debido que el punto indica el fin del texto no sumaria la ultima palabra por no encontrar el espacio posterior a ella (recordar qe.se.eliminan los espacios anteriores al '.') Espero esto te sirva :)
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

AYUDA PROGRAMA SENCILLO CONTAR PALABRAS

Publicado por ramon (2158 intervenciones) el 29/04/2013 12:35:02
bravo muchachos eso es lo que me gusta que lo mio sea una ayuda y vosotros la continuéis
si es cierto siempre que encuentre un blanco contara palabra.
Pero eso que me dices me se paso por alto y cometí un erro de lectura pido disculpas.
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

AYUDA PROGRAMA SENCILLO CONTAR PALABRAS

Publicado por luisina (18 intervenciones) el 29/04/2013 15:32:33
Gracias Franco, ahora entendi bien
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