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

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

10 ( 20 отдал)

формат входных данных
с клавиатуры вводится целое число n (2≤n≤30) — количество занятий; и список из n оценок. в некой американской школе используется 7-ми система оценок.
формат выходных данных
на экран требуется вывести исправленную последовательность. необходимо заменить все минимальные оценки друга билла на наиболее высокие из допустимых — больше минимальной, но не больше максимальной оценки (чтобы не застукали). остальные оценки не изменять.
гарантируется, что во входных данных существует хотя бы две различные оценки.

Показать ответ
Ответ:
Матвей2048602
Матвей2048602
15.09.2022 06:56
//PascalABC.NET 3.0, сборка 1088
begin
  var a:=ReadLines('infile.txt').ToArray;
  var n:=a.Length;
  Writeln('*** Исходная информация ***');
  // фамилия, имя, возраст, рост, вес
  a.PrintLn(NewLine);
  Writeln('*** Задание 1 ***');
  var sves:real:=0;
  var srost:real:=0;
  foreach var s in a do begin
    srost+=StrToFloat(s.ToWords.ElementAt(3));
    sves+=StrToFloat(s.ToWords.ElementAt(4))
    end;
  Writeln('Средний рост равен ',srost/n:5:1);
  Writeln('Средний вес равен ',sves/n:4:1);
  srost/=n; sves/=n;
  Writeln('*** Задание 2 ***');
  var f2:=OpenWrite('rost.txt');
  foreach var s in a do begin
    var ss:=s.ToWords;
    var rost:=StrToFloat(ss.ElementAt(3));
    if rost>srost then begin
      var s0:=ss.Take(3).ToArray;
      var s1:=s0[0]+' '+s0[1]+', '+s0[2];
      Writeln(s1);
      Writeln(f2,s1)
      end
    end;
  f2.Close;
  Writeln('*** Задание 3 ***');
  f2:=OpenWrite('ves.txt');
  foreach var s in a do begin
    var ss:=s.ToWords;
    var ves:=StrToFloat(ss.ElementAt(4));
    if ves<sves then begin
      var s0:=ss.Take(3).ToArray;
      var s1:=s0[0]+' '+s0[1]+', '+s0[2];
      Writeln(s1);
      Writeln(f2,s1)
      end
    end;
  f2.Close
end.

Тестовое решение:
*** Исходная информация ***
Иванов Игорь 14 158 47.4
Петров Павел 14 161 58.3
Козлов Кирилл 15 160 60.3
Сидорова Мария 14 156 45.9
Тяпкина Наталья 15 158 46
Ляпкин Алексей 15 161 58.6
Мамочкин Константин 14 157 52.8
*** Задание 1 ***
Средний рост равен 158.7
Средний вес равен 52.8
*** Задание 2 ***
Петров Павел, 14
Козлов Кирилл, 15
Ляпкин Алексей, 15
*** Задание 3 ***
Иванов Игорь, 14
Сидорова Мария, 14
Тяпкина Наталья, 15
0,0(0 оценок)
Ответ:
Каракоз11111
Каракоз11111
28.09.2020 06:24
{ Free Pascal - fpc 2.6.4 }
var
  i,n:integer;
  A,B:array of integer;
  p:longint;
begin
  Write('Число элементов в векторах='); Read(n);
  Randomize;
  SetLength(A,n);
  Writeln('Вектор A');
  for i:=0 to n-1 do begin A[i]:=Random(51)-25; Write(A[i],' ') end;
  Writeln;
  SetLength(B,n);
  p:=0;
  Writeln('Вектор B');
  for i:=0 to n-1 do begin
    B[i]:=Random(51)-25;
    Write(B[i],' ');
    p:=p+A[i]*B[i]
    end;
  Writeln;
  Writeln('Скалярное произведение равно ',p);
end.

Тестовое решение:
Число элементов в векторах=15
Вектор A
-16 -6 -1 6 -6 7 22 4 16 19 3 -21 19 22 7
Вектор B
21 21 -2 -8 -3 25 -4 20 6 -11 8 10 -16 -16 19
Скалярное произведение равно -1145
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота