В заданиях ЕГЭ по информатике очень часто встречаются так называемые “стандартные” алгоритмы. К таким алгоритмам можно отнести:
- Нахождение количества элементов в последовательности чисел (букв, слов) или в массиве, удовлетворяющих определенному условию;
- Нахождение суммы элементов в последовательности чисел (букв, слов) или в массиве, удовлетворяющих определенному условию;
- Нахождение среднего арифметического;
- Обмен значений двух переменных через третью;
- Операции с массивами (сдвиг элементов, разворот значений, и т.д.)
Такие алгоритмы ученики должны узнавать сразу.
Приведу примеры таких стандартных алгоритмов:
Количество элементов.
k:=0; //обнуление переменной, где хранится количество for i:=1 to 100 do //на примере обработки массива из 100 элементов if a[i] mod 3=0 then k:=k+1; //если элемент удовлетворяет определенному условию //(в данном случае - делится на 3, увеличиваем количество на 1. writeln(k); // вывод ответа
Сумма элементов
s:=0; //обнуление переменной, где хранится сумма for i:=1 to 100 do //на примере обработки массива из 100 элементов if a[i]>0 then s:=s+a[i]; //если элемент удовлетворяет определенному условию //(в данном случае - он должен быть положительным, увеличиваем значение //суммы на значение данного элемента. writeln(s); // вывод ответа
Среднее арифметическое
//Особенность алгоритма - совмещение суммы и количества k:=0; //обнуление переменной, где хранится количество s:=0; //обнуление переменной, где хранится сумма for i:=1 to 100 do //на примере обработки массива из 100 элементов if a[i] mod 2<>0 then begin k:=k+1; //если элемент удовлетворяет определенному условию //(в данном случае - он нечетный, увеличиваем количество на 1. s:=s+a[i]; //сумму увеличиваем на значение элемента end; writeln(s/k); // вывод ответа (среднее арифметическое //- это сумма деленная на количество
Обмен значений двух переменных через третью
// три переменных a,b,c //менять местами будем a и b c:=a; a:=b; b:=c; //то-же самое, но с соседними элементами массива c:=a[i]; a[i]:=a[i+1]; a[i+1]:=c;
Сдвиг элементов массива влево
t:=a[1]; for i:= 1 to 99 do a[i]:=a[i+1]; a[100]:=t; //В итоге первый элемент ушел на последнее место, //остальные сместились влево