чається різними способами) і як по максимуму заощадити час.
) При вирішенні варто приділити достатньо уваги умові задачі. Найчастіше в умова приховано багато підказок, які можуть істотно полегшити нам життя, так само в умова міститься конкретне питання, визначення якого нам так само необхідно, що б правильно сформулювати рішення.
) Для складання правильного алгоритму рекомендується скласти блок схему.
Приклад
На вхід програмі подаються відомості про складання іспитів студентами 2-го курсу, що здають сесію. У першому рядку повідомляється кількість учнів N, яка не менше 10, але не перевершує 70. У першому рядку повідомляється кількість студентів N, кожна з наступних N рядків має формат:
lt; Прізвище gt; lt; Ім'я gt; lt; Оцінка gt;
де lt; Прізвище gt;- Рядок, що складається не більше ніж з 20 символів lt; Ім'я gt; рядок, що складається з 15 символів. lt; оцінка gt;- Через пропуск три цілих числа.
lt; Прізвище gt; і lt; Ім'я gt ;, а також lt; Ім'я gt; і lt; оцінка gt; розділені одним пропуском. Приклад вхідного рядка:
Васильєв Василь 4 3 5
Потрібно написати якомога ефективнішу програму (вкажіть використовувану версію мови програмування, наприклад, Pascal АВС), яка буде виводити на екран прізвища та імена трьох гірших за середнім балом студентів. Якщо серед інших є учні, які набрали той же середній бал, що і один з трьох гірших, то слід вивести і їх і відправити на розвантаження устаткування.
Рішення: Відразу визначимося з кінцевою метою вирішення програми, після закінчення роботи правильно складеної програми ми отримаємо Прізвища та імена 3ех студентів. Так як в умові відразу заданно кількість студентів відразу можна визначити величину масиву array [1 ... 70], спочатку в усі елементи масив потрібно записати 0, обнулити лічильник. Програма починається з опису, Елементи А і В масиви, описуються вони цілком стандартно. Вводимо масив балів [0..15] він містить цифри. Другий масив [5..70] містить кількість учнів і описується змінної типу байт для економії. S - рядок прізвищ та імен. C - кожна буква яка додається до рядка S. Очищаємо екран. Програма просить ввести кількість учнів. Програма зчитує введені дані і зберігає їх у масив, запускається другий масив, в якому зберігається відповідно прізвищ номерів і балів, дана процедура повторюється n разів. Далі програма становить слово із символів і цикл while перевіряє кількість прогалин, після того як рядок згрупована їй присвоюється черговий номер. Прочитуємо бали, знаходимо їх суму і поміщаємо номер прізвища в елемент масиву. Наступним етапом роботи програми буде висновок прізвищ та імен тих студентів, які отримали найменшу суму балів. Програма покроково перевіряє елементи і виводить їх у порядку від найменшого до найбільшого в залежності від суми балів.
Для вирішення завдання необхідно знати:
String - Рядком в Паскалі називається послідовність з певної кількості символів. Кількість символів послідовності називається довжиною рядка/
Char - Змінна типу char може приймати значення з певної впорядкованої послідовності символів.
Код даної програми:
uses crt; модуль для очищення екрана
var змінні
a: array [0..15] of set of byte; масив типу мн.-во (байтовое мн.-во)
b: array [1..70] of string [36]; масив рядків, m, i, k, c1, c2, c3: byte; змінні типу байт (байт lt; integer)
s: string; рядок (для прізвища та імені)
c: char; символ, кіт. Дописують до рядка s до
begin
clrscr; функція очищення екрану
writeln ( n=); line=ln=enter перехід на наступну сходинку
readln (n); зчитує n
for i:=1 to n do b [i]:= raquo ;; {масив для зберігання прізвищ та імен}
for k:=0 to 15 do a [k]:=[]; {масив для зберігання відповідності номерів прізвищ та балів} i - номер прізвища c1, c2, c3 - бали
for i:=1 to n do:= raquo ;; {зчитуємо прізвище та ім'я}
m:=0; обнуляем лічильник (рахує кількість пробілів)
read (c); зчитує один символ
while m lt; gt; 2 do перевіряє кількість прогалин не більш двох
begin
s:=s + c; становить слово із символів