Дан целочисленный массив из 30 элементов. Элементы массива могут принимать целые значения от 0 до 10 000 включительно. Опишите на естественном языке или на одном из языков программирования алгоритм, позволяющий найти и вывести минимальное значение среди трёхзначных элементов массива, делящихся на 7. Если в исходном массиве нет элемента, значение которого является трёхзначным числом и при этом кратно семи, то выведите сообщение «Не найдено».
Исходные данные объявлены так, как показано ниже на примерах для некоторых языков программирования и естественного языка. Запрещается использовать переменные, не описанные ниже, но разрешается не использовать некоторые из описанных переменных.
Бейсик | Паскаль |
---|---|
DIM A(N) AS INTEGER DIM I, J, MIN AS INTEGER | a: array of integer; i, j, min: integer; for i:= 1 to N do |
Си++ | Алгоритмический язык |
#include using namespace std; for (i = 0; i cin >> a[i]; | целтаб a цел i, j, min нц для i от 1 до N |
Естественный язык | |
Объявляем массив A из 30 элементов. Объявляем целочисленные переменные I, J, MIN. В цикле от 1 до 30 вводим элементы массива A с 1-го по 30-й. |
|
Python | |
# допускается также # использовать две # целочисленные переменные j, min for i in range(0, n): a.append(int(input())) |
В качестве ответа Вам необходимо привести фрагмент программы (или описание алгоритма на естественном языке), который должен находиться на месте многоточия. Вы можете записать решение также на другом языке программирования (укажите название и используемую версию языка программирования, например, Free Pascal 2.4) или в виде блок-схемы. В этом случае Вы должны использовать те же самые исходные данные и переменные, какие были предложены в условии (например, в образце, записанном на естественном языке).
Решение.
Бейсик | Паскаль |
---|---|
IF A(I)>=100 AND A(I)END IF IF MIN PRINT MIN PRINT "Не найдено" | for i:= 1 to N do if (a[i]>=100) and (a[i]min) then |
Си | Алгоритмический язык |
for (i = 0; i if (a[i]>99 && a[i]if (min cout « min « endl; | нц для i от 1 до N если a[i]>=100 и a[i]min:= a[i] если min то вывод "Не найдено" |
Естественный язык | |
Записываем в переменную MIN начальное значение, равное 1000. В цикле от первого элемента до тридцатого находим остаток от деления элемента исходного массива на 7. Если значение данного остатка равно 0 и значение текущего элемента массива больше 99 и меньше 1000, то сравниваем значение текущего элемента массива со значением переменной MIN. Если текущий элемент массива меньше MIN, то записываем в MIN значение этого элемента массива. Переходим к следующему элементу. После завершения цикла проверяем значение переменной MIN. Если оно меньше 1000, то выводим его, иначе выводим сообщение «Не найдено». |
if (a[i]>99 && a[i]<=994 && a[i]%7==0 && a[i]
Вместо 994 должно быть 999
Сергей Никифоров
Ни одно из целочисленных значений в промежутке не делится на 7, поэтому можно использовать как условие
Дан вещественный массив из 50 элементов. Элементы массива могут принимать произвольные значения. Опишите на русском языке или на одном из языков программирования алгоритм, который находит и выводит наименьший номер отрицательного элемента массива или сообщение, что такого элемента нет.
Паскаль | Бейсик |
---|---|
a: array of real; for i:= 1 to N do | DIM A(N) AS REAL DIM I, J AS INTEGER |
Си++ | Алгоритмический язык | #include using namespace std; for (int i = 0; i cin >> a[i]; | вещтаб а нц для i от 1 до N |
Естественный язык | |
Объявляем массив А из 50 элементов. Объявляем целочисленные переменные I, J. В цикле от 1 до 50 вводим элементы массива А с 1-го по 50-й. |
|
Python | |
// целочисленные переменные j for i in range(0, n): a.append(int(input())) |
Решение.
Приведем решение, использующее только один цикл (один проход по массиву).
var a: array of real;
for i:=1 to n do
if j=0 then writeln("no") else writeln(j);
Дан вещественный массив из 40 элементов. Элементы массива могут принимать произвольные значения. Опишите на русском языке или на одном из языков программирования алгоритм, который находит и выводит минимальный положительный элемент массива или сообщение, что такого элемента нет.
Исходные данные объявлены так, как показано ниже. Запрещается использовать переменные, не описанные ниже, но разрешается не использовать часть из них.
Паскаль | Бейсик |
---|---|
a: array of real; for i:= 1 to N do | DIM A(N) AS REAL DIM I, J AS INTEGER |
Си++ | Алгоритмический язык | #include using namespace std; for (i = 0; i cin >> a[i]; | вещтаб а нц для i от 1 до N |
Естественный язык | |
Объявляем массив А из 40 элементов. Объявляем целочисленные переменные I, J и вещественную переменную MIN. В цикле от 1 до 40 вводим элементы массива А с 1-го по 40-й. |
|
Python | |
// допускается также использовать // целочисленную переменную j //и вещественную переменную min for i in range(0, n): a.append(float(input())) |
В качестве ответа вам необходимо привести фрагмент программы (или описание алгоритма на естественном языке), который должен находиться на месте многоточия. Вы можете записать решение также на другом языке программирования (укажите название и используемую версию языка программирования, например Borland Pascal 7.0) или в виде блок-схемы. В этом случае вы должны использовать те же самые исходные данные и переменные, какие были предложены в условии (например, в образце, записанном на естественном языке).
Решение.
Дан массив, содержащий 70 целых чисел. Опишите на одном из языков программирования алгоритм, позволяющий найти и вывести наименьшее положительное нечетное число, содержащееся в массиве. Гарантируется, что в массиве есть хотя бы одно положительное нечетное число.
Исходные данные объявлены так, как показано ниже. Запрещается использовать переменные, не описанные ниже, но разрешается не использовать часть из них.
DIM I, J, M AS INTEGER
a: array of integer;
i, j, m: integer;
for i:=1 to N do
#include
using namespace std;
for (i = 0 ; i < N; i++)
cin >> a[i];
целтаб а [ 1: N]
нц для 1 от 1 до N
// допускается также использовать
// целочисленные переменные j, m
for i in range(0, n):
a.append(int(input()))
В качестве ответа Вам необходимо привести фрагмент программы, который должен находиться на месте многоточия. Вы можете записать решение также на другом языке программирования (укажите название и используемую версию языка программирования, например. Free Pascal 2.4) или в виде блок-схемы. В этом случае вы должны использовать те же самые исходные данные и переменные, какие были предложены в условии.
Решение.
for i:= 1 to n do
if not (A[i] mod 2 = 0) and (A[i] > 0) then
for i:= 1 to n do
За это задание вы можете получить 2 балла на ЕГЭ в 2020 году
Алгоритмам обработки массивов посвящено задание 25 ЕГЭ по информатике. Среди его вопросов – самые разнообразные, касающиеся разных подразделов данного учебного материала. К примеру, вы будете находить минимальный или максимальный элемент массива. Вам будет представлен целочисленный массив из некоторого числа элементов, которые могут принимать целые значения, например, включительно от 10 до 1000. Вам придется, используя один из языков программирования (в условиях будет уточнено, какой именно), описать алгоритм для поиска и вывода данных, отобранных по какому-то критерию, например, таких пар элементов в массиве, у которых сумма их делится на 3, но не делится на 6. Под парой в задании № 25 ЕГЭ по информатике разработчики тестов всегда подразумевают два соседних элемента массива.
Ответ на задание 25 ЕГЭ по информатике – всегда развернутый. Как его оформить – будет указано в условиях задачи. Чаще всего вас попросят привести фрагмент программы, который заменит собой многоточие в условии. При этом решение можно записать решение на любом другом языке программирования, но в этом случае нужно будет указать не только название, но и используемую версию языка.
Дан це-ло-чис-лен-ный мас-сив из 20 эле-мен-тов. Эле-мен-ты мас-си-ва могут при-ни-мать целые зна-че-ния от -1000 до 1000 вклю-чи-тель-но. Опи-ши-те на есте-ствен-ном языке или на одном из язы-ков про-грам-ми-ро-ва-ния ал-го-ритм, поз-во-ля-ю-щий найти и вы-ве-сти ми-ни-маль-ное зна-че-ние среди по-ло-жи-тель-ных эле-мен-тов мас-си-ва, не окан-чи-ва-ю-щих-ся на 3. Если в ис-ход-ном мас-си-ве нет эле-мен-та, зна-че-ние ко-то-ро-го по-ло-жи-тель-но и не окан-чи-ва-ет-ся на 3, то вы-ве-сти со-об-ще-ние «Не най-де-но».
В ка-че-стве от-ве-та Вам не-об-хо-ди-мо при-ве-сти фраг-мент про-грам-мы (или опи-са-ние ал-го-рит-ма на есте-ствен-ном языке), ко-то-рый дол-жен на-хо-дить-ся на месте мно-го-то-чия. Вы мо-же-те за-пи-сать ре-ше-ние также на дру-гом языке про-грам-ми-ро-ва-ния (ука-жи-те на-зва-ние и ис-поль-зу-е-мую вер-сию языка про-грам-ми-ро-ва-ния, на-при-мер Free Pascal 2.4) или в виде блок-схемы. В этом слу-чае Вы долж-ны ис-поль-зо-вать те же самые ис-ход-ные дан-ные и пе-ре-мен-ные, какие были пред-ло-же-ны в усло-вии (на-при-мер, в об-раз-це, за-пи-сан-ном на есте-ствен-ном языке).
По-яс-не-ние.
Со-дер-жа-ние вер-но-го от-ве-та (до-пус-ка-ют-ся иные фор-му-ли-ров-ки от-ве-та, не ис-ка-жа-ю-щие его смыс-ла).
Бей-сик | Пас-каль |
IF A(I)>0 AND A(I) MOD 10<>3 AND A(I)< MIN THEN IF MIN < 1001 THEN Не най-де-но" |
for i:= 1 to N do if (a[i]>0) and (a[i] mod 10<>3) and (a[i]< min) then if min < 1001 then writeln(min) else writeln("Не най-де-но"); |
Си | Ал-го-рит-ми-че-ский язык |
for (i = 0; i if (a[i]>0 && a[i]%10!=3 && a[i] < min) if (min<1001) printf("%d", min); printf("Не най-де-но"); |
нц для i от 1 до N если a[i]>0 и mod(a[i],10) <>: 3 и a[i] если min < 1001 то вывод "Не най-де-но" |
Eсте-ствен-ный язык | |
За-пи-сы-ва-ем в пе-ре-мен-ную MIN на-чаль-ное зна-че-ние, рав-ное 1001. В цикле от пер-во-го эле-мен-та до два-дца-то-го на-хо-дим оста-ток от де-ле-ния эле-мен-та ис-ход-но-го мас-си-ва на 10. Если зна-че-ние дан-но-го остат-ка не равно 3 и зна-че-ние те-ку-ще-го эле-мен-та мас-си-ва боль-ше 0, то срав-ни-ва-ем зна-че-ние те-ку-ще-го эле-мен-та мас-си-ва со зна-че-ни-ем пе-ре-мен-ной MIN. Если те-ку-щий эле-мент мас-си-ва мень-ше MIN, то за-пи-сы-ва-ем в MIN зна-че-ние этого эле-мен-та мас-си-ва. Пе-ре-хо-дим к сле-ду-ю-ще-му эле-мен-ту. После за-вер-ше-ния цикла про-ве-ря-ем зна-че-ние пе-ре-мен-ной MIN. Если оно мень-ше 1001, то вы-во-дим его, иначе вы-во-дим со-об-ще-ние «Не най-де-но». |
Вариант 2
Вариант 3
Вариант 4
Вариант 5
Вариант 6
Вариант 7
Вариант 8
Вариант 9
Вариант 10
Вариант 11
Вариант 12
Пример 1
Задача.
Дан целочисленный одномерный
массив, состоящий из n элементов. Найти сумму и произведение нечетных элементов,
кратных 3.
Ход решения:
Введем обозначения: n –
количество элементов в массиве; А – имя массива; i – индекс элемента массива;
Ai – i-й элемент массива A; s – сумма нечетных элементов массива, кратных
3; p – произведение нечетных элементов массива, кратных 3.
Входные
данные: n, A.
Выходные
данные: s, p.
Первоначально сумма искомых
элементов равна нулю: не просуммировано ни одно слагаемое, то есть s:=0. Далее,
используя любой оператор цикла, просматриваем весь массив от первого и до
последнего элемента. И если при этом элемент массива нечетный и кратен 3, то к
уже накопленной сумме добавляется очередное слагаемое, т.е. s:= s + A[i]. Здесь
слева и справа от знака присваивания записано имя одной и той же переменной s,
именно это обеспечивает постепенное накопление суммы: s справа – уже
вычисленное известное значение суммы, s - ее новое, вычисляемое значение.
При просмотре массива можно
сразу вычислить и произведение элементов массива, удовлетворяющих заданному
условию. Произведение вычисляется с помощью оператора p:=p*A[i]. При этом p
справа и p слева имеют разные значения: p справа – уже известное, вычисленное
ранее значение произведения, p слева – новое, вычисляемое его значение.
Первоначально искомое произведение равно единице, т.е. p:=1.
При решении этой задачи
можно использовать любой из видов циклов.
Блок-схема цикл с параметром: |
|
Блок-схема
цикл с предусловием: | Для решения используется цикл с предусловием: Program Primer; |
Пример 2
Задача.
Дан массив целых чисел. Найти
количество тех элементов, значения которых положительны и не превосходят заданного
натурального числа А.
Ход решения:
Введем обозначения: n
– количество элементов в массиве; X – имя массива; i – индекс
элемента массива; Xi – i-й элемент массива X; А – заданное число; k –
количество элементов, значения которых положительны и не превосходят заданного
числа А.
Входные данные: n, X,
A.
Выходные данные: k.
Вводим с клавиатуры
значение числа А. Количество элементов, значения которых положительны и не
превосходят заданного числа А, вначале полагаем равным нулю, то есть k:=0. Если
очередной элемент массива положителен и не превосходят заданного числа A, то
количество таких элементов нужно увеличить на единицу, то есть k:=k + 1. Таким
образом, обрабатываются все элементы массива.
При решении этой задачи можно
использовать любой из видов циклов.
Блок-схема:
| Для решения используется цикл с параметром:
Program Primer; Var X: Array Of Integer; i, n, k, A: Integer; Begin Write (‘n=’); Readln (n); For i:=1 To n Do Readln (X[i]); { ввод массива } Write (‘A=’); Readln (A); k:= 0; For i:=1 To n Do { обработка массива } If (X[i] >0) and (X[i] <= A) Then k:=k + 1; Writeln (‘k=’, k); Readln End. |
Пример 3
Задача
. Дан одномерный целочисленный массив, состоящий из n элементов. Найти номера четных элементов,
стоящих на нечетных местах.
Ход решения:
Введем обозначения: n –
количество элементов в массиве; X – имя массива; i – индекс элемента массива;
Xi – i-й элемент массива Х.
Входные данные: n, X.
Выходные данные: i.
Необходимо просмотреть весь
массив. Если просматриваемый элемент является четным, а его порядковый номер –
нечетный, то вывести его номер. При решении этой задачи можно использовать
любой из видов циклов.
Пример 4
Задача. Дан одномерный целочисленный массив, состоящий из n элементов. Найти номер последнего отрицательного элемента массива.
Ход
решения:
Введем обозначения: n – количество элементов в массиве; А – имя массива; i –
индекс элемента массива; Ai – i-й элемент массива A; m – номер последнего
отрицательного элемента массива.
Входные данные: n, A.
Выходные данные: m.
Последний отрицательный
элемент массива – это первый отрицательный элемент, который встретится при
просмотре массива с конца. Если очередной элемент не является отрицательным, то
нужно уменьшать значение текущего индекса (i:=i-1), пока он не станет меньше
номера первого элемента или не будет найден отрицательный элемент. Переменная m
получает значение i (номер отрицательного элемента), т.е. m:= i. Если в
массиве нет отрицательного элемента, то значение переменной m остается равным
нулю.
Блок-схема: | Для решения используется цикл с параметром: Program
Primer; |
1. Дан целочисленный одномерный массив, состоящий из n
элементов. Найти сумму и произведение всех элементов массива.
2. Дан целочисленный одномерный массив, состоящий из n
элементов. Найти сумму и произведение четных элементов.
3. Дан
целочисленный одномерный массив, состоящий из n элементов. Найти среднее
арифметическое всех элементов массива.
4. Дан целочисленный
одномерный массив, состоящий из n элементов. Выяснить, какое число встречается
раньше - положительное или отрицательное.
5. Дан одномерный
массив, состоящий из n действительных чисел. Выяснить, является ли
последовательность возрастающей или убывающей.
6. Дан целочисленный одномерный массив, состоящий из n
элементов. Найти сумму и произведение элементов, кратных 3 и 5.
7. Дан целочисленный
одномерный массив, состоящий из n элементов. Вывести его элементы, индексы
которых являются степенями двойки (1, 2, 4, 8, 16, ...).
8. Дан массив целых чисел. Найти количество отрицательных
элементов, больше -9.
9. Дан целочисленный одномерный массив, состоящий из n
элементов. Найти количество элементов кратных 7.
10. Дан целочисленный
одномерный массив, состоящий из n элементов. Вывести на экран элементы, которые
являются квадратами какого-либо числа.
11. Дан одномерный
целочисленный массив, состоящий из n элементов. Найти номера нечетных
элементов, стоящих на четных местах.
12. Дан целочисленный
одномерный массив, состоящий из n элементов. Найти максимум и минимум. Поменять
их местами.
13. Дан целочисленный
одномерный массив, состоящий из n элементов. Заменить все элементы на их
квадраты.
14. Дан целочисленный
одномерный массив, состоящий из n элементов. Заменить все элементы на их
противоположные значения.
15. Дан целочисленный
одномерный массив, состоящий из n элементов. Поменять местами первый и
последний элементы.
16. Дан одномерный
массив, состоящий из n действительных чисел. Сформировать новый массив,
состоящий из отрицательных элементов.
17. Дан целочисленный
одномерный массив, состоящий из n элементов. Вывести на экран те элементы, у
которых остаток от деления на m равен k.
18. Вводятся
результаты контрольной работы 10 учащихся. Определите число неудовлетворительных,
удовлетворительных, хороших, отличных оценок. Вывести среднюю оценку,
полученную учащимися за контрольную работу.
19. Ввести оценки N
учеников по K предметам. Определить и вывести на экран количество учеников, не
получивших ни одной "5".
20. В группе учится N
студентов, студенты получили по четыре отметки за экзамен. Определить
количество неуспевающих студентов и средний балл группы.
21. В одномерном
массиве размещены: в первых элементах - значения аргумента, в следующих -
соответствующие им значения функции. Напечатать элементы этого массива в виде
двух параллельных столбцов (аргумент и значения функции).
22. Дан целочисленный
одномерный массив, состоящий из n элементов. Вычислить сумму чисел,
порядковые номера которых являются числами фибоначчи.
23. Сформировать
массив простых множителей заданного числа.
24. В одномерном
массиве с четным количеством элементов (2n) находятся координаты n точек
плоскости. Они располагаются в следующем порядке: х1, у1, х2, у2, х3, у3 и т.д.
Найти номера наиболее и наименее удаленных друг от друга точек.
Упражнение «Программирование одномерных массивов»
1. Дан фрагмент программы, обрабатывающий массив А из 10 элементов:
n:= 10;
for i:=1 tо n do A[i] := i;
j:= 1;
for i:=1 tо n-1 do
if A[i] < A then j:= j + 1;
Чему будет равно значение переменной j после выполнения этого алгоритма?
а) 1 б)2 в)10 г)11