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

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

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

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

Задача 1#86049

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

– ровно два числа повторяются дважды

– ровно одно число повторяется семь раз

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

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

Excel

Откроем файл Excel.

В ячейку H1 запишем следующую формулу для определения повторяемости числа и растянем её до ячейки N1:

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

В ячейку O1 запишем следующую формулу для проверки условия на количество повторящихся дважды чисел:

=СЧЁТЕСЛИ(H1:N1;2)=4

В ячейку P1 запишем следующую формулу для проверки условия на количество повторяющихся семь раз чисел:

=H1=7

В ячейку Q1 запишем следующую формулу для определения, является ли хотя бы одно условие верными:

=ЕСЛИ(ИЛИ(O1;P1);1;0)

Растянем все формулы до конца таблицы. Сумма значений столбца Q и будет ответом.

Решение Python

Сначала мы считаем все строки файла и преобразуем каждую строку в список чисел

Затем Для каждой строки проверяем два условия.

– Чтобы проверить первое условие, составляем список элементов, которые встречаются ровно два раза. Если таких элементов 4 (каждое число учитывается дважды, значит ровно два различных значения повторяются по два раза), условие выполняется.

– Чтобы проверить второе условие, ищем элемент, встречающийся 7 раз. Если он есть, условие выполняется.

Для подсчёта количеств раз, которое встречается число в строке используем функцию count().

- Если хотя бы одно условие выполнено, увеличиваем счётчик.

- В конце выводим количество подходящих строк.

f = open(’4_9_demo.txt’)  # Открываем файл с таблицей

# Преобразуем каждую строку файла в список чисел
a = [list(map(int, i.split())) for i in f]

cnt = 0  # Счётчик подходящих строк

# Перебираем все строки
for ls in a:
    # Находим числа, встречающиеся ровно дважды
    two = [i for i in ls if ls.count(i) == 2]
    # Находим числа, встречающиеся 7 раз
    sev = [i for i in ls if ls.count(i) == 7]
    # Проверяем выполнение хотя бы одного условия
    if len(two) == 4 or sev:
        cnt += 1

print(cnt)  # Выводим количество строк, удовлетворяющих условиям

Ответ: 76

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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