Pascal/Turbo Pascal - Mostrar palabras de una variable 1 por 1

   
Vista:

Mostrar palabras de una variable 1 por 1

Publicado por chepe (2 intervenciones) el 03/06/2014 03:21:17
buenas noches les paso el ejercicio que me dieron en la facultad aver si me pueden dar una mano

4. Escribir un algoritmo que ingrese una frase (la frase termina con un punto) por teclado y cuente e informe
las palabras que contiene, utilizando una función.

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
program punto4;
 
uses crt;
var
	fras:string;
	i:integer;
 
function contador(fras:string):integer;
begin
	contador:= 0;
	for i:= 1 to Length(fras) do
	begin
		if ((fras [i] = ' ') OR (fras [i] = '.'))then
		begin
		contador:= contador+1;
		end;
	end;
	writeln('la cantidad de palabras es: ',contador);
end;
 
 
BEGIN
	writeln('ingrese una frase: ');
	readln(fras);
	contador(fras);
	cantpal(fras);
 
END.

como ven lo unico que me falta es mostrar una por 1 las palabras que ingreso en la frase. la condicion es q no puedo usarlas poniendolas de a 1 en variables separadas, tengo que usar un mecanismo parecido al de la funcion
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

Mostrar palabras de una variable 1 por 1

Publicado por ramon (2072 intervenciones) el 04/06/2014 00:44:30
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
{Fíjate en tu proceso veras que si insertas 2 espacios o mas ente frases esto cuenta como una frase prueba el de abajo}
 
program punto4;
 
uses crt;
var
	fras:string;
	i:integer;
 
   function contador(fras:string) : integer;
   var
     cont : integer;
     frase : string[30];
     n : integer;
   begin
	cont := 1;
        n := 1;
	for i := 1 to Length(fras) do
	begin
	   if (fras[i] = ' ') OR (fras[i] = '.') then
	   begin
	      cont := cont + 1;
              n := 1;
              writeln(frase);
              frase := ' ';
	   end
         else
               begin
                  frase[n] := fras[i];
                  frase[0] := chr(n);
                  n := n + 1;
               end;
	  end;
        if n > 1 then
        writeln(frase);
        contador := cont;
        writeln;
	writeln('la cantidad de palabras es: ',cont);
  end;
 
 
    BEGIN
        clrscr;
	write('  ingrese una frase : ');
	readln(fras);
        writeln;
	contador(fras);
        readkey;
     END.
 
 
{El de bajo}
 
program palabras;
 uses
    crt;
  var
    frase : string;
    cont : integer;
 
  procedure entralafrase(var ff : string);
  begin
     clrscr;
     write('  Entre Frase : ');
     readln(ff);
  end;
 
  function numeropalabras(pl : string) : integer;
  var
    cc, l : integer;
  begin
     l := 0;
     cc := 0;
     for cont := 1 to length(pl) do
     begin
        if pl[cont] <> ' ' then
        l := l + 1
      else
        begin
           if l > 0 then
           begin
           cc := cc + 1;
           l := 0;
          end;
        end;
     end;
      if l > 0 then
      cc := cc + 1;
      numeropalabras := cc;
  end;
 
  procedure presentafrases(ff : string);
  var
    g, t : integer;
  begin
      g := 0;
      for t := 1 to length(ff) do
      if ff[t] <> ' ' then
      begin
      write(ff[t]);
      g := g + 1;
      end
    else
      begin
      if g > 0 then
      begin
         writeln;
         g := 0;
      end
    else
       g := 0;
      end;
  end;
 
  begin
      entralafrase(frase);
      writeln(numeropalabras(frase));
      presentafrases(frase);
      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