На уроке рассмотрено решение 25 задания ЕГЭ по информатике: дается подробное объяснение и разбор заданий демонстрационных вариантов и досрочных экзаменов
Содержание:
- Объяснение задания 25 ЕГЭ по информатике
- Алгоритмизация и программирование
- Решение 25 заданий ЕГЭ по информатике
- Делители числа
- Простые числа
- Задания прошлых лет для тренировки (до 2021)
- Задачи с поэлементной обработкой массива
- Задачи на обработку элементов массива с последующей заменой
- Задачи на обработку пар элементов массива (два подряд идущих)
- Задачи на обработку трёх подряд идущих элементов массива (тройки элементов массива)
- Задачи на поиск максимума, минимума элементов массива и другие
- Решение 25 заданий ЕГЭ по информатике: более сложные задания
25-е задание: «Программная обработка целочисленной информации»
Уровень сложности
— высокий,
Требуется использование специализированного программного обеспечения
— да,
Максимальный балл
— 2,
Примерное время выполнения
— 20 минут.
Проверяемые элементы содержания: Умение создавать собственные программы (10–20 строк) для обработки целочисленной информации
Рекомендации по выполнению:
«В этом задании требуется написать фрагмент программы, реализующий простую обработку целочисленного массива. У экзаменуемых, хорошо освоивших технику программирования, это задание обычно не вызывает серьёзных затруднений, поскольку алгоритм обработки массива не относится к сложным»
Типичные ошибки и рекомендации по их предотвращению:
«Часто бывает, что увлекшись написанием решения, экзаменуемый совершает ошибки в простых ситуациях: организация ввода-вывода, описание и инициализация переменных, обработка массива (выход за границу) и т.д. Эти ошибки могут стоить Вам нескольких баллов, старайтесь их не допускать»
ФГБНУ «Федеральный институт педагогических измерений»
Алгоритмизация и программирование
Для решения задания требуется вспомнить темы:
- Одномерные массивы.
- Двумерные массивы.
Решение 25 заданий ЕГЭ по информатике
Плейлист видеоразборов задания на YouTube:
Задание демонстрационного варианта 2022 года ФИПИ
Делители числа
25_7:
Напишите программу, которая ищет среди целых чисел, принадлежащих числовому отрезку [126849; 126871], числа, имеющие ровно 4 различных делителя.
Выведите эти четыре делителя для каждого найденного числа в порядке возрастания.
✍ Решение:
-
✎ Решение (неоптимизированный вариант, метод полного перебора):
- Будем использовать оптимизированный вариант программы, подходящий для «медленных» компьютеров. Для этого перебор делителей для числа
nбудем выполнять от2до√n, округлив его до ближайшего целого числа (не включая точный квадратный корень, если он существует):
PascalABC.net:
|
||
Python:
|
||
| С++: |
✎ Решение (оптимизированный вариант):
вместо диапазона делителей [1; число] использовать диапазон [1; округл(√n)]
n), то в список делителей добавлять будем только сам делитель, если нет – то добавляем пару делителей (делитель и n // делитель):Пример: число 8 = 2 * 4 Достаточно рассмотреть цикл от 2 до округл(√8) (=2) если 8 делится на 2 и 8/2 не равно 2, то делители: 2 и 4 (8/2)
PascalABC.net:
|
||
Python:
|
||
| С++: |
✎ Решение: Генерация списка делителей.
Общая идея:
| PascalABC.net: |
Python:
for n in range(126849, 126871+1): divs = [d for d in range(1, n+1) if n % d == 0] if len(divs) == 4: print( *divs ) |
| С++: |
Ответ:
1 3 42283 126849 1 47 2699 126853 1 5 25373 126865 1 293 433 126869
25_8:
Напишите программу, которая ищет среди целых чисел, принадлежащих числовому отрезку [164700; 164752], числа, имеющие ровно 6 различных делителей.
Выведите эти делители для каждого найденного числа в порядке возрастания.
✍ Решение:
-
✎ Решение (оптимизированный вариант):
- Для каждого числа указанного диапазона генерируем список делителей.
- Если длина списка равна четырем, выводим его.
PascalABC.net:
|
||
Python:
|
||
| С++: |
✎ Решение: Генерация списка делителей.
Общая идея:
| PascalABC.net: |
Python:
for n in range(164700, 164752+1): divs = [d for d in range(1, n+1) if n % d == 0] if len(divs) == 6: print( *divs ) |
| С++: |
Ответ:
1 2 4 41177 82354 164708 1 3 9 18301 54903 164709 1 2 4 41179 82358 164716 1 2 4 41183 82366 164732
25_9:
Напишите программу, которая ищет среди целых чисел, принадлежащих числовому отрезку [190201; 190230], числа, имеющие ровно 4 различных делителя.
Выведите эти четыре делителя для каждого найденного числа в порядке убывания.
✍ Решение:
-
✎ Решение (неоптимизированный вариант, метод полного перебора):
- Для каждого числа указанного диапазона генерируем список делителей.
- Если длина списка равна четырем, выводим его.
PascalABC.net:
|
||
Python:
|
||
|
С++:
|
✎ Решение (оптимизированный вариант):
PascalABC.net:
|
||
Python:
|
||
| С++: |
✎ Решение: Генерация списка делителей.
Общая идея:
| PascalABC.net: |
Python:
for n in range(190201, 190230+1): divs = [d for d in range(1, n+1) if n % d == 0] if len(divs) == 4: divs.reverse() # реверсируем (по убыванию) print( *divs ) |
| С++: |
Ответ:
190201 17291 11 1 190202 95101 2 1 190214 95107 2 1 190219 853 223 1 190222 95111 2 1 190223 17293 11 1 190227 63409 3 1 190229 14633 13 1
Видеоразбор задания:
📹 YouTube здесь
📹 Видеорешение на RuTube здесь
25_10:
Напишите программу, которая ищет среди целых чисел, принадлежащих числовому отрезку [190201; 190280], числа, имеющие ровно 4 различных ЧЁТНЫХ делителя.
Выведите эти четыре делителя для каждого найденного числа в порядке убывания.
✍ Решение:
-
✎ Решение (неоптимизированный вариант, метод полного перебора):
- Для каждого числа указанного диапазона генерируем список делителей.
- Если длина списка равна четырем, выводим его.
PascalABC.net:
|
||
Python:
|
||
| С++: |
✎ Решение: Генерация списка делителей.
Общая идея:
| PascalABC.net: |
Python:
for n in range(190201, 190280+1): divs = [d for d in range(1, n+1) if n % d == 0 and d % 2 == 0] if len(divs) == 4: divs.reverse() print( *divs ) |
| С++: |
Ответ:
190226 838 454 2 190234 17294 22 2 190238 2606 146 2 190252 95126 4 2 190258 758 502 2 190274 27182 14 2 190276 95138 4 2
25_11:
Напишите программу, которая ищет среди целых чисел, принадлежащих числовому отрезку [394441; 394505], числа, имеющие максимальное количество различных делителей. Если таких чисел несколько, то найдите минимальное из них.
Выведите количество делителей найденного числа и два наибольших делителя в порядке убывания.
✍ Решение:
-
✎ Решение (неоптимизированный вариант, метод полного перебора):
PascalABC.net:
|
||
Python:
|
||
| С++: |
✎ Решение (Генерация списка делителей):
| PascalABC.net: | ||
Python:
|
||
| С++: |
Ответ: 48 394450 197225
Видео
Простые числа
25_12:
Напишите программу, которая ищет среди целых чисел, принадлежащих числовому отрезку [3532000; 3532160], простые числа.
Выведите все найденные простые числа в порядке убывания, слева от каждого числа выведите его номер по порядку.
✍ Решение:
-
✎ Решение (неоптимизированный вариант, метод полного перебора):
PascalABC.net:
|
||
Python:
|
||
| С++: |
✎ Решение (оптимизированный вариант):
PascalABC.net:
|
||
Python:
|
||
| С++: |
Ответ:
1 3532147 2 3532121 3 3532103 4 3532091 5 3532049 6 3532033 7 3532021 8 3532019 9 3532007
Задания прошлых лет для тренировки (до 2021)
Задачи с поэлементной обработкой массива
25_1: ЕГЭ по информатике 2017 года (один из вариантов со слов выпускника):
Дан целочисленный массив из 20 элементов. Элементы массива могут принимать целые значения от 0 до 10 000 включительно. Опишите на естественном языке или на одном из языков программирования алгоритм, позволяющий найти и вывести количество элементов массива НЕ кратных 3.
Исходные данные объявлены так, как показано ниже. Запрещается использовать переменные, не описанные ниже, но использовать все описанные переменные не обязательно.
1 2 3 4 5 6 7 8 |
const N = 20; var i,j,k:integer; a:array [1..N] of integer; begin for i:=1 to N do readln(a[i]); … end. |
✍ Решение:
Рассмотрим заданный фрагмент решения:
- в цикле со счетчиком i запрашиваются значения элементов массива, т.е. формируется массив;
- из постановки задания видим, что необходимо найти количество чего-то, это значит, что нужно использовать переменную счетчик;
- объявлены три целочисленных переменных: i, j, k; переменная i использована в первом цикле, значит для счетчика можно взять переменную k;
- счетчик всегда нужно обнулять, поэтому следующим оператором будет:
- определим, количество чего нам необходимо считать: количество элементов массива не кратных 3. Кратность можно определить через остаток от деления: если значение элемента массива при делении на 3 в остатке не возвращает 0, значит элемент не кратен трем;
- остаток при делении в паскале — оператор mod. Поскольку необходимо просмотреть каждый элемент массива, то это нужно делать в цикле for;
- переменная i уже использована в первом цикле for, значит, для очередного цикла возьмем неиспользованную переменную j:
- если условие истинно (т.е. нашелся элемент массива, не кратный трем), то увеличиваем счетчик:
- после цикла остается вывести значение счетчика, т.е. вывести количество элементов массива не кратных 3:
for j:=1 to N do if a[j] mod 3 <> 0 then
Результат:
k:=0; for j:=1 to N do if a[j] mod 3 <> 0 then inc(k); writeln(k);
Смотрите видео с подробным объяснением и разбором данного 25 задания:
📹 YouTube здесь
📹 Видеорешение на RuTube здесь
Задачи на обработку элементов массива с последующей заменой
25_3: Решение 25 задания ЕГЭ по информатике Демоверсия 2018:
Дан целочисленный массив из 30 элементов. Элементы массива могут принимать целые значения от 0 до 10000 включительно. Опишите на одном из языков программирования алгоритм, который находит количество элементов массива, больших 100 и при этом кратных 5, а затем заменяет каждый такой элемент на число, равное найденному количеству. Гарантируется, что хотя бы один такой элемент в массиве есть. В качестве результата необходимо вывести измененный массив, каждый элемент массива выводится с новой строчки.
Например, для массива из шести элементов: 4 115 7 195 25 106
программа должна вывести числа 4 2 7 2 25 106
Исходные данные объявлены так, как показано ниже на примерах для некоторых языков программирования. Запрещается использовать переменные, не описанные ниже, но разрешается не использовать некоторые из описанных переменных.
Паскаль:
1 2 3 4 5 6 7 8 9 10 |
const N = 30; var a: array [1..N] of longint; i, j, k: longint; begin for i := 1 to N do readln(a[i]); ... end. |
В качестве ответа Вам необходимо привести фрагмент программы, который должен находиться на месте многоточия. Вы можете записать решение также на другом языке программирования (укажите название и используемую версию языка программирования, например Free Pascal 2.6). В этом случае Вы должны использовать те же самые исходные данные и переменные, какие были предложены в условии.
Похожие задания для тренировки
✍ Решение:
-
Решение на языке Паскаль:
1 2 3 4 5 6 7 8 9 |
k := 0; for i := 1 to N do if (a[i] > 100) and (a[i] mod 5 = 0) then k:=k+1; for i := 1 to N do begin if (a[i] > 100) and (a[i] mod 5 = 0) then a[i] := k; writeln(a[i]) end |
25_6:
Дан массив, содержащий неотрицательные целые числа. Необходимо вывести:
Например, для массива из шести элементов: 4 6 12 17 3 8
ответом будет 12 — наибольшее чётное число, поскольку чётных чисел в этом массиве больше
Исходные данные объявлены так, как показано ниже. Запрещается использовать переменные, не описанные ниже, но разрешается не использовать некоторые из описанных переменных.
Python:
1 2 3 4 5 6 |
# допускается также использовать # целочисленные переменные j, k, m a = [] n = 2000 // менять значение n нельзя for i in range(0, n): a.append(int(input())) |
✍ Решение:
-
Решение на языке Python:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
a = [] n = 2000 // менять значение n нельзя for i in range(0, n): a.append(int(input())) j = 0 k = 0 m = 0 for i in range(0, n): if a[i]%2 == 0: j+=1 else: k+=1 if k>j: j = 0 for i in range(0, n): if a[i]>j and a[i] % 2 != 0: j = a[i] print(j) else: for i in range(0, n): if a[i]>m and a[i] % 2 == 0: m = a[i] print(m) |
Задачи на обработку пар элементов массива (два подряд идущих)
25_4:
Дан целочисленный массив из 40 элементов. Элементы массива могут принимать целые значения от 0 до 10 000 включительно. Опишите на естественном языке или на одном из языков программирования алгоритм, позволяющий найти и вывести количество пар элементов массива, в которых одно из чисел двузначное. В данной задаче под парой подразумевается два подряд идущих элемента массива.
Например, для массива из семи элементов: 13; 323; 12; 33; 117 — ответ: 4.
Исходные данные объявлены так, как показано ниже. Запрещается использовать переменные, не описанные ниже, но разрешается не использовать некоторые из описанных переменных.
1 2 3 4 5 6 7 8 9 10 |
const N = 40; var a: array [1..N] of integer; i, j, k: integer; begin for i := 1 to N do readln(a[i]); ... end. |
✍ Решение:
1 2 3 4 5 |
k := 0; for i := 1 to N - 1 do if ((a[i] < 100) and (a[i] > 9)) or ((a[i + l] < 100) and (a[i + 1] > 9)) then inc(k); writeln(k); |
25_5:
Дан целочисленный массив из 20 элементов. Элементы массива могут принимать целые значения от -10 000 до 10 000 включительно. Опишите алгоритм, позволяющий найти и вывести количество пар элементов массива, в которых сумма элементов делится на 2, но не делится на 4. В данной задаче под парой подразумевается два подряд идущих элемента массива.
Исходные данные объявлены так, как показано ниже. Запрещается использовать переменные, не описанные ниже, но разрешается не использовать некоторые из описанных переменных.
Python:
1 2 3 4 5 6 7 |
# допускается также использовать # две целочисленные переменные # j и k a = [] n = 20 for i in range(0, n): a.append(int(input())) |
✍ Решение:
-
Проанализируем данный фрагмент кода на языке Python:
- В первой строчке кода объявляется список а. Дальше, идет объявление переменной n = 20, она отвечает за размер массива.
- Ниже мы видим инициализацию списка а. Мы должны дописать код дальнейшей программы, который последует после заполнения списка пользователем.
- Итак, по условию мы должны находить пары элементов, сумма которых делится на 2, но не делится на 4, причем парами считаются соседние элементы, например:
a[0]иa[1],a[1]иa[2]. - Мы можем узнать, делится ли данный элемент на число, если остаток от деления на него равен 0, и не делится — в противном случае. Тогда сумма соседних элементов при делении на 2 должна давать остаток 0, а при делении на 4 наоборот — отличный от 0.
- Введем цикл, который будет перебирать все элементы массива, считать сумму соседей и проверять истинность условия.
- Когда мы определились с условием, за счетчик возьмем переменную
k, которую допустимо брать исходя из комментариев к программе. - Мы добавили допустимую переменную
j, чтобы условный оператор выглядел компактнее. - Однако задача еще не решена. Во-первых, мы должны до цикла инициализировать счетчик
k = 0. Так как иначе Python выдаст ошибку. - Кроме того, добавим вывод результата после цикла.
- Таким образом, правильный вариант с учетом доработок:
При решении такого рода задач, необходимо помнить, что массив в Python — это список и это динамический тип данных. Кроме того, нумерация элементов массива начинается с 0.
for i in range(0, n-1): j = a[i] + a[i+1] if j%2 == 0 and j%4 != 0:
Так как мы рассматриваем элемент a[i + 1], значит, цикл должен работать до n — 1, чтобы не выйти за границы диапазона массива.
... if j%2 == 0 and j%4 != 0: k+=1
Дело в том, что мы пытаемся присвоить переменной k его же значение, но на 1 больше, но интерпретатор «не встречал» раньше переменной k, из-за чего возникает ошибка.
a = [] n = 20 for i in range(0, n): a.append(int(input())) k = 0 for i in range(0, n - 1): j = a[i] + a[i + 1] if j%2 == 0 and j%4 != 0: k += 1 print(k)
Задачи на обработку трёх подряд идущих элементов массива (тройки элементов массива)
25_2:
Дан целочисленный массив из 40 элементов. Элементы массива могут принимать целые значения от 0 до 10 000 включительно. Опишите на естественном языке или на одном из языков программирования алгоритм, позволяющий найти и вывести количество троек элементов массива, состоящих из равных между собой чисел. В данной задаче под тройкой подразумевается три подряд идущих элемента массива.
Например, для массива из семи элементов: 2; 2; 2; 4; 4; 4; 4 — ответ: 3.
Исходные данные объявлены так, как показано ниже. Запрещается использовать переменные, не описанные ниже, но разрешается не использовать некоторые из описанных переменных.
1 2 3 4 5 6 7 8 9 10 |
const N=40; var a: array[1..N] of integer; i, j, k:integer; begin for i:=1 to N do readln(a[i]); ... end. |
✍ Решение:
- из постановки задания видим, что необходимо искать количество чего-то, это значит, что нужно использовать переменную счетчик; возьмем для нее объявленную переменную k;
- счетчик всегда нужно сначала обнулять, поэтому следующим оператором будет:
- определим, количество чего нам необходимо считать: количество троек элементов массива, состоящих из равных между собой чисел. Т.е. необходимо сравнивать между собой каждые три подряд идущих элемента массива, например так:
- inc(k) — оператор, увеличивающий счетчик k на единицу;
- условие необходимо выполнять в цикле, так как нужно проверить все элементы массива; цикл со счетчиком необходимо организовать от 1 до N-2, в противном случае индексы элементов a[i+2] выйдут за границы диапазона массива (например, при i = 40, получим … a[40+2], а 42-го элемента массива не существует, поэтому цикл надо делать до i = 38, т.е. N-2).
if (a[i]=a[i+1]) and (a[i]=a[i+2]) then inc(k);
Результат:
for i:=1 to N-2 do if (a[i]=a[i+1]) and (a[i]=a[i+2]) then inc(k); writeln(k);
Более подробное объяснение предлагаем посмотреть на видео:
📹 YouTube здесь
📹 Видеорешение на RuTube здесь
Задачи на поиск максимума, минимума элементов массива и другие
Версия для печати и копирования в MS Word
1
Задания Д25 C2 № 9209
Дан массив, содержащий неотрицательные целые числа. Если сумма всех элементов массива чётная, нужно вывести количество чётных (по значению) элементов массива, если нечётная – количество нечётных.
Например, для массива из 6 элементов, равных соответственно 2, 6, 12, 17, 3, 8, ответом будет 4 – количество чётных элементов, так как общая сумма всех элементов чётна.
Напишите на одном из языков программирования программу для решения этой задачи. Исходные данные объявлены так, как показано ниже.
Запрещается использовать переменные, не описанные ниже, но разрешается не использовать часть из описанных.
| Бейсик | Паскаль |
|---|---|
|
CONST N=2000 DIM A(N) AS INTEGER DIM I, K AS INTEGER FOR I = 1 TO N INPUT A(I) NEXT I … END … END |
const N=2000; var a: array [1..N] of integer; i, k: integer; begin for i:=1 to N do readln(a[i]); … end. |
| Алгоритмический язык | Python |
|
алг нач цел N=2000 | Изменять значение целтаб a[1:N] цел i, k нц для i от 1 до N ввод a[i] кц … кон |
// допускается также использовать // целочисленные переменные i, k a = [] N=2000 //менять значение N нельзя for i in range(0, N): a.append(int(input())) … |
| Си++ | |
|
#include <iostream> using namespace std; #define N 2000 int main(){ int a[N]; int i, k; for (i=0; i < N; i++) cin >> a[i]; … return 0; } |
В качестве ответа Вам необходимо привести фрагмент программы, который должен находиться на месте многоточия. Вы можете записать решение также на другом языке программирования (укажите название и используемую версию языка программирования, например, Free Pascal 2.6). В этом случае Вы должны использовать те же самые исходные данные и переменные, какие были предложены в приведённых фрагментах.
Загрузка решений доступна для зарегистрировавшихся пользователей
2
Задания Д25 C2 № 9317
Дан массив, содержащий неотрицательные целые числа. Если сумма всех элементов массива чётная, нужно вывести количество нечётных (по значению) элементов массива, если нечётная – количество чётных.
Например, для массива из 6 элементов, равных соответственно 2, 6, 12, 17, 3, 8, ответом будет 2 – количество нечётных элементов, так как общая сумма всех элементов чётна.
Напишите на одном из языков программирования программу для решения этой задачи. Исходные данные объявлены так, как показано ниже. Запрещается использовать переменные, не описанные ниже, но разрешается не использовать часть из описанных.
| Бейсик | Паскаль |
|---|---|
|
CONST N=2000 DIM A(N) AS INTEGER DIM I, K AS INTEGER FOR I = 1 TO N INPUT A(I) NEXT I … END … END |
const N=2000; var a: array [1..N] of integer; i, k: integer; begin for i:=1 to N do readln(a[i]); … end. |
| Алгоритмический язык | Python |
|
алг нач цел N=2000 | Изменять значение целтаб a[1:N] цел i, k нц для i от 1 до N ввод a[i] кц … кон |
# допускается также использовать # целочисленные переменные i, k a = [] n=2000 #менять значение n нельзя for i in range(0, n): a.append(int(input())) … |
| Си++ | |
|
#include <iostream> using namespace std; #define N 2000 int main(){ int a[N]; int i, k; for (i=0; i < N; i++) cin >> a[i]; … return 0; } |
В качестве ответа Вам необходимо привести фрагмент программы, который должен находиться на месте многоточия. Вы можете записать решение также на другом языке программирования (укажите название и используемую версию языка программирования, например, Free Pascal 2.6). В этом случае Вы должны использовать те же самые исходные данные и переменные, какие были предложены в приведённых фрагментах.
Загрузка решений доступна для зарегистрировавшихся пользователей
3
Задания Д25 C2 № 9811
Дан массив, содержащий 2015 неотрицательных целых чисел. Ямой называется не крайний элемент массива, который меньше обоих своих соседей. Необходимо найти в массиве самую глубокую яму, то есть яму, значение которой минимально. Если в массиве нет ни одной ямы, ответ считается равным 0.
Например, в массиве из шести элементов, равных соответственно 4, 9, 2, 17, 3, 8, есть две ямы – 2 и 3, самая глубокая яма – 2.
Напишите на одном из языков программирования программу для решения этой задачи. Исходные данные объявлены так, как показано ниже. Запрещается использовать переменные, не описанные ниже, но разрешается не использовать часть из описанных.
| Бейсик | Python |
|---|---|
|
CONST N=2015 DIM A(N) AS INTEGER DIM I, J, K AS INTEGER FOR I = 1 TO N INPUT A(I) NEXT I … END |
//допускается также использо- // вание целочисленных // переменных j, k a = [] n = 2015 // менять значение n нельзя for i in range(0, n): a.append(int(input())) … |
| Паскаль | Алгоритмический язык |
|
const N=2015; var a: array [1..N] of integer; i, j, k: integer; begin for i:=1 to N do readln(a[i]); … end. |
алг нач цел N=2015| Изменять значение этой переменной нельзя целтаб a[1:N] цел i, j, k нц для i от 1 до N ввод a[i] кц … кон |
| Си++ | |
|
#include <iostream> using namespace std; #define N 2015 int main(){ int a[N]; int i, j, k; for (i=0; i < N; i++) cin >> a[i]; … return 0; } |
В качестве ответа Вам необходимо привести фрагмент программы (или описание алгоритма на естественном языке), который должен находиться на месте многоточия. Вы можете записать решение также на другом языке программирования (укажите название и используемую версию языка программирования, например, Free Pascal 2.4) или в виде блок-схемы. В этом случае Вы должны использовать те же самые исходные данные и переменные, какие были предложены в условии (например, в образце, записанном на естественном языке).
Загрузка решений доступна для зарегистрировавшихся пользователей
4
Задания Д25 C2 № 2914
Опишите на русском языке или на одном из языков программирования алгоритм вычисления разности между средним арифметическим максимального и минимального значений элементов заданного целочисленного массива из 30 элементов и средним арифметическим всех элементов этого массива.
Исходные данные объявлены так, как показано ниже.
| Бейсик | Паскаль |
|---|---|
|
N=30 DIM A(N) AS INTEGER DIM I, MIN, MAX, SUM AS INTEGER DIM SRED1,SRED2 AS SINGLE FOR I = 1 TO N INPUT A(I) NEXT I … END |
uses crt; const n=30; type massiv=array[1..n] of integer; var a:massiv; min,max,i,sum:integer; sred1,sred2:real; Begin for i:=1 to n do begin write(‘a[‘,i,’]= ‘);readln(a[i]); end; … end. |
| Си++ | Алгоритмический |
|
#include <iostream> using namespace std; #define N 30 int main(void) { int a[N]; int min,max,i,sum; float sred1,sred2; for (i=0; i < N; i++) cin >> a[i]; … } |
алг нач цел N = 30 целтаб a[1:N] цел min,max,i,sum вещ sred1,sred2 нц для i от 1 до N ввод a[i] кц … кон |
| Русский (естественный) язык | |
|
Объявляем массив A из 30 элементов. Объявляем целочисленные переменные min,max,i,sum. Объявляем вещественную переменную sred1,sred2. В цикле от 1 до 30 вводим элементы массива A с 1-го по 30-й. … |
|
| Python | |
|
# допускается также # использовать # целочисленные переменные min,max,i,sum # и вещественные переменные sred1,sred2 a = [] n = 30 for i in range(0, n): a.append(int(input())) … |
Загрузка решений доступна для зарегистрировавшихся пользователей
5
Задания Д25 C2 № 2909
Опишите на русском языке или на одном из языков программирования алгоритм подсчета суммы всех отрицательных элементов заданного целочисленного массива размером 30 элементов. Если отрицательных элементов нет, сообщите об этом.
Исходные данные объявлены так, как показано ниже.
| Бейсик | Паскаль |
|---|---|
|
N=30 DIM A(N) AS INTEGER DIM I, S AS INTEGER FOR I = 1 TO N INPUT A(I) NEXT I … END |
const N=30; var a: array [1..N] of integer; i, s: integer; begin for i:=1 to N do readln(a[i]); … end. |
| Си++ | Алгоритмический |
|
#include <iostream> using namespace std; #define N 30 int main(void) { int a[N]; int i, s; for (i=0; i < N; i++) cin >> a[i]; … } |
алг нач цел N = 30 целтаб a[1:N] цел i, s нц для i от 1 до N ввод a[i] кц … кон |
| Русский (естественный) язык | |
|
Объявляем массив A из 30 элементов. Объявляем целочисленные переменные I, S. В цикле от 1 до 30 вводим элементы массива A с 1-го по 30-й. … |
|
| Python | |
|
# допускается также # использовать # целочисленную переменную s a = [] n = 30 for i in range(0, n): a.append(int(input())) … |
Загрузка решений доступна для зарегистрировавшихся пользователей
6
Задания Д25 C2 № 2901
Дан целочисленный массив из 30 элементов. Элементы массива могут принимать значения от 0 до 1000. Опишите на русском языке или на одном из языков программирования алгоритм, который позволяет подсчитать и вывести среднее арифметическое элементов массива, имеющих нечетное значение. Гарантируется, что в исходном массиве хотя бы один элемент имеет нечетное значение.
Исходные данные объявлены так, как показано ниже. Запрещается использовать переменные, не описанные ниже, но разрешается не использовать часть из них.
| Бейсик | Паскаль |
|---|---|
|
N=30 DIM A(N) AS INTEGER DIM I, X, Y AS INTEGER DIM S AS SINGLE FOR I = 1 TO N INPUT A(I) NEXT I … 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. |
| Си++ | Алгоритмический |
|
#include <iostream> using namespace std; #define N 30 int main(void) { int a[N]; int i, x, y; float s; for (i=0; i < N; i++) cin >> a[i]; … } |
алг нач цел N = 30 целтаб a[1:N] цел i, x, y вещ s нц для i от 1 до N ввод a[i] кц … кон |
| Русский (естественный) язык | |
|
Объявляем массив A из 30 элементов. Объявляем целочисленные переменные I, X, Y. Объявляем вещественную переменную S. В цикле от 1 до 30 вводим элементы массива A с 1-го по 30-й. … |
|
| Python | |
|
# допускается также # использовать две # целочисленные переменные x, y # и вещественную переменную s a = [] n = 30 for i in range(0, n): a.append(int(input())) … |
В качестве ответа необходимо привести фрагмент программы (или описание алгоритма на естественном языке), который должен находиться на месте многоточия. Вы можете записать решение также на другом языке программирования (укажите название и используемую версию языка программирования, например Borland Pascal 7.0) или в виде блок-схемы. В этом случае вы должны использовать те же самые исходные данные и переменные, какие были предложены в условии (например, в образце, записанном на естественном языке).
Загрузка решений доступна для зарегистрировавшихся пользователей
7
Задания Д25 C2 № 2921
Дан целочисленный массив из 30 элементов. Элементы массива могут принимать значения от 0 до 1000. Опишите на русском языке или на одном из языков программирования алгоритм, который позволяет подсчитать и вывести среднее арифметическое элементов массива, имеющих нечетное значение. Гарантируется, что в исходном массиве хотя бы один элемент имеет нечетное значение.
Исходные данные объявлены так, как показано ниже. Запрещается использовать переменные, не описанные ниже, но разрешается не использовать часть из них.
| Бэйсик | Паскаль |
|---|---|
|
N=30 DIM A(N) AS INTEGER DIM I, X, Y AS INTEGER DIM S AS SINGLE FOR I = 1 TO N INPUT A(I) NEXT I … 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. |
| Си++ | Естественный язык |
|
#include <iostream> using namespace std; #define N 30 int main(void) {int a[N]; int i, x, y; float s; for (i=0; i<N; i++) cin >> a[i]; … } |
Объявляем массив A из 30 элементов. Объявляем целочисленные переменные I, X, Y. Объявляем вещественную переменную S. В цикле от 1 до 30 вводим элементы массива A с 1-го по 30-й. … |
| Python | |
|
# допускается также # использовать две # целочисленные переменные x, y # и вещественную переменную s a = [] n = 30 for i in range(0, n): a.append(int(input())) … |
В качестве ответа Вам необходимо привести фрагмент программы (или описание алгоритма на естественном языке), который должен находиться на месте многоточия. Вы можете записать решение также на другом языке программирования (укажите название и используемую версию языка программирования, например, Borland Pascal 7.0) или в виде блок-схемы. В этом случае вы должны использовать переменные, аналогичные переменным, используемым в алгоритме, записанном на естественном языке, с учетом синтаксиса и особенностей используемого вами языка программирования.
Загрузка решений доступна для зарегистрировавшихся пользователей
8
Задания Д25 C2 № 2925
Дан целочисленный массив из 30 элементов. Элементы массива могут принимать значения от -1000 до 1000. Опишите на русском или на одном из языков программирования алгоритм, который позволяет подсчитать и вывести среднее арифметическое тех элементов массива, которые по своему значению меньше последнего элемента этого массива. Гарантируется, что в исходном массиве есть хотя бы один такой элемент. Исходные данные объявлены так, как показано ниже. Запрещается использовать переменные, не описанные ниже, но разрешается не использовать часть из них.
| Бейсик | Паскаль |
|---|---|
|
N=30 DIM A(N) AS INTEGER DIM I, X, Y AS INTEGER DIM S AS SINGLE FOR I = 1 TO N INPUT A(I) NEXT I … 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. |
| Си++ | Алгоритмический |
|
#include <iostream> using namespace std; #define N 30 int main(void) { int a[N]; int i, x, y; float s; for (i=0; i < N; i++) cin >> a[i]; … } |
алг нач цел N = 30 целтаб a[1:N] цел i, x, y вещ s нц для i от 1 до N ввод a[i] кц … кон |
| Русский (естественный) язык | |
|
Объявляем массив A из 30 элементов. Объявляем целочисленные переменные I, X, Y. Объявляем вещественную переменную S. В цикле от 1 до 30 вводим элементы массива A с 1-го по 30-й. … |
|
| Python | |
|
# допускается также # использовать две # целочисленные переменные x, y # и вещественную переменную s a = [] n = 30 for i in range(0, n): a.append(int(input())) … |
В качестве ответа Вам необходимо привести фрагмент программы (или описание алгоритма на естественном языке), который должен находиться на месте многоточия. Вы можете записать решение также на другом языке программирования (укажите название и используемую версию языка программирования, например, Borland Pascal 7.0) или в виде блок-схемы. В этом случае вы должны использовать переменные, аналогичные переменным, используемые в алгоритме, записанном на естественном языке, с учетом синтаксиса и особенностей используемого вами языка программирования.
Загрузка решений доступна для зарегистрировавшихся пользователей
9
Задания Д25 C2 № 2912
Дан целочисленный массив из 30 элементов. Элементы массива могут принимать значения от 0 до 1000. Опишите на русском языке или на одном из языков программирования алгоритм, который позволяет подсчитать и вывести среднее арифметическое элементов массива, имеющих нечетное значение. Гарантируется, что в исходном массиве хотя бы один элемент имеет нечетное значение.
Исходные данные объявлены так, как показано ниже. Запрещается использовать переменные, не описанные ниже, но разрешается не использовать часть из них.
| Бейсик | Паскаль |
|---|---|
|
N=30 DIM A(N) AS INTEGER DIM I, X, Y AS INTEGER DIM S AS SINGLE FOR I = 1 TO N INPUT A(I) NEXT I … 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. |
| Си++ | Алгоритмический |
|
#include <iostream> using namespace std; #define N 30 int main(void) { int a[N]; int i, x, y; float s; for (i=0; i < N; i++) cin >> a[i]; … } |
алг нач цел N = 30 целтаб a[1:N] цел i, x, y вещ s нц для i от 1 до N ввод a[i] кц … кон |
| Русский (естественный) язык | |
|
Объявляем массив A из 30 элементов. Объявляем целочисленные переменные I, X, Y. Объявляем вещественную переменную S. В цикле от 1 до 30 вводим элементы массива A с 1-го по 30-й. … |
|
| Python | |
|
# допускается также # использовать две # целочисленные переменные x, y # и вещественную переменную s a = [] n = 30 for i in range(0, n): a.append(int(input())) … |
В качестве ответа Вам необходимо привести фрагмент программы (или описание алгоритма на естественном языке), который должен находиться на месте многоточия. Вы можете записать решение также на другом языке программирования (укажите название и используемую версию языка программирования, например, Borland Pascal 7.0) или в виде блок─схемы. В этом случае вы должны использовать переменные, аналогичные переменным, используемым в алгоритме, записанном на естественном языке, с учетом синтаксиса и особенностей используемого вами языка программирования.
Загрузка решений доступна для зарегистрировавшихся пользователей
10
Задания Д25 C2 № 3622
Дан целочисленный массив из 40 элементов. Элементы массива могут принимать произвольные значения. Опишите на русском языке или на одном из языков программирования алгоритм, который находит и выводит сумму элементов самой длинной возрастающей последовательности подряд идущих элементов массива.
Исходные данные объявлены так, как показано ниже. Запрещается использовать переменные, не описанные ниже, но разрешается не использовать часть из них.
| Бэйсик | Паскаль |
|---|---|
|
N = 40 DIM A(N) AS INTEGER DIM I, L, LMAX, S, SMAX AS INTEGER FOR I = 1 TO N INPUT A (I) NEXT I … END |
const N = 40; var a: array [1..N] of integer; i, l, lmax, s, smax: integer; begin for i : = 1 to N do readln(a[i]); … end. |
| Си++ | Алгоритмический язык |
|
#include <iostream> using namespace std; #define N 40 int main(void) {int a [N]; int i, l, lmax, s, smax; for (i = 0; i < N; i++) cin >> a[i]; … } |
алг нач цел N = 40 целтаб а[1:N] цел i, L, Lmax, S, Smax нц для i от 1 до N ввод a[i] кц … кон |
| Естественный язык | |
|
Объявляем массив А из 40 элементов. Объявляем целочисленные переменные I, L, Lmax, S, Smax. В цикле от 1 до 40 вводим элементы массива А с 1-го по 40-й. … |
|
| Python | |
|
# допускается также # использовать четыре # целочисленные переменные l, lmax, s, smax a = [] n = 40 for i in range(0, n): a.append(int(input())) … |
В качестве ответа вам необходимо привести фрагмент программы (или описание алгоритма на естественном языке), который должен находиться на месте многоточия. Вы можете записать решение также на другом языке программирования (укажите название и используемую версию языка програм-мирования, например Borland Pascal 7.0) или в виде блок-схемы. В этом случае вы должны использовать те же самые исходные данные и переменные, какие были предложены в условии (например, в образце, записанном на естественном языке).
Загрузка решений доступна для зарегистрировавшихся пользователей
11
Задания Д25 C2 № 3638
Опишите на русском языке или одном из языков программирования алгоритм подсчета среднего значения отрицательных элементов в целочисленном массиве из 30 элементов в предположении, что в нем есть хотя бы один отрицательный элемент.
Загрузка решений доступна для зарегистрировавшихся пользователей
12
Задания Д25 C2 № 3790
Дан целочисленный массив из 30 элементов. Элементы массива могут принимать значения от 0 до 1000. Опишите на русском языке или на одном из языков программирования алгоритм, который позволяет подсчитать и вывести среднее арифметическое элементов массива, имеющих нечетное значение. Гарантируется, что в исходном массиве хотя бы один элемент имеет нечетное значение.
Исходные данные объявлены так, как показано ниже. Запрещается использовать переменные, не описанные ниже, но разрешается не использовать часть из них.
| Бейсик | Паскаль |
|---|---|
|
N=30 DIM A(N) AS INTEGER DIM I, X, Y AS INTEGER DIM S AS SINGLE FOR I = 1 TO N INPUT A(I) NEXT I … 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. |
| Си++ | Алгоритмический |
|
#include <iostream> using namespace std; #define N 30 int main(void) { int a[N]; int i, x, y; float s; for (i=0; i < N; i++) cin >> a[i]; … } |
алг нач цел N = 30 целтаб a[1:N] цел i, x, y вещ s нц для i от 1 до N ввод a[i] кц … кон |
| Русский (естественный) язык | |
|
Объявляем массив A из 30 элементов. Объявляем целочисленные переменные I, X, Y. Объявляем вещественную переменную S. В цикле от 1 до 30 вводим элементы массива A с 1-го по 30-й. … |
|
| Python | |
|
# допускается также # использовать две # целочисленные переменные x, y # и вещественную переменную s a = [] n = 30 for i in range(0, n): a.append(int(input())) … |
В качестве ответа необходимо привести фрагмент программы (или описание алгоритма на естественном языке), который должен находиться на месте многоточия. Вы можете записать решение также на другом языке программирования (укажите название и используемую версию языка программирования, например Borland Pascal 7.0) или в виде блок-схемы. В этом случае вы должны использовать те же самые исходные данные и переменные, какие были предложены в условии (например, в образце, записанном на естественном языке).
Загрузка решений доступна для зарегистрировавшихся пользователей
13
Задания Д25 C2 № 5289
Дан целочисленный массив из 30 элементов. Элементы массива могут принимать целые значения от 0 до 1000. Элемент массива называется хорошим, если это двузначное число, причём цифра в разряде десятков больше, чем цифра в разряде единиц. Опишите на одном из языков программирования алгоритм, позволяющий найти и вывести сумму всех хороших элементов массива.
Исходные данные объявлены так, как показано ниже. Запрещается использовать переменные, не описанные ниже, но разрешается не использовать часть из них.
| Бэйсик | Паскаль |
|---|---|
|
N=30 DIM A(N) AS INTEGER DIM I, J, S AS INTEGER FOR I = 1 TO N INPUT A(I) NEXT I … END |
const N=30; var a: array [1..N] of integer; i, j, s: integer; begin for i:=l to N do readln(a[i]); … end. |
| Си++ | Алгоритмический язык |
|
#include <iostream> using namespace std; #define N 30 int main(){ int a[N]; int i, j, s; for (i=0; i < N; i++) cin >> a[i]; … |
алг нач цел N=30 целтаб а[1:N] цел i, j, s нц для i от 1 до N ввод а[i] кц … кон |
| Python | |
|
# допускается также # использовать две # целочисленные переменные j, s a = [] n = 30 for i in range(0, n): a.append(int(input())) … |
В качестве ответа Вам необходимо привести фрагмент программы, который должен находиться на месте многоточия. Вы можете записать решение также на другом языке программирования (укажите название и используемую версию языка программирования, например, Free Pascal 2.4) или в виде блок-схемы. В этом случае вы должны использовать те же самые исходные данные и переменные, какие были предложены в условии.
Загрузка решений доступна для зарегистрировавшихся пользователей
14
Дан целочисленный массив из 30 элементов. Элементы массива могут принимать значения от −20 до 20 — сведения о температуре за каждый день ноября. Опишите на русском языке или на одном из языков программирования алгоритм, который позволяет подсчитать и вывести среднюю температуру среди дней, когда были заморозки (температура опускалась ниже 0 °C). Гарантируется, что хотя бы в один день ноября была отрицательная температура.
Исходные данные объявлены так, как показано ниже. Запрещается использовать переменные, не описанные ниже, но разрешается не использовать часть из них.
| Бейсик | Паскаль |
|---|---|
|
N=30 DIM A(N) AS INTEGER DIM I, X, Y AS INTEGER DIM S AS SINGLE FOR I = 1 TO N INPUT A(I) NEXT I … END |
const N=30; var a: array [1..N] of integer; i, x, y: integer; s: real; begin for i:=1 to N do read (a[i]); … end. |
| Си++ | Алгоритмический язык |
|
#include <iostream> using namespace std; #define N 30 int main(void) {int a[N]; int i, x, y; float s; for (i=0; i < N; i++) cin >> a[i]; … } |
алг нач цел N = 30 целтаб a[1:N] цел i, x, y вещ s нц для i от 1 до N ввод a[i] кц … кон |
| Естественный язык | |
|
Объявляем массив A из 30 элементов. Объявляем целочисленные переменные I, X, Y. Объявляем вещественную переменную S. В цикле от 1 до 30 вводим элементы массива A с 1-го по 30-й. |
|
| Python | |
|
# допускается также # использовать две # целочисленные переменные x, y # и вещественную переменную s a = [] n = 30 for i in range(0, n): a.append(int(input())) … |
В качестве ответа Вам необходимо привести фрагмент программы (или описание алгоритма на естественном языке), который должен находиться на месте многоточия. Вы можете записать решение также на другом языке
программирования (укажите название и используемую версию языка программирования, например Borland Pascal 7.0) или в виде блок-схемы. В этом случае Вы должны использовать переменные, аналогичные переменным, используемым в алгоритме, записанном на естественном языке, с учётом синтаксиса и особенностей используемого Вами языка программирования.
Загрузка решений доступна для зарегистрировавшихся пользователей
15
Дан целочисленный массив из 30 элементов. Элементы массива могут принимать значения от 1 до 5 и содержат годовые оценки по информатике учащихся выпускного класса. Опишите на русском языке или на одном из языков программирования алгоритм, который позволяет подсчитать и вывести средний балл среди «хорошистов» и «отличников» (тех, кто получил итоговую отметку «4» или «5»). Гарантируется, что в классе есть хотя бы один «хорошист» или «отличник». Исходные данные объявлены так, как показано ниже. Запрещается использовать переменные, не описанные ниже, но разрешается не использовать часть из них.
| Бейсик | Паскаль |
|---|---|
|
N=30 DIM A(N) AS INTEGER DIM I, X, Y AS INTEGER DIM S AS SINGLE FOR I = 1 TO N INPUT A(I) NEXT I … END |
const N=30; var a: array [1..N] of integer; i, x, y: integer; s: real; begin for i:=1 to N do read (a[i]); … end. |
| Си++ | Алгоритмический язык |
|
#include <iostream> using namespace std; #define N 30 int main(void) {int a[N]; int i, x, y; float s; for (i=0; i < N; i++) cin >> a[i]; … } |
алг нач цел N = 30 целтаб a[1:N] цел i, x, y вещ s нц для i от 1 до N ввод a[i] кц … кон |
| Естественный язык | |
|
Объявляем массив A из 30 элементов. Объявляем целочисленные переменные I, X, Y. Объявляем вещественную переменную S. В цикле от 1 до 30 вводим элементы массива A с 1-го по 30-й. |
|
| Python | |
|
# допускается также # использовать две # целочисленные переменные x, y # и вещественную переменную s a = [] n = 30 for i in range(0, n): a.append(int(input())) … |
В качестве ответа Вам необходимо привести фрагмент программы (или описание алгоритма на естественном языке), который должен находиться на месте многоточия. Вы можете записать решение также на другом языке
программирования (укажите название и используемую версию языка программирования, например Borland Pascal 7.0) или в виде блок-схемы. В этом случае Вы должны использовать переменные, аналогичные переменным, используемым в алгоритме, записанном на естественном языке, с учётом синтаксиса и особенностей используемого Вами языка программирования.
Загрузка решений доступна для зарегистрировавшихся пользователей
16
Дан целочисленный массив из 30 элементов. Элементы массива могут принимать значения от 150 до 200 — рост учащихся выпускного класса. Опишите на русском языке или на одном из языков программирования алгоритм, который позволяет подсчитать и вывести средний рост среди учащихся класса, входящих в школьную баскетбольную команду (в команду входят все учащиеся, чей рост больше 180 сантиметров). Гарантируется, что в классе учится хотя бы один член баскетбольной команды. Исходные данные объявлены так, как показано ниже. Запрещается использовать переменные, не описанные ниже, но разрешается не использовать часть из них.
| Бейсик | Паскаль |
|---|---|
|
N=30 DIM A(N) AS INTEGER DIM I, X, Y AS INTEGER DIM S AS SINGLE FOR I = 1 TO N INPUT A(I) NEXT I … END |
const N=30; var a: array [1..N] of integer; i, x, y: integer; s: real; begin for i:=1 to N do read (a[i]); … end. |
| Си++ | Алгоритмический язык |
|
#include <iostream> using namespace std; #define N 30 int main(void) {int a[N]; int i, x, y; float s; for (i=0; i < N; i++) cin >> a[i]; … } |
алг нач цел N = 30 целтаб a[1:N] цел i, x, y вещ s нц для i от 1 до N ввод a[i] кц … кон |
| Естественный язык | |
|
Объявляем массив A из 30 элементов. Объявляем целочисленные переменные I, X, Y. Объявляем вещественную переменную S. В цикле от 1 до 30 вводим элементы массива A с 1-го по 30-й. |
|
| Python | |
|
# допускается также # использовать две # целочисленные переменные x, y # и вещественную переменную s a = [] n = 30 for i in range(0, n): a.append(int(input())) … |
В качестве ответа Вам необходимо привести фрагмент программы (или описание алгоритма на естественном языке), который должен находиться на месте многоточия. Вы можете записать решение также на другом языке
программирования (укажите название и используемую версию языка программирования, например Borland Pascal 7.0) или в виде блок-схемы. В этом случае Вы должны использовать переменные, аналогичные переменным, используемым в алгоритме, записанном на естественном языке, с учётом синтаксиса и особенностей используемого Вами языка программирования.
Загрузка решений доступна для зарегистрировавшихся пользователей
17
Дан целочисленный массив из 30 элементов. Элементы массива могут принимать значения от 0 до 100 и содержат итоговые баллы участников олимпиады по информатике. Опишите на русском языке или на одном из языков программирования алгоритм, который позволяет подсчитать и вывести средний балл среди участников, ставших призёрами олимпиады (призёрами олимпиады стали школьники, набравшие более 50 баллов). Гарантируется, что хотя бы один участник олимпиады стал её призёром. Исходные данные объявлены так, как показано ниже. Запрещается использовать переменные, не описанные ниже, но разрешается не использовать часть из них.
| Бейсик | Паскаль |
|---|---|
|
N=30 DIM A(N) AS INTEGER DIM I, X, Y AS INTEGER DIM S AS SINGLE FOR I = 1 TO N INPUT A(I) NEXT I … END |
const N=30; var a: array [1..N] of integer; i, x, y: integer; s: real; begin for i:=1 to N do read (a[i]); … end. |
| Си++ | Алгоритмический язык |
|
#include <iostream> using namespace std; #define N 30 int main(void) {int a[N]; int i, x, y; float s; for (i=0; i < N; i++) cin >> a[i]; … } |
алг нач цел N = 30 целтаб a[1:N] цел i, x, y вещ s нц для i от 1 до N ввод a[i] кц … кон |
| Естественный язык | |
|
Объявляем массив A из 30 элементов. Объявляем целочисленные переменные I, X, Y. Объявляем вещественную переменную S. В цикле от 1 до 30 вводим элементы массива A с 1-го по 30-й. |
|
| Python | |
|
# допускается также # использовать две # целочисленные переменные x, y # и вещественную переменную s a = [] n = 30 for i in range(0, n): a.append(int(input())) … |
В качестве ответа Вам необходимо привести фрагмент программы (или описание алгоритма на естественном языке), который должен находиться на месте многоточия. Вы можете записать решение также на другом языке
программирования (укажите название и используемую версию языка программирования, например Borland Pascal 7.0) или в виде блок-схемы. В этом случае Вы должны использовать переменные, аналогичные переменным, используемым в алгоритме, записанном на естественном языке, с учётом синтаксиса и особенностей используемого Вами языка программирования.
Загрузка решений доступна для зарегистрировавшихся пользователей
18
Задания Д25 C2 № 6200
Дан массив, содержащий 2014 неотрицательных целых чисел, не превышающих 10 000. Опишите на одном из языков программирования алгоритм, позволяющий найти и вывести сумму всех содержащихся в массиве трёхзначных чисел, десятичная запись которых оканчивается на 9, но не на 99. Если подходящих чисел в массиве нет, программа должна вывести число –1. Исходные данные объявлены так, как показано ниже. Запрещается использовать переменные, не описанные ниже, но разрешается не использовать часть из описанных.
| Паскаль | Бейсик |
|---|---|
|
const N=2014; var a : array [1..N] of integer; i, j, s: integer; begin for i:=1 to N do readln(a[i]); … end. |
N=2014 DIM A(N) AS INTEGER DIM I, J, S AS INTEGER FOR I = 1 TO N INPUT A(I) NEXT I … END |
| Си++ | Алгоритмический |
|
#include <iostream> using namespace std; #define N 2014 int main() { int a[N]; int i, j, s; for (i=0; i < N; i++) cin >> a[i]; … } |
алг нач цел N=2014 целтаб a[1:N] цел i, j, s нц для i от 1 до N ввод a[i] кц … кон |
| Python | |
|
# допускается также # использовать две # целочисленные переменные j, s a = [] n = 2014 for i in range(0, n): a.append(int(input())) … |
В качестве ответа Вам необходимо привести фрагмент программы, который должен находиться на месте многоточия. Вы можете записать решение также на другом языке программирования (укажите название и используемую версию языка программирования, например, Free Pascal 2.4) или в виде блок-схемы. В этом случае Вы должны использовать те же самые исходные данные и переменные, какие были предложены в условии.
Загрузка решений доступна для зарегистрировавшихся пользователей
19
Задания Д25 C2 № 10301
Дан массив, содержащий 2016 неотрицательных целых чисел. Необходимо найти в этом массиве количество таких элементов, которые равны среднему арифметическому двух элементов, расположенных сразу после него. Например, в массиве из 6 элементов, равных соответственно 2, 3, 1, 5, 6, 4, есть три таких элемента, они расположены на первом, втором и четвёртом месте и равны 2, 3 и 5.
Напишите на одном из языков программирования программу для решения этой задачи. Исходные данные объявлены так, как показано ниже. Запрещается использовать переменные, не описанные ниже, но разрешается не использовать часть из описанных переменных.
| Бейсик | Python |
|---|---|
|
CONST N=2016 DIM A(N) AS INTEGER DIM I, K AS INTEGER FOR I = 1 TO N INPUT A(I) NEXT I … END |
# допускается также использо- # вание целочисленной # переменной k a = [] N = 2016 for i in range(0, N): a.append(int(input())) … |
| Паскаль | Алгоритмический язык |
|
const N=2016; var a: array [1..N] of integer; i, k: integer; begin for i:=1 to N do readln(a[i]); … end. |
алг нач цел N=2016 целтаб a[1:N] цел i, k нц для i от 1 до N ввод a[i] кц … кон |
| Си++ | |
|
#include <iostream> using namespace std; #define N 2016 int main(){ int a[N]; int i, k; for (i=0; i < N; i++) cin >> a[i]; … return 0; } |
В качестве ответа Вам необходимо привести фрагмент программы, который должен находиться на месте многоточия. Вы можете записать решение также на другом языке программирования (укажите название и используемую версию языка программирования, например Free Pascal 2.4). В этом случае Вы должны использовать те же самые исходные данные и переменные, какие были предложены в условии.
Загрузка решений доступна для зарегистрировавшихся пользователей
20
Задания Д25 C2 № 10328
Дан массив, содержащий 2016 неотрицательных целых чисел. Необходимо найти в этом массиве количество таких элементов, которые равны среднему арифметическому двух элементов, расположенных непосредственно перед ним. Например, в массиве из 6 элементов, равных соответственно 4, 6, 5, 1, 3, 2, есть три таких элемента, они расположены на третьем, пятом и шестом месте и равны 5, 3 и 2.
Напишите на одном из языков программирования программу для решения этой задачи. Исходные данные объявлены так, как показано ниже. Запрещается использовать переменные, не описанные ниже, но разрешается не использовать часть из описанных переменных.
| Бейсик | Python |
|---|---|
|
CONST N=2016 DIM A(N) AS INTEGER DIM I, K AS INTEGER FOR I = 1 TO N INPUT A(I) NEXT I … END |
# допускается также использо- # вание целочисленной # переменной k a = [] N = 2016 for i in range(0, N): a.append(int(input())) … |
| Паскаль | Алгоритмический язык |
|
const N=2016; var a: array [1..N] of integer; i, k: integer; begin for i:=1 to N do readln(a[i]); … end. |
алг нач цел N=2016 целтаб a[1:N] цел i, k нц для i от 1 до N ввод a[i] кц … кон |
| Си | |
|
#include <iostream> using namespace std; #define N 2016 int main(){ int a[N]; int i, k; for (i=0; i cin >> a[i]; … return 0; } |
В качестве ответа Вам необходимо привести фрагмент программы, который должен находиться на месте многоточия. Вы можете записать решение также на другом языке программирования (укажите название и используемую версию языка программирования, например Free Pascal 2.4). В этом случае Вы должны использовать те же самые исходные данные и переменные, какие были предложены в условии.
Загрузка решений доступна для зарегистрировавшихся пользователей
21
Задания Д25 C2 № 10399
Дан массив, содержащий 2016 целых чисел. Необходимо найти и вывести сумму тех элементов этого массива, чётность которых совпадает с чётностью максимального элемента.
Например, в массиве из 6 элементов, равных соответственно 2, 3, 1, 5, 6, 4, максимальный элемент чётный (6), значит, ответом будет сумма чётных элементов этого массива 2 + 6 + 4 = 12.
Напишите на одном из языков программирования программу для решения этой задачи. Исходные данные объявлены так, как показано ниже. Запрещается использовать переменные, не описанные ниже, но разрешается не использовать часть из описанных переменных.
| Бейсик | Python |
|---|---|
|
CONST N=2016 DIM A(N) AS INTEGER DIM I, M, S, P AS INTEGER FOR I = 1 TO N INPUT A(I) NEXT I … END |
# допускается также использо- # вание целочисленной # переменной m, s, p a = [] N = 2016 for i in range(0, N): a.append(int(input())) … |
| Паскаль | Алгоритмический язык |
|
const N=2016; var a: array [1..N] of integer; i, m, s, p: integer; begin for i:=1 to N do readln(a[i]); … end. |
алг нач цел N=2016 целтаб a[1:N] цел i, m, s, p нц для i от 1 до N ввод a[i] кц … кон |
| Си++ | |
|
#include <iostream> using namespace std; #define N 2016 int main(){ int a[N]; int i, m, s, p; for (i=0; i < N; i++) cin >> a[i]; … return 0; } |
В качестве ответа Вам необходимо привести фрагмент программы, который должен находиться на месте многоточия. Вы можете записать решение также на другом языке программирования (укажите название и используемую версию языка программирования, например Free Pascal 2.4). В этом случае Вы должны использовать те же самые исходные данные и переменные, какие были предложены в условии.
Загрузка решений доступна для зарегистрировавшихся пользователей
22
Задания Д25 C2 № 10426
Дан массив, содержащий 2016 целых чисел. Необходимо найти и вывести сумму тех элементов этого массива, чётность которых не совпадает с чётностью минимального элемента.
Например, в массиве из 6 элементов, равных соответственно 2, 3, 1, 5, 6, 4, минимальный элемент нечётный (1), значит, ответом будет сумма чётных элементов этого массива 2 + 6 + 4 = 12.
Если элементов нужной чётности в массиве нет, сумма считается равной нулю. Напишите на одном из языков программирования программу для решения этой задачи. Исходные данные объявлены так, как показано ниже. Запрещается использовать переменные, не описанные ниже, но разрешается не использовать часть из описанных переменных.
| Бейсик | Python |
|---|---|
|
CONST N=2016 DIM A(N) AS INTEGER DIM I, M, S, P AS INTEGER FOR I = 1 TO N INPUT A(I) NEXT I … END |
# допускается также использо- # вание целочисленной # переменной m, s, p a = [] N = 2016 for i in range(0, N): a.append(int(input())) … |
| Паскаль | Алгоритмический язык |
|
const N=2016; var a: array [1..N] of integer; i, m, s, p: integer; begin for i:=1 to N do readln(a[i]); … end. |
алг нач цел N=2016 целтаб a[1:N] цел i, m, s, p нц для i от 1 до N ввод a[i] кц … кон |
| Си++ | |
|
#include <iostream> using namespace std; #define N 2016 int main(){ int a[N]; int i, m, s, p; for (i=0; i < N; i++) cin >> a[i]; … return 0; } |
В качестве ответа Вам необходимо привести фрагмент программы, который должен находиться на месте многоточия. Вы можете записать решение также на другом языке программирования (укажите название и используемую версию языка программирования, например Free Pascal 2.4). В этом случае Вы должны использовать те же самые исходные данные и переменные, какие были предложены в условии.
Загрузка решений доступна для зарегистрировавшихся пользователей
23
Задания Д25 C2 № 13636
Дан массив, содержащий 2017 положительных целых чисел, не превышающих 10000. Необходимо найти и вывести сумму таких элементов этого массива, шестнадцатеричная запись которых содержит ровно три знака, причём последний из них – буква от A до F. Например, для массива из 4 элементов, содержащего числа 522, 4095, 296, 205, ответ будет равен 4617: в шестнадцатеричной системе эти числа записываются как 20A, FFF, 128, CD; первые два подходят, в третьем – последняя цифра не записывается буквой, в четвёртом – меньше трёх знаков. Если таких чисел в массиве нет, сумма считается равной 0. Исходные данные объявлены так, как показано ниже. Запрещается использовать переменные, не описанные ниже, но разрешается не использовать часть из описанных.
| Бейсик | Python |
|---|---|
|
CONST N=2017 DIM A(N) AS INTEGER DIM I, M, K AS INTEGER FOR I = 1 TO N INPUT A(I) NEXT I … END |
# допускается также использо- # вание целочисленных # переменных m, k a = [] N = 2017 for i in range(0, N): a.append(int(input())) … |
| Паскаль | Алгоритмический язык |
|
const N=2017; var a: array [1..N] of integer; i, m, k: integer; begin for i:=1 to N do readln(a[i]); … end. |
алг нач цел N=2017 целтаб a[1:N] цел i, m, k нц для i от 1 до N ввод a[i] кц … кон |
| Си++ | |
|
#include <iostream> using namespace std; #define N 2017 int main(){ int a[N]; int i, m, k; for (i=0; i<N; i++) cin >> a[i]; … return 0; } |
В качестве ответа Вам необходимо привести фрагмент программы, который должен находиться на месте многоточия. Вы можете записать решение также на другом языке программирования (укажите название и версию языка программирования). В этом случае Вы должны использовать те же самые исходные данные и переменные, какие были предложены в условии.
Загрузка решений доступна для зарегистрировавшихся пользователей
24
Дан массив, содержащий 2018 положительных целых чисел, не превышающих 30 000. Необходимо определить, сколько в этом массиве элементов, десятичная и восьмеричная запись которых содержит одинаковое количество цифр.
Напишите на одном из языков программирования программу для решения этой задачи. Исходные данные объявлены так, как показано ниже. Запрещается использовать переменные, не описанные ниже, но разрешается не использовать часть из описанных.
| Бейсик | Python |
|---|---|
|
CONST N=2018 DIM A(N) AS INTEGER DIM B, I, K, L, M AS INTEGER FOR I = 1 TO N INPUT A(I) NEXT I … END |
# кроме уже указанных # допускается использование # целочисленных переменных # k, b, l, m a = [] N = 2018 for i in range(0, N): a.append(int(input())) … |
| Паскаль | Алгоритмический язык |
|
const N=2018; var a: array [1..N] of integer; b, i, k, l, m: integer; begin for i:=1 to N do readln(a[i]); … end. |
алг нач цел N=2018 целтаб a[1:N] цел b, i, k, l, m нц для i от 1 до N ввод a[i] кц … кон |
| Си++ | |
|
#include <iostream> using namespace std; const int N=2018; int main(){ int a[N]; int b, i, k, l, m; for (i=0; i cin >> a[i]; … return 0; } |
В качестве ответа Вам необходимо привести фрагмент программы, который должен находиться на месте многоточия. Вы можете записать решение также на другом языке программирования (укажите название и используемую версию языка программирования, например, Free Pascal 2.6). В этом случае Вы должны использовать те же самые исходные данные и переменные, какие были предложены в условии.
Загрузка решений доступна для зарегистрировавшихся пользователей
25
Задания Д25 C2 № 14786
Дан массив, содержащий 2018 положительных целых чисел, не превышающих 30 000. Необходимо определить, сколько в этом массиве элементов, десятичная и шестнадцатеричная запись которых содержит одинаковое количество цифр.
Напишите на одном из языков программирования программу для решения этой задачи. Исходные данные объявлены так, как показано ниже.
Запрещается использовать переменные, не описанные ниже, но разрешается не использовать часть из описанных.
| Бейсик | Python |
|---|---|
|
CONST N=2018 DIM A(N) AS INTEGER DIM B, I, K, L, M AS INTEGER FOR I = 1 TO N INPUT A(I) NEXT I … END |
# кроме уже указанных # допускается использование # целочисленных переменных # k, b, l, m a = [] N = 2018 for i in range(0, N): a.append(int(input())) … |
| Паскаль | Алгоритмический язык |
|
const N=2018; var a: array [1..N] of integer; b, i, k, l, m: integer; begin for i:=1 to N do readln(a[i]); … end. |
алг нач цел N=2018 целтаб a[1:N] цел b, i, k, l, m нц для i от 1 до N ввод a[i] кц … кон |
| Си++ | |
|
#include <iostream> using namespace std; const int N=2018; int main(){ int a[N]; int b, i, k, l, m; for (i=0; i < N; ++i) cin >> a[i]; … return 0; } |
В качестве ответа Вам необходимо привести фрагмент программы, который должен находиться на месте многоточия. Вы можете записать решение также на другом языке программирования (укажите название и используемую версию языка программирования, например, Free Pascal 2.6). В этом случае Вы должны использовать те же самые исходные данные и переменные, какие были предложены в условии.
Загрузка решений доступна для зарегистрировавшихся пользователей
26
Дан целочисленный массив из 30 элементов. Элементы массива могут принимать целые значения от 0 до 10 000 включительно. Опишите на одном из языков программирования алгоритм, который находит сумму элементов массива, меньших 200 и при этом кратных 5, а затем заменяет каждый такой элемент на число, равное найденной сумме. Гарантируется, что хотя бы один такой элемент в массиве есть. В качестве результата необходимо вывести изменённый массив, каждый элемент выводится с новой строчки. Например, для исходного массива из шести элементов:
204
115
27
20
305
4
программа должна вывести следующий массив:
204
135
27
135
305
4
Исходные данные объявлены так, как показано ниже на примерах для некоторых языков программирования. Запрещается использовать переменные, не описанные ниже, но разрешается не использовать некоторые из описанных переменных.
| Бейсик | Python |
|---|---|
|
CONST N AS INTEGER = 30 DIM A (1 TO N) AS LONG DIM I, J, K AS LONG FOR I = 1 TO N INPUT A(I) NEXT I … END |
# допускается также # использовать две # целочисленные # переменные j, k a = [] n = 30 for i in range(0, n): a.append(int(input())) … |
| Паскаль | Алгоритмический язык |
|
const n = 30; var a: array [1..n] of longint; i, j, k: longint; begin for i := 1 to n do readln(a[i]); … end. |
алг нач цел N = 30 целтаб а[1:N] цел i, j, k нц для i от 1 до N ввод a[i] кц … кон |
| Си++ | |
|
#include <iostream> using namespace std; const int n = 30; int main() { int a[n]; int i, j, k; for (i = 0; i < n; i++) std::cin >> a[i]; … return 0; } |
качестве ответа Вам необходимо привести фрагмент программы, который должен находиться на месте многоточия. Вы можете записать решение также на другом языке программирования (укажите название и используемую версию языка программирования, например Free Pascal 2.6). В этом случае Вы должны использовать те же самые исходные данные и переменные, какие были предложены в условии (например, в образце, записанном на Алгоритмическом языке).
Загрузка решений доступна для зарегистрировавшихся пользователей
Завершить тестирование, свериться с ответами, увидеть решения.
Популярность ЕГЭ по информатике и ИКТ в 2022 году значительно выросла. В этом году его планируют сдавать почти 129 тысяч человек. Готовиться к экзамену следует заранее, поэтому давайте разберем, как проходит ЕГЭ по информатике в текущем году, какие изменения внесены в структуру и порядок проведения экзамена, сколько заданий в ЕГЭ по информатике, с чего начинать подготовку.
Изменения в ЕГЭ по информатике 2022
Какие типы заданий встретятся на ЕГЭ по информатике 2022?
Как подготовиться к ЕГЭ по информатике 2022?
Изменения в ЕГЭ по информатике 2022
Начиная с 2021 года ЕГЭ по информатике в корне изменился. Новшества коснулись как формата проведения экзамена, так и его структуры.
Какие внесены изменения:
- Все задания будут адаптированы к новому компьютерному формату.
- Убрали задания, подразумевающие развернутый ответ.
- Экзамен теперь проводится только на компьютерах.
- В него добавлены практические задачи по программированию.
- Задания могут быть выполнены как на учебном алгоритмическом языке программирования, так и на других языках, например, C++, Pascal, Python, Java.
Дополнительно внесены следующие изменения в ЕГЭ 2022 по информатике:
- Снижен максимальный первичный балл с 30 до 29.
- Изменилось задание № 3. Теперь оно должно выполняться с использованием файла, содержащего простую реляционную базу данных, состоящую из нескольких таблиц с установленными логическими связями.
- Внесены изменение в задание № 17. Оно выполняется с использованием файла, содержащего целочисленную последовательность, предназначенную для обработки с использованием массива.
- Изменилась система оценки задания № 25, которое предусматривает написание программы.
- Стало больше заданий, где требуется использовать дополнительные файлы.
Виды заданий по информатике:
- задачи по программированию;
- задачи по логике;
- кодирование информации;
- поиск данных;
- работа с информационными моделями;
- обработка числовой информации;
- хранение информации.
О структуре экзамена
На выполнение экзаменационных тестов дается 235 минут. Он состоит из 27 заданий с кратким ответом.
Структура ЕГЭ по информатике в 2022 году следующая:
- базовый уровень сложности – 11 заданий;
- повышенный уровень сложности – 11 заданий;
- высокий уровень сложности – 5 заданий.
Предлагается 10 заданий с использованием специализированного ПО с максимальным первичным баллом 12, а также 17 заданий без использования специализированного ПО с максимальным первичным баллом 17.
Оценивание работы производится автоматизированным способом.
Шкала оценивания
В КИМ задания базового и повышенного уровней сложности предназначены для проверки знания программы на базовом уровне:
- Как ученик понимает программы, написанные на универсальном алгоритмическом языке высокого уровня.
- Умение пользоваться готовыми прикладными компьютерными программами.
- Умение написания и отладки программ с использованием основных конструкций программирования.
- Знание основных конструкций программирования.
- Владение компьютерными средствами представления и анализа данных.
- Умение анализировать алгоритмы с использованием таблиц.
Задания повышенного и высокого уровня сложности проверяют знание программы на профильном уровне:
- Знание универсальных языков программирования высокого уровня: Школьный алгоритмический язык, С#, C++, Pascal, Java, Python.
- Что такое сложность алгоритма, основных алгоритмов обработки числовой и текстовой информации, алгоритмов поиска и сортировки.
- Понимание важнейших видов дискретных объектов.
- Что такое базовые типы и структурах данных.
- Использование основных управляющих конструкций.
- Разработка, тестирование, отладка программ.
- Построение математических объектов информатики и т. д.
Решения заданий с 1 по 25 дают по 1 баллу, за решение заданий 26 и 27 — 2 балла. Максимальный первичный балл за выполнение работы 29.
На основе результатов выполнения всех заданий работы определяются первичные баллы, которые затем переводятся в тестовые по 100-балльной шкале.
После проведения экзаменов составляется шкала перевода баллов по среднему значению результата прошлого года. Для этого существует специальная формула. Соответственно шкала будет меняться в зависимости от результатов прохождения экзамена.
Специалисты прогнозируют, что в 2022 году величина проходного балла составит 40 вторичных баллов.
Какие типы заданий встретятся на ЕГЭ по информатике 2022?
Задания разделены на 2 типа: без использования стороннего ПО и решаемые с помощью компьютера.
Задачи, которые решаются «вручную». Сюда относятся задания 1, 2, 4, 5, 6, 7,8, 11, 12, 13, 14,15, 19, 20, 21, 22,23. Ответом в них будет число или последовательность букв. Сюда входят следующие задания:
- По информационным моделям (1, 13). Нужно ориентироваться в таблицах и выучить хотя бы два метода.
- По логике (2, 15). Для их решения нужно знать таблицы истинности основных логических операций, преобразование и анализ выражений.
- По алгоритмизации (5, 12, 19, 20, 21, 23). Задания с исполнителями и различными алгоритмами.
- По кодированию информации (4, 7, 8, 11, 14). Задания с применением формул, алгоритмов перевода чисел в различные системы счисления. Сюда же включены комбинаторка, единицы измерения информации и условие Фано.
Задачи, которые решаются с помощью ПК, предлагаются нескольких типов:
- Работа с предложенным файлом. Задания 3, 9, 10, 18. Для решения потребуется знать функции текстовых редакторов и редакторов электронных таблиц, а также теорию по реляционным базам данных.
- Создание программы. Задания 16, 25. Потребуется написать код и получить ответ.
- Написание программы и получение ответа, с использованием предложенного файла. Задачи 17, 24, 26, 27. Здесь не проверяется способ решения. Только ответ.
Как подготовиться к ЕГЭ по информатике 2022?
Подготовка к ЕГЭ должна быть продуманной и тщательной. Следуйте следующему плану:
- Пройдите диагностическое тестирование или решите последнюю демоверсию экзамена. Так вы сможете оценить свой уровень знаний.
- Обратите внимание на свое умение программировать, т. к. этой теме посвящено почти треть заданий. Научитесь работать с файлами и строками, заучите алгоритмы сортировки и т.д.
- Произведите оценку уровня подготовки в школе и определитесь, будет вам его достаточно или потребуется дополнительно заниматься с репетитором.
- Заниматься можно онлайн, индивидуально с тренером или в группе.
- Можно проходить курс обучения самостоятельно, воспользовавшись демоверсиями ЕГЭ или обновленными демоверсиями КИМ.
Продолжаем анализ демонстрационного варианта ЕГЭ по информатике 2022.
В этой статье разберём с 22-ого по 27 задание.
Источник задач: https://fipi.ru/ege/demoversii-specifikacii-kodifikatory#!/tab/151883967-5.
ЕГЭ по информатике 2022 будет повержено!
Разбор демоверсии ЕГЭ по информатике 2022 (1-5 Задание)
Разбор демоверсии ЕГЭ по информатике 2022 (6-10 Задание)
Разбор демоверсии ЕГЭ по информатике 2022 (11-15 Задание)
Разбор демоверсии ЕГЭ по информатике 2022 (16-21 Задание)
Задание 22
Ниже на четырёх языках программирования записан алгоритм. Получив на
вход число x, этот алгоритм печатает два числа: L и M. Укажите
наибольшее число x, при вводе которого алгоритм печатает сначала 4,
а потом 5.
Решение:
Решение данного задания будет похоже на решение 6 задания из ЕГЭ по информатике 2022.
С помощью перебора на языке Python найдём при каких значениях переменная L=4 И переменная M=5 в конце программы.
for i in range(1, 1000): X=i Q=9 L=0 while X >= Q: L = L + 1 X = X - Q M=X if M < L: M = L L = X if L==4 and M==5: print(i)
Наибольшее значение равно 49.
Ответ: 49
Смотреть 22 Задание на YouTube
Задание 23
Исполнитель преобразует число на экране.
У исполнителя есть две команды, которым присвоены номера:
1. Прибавить 1 2. Умножить на 2
Программа для исполнителя – это последовательность команд.
Сколько существует программ, для которых при исходном числе 1
результатом является число 20, и при этом траектория вычислений содержит
число 10?
Траектория вычислений программы – это последовательность результатов
выполнения всех команд программы. Например, для программы 121 при
исходном числе 7 траектория будет состоять из чисел 8, 16, 17.
Решение:
Решим задачу c помощью шаблона на языке Python.
def F(x, y): if x == y: return 1 if x > y: return 0 if x < y: return F(x+1, y) + F(x*2, y) print(F(1, 10)*F(10, 20))
Число x, это то число, с которым мы работаем. Число y — это куда нужно прийти.
Если число x достигло пункта назначения, то возвращаем 1. Если оно перескочило y, то возвращаем 0. А если ещё не дошло до y, то продолжаем вычисления с помощью рекурсии.
У нас число 10 обязательное, поэтому разбиваем функцию следующим образом F(1, 10)*F(10, 20), через умножение. Это и будет ответ. Получается 28.
Ответ: 28
Смотреть 23 Задание на YouTube
Задание 24
Текстовый файл состоит из символов P, Q, R и S.
Определите максимальное количество идущих подряд символов
в прилагаемом файле, среди которых нет идущих подряд символов P.
Для выполнения этого задания следует написать программу.
Решение:
Напишем решение на языке Python.
f=open('24.txt') s=f.read() count=1 mx=0 for i in range(0, len(s)-1): if s[i]=='P' and s[i+1]=='P': count=1 else: count=count+1 mx = max(mx, count) print(mx)
Подсчитываем символы, пока не встретилась комбинация двух P подряд. Как только встретилась данная комбинация, сбрасываем счётчик на 1. Здесь мы сбрасываем счётчик на значение 1, чтобы учесть один символ, которые находится в самой комбинации PP. И в начале мы тоже устанавливаем счётчик в значение 1 по этой же причине.
Мы проходим в цикле for до длины строки минус один. Значение 1 в счётчике при сбросе и в начале программы так же компенсирует и тот момент, что мы не подсчитываем последний символ!
При изменении счётчика, сохраняем максимальное значение в переменной mx
Если бы у нас была вместо PP другая комбинация, состоящая к примеру из 5 символов, то мы бы тогда в начале и при сбросе писали в счётчик значение 5-1=4.
В этой задаче получается ответ 188.
Ответ: 188
Смотреть 24 Задание на YouTube
Задание 25
Пусть M – сумма минимального и максимального натуральных делителей
целого числа, не считая единицы и самого числа. Если таких делителей
у числа нет, то значение M считается равным нулю.
Напишите программу, которая перебирает целые числа, бо́льшие 700 000,
в порядке возрастания и ищет среди них такие, для которых значение M
оканчивается на 8. Выведите первые пять найденных чисел
и соответствующие им значения M.
Формат вывода: для каждого из пяти таких найденных чисел в отдельной
строке сначала выводится само число, затем – значение М.
Строки выводятся в порядке возрастания найденных чисел.
Количество строк в таблице для ответа избыточно.
Решение:
На ЕГЭ по информатике 2022 удобно писать программы на языке Python.
import math count=0 for i in range(700001, 800000): b=0 for j in range(2, int(math.sqrt(i)) + 1): if i%j==0: b=round(i/j) break if b==0: M=0 else: M=j+b if M!=0 and M%10==8: count=count+1 print(i, M) if count==5: break
В данной программе перебираются числа в цикле for, начиная с 700001.
Переменная b-считается наибольшим делителем числа i. Затем, с помощью ещё одного цикла for перебираются числа с 2 до корня числа i (включительно). Ищем тем самым наименьший делитель.
Если до корня числа включительно не встретился ни один делитель, значит, у числа нет делителей, кроме 1 и самого числа.
Пусть у нас есть число A. Если у этого числа есть делитель d1, то он находится до корня этого числа. А вот то число (так же делитель), на которое умножается это число d1, чтобы получить A, будет находиться после корня A.
Получается, что у каждого делителя есть своя пара. У единицы — это само число. Причём один делитель из пары находится до корня, другой после корня. Исключением будет тот случай, когда из числа А извлекается целый корень. Тогда для этого корня не будет пары (парой и будет само это число √A * √A = A).
Таким образом, первый найденный делитель будет являться наименьшим делителем. А вот делительный, который находится в паре с наименьшим делителем, будет наибольшим.
После того, как мы нашли наименьший делитель (он будет сидеть в переменной j) и наибольший делитель b, выходим из второго цикла for.
Если переменная b осталась равна нулю, то, значит, у числа i нет указанных делителей, и переменная M должна равняться 0. Если b не равна нулю, то M=j+b.
Проверить, на что оканчивается число, можно узнав остаток от деления числа на 10.
Переменная count следит, чтобы было распечатано ровно 5 чисел, которые удовлетворяют условию задачи.
Ответ:
| 700005 | 233338 |
| 700007 | 100008 |
| 700012 | 350008 |
| 700015 | 140008 |
| 700031 | 24168 |
Смотреть 25 Задание на YouTube
Задание 26
Системный администратор раз в неделю создаёт архив пользовательских
файлов. Однако объём диска, куда он помещает архив, может быть меньше,
чем суммарный объём архивируемых файлов.
Известно, какой объём занимает файл каждого пользователя.
По заданной информации об объёме файлов пользователей и свободном
объёме на архивном диске определите максимальное число пользователей,
чьи файлы можно сохранить в архиве, а также максимальный размер
имеющегося файла, который может быть сохранён в архиве, при условии,
что сохранены файлы максимально возможного числа пользователей.
Входные данные.
В первой строке входного файла находятся два числа: S – размер свободного
места на диске (натуральное число, не превышающее 10 000) и N –
количество пользователей (натуральное число, не превышающее 1000).
В следующих N строках находятся значения объёмов файлов каждого
пользователя (все числа натуральные, не превышающие 100), каждое –
в отдельной строке.
Запишите в ответе два числа: сначала наибольшее число пользователей, чьи
файлы могут быть помещены в архив, затем – максимальный размер
имеющегося файла, который может быть сохранён в архиве, при условии,
что сохранены файлы максимально возможного числа пользователей.
Пример входного файла:
100 4
80
30
50
40
При таких исходных данных можно сохранить файлы максимум двух
пользователей. Возможные объёмы этих двух файлов – 30 и 40, 30 и 50 или
40 и 50. Наибольший объём файла из перечисленных пар – 50, поэтому ответ
для приведённого примера:
2 50
Решение:
Решим задачу с помощью Excel. Чтобы открыть текстовый файл в программе Excel, выбираем Файл->Открыть, выбираем нужную папку и указываем, чтобы в папке были видны все типы файлов.
И выбираем наш текстовый файл.
Выскочит окно Мастер текстов (импорт). Здесь оставляем выбранный пункт с разделителями и кликаем Далее.
В следующем окне поставим ещё галочку пробел. В итоге Символами-разделителем будут знак табуляции и пробел.
Кликаем ещё раз Далее и Готово.
Наши данные вставятся, как нужно!
Число 8200 (размер свободного места) нужно запомнить или записать на черновике. Число 970 (количество файлов) нам в принципе не нужно при таком подходе решения.
Теперь удаляем первую строчку. Выделяем две ячейки в первой строчке, через контекстное меню мыши нажимаем Удалить…. Выбираем ячейки, со сдвигом вверх.
1. Найдём максимальное количество файлов.
Выделяем весь столбец A и сортируем его по возрастанию.
Теперь выделяем ячейки сверху мышкой, а справа в нижней части программы будет показываться сумма выделенных ячеек.
Мы должны выделить максимальное количество ячеек, но чтобы сумма не превышала число 8200.
Получается максимальное количество файлов, которое можно сохранить, равно 568.
2. Найдём максимальный размер файла при максимальном количестве файлов.
Если мы сохраним максимальное количество файлов, то у нас ещё останется свободное место 8200-8176=24, т.к. сумма выделенных ячеек равна 8176.
Мы можем заменить наибольший файл (последняя выделенная ячейка равная 29) ещё большим файлом, размер которого не превышает 24+29=53.
Если покрутим таблицу вниз, то найдём такой файл размером 50. Это и будет наибольший файл при максимальном количестве файлов.
Ответ:
Смотреть 26 Задание на YouTube
Задание 27
Дана последовательность из N натуральных чисел. Рассматриваются все
её непрерывные подпоследовательности, такие что сумма элементов каждой
из них кратна k = 43. Найдите среди них подпоследовательность
с максимальной суммой, определите её длину. Если таких
подпоследовательностей найдено несколько, в ответе укажите количество
элементов самой короткой из них.
Входные данные
Даны два входных файла (файл A и файл B), каждый из которых содержит
в первой строке количество чисел N (1 ≤ N ≤ 10 000 000). Каждая
из следующих N строк содержит одно натуральное число, не превышающее
10 000.
Пример организации исходных данных во входном файле:
7
1
3
4
93
8
5
95
В ответе укажите два числа: сначала значение искомой суммы для файла А,
затем – для файла B.
Предупреждение: для обработки файла B не следует использовать
переборный алгоритм, вычисляющий сумму для всех возможных вариантов,
поскольку написанная по такому алгоритму программа будет выполняться
слишком долго.
Решение:
Напишем программу на Python.
f=open('27_B.txt') n=int(f.readline()) sum_ost=[1096594666]*43 #Массив, который содержит минимальные суммы для разных остатков k=[0]*43 #Запоминаем, при каком i сохранили в sum_ost очередную сумму. mx=0 #Максимальная сумма нужной цепочки в данный момент времени ln=0 #Длина нужной цепочки s=0 #Сумма цепочки с первого до i-ого элемента sum_ost[0]=0 #Для остатка ноль ничего от s отнимать не нужно k[0]=-1 #Для остатка ноль индекс равен -1, чтобы правильно считалась длина цепочки for i in range(n): x=int(f.readline()) s = s + x ost = s % 43 if s-sum_ost[ost]==mx: ln=min(ln, i - k[ost]) if s-sum_ost[ost] > mx: mx = s - sum_ost[ost] ln = i - k[ost] if sum_ost[ost]==1096594666: sum_ost[ost] = s k[ost] = i print(ln)
Переменная s — это сумма от первого до текущего элемента i. На каждом шаге вычисляется остаток от деления s на 43. И записывается в массив sum_ost эта сумма s для каждого остатка.
Тогда кандидатом для ответа будет цепочка, которая получается, если от цепочки с суммой s «отрезать» цепочку с суммой из массив sum_ost, которая соответствует текущему остатку (переменная ost).
В массив sum_ost для каждого остатка записывается сумма только один раз, т.к. нам нужна именно минимальная сумма для каждого остатка, чтобы кандидат для ответа был как можно больше.
В начале массив sum_ost инициализируется очень большим числом 1096594666. Это число больше, чем сумма всех элементов в файле. Оно было найдено до основного решения, с помощью простой программы.
В процессе решения мы ищем среди кандидатов для ответа цепочку с максимальной суммой. Делаем это стандартным образом: кто больше, то и победил. Мы инициализируем большими числом 1096594666 элементы массива sum_ost для того, чтобы условие нормально сработало, когда в массиве sum_ost ещё нет суммы для данного остатка.
Так же мы сохраняем индексы элементов в массив k, когда записываем суммы для различных остатков в массив sum_ost. Это делается для того, чтобы можно было вычислить длину цепочки.
Для случая, когда остаток равен 0, устанавливаем сумму в массиве sum_ost равной нулю, потому что кандидатом на ответ будет цепочка от самого первого до i-ого элемента. Это, можно сказать, исключительный случай. И чтобы правильно вычислялась длина цепочки, для случая, когда остаток равен нулю, индекс в массив k делаем равным -1.
Ответ:
Разбор демоверсии ЕГЭ по информатике 2022 (1-5 Задание)
Разбор демоверсии ЕГЭ по информатике 2022 (6-10 Задание)
Разбор демоверсии ЕГЭ по информатике 2022 (11-15 Задание)
Разбор демоверсии ЕГЭ по информатике 2022 (16-21 Задание)
Смотреть 27 Задание на YouTube
Времени на подготовку к ЕГЭ у выпускников остается все меньше. Им в помощь Рособрнадзор в своих социальных сетях продолжает напоминать об особенностях контрольных измерительных материалов по всем экзаменационным предметам. На сей раз в ведомстве произвели разбор заданий ЕГЭ по информатике 2022, а точнее — рассказали об изменениях и нововведениях в них.

Разбор ЕГЭ по информатике 2022: что нового в заданиях?
«Никаких революционных изменений в экзамене в 2022 году не планируется», — цитирует Рособрнадзор в своем официальном сообществе «ВКонтакте» руководителя комиссии по разработке контрольных измерительных материалов ЕГЭ по информатике и ИКТ Сергея Крылова.
- В 2022 году задание №3 в ЕГЭ по информатике нужно выполнять с использованием файла, который содержит простую реляционную базу данных, состоящую из нескольких таблиц.
- В задании №9, которое также предполагает работу с таблицами, нужно уметь формулировать сложные логические условия, содержащие логические операции «и» и «или» одновременно.
- Задание №17 теперь нужно выполнить с использованием файла, который содержит целочисленную последовательность, предназначенную для обработки с использованием массива.
Подготовка к ЕГЭ по информатике 2022
Как советует Сергей Крылов, слова которого приводит Рособрнадзор, особое внимание при подготовке к ЕГЭ по информатике и ИКТ ребятам лучше обратить на практическое программирование (файлы, массивы, сортировка), организацию вычислений в электронных таблицах, методы измерения количества информации и основы логики. А выполнять задания на программирование — на том языке, который выпускники лучше всего знают.
Как и в 2021 году, экзамен пройдет в компьютерной форме.
ЕГЭ по информатике 2022, демоверсия, содержится на сайте ФИПИ. А официальное расписание ЕГЭ-2022 — в материале «Литтлвана».
Информатика — это тот самый секрет для избранных, понять который дано не всем. Еще бы, в прошлом году она стала первым и пока единственным цифровым экзаменом! Но не успел мир оправиться от такого потрясения, как в ФИПИ опубликовали изменения в ЕГЭ по информатике 2022.
Что изменилось в 2022 в ЕГЭ по информатике?
В сравнении с прошлым годом, изменения в ЕГЭ по информатике 2022 не кажутся такими пугающими. Формат экзамена сделали еще более цифровым, избавив от пережитков «бумажного» прошлого: вместо расписывания условий в №3 и №17 добавили для работы файлы с базами данных.
Также немного изменили шкалу оценивания: теперь максимальный балл за работу — 29, а не 30, как было в прошлом году. Сокращение произошло из-за задания №25, которое теперь оценивается в один балл.
Новые варианты
Модель изменения в ЕГЭ по информатике 2022 не предполагает кардинально новых вариантов или заданий. По сути, речь идет о цифровизации заданий №3, которое было копией бумажного, и №17. В остальном, варианты 2021 и 2022 года абсолютно аналогичны.
Изменения в заданиях
В задание №3 добавлен файл, содержащий простейшую базу данных — несколько таблиц. Опираясь на него, нужно выполнить несколько условий задачи и получить ответ.
В задание №17 также добавлен файл. Он содержит последовательность целых чисел, которую необходимо будет использовать для обработки массива. Также в задании есть пример решения для другой последовательности. В ответ потребуется записать пару чисел, требуемую по условиям задачи.
Максимальный балл за каждое из измененных заданий — 1.
Новые задания
Новые задания по изменениям в ЕГЭ по информатике 2022 не предусмотрены.
Критерии оценивания
Изменились критерии оценивания задания №25. Это задание на написание программы, удовлетворяющей условиям задачи, для вывода определенных строк. Теперь, если выводимые строки попадают в ключ, то задача оценивается в один балл. Если нет, в ноль баллов.
Проходной балл
Проходной балл по информатике будет установлен позднее. Приблизительно это будет 34-45 баллов.
Перевод баллов
Так как изменения в ЕГЭ по информатике 2022 коснулись и количества баллов за экзамен, то установить точную шкалу перевода первичных баллов во вторичные пока невозможно. Она будет сформирована после проверки экзаменационных работ и напрямую зависит от успешности выполнения выпускниками тех или иных заданий варианта.
Структура ЕГЭ по информатике 2022
Вариант ЕГЭ 2022 года условно можно разделить на две части:
- задания в 1 балл — №1–25,
- задания в 2 балла — №26–27.
В первой группе получение балла напрямую зависит от попадания в ключ. Во второй группе балл можно получить при условии, что значения либо перепутаны местами, либо одно из значений приведено неверно, то есть за частично правильное решение.
Большинство из предложенных для выполнения заданий — базового или повышенного уровня сложности:
- базовый — №1–10, 19,
- повышенный — №11–18, 20, 22–23,
- высокий — №21, 24–27.
На выполнение 27 заданий варианта дается 235 минут, весь экзамен выполняется на компьютере. Максимальный балл — 29.
Подготовка к ЕГЭ по информатике
Для решения многих заданий потребуется умение программировать, поэтому этим стоит заняться в первую очередь. Лучше освоить один из популярных языков, вроде Python. Перед выбором языка программирования убедитесь, что он принимается для решения задач ЕГЭ.
Задания на программирование могут принести до 10 первичных баллов!
Также заранее определитесь с тем, что вы уже умеете и знаете, а что вызывает трудности. Для этого можно прорешать демоверсию экзамена или один из вариантов 2021 года (с учетом изменений в ЕГЭ по информатике 2022). Это поможет определить стартовую точку для подготовки.
Осваивайте недостающие навыки регулярно, не забивайте на подготовку, иначе к самому экзамену вы рискуете забыть даже то, что уже знаете! Это непозволительная роскошь. Так как шкала перевода пока неизвестна, нельзя точно сказать, во сколько обойдется даже один потерянный балл.
Готовьтесь на максимум и не довольствуйтесь малым! Тогда ваши успехи точно превзойдут все ваши ожидания. А мы всегда поможем вам на этом нелегком пути — через изменения в ЕГЭ по информатике в 2022 году и прямо к заветным баллам.
Об изменениях в ЕГЭ по информатике в 2022 году
ЕГЭ по информатике состоит из следующих тем: «Системы счисления», «Базы данных», «Поиск информации в текстовых документах», «Электронные таблицы», «Алгебра логики», «Графы», «Комбинаторика», «Алгоритмизация и программирование», «Теория игр», «Кодирование и декодирование».
По сравнению с прошлым годом контрольные измерительные материалы изменились. Например, задание №3 теперь нужно выполнять на компьютере, так как оно предполагает работу с файлами импровизированной базы данных. В задании №9 учащимся придется вспомнить логические функции при работе с формулами в электронных таблицах, а задание №17 потребует от выпускников выполнить анализ числовой информации из файла.
Напомним, что на протяжении всего экзамена у участников все так же будет доступ к компьютеру с установленным прикладным программным обеспечением и средами программирования.
Основное отличие нынешнего ЕГЭ по информатике от экзаменов прошлых лет состоит в том, что практически все задания в нем можно выполнить на компьютере.
И это, к сожалению, иногда может сбивать выпускников с правильного пути.
Приведем примеры ошибок, которые допускали участники экзамена в прошлом году, для того чтобы помочь избежать их нынешним старшеклассникам.
Ошибка № 1. Попытка выполнить все задания с использованием компьютера
Хотя большинство задач в ЕГЭ по информатике построено таким образом, что их можно решить как в черновике, так и при помощи офисных приложений или сред программирования, нужно понимать, что решение с использованием компьютера не всегда приводит к быстрому результату.
Учительница перед началом сдачи ЕГЭ по информатике в средней общеобразовательной школе №13 Владивостока, 3 июля 2020 года
Виталий Аньков/РИА «Новости»
Например, выпускник может потратить значительное количество времени на написание программного кода для решения задачи, которая аналитическим методом при помощи ручки и листа бумаги решилась бы намного быстрее, и возможно, проще.
В качестве примера приведем задание №8.
Все 5-буквенные слова, составленные из 4 букв ВЕРТ, записаны в алфавитном порядке.
Вот начало списка:
1. ВВВВВ
2. ВВВВЕ
3. ВВВВР
4. ВВВВТ
5. ВВВЕВ
…
На каком месте от начала списка стоит слово «ВЕТЕР»?
Решение
Представим все буквы как цифры системы счисления с основанием 4. Тогда В – 0, Е – 1, Р – 2, Т – 3.
Слово «ВЕТЕР» будет выглядеть как число 01312. Переведем его в десятичную систему счисления — это число 118 (это можно сделать, например, функцией print(int(‘01312’,4)) всего в одну строку на языке Python. Таким образом, слово «ВЕТЕР» должно находиться на 118 месте. Однако мы видим, что слово ВВВВВ — это 00000 (ноль) в четверичной системе счисления и оно находится на месте 1. Значит, есть сдвиг на одну позицию. Таким образом, слово «ВЕТЕР» находится не на 118, а на 119 месте.
Теперь решим это задание вторым способом — напишем программу на языке Python.
Личный архив Николая Никулина
Оба представленных способа решения данной задачи приведут к верному результату, но первый займет у подготовленного ученика меньше времени.
И таких заданий на экзамене достаточно. А ведь на ЕГЭ каждая минута времени может принести дополнительный балл.
Ошибка № 2. Неверная последовательность выполнения заданий
Эта ошибка характерна не только для ЕГЭ по информатике, но и для других предметов. Прежде всего необходимо выполнять те задачи, которые хорошо знакомы и не требуют значительных временных затрат. Часто участники выполняют задания подряд и, увидев новое для себя задание, пытаются его решить, тратя большую часть времени и усилий. На все остальные задачи у них остается уже меньше ресурсов.
Поэтому, если задание показалось сложным, следует его пропустить и постараться выполнить более простые.
Таким образом можно набрать основное количество баллов и оставить большую часть времени для спокойного размышления над сложными заданиями.
Ошибка № 3. Ложная надежда на компьютерные технологии
Некоторые выпускники думают, что наличие компьютера на экзамене со всевозможными офисными программами и средами программирования сразу избавит их практически от всех проблем, связанных с решением задач. Но всеми этими технологиями еще нужно научиться грамотно пользоваться. При этом необходимо знать теорию по конкретным темам курса информатики.
Например, одна из задач, которая, на наш взгляд, стала решаться гораздо быстрее с использованием компьютера — это задание 14. Приведем пример и решение с использованием алгоритма, записанного на языке программирования Python.
Личный архив Николая Никулина
Для написания подобного программного кода необходимо помнить стандартный алгоритм перевода числа в систему счисления с произвольным основанием. Также нужно знать такие темы из курса информатики, как циклы, работа со строками, операции деления. Еще можно запомнить некоторые стандартные функции языков программирования (например, count для языка Python).
Рекомендации по подготовке к экзамену
Очень важно научиться правильно выбирать методику решения каждого конкретного задания. Некоторые задачи проще и быстрее выполнять без использования компьютерных программ, прибегая к аналитическому подходу.
С другой стороны, на экзамене есть и такие задания, которые невозможно решить вручную за отведенное время, и без написания программного кода или использования прикладного программного обеспечения уже не обойтись. Поэтому попробуйте проверить свои знания, провести самодиагностику. Для этого можно выполнить демонстрационный вариант с последующей проверкой ответов, отметить задания и темы, которые вызывают затруднения. Например, воспользоваться виртуальной лабораторией по информатике в Библиотеке МЭШ, открытыми вариантами контрольных измерительных материалов ЕГЭ на сайте ФИПИ или пройти диагностику в формате ЕГЭ. Проверить свои знания и потренироваться в заполнении экзаменационных бланков вы можете в Центре независимой диагностики Московского центра качества образования. Запись открыта в разделе Центра на сайте МЦКО.
Большое значение имеет повторение тем, относящихся к практическому программированию. Знание одного или нескольких языков программирования на базовом или углубленном уровнях поможет решить не только задачи, относящиеся непосредственно к теме «Алгоритмизация и программирование», но и многие другие задания быстро и оптимально. Изучить необходимые языки программирования помогут в школе на уроках информатики. Также можно воспользоваться учебными материалами в Библиотеке «Московской электронной школы».
Каждую неделю, в разные дни, уделяйте внимание изучению новых материалов и повторению того, что вы уже знаете. Старайтесь еженедельно решать разные варианты из ЕГЭ.










