Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 03-09-2014
vbeta vbeta is offline
Registrado
NULL
 
Registrado: sep 2014
Posts: 4
Poder: 0
vbeta Va por buen camino
Red face alguien se anima a ayudarme?

hola y muy buenas a todos soy nuevo en el forro, y si estoy faltando a una regla lo siento (me lei parte de las reglas)
bueno el problema que tengo es en una con matrices la pregunta resumida va haci.


leer n notas de barios alumnos e introducir en una matriz donde la primer columna sea el nombre y las siguientes sus notas
a)sumarlas y calcular el promedio de cada alumno y colocarla en otra matriz
b)mostrar la mayor y menor nota mostrando el nombre y la nota del alumno en showmessage

si no es molestia pido el código para introducir a delphi lo que yo hice no me termina de hacer lo que dice las preguntas


seguramente para algunos sera tonta por que les es fácil, pero yo acabo de avanzar matrices y algo e entendido y me urge xq es lo ultimo de mi practico
seguramente muchos pasaran de mi (xq soy tonto) pero a ese alguien que me ayude le doy muchas gracias x su tiempo
Responder Con Cita
  #2  
Antiguo 03-09-2014
Avatar de duilioisola
[duilioisola] duilioisola is offline
Miembro Premium
 
Registrado: ago 2007
Ubicación: Barcelona, España
Posts: 1.734
Poder: 20
duilioisola Es un diamante en brutoduilioisola Es un diamante en brutoduilioisola Es un diamante en bruto
Unhappy

Lloran sangre mis ojos al leer tu mensaje :
"la pregunta resumida va haci" --> "va así"
"de barios alumnos" --> "de varios alumnos"
Responder Con Cita
  #3  
Antiguo 03-09-2014
Avatar de duilioisola
[duilioisola] duilioisola is offline
Miembro Premium
 
Registrado: ago 2007
Ubicación: Barcelona, España
Posts: 1.734
Poder: 20
duilioisola Es un diamante en brutoduilioisola Es un diamante en brutoduilioisola Es un diamante en bruto
En cuanto a la pregunta que haces:
Muestra el código que has hecho hasta ahora y dinos qué parte es la que no hace lo que quieres.

En cuanto a matrices:
En Pascal, tienen que ser de un mismo tipo, por lo que mezclar caracteres (nombre) con números (notas) no es posible en una sola.
Una cosa que puedes hacer es una matriz de 2 x n elementos de tipo string y luego transformar las notas de número a string para guardarlas y de string a número para calcularlas.

Otra opción es tener dos matrices de n elementos. Una de tipo string para los nombre y otra de tipo numérico (double, por ejemplo) para las notas.
Esta última opción no es lo que te piden, pero es una forma práctica de solucionar el tema.

Buscar el menor/mayor, lo puedes hacer con un bucle FOR que recorra la matriz y guarde la posición del mayor/menor.
El promedio se soluciona de la misma forma. Recorres los elementos con un bucle FOR y vas acumulando los valores. Una vez tengas la suma, la divides por la cantidad de elementos y le presentas..
Responder Con Cita
  #4  
Antiguo 03-09-2014
vbeta vbeta is offline
Registrado
NULL
 
Registrado: sep 2014
Posts: 4
Poder: 0
vbeta Va por buen camino
Smile

Código Delphi [-]
var
  n,m,i,j,nota,apro,repro: Integer;
begin
  n:= StrToInt(txt1.Text);
  m:= StrToInt(txt2.Text);
  gr1.RowCount:= n;
  gr1.ColCount:= m;
  i:= 0;
  j:= 0;
  apro:= 0;
  repro:= 0;
  while (i < n) Do
  Begin
    notas[i,j]:= InputBox('Notas','Ingrese El Nombre','');
    gr1.cells[j,i]:= notas[i,j];
    i:= i+1;
  End;
  i:=0;
  j:=1;
  while (i < n) Do
  Begin
    nota:= StrToInt(InputBox('Notas','Ingrese La Nota',''));
    If ((nota>=0) And (nota<=10)) Then
    Begin
      matriz[i,j]:= nota;
      gr1.cells[j,i]:= IntToStr(matriz[i,j]);
    End
    Else
    Begin
      Showmessage('La nota es erronea');
      nota:= StrToInt(InputBox('Notas','Ingrese La Nota',''));
      notas[i,j]:= IntToStr(nota);
      gr1.cells[j,i]:= notas[i,j];
    End;
    i:= i+1;
    If (nota >= 5) Then
    Begin
      apro:= apro+1;
    End
    Else
    Begin
      repro:= repro+1;
    End;
  End;
  txta.Text:= IntToStr(apro);
  txtr.Text:= IntToStr(repro);

mi problema es que solo estoy llenando una columna y deja de pedirme las notas y lo que quiero es llenar la cantidad de columnas según yo decida cuantas columnas introducir (si c me entiende?)
perdón por lo de tus ojos espero que te mejores

Última edición por ecfisa fecha: 03-09-2014 a las 19:43:30. Razón: Etiquetas [delphi]
Responder Con Cita
  #5  
Antiguo 03-09-2014
Avatar de juanelo
juanelo juanelo is offline
Miembro
 
Registrado: sep 2007
Posts: 1.083
Poder: 18
juanelo Va por buen camino
Cita:
Empezado por vbeta Ver Mensaje
perdón por lo de tus ojos espero que te mejores
... me he partido de la risa ...
__________________
Ya tengo Firma!
Responder Con Cita
  #6  
Antiguo 03-09-2014
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 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, bienvenido a Club Delphi

Una consulta, en la grilla que creo es un StringGrid, ¿ Las columnas representan los nombres de alumnos y las filas a las notas, o es al revés ?



(fuera de tópico)
Cita:
Empezado por vbeta Ver Mensaje
perdón por lo de tus ojos espero que te mejores
Eso ha sido muy considerado de tu parte...

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #7  
Antiguo 03-09-2014
vbeta vbeta is offline
Registrado
NULL
 
Registrado: sep 2014
Posts: 4
Poder: 0
vbeta Va por buen camino
Question

si eso mismo es un stringGrid e ingreso la dimensión de la matriz y la primer columna es de los nombres y las filas es de notas pero solo consigo 1 nota y termina el bucle ...como se ve en mi imagen
Imágenes Adjuntas
Tipo de Archivo: jpg Sin título.jpg (8,3 KB, 18 visitas)
Responder Con Cita
  #8  
Antiguo 03-09-2014
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.043
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Bienvenido a clubdelphi, ¿ya leiste nuestra guía de estilo?, gracias por tu colaboración
Responder Con Cita
  #9  
Antiguo 03-09-2014
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 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
  #10  
Antiguo 03-09-2014
vbeta vbeta is offline
Registrado
NULL
 
Registrado: sep 2014
Posts: 4
Poder: 0
vbeta Va por buen camino
Smile

jaja muchas gracias
estaba apunto de salir y vi tu respuesta gracias por la molestia tu respuesta me ayuda bastante
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Alguien podra ayudarme con el componente Kazip? pablopessoa Varios 1 08-04-2009 23:18:08
quien puede ayudarme con una consulta narcisoplayero SQL 2 28-05-2007 16:43:30
Error en QReport - Alguien puede ayudarme? tehuacanero Impresión 4 21-09-2005 10:14:03
Problema!!! ayudarme please!! novatillo.. jaajja kye_z SQL 10 22-10-2004 15:45:29
Anima...te hgiacobone Gráficos 6 29-04-2004 19:12:15


La franja horaria es GMT +2. Ahora son las 20:18:15.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi