program StudentTask;
type
stud = record
pr: string [ 15 ] ;
im: string [ 10 ] ;
d: integer ;
m: integer ;
r: integer ;
rv: integer ;
nk: integer ;
ng: string [ 10 ] ;
ocinLP: array [ 1 .. 3 , 1 .. 5 ] of integer ;
ser: real ;
end ;
var
FL: array [ 1 .. 50 ] of stud;
N, i, s, p: integer ;
sum: real ;
serGR: real ;
count: integer ;
ch: char ;
begin
serGR : = 0 ;
N : = 0 ;
ch : = 'y' ;
writeln ( 'Please enter students data:' ) ;
while ( ch = 'y' ) or ( ch = 'Y' ) do
begin
N : = N + 1 ;
writeln ( 'Enter ' , N, '. student:' ) ;
readln ( FL[ N] . pr ) ;
readln ( FL[ N] . im ) ;
readln ( FL[ N] . d , FL[ N] . m , FL[ N] . r , FL[ N] . rv , FL[ N] . nk ) ;
readln ( FL[ N] . ng ) ;
writeln ( 'Enter 3 semesters of 5 marks:' ) ;
for s : = 1 to 3 do
begin
for p : = 1 to 5 do
begin
read ( FL[ N] . ocinLP [ s, p] ) ;
end ;
readln ;
end ;
readln ( ch) ;
end ;
for i : = 1 to N do
begin
sum : = 0 ;
for p : = 1 to 5 do
begin
sum : = sum + FL[ i] . ocinLP [ 3 , p] ;
end ;
FL[ i] . ser : = sum / 5.0 ;
serGR : = serGR + FL[ i] . ser ;
end ;
if N > 0 then
serGR : = serGR / N
else
serGR : = 0 ;
writeln ;
writeln ( 'Group average for last session = ' , serGR: 0 : 2 ) ;
writeln ( 'Results list (students with average lower than group average):' ) ;
count : = 0 ;
for i : = 1 to N do
begin
if FL[ i] . ser < serGR then
begin
count : = count + 1 ;
writeln ( count, '. ' , FL[ i] . pr , ' ' , FL[ i] . im ) ;
writeln ( ' Birth date: ' , FL[ i] . d , '.' , FL[ i] . m , '.' , FL[ i] . r ) ;
writeln ( ' Entry year: ' , FL[ i] . rv , ', Course: ' , FL[ i] . nk , ', Group: ' , FL[ i] . ng ) ;
writeln ( ' Marks for all semesters:' ) ;
for s : = 1 to 3 do
begin
write ( ' Semester ' , s, ': ' ) ;
for p : = 1 to 5 do
begin
write ( FL[ i] . ocinLP [ s, p] , ' ' ) ;
end ;
writeln ;
end ;
writeln ( ' Average for last session: ' , FL[ i] . ser : 0 : 2 ) ;
writeln ;
end ;
end ;
if count = 0 then
writeln ( 'No students with average mark lower than group average.' ) ;
end .
cHJvZ3JhbSBTdHVkZW50VGFzazsKIAp0eXBlCiAgc3R1ZCA9IHJlY29yZAogICAgcHI6IHN0cmluZ1sxNV07ICAgICAgICAgICAgICAKICAgIGltOiBzdHJpbmdbMTBdOyAgICAgICAgICAgICAgCiAgICBkOiBpbnRlZ2VyOyAgICAgICAgICAgICAgICAgIAogICAgbTogaW50ZWdlcjsgICAgICAgICAgICAgICAgICAKICAgIHI6IGludGVnZXI7ICAgICAgICAgICAgICAgICAgCiAgICBydjogaW50ZWdlcjsgICAgICAgICAgICAgICAgIAogICAgbms6IGludGVnZXI7ICAgICAgICAgICAgICAgICAKICAgIG5nOiBzdHJpbmdbMTBdOyAgICAgICAgICAgICAKICAgIG9jaW5MUDogYXJyYXlbMS4uMywgMS4uNV0gb2YgaW50ZWdlcjsKICAgIHNlcjogcmVhbDsgICAgICAgICAgICAgICAgICAgCiAgZW5kOwogCnZhcgogIEZMOiBhcnJheVsxLi41MF0gb2Ygc3R1ZDsKICBOLCBpLCBzLCBwOiBpbnRlZ2VyOwogIHN1bTogcmVhbDsKICBzZXJHUjogcmVhbDsKICBjb3VudDogaW50ZWdlcjsKICBjaDogY2hhcjsKIApiZWdpbgogIHNlckdSIDo9IDA7CiAgTiA6PSAwOwogIGNoIDo9ICd5JzsKIAogIHdyaXRlbG4oJ1BsZWFzZSBlbnRlciBzdHVkZW50cyBkYXRhOicpOwogCiAgd2hpbGUgKGNoID0gJ3knKSBvciAoY2ggPSAnWScpIGRvCiAgYmVnaW4KICAgIE4gOj0gTiArIDE7CiAgICB3cml0ZWxuKCdFbnRlciAnLCBOLCAnLiBzdHVkZW50OicpOwogCiAgICByZWFkbG4oRkxbTl0ucHIpOwogICAgcmVhZGxuKEZMW05dLmltKTsKICAgIHJlYWRsbihGTFtOXS5kLCBGTFtOXS5tLCBGTFtOXS5yLCBGTFtOXS5ydiwgRkxbTl0ubmspOwogICAgcmVhZGxuKEZMW05dLm5nKTsKIAogICAgd3JpdGVsbignRW50ZXIgMyBzZW1lc3RlcnMgb2YgNSBtYXJrczonKTsKICAgIGZvciBzIDo9IDEgdG8gMyBkbwogICAgYmVnaW4KICAgICAgZm9yIHAgOj0gMSB0byA1IGRvCiAgICAgIGJlZ2luCiAgICAgICAgcmVhZChGTFtOXS5vY2luTFBbcywgcF0pOwogICAgICBlbmQ7CiAgICAgIHJlYWRsbjsKICAgIGVuZDsKIAogICAgcmVhZGxuKGNoKTsKICBlbmQ7CiAKICBmb3IgaSA6PSAxIHRvIE4gZG8KICBiZWdpbgogICAgc3VtIDo9IDA7CiAgICBmb3IgcCA6PSAxIHRvIDUgZG8KICAgIGJlZ2luCiAgICAgIHN1bSA6PSBzdW0gKyBGTFtpXS5vY2luTFBbMywgcF07CiAgICBlbmQ7CiAgICBGTFtpXS5zZXIgOj0gc3VtIC8gNS4wOwogICAgc2VyR1IgOj0gc2VyR1IgKyBGTFtpXS5zZXI7CiAgZW5kOwogCiAgaWYgTiA+IDAgdGhlbgogICAgc2VyR1IgOj0gc2VyR1IgLyBOCiAgZWxzZQogICAgc2VyR1IgOj0gMDsKIAogIHdyaXRlbG47CiAgd3JpdGVsbignR3JvdXAgYXZlcmFnZSBmb3IgbGFzdCBzZXNzaW9uID0gJywgc2VyR1I6MDoyKTsKICB3cml0ZWxuKCdSZXN1bHRzIGxpc3QgKHN0dWRlbnRzIHdpdGggYXZlcmFnZSBsb3dlciB0aGFuIGdyb3VwIGF2ZXJhZ2UpOicpOwoKICBjb3VudCA6PSAwOwogIGZvciBpIDo9IDEgdG8gTiBkbwogIGJlZ2luCiAgICBpZiBGTFtpXS5zZXIgPCBzZXJHUiB0aGVuCiAgICBiZWdpbgogICAgICBjb3VudCA6PSBjb3VudCArIDE7CiAgICAgIHdyaXRlbG4oY291bnQsICcuICcsIEZMW2ldLnByLCAnICcsIEZMW2ldLmltKTsKICAgICAgd3JpdGVsbignICAgQmlydGggZGF0ZTogJywgRkxbaV0uZCwgJy4nLCBGTFtpXS5tLCAnLicsIEZMW2ldLnIpOwogICAgICB3cml0ZWxuKCcgICBFbnRyeSB5ZWFyOiAnLCBGTFtpXS5ydiwgJywgQ291cnNlOiAnLCBGTFtpXS5uaywgJywgR3JvdXA6ICcsIEZMW2ldLm5nKTsKIAogICAgICB3cml0ZWxuKCcgICBNYXJrcyBmb3IgYWxsIHNlbWVzdGVyczonKTsKICAgICAgZm9yIHMgOj0gMSB0byAzIGRvCiAgICAgIGJlZ2luCiAgICAgICAgd3JpdGUoJyAgICAgU2VtZXN0ZXIgJywgcywgJzogJyk7CiAgICAgICAgZm9yIHAgOj0gMSB0byA1IGRvCiAgICAgICAgYmVnaW4KICAgICAgICAgIHdyaXRlKEZMW2ldLm9jaW5MUFtzLCBwXSwgJyAnKTsKICAgICAgICBlbmQ7CiAgICAgICAgd3JpdGVsbjsgCiAgICAgIGVuZDsKICAgICAgd3JpdGVsbignICAgQXZlcmFnZSBmb3IgbGFzdCBzZXNzaW9uOiAnLCBGTFtpXS5zZXI6MDoyKTsKICAgICAgd3JpdGVsbjsKICAgIGVuZDsKICBlbmQ7CiAKICBpZiBjb3VudCA9IDAgdGhlbgogICAgd3JpdGVsbignTm8gc3R1ZGVudHMgd2l0aCBhdmVyYWdlIG1hcmsgbG93ZXIgdGhhbiBncm91cCBhdmVyYWdlLicpOwogCmVuZC4=