Declarar array con varios valores en cada índice.
Publicado por Er_jaunker (2 intervenciones) el 07/09/2012 21:04:00
Holaa.
Después de hacer este programa me ha surgido una duda.
Como se ve, he hecho una tabla vacia y he llenado 2 posiciones de la tabla.Y en cada posición hay dos tipos de datos, es decir, en la posición 1 de la tabla hay escrito una variable del tipo String y Otra del tipo Real.
Bien pues poniendo por ejemplo --TablaAlumnos[1].Nombre-- accedo al nombre que hay guardado en la primera posición de la tabla y si escribo --TablaAlumnos[2].Nota-- obtengo la nota de la segunda posición de la tabla.
Hasta aquí todo bien y la duda que tengo es la siguiente:
Si en vez de declarar una tabla vacía lo hago como constante, es decir:
Const
TablaAlumnos2: array [1..MAximoAlum] of Alumno
y quiero definir la tabla ya desde el principio y que en cada índice se tengan el dato de Nombre y Nota,¿cómo lo hago?
Ejemplo
TablaAlumnos2 : array [1..MAximoAlum] of Alumno = (pepito 4, jaimito 5)
esta tabla tiene dos indices pero si escribo eso en el programa me lo tomaria unicamente como la variable Nombre porque detectaria que es un String.
Tiene que ser algo así:
TablaAlumnos2 : array [1..MAximoAlum] of Alumno = ('pepito';4, 'jaimito'; 5);
En definitiva, lo que quiero es separar las diferentes variables en el mismo índice de la tabla pero no sé no doy con la forma, o quizás es que no se puede hacer.
Espero haberme explicado bien xD.
saludos.
Después de hacer este programa me ha surgido una duda.
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
39
40
41
42
43
44
45
Type Alumno = record
Nombre:string;
Nota:real;
end;
Var
TablaAlumnos : array [1..MAximoAlum] of Alumno;
Ident:Alumno;
i:integer;
Procedure RegistrarAlumno;
Begin
for i:=1 to 2 do
Begin
Writeln('Escribe el nombre del alumno: ');
readln(TablaAlumnos[i].Nombre);
Writeln('Escribe la nota del alumno: ');
readln(TablaAlumnos[i].Nota);
end
End;
Procedure ConsultarAlumno;
Begin
Writeln('Escribe el nombre del alumno para saber su nota');
read(Ident.Nombre);
for i:=1 to MaximoAlum do
Begin
If (TablaAlumnos[i].Nombre) = Ident.Nombre then
begin
Writeln(TablaAlumnos[i].Nota:1:2)
end
else;
end
end;
BEGIN
RegistrarAlumno;
ConsultarAlumno;
readln();
END.
Como se ve, he hecho una tabla vacia y he llenado 2 posiciones de la tabla.Y en cada posición hay dos tipos de datos, es decir, en la posición 1 de la tabla hay escrito una variable del tipo String y Otra del tipo Real.
Bien pues poniendo por ejemplo --TablaAlumnos[1].Nombre-- accedo al nombre que hay guardado en la primera posición de la tabla y si escribo --TablaAlumnos[2].Nota-- obtengo la nota de la segunda posición de la tabla.
Hasta aquí todo bien y la duda que tengo es la siguiente:
Si en vez de declarar una tabla vacía lo hago como constante, es decir:
Const
TablaAlumnos2: array [1..MAximoAlum] of Alumno
y quiero definir la tabla ya desde el principio y que en cada índice se tengan el dato de Nombre y Nota,¿cómo lo hago?
Ejemplo
TablaAlumnos2 : array [1..MAximoAlum] of Alumno = (pepito 4, jaimito 5)
esta tabla tiene dos indices pero si escribo eso en el programa me lo tomaria unicamente como la variable Nombre porque detectaria que es un String.
Tiene que ser algo así:
TablaAlumnos2 : array [1..MAximoAlum] of Alumno = ('pepito';4, 'jaimito'; 5);
En definitiva, lo que quiero es separar las diferentes variables en el mismo índice de la tabla pero no sé no doy con la forma, o quizás es que no se puede hacer.
Espero haberme explicado bien xD.
saludos.
Valora esta pregunta


0