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.