RE:leer varios datos a la vez y asignarles variabl
Ya entendí, me quedó clarísimo.
Lo que dice para las opciones 2 y 3 del menú es que cuando se elije la opción 2 el usuario debe ingresar el número en la base elegida como cifras separadas, de modo tal que si ingresa:
7 18 8
Y la base es 25, ese 18 es la "i". Así como la "f" es el 15.
Cuando elije la opción 3 entonces debe escribir el número usando los símbolos correspondientes correctamente, es decir:
7i8
Tu dificultad está en que crees que debes tener cada uno de los números ingresados por el usuario en variables separadas, pero no es así.
Lo que el usuario tipee guárdalo en un string. Teniendo el número en un string lo único que debes hacer es parsear el string y ya está.
Supongamos que N es de tipo string y...
N:='7 18 8';
Lo primero que necesitas saber es cuántos dígitos hay en ese número. Siendo un string debes contar los espacios en blanco y sumarle uno. En el ejemplo hay 2+1=3, la cifra es de 3 dígitos. Para ello podrías usar esta función:
function ContarDigitos(S: string): integer;
var
i, result: integer;
begin
result:=0;
if Length(S) > 0 then
begin
for i:=1 to Length(S) do
begin
if S[i] = ' ' then
result:=result+1;
end;
result:=result+1; { cuenta el final de la cadena }
end;
ContarDigitos:=result;
end;
Para la opción 3 del menú es más fácil, Length(N) te dará la cantidad de dígitos sin más trámites.
Luego debes extraer de izquierda a derecha cada uno de los dígitos usando el espacio y el final de la cadena como separador de dígitos. Por cada vez que logras extraer un dígito lo procesas según la fórmula dada al inicio del enunciado, aquí debes tener en cuenta dos cosas: primero debes controlar que el dígito (el símbolo) proporcionado por el usuario sea válido para la base actual, por ejemplo, si el usuario eligió la base 14 e ingresó la letra 'f', 'f' es inválida para la base 14; y segundo usando la cantidad de dígitos que has calculado debes pasar el exponente adecuado, restándole uno por cada dígito procesado.
Si necesitas ayuda para esto último, pregunta. Ahora mismo tengo trabajo que hacer y no tengo tiempo de escribir código pero no tengo problemas en guiarte en esto también.