[ Foro de Pascal ]

ayuda con programa

30-Nov-2017 08:55
Invitado (esteban)
1 Respuestas

Escriba un procedimiento que reciba como parámetro, una tabla de enteros y devuelva una cadena con los caracteres correspondientes. Incluya el procedimiento en un pequeño programa de prueba para depurarlo y verificar que es correcto.

esto es lo que he sido capaz de hacer, pero el resultado no es el deseado, mas bien es una catástrofe de resultado. Agradeceria que alguien me pudiera prestar algo de ayuda. Gracias.


program cadenaenteros;
type
tabla = array[1..20] of integer;
  var
   cadena : string[20];
   tab : tabla;
   i, cont : integer;
   caracteres : tabla;
   procedure valores (var caracteres : tabla);
   begin
        write('  Entre cadena max 20 caracteres : ');
        readln(cadena);
        for cont := 1 to length(cadena) do
      begin
        tab[cont] := ord(cadena[cont]);
        writeln;
        writeln('tabla de caracteres obtenida');
        writeln;
        for i := 1 to cont do
        write('  ',chr(tab[i]));
      end;
  end;
  begin
  valores (caracteres);
  end.


 


26-Dec-2017 09:48
Nacho Cabanes (+83)

Perdona el retraso en contestar. Quizá la respuesta llegue tarde, pero por si acaso...

Hay algo que quizá esté mal planteado en el propio enunciado: si debe devolver una cadena de texto, ya no se trata de un "procedure" sino de una "function". Lo habitual en esos casos es que no pidas datos desde dentro de la función, sino que te limites a manipular los resultados. Por ejemplo, podrías hacer que a partir de una lista de datos como 1, 3, 5 se devolviera una cadena como "135".






(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)