profile
Размещено 5 лет назад по предмету Информатика от TheMonstercat

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

  1. Ответ на вопрос
    Ответ на вопрос дан Аккаунт удален
    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
    Петров Иван
    Любимов Павел
    Ваш выбор: *
    Спасибо, приходите еще!
Не тот ответ на вопрос, который вам нужен?
Найди верный ответ
Самые новые вопросы
tegysigalpa2012
Русский язык - 6 лет назад

Помогите решить тест по русскому языку тест по русскому языку «местоимение. разряды местоимений» для 6 класса 1. укажите личное местоимение: 1) некто 2) вас 3) ни с кем 4) собой 2. укажите относительное местоимение: 1) кто-либо 2) некоторый 3) кто 4) нам 3. укажите вопросительное местоимение: 1) кем-нибудь 2) кем 3) себе 4) никакой 4. укажите определительное местоимение: 1) наш 2) который 3) некий 4) каждый 5. укажите возвратное местоимение: 1) свой 2) чей 3) сам 4) себя 6. найдите указательное местоимение: 1) твой 2) какой 3) тот 4) их 7. найдите притяжательное местоимение: 1) самый 2) моего 3) иной 4) ничей 8. укажите неопределённое местоимение: 1) весь 2) какой-нибудь 3) любой 4) этот 9. укажите вопросительное местоимение: 1) сколько 2) кое-что 3) она 4) нами 10. в каком варианте ответа выделенное слово является притяжательным местоимением? 1) увидел их 2) её нет дома 3) её тетрадь 4) их не спросили

Информация

Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.