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

аовлвововоов аовлвововоов    3   25.08.2019 17:10    0

Ответы
Panda9881 Panda9881  20.08.2020 15:37
PascalABC.NET 3.2, сборка 1399 от 08.03.2017
Внимание! Если программа не работает, обновите версию!

type
  Uch=record
  fam,nam:string;
  ball:integer
  end;
begin
  var U:=new Uch[40];
  // Ввод данных (до 40), окончание- пустой ввод
  var i:=0;
  repeat
    var a:=ReadlnString('Ученик '+(i+1).ToString+':').ToWords;
    if a.Count=0 then break;
    U[i].fam:=a[0]; U[i].nam:=a[1]; U[i].ball:=integer.Parse(a[2]);
    i+=1
  until i=40;
  SetLength(U,i); // массив отрегулирован под реальное кол-во
  // поиск
  Writeln('1 - поиск по фамилии и имени;');
  Writeln('2 - поиск по оценке;');
  Writeln('3 - поиск учеников с лучшей оценкой;');
  Writeln('иной символ - завершение');
  repeat
    var c:=ReadlnChar('Ваш выбор:');
    case c of
    '1':begin
      var s:=ReadlnString('Фамилия и имя:').ToWords;
      var found:=false;
      for var j:=0 to U.Length-1 do
        if (U[j].fam=s[0]) and (U[j].nam=s[1]) then begin
          Writeln('Отметка ',U[j].ball);
          found:=true;
          break
          end;
        if not found then Writeln('Нет такого ученика')
      end;
    '2':begin
      var k:=ReadlnInteger('Оценка:');
      var found:=false;
      for var j:=0 to U.Length-1 do
        if U[j].ball=k then begin
          Writeln(U[j].fam,' ',U[j].nam);
          found:=true;
          end;
        if not found then Writeln('Нет такого ученика')
      end;
    '3':begin
      var m:=U.Select(x->x.ball).Max;
      for var j:=0 to U.Length-1 do
        if U[j].ball=m then Writeln(U[j].fam,' ',U[j].nam);
      end;
    else break
    end;
  until false;
приходите еще!')  
end.

Пример
Ученик 1: Иванов Петр 4
Ученик 2: Петров Иван 5
Ученик 3: Висечкин Николай 3
Ученик 4: Зотова Марина 4
Ученик 5: Любимов Павел 5
Ученик 6: Козлова Елена 4
Ученик 7:
1 - поиск по фамилии и имени;
2 - поиск по оценке;
3 - поиск учеников с лучшей оценкой;
иной символ - завершение
Ваш выбор: 3
Петров Иван
Любимов Павел
Ваш выбор: *
приходите еще!
ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика