“Стандартные” алгоритмы языка Паскаль

В заданиях ЕГЭ по информатике очень часто встречаются так называемые “стандартные” алгоритмы. К таким алгоритмам можно отнести:

  1. Нахождение количества элементов в последовательности чисел (букв, слов) или в массиве, удовлетворяющих определенному условию;
  2. Нахождение суммы элементов в последовательности чисел (букв, слов) или в массиве, удовлетворяющих определенному условию;
  3. Нахождение среднего арифметического;
  4. Обмен значений двух переменных через третью;
  5. Операции с массивами (сдвиг элементов, разворот значений, и т.д.)

Такие алгоритмы ученики должны узнавать сразу.

Приведу примеры таких стандартных алгоритмов:

Количество элементов.

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;
//В итоге первый элемент ушел на последнее место,
 //остальные сместились влево

 

Ответить

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.