Pascal/Turbo Pascal - 2.1 tema 7

 
Vista:
sin imagen de perfil

2.1 tema 7

Publicado por Erik (73 intervenciones) el 20/03/2014 16:03:27
hola tengo que hacer lo siguente:

Teniendo en cuenta las funciones que acaba de ver en la cuestión 1, escriba un programa que pida al usuario una cadena de caracteres. A continuación, pase dicha cadena de caracteres a una tabla con los enteros correspondientes a cada carácter. Finalmente el programa mostrará al usuario la tabla de enteros obtenida.

la funcion es esta:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
program valores;
var
		letra:char;
		numero:integer;
		valornumerico:integer;
		valorcaracter:char;
begin
		writeln('Introduzca una letra: ');
		readln(letra);
		valornumerico:=ord(letra);
		writeln('El valor numerico de su letra es: ',valornumerico);
		writeln('Introduzca un numero: ');
		readln(numero);
		valorcaracter:=Chr(numero);
		writeln('Su numero corresponde al caracter: ',valorcaracter);
end.

gracias de antemano.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

2.1 tema 7

Publicado por ramon (2158 intervenciones) el 24/03/2014 13:07:31
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
{Algo así}
 
program cadenaenteros;
  var
   cadena : string[20];
   tabla : array[1..20] of integer;
   i, cont : integer;
  begin
     write('  Entre cadena max 20 caracteres : ');
     readln(cadena);
     for cont := 1 to length(cadena) do
     tabla[cont] := ord(cadena[cont]);
     writeln;
     writeln('tabla de enteros obtenida');
     writeln;
     for i := 1 to cont do
     write('  ',tabla[i]);
     readln;
  end.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 35
Ha disminuido 1 puesto en Pascal/Turbo Pascal (en relación al último mes)
Gráfica de Pascal/Turbo Pascal

2.1 tema 7

Publicado por Enrique Martin (15 intervenciones) el 12/02/2019 21:57:19
Este ejercicio lo he desarrollado de dos formas distintas, la primera asi:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
Program CadenaAOrdenArray;
 
(*Declaramos las variable necesarias que nos van a permitir la ejecucion del
  programa*)
var
 i:integer;
 frase:string;
 Tabla: array[1..20] of integer;
 
Begin
(*Pedimos la cadena de caracteres y la almacenamos en la variable*)
 writeln('Introduzca una frase a convertir en ASCII:  ');
 writeln;
 readln(Frase);
 writeln;
 
(*Con el bucle For-Do recorremos la cadena de caracteres. Para saber el numero
  de caracteres de una cadena dispones de varias opciones, en este caso
  he optado por la mas simple, que es obtener el dato de su longitud que se encuentra en el
  espacio [0] del string*)
 
(*Gracias a este for y mediante la funcion ord podemos transformar
  los caracteres en su correspondiente entero e incluirlos en el array
  de enteros*)
 for i:= 1 to ord(frase[0])do
     begin
     Tabla[i]:= ord(frase[i]);
     write('Letra: ',frase[i],' >>> ', tabla[i]);
     readln;
     end;
end.

La segunda forma que he desarrollado es la siguiente:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
Program FraseATablaEntero;
 
var
(*Declaramos las variables necesarias para el desarrollo del programa*)
 Tenteros: array [1..100] of integer; (*Tabla de enteros*)
 i: integer;
 Frase:string[100]; (*Tabla de caracteres*)
 
Begin
 
(*Pedimos que introduzcan una frase y la asignamos a una variable*)
 writeln('Introduzca una frase a convertir en ASCII:  ');
 readln(Frase);
 
 (*Para movernos por un cadena de caracteres o un array, así como para
   realizar distintas operaciones como asignar valores, necesitamos saber
   los espacios que ocupa en el array o al menos saber el maximo. Para ello nos valemos de la función
   length que cuenta los caracteres de una cadena y devuelve un entero.*)
 
 (*Gracias a este For-Do y mediante la funcion ord podemos transformar
   los caracteres en su correspondiente entero e incluirlos en el array
   de enteros*)
 For i:= 1 to length(Frase) do
  Begin
    Tenteros[i]:= Ord(frase[i]);
  end;
 
 (*Con este otro bucle recorremos el array y la cadena de caracteres para
   mostrar sus valores por pantalla*)
 for i:= 1 to length(Frase) do
   begin
    write('Numero: ',tenteros[i],' >>> ASCII: ', Frase[i]);
    readln;
   end;
 
 writeln;
 
end.

Son ejercicios muy simples que ayudan mucho a ver como funcionan las cadenas de texto junto con los bucles y agregando funciones.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar