Информатика егэ 17 задание через эксель

На уроке рассмотрен материал для подготовки к ЕГЭ по информатике, разбор 17 задания. Объясняется тема о программной обработке числовой информации.

Содержание:

  • ЕГЭ по информатике 17 задания объяснение
  • Выполнение 17 задания ЕГЭ
    • Работа с цифрами числа в n-й системе счисления

17-е задание: «Программная обработка целочисленной информации»

Уровень сложности

— повышенный,

Требуется использование специализированного программного обеспечения

— да,

Максимальный балл

— 1,

Примерное время выполнения

— 15 минут.

  
Проверяемые элементы содержания: Умение создавать собственные программы (20–40 строк) для обработки целочисленной информации

Выполнение 17 задания ЕГЭ

Плейлист видеоразборов задания на YouTube:

Задание демонстрационного варианта 2022 года ФИПИ


17_1: Демоверсия варианта ЕГЭ по информатике 2021, ФИПИ:

Рассматривается множество целых чисел, принадлежащих числовому отрезку [1016; 7937], которые делятся на 3 и не делятся на 7, 17, 19, 27. Найдите количество таких чисел и максимальное из них.
В ответе запишите два целых числа: сначала количество, затем максимальное число.

! Для выполнения этого задания можно написать программу или воспользоваться редактором электронных таблиц

  
Типовые задания для тренировки

Ответ: 1568 | 7935

 
Видео

✍ Решение:

    ✎ Решение с использованием программирования:

    Паскаль:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    
    var
      i, k, max: integer;
     
    begin
      k := 0;
      max := 0;
      for i := 1016 to 7937 do 
      begin
        if (i mod 3 = 0) and (i mod 7 > 0) and (i mod 17 > 0) and (i mod 19 > 0) and (i mod 27 > 0) then
        begin
          max:= i;
          inc(k);
        end;
      end;
      writeln(k, ' ', max)
    end.

    PascalABC.NET:

    1
    2
    3
    4
    
    begin
     var s := Range( 1017, 7937, 3).Where( i -> not i.DivsAny(7, 17, 19, 27) );
     print( s.Count, s.Max );            
    end.

    Python:

    1
    2
    3
    
    a = [n for n in range(1016,7937+1) 
         if (n%3==0 and n%7!=0 and n%17!=0 and n%19!=0 and n%27!=0)]
    print(len(a),max(a))

    Список a формируем, используя генератор списка: то есть в список попадут только не числа из диапазона [1016,7937], которые удовлетворяют всем перечисленным условиям: n%3==0 (число делится на 3), n%7!=0 (число не делится на 7) и т.п.

    C++:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    
    #include <iostream>
    int main()
    {
      int count = 0;
      int maxGood = 0;
      for(int n=1016; n<=7937; n++)
        if( (n % 3 == 0) and (n % 7 != 0) and 
            (n % 17 != 0) and (n % 19 != 0) and (n % 27 != 0) ) {
          maxGood = n;    
          count += 1;
          }  
      std::cout << count << " " << maxGood;
    }

    ✎ Решение с помощью Excel:

  • Первое значение диапазона введем в ячейку A1:
  • Используем прогрессию для заполнения всего диапазона числами. Для это выберите вкладку Главная и щелкните по кнопке Прогрессия:
  • Столбец B будем использовать для поиска чисел, которые делятся на 3. Для этого в ячейку B1 введите формулу с рисунка:
  • Двойным щелчком по маркеру заполнения скопируйте формулу на весь столбец:
  • Столбец С будем использовать для поиска чисел, которые НЕ делятся на 7. Для этого в ячейку С1 введите формулу с рисунка:
  • Заполните весь столбец двойным щелчком по маркеру заполнения.
  • Cтолбцы D, E, F таким же образом будем использовать для поиска чисел столбца А, которые не делятся на 17, 19 и 27
  • Для поиска всех истинных значений используем столбец G. В ячейку G1 введите функцию ЕСЛИ: если все значения ячеек в столбцах B-F в этой строке истинны, выводим число из А1, иначе – пустую строку:

  • Заполните весь столбце, используя маркер автозаполнения.

  • Ячейку H1 будем использовать для подсчета таких чисел, которые удовлетворяют всем условиям, т.е. для подсчета непустых ячеек столбца G:
  • Ячейку H2 будем использовать для подсчета такого наибольшего числа:

Видеоразбор 17 задания ЕГЭ:
📹 YouTube здесь

Видеорешение на RuTube здесь


Работа с цифрами числа в n-й системе счисления

17_2:

Рассматривается множество целых чисел, принадлежащих числовому отрезку [3712; 8432], которые удовлетворяют следующим условиям:
− запись в двоичной и четверичной системах счисления заканчивается одинаковой цифрой;
− кратны 13, 14 или 15.

Найдите количество таких чисел и минимальное из них.

! Для выполнения этого задания можно написать программу или воспользоваться редактором электронных таблиц

  
Типовые задания для тренировки

Ответ: 471   3720
✍ Решение:

✎ Решение с использованием программирования:

