program SortByString;
const
N = 7;
var
Arr : array[1..N] of string;
i, j : integer;
function ExtractName(s : string) : string;
var
p : integer;
begin
{ find last space }
p := Length(s);
while (p > 0) and (s[p] <> ' ') do
Dec(p);
ExtractName := Copy(s, 1, p - 1);
end;
procedure Swap(var a, b : string);
var
t : string;
begin
t := a;
a := b;
b := t;
end;
begin
Arr[1] := 'Python 4';
Arr[2] := 'C 9';
Arr[3] := 'C++ 5';
Arr[4] := 'C# 6';
Arr[5] := 'Java 1';
Arr[6] := 'PHP 7';
Arr[7] := 'Go 2';
{ Bubble sort by string part }
for i := 1 to N - 1 do
for j := i + 1 to N do
if ExtractName(Arr[i]) > ExtractName(Arr[j]) then
Swap(Arr[i], Arr[j]);
{ Print result }
for i := 1 to N do
writeln(Arr[i]);
end.
(*
run:
C 9
C# 6
C++ 5
Go 2
Java 1
PHP 7
Python 4
*)