Тема 9. Работа с электронными таблицами

9.02 Количество строк, удовлетворяющих условию

Вспоминай формулы по каждой теме
Решай новые задачи каждый день
Вдумчиво разбирай решения
ШКОЛКОВО.
Готовиться с нами - ЛЕГКО!
Подтемы раздела работа с электронными таблицами
Решаем задачу:

Ошибка.
Попробуйте повторить позже

Задача 1#82185

Откройте файл электронной таблицы, содержащей в каждой строке шесть натуральных чисел. Определите количество строк таблицы, для чисел которых выполнены оба условия:

– в строке только одно число встречается дважды, все остальные числа различны.

– сумма нечётных чисел меньше суммы чётных чисел.

В ответе запишите только число.

Вложения к задаче
Показать ответ и решение

Excel

Откроем файл электронной таблицы и для начала посчитаем сколько раз каждое число встречается в строке, для этого запишем формулу:

=СЧЁТЕСЛИ($A1:$F1;A1)

протянем её для всех чисел в строке и для всех строк в файле. Если сумма данных столбцов равна 8, значит, что в этой строке только одно число встречается дважды. Теперь посчитаем чётность каждого числа в строке, запишем формулу:

=ОСТАТ(A1;2)

Протянем формулу для всех чисел в строке и для всех строк в файле. Наша таблица приняла такой вид:

PIC

Посчитаем сумму нечётных/чётных чисел в строке, запишем формулы:

=СУММЕСЛИ(M1:R1;1;A1:F1) и =СУММЕСЛИ(M1:R1;0;A1:F1)

Осталось записать условие, оно будет выглядеть так:

=ЕСЛИ(И(S1=8;T1<U1);1;0)

Количество единиц и будет ответом.

Решение программой:

Напишем программу. Первая проблема - формат чисел. Они будут считаны в строковом формате, что не позволит проводить необходимые проверки. Разделим все цифры каждой строки и переведём их в формат int. Остаётся пройтись по каждой строке и проверить условия. Генераторами запишем все чётные и нечётные числа, с помощью set уберём из строки повторения, если чисел осталось 5  , то строка подойдёт, ведь уберётся единственное повторяющееся число. Все условия соблюдены - увеличиваем счётчик. Остаётся его вывести и записать ответ.

f = open("9_3.txt") # Считаем файл
# Пройдёмся по данным, с помощью split разделим все символы в строке, с помощью map переведём в формат int каждую цифру
# Получаем список, который хранит все строки файла в удобном формате
a = [list(map(int, i.split("\t"))) for i in f]
count = 0 # Счётчик подходящих слов
for temp in a: # Пройдёмся по каждой строке
    odd = [x for x in temp if x % 2 != 0] # Запишем число, если оно нечётное
    even = [x for x in temp if x % 2 == 0] # Запишем число, если оно чётное
    if len(set(temp)) == 5 and sum(odd) < sum(even): # Если чётных больше, чем нечётных. 5 букв слова различны, set уберёт повторяющуюся.
        count += 1 # Увеличим счётчик
print(count) # Выводим ответ

Ответ: 30

Специальные программы

Все специальные программы

Программа
лояльности v2.0

Приглашай друзей в Школково и получай вознаграждение до 10%!

Крути рулетку
и выигрывай призы!

Крути рулетку и покупай курсы со скидкой, которая привязывается к вашему аккаунту.

Бесплатное онлайн-обучение

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

Налоговые вычеты

Узнай, как получить налоговый вычет при оплате обучения в «Школково».

Специальное предложение
для учителей

Бесплатный доступ к любому курсу подготовки к ЕГЭ, ОГЭ и олимпиадам от «Школково». Мы с вами делаем общее и важное дело, а потому для нас очень значимо быть чем-то полезными для учителей по всей России!

Вернём деньги за курс
за твою сотку на ЕГЭ

Сдать экзамен на сотку и получить обратно деньги за подготовку теперь вполне реально!

cyberpunkMouse
cyberpunkMouse
Рулетка
Вы можете получить скидку в рулетке!