Sábado 21 de Diciembre de 2024, 11:00
SoloCodigo
Bienvenido(a),
Visitante
. Por favor,
ingresa
o
regístrate
.
¿Perdiste tu
email de activación?
Inicio
Foros
Chat
Ayuda
Buscar
Ingresar
Registrarse
SoloCodigo
»
Foros
»
Programación General
»
Otros Lenguajes de Programación
»
ADA
»
Mostrar Array
« anterior
próximo »
Imprimir
Páginas: [
1
]
Autor
Tema: Mostrar Array (Leído 8004 veces)
puertas
Nuevo Miembro
Mensajes: 8
Mostrar Array
«
en:
Jueves 14 de Febrero de 2008, 14:41 »
0
Buenas tardes,
no voy a decir que estoy empezando en esto, porque sería insultar a su inteligencia, en seguida ustedes se daran cuenta de que soy un novato, cosa que probablemente sea el resto de mi vida, pero dejando presentaciones al margen, me gustaría saber el modo en el cual se puede mostrar en pantalla un array de numeros, si es que se puede, osea que me devuelva el array en un string, con sus comas o guiones o espacios.
no se si me he explicado bien, pero espero que alguien lea el mensajey se moleste en intentar entenderme, le estaré agradecido hasta que se me olvide. Muchas gracias
Tweet
Itimag
Nuevo Miembro
Mensajes: 14
Re: Mostrar Array
«
Respuesta #1 en:
Jueves 14 de Febrero de 2008, 20:16 »
0
Es muy sencillo.
Imagina que tienes el siguiente programa:
with Ada.Text_Io; use Ada.Text_Io;
procedure visu_array is
type numeros is array(1..10) of character;
num:constant numeros:=("0123456789"); -- Esto son numeros interpretados como caracteres.
begin
-- Para visualizarlos, haremos un simple for.
For I in 1..10 loop
put(num(I));
end loop;
end visu_array;
Esto es todo. Tambien podríamos declarar estos numeros como un string y realizar el for para visualizarlos
Num: constant String:="0123456789";
Espero haberte servido de ayuda. Un saludo. Si tienes más dudas, no dudes en preguntar.
Itimag.net
gandalfelgris
Miembro activo
Mensajes: 53
Re: Mostrar Array
«
Respuesta #2 en:
Jueves 14 de Febrero de 2008, 21:29 »
0
Solo una pequeña puntualizacion a mi compañero Itimag
Creo que donde dice num:constant numeros:=("0123456789"); deberia decir
num:constant numeros:=("0", "1", "2", "3", "4", "5", "6", "7", "8", "9");
Un saludo
gandalfelgris
Itimag
Nuevo Miembro
Mensajes: 14
Re: Mostrar Array
«
Respuesta #3 en:
Jueves 14 de Febrero de 2008, 21:42 »
0
significa lo mismo. Como lo he puesto yo es mas corto.
Itimag.net
puertas
Nuevo Miembro
Mensajes: 8
Re: Mostrar Array
«
Respuesta #4 en:
Viernes 15 de Febrero de 2008, 13:22 »
0
Pero si declaro num, como una variable del tipo números y luego le digo que type num, me da un error, diciendome que se esperaba una variable del tipo string, con lo que estamos en las mismas, no me mostrara el array de numeros naturales, que yo tengo. Concretamente este array lo relleno con unos numeros que pido y que el objetivo de la primera parte del programa es ordenar los números de mayor a menor
muchas gracias, aunque aun no he conseguido el objetivo final, estoy aprendiendo la lógica de la programación, que es algo que me viene muy bien
Itimag
Nuevo Miembro
Mensajes: 14
Re: Mostrar Array
«
Respuesta #5 en:
Viernes 15 de Febrero de 2008, 14:00 »
0
para visualizar un array de numeros, debes declarar num como un array de integers y usar el paquete ada.integer_text_io en vez del text_io.
Código: Text
with Ada.Integer_Text_Io; use Ada.Integer_Text_Io;
procedure visu_array is
type numeros is array(1..10) of integer;
num:constant numeros:=(0,1,2,3,4,5,6,7,8,9); -- Esto son numeros interpretados como integers.
begin
-- Para visualizarlos, haremos un simple for.
For I in 1..10 loop
put(num(I),2); -- El ( ,2) es para disminuir los espacios que deja en la visualización.
end loop;
end visu_array;
Debes diferenciar un número interpretado como carácter (va con comillas) o un numero interpretado como integer( va sin comillas).
Cuando pidas que te indroduzcan los numeros, debes obtener numeros en vez de caracteres. Si los obtienes como carácteres deberás hacer una función que te devuelva al programa principal ese carácter como integer. Esto lo puedes hacer con 1 array de caracteres; buscas de forma secuencial el carácter y una vez encontrado, retornas el índice del array, el cual corresponde con el carácter pero en numero.
Espero haberte servido de ayuda. Un saludo.
Itimag.net
puertas
Nuevo Miembro
Mensajes: 8
Re: Mostrar Array
«
Respuesta #6 en:
Lunes 18 de Febrero de 2008, 09:19 »
0
Muy buenas, si hago lo que me comentas, me dice que num no está definido y la verdad que no entiendo la relacción entre num y el array que quiero mostrar, porque yo tengo un array de enteros, no de caracteres y no termino de entender, como paso de un array de enteros a un string, o como paso cada elemento del array, a caracter y la manera de mostrarlos con un put, sin tener que escribirlo 10 veces y escribirlo solo una vez, porque si en vez de un array de 10 números, tuviese un array de 10000 números, la cosa sería imposible.
lo que yo busco, es la manera de mostrar un array, osea los numeros enteros que forman el array.
Gracias por la molestia
Itimag
Nuevo Miembro
Mensajes: 14
Re: Mostrar Array
«
Respuesta #7 en:
Lunes 18 de Febrero de 2008, 13:47 »
0
Existen dos paquetes que incluyen el put para visualizar cosas:
El ada.text_io (el que creo que estas usando) y el ada.integer_text_io (el que debes usar). La principal diferencia entre estos 2 reside en que el primero se utiliza para visualizar en pantalla algún carácter mientras que el segundo se utiliza para visualizar algún numero.
Esto significa que para visualizar un array de numeros, no tienes porqué pasarlos a caracter y bastará un simple for para visualzar todo el array.
La estructura de un for (significa "para") es la siguiente:
Código: Text
for I in 1..max loop
instrucciones;
end loop;
I es una variable (podemos darle la letra que queramos) que únicamente va a ser utilizable dentro del bucle que forma el for y esta iniciada por el valor 1 tal y como indica el rango [1..max]. La variable I se irá autoincrementntando de 1 en 1 hasta llegar al valor que indica la variable tipo integer llamada "max" o bien la podemos substituir por el valor que queramos. Ejemplo:
Código: Text
for I in 1..100 loop
Bien, pasemos ahora a la estructura del array. Como debes saber un array es como una tabla en la que existen un numero determinado de posiciones libres para almacenar un carácter, numero, registro, etc. Veamos un ejemplo de un array definido como lo siguiente:
Código: Text
type numeros is array(1..9) of integer;
num: constant numeros:=(1,1,1,1,1,1,1,1,1);
Aquí una foto gráfica de esta estructura que acabamos de declarar:
http ://itimag.net/usr/Dibujo.GIF
(ver imagen adjunta o la de la url que he puesto de mala manera ya que no me deja poner imagenes
.
El numero indicado abajo de la imagen indica la posición del array. Mientras que los 1 que hay dentro de la tabla es el contenido de la variable num declarada como variable de tipo numeros, el cual es un array de 1..9 de enteros.
Pues bien, ahora, para visualizar este array de numeros, debemos hacer un for que empezará por la posición uno hasta la 9. De esta forma recorreremos todo el array.
Ya sabemos como vamos a recorrer todas las posiciones del array, ahora nos queda visualizar el contenido de cada una de ellas. Esto significa que en cada iteración del bucle, haremos un put de lo que hay en la posición del array que nos esta indicando la variable I del for.
Por lo tanto, el bucle resultante nos queda así:
Código: Text
for I in 1..9 loop
put(num(I)); -- Para visualizarlo usamos el package ada.integer_text_io
end loop;
Ya, para acabar, el programa resultante es el siguiente:
Código: Text
with Ada.Integer_Text_Io; use Ada.Integer_Text_Io;
procedure visu_array is
type numeros is array(1..9) of integer;
num: constant numeros:=(1,1,1,1,1,1,1,1,1);
begin
For I in 1..9 loop
put(num(I));
end loop;
end visu_array;
Este programa dará como resultado 1 1 1 1 1 1 1 1 1.
Creo que con esta explicación te habrá quedado claro. Un saludo.
El mensaje contiene
1 archivo adjunto
. Debes
ingresar
o
registrarte
para poder verlo y descargarlo.
Itimag.net
puertas
Nuevo Miembro
Mensajes: 8
Re: Mostrar Array
«
Respuesta #8 en:
Miércoles 20 de Febrero de 2008, 14:27 »
0
y si tuvieras un arra de 1000 numeros, no creo que se haga asi, creo que hay que pasarlos a strings, con un INTEGER'VALUE, pero no se exactamente como se hace
Itimag
Nuevo Miembro
Mensajes: 14
Re: Mostrar Array
«
Respuesta #9 en:
Miércoles 20 de Febrero de 2008, 22:20 »
0
puedes hacerlo de 1000 o incluso hasta el integer'last, que es el valor positivo más alto que permite utilizar ada.
Itimag.net
puertas
Nuevo Miembro
Mensajes: 8
Re: Mostrar Array
«
Respuesta #10 en:
Viernes 22 de Febrero de 2008, 12:01 »
0
la forma correcta es la siguiente, lo pongo por si hay algún lechón como yo que lo quiera saber
El modo de mostrar un array esn el siguiente:
for N in NUM_RANGO'RANGE loop
TEXT_IO:PUT (NATURAL'IMAGE(NUM(N))
end loop;
gracias por la ayuda
NUM_RANGO'RANGE = es el rango con el cual definimos el array
Imprimir
Páginas: [
1
]
« anterior
próximo »
SoloCodigo
»
Foros
»
Programación General
»
Otros Lenguajes de Programación
»
ADA
»
Mostrar Array