В
Все
М
Математика
О
ОБЖ
У
Українська мова
Д
Другие предметы
Х
Химия
М
Музыка
Н
Немецкий язык
Б
Беларуская мова
Э
Экономика
Ф
Физика
Б
Биология
О
Окружающий мир
Р
Русский язык
У
Українська література
Ф
Французский язык
П
Психология
А
Алгебра
О
Обществознание
М
МХК
В
Видео-ответы
Г
География
П
Право
Г
Геометрия
А
Английский язык
И
Информатика
Қ
Қазақ тiлi
Л
Литература
И
История
hahahahahaha2
hahahahahaha2
14.05.2022 19:28 •  Информатика

решить на питоне: В файле marks.csv записаны сведения о результатах экзаменов в 9-х классах района. Всего в списке 1000 записей, каждая из которых содержит
• фамилию
• имя
• отметки по четырем предметам (алгебре, русскому языку, физике и истории).
Все элементы в каждой строке разделены запятыми.
Напишите программу, которая читает данные из файла в массив структур (записей) и выводит на экран:
а) средний в районе по каждому предмету;
б) максимальную сумму , полученных учащимися;
в) список учащихся (фамилии и имена), набравших эту максимальную сумму, в алфавитном порядке;
г) количество учащихся, получивших хотя бы одну отметку «2».

Пример данных в файле

Александрова,Маргарита,3,3,4,2
Алескеров,Имран,3,4,4,2
Бармин,Владимир,4,3,4,2

Показать ответ
Ответ:
BezNikaVoobshe
BezNikaVoobshe
15.01.2024 07:11
Для решения этой задачи, нам потребуется использовать модуль csv, который позволяет нам работать с csv файлами в Python. Для начала, нужно открыть файл и прочитать данные из него. Затем, мы можем использовать цикл для обработки каждой строки и вычисления необходимых результатов.

Вот решение на питоне:
```python
import csv

def read_marks():
marks = []
with open('marks.csv') as file:
reader = csv.reader(file)
for row in reader:
marks.append(row)
return marks

def average_marks(marks):
subjects = len(marks[0]) - 2
averages = [0] * subjects
count = len(marks)

for i in range(2, len(marks[0])):
total = 0
for j in range(len(marks)):
total += int(marks[j][i])
averages[i-2] = total / count

return averages

def max_total(marks):
max_sum = 0
max_students = []

for i in range(len(marks)):
total = sum([int(x) for x in marks[i][2:]])
if total > max_sum:
max_sum = total
max_students = [marks[i][:2]]
elif total == max_sum:
max_students.append(marks[i][:2])

return max_sum, max_students

def alphabetical_order(students):
return sorted(students, key=lambda x: (x[1], x[0]))

def count_negative_marks(marks):
count = 0
for i in range(len(marks)):
if '2' in marks[i][2:]:
count += 1
return count

def main():
marks = read_marks()
averages = average_marks(marks)
max_sum, max_students = max_total(marks)
sorted_students = alphabetical_order(max_students)
negative_marks_count = count_negative_marks(marks)

print("Средний балл в районе по каждому предмету:")
for i in range(len(averages)):
print(f"{marks[0][i+2]}: {averages[i]}")

print(f"\nМаксимальная сумма баллов: {max_sum}")

if len(max_students) > 1:
print("\nСписок учащихся, набравших максимальную сумму в алфавитном порядке:")
else:
print("\nУченик, набравший максимальную сумму:")

for student in sorted_students:
print(f"{student[0]} {student[1]}")

print(f"\nКоличество учащихся, получивших хотя бы одну отметку '2': {negative_marks_count}")

if __name__ == '__main__':
main()
```

Пояснение к решению:
- Функция `read_marks()` открывает файл `marks.csv` и считывает данные в массив `marks`.
- Функция `average_marks()` вычисляет средний балл для каждого предмета, перебирая все строки и суммируя оценки по каждому предмету. Результатом является массив `averages`.
- Функция `max_total()` находит учеников с максимальной суммой баллов, перебирая все строки и сравнивая текущую сумму с максимальной. Результатом является максимальная сумма `max_sum` и список учеников `max_students`.
- Функция `alphabetical_order()` сортирует список учеников `max_students` в алфавитном порядке по фамилии и имени.
- Функция `count_negative_marks()` считает количество учащихся, получивших хотя бы одну отметку "2".
- Функция `main()` вызывает все остальные функции и выводит результаты на экран.

Обратите внимание, что предполагается, что файл `marks.csv` находится в том же каталоге, что и исполняемый скрипт. Если файл находится в другом месте, необходимо указать полный путь к файлу при открытии.
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота