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

Pascal. Составить программу,которая содержит информацию об учениках одного класса,отображая следующую информацию:фамилия,имя,оценка по математике. Программа должна обеспечивать ввод данных, поиск оценки по фамилии и имена ученика, поиск учеников,умеющих данную оценку, поиск хотя бы одного ученика с наилучшей оценкой.
Гость
Ответ(ы) на вопрос:
Гость
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;   Writeln('Спасибо, приходите еще!')   end. Пример Ученик 1: Иванов Петр 4 Ученик 2: Петров Иван 5 Ученик 3: Висечкин Николай 3 Ученик 4: Зотова Марина 4 Ученик 5: Любимов Павел 5 Ученик 6: Козлова Елена 4 Ученик 7: 1 - поиск по фамилии и имени; 2 - поиск по оценке; 3 - поиск учеников с лучшей оценкой; иной символ - завершение Ваш выбор: 3 Петров Иван Любимов Павел Ваш выбор: * Спасибо, приходите еще!
Не нашли ответ?
Ответить на вопрос
Похожие вопросы