В ответе я использовал CTIME библиотеку, если возникают вопросы почему именно её, то по нескольким причинам:
- Самое высокая скорость работы по сравнению с C++ библиотеками, а её функционал полнойстью покрывает нужды.
- В данном случаи используются достаточно прозрачные с точки зрения нейминга функции. Код будет хорошо читабилен.
К слову об указателе в функции getSecondsSinceUTCMidnight, не нужно беспокоиться об управлении памятью в данном случаи, за тебя это сделает функционал библиотеки.
Спасибо за отметку лучший ответ.
Const mas : Array [0..6,0..8] Of String = (('Иванов Иван Иванович ', '1', '2', '3', '1', '5','3', '3', '2'), ('Петров Петр Петрович ', '5', '5', '5', '4', '5','5', '5', '5'), ('Сидаров Сидор Сидорович ', '3', '2', '3', '2', '2','2', '2', '1'), ('Алексеев Алексей Алексеевич ', '1', '2', '1', '1', '2','2', '2', '5'), ('Сергеев Сергей Сергеевич ', '2', '2', '5', '5', '5','5', '2', '3'), ('Степанов Степан Степанович ', '5', '5', '5', '4', '5','5', '5', '5'), ('Давыдов Давид Давидович ', '3', '3', '3', '3', '3','3', '3', '3')); var sr:real; // средний балл b:real;begin writeln('--------------------------------------------------------------------'); writeln('| ФИО |',' 1 |',' 2 |',' 3 |',' 4 |',' 5 |',' 6 |',' 7 |',' 8 |',' ср. |'); writeln('--------------------------------------------------------------------'); for var i:=0 to 6 do begin write('|'+mas[i,0]+'|'); sr:=0; for var j:=1 to 8 do begin write(' '+mas[i,j]+' |'); double.TryParse(mas[i,j],b); // строку в число sr:=sr+b; end; sr:=sr/8; write(sr:5:3); write('|'); writeln; end; writeln('--------------------------------------------------------------------'); end.