UCHEES.RU - помощь студентам и школьникам

Помогите пожалуйста решить задачу в паскале! В файле marks.csv записаны сведения о...


В 12:50 поступил вопрос в раздел Информатика, который вызвал затруднения у обучающегося.

Вопрос вызвавший трудности

Помогите пожалуйста решить задачу в паскале!

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

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

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


Ответ подготовленный экспертами Учись.Ru

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

Помогите пожалуйста решить задачу в паскале!

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

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

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


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

// PascalABC.NET 3.3, сборка 1611 от 06.01.2018
// Внимание! Если программа не работает, обновите версию!

type
  Exams=record
    fam:string;
    nam:string;
    ball:=new integer[4];
  end;
    
begin
  var Ls:=new List;
  var b:Exams; // буфер
  ReadLines('marks.csv')
      .Foreach(t->begin
          var a:=t.ToWords(',');
          (b.fam,b.nam):=(a[0],a[1]);
          b.ball:=a[2:].Select(q->q.ToInteger).ToArray;
          Ls.Add(b)
          end);
  var n:=Ls.Count;
  // а
  var m:=Arr(0,0,0,0);
  var c:=Ls.Select(t->t.Ball);
  foreach var d in c do
    for var i:=0 to 3 do m[i]+=d[i];
  Writeln('Средние баллы по предметам: ', m[0]/n:0:1,', ',m[1]/n:0:1,
      ', ',m[2]/n:0:1,', ',m[3]/n:0:1);
  // б
  var max:=Ls.Select(t->t.Ball.Sum).Max;
  Writeln(NewLine,'Максимальная сумма баллов ',max);
  // в
  Writeln(NewLine,'Учащиеся, набравшие максимальную сумму баллов:');
  Ls.Where(t->t.Ball.Sum=max).Select(t->t.fam+' '+t.nam)
      .OrderBy(t->t).Println(NewLine);
  // г
  Writeln(NewLine,'Получили хотя бы одну двойку:');
  Ls.Where(t->t.Ball.Any(t->t=2)).Select(t->t.fam+' '+t.nam)
      .OrderBy(t->t).Println(NewLine)
end.

Пример:
Средние баллы по предметам: 3.3, 3.3, 4.0, 2.0

Максимальная сумма баллов 13

Учащиеся, набравшие максимальную сумму баллов:
Алескеров Имран
Бармин Владимир

Получили хотя бы одну двойку:
Александрова Маргарита
Алескеров Имран
Бармин Владимир

Замечание:
В PascalABC.NET 3.3 динамические массивы реализованы с помощью списков, поэтому было принято решение использовать именно список, позволяющий не знать заранее размера массива и добавлять элементы по мере необходимости. Если возникнет причуда иметь данные именно в массиве, перед end. добавьте строку var x:=Ls.ToArray; - она создаст из списка массив х.

-------------------



НЕСКОЛЬКО СЛОВ ОБ АВТОРЕ ЭТОГО ОТВЕТА:

Работы, которые я готовлю для студентов, преподаватели всегда оценивают на отлично. Я занимаюсь написанием студенческих работ уже более 4-х лет. За это время, мне еще ни разу не возвращали выполненную работу на доработку! Если вы желаете заказать у меня помощь оставьте заявку на этом сайте. Ознакомиться с отзывами моих клиентов можно на этой странице.

Ершова Изольда Мартыновна - автор студенческих работ, заработанная сумма за  прошлый месяц 49 978 рублей. Её работа началась с того, что она просто откликнулась на эту вакансию

ПОМОГАЕМ УЧИТЬСЯ НА ОТЛИЧНО!

Выполняем ученические работы любой сложности на заказ. Гарантируем низкие цены и высокое качество.

Деятельность компании в цифрах:

Зачтено оказывает услуги помощи студентам с 1999 года. За все время деятельности мы выполнили более 400 тысяч работ. Написанные нами работы все были успешно защищены и сданы. К настоящему моменту наши офисы работают в 40 городах.

РАЗДЕЛЫ САЙТА

Ответы на вопросы - в этот раздел попадают вопросы, которые задают нам посетители нашего сайта. Рубрику ведут эксперты различных научных отраслей.

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

Красивые высказывания - цитаты, афоризмы, статусы для социальных сетей. Мы собрали полный сборник высказываний всех народов мира и отсортировали его по соответствующим рубрикам. Вы можете свободно поделиться любой цитатой с нашего сайта в социальных сетях без предварительного уведомления администрации.

ЗАДАТЬ ВОПРОС

НОВЫЕ ОТВЕТЫ

ПОХОЖИЕ ВОПРОСЫ