Ver Mensaje Individual
  #9  
Antiguo 03-09-2014
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Reputación: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola vbeta.

Hice un ejemplo al vuelo a fin de que te pueda guiar un poco, traté de respetar las formas de tu código. Toma en cuenta que no realiza ningún tipo de verificación de los datos ingresados ni tiene decorado alguno. Y por supuesto, como todo código a las corridas, que no es la única ni la mejor manera de hacerlo.

Tampoco pasa los datos a otro arreglo bidimensional, que es sólo recorrer filas y columnas del StringGrid y copiar valores de celdas, dejo esa tarea (y las que resten) en tus manos
Código Delphi [-]
procedure TForm1.btnComenzarClick(Sender: TObject);
var
  c,f: Integer;
  apro, repro: Integer;
  nom: string;
  nta, max, min, sum: Double;
begin
  with StringGrid1 do
  begin
    FixedCols:= 0;
    FixedRows:= 1;
    ColCount:= FixedCols + StrToInt(EditNroNota.Text) +2; //+2 por nombre y promedio
    RowCount:= StrToInt(EditNroAlum.Text)+ 1; // +1 por los títulos
    // títulos
    Cells[0,0]:= 'Nombre';
    for c:= 1 to ColCount-1 do Cells[c, 0]:= 'Nota '+IntToStr(c);
    Cells[ColCount-1,0]:= 'Promedio';
    //carga
    min:= MaxInt;
    max:= 0;
    for f:= FixedRows to RowCount-1 do
    begin
      c:= 0;
      Cells[c,f]:= InputBox('Notas', 'Ingrese El Nombre','');
      while c < ColCount-2 do
      begin
        Inc(c);
        Cells[c, f]:= InputBox('Notas','Ingrese La Nota','');
        nta:= StrToFloat(Cells[c,f]);
        if nta < min then min:= nta;
        if nta > max then max:= nta
      end;
    end;
    // promedio en la última columna
    for f:= FixedRows to RowCount-1 do
    begin
      sum:= 0;
      for c:= FixedCols+1 to ColCount-2 do
        sum:= sum + StrToFloat(Cells[c,f]);
      Cells[ColCount-1, f]:= Format('%8.2f',[sum/(ColCount-2)]);
    end;
  end;
  // notas mínima y máxima en dos labels
  LabelMinNota.Caption:= Format('Nota máxima: %8.2f',[max]);
  LabelMaxNota.Caption:= Format('Nota mínima: %8.2f',[min]);
end;



Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 03-09-2014 a las 22:01:30.
Responder Con Cita