fork download
  1. program StudentTask;
  2.  
  3. type
  4. stud = record
  5. pr: string[15];
  6. im: string[10];
  7. d: integer;
  8. m: integer;
  9. r: integer;
  10. rv: integer;
  11. nk: integer;
  12. ng: string[10];
  13. ocinLP: array[1..3, 1..5] of integer;
  14. ser: real;
  15. end;
  16.  
  17. var
  18. FL: array[1..50] of stud;
  19. N, i, s, p: integer;
  20. sum: real;
  21. serGR: real;
  22. count: integer;
  23. ch: char;
  24.  
  25. begin
  26. serGR := 0;
  27. N := 0;
  28. ch := 'y';
  29.  
  30. writeln('Please enter students data:');
  31.  
  32. while (ch = 'y') or (ch = 'Y') do
  33. begin
  34. N := N + 1;
  35. writeln('Enter ', N, '. student:');
  36.  
  37. readln(FL[N].pr);
  38. readln(FL[N].im);
  39. readln(FL[N].d, FL[N].m, FL[N].r, FL[N].rv, FL[N].nk);
  40. readln(FL[N].ng);
  41.  
  42. writeln('Enter 3 semesters of 5 marks:');
  43. for s := 1 to 3 do
  44. begin
  45. for p := 1 to 5 do
  46. begin
  47. read(FL[N].ocinLP[s, p]);
  48. end;
  49. readln;
  50. end;
  51.  
  52. readln(ch);
  53. end;
  54.  
  55. for i := 1 to N do
  56. begin
  57. sum := 0;
  58. for p := 1 to 5 do
  59. begin
  60. sum := sum + FL[i].ocinLP[3, p];
  61. end;
  62. FL[i].ser := sum / 5.0;
  63. serGR := serGR + FL[i].ser;
  64. end;
  65.  
  66. if N > 0 then
  67. serGR := serGR / N
  68. else
  69. serGR := 0;
  70.  
  71. writeln;
  72. writeln('Group average for last session = ', serGR:0:2);
  73. writeln('Results list (students with average lower than group average):');
  74.  
  75. count := 0;
  76. for i := 1 to N do
  77. begin
  78. if FL[i].ser < serGR then
  79. begin
  80. count := count + 1;
  81. writeln(count, '. ', FL[i].pr, ' ', FL[i].im);
  82. writeln(' Birth date: ', FL[i].d, '.', FL[i].m, '.', FL[i].r);
  83. writeln(' Entry year: ', FL[i].rv, ', Course: ', FL[i].nk, ', Group: ', FL[i].ng);
  84.  
  85. writeln(' Marks for all semesters:');
  86. for s := 1 to 3 do
  87. begin
  88. write(' Semester ', s, ': ');
  89. for p := 1 to 5 do
  90. begin
  91. write(FL[i].ocinLP[s, p], ' ');
  92. end;
  93. writeln;
  94. end;
  95. writeln(' Average for last session: ', FL[i].ser:0:2);
  96. writeln;
  97. end;
  98. end;
  99.  
  100. if count = 0 then
  101. writeln('No students with average mark lower than group average.');
  102.  
  103. end.
Success #stdin #stdout 0s 5332KB
stdin
Шевченко
Тарас
15 03 2004 2021 3
301
5 4 5 4 5
4 5 4 4 5
5 5 5 4 4
y
Коваленко
Петро
10 08 2003 2021 3
301
3 4 3 3 4
3 3 4 3 3
3 3 4 3 3
n
stdout
Please enter students data:
Enter 1. student:
Enter 3 semesters of 5 marks:
Enter 2. student:
Enter 3 semesters of 5 marks:

Group average for last session = 3.90
Results list (students with average lower than group average):
1. Ковален� Петро
   Birth date: 10.8.2003
   Entry year: 2021, Course: 3, Group: 301
   Marks for all semesters:
     Semester 1: 3 4 3 3 4 
     Semester 2: 3 3 4 3 3 
     Semester 3: 3 3 4 3 3 
   Average for last session: 3.20