Паскаль:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
var
 var k, n, min:integer;
 
begin
  k:=0; min:=8433;
  for n:= 3712 to 8432 do
    if (n mod 2 = n mod 4) and ((n mod 13=0) or (n mod 14=0) or (n mod 15=0)) then
      begin
        if min>n then
        min:=n;
        k:=k+1;
      end;
      Writeln (k,' ',min);
End.

PascalABC.NET:

1
2
3
4
5
6
7
begin
 var s := Range( 3712, 8432)
   .Where(i -> ((i mod 13=0) or (i mod 14=0) or (i mod 15=0)) and (i mod 2 = i mod 4));
    // или: .Where( i -> (i.DivsAny(13,14,15)) and (i mod 2 = i mod 4));
 s.Count.Print;
 s.Min.Print;  
end.

Python:

1
2
L = [x for x in range(3712, 8432+1) if (x % 13 == 0 or x % 14 == 0 or x % 15 == 0) and ( x % 2 == x % 4)]
print(len(L),' ',L[0])

Формируем список (массив) L только из подходящих элементов, то есть удовлетворяющих всем, перечисленным в задании, условиям. Затем выводим длину списка (len(L)), т.е. найденное количество таких чисел, и нулевой элемент, он же минимальный, поскольку числа упорядочены по возрастанию (L[0])

C++:

1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
int main()
{
	int count = 0;
	int min = 8433;
	for (int n = 3712; n <= 8432; n++)
		if (((n % 2 == n % 4) && ((n % 13 == 0) || (n % 14 == 0) || (n % 15 == 0))) )
		{
			if (n < min) min = n;
			count += 1;
		}
	std::cout << count << " " << min;
}

✎ Решение с помощью Excel:

  • Первое значение диапазона введем в ячейку A1:
  • Используем прогрессию для заполнения всего диапазона числами. Для это выберите вкладку Главная и щелкните по кнопке Прогрессия:
  • Столбец B будем использовать для поиска чисел, которые кратны 13, 14 или 15. Для этого в ячейку B1 введите формулу с рисунка:
  • Двойным щелчком по маркеру заполнения скопируйте формулу на весь столбец:
  • Столбец С будем использовать для поиска чисел, запись которых в двоичной и четверичной системах счисления заканчивается одинаковой цифрой. Для этого в ячейку С1 введите формулу с рисунка:
  • Заполните весь столбец двойным щелчком по маркеру заполнения.
  • Для поиска всех истинных значений используем столбец D. В ячейку D1 введите функцию ЕСЛИ: если все значения ячеек в столбцах B, C в этой строке истинны, выводим число из А1, иначе – пустую строку:
  • Заполните весь столбце, используя маркер автозаполнения.
  • Ячейку E1 будем использовать для подсчета таких чисел, которые удовлетворяют всем условиям, т.е. для подсчета непустых ячеек столбца D:
  • Ячейку E2 будем использовать для подсчета такого наименьшего числа (или просмотрите столбец D визуально и найдите первое значение):

  • 17_3:

    Рассматривается множество целых чисел, принадлежащих числовому отрезку [1000; 9999], запись которых в пятеричной системе имеет не менее 6 цифр и заканчивается на 21 или 23.

    Найдите количество таких чисел и минимальное из них.

    ! Для выполнения этого задания можно написать программу или воспользоваться редактором электронных таблиц

    Ответ: 550   3136

    ✍ Решение:

    ✎ Решение с использованием программирования:

    PascalABC.NET:

    1
    2
    3
    4
    5
    6
    
    ### uses school;
    var s := Range(1000, 9999)
       .Where(i -> (i.ToString.ToBase(5).Length=6) and (i div 5 mod 5 = 2)
           and((i mod 5 = 1) or (i mod 5 = 3)));
    s.Count.Print;
    s.Min.Print;

    Python:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    
    numb=''
    result=list()
    for i in range(1000, 9999+1):
        if ((i // 5) % 5 ==2) and (( i % 5 == 1) or ( i % 5 == 3)):
            while i>=5: #Цикл перевода числа из 10-й в 5-ю сс
                s=i%5
                numb=str(s)+numb
                i=i//5
                if i<5:
                    numb=str(i)+numb
            n=len(numb)
            if n>5:
                result.append(numb) # список из чисел в 5-й с.с
            numb=""
    kolvo=len(result)
    minNumb=int(min(result),5) # перевод в десятичную с.с и поиск min
    print(kolvo,minNumb)

    Привет! Сегодня поговорим о 17 задании ЕГЭ по информатике 2022.

    В 17 задании нужно считать числа из файла, проанализировать их и ответить на вопрос задачи.

    Будем решать задание на языке Python.

    Задача (Минимальное значение)

    В файле содержится последовательность целых чисел. Элементы последовательности могут принимать целые значения от -10000 до 10000 включительно. Определите и запишите в ответе сначала количество пар элементов последовательности, в которых оба числа делятся нацело на 7, затем минимальную из сумм элементов таких пар. В данной задаче под парой подразумевается два подряд идущих элемента последовательности. Например для последовательности из пяти элементов: 7; 14; 21; -7; 4 — ответ 3 14.

    Решение:

    Напишем программу на языке Python.

    f=open('17_1.txt')
    
    count=0
    sm=20000
    
    n1=int(f.readline())
    
    for s in f.readlines():
        n2=int(s)
    
        if n1%7==0 and n2%7==0:
            count=count+1
            sm=min(n1+n2, sm)
        
        n1=n2
    
    print(count)
    print(sm)
    

    В начале подвязываемся к файлу с помощью команды open().

    Переменная count отвечает за количество пар, удовлетворяющих условию задачи. Переменная sm — это минимальная сумма элементов подходящих пар.

    В начале в переменную sm кладём максимальное число, которое теоретически может получится (10000 + 10000). Это делается для того, чтобы это значение можно было легко «победить» при поиске минимального значения.

    Затем считываем в переменную n1 первое число. C помощью конструкции «for s in f.readlines():» можно перебрать остальные числа из файла. В цикле считываем второе число для пары в переменную n2.

    После того, как два числа у нас есть, мы анализируем эти элементы на условие задачи. Если одновременно два числа из пары делятся на 7, то мы подсчитываем такую пару.

    Если пара подходит, то проверяем сумму элементов этой пары на минимальность. В переменную sm заносится минимальное значение из прежнего значения sm и претендующего нового значения n1+n2.

    В конце цикла нужно переложить второе число в переменную n1, чтобы очередное число из файла считалось в переменную n2. Тем самым мы получим новую пару чисел.

    Ответ:

    Задача (Проверяем на что оканчивается число)

    В файле содержится последовательность целых чисел. Элементы последовательности могут принимать целые значения от -10000 до 10000 включительно. Определите и запишите в ответе сначала количество пар элементов последовательности, в которых оба числа оканчиваются или на 3, или на 5 (можно неодновременно), затем максимальную из сумм элементов таких пар. В данной задаче под парой подразумевается два подряд идущих элемента последовательности. Например для последовательности из пяти элементов: 3; 15; 25; -3; 4 — ответ 3 40.

    Решение:

    f=open('17_2.txt')
    
    count=0
    sm=-20000
    
    n1=int(f.readline())
    
    for s in f.readlines():
        n2=int(s)
    
        if (abs(n1)%10==3 or abs(n1)%10==5) and (abs(n2)%10==3 or abs(n2)%10==5):
            count=count+1
            sm=max(n1+n2, sm)
        
        n1=n2
    
    print(count)
    print(sm)
    

    Т.к. мы ищем максимальную сумму, то в начале в переменную sm кладём наоборот минимальное значение (-10000-10000=-20000).

    Когда ищем на что оканчивается положительное число, мы применяем конструкцию x%10. Т.е. находим остаток от деления на 10. Пример: 16 % 10 = 6. Но для отрицательных чисел это не работает -16 % 10 = 4. Почему такой ответ получается, можете посмотреть в этом видео: https://www.youtube.com/watch?v=BRfgE3pP0_c. Поэтому, чтобы правильно найти на что оканчивается число, применяем функцию abs(), что означает модуль числа.

    Здесь мы должны логические выражения для первого и второго числа взять в скобки, потому что логическая операция И имеет приоритет перед ИЛИ.

    Ответ:

    Задача (Полный квадрат)

    В файле содержится последовательность целых чисел. Элементы последовательности могут принимать целые значения от -10000 до 10000 включительно. Определите и запишите в ответе сначала количество пар элементов последовательности, в которых хотя бы одно число является полным квадратом некоторого натурального числа, затем максимальную из сумм элементов таких пар. В данной задаче под парой подразумевается два подряд идущих элемента последовательности. Например для последовательности из пяти элементов: 9; 15; 23; -3; 4 — ответ 2 24.

    Решение:

    f=open('17_3.txt')
    
    count=0
    sm=-20000
    
    n1=int(f.readline())
    
    for s in f.readlines():
        n2=int(s)
    
        if (n1>0 and (int(n1 ** 0.5) ** 2) == n1) or (n2>0 and (int(n2 ** 0.5) ** 2) == n2) :
            count=count+1
            sm=max(n1+n2, sm)
        
        n1=n2
    
    print(count)
    print(sm)
    

    Здесь мы извлекаем корень из числа с помощью возведения в степень 0.5. Округляем результат в меньшую сторону с помощью функции int(). А затем снова возводим в квадрат. Если мы получили изначальное число, значит, это число и есть полный квадрат некоторого натурального числа.

    Возведение в степень в 0.5 работает и для отрицательных чисел. Т.к. в задаче имеют ввиду квадраты натуральных чисел, то мы работаем только с числами, которые больше нуля.

    Ответ:

    Задача (Тройки чисел)

    (А. Кабанов) В файле 17-3.txt содержится последовательность целых чисел. Элементы последовательности могут принимать целые значения от -10 000 до 10 000 включительно. Определите и запишите в ответе сначала количество троек элементов последовательности, в которых числа расположены в порядке возрастания, затем минимальную из разностей наибольшего и наименьшего элементов таких троек. В данной задаче под тройкой подразумевается три идущих подряд элемента последовательности.

    Источник задачи: https://kpolyakov.spb.ru/

    Решение:

    f=open('17-3.txt')
    
    count=0
    rz=20000
    
    n1=int(f.readline())
    n2=int(f.readline())
    
    for s in f.readlines():
        n3 = int(s)
    
        if n1 < n2 < n3:
            count=count+1
            mx = max(n1, n2, n3)
            mn = min(n1, n2, n3)
            rz = min(rz, mx-mn)
    
        n1=n2
        n2=n3
    
    
    print(count, rz)
    

    С тройками решаем аналогично. До цикла считываем два числа. Внутри цикла считываем третье число.

    В конце цикла перекладываем числа: второе число в n1, третье число в n2.

    Ответ:

    Задача (Любой порядок элементов)

    В файле содержится последовательность из 10 000 целых положительных чисел. Каждое число не превышает 10 000. Определите и запишите в ответе сначала количество пар элементов последовательности, у которых сумма элементов кратна 9, затем максимальную из сумм элементов таких пар. В данной задаче под парой подразумевается два различных элемента последовательности. Порядок элементов в паре не важен.

    Источник задачи: https://inf-ege.sdamgia.ru/

    Решение:

    Первый способ (Красивый).

    f = open('17.txt')
    
    count_0 = 0
    count_1 = 0
    count_2 = 0
    count_3 = 0
    count_4 = 0
    count_5 = 0
    count_6 = 0
    count_7 = 0
    count_8 = 0
    
    
    mx1_0 = 0
    mx2_0 = 0
    mx_1 = 0
    mx_2 = 0
    mx_3 = 0
    mx_4 = 0
    mx_5 = 0
    mx_6 = 0
    mx_7 = 0
    mx_8 = 0
    
    
    for s in f.readlines():
        n=int(s)
    
        if n%9==0:
            count_0 = count_0 + 1
    
            if n>mx1_0:
                if n>mx2_0:
                    mx1_0 = mx2_0
                    mx2_0 = n
                else:
                    mx1_0 = n
    
        if n%9==1:
            count_1 = count_1 + 1
            mx_1 = max(mx_1, n)
    
        if n%9==2:
            count_2 = count_2 + 1
            mx_2 = max(mx_2, n)
    
        if n%9==3:
            count_3 = count_3 + 1
            mx_3 = max(mx_3, n)
    
        if n%9==4:
            count_4 = count_4 + 1
            mx_4 = max(mx_4, n)
    
        if n%9==5:
            count_5 = count_5 + 1
            mx_5 = max(mx_5, n)
    
        if n%9==6:
            count_6 = count_6 + 1
            mx_6 = max(mx_6, n)
    
        if n%9==7:
            count_7 = count_7 + 1
            mx_7 = max(mx_7, n)
    
        if n%9==8:
            count_8 = count_8 + 1
            mx_8 = max(mx_8, n)
    
    
    count = (count_1*count_8) + (count_2*count_7)  + (count_3*count_6) + (count_4*count_5) + (count_0*(count_0-1)//2)
    mx = max(mx_1 + mx_8, mx_2 + mx_7, mx_3 + mx_6, mx_4 + mx_5, mx1_0 + mx2_0)
    
    print(count, mx)
    

    Здесь мы ищем количество элементов, у которых остаток при делении на 9 равен нулю, единице, двойке, … и до 8. Подсчитываем эти данные соответственно в переменные count_0, count_1, count_2 … и т.д.

    Так же находим максимальное число, которое имеет при делении на 9 остаток равный единице, двойке, … и т.д. Для чисел, которые имеют остаток при делении на 9 ноль, находим два максимальных числа.

    После того, как результаты находятся в нужных переменных, можно вычислить ответ к задаче.

    Если, к примеру, взять число для которого остаток равен 1 и число для которого остаток равен 8, то их сумма будет делится на 9. Найдём количество пар, если нам известно количество и тех, и тех чисел.

    ЕГЭ по информатике 2022 - задание 17 (Числа не по порядку)

    Значит, просто нужно перемножить два числа, к примеру, count_1*count_8.

    Для чисел, которые делятся на 9 (т.е. остаток равен нулю), количество пар считается немного по-другому. Такие числа можно суммировать между собой, всё равно сумма тоже будет делится на 9. Путь есть у нас количество чисел count_0, которые делятся на 9. Тогда найдём количество пар, которые можно составить из этих элементов.

    Здесь вспомним метод умножения, о котором было написано в этой статье.

    ЕГЭ по информатике 2022 - задание 17 (Числа не по порядку)

    Найдём количество таких пар, если каждый элемент можно использовать 1 раз. Получается count_0*(count_0-1). Но т.к. в нашем случае пара, когда элементы находятся в одном порядке и в обратном, является одной и той же, то нужно это количество поделить на 2. Т.е количество пар будет (count_0*(count_0-1))/2.

    Второй способ (Перебор).

    f = open('17.txt')
    
    count=0
    mx=0
    
    a = []
    
    #Считываем все числа в массив a
    for s in f.readlines():
        n = int(s)
        a.append(n)
    
    # Перебираем все варианты и подсчитываем пары, отвечающие условию задачи.
    for i in range(0, len(a)):
        for j in range(i+1, len(a)):
            if (a[i]+a[j])%9==0:
                count = count + 1
                mx = max(a[i]+a[j], mx)
        
    
    print(count, mx)
    

    В этом решении сначала считываем все числа в массив a.

    Далее берём число и начинаем его комбинировать со всеми числами, которые стоят после этого числа. Таким образом, мы переберём все возможные комбинации, и у нас не будут пары повторяться.

    Ответ:

    ЕГЭ информатика 17 задание разбор, теория, как решать.

    Создание программы для обработки целочисленной информации. Проверка на делимость. (П) — 1 балл

    Е17.43 только одно число оканчивается на 3, а сумма квадратов

    В файле содержится последовательность целых чисел. Элементы последовательности могут принимать целые значения от –10 000 до 10 000 включительно. Определите количество пар последовательности, в которых только одно число оканчивается на 3, а сумма квадратов элементов пары не меньше квадрата максимального элемента последовательности, оканчивающегося на 3. В ответе запишите два числа: сначала количество найденных пар, затем …

    Читать далее

    Е17.42 а модуль их разности меньше наименьшего чётного элемента последовательности

    Файл содержит последовательность неотрицательных целых чисел, не превышающих 10 000. Назовём парой два идущих подряд элемента последовательности. Определите количество пар, в которых ровно один из двух элементов делится на 5, а модуль их разности меньше наименьшего чётного элемента последовательности. В ответе запишите два числа: сначала количество найденных пар, а затем – максимальный модуль разности элементов …

    Читать далее

    Е17.41 в которых хотя бы одно число делится на 11

    В файле содержится последовательность целых чисел. Элементы последовательности могут принимать целые — значения от —10 000 до 10 000 включительно. Определите количество пар последовательности, в которых хотя бы одно число делится на 11, а сумма элементов пары не более максимального элемента последовательности, кратного 11. В ответе запишите количество найденных пар, затем максимальную из сумм элементов …

    Читать далее

    Е17.40 один из двух элементов делится на 3, а другой меньше среднего арифметического

    Файл содержит последовательность неотрицательных целых чисел, не превышающих 10 000. Назовём парой два идущих подряд элемента последовательности. Определите количество пар, в которых один из двух элементов делится на 3, а другой меньше среднего арифметического всех чётных элементов последовательности. В ответе запишите два числа: сначала количество найденных пар, а затем – максимальную сумму элементов таких пар. …

    Читать далее

    Е17.39 ровно одно число делится на 9, а другое при этом заканчивается на 3

    В файле содержится последовательность целых чисел. Элементы последовательности могут принимать целые значения от -10 000 до 10 000 включительно. Определите и запишите в ответе сначала количество пар элементов последовательности, в которых ровно одно число делится на 9, а другое при этом заканчивается на 3 в восьмеричной системе счисления. Затем — максимальное число в паре среди …

    Читать далее

    Е17.38 хотя бы один из двух элементов делится на 3, а их сумма делится на 5

    Файл содержит последовательность неотрицательных целых чисел, не превышающих 10 000. Назовём парой два идущих подряд элемента последовательности. Определите количество пар, в которых хотя бы один из двух элементов делится на 3, а их сумма делится на 5. В ответе запишите два числа: сначала количество найденных пар, а затем – максимальную сумму элементов таких пар. Например, …

    Читать далее

    Е17.37 хотя бы один из двух элементов делится на 7 и не делится на 3 и 11

    В файле содержится последовательность целых чисел. Элементы последовательности могут принимать целые значения от 0 до 10 000 включительно. Определите количество пар, в которых оба элемента больше, чем среднее арифметическое всех чисел в файле, и хотя бы один из двух элементов делится на 7 и не делится на 3 и 11. В ответе запишите два числа: сначала …

    Читать далее

    Е17.36 десятичная запись хотя бы одного из двух элементов содержит цифру 5

    В файле содержится последовательность целых чисел. Элементы последовательности могут принимать целые значения от 0 до 10 000 включительно. Определите количество пар, в которых хотя бы один из двух элементов меньше, чем среднее арифметическое всех чисел в файле, и десятичные записи обоих элементов содержат цифру 5. В ответе запишите два числа: сначала количество найденных пар, а затем – …

    Читать далее

    Е17.35 оба элемента меньше, чем среднее арифметическое всех чисел в файле, а их сумма оканчивается на 17

    В файле содержится последовательность целых чисел. Элементы последовательности могут принимать целые значения от 0 до 10 000 включительно. Определите количество пар, в которых оба элемента больше, чем среднее арифметическое всех чисел в файле, а их сумма оканчивается на 17. В ответе запишите два числа: сначала количество найденных пар, а затем – минимальную сумму элементов таких …

    Читать далее

    Е17.34 один из двух элементов заканчивается на 19, а их сумма делится на 2

    В файле содержится последовательность целых чисел. Элементы последовательности могут принимать целые значения от –10 000 до 10 000 включительно. Определите количество пар, в которых хотя бы один из двух элементов заканчивается на 19, а их сумма делится на 2. В ответе запишите два числа: сначала количество найденных пар, а затем – максимальную сумму элементов таких …

    Читать далее

    Канал видеоролика: Evgenij Jobs

    Электронные таблицы. 17 и 26 задания. ЕГЭ по информатике

    Смотреть видео:

    #информатика #егэинформатика #икт #экзамены #егэ_2020 #мгту #школьникам #помощь_студентам #поступление

    Свежая информация для ЕГЭ и ОГЭ по Информатике (листай):

    С этим видео ученики смотрят следующие ролики:

    Электронные таблицы | Информатика с Евгением Джобсом

    Электронные таблицы | Информатика с Евгением Джобсом

    Evgenij Jobs

    Отмена Сохранить  ЗАДАНИЕ 7. ЕГЭ по Информатике 2018. Электронные таблицы. EXEL. ДЕМО ФИПИ

    Отмена Сохранить ЗАДАНИЕ 7. ЕГЭ по Информатике 2018. Электронные таблицы. EXEL. ДЕМО ФИПИ

    ZiminS

    ОГЭ по информатике 5 задание видео, объяснение и разбор; электронные таблицы

    ОГЭ по информатике 5 задание видео, объяснение и разбор; электронные таблицы

    Светлана Майер

    Электронные таблицы | Информатика с Евгением Джобсом

    Электронные таблицы | Информатика с Евгением Джобсом

    Evgenij Jobs

    Облегчи жизнь другим ученикам — поделись! (плюс тебе в карму):

    13.06.2021

    Подготовка к ЕГЭ. Разбор заданий № 17 «Проверка делимости чисел.» (раздел Программирование).

    Автор: Окунева Надежда Евгеньевна

    Проверяемые элементы содержания: Умение составить алгоритм обработки числовой последовательности и записать его в виде простой программы (10– 15 строк) на языке программирования

    Проверяемые умения или способы действий: Проверяет умение написать простую переборную программу, на языке программирования, содержащую цикл и ветвление. (повышенный уровень, время – 15 мин)

    → скачать материал

    Что нужно знать:

    Цикл — разновидность управляющей конструкции в высокоуровневых языках программирования, предназначенная для организации многократного исполнения набора инструкций. Последовательность инструкций, предназначенная для многократного исполнения, называется телом цикла. Единичное выполнение тела цикла называется итерацией. Выражение, определяющее, будет в очередной раз выполняться итерация или цикл завершится, называется условием выхода или условием окончания цикла. Переменная, хранящая текущий номер итерации, называется счётчиком цикла.2

    Ветвление – (условный оператор) — оператор, конструкция языка программирования, обеспечивающая выполнение определённой команды (набора команд) только при условии истинности некоторого логического выражения, либо выполнение одной из нескольких команд (наборов команд) в зависимости от значения некоторого выражения.

    Алгоритм решения:

    1. Определить начальные значения входных переменных: k, m, где k – искомое количество чисел из заданного диапазона [a, b], удовлетворяющих заданному условию; k = 0 m – minimax, т.е. если осуществляется поиск минимального значения, то m < a, иначе, при поиске максимального значения m > b.

    2. Организовать внешний цикл for, где i изменяется в диапазоне от a до b.

    3. Организовать каскад вложенных ветвлений if для осуществления проверки заданных условий:
    a. проверка делимости (возможны логические операции or и and);
    b. проверка неделимости (применяется логическая операция and);
    c. проверка minimaxа.

    Примеры заданий:

    Вариант № 1

    Рассматривается множество целых чисел, принадлежащих числовому отрезку [800; 5900], которые делятся на 17 и не делятся на 2, 3, 5. Найдите количество таких чисел и максимальное из них. В ответе запишите два целых числа: сначала количество, затем максимальное число.

    Вариант № 2

    Рассматривается множество целых чисел, принадлежащих числовому отрезку [4197; 9182], которые делятся на 5 и не делятся на 6, 10, 13, 16. Найдите количество таких чисел и максимальное из них. В ответе запишите два целых числа: сначала количество, затем максимальное число.

    Связанные страницы:

    Лада Есакова, преподаватель информатики и математики, автор книги «Информатика. Полный курс подготовки к ЕГЭ».

    Задача № 17:
    «Найдите количество чисел, принадлежащих числовому отрезку [1000; 9000], которые делятся на 17, но не делятся на 3, а также максимальное из них. В ответе запишите два целых числа: сначала количество, затем максимальное число.
    Для выполнения этого задания можно написать программу или воспользоваться редактором электронных таблиц.»
    Да, интервалы приведены большие, руками перебрать их невозможно. Чтобы продемонстрировать различные методы решения, я не стану писать программу, а написала форму Excel

    Забила необходимые цифры и написала формулу

    ту формулу растянула до конца, и теперь мне необходимо просто посчитать числа, и вот у меня получилась сумма

    А наибольшее число увидели, наложив фильтр по таблице и посмотрели, что отображено в нижней ячейке. Такое решение тоже можно использовать на экзамене тем, кто хорошо пользуется Excel, но не очень программирует. Наш ответ: количество – 314, а наибольшее число – 8993.

    Задача № 18:
    «Квадрат разлинован на NxN клеток (1˂N˂20). Исполнитель Робот может перемещаться по клеткам, выполняя за одно перемещение одну из двух команд: вправо или вверх. По команде вправо Робот перемещается в соседнюю правую клетку, по команде вверх – в соседнюю верхнюю. При попытке выхода за границы квадрата Робот разрушается. Перед каждым запуском Робота в каждой клетке квадрата лежит монета от 1 до 100. Посетив клетку, робот забирает монету с собой; это также относится к начальной и конечной клетке маршрута Робота.
    Определите максимальную и минимальную денежную сумму, которую может собрать Робот, пройдя из левой нижней клетки в правую верхнюю. В ответе укажите два числа – сначала максимальную сумму, затем минимальную.

    Исходные данные представляют собой электронную таблицу размером NxN, каждая ячейка которой соответствует клетке квадрата.

    пример входных данных:

    3 5 1 6
    4 11 13 7
    6 9 4 11
    2 7 12 3

    Для указанных входных данных ответом должна быть пара чисел.»

    Входящие данные приведены в виде таблицы Excel. Можно загрузить это в двумерный массив и написать код, а можно внимательно подумать, что же от нас хотят.

    Нам нужно пройти из левого нижнего угла в правый верхний, перемещаться можно только либо вправо, либо вверх. Давайте для каждой клеточки посчитаем максимальное количество монет, которое можно собрать, попав в не, ведь в каждую клетку можно попасть несколькими путями.

    A B C D
    1  3 5 1 6
    2 4 11 13 7
    3 6 9 4 11
    4 22 97 12 3

    В клетке А4 (в первой клетке) сумма собранных монет будет равна сумме монет, которая там лежит, то есть 2.
    В клетку

    В4 мы можем попасть только из соседней, из А4, потому что робот не умеет никак иначе двигаться, только вверх и вправо. Таким образом у нас получается 9 монет.

    В клетку С4 мы можем попасть только из В4, суммируем монеты, 12+9=21.

    И наконец в D4 попадаем из С4 и получаем 24 монеты.

    То же самое касается клеток столбика А.

    В А3 можно попасть только из А4, получаем 8 монет, в клетке А2 получаем 12 монет, а в А1 – 15.

    А дальше у меня заинтересованность в том, чтобы, находясь в клетке В3 количество монет было максимальным. В нее можно попасть из А3 или из В4. Смотрим, в какой клетке у нас больше денег, через ту клетку и идем. Больше денег в В4, из нее и пойдем в В3 и получим 18 монет.

    Аналогично в клетку С3 можно попасть из клетки С4 или из клетки В3. Больше монет в клетке С4, пойдем через нее и получим 25 монет.

    На всех остальных клетках, кроме столбца А и строки 4, у меня стоит выбор взять источник монет слева или снизу. Берем тот, который больше.

    Вот именно это я и написала в формуле Excel.
    В нижний столбик пишем формулу предыдущего и плюс содержание самой ячейки

    В левый пишу формулу нижнего плюс сама ячейка

    А вот на этой картинке изображено самое интересное

    Здесь у нас формула

    Это значит, что если левый сосед больше, суммирую его, если нижний больше, то суммирую его.
    Размножаем эту формулу до ячейки D

    Вверху у меня в итоге оказалось 1178, это и месть наибольшее количество.

    Аналогично делаем второй лист таблицы и считаем наименьшее количество. Делаем формулу наоборот: берем соседнюю клетку, в которой меньше монет. Далее растягиваем формулу до верхнего правого угла и получаем ответ 539.

    Ответ задачи: наибольшее количество монет, которе смог собрать Робот – 1178, а наименьшее количество – 539.

    Задача №24:
    «Текстовый файл состоит не более чем из 1 000 000 символов – цифр т 0 до 9. Определите длину самой длинной возрастающей последовательности (количество подряд идущих цифр, каждая из которых строго больше предыдущей). Для выполнения этого задания следует написать программу.»

    Приведу вам пример программы на Pascal

    Закачиваем файл, считываем в С1 предыдущее значение, в С2 – последующее значение. В случае, если С2 больше С1, счетчик увеличивается на 1. Как только последовательность перестает возрастать или даже повторно цифра пошла, счетчик обнуляется, но длина цепочки запоминается и сравнивается с максимальным значением.

    В k храним текущее значение возрастающей последовательности, а в переменной max храню максимальное значение. Как только последовательность закончила возрастать, k больше не увеличиваем, сравниваем, не стала ли последовательность больше максимального значения, максимальное запоминаем, обнуляем и начинаем сначала.

    Тут все очень просто.

    Все видео по информатике

    Благодарим за то, что пользуйтесь нашими материалами.
    Информация на странице «Задание 17 18 24 | ЕГЭ по информатике 2021» подготовлена нашими авторами специально, чтобы помочь вам в освоении предмета и подготовке к ЕГЭ и ОГЭ.
    Чтобы успешно сдать необходимые и поступить в высшее учебное заведение или техникум нужно использовать все инструменты: учеба, контрольные, олимпиады, онлайн-лекции, видеоуроки, сборники заданий.
    Также вы можете воспользоваться другими материалами из данного раздела.

    Публикация обновлена:
    09.03.2023

    Характеристика задания

    1. Тип ответа: два числовых ответа.

    2. Структура содержания задания: дан текстовый файл, содержащий числовую информацию.

    3. Уровень сложности задания: повышенный.

    4. Примерное время выполнения: (1)(4) минут.

    5. Количество баллов: (1).

    6. Требуется специальное программное обеспечение: среда программирования.

    7. Задание проверяет умение составить алгоритм обработки числовой последовательности и записать его в виде простой программы на языке программирования.

    Пример задания (демоверсия (2022))

    демо1.png

    Рис. (1). Пример задания

    Что нужно знать?

    1. Как считать данные из файла в список.

    Для работы с файлом удобно использовать конструкцию with:

    with open (file) as f:
         инструкции

    Эта конструкция определяет для открытого файла переменную (f) и выполняет набор инструкций. После их выполнения файл автоматически закрывается. Метод readlines()прочитает и вернёт все строки в файле в виде списка.

    Для работы с данными файла мы будем использовать следующий программный код:

    with open ((’17.txt’)) as f:
        (a=) [int((x)) for (x) in f.readlines()]

    2. Основные операторы для работы со списками (массивами).

    В Python для того, чтобы работать с большим количеством данных, используется структура данных под названием список. Список представляет собой последовательность (набор) элементов, пронумерованных от (0).

    Чтобы объявить список, нужно в квадратных скобках перечислить его элементы через запятую:

    Элементы списка могут быть разных типов в отличие от элементов массива, но, как правило, используются списки из элементов одного типа.
     

    Методы списков

    (a.append (x))   добавляет элемент (x) в конец списка (a)
    (a.count (x))     возвращает количество элементов списка (a) со значением (x)
    (а.sort ())  сортирует список (a) в порядке возрастания
    (а.reverse ())  разворачивает список (a) в обратном порядке
    (a.clear ())  очищает список (a)

    Функции для работы со списками

    (len(a)) возвращает длину списка (a) (количество элементов списка (a))
    (min(a)) возвращает наименьший элемент списка (a)
    (max(a)) возвращает наибольший элемент списка (a)
    (sum(a))  возвращает сумму элементов списка (a)

    Решение задачи можно разбить на этапы.

    1. Считать данные из текстового файла в массив (список). Важно, чтобы программа решения и текстовый файл лежали в одной папке (или необходимо указать полный путь для считывания файла).

    with open ((’17.txt’)) as(f):
        (a=) [int((x)) for (x) in f.readlines()]

    2. Необходимо в массиве найти максимальное число, кратное (3). Для этого инициализируем пустой массив (b). Затем с помощью цикла (for) переберём все элементы массива (a). Если элемент кратен (3), то запишем его в массив (b). После выполнения цикла в переменную (m) запишем максимальное значение массива (b).

    (b=[])
    for (i) in range ((0,len(a))):
            if (a[i])%(3= =0):
                b.append((a[i]))
    (m=max(b))

    3. Определим количество подходящих пар. Для этого очистим массив (b). Затем с помощью цикла (for) переберём все элементы массива (a). Если хотя бы один элемент пары делится на (3) и сумма элементов пары не больше (m), то запишем эту сумму в массив (b).

    (b=[])
    for (i) in range ((0),(len(a)-1)):
           if ((a[i])%(3= =0) or (a[i+1])%(3= =0)) and ((a[i]+a[i+1]<=m)):
                 b.append ((a[i]+a[i+1]))

    4. Выведем на экран количество элементов массива (b) — оно равно количеству подходящих пар — и максимальную сумму:

    print ((len(b), max(b)))

    Получилась программа:

    with open ((’17.txt’)) as(f):
        (a=) [int((x)) for (x) in f.readlines()]
    (b=[])
    for (i) in range ((0,len(a))):
            if (a[i])%(3= =0):
                b.append ((a[i]))
    (m=max(b))

    (b=[])
    for (i) in range ((0,len(a)-1)):
           if ((a[i])%(3= =0) or (a[i+1])%(3= =0)) and ((a[i]+a[i+1]<=m)):
                 b.append ((a[i]+a[i+1]))

    print ((len(b), max(b)))

    Ответ: (2439)   (998).

    Понравилась статья? Поделить с друзьями:
  • Информатика егэ 15 задание объяснение
  • Информатика егэ 13535
  • Информатика егэ 13452
  • Информатика егэ 11 класс время экзамена
  • Информатика егэ 10316