Monovocalismo

5o5a -  
[Dal] Mensajes publicados 6122 Fecha de registro   Estado Colaborador Última intervención   -
Hola,
¿cómo determinar las palabras monovocálicas?

4 respuestas

[Dal] Mensajes publicados 6122 Fecha de registro   Estado Colaborador Última intervención   1 108
 
Hola 5o5a,

https://fr.wiktionary.org/wiki/monovocalisme

Puedes definir un tipo
set of char;
y una variable
vocales
usando este tipo, lo que te permitirá incluir todas las vocales del alfabeto con el que estás trabajando.

Luego, puedes probar fácilmente si una letra de la palabra que estás analizando es una vocal o no, de esta manera:
if mot[n] in vocales then
variando la variable
integer
que he llamado
n
(puedes llamarla como quieras) de 1 a la longitud en letras de la palabra.

Es realmente el único truco práctico que necesitas saber para facilitarte la vida, lo demás es muy básico y supone que sabes usar booleanos, hacer bucles y pruebas, y recorrer las letras de una cadena.

Dal
1
telliak Mensajes publicados 3652 Fecha de registro   Estado Miembro Última intervención   885
 
¿Quieres decir por favor? Gracias.
0
Usuario anónimo
 
Buenas noches

se puede hacer con una Regex
[aeiouy]
con la opción IgnoreCase
http://regexstorm.net/tester?p=%5baeiouy%5d&i=En+este+momento%2c+ciertamente%2c+t%e2%80%99es+el+jefe%2c+pon+%e2%80%93+créeme+%e2%80%93+este+tiempo+es+corto+y+prefiero+estar+dentro+de+mis+plantas+que+dentro+de+tus+atascos&o=i 

Luego verificas que todas las ocurrencias son una sola y misma vocal.

Incluso deberíamos poder encontrar una Regex que haga el trabajo de un golpe, pero no tengo mucho tiempo para investigar eso.

--
Cuando era pequeño, el Mar Muerto estaba solo enfermo.
George Burns
0
5o5a
 
gracias
0
5o5a
 
He intentado ejecutar este programa pero no ha funcionado:

program MonoEn_v;
uses wincrt;
Type
tab=array[1..20]of string;
Var
n:integer;t:tab;v:char;

procedure remplir(n:integer;var t:tab);
Var i,j:integer;
Begin
For i:=1 to n Do
Begin
Repeat
Write('dar una cadena de caracteres: ');readln(t[i]);
j:=0;
Repeat
j:=j+1;
Until not(upcase(t[i][j]) in ['A'..'Z']) or (j=length(t[i]));
until (upcase(t[I][j]) in ['A'..'Z']) and (length(t[i]) in [3..15]);
end;
end;

procedure saisir_v(var v:char);
Begin
Repeat
writeln('dar un carácter v');readln(v);
until (upcase(v) in ['A','E','I','O','U','Y']);
end;

procedure afficher(n:integer;t:tab;v:char);
Var i,j:integer; test:boolean;
Begin
test:=false;
writeln('las palabras mono-vocalismo en "',v,'" son: ');
for i:=1 to n Do
Begin
for j:=1 to length(t[i]) do
Begin
Repeat
test:=true;
Until (t[i][j] <>v ) and (t[i][j] in ['A','E','I','O','U','Y']);
end;
writeln(t[i],'|');
end;
end;

begin
Repeat
Readln(n);
until n in [1..20];
remplir(n,t);
saisir_v(v);
afficher(n,t,v);
end.
0
[Dal] Mensajes publicados 6122 Fecha de registro   Estado Colaborador Última intervención   1 108
 
1.

Para publicar tu código en el foro, utiliza la etiqueta de código, de lo contrario tu código será ilegible.

Así:

<código delphi>
copia y pega el código de tu programa Pascal aquí
</código>

si no quieres escribir tú mismo las etiquetas de código, puedes hacer clic en la pequeña flecha a la izquierda del ícono de imagen del foro y al elegir el lenguaje "delphi" esto insertará en la ventana de edición del mensaje del foro las etiquetas por ti y solo tendrás que copiar y pegar el código Pascal de tu programa entre las dos etiquetas, como se ilustra arriba.

esto numerará las líneas del programa, hará una coloración sintáctica Pascal y preservará la indentación de tu código y será más legible para todos

2.

He echado un vistazo rápidamente a tu código.

Si entiendo bien, en tu código, vemos que tratas un arreglo de cadenas, con varias palabras para cada cadena, y que te propones verificar, para cada palabra, si son monovocalismos respecto a una determinada vocal dada por el usuario, y si es así, establecer la lista y indicar al usuario cuáles son esas palabras.

Por lo tanto, ya debes disponer de un medio para distinguir las palabras entre sí en la cadena (en una frase, están separadas por espacios, signos de puntuación).

Por ejemplo, crea una función o procedimiento que, a partir de una cadena, devuelva las palabras contenidas en la cadena.

Luego, para verificar si cada palabra es un monovocalismo respecto a una determinada vocal dada por el usuario, crea una función
isMonovocalisme
que devuelva un booleano
y que tome como parámetros una cadena que contenga la palabra a verificar, y un carácter que contenga la vocal respecto a la cual debe hacerse esta verificación.

Luego, puedes mostrar las palabras que pasan la prueba a medida que avanzas, o, si necesitas mantenerlas en memoria, almacenarlas de alguna manera utilizando una estructura de datos del lenguaje Pascal.

3.

¿Qué compilador Pascal utilizas?

Dal
0