PDA

Ver la Versión Completa : Código para una tabla


Wendolyn
28-11-2015, 22:13:55
Hola a todos! :)

Resulta que sé cero de programación y para una tarea de la Uni necesito un código para delphi 7
que me permita asignar números random a una tabla de 10x10 y después sumar todas las filas y todas las columnas.

No tengo idea de cómo empezar...
Alguien que quiera hacer la buena obra del día??

Gracias :D

Casimiro Notevi
28-11-2015, 22:18:52
http://www.delphibasics.co.uk/RTL.asp?Name=Random

Al González
28-11-2015, 22:53:36
Off topic:

Si no es indiscreción, ¿qué carrera estudias, en qué grado vas y de qué asignatura es ese trabajo que te han encargado? ¿Y por qué consideras que, sin saber nada de programación, se te ha pedido elaborar ese programa?

Wendolyn
28-11-2015, 23:01:50
Claro!!

Estudio biotecnología, llevamos "computación"
Y en teoría el profesor nos dio las bases para esa tarea, pero :confused:

Ya me ayudas? :D

Al González
28-11-2015, 23:55:36
¡Claro! Empieza por crear en Delphi un programa así (texto del archivo principal del proyecto):
Program Tarea;

Var
Tabla... // <-- Aquí declara una matriz (en Delphi se conoce como array) de 10 filas por 10 columnas. Tabla será el contenedor de los 100 números.

Begin
End.
Avisa cuando tengas eso listo para así continuar, o bien pregunta sin pena si surgen nuevas dudas.

Un saludo.

Wendolyn
29-11-2015, 03:07:56
var
icol, irow: integer;

begin
for irow := 1 to 10 do
for icol:= 1 to 10 do
begin
StringGrid1.Cells [icol,irow]:= IntToStr(Random(100)+1);

end;


end;

end.



Hice esto y al parecer funcionó... peeero ahora necesito que se sumen las filas y las columnas :(

AgustinOrtu
29-11-2015, 03:27:50
Es buena idea utilizar los controles visuales solamente para lo que fueron concebidos, es decir, presentar datos.

El string grid podrías obviarlo de momento, lo que realmente necesitas hacer es lo que te dijo al, crear una estructura que contenga los números y después si es necesario sumarlos

De esta forma podrías presentar los datos en cualquier lado, por ejemplo, por consola, en un string grid, en un memo, etc

Wendolyn
29-11-2015, 03:31:19
Y en español???

O sea que no los puedo sumar como los hice?

:eek:v\||/

AgustinOrtu
29-11-2015, 06:03:47
Esa fue la respuesta en español, la respuesta en Delphi (y que creo que es la que querias) seria algo asi:


program Tarea;

{$APPTYPE CONSOLE}

uses
SysUtils;

type
TRango = 1..10;
TTabla = array [TRango, TRango] of Integer;

var
Tabla: TTabla;

procedure Llenar;
var
I, J: Integer;
begin
Writeln('Llenando tabla');
Randomize;
for I := 1 to 10 do
for J := 1 to 10 do
Tabla[I, J] := Random(100);
end;

procedure Imprimir;
var
I, J: Integer;
begin
Writeln('Imprimiendo tabla');
Writeln;

for I := 1 to 10 do
begin
Writeln('Fila ' + IntToStr(I));
for J := 1 to 10 do
Writeln(Format('[%d, %d] = %d', [I, J, Tabla[I, J]]));

Writeln;
end;
end;

function Sumar: Integer;
var
I, J: Integer;
begin
Result := 0;
for I := 1 to 10 do
for J := 1 to 10 do
Result := Result + Tabla[I, J];
end;

begin
try
Llenar;
Imprimir;
Writeln('La suma de todas las filas y columnas es ' + IntToStr(Sumar));

Readln;
except
on E: Exception do
Writeln(E.ClassName, ': ', E.Message);
end;
end.

Wendolyn
29-11-2015, 07:16:42
Ay qué amable!!
Muchas gracias.
Y sí, al parecer quise decir Idioma Delphi :/

Casimiro Notevi
29-11-2015, 10:13:48
Copia->Pega y cuando te haga falta otra vez... estarás toda la vida pidiendo.
Que sepas que si aprendes a programar, aunque sea básicamente, tendrás una perspectiva muy distinta de las cosas, y hablo de biotecnología, donde he colaborado con algunos maestros del tema. Para ellos, no saber programar era un handicap (desventaja) enorme, se les cerraba muchas puertas y posibilidades de hacer las cosas. Y no hablo económicamente, sino de la forma de pensar y solucionar los problemas que se le planteaban.

Al González
29-11-2015, 20:23:50
Ya te habías animado a intentarlo por ti misma, lo cual hoy es raro pero admirable en aquellos estudiantes que piden ayuda. Pero después de dar el primer paso de nueve más que ibas a dar con ayuda de todos nosotros, un generoso compañero de manera bien intencionada te dio la solución completa.

El problema es que, dentro de unos años, cuando estés frente a un caso difícil y real de tu trabajo, sea de biotecnólogo o de conserje (ambas ocupaciones igual de dignas), muy probablemente no habrá quien te haga el 90% de tu trabajo como ocurrió esta vez. Y entonces añorarás haberte acostumbrado a esforzarte un poco más por las cosas cuando eras una muchacha, para que la vida adulta te fuera más fácil y disfrutable.

Aún estás a tiempo. Evita diluirte en el caldo de copy-pasters. ¡Desmárcate! :)