tengo una tarea de programacion y no me funciona :(
Publicado por ayuda (1 intervención) el 23/04/2024 23:23:30
Necesito ayuda, tengo una tarea de programacion para el jueves 25 de abril de 2024 y el programa no me funciona bien, estoy empezando en esto de la programacion apenas estoy en primer semestre.
Mi programa esta en pascal
Tengo que hacer unos procedimientos (procedure) tiene que leer una oracion de la entrada y escribir: cual es la palabra mas larga, cual es la palabra mas corta y la cantidad de letras de la palabra mas larga y la palabra mas corta.
El programa segura esperando entradas hasta que introduzca el finalizador (un centinela, en este caso '.' El error es que el programa solo lee la primera letra y sigue esperando entradas aunque presiono enter seguira esperando entradas hasta que introduzca el separador '.' si escribí ocho palabras y a cada una le doy enter el programa solo cuenta las 8 primeras letras de las lineas que introducí
De antemano muchas gracias a quien me pueda ayudar
Mi programa esta en pascal
Tengo que hacer unos procedimientos (procedure) tiene que leer una oracion de la entrada y escribir: cual es la palabra mas larga, cual es la palabra mas corta y la cantidad de letras de la palabra mas larga y la palabra mas corta.
El programa segura esperando entradas hasta que introduzca el finalizador (un centinela, en este caso '.' El error es que el programa solo lee la primera letra y sigue esperando entradas aunque presiono enter seguira esperando entradas hasta que introduzca el separador '.' si escribí ocho palabras y a cada una le doy enter el programa solo cuenta las 8 primeras letras de las lineas que introducí
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
program Principal;
const
SEPARADOR = ' ';
FINALIZADOR = '.';
procedure leerPalabraLargo(var largo: Integer; var fin: Boolean);
var
c: char;
begin
largo := 0;
fin := false;
read(c);
while (c <> SEPARADOR) and (c <> FINALIZADOR) do
begin
largo := largo + 1;
read(c);
end;
if c = FINALIZADOR then
fin := true;
readln;
end;
procedure leerOracionDatos (var cantPal, masLarga, masCorta : Integer);
var
largo: Integer;
fin: boolean;
begin
cantPal := 0;
masLarga := 0;
masCorta := MaxInt;
repeat
leerPalabraLargo(largo, fin);
cantPal := cantPal + 1;
if largo > masLarga then
masLarga := largo;
if largo < masCorta then
masCorta := largo;
until fin;
end;
var
cantPal, masLarga, masCorta : Integer;
begin
write('Ingrese la oracion: ');
leerOracionDatos(cantPal, masLarga, masCorta);
writeln('Tiene ', cantPal:0, ' palabras. ');
writeln('La palabra mas larga tiene ', masLarga:0, ' letras. ');
writeln('La palabra mas corta tiene ', masCorta:0, ' letras. ');
end.
De antemano muchas gracias a quien me pueda ayudar
Valora esta pregunta


0