Вопрос задан 15.02.2019 в 09:27. Предмет Информатика. Спрашивает Константинов Артём.

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

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

Ответы на вопрос

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Владимирец Тёма.
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
Петров Иван
Любимов Павел
Ваш выбор: *
Спасибо, приходите еще!
0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

program SchoolClass;

type Student = record lastName: string; firstName: string; mathGrade: integer; end;

var students: array[1..10] of Student; i, searchGrade: integer; searchLastName, searchFirstName: string; maxGradeStudent: Student;

begin // Ввод данных об учениках for i := 1 to 10 do begin writeln('Введите фамилию ученика ', i, ':'); readln(students[i].lastName); writeln('Введите имя ученика ', i, ':'); readln(students[i].firstName); writeln('Введите оценку по математике ученика ', i, ':'); readln(students[i].mathGrade); end;

// Поиск оценки по фамилии и имени ученика writeln('Введите фамилию ученика для поиска оценки:'); readln(searchLastName); writeln('Введите имя ученика для поиска оценки:'); readln(searchFirstName); for i := 1 to 10 do begin if (students[i].lastName = searchLastName) and (students[i].firstName = searchFirstName) then begin writeln('Оценка по математике ученика ', searchLastName, ' ', searchFirstName, ' : ', students[i].mathGrade); break; end; end;

// Поиск учеников, умеющих данную оценку writeln('Введите оценку по математике для поиска учеников:'); readln(searchGrade); writeln('Ученики, умеющие данную оценку:'); for i := 1 to 10 do begin if students[i].mathGrade = searchGrade then writeln(students[i].lastName, ' ', students[i].firstName); end;

// Поиск хотя бы одного ученика с наилучшей оценкой maxGradeStudent := students[1]; for i := 2 to 10 do begin if students[i].mathGrade > maxGradeStudent.mathGrade then maxGradeStudent := students[i]; end; writeln('Ученик с наилучшей оценкой по математике:', maxGradeStudent.lastName, ' ', maxGradeStudent.firstName, ' : ', maxGradeStudent.mathGrade);

end.

0 0

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос