Top rank per group: Difference between revisions

Added Easylang
(PascalABC.NET)
(Added Easylang)
 
Line 1,602:
E39876 $27800 Claire Buckman
E27002 $19250 David Motsinger</pre>
 
=={{header|EasyLang}}==
<syntaxhighlight>
global na$[] id$[] sal[] dep$[] n .
#
proc read . .
s$ = input
repeat
s$ = input
until s$ = ""
a$[] = strsplit s$ ","
na$[] &= a$[1]
id$[] &= a$[2]
sal[] &= number a$[3]
dep$[] &= a$[4]
.
n = len na$[]
.
read
#
proc sort . .
for i = 1 to n - 1
for j = i + 1 to n
h = strcmp dep$[i] dep$[j]
if h > 0 or h = 0 and sal[i] < sal[j]
swap na$[i] na$[j]
swap id$[i] id$[j]
swap sal[i] sal[j]
swap dep$[i] dep$[j]
.
.
.
.
sort
#
for i to n
if i > 1 and dep$[i] <> dep$[i - 1]
cnt = 0
print ""
.
if cnt < 2
print dep$[i] & " " & sal[i] & " " & na$[i]
cnt += 1
.
.
#
input_data
Employee Name,Employee ID,Salary,Department
Tyler Bennett,E10297,32000,D101
John Rappl,E21437,47000,D050
George Woltman,E00127,53500,D101
Adam Smith,E63535,18000,D202
Claire Buckman,E39876,27800,D202
David McClellan,E04242,41500,D101
Rich Holcomb,E01234,49500,D202
Nathan Adams,E41298,21900,D050
Richard Potter,E43128,15900,D101
David Motsinger,E27002,19250,D202
Tim Sampair,E03033,27000,D101
Kim Arlich,E10001,57000,D190
Timothy Grove,E16398,29900,D190
</syntaxhighlight>
{{out}}
<pre>
D050 47000 John Rappl
D050 21900 Nathan Adams
 
D101 53500 George Woltman
D101 41500 David McClellan
 
D190 57000 Kim Arlich
D190 29900 Timothy Grove
 
D202 49500 Rich Holcomb
D202 27800 Claire Buckman
</pre>
 
=={{header|EchoLisp}}==
2,083

edits