Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Coloboración Paypal con ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #3  
Antiguo 15-11-2015
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 38
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

Algunos autores hablaban de segmentación de datos en alusión a los cortes de control, tal vez se refiera a eso...

El corte de control es un modo jerárquico de mostrar la información, los registros deberán estar agrupados por uno o mas campos que a su vez podrían estar ordenados. Tendras tantos niveles como cortes de control establezcas, todos ellos contenidos dentro de un ciclo general que recorre la totalidad de los registros.
Si estuvieras trabajando sobre archivos, habría sido necesaria la lectura previa y controlar el fin de archivo en las declaraciones while.

Un ejemplo simple de corte de control de un nivel:
Código Delphi [-]
program Project2; {$APPTYPE CONSOLE}

uses
  SysUtils;

const
  MAXPERS = 11;

type
  TPersona = packed record
    Nomb : string[30];
    Edad : Integer;
    Ocup : string[20];
  end;
  TPersonaArray = array[1..MAXPERS] of TPersona;

var
  Persona: TPersonaArray = (
    (Nomb : 'Ana'    ; Edad : 32; Ocup : 'Administrativo'),
    (Nomb : 'Javier' ; Edad : 27; Ocup : 'Administrativo'),
    (Nomb : 'Juan'   ; Edad : 40; Ocup : 'Arquitecto'),
    (Nomb : 'Pedro'  ; Edad : 30; Ocup : 'Arquitecto'),
    (Nomb : 'Ramon'  ; Edad : 22; Ocup : 'Arquitecto'),
    (Nomb : 'Marcos' ; Edad : 30; Ocup : 'Carpintero'),
    (Nomb : 'Maria'  ; Edad : 45; Ocup : 'Carpintero'),
    (Nomb : 'Sonia'  ; Edad : 44; Ocup : 'Carpintero'),
    (Nomb : 'Andres' ; Edad : 32; Ocup : 'Plomero'),
    (Nomb : 'Rene'   ; Edad : 28; Ocup : 'Plomero'),
    (Nomb : 'Saul'   ; Edad : 36; Ocup : 'Pintor')
    );

  Cantidad, i : Integer;
  CorteMin, CorteMax : TPersona;
  Promedio: Double;
begin
  i := 1;
  // ciclo principal
  while i <= MAXPERS do
  begin
    // inicializacion
    Cantidad := 0;
    Promedio := 0;
    CorteMin := Persona[i];
    CorteMax := Persona[i];

    // corte de control por ocupacion
    while CorteMin.Ocup = Persona[i].Ocup do
    begin
      if Persona[i].Edad < CorteMin.Edad then CorteMin := Persona[i];
      if Persona[i].Edad > CorteMax.Edad then CorteMax := Persona[i];
      Inc(Cantidad);
      Promedio := Promedio + Persona[i].Edad;
      Inc(i);
    end;

    // resultados
    Writeln(CorteMin.Ocup, ': ', Cantidad);
    Writeln(CorteMin.Ocup, ' mas joven, ', CorteMin.Nomb, ' : ', CorteMin.Edad);
    Writeln(CorteMax.Ocup, ' mas viejo, ', CorteMax.Nomb, ' : ', CorteMax.Edad);
    Writeln('Edad promedio: ',Promedio/Cantidad:8:2);
    Writeln;
  end;
  readln;
end.
Si esto no es sobre lo que consultas, como bien te aconsejó mamcx, acompaña la pregunta con una breve descripción del problema (o al menos el resultado que esperas obtener a partir de determinados datos).

Saludos
__________________
Daniel Didriksen

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

Última edición por ecfisa fecha: 17-11-2015 a las 11:51:27. Razón: sintáxis
Responder Con Cita
 


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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
Dada una lista de números enteros, encontrar la sublista ordenada mas grande gonza22salta Varios 6 16-03-2015 13:40:02
Mostrar Union ordenada por separado y por colores... CHECHE81 Varios 3 07-12-2011 02:06:10
Búsqueda de archivos ordenada por fecha Faust Varios 10 26-07-2010 16:43:21
consulta agrupada y ordenada ZLEON SQL 4 19-11-2008 15:19:11
Consulta de union ordenada Eolo SQL 2 05-07-2004 15:37:42


La franja horaria es GMT +2. Ahora son las 01:04:37.


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