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

В коллекции находятся 36 коллекционных монет. Из них 9 редкие. Периодически из коллекции достаётся 1 монета и оценивается на редкость,
после чего возвращается в коллекцию. Определить количество информации,
передаваемой при каждой оценке.

Показать ответ
Ответ:
tatanapustovalo
tatanapustovalo
26.06.2021 05:08
// 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=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; - она создаст из списка массив х.
0,0(0 оценок)
Ответ:
dinarashoeva
dinarashoeva
26.06.2021 05:08
целый целый R := A + B
тип результата: целый

целый целый R := A - B
тип результата: целый

целый целый R := A * B
тип результата: целый 

целый целый R := A / B
тип результата: вещественный

целый целый A > B
тип результата: логический (true/false)

целый целый A < B
тип результата: логический (true/false)

вещественный вещественный R := A + B
тип результата: вещественный

вещественный вещественный R := A - B
тип результата: вещественный

вещественный вещественный R := A * B
тип результата: вещественный

вещественный вещественный R := A / B
тип результата: вещественный

вещественный вещественный A > B
тип результата: логический (true/false)

вещественный вещественный A < B
тип результата: логический (true/false)
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота