Autor Tema: Dudas básicas pascal funciones copy, length  (Leído 4428 veces)

ptolomeo

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 1
    • Ver Perfil
Dudas básicas pascal funciones copy, length
« en: 23 de Diciembre 2013, 11:08 »
Hola buenas, estoy teniendo problemas con dos puntos que expondre a continuación que no tengo ni idea de como hacerlo. A ver si alguien sabe hacerlo y me echa una mano!

1-Dada una posición de un caracter en un string, por ejemplo el caracter 5 del string S, mostrar por pantalla que caracter ocupa esa posicion.

2-Si tengo dos strings que podemos llamarlos S1 y S2, como puedo hacer para poder decir si es cierto o falso que el ultimo caracter de s1 se encuentra al menos dos veces dentro de S2.

Muchas gracias por resolverle las dudas a un novato!
« Última modificación: 15 de Septiembre 2014, 14:12 por Alex Rodríguez »

César Krall

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2078
  • No vales por lo que dices, sino por lo que haces
    • Ver Perfil
    • aprenderaprogramar.com
Re:Dudas pascal
« Respuesta #1 en: 23 de Diciembre 2013, 12:40 »
Hola, no sé si estás usando Pascal porque lo estén usando como lenguaje en estudios que estás cursando o si simplemente lo estás aprendiendo por gusto. Si es por gusto, te recomendaría que te pasaras a otro lenguaje, no porque Pascal sea malo, sino porque otro lenguaje te será más útil en la práctica.


1-Dada una posición de un caracter en un string, por ejemplo el caracter 5 del string S, mostrar por pantalla que caracter ocupa esa posicion.


Habría varias maneras de hacer esto. Una que se me ocurre es usar la función copy.

copy:  devuelve una subcadena.  Su sintaxis es  function copy(cad: string; posic: integer; cantidad: integer): string;  Indicamos la cadena, desde qué posición queremos empezar a tomar letras y cuántas queremos tomar.  Así, copy('estrafalariamente', 5, 1)  daría como resultado 'a', ya que la a es el carácter 5. Si hiciéramos copy('estrafalariamente', 13, 5) nos devolvería 'mente'


program cadenas;
 
 var
   cadena1: string;
   cadena2: string;

 
 begin
   cadena1:= 'estrafalariamente';
   writeln('El caracter en posición 5 es: ', copy(frase, 5, 1) );
 end.


2-Si tengo dos strings que podemos llamarlos S1 y S2, como puedo hacer para poder decir si es cierto o falso que el ultimo caracter de s1 se encuentra al menos dos veces dentro de S2.

Para ello lo que se me ocurre es: usar copy para meter dentro de una cadena el último carácter de s1. Para ello puedes usar la función length (esta te dice la longitud de una cadena de texto:  function length(cad: string): integer;)

Luego creas un bucle donde usas copy para comparar carácter a carácter cada carácter de s2 con el último carácter de s1, y en caso de ser iguales, en un contador sumas uno. Si al final el contador suma 2 ó más, es cierto que el ultimo caracter de s1 se encuentra al menos dos veces dentro de S2, si suma 1 ó es 0, es falso.

Saludos.

Responsable de departamento de producción aprenderaprogramar.com

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".