Есть ответ 👍

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

205
320
Посмотреть ответы 2

Ответы на вопрос:

azzitop
4,7(56 оценок)

// 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< exams> ;   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=(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; - она создаст из списка массив х.

50 и 60

Объяснение:

C2: =B2+$A1  - 50

D2: =C2+$A1  - 60

Популярно: Информатика