Поможем написать учебную работу
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.

Предоплата всего

Подписываем
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Предоплата всего
Подписываем
© К. Поляков, 2009-2013
Тема: Обработка массива (написать программу из 10-15 строк на языке программирования или алгоритм на естественном языке).
Что нужно знать:
for i:=1 to N do begin
{ что-то делаем с элементом A[i] }
end;
переменная i обозначает номер текущего элемента массива, она меняется от 1 до N с шагом 1, то есть мы «проходим» последовательно все элементы
k |
|||
i |
A[i,k] |
||
for k:=1 to M do begin
{ что-то делаем с элементом A[i,k] }
end;
for i:=1 to N do begin
{ что-то делаем с элементом A[i,k] }
end;
Дан целочисленный массив из 20 элементов. Элементы массива могут принимать целые значения от 0 до 1000. Опишите на русском языке или на одном из языков программирования алгоритм, позволяющий найти и вывести минимальное значение среди элементов массива, которые имеют чётное значение и не делятся на три. Гарантируется, что в исходном массиве есть хотя бы один элемент, значение которого чётно и не кратно трем.
Исходные данные объявлены так, как показано ниже. Запрещается использовать переменные, не описанные ниже, но использовать все описанные переменные не обязательно.
Естественный язык:
Объявляем массив A из 20 элементов.
Объявляем целочисленные переменные I, J, MIN.
В цикле от 1 до 20 вводим элементы массива A с 1-го по 20-й.
Паскаль:
const N=20;
var a: array [1..N] of integer;
i, j, min: integer;
begin
for i:=1 to N do
readln(a[i]);
…
end.
Решение:
(a[i] mod 2 = 0) and (a[i] mod 3 <> 0)
for i:=1 to N do
if <условие верно> and (a[i] < min) then
min := a[i];
Записываем в переменную min значение 1001.
Затем в цикле просматриваем все элементы массива, с первого до последнего. Если остаток от деления очередного элемента на 2 равен 0 и остаток от его деления на 3 не равен нулю и значение элемента меньше, чем значение переменной min, записать в переменную min значение рассматриваемого элемента массива. Затем переходим к следующему элементу.
После окончания работы цикла выводим значение переменной min.
min:=1001;
for i:=1 to N do
if (a[i] mod 2=0) and (a[i] mod 3<>0) and (a[i]<min) then
min:=a[i];
writeln(min);
Возможные проблемы:
|
Опишите на русском языке или одном из языков программирования алгоритм получения из заданного целочисленного массива размером 30 элементов другого массива, который будет содержать модули значений элементов первого массива (не используя специальной функции, вычисляющей модуль числа).
Решение:
const N = 30;
var a, b:array[1..N] of integer;
i: integer;
begin
for i:=1 to N do { ввод всех элементов массива с клавиатуры }
read(a[i]);
for i:=1 to N do { формирование массива B }
if a[i] < 0 then
b[i]:= -a[i]
else b[i]:= a[i];
writeln('Результат:');
for i:=1 to N do { вывод всех элементов массива B }
write(b[i], ' ');
end.
Возможные проблемы:
|
Опишите на русском языке или одном из языков программирования алгоритм подсчета максимального количества подряд идущих совпадающих элементов в целочисленном массиве длины 30.
Решение:
1 |
1 |
2 |
2 |
1 |
1 |
1 |
1 |
3 |
3 |
2 |
2 |
1 |
1 |
2 |
2 |
1 |
1 |
1 |
1 |
3 |
3 |
2 |
2 |
|
k |
1 |
2 |
1 |
2 |
1 |
2 |
3 |
4 |
1 |
2 |
1 |
2 |
kMax |
1 |
2 |
2 |
2 |
2 |
2 |
3 |
4 |
4 |
4 |
4 |
4 |
const N =30;
var a: array[1..N] of integer;
i, k, kMax: integer;
begin
for i:=1 to N do readln(A[i]); { ввод массива }
k := 1; { обрабатываем A[1] }
kMax := 1;
for i:=2 to N do begin { а теперь в цикле A[2]...A[N} }
if A[i] = A[i-1] then { цепочка продолжается }
k := k + 1
else k := 1; { цепочка закончилась }
if k > kMax then kMax := k;
end;
writeln(kMax);
end.
Возможные проблемы:
|
Дан целочисленный квадратный массив 10 х 10. Опишите на русском языке или на одном из языков программирования алгоритм вычисления суммы максимальных элементов из каждой строки. Напечатать значение этой суммы. Предполагается, что в каждой строке такой элемент единственный.
Решение:
const N=10;
{ ввод матрицы N на N }
Sum := 0;
for i:=1 to N do begin
{ max := максимальный элемент в i-ой строке }
Sum := Sum + max;
end;
const N=10;
var A: array[1..N,1..N] of integer;
i, k, max, Sum: integer;
begin
{ ввод матрицы N на N }
Sum := 0;
for i:=1 to N do begin
max := A[i,1];
for k:=2 to N do
if A[i,k] > max then max := A[i,k];
Sum := Sum + max;
end;
writeln(Sum);
end.
Возможные проблемы:
for i:=1 to N do begin max := A[i,1]; for i:=2 to N do if A[j,i] > max then max := A[i,j]; Sum := Sum + max; end;
|
Немного тактики:
|
За что снимают баллы:
|
Паскаль |
Естественный язык |
const N = 30; var A: array[1..N] of integer; i, x, y: integer; s: real; begin for i:=1 to N do readln(A[i]); ... end. |
Объявляется массив A из 30 элементов. Объявляются целочисленные переменные i, x и y, а также вещественная переменная s. В цикле от 1 до 30 заполняются все элементы массива A с 1-ого по 30-ый. ... |
Паскаль |
Естественный язык |
const N = 30; var A: array[1..N] of integer; i, x, y: integer; s: real; begin for i:=1 to N do readln(A[i]); ... end. |
Объявляется массив A из 30 элементов. Объявляются целочисленные переменные i, x и y, а также вещественная переменная s. В цикле от 1 до 30 заполняются все элементы массива A с 1-ого по 30-ый. ... |
Паскаль |
Естественный язык |
const N = 31; var A: array[1..N] of integer; i, x, y: integer; s: real; begin for i:=1 to N do readln(A[i]); ... end. |
Объявляется массив A из 31 элемента. Объявляются целочисленные переменные i, x и y, а также вещественная переменная s. В цикле от 1 до 31 заполняются все элементы массива A с 1-ого по 31-ый. ... |
Паскаль |
Естественный язык |
const N=30; var a: array [1..N] of integer; i, j, min: integer; begin for i:=1 to N do readln(a[i]); ... end. |
Объявляется массив A из 30 элементов. Объявляются целочисленные переменные i, j и min. В цикле от 1 до 30 заполняются все элементы массива A с 1-ого по 30-ый. ... |
В качестве ответа Вам необходимо привести фрагмент программы (или описание алгоритма на естественном языке), который должен находиться на месте многоточия. Вы можете записать решение также на другом языке программирования (укажите название и используемую версию языка программирования, например, Borland Pascal 7.0) или в виде блок-схемы. В этом случае вы должны использовать те же самые исходные данные и переменные, какие были предложены в условии (например, в образце, записанном на естественном языке).
Паскаль |
Естественный язык |
const N=30; var a: array [1..N] of integer; i, j: integer; s: real; begin for i:=1 to N do readln(a[i]); ... end. |
Объявляем массив A из 30 элементов. Объявляем целочисленные переменные i, j. Объявляем действительную переменную s. В цикле от 1 до 30 вводим элементы массива A с 1-го по 30-й. ... |
В качестве ответа вам необходимо привести фрагмент программы (или описание алгоритма на естественном языке), который должен находиться на месте многоточия. Вы можете записать решение также на другом языке программирования (укажите название и используемую версию языка программирования, например, Borland Pascal 7.0) или в виде блок-схемы. В этом случае вы должны использовать те же самые исходные данные и переменные, какие были предложены в условии (например, в образце, записанном на естественном языке).
Паскаль |
Естественный язык |
const N=30; var a: array [1..N] of integer; i, j, x: integer; begin for i:=1 to N do readln(a[i]); readln(x); ... end. |
Объявляем массив A из 30 элементов. Объявляем целочисленные переменные i, j, x. В цикле от 1 до 30 вводим элементы массива A с 1-го по 30-й. Вводим переменную X. ... |
В качестве ответа вам необходимо привести фрагмент программы (или описание алгоритма на естественном языке), который должен находиться на месте многоточия. Вы можете записать решение также на другом языке программирования (укажите название и используемую версию языка программирования, например, Borland Pascal 7.0) или в виде блок-схемы. В этом случае вы должны использовать те же самые исходные данные и переменные, какие были предложены в условии (например, в образце, записанном на естественном языке).
Паскаль |
Естественный язык |
const N=30; var a: array [1..N] of integer; i, k, max, max2: integer; begin for i:=1 to N do readln(a[i]); ... end. |
Объявляем массив A из 30 элементов. Объявляем целочисленные переменные i, k, max, max2. В цикле от 1 до 30 вводим элементы массива A с 1-го по 30-й. ... |
В качестве ответа вам необходимо привести фрагмент программы (или описание алгоритма на естественном языке), который должен находиться на месте многоточия. Вы можете записать решение также на другом языке программирования (укажите название и используемую версию языка программирования, например, Borland Pascal 7.0) или в виде блок-схемы. В этом случае вы должны использовать те же самые исходные данные и переменные, какие были предложены в условии (например, в образце, записанном на естественном языке).
Паскаль |
Естественный язык |
const N=30; var a: array [1..N] of integer; i, j, k: integer; begin for i:=1 to N do readln(a[i]); ... end. |
Объявляем массив A из 30 элементов. Объявляем целочисленные переменные i, j, k. В цикле от 1 до 30 вводим элементы массива A с 1-го по 30-й. ... |
В качестве ответа вам необходимо привести фрагмент программы (или описание алгоритма на естественном языке), который должен находиться на месте многоточия. Вы можете записать решение также на другом языке программирования (укажите название и используемую версию языка программирования, например, Borland Pascal 7.0) или в виде блок-схемы. В этом случае вы должны использовать те же самые исходные данные и переменные, какие были предложены в условии (например, в образце, записанном на естественном языке).
Паскаль |
Естественный язык |
const N=30; var a: array [1..N] of integer; i, l, lmax, s, smax: integer; begin for i:=1 to N do readln(a[i]); ... end. |
Объявляем массив A из 30 элементов. Объявляем целочисленные переменные i, l, lmax, s, smax. В цикле от 1 до 30 вводим элементы массива A с 1-го по 30-й. ... |
В качестве ответа вам необходимо привести фрагмент программы (или описание алгоритма на естественном языке), который должен находиться на месте многоточия. Вы можете записать решение также на другом языке программирования (укажите название и используемую версию языка программирования, например, Borland Pascal 7.0) или в виде блок-схемы. В этом случае вы должны использовать те же самые исходные данные и переменные, какие были предложены в условии (например, в образце, записанном на естественном языке).
Паскаль |
Естественный язык |
const N=30; var a: array [1..N] of integer; i, k: integer; s, min: real; begin for i:=1 to N do readln(a[i]); ... end. |
Объявляем массив A из 30 элементов. Объявляем целочисленные переменные i, k. Объявляем действительные переменные s, min. В цикле от 1 до 30 вводим элементы массива A с 1-го по 30-й. ... |
В качестве ответа вам необходимо привести фрагмент программы (или описание алгоритма на естественном языке), который должен находиться на месте многоточия. Вы можете записать решение также на другом языке программирования (укажите название и используемую версию языка программирования, например, Borland Pascal 7.0) или в виде блок-схемы. В этом случае вы должны использовать те же самые исходные данные и переменные, какие были предложены в условии (например, в образце, записанном на естественном языке).
Паскаль |
Естественный язык |
const N=30; var a: array [1..N] of integer; i, j, min, min2, s: integer; begin for i:=1 to N do readln(a[i]); ... end. |
Объявляем массив A из 30 элементов. Объявляем целочисленные переменные i, j, min, min2, s. В цикле от 1 до 30 вводим элементы массива A с 1-го по 30-й. ... |
В качестве ответа вам необходимо привести фрагмент программы (или описание алгоритма на естественном языке), который должен находиться на месте многоточия. Вы можете записать решение также на другом языке программирования (укажите название и используемую версию языка программирования, например, Borland Pascal 7.0) или в виде блок-схемы. В этом случае вы должны использовать те же самые исходные данные и переменные, какие были предложены в условии (например, в образце, записанном на естественном языке).
Паскаль |
Естественный язык |
const N=30; var a: array [1..N] of integer; i, j, min, min2, s: integer; begin for i:=1 to N do readln(a[i]); ... end. |
Объявляем массив A из 30 элементов. Объявляем целочисленные переменные i, j, min, min2, s. В цикле от 1 до 30 вводим элементы массива A с 1-го по 30-й. ... |
В качестве ответа вам необходимо привести фрагмент программы (или описание алгоритма на естественном языке), который должен находиться на месте многоточия. Вы можете записать решение также на другом языке программирования (укажите название и используемую версию языка программирования, например, Borland Pascal 7.0) или в виде блок-схемы. В этом случае вы должны использовать те же самые исходные данные и переменные, какие были предложены в условии (например, в образце, записанном на естественном языке).
Исходные данные объявлены так, как показано ниже. Запрещается использовать переменные, не описанные ниже, но разрешается не использовать часть из них.
Паскаль |
Естественный язык |
const N=30; var a: array [1..N] of integer; i, x, y: integer; s: real; begin for i:=1 to N do readln(a[i]); ... end. |
Объявляем массив A из 30 элементов. Объявляем целочисленные переменные i, x, y и вещественную переменную s. В цикле от 1 до 30 вводим элементы массива A с 1-го по 30-й. ... |
В качестве ответа вам необходимо привести фрагмент программы (или описание алгоритма на естественном языке), который должен находиться на месте многоточия. Вы можете записать решение также на другом языке программирования (укажите название и используемую версию языка программирования, например, Borland Pascal 7.0) или в виде блок-схемы. В этом случае вы должны использовать те же самые исходные данные и переменные, какие были предложены в условии (например, в образце, записанном на естественном языке).
Исходные данные объявлены так, как показано ниже. Запрещается использовать переменные, не описанные ниже, но разрешается не использовать часть из них.
Паскаль |
Естественный язык |
const N=30; var a: array [1..N] of integer; i, x, y: integer; s: real; begin for i:=1 to N do readln(a[i]); ... end. |
Объявляем массив A из 30 элементов. Объявляем целочисленные переменные i, x, y и вещественную переменную s. В цикле от 1 до 30 вводим элементы массива A с 1-го по 30-й. ... |
В качестве ответа вам необходимо привести фрагмент программы (или описание алгоритма на естественном языке), который должен находиться на месте многоточия. Вы можете записать решение также на другом языке программирования (укажите название и используемую версию языка программирования, например, Borland Pascal 7.0) или в виде блок-схемы. В этом случае вы должны использовать те же самые исходные данные и переменные, какие были предложены в условии (например, в образце, записанном на естественном языке).
Исходные данные объявлены так, как показано ниже. Запрещается использовать переменные, не описанные ниже, но разрешается не использовать часть из них.
Паскаль |
Естественный язык |
const N=30; var a: array [1..N] of integer; i, j, max: integer; begin for i:=1 to N do readln(a[i]); ... end. |
Объявляем массив A из 30 элементов. Объявляем целочисленные переменные i, j, max. В цикле от 1 до 30 вводим элементы массива A с 1-го по 30-й. ... |
В качестве ответа вам необходимо привести фрагмент программы (или описание алгоритма на естественном языке), который должен находиться на месте многоточия. Вы можете записать решение также на другом языке программирования (укажите название и используемую версию языка программирования, например, Borland Pascal 7.0) или в виде блок-схемы. В этом случае вы должны использовать те же самые исходные данные и переменные, какие были предложены в условии (например, в образце, записанном на естественном языке).
Исходные данные объявлены так, как показано ниже. Запрещается использовать переменные, не описанные ниже, но разрешается не использовать часть из них.
Паскаль |
Естественный язык |
const N=30; var a: array [1..N] of integer; i, j, min: integer; begin for i:=1 to N do readln(a[i]); ... end. |
Объявляем массив A из 30 элементов. Объявляем целочисленные переменные i, j, min. В цикле от 1 до 30 вводим элементы массива A с 1-го по 30-й. ... |
В качестве ответа вам необходимо привести фрагмент программы (или описание алгоритма на естественном языке), который должен находиться на месте многоточия. Вы можете записать решение также на другом языке программирования (укажите название и используемую версию языка программирования, например, Borland Pascal 7.0) или в виде блок-схемы. В этом случае вы должны использовать те же самые исходные данные и переменные, какие были предложены в условии (например, в образце, записанном на естественном языке).
Паскаль |
Естественный язык |
const N=30; var a: array [l..N] of integer; i,j,k,imax,kmax: integer; begin for i:=l to N do readln(a[i]); ... end. |
Объявляем массив A из 30 элементов. Объявляем целочисленные переменные i, j, k, imax, kmax. В цикле от 1 до 30 вводим элементы массива A с 1-го по 30-й. ... |
В качестве ответа вам необходимо привести фрагмент программы (или описание алгоритма на естественном языке), который должен находиться на месте многоточия. Вы можете записать решение также на другом языке программирования (укажите название и используемую версию языка программирования, например, Borland Pascal 7.0) или в виде блок-схемы. В этом случае вы должны использовать те же самые исходные данные и переменные, какие были предложены в условии (например, в образце, записанном на естественном языке).
Паскаль |
Естественный язык |
const N=40; var a: array [l..N] of integer; i,x,y: integer; s: real; begin for i:=l to N do readln(a[i]); ... end. |
Объявляем массив A из 40 элементов. Объявляем целочисленные переменные i, x, y и вещественная переменная s. В цикле от 1 до 40 вводим элементы массива A с 1-го по 40-й. ... |
В качестве ответа вам необходимо привести фрагмент программы (или описание алгоритма на естественном языке), который должен находиться на месте многоточия. Вы можете записать решение также на другом языке программирования (укажите название и используемую версию языка программирования, например, Borland Pascal 7.0) или в виде блок-схемы. В этом случае вы должны использовать те же самые исходные данные и переменные, какие были предложены в условии (например, в образце, записанном на естественном языке).
Паскаль |
Естественный язык |
const N=20; var a: array [l..N] of integer; i,j,min: integer; begin for i:=l to N do readln(a[i]); ... end. |
Объявляем массив A из 20 элементов. Объявляем целочисленные переменные i, j, min. В цикле от 1 до 20 вводим элементы массива A с 1-го по 20-й. ... |
В качестве ответа вам необходимо привести фрагмент программы (или описание алгоритма на естественном языке), который должен находиться на месте многоточия. Вы можете записать решение также на другом языке программирования (укажите название и используемую версию языка программирования, например, Borland Pascal 7.0) или в виде блок-схемы. В этом случае вы должны использовать те же самые исходные данные и переменные, какие были предложены в условии (например, в образце, записанном на естественном языке).
Паскаль |
Естественный язык |
const N=30; var a: array [l..N] of integer; i,j,s: integer; begin for i:=l to N do readln(a[i]); ... end. |
Объявляем массив A из 30 элементов. Объявляем целочисленные переменные I, J, S. В цикле от 1 до 30 вводим элементы массива A с 1-го по 30-й. ... |
В качестве ответа вам необходимо привести фрагмент программы (или описание алгоритма на естественном языке), который должен находиться на месте многоточия. Вы можете записать решение также на другом языке программирования (укажите название и используемую версию языка программирования, например, FreePascal 2.4) или в виде блок-схемы. В этом случае вы должны использовать те же самые исходные данные и переменные, какие были предложены в условии (например, в образце, записанном на естественном языке).
Паскаль |
Естественный язык |
const N=30; var a: array [l..N] of integer; i,j,min: integer; begin for i:=l to N do readln(a[i]); ... end. |
Объявляем массив A из 30 элементов. Объявляем целочисленные переменные I, J, MIN. В цикле от 1 до 30 вводим элементы массива A с 1-го по 30-й. ... |
В качестве ответа вам необходимо привести фрагмент программы (или описание алгоритма на естественном языке), который должен находиться на месте многоточия. Вы можете записать решение также на другом языке программирования (укажите название и используемую версию языка программирования, например, FreePascal 2.4) или в виде блок-схемы. В этом случае вы должны использовать те же самые исходные данные и переменные, какие были предложены в условии (например, в образце, записанном на естественном языке).
Паскаль |
Естественный язык |
const N=30; var a: array [1..N] of longint; і, j, p: longint; begin for і := 1 to N do readln(a[i]); ... end. |
Объявляем массив A из 30 элементов. Объявляем целочисленные переменные I, J, P. В цикле от 1 до 30 вводим элементы массива A с 1-го по 30-й. ... |
В качестве ответа вам необходимо привести фрагмент программы (или описание алгоритма на естественном языке), который должен находиться на месте многоточия. Вы можете записать решение также на другом языке программирования (укажите название и используемую версию языка программирования, например, FreePascal 2.4) или в виде блок-схемы. В этом случае вы должны использовать те же самые исходные данные и переменные, какие были предложены в условии (например, в образце, записанном на естественном языке).
Паскаль |
Естественный язык |
const N=30; var a: array [1..N] of longint; і, j, p: longint; begin for і := 1 to N do readln(a[i]); ... end. |
Объявляем массив A из 30 элементов. Объявляем целочисленные переменные I, J, P. В цикле от 1 до 30 вводим элементы массива A с 1-го по 30-й. ... |
В качестве ответа вам необходимо привести фрагмент программы (или описание алгоритма на естественном языке), который должен находиться на месте многоточия. Вы можете записать решение также на другом языке программирования (укажите название и используемую версию языка программирования, например, FreePascal 2.4) или в виде блок-схемы. В этом случае вы должны использовать те же самые исходные данные и переменные, какие были предложены в условии (например, в образце, записанном на естественном языке).
Паскаль |
Естественный язык |
const N=70; var a: array [1..N] of integer; i, j, m: integer; begin for i:=1 to N do readln(a[i]); … end. |
Объявляем массив A из 70 элементов. Объявляем целочисленные переменные I, J, M. В цикле от 1 до 70 вводим элементы массива A с 1-го по 70-й. ... |
3 По традиции нумерация элементов массива в Паскале обычно начинается с единицы, далее N обозначает размер массива (количество элементов).
4 Вообще говоря, в данной задаче не требуется находить номер минимального элемента, поэтому сначала можно записать в переменную min число 1000 проверьте, что программа все равно выдаст верное значение.
5 Источники заданий:
Демонстрационные варианты ЕГЭ 2004-2013 гг.
Тренировочные работы МИОО.
Гусева И.Ю. ЕГЭ. Информатика: раздаточный материал тренировочных тестов. СПб: Тригон, 2009.
Самылкина Н.Н., Островская Е.М. Информатика: тренировочные задания. М.: Эксмо, 2009.
Якушкин П.А., Ушаков Д.М. Самое полное издание типовых вариантов реальных заданий ЕГЭ 2010. Информатика. М.: Астрель, 2009.