UTNianos

Versión completa: [Algoritmos] Consulta
Actualmente estas viendo una versión simplificada de nuestro contenido. Ver la versión completa con el formato correcto.
Páginas: 1 2
Qué tal a todos? Tengo una duda con el siguiente ejercicio de algoritmos que no sé como encararlo. A ver, es fácil verlo e interpretarlo con un ejemplo, pero no puedo lograr plasmarlo.

El ejercicio es el siguiente:

Dada una serie de caracteres que conforman una oración, donde cada palabra está separada de la siguiente por un carácter blanco y la oración finaliza con un punto. Se pide informar:
1) cantidad de veces que apareció una vocal
2) cantidad de palabras que contiene la oración
3) cantidad de letras que posee la palabra más larga


Desde ya muchas gracias =)
Che, si querés te llevo mañana cómo lo hice yo a ver si te parece / inspira (?) JAJAJA
Llevalo dale, porque no se si fue que mi chip hizo implosion con tantos algoritmos o que onda jajaja
Ya metí el cuaderno en la mochi, haceme acordar, no vaya a ser que me olvide e_e Los algoritmos te funden el cerebro, de eso no hay duda alguna (?) jaja =B
Dale buenísimo, gracias jess =D, mañana te lo pido.

Igualmente si alguien quiere hacerlo para tener una segunda opinión al respecto, estaría bueno =)
No llego hasta medianoche hoy. Si lo tengo, te lo paso, y sino te lo pienso.
Te iba a preguntar si pensaste algo al respecto, pero tu duda es encararlo :/
hace un case con las 5 vocales, y metele un contador a cada una.

usa otro contador para contar los espacios en blanco " " , el espacio en blanco te delimita cada palabra, salvo la ultima que va con un punto (.) esa la tenes que sumar como una palabra mas.

usa un contador para los caracteres de una palabra hasta que aparezca un espacio y/o punto, asignalo al maximo, y resetea el contador, despues comparas el contador de cada palabra con el max y lo asignas si lo supera.
mmm

ese ejer es del modulo 1. lo tengo hecho en pascal. tirame el numero de ejercicio y te tiro el codigo (no pienso buscar ejer por ejer)
Es el ejercicio 27
Algo así muy por arriba....



CantidadDePalabras := 0;
CantidadDeVocalesTotal := 0;
CantidadDeLetrasPalabraActual := 0;
CantidadDeLetrasPalabraMaxima := 0;

Leer un caracter;
Si NO es el caracter punto (.)
{
Si NO es el caracter espacio ( )
{

Si es una vocal, entonces
CantidadDeVocalesTotal += 1;

CantidadDeLetrasDePalabraActual += 1;
}

Si ES el caracter espacio ( )
{
[b]CantidadDePalabras += 1;[/b]

Si (CantidadDeLetrasPalabraActual > CantidadDeLetrasPalabraMaxima), entonces
CantidadDeLetrasPalabraMaxima := CantidadDeLetrasPalabraActual;

CantidadDeLetrasPalabraActual := 0;
}

Leer otro caracter;
}


Ahora si, es el ejercicio 31


type
ar=array [1..5] of integer;


procedure pro(pal:string[50];var a:ar;i:integer;var contle:integer;var contpal:integer;var max:integer);
begin

case pal[i] of
'a','A' : begin a[1]:=a[1]+1; end;
'e','E' : begin a[2]:=a[2]+1; end;
'i','I' : begin a[3]:=a[3]+1; end;
'o','O' : begin a[4]:=a[4]+1; end;
'u','U' : begin a[5]:=a[5]+1; end;
end;

contle:=contle+1;
if (pal[i]=' ') then begin
contpal:=contpal+1;
if (contle>max) then
max:=contle;

contle:=0;
end;

end;

procedure res(a:ar;max:integer;contpal:integer);
begin

writeln ('Hay ',a[1],' vocales a');
writeln ('Hay ',a[2],' vocales e');
writeln ('Hay ',a[3],' vocales i');
writeln ('Hay ',a[4],' vocales o');
writeln ('Hay ',a[5],' vocales u');
writeln('La palabra mas larga tiene ',max,' letras');
writeln ('Hay ',contpal,' palabras');

end;

var
pal:string[50];
a:ar;
contpal,i,contle,l,max:integer;

begin

contle:=0; max:=0; contpal:=1;
for i:= 1 to 5 do begin
a[i]:=0; //inicializa el array en 0
end;

write ('Ingrese una oracion: ');
readln(pal);

l:=length(pal);

for i:=1 to l do begin
pro(pal,a,i,contle,contpal,max); //procesa
end;

res(a,max,contpal); //muestra la resolucion

end.

O cambiaron la practica de repente o creo que subiste el 20...por lo menos en mi practica ahora es el 20
puede ser, ahi edite el comment anterior
(03-05-2012 23:49)el pibe escribió: [ -> ]Ahora si, es el ejercicio 31


type
ar=array [1..5] of integer;


procedure pro(pal:string[50];var a:ar;i:integer;var contle:integer;var contpal:integer;var max:integer);
begin

case pal[i] of
'a','A' : begin a[1]:=a[1]+1; end;
'e','E' : begin a[2]:=a[2]+1; end;
'i','I' : begin a[3]:=a[3]+1; end;
'o','O' : begin a[4]:=a[4]+1; end;
'u','U' : begin a[5]:=a[5]+1; end;
end;

contle:=contle+1;
if (pal[i]=' ') then begin
contpal:=contpal+1;
if (contle>max) then
max:=contle;

contle:=0;
end;

end;

procedure res(a:ar;max:integer;contpal:integer);
begin

writeln ('Hay ',a[1],' vocales a');
writeln ('Hay ',a[2],' vocales e');
writeln ('Hay ',a[3],' vocales i');
writeln ('Hay ',a[4],' vocales o');
writeln ('Hay ',a[5],' vocales u');
writeln('La palabra mas larga tiene ',max,' letras');
writeln ('Hay ',contpal,' palabras');

end;

var
pal:string[50];
a:ar;
contpal,i,contle,l,max:integer;

begin

contle:=0; max:=0; contpal:=1;
for i:= 1 to 5 do begin
a[i]:=0; //inicializa el array en 0
end;

write ('Ingrese una oracion: ');
readln(pal);

l:=length(pal);

for i:=1 to l do begin
pro(pal,a,i,contle,contpal,max); //procesa
end;

res(a,max,contpal); //muestra la resolucion

end.


No podés usar arrays en ese ejercicio, todavia no se explicaron estructuras de datos en el modulo 1 =P

Yo lo tengo hecho si me acuerdo despues posteo y te lo paso ahora estoy hiper cansado xD
(04-05-2012 22:37)rodam escribió: [ -> ]
(03-05-2012 23:49)el pibe escribió: [ -> ]Ahora si, es el ejercicio 31


type
ar=array [1..5] of integer;


procedure pro(pal:string[50];var a:ar;i:integer;var contle:integer;var contpal:integer;var max:integer);
begin

case pal[i] of
'a','A' : begin a[1]:=a[1]+1; end;
'e','E' : begin a[2]:=a[2]+1; end;
'i','I' : begin a[3]:=a[3]+1; end;
'o','O' : begin a[4]:=a[4]+1; end;
'u','U' : begin a[5]:=a[5]+1; end;
end;

contle:=contle+1;
if (pal[i]=' ') then begin
contpal:=contpal+1;
if (contle>max) then
max:=contle;

contle:=0;
end;

end;

procedure res(a:ar;max:integer;contpal:integer);
begin

writeln ('Hay ',a[1],' vocales a');
writeln ('Hay ',a[2],' vocales e');
writeln ('Hay ',a[3],' vocales i');
writeln ('Hay ',a[4],' vocales o');
writeln ('Hay ',a[5],' vocales u');
writeln('La palabra mas larga tiene ',max,' letras');
writeln ('Hay ',contpal,' palabras');

end;

var
pal:string[50];
a:ar;
contpal,i,contle,l,max:integer;

begin

contle:=0; max:=0; contpal:=1;
for i:= 1 to 5 do begin
a[i]:=0; //inicializa el array en 0
end;

write ('Ingrese una oracion: ');
readln(pal);

l:=length(pal);

for i:=1 to l do begin
pro(pal,a,i,contle,contpal,max); //procesa
end;

res(a,max,contpal); //muestra la resolucion

end.


No podés usar arrays en ese ejercicio, todavia no se explicaron estructuras de datos en el modulo 1 =P

Yo lo tengo hecho si me acuerdo despues posteo y te lo paso ahora estoy hiper cansado xD

ahora que es anual no se podra;

cuando yo lo tuve que hacer, ya nos habian dado archivos y punteros =P


pero bueno, si no queres usar un array de 5 posiciones, usas 5 variables
Páginas: 1 2
URLs de referencia