элемента массива

advertisement
Тематический блок
«Программирование»
ЕГЭ-2015
Задания 19, 20, 21, 25
Массивы (вектора)
Массив – это группа однотипных элементов, имеющих
общее имя и расположенных в памяти рядом.
Особенности:
• все элементы имеют один тип
• весь массив имеет одно имя
• все элементы расположены в памяти рядом
Примеры:
• список учеников в классе
• квартиры в доме
• школы в городе
• данные о температуре воздуха за год
2
Массивы
НОМЕР
элемента массива
(ИНДЕКС)
A
1
2
3
4
5
5
10
15
20
25
A[1]
A[2]
A[3]
A[4]
A[5]
НОМЕР (ИНДЕКС)
элемента массива: 2
A[2]
ЗНАЧЕНИЕ
элемента массива: 10
3
Объявление массивов
Зачем объявлять?
• определить имя массива
• определить тип массива
• определить число элементов
• выделить место в памяти
Массив целых чисел:
имя
начальный
индекс
конечный
индекс
тип
элементов
var A : array[ 1 .. 5 ] of integer ;
Размер через константу:
const N=5;
var A: array[1.. N ] of integer;
4
Стандартные алгоритмы
обработки одномерных
массивов
1. Найти сумму элементов массива
Program Summa;
Const N = 20;
Var i, S:integer; A: array [1..N] of integer;
Begin
{Ввод массива}
for i:=1 to N do
Readln (A[i]);
{Обработка массива}
S:=0;
for i:=1 to N do
S:=S+A[i];
{Вывод результата}
Write (S);
End.
2. Найти произведение элементов массива
(*)
P:=1;
for i:=1 to N do
P:=P*A[i];
Write (P);
End.
3. Найти среднее арифметическое элементов
массива
(*)
S:=0;
for i:=1 to N do
S:=S+A[i];
S:=S/N;
Write (S);
End.
4. Найти сумму положительных элементов
массива
(*)
S:=0;
for i:=1 to N do
if A[i]>0 then S:=S+A[i];
Write (S);
End.
5. Найти количество отрицательных
элементов массива
(*)
k:=0;
for i:=1 to N do
if A[i]<0 then k:=k+1;
Write (k);
End.
6. Найти среднее арифметическое четных
элементов массива
(*)
S:=0; k:= 0;
for i:=1 to N do
if A[i] mod 2=0 then begin k:=k+1;
S:=S+A[i]; end;
S:=S/k;
Write (S);
End.
7. Найти максимальный элемент массива
(*)
max:=A[1];
for i:=1 to N do
if A[i]>max then max:=A[i];
Write (max);
End.
8. Найти минимальный элемент массива и
его номер.
(*)
min:=A[1]; imin:= 1;
for i:=1 to N do
if A[i]<min then begin min:=A[i];
imin:=i; end;
Write (min, imin);
End.
C2 (высокий уровень, время – 30 мин)
Тема: Обработка массива (написать программу из 10-15 строк
на языке программирования или алгоритм на естественном
языке).
Что нужно знать:
• массив – это набор однотипных элементов, имеющих общее
имя и расположенных в памяти рядом;
• для обращения к элементу массива используют квадратные
скобки, запись A[i] обозначает элемент массива A с номером
(индексом) i;
• для обработки всех элементов массива используется цикл вида
for i:=1 to N do begin
{ что-то делаем с элементом A[i] }
end;
• переменная i обозначает номер текущего элемента массива,
она меняется от 1 до N с шагом 1, то есть мы «проходим»
последовательно все элементы;
Задание 25 (С2)
С2. Дан целочисленный массив из 20 элементов. Элементы
массива могут принимать целые значения от 0 до 10000
включительно. Опишите на естественном языке или на
одном
из
языков
программирования
алгоритм,
позволяющий найти и вывести максимальное значение
среди трёхзначных элементов массива, не делящихся на 9.
Если в исходном массиве нет элемента, значение которого
является трёхзначным числом и при этом не кратно 9, то
выведите сообщение «Не найдено».
Исходные данные объявлены так, как показано ниже на
примерах для некоторых языков программирования и
естественного
языка.
Запрещается
использовать
переменные, не описанные ниже, но разрешается не
использовать некоторые из описанных переменных.
Const N = 20;
var
a: array [1..N] of integer;
i, j, max: integer;
begin
for i := 1 to N do
readln(a[i]);
...
end.
В качестве ответа Вам необходимо привести фрагмент
программы (или описание алгоритма на естественном языке),
который должен находиться на месте многоточия. Вы можете
записать решение также на другом языке программирования или
в виде блок-схемы. В этом случае Вы должны использовать те же
самые исходные данные и переменные, какие были предложены
в условии (например, в образце, записанном на естественном
языке).
Задание 19 (А12) (повышенный уровень, время – 5мин)
Тема: Работа с массивами и матрицами в языке
программирования.
Массив A одномерный; в программе рассматривается его
фрагмент, соответствующий значениям индекса от 1 до n.
J := 1;
for i:=1 to n do
begin
if A[i]<A[j] then
j := i;
end;
s := j;
Чему будет равно значение переменной s после
выполнения данного фрагмента программы?
1)
минимальному элементу в массиве A
2)
индексу минимального элемента в массиве A
(наименьшему из таких индексов, если минимальных
элементов несколько)
3)
индексу минимального элемента в массиве A
(наибольшему из таких индексов, если минимальных
элементов несколько)
4) количеству элементов, равных минимальному в
массиве A
Задание 20 (В8) (повышенный уровень, время – 5мин) Тема:
Анализ программы, содержащей подпрограммы, циклы и ветвления.
Ниже на четырех языках записан алгоритм. Получив на вход
число x, этот алгоритм печатает два числа a и b. Укажите
наименьшее из таких чисел x, при вводе которых алгоритм
печатает сначала 13, а потом 5.
var x, a, b, c: integer;
begin
readln(x);
a:=0; b:=10;
while x > 0 do
begin
c := x mod 10;
a := a + c;
if c < b then b := c;
x := x div 10;
end;
writeln(a); write(b);
end.
Задание 21 (В14) (повышенный уровень, время – 6 мин.) Тема:
Анализ программы с подпрограммами
Напишите в ответе число, которое будет напечатано в результате
выполнения следующего алгоритма
var a,b,t,M,R : integer;
Function F(x: integer): integer;
begin
F:= 2*(x*x-16)*(x*x-16)+5;
end;
begin
a:=-11; b:=11;
M:=a; R:=F(a);
for t:= a to b do begin
if (F(t)<R)then begin
M:=t;
R:=F(t); end; end;
write(M+6)
end.
Download