Search code examples
progress-4glopenedge4gl

is it possible to use MaximumFuntion within an Entry Funciton in Progress 4gl


I am new to progress and I am trying to figure out how to get this working. My task is to Get a list of integer values from user as semi colon separated and message the highest and lowest value on that list. Till now I have used an entry function to help me get just the integers entered by the user one after another. like so

repeat I = 1 to  totalEntries:
    m = entry (I, Userinput, ";").
    display m. 
end.

After this I would like to find out the maximum value of all the entries. how can I do this since maximum function accepts more than one value for comparison.


Solution

  • There is no built in function to give a maximum or minimum number from given list of numbers. You need to write your own logic as in most of the programming languages. Here is an example:

    DEF VAR i     AS INT.
    DEF VAR nlist AS CHAR INIT "1;2;7;3;6;9".
    
    DEF VAR imin  AS INT.
    DEF VAR imax  AS INT.
    
    imin = INTEGER(ENTRY (1, nlist, ";")).
    imax = INTEGER(ENTRY (1, nlist, ";")).
    
    REPEAT i = 2 TO  NUM-ENTRIES(nlist, ";"):
    
        IF INTEGER(ENTRY(i, nlist, ";")) > imax THEN
            imax = INTEGER(ENTRY(i, nlist, ";")).
    
        IF INTEGER(ENTRY(i, nlist, ";")) < imin THEN
            imin = INTEGER(ENTRY(i, nlist, ";")).
    
    END.
    
    MESSAGE imax.
    MESSAGE imin.