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

Ответы 1

  • 1. Современное решение// PascalABC.NET 3.2, сборка 1417 от 28.03.2017// Внимание! Если программа не работает, обновите версию!begin  var s:=ReadLines('input.txt').Select(s->s.ToWords).      Select(w->(w[0]+' '+w[1],      (w[2].ToInteger+w[3].ToInteger+w[4].ToInteger)/3)).ToArray;  var max:=s.Max(fb->fb[1]);  s.Where(fb->fb[1]=max).Select(fb->fb[0]).Println(NewLine)end.2. Школьное решение в стиле "TurboPascal 1983г"const  n=50; // максимум лучших учениковvar  f:Text;  i,p,pa,b,sum,max:integer;  sb:real;  s,fio:string;  flag:boolean;  a:array[1..n] of string;begin  Assign(f,'input.txt');  Reset(f);  max:=0;  pa:=1;  while not Eof(f) do begin    Readln(f,s);    fio:='';    flag:=true;    for i:=1 to Length(s) do      if s[i]<>' ' then fio:=fio+s[i]      else        if flag then begin          fio:=fio+' ';          flag:=false          end        else break;    p:=Length(fio)+2;    sum:=0;    for i:=1 to 3 do begin      b:=Ord(s[p])-Ord('0');      sum:=sum+b;      p:=p+2      end;    if sum>max then begin      a[1]:=fio; pa:=2; max:=sum      end    else      if sum=max then begin        a[pa]:=fio; pa:=pa+1        end;    end;  Close(f);  for i:=1 to pa-1 do Writeln(a[i]);end.3. Пример выполненияИсходные данные (файл во вложении)Иванов И.И. 4 5 4Сидорова С.С. 5 3 4Петров П.П. 5 5 4Козлов К.К. 3 3 5Васечкин В.В. 4 4 4Сорокина С.С. 5 5 4Тарасова Т.Т. 5 4 5РезультатПетров П.П.Сорокина С.С.Тарасова Т.Т.Предвижу возражение, что современное решение "непонятно". А что, школьное понятнее? Текст в 42 строчки понятнее чем в 5 строк? (я выкинул из обоих текстов по одному begin и end, окаймляющие программу).Что дольше писать и отлаживать? Где больше ошибок можно сделать? В конце-концов, что проще изучить с нуля - программирование в 5 строк или  в 42?Вот и вопрос - для чего в школах массово изучают такое несуразное программирование?
    answer img
  • Добавить свой ответ

Войти через Google

или

Забыли пароль?

У меня нет аккаунта, я хочу Зарегистрироваться

How much to ban the user?
1 hour 1 day 100 years