Red de conocimiento informático - Computadora portátil - delphi un algoritmo

delphi un algoritmo

//Nota: el conjunto de datos representa la recopilación de datos que desea operar

//caché es la suma de los valores que desea restar del registro

procedimiento doSubtraction();

var

caché: entero; recValue: entero;

comenzar

caché := 50;

//Mueve el registro de datos al primero

dataset.First;

//Comienza el bucle hasta el final del registro

repetir

//Salir si el número de registros del conjunto de datos es 0, o la suma de los valores a restar se ha agotado

si (conjunto de datos .RecordCount = 0) o (cache = 0) luego romper;

recValue:= dataset.FieldByName('record').AsInteger //Obtener datos en la colección de datos

// Realizar condicionalmente la operación de resta. Este es el núcleo de este problema

if recValue gt; cache then

comenzar

{ Si el valor del registro actual es mayor. que la suma de los valores a restar, luego déjelo restar. El valor a restar es 0

y el valor registrado actual se usa para restar la suma de los valores a restar

}

recValue: = recValue - caché; caché: = 0;

fin

más

if recvalue = cache entonces

comenzar

{ Este paso es general. Puede fusionarse con el paso anterior/siguiente, pero por el bien de un buen estilo de programación, debe conservarse

Si el valor del registro actual es igual a la suma de los valores a restar, establezca los valores de ambos lados en 0}

cache := 0 recValue :; = 0;

end

else

start

{ Si el registro actual Si el valor es menor que la suma de los valores ​​a restar, el valor actual es 0

Y use la suma de los valores a restar para restar el valor del registro actual}

caché: = caché - recValue ; recValue: = 0;

end;

//Refleja todos los cambios en la base de datos

dataset.Edit; dataset.FieldByName('record').AsInteger:= recValue;

dataset.Post;

dataset.Next; //Cliché. , "morirá (bucle) dentro"

hasta que dataset.eof; //Determine si el registro se ha movido al final

end;