Var Info array of record

після того, як ми прочитали фактичну кількість учнів N, у циклі зчитуємо та розшифровуємо інформацію про них, зберігаючи всі дані у структурах

for i:=1 to N do begin

спочатку в поліnameчергової структури записуємо порожній рядок''(в якому немає жодного символу, довжина дорівнює нулю)

потім зчитуємо символи прізвища і одразу приписуємо їх у кінець поляname:

Info[i].name := Info[i].name + c;

потім також читаємо з вхідного потоку ім'я, до пробілу, і записуємо його в кінець того ж поля name :

Info[i].name := Info[i].name + c;

зауважте, що ці два цикли однакові, тому введення імені та прізвища можна записати у вигляді вкладеного циклу так:

Info[i].name := Info[i].name + c;

важливо!зверніть увагу, що для організації внутрішнього циклу використовується інша змінна,k(а неi, тому щоi– змінна головного циклу, вона позначає номер поточного учня)

тепер у вхідному потоці залишилися три числа, які ми можемо послідовно зчитувати в цілу зміннуmark, а потім додавати до поляInfo[i].sum:

for k:=1 to 3 do begin

Info[i].sum := Info[i].sum + mark;

остання командаreadlnпропускає всі символи до нового рядка (з цього ми прочитали все, що потрібно)

ось повний цикл введення даних, після його закінчення всі вихідні дані будуть записані в першіNзаписів масивуInfo:

for i:=1 to N do begin

Info[i].name := Info[i].name + c;

for k:=1 to 3 do begin

Info[i].sum := Info[i].sum + mark;

Пошук трьох найгірших даних:

тепер треба вигадати,як за один прохід по масиву знайти три найгірші результати;

на папірці вести записи у три стовпчики, у першому записувати мінімальне число, у другому – наступне за величиною, у третьому – «третє мінімальне»

спочатку пишемо перше число в перший стовпчик, воно мінімальне, тому що інших ми не ще бачили; нехай це число 14:

нехай наступне число – 12; воно менше мінімального, тому його потрібно записувати в перший стовпець, а «старе» мінімальне число «переїде» у другий стовпець

нехай далі йде число 10 - тепер воно стане мінімальним, його потрібно записувати у перший стовпець; при цьому 12 «переїде» з першого стовпця до другого, а 14 – з другого до третього

нехай наступне число – 11; воно більше мінімального, але менше «другого», тому його потрібно поставити у другий стовпець; число 12 з другого стовпця переміщається до третього, а число 14 з третього стовпця видаляється з кандидатів у «три мінімальні»

залишається лише перекласти цей алгоритм на мову програмування

виділимо у пам'яті три цілих змінних:min1(мінімальний),min2(«другий мінімальний»),min3(«третій мінімальний»), у вигляді початкових значень запишемо в кожну з них число, що явно перевищує максимальну можливу суму трьох оцінок, наприклад, 20 (5+5+5)