Задача по информатике
олимпиадные задания по информатике и икт (9 класс)

Светлана Теглева

Подготовка к школьному и муниципальному этапу олимпиады по информатике

Скачать:

ВложениеРазмер
Microsoft Office document icon olimpiadnaya_zadacha_basketbolnaya_komanda.doc37 КБ

Предварительный просмотр:

Баскетбольная команда

Задача. Дан список претендентов в баскетбольную команду с указанием имени, фамилии, роста и возраста. Вывести список претендентов старше 13 лет в порядке возрастания возраста. Если возраст совпадает, то выводить спортсменов в порядке убывания роста.

Первая строка входного файла – количество претендентов.

В каждой из следующих строк – фамилия, имя, возраст и рост претендента.

В выходном файле – список принятых спортсменов в баскетбольную команду.

Пример входного файла:

7

Ivanov Petr 15 170

Petrov Ivan 12 130

Sidorov Semen 14 165

Pupkin Gosha 13 144

Tupin Vova 15 171

Alexandrov Alexandr 15 169

Gofman Georg 14 167

Пример выходного файла:

Gofman Georg  14 167

Sidorov Semen  14 165

Tupin Vova  15 171

Ivanov Petr  15 170

Alexandrov Alexandr  15 16

Решение. Программа довольно проста, используем простейший «пузырьковый» метод сортировки. Причём не обязательно выбрасывать из списка слишком молодых претендентов, достаточно просто не выводить их на экран и в файл ответа. Исходный код решения приведён ниже.

program q;

  uses crt;

  const n=50;

  type Person=record

         Name,Surname:string;

         Age,Height:integer

       end;

       TComanda=array [1..n] of Person;

  var f,g:Text;

      i,j,jj,k,kk,p,s,code:integer;

      h,hh:string;

      x,y:TComanda;

      c:Person;

      L:boolean;

  function Greater(a,b:Person):boolean;

    var L:boolean;

    begin

      if a.age>b.age

        then

          L:=True

        else

          if a.age=b.age

            then

              L:=(a.height

      Greater:=L

    end;

begin

  TextBackGround(1);  TextColor(14);  ClrScr;

  Assign(f,'c:/bas.in');  reset(f);

  readln(f,k); {Количество человек в группе}

  for i:=1 to k do

    begin

      readln(f,h); j:=1; hh:='';

      while h[j]<>' ' do inc(j);

      for p:=1 to j-1 do hh:=hh+h[p];

      x[i].Surname:=hh; jj:=j+1;

      while h[jj]<>' ' do inc(jj);

      hh:='';

      for p:=j+1 to jj-1 do hh:=hh+h[p];

      x[i].Name:=hh; j:=jj+1;

      while h[j]<>' ' do inc(j);

      hh:='';

      for p:=jj+1 to j-1 do hh:=hh+h[p];

      val(hh,s,code); x[i].age:=s; hh:='';

      for p:=j+1 to length(h) do hh:=hh+h[p];

      val(hh,s,code); x[i].Height:=s;

    end;

  close(f);

  {Данные прочитаны и занесены в память}

  {i - номер просматриваемого спортсмена

   j - номер принимаемого спортсмена}

  i:=1; j:=1;

  while i<=k do

    begin

      {Проверяем i спортсмена}

      if (x[i].age>13)and(x[i].Height>164)

        then

          begin

            y[j]:=x[i]; inc(j)

          end;

      inc(i)

    end;

  kk:=j-1; {Количество принятых}

  repeat

    L:=True;

    for i:=1 to kk-1 do

      if Greater(y[i],y[i+1])

        then

          begin

            c:=y[i]; y[i]:=y[i+1]; y[i+1]:=c; L:=False;

          end;

  until L;

  assign(g,'c:/bas.out'); rewrite(g);

  for i:=1 to kk do

    begin

      write(y[i].Surname+' '); write(y[i].Name+' ');

      write(y[i].age:3); writeln(y[i].height:4);

      write(g,y[i].Surname+' '); write(g,y[i].Name+' ');

      write(g,y[i].age:3); writeln(g,y[i].height:4);

    end;

  close(g);

  repeat until keypressed;

end.


По теме: методические разработки, презентации и конспекты

Элективный курс "Практикум решения задач по информатике"

Элективный курс "Практикум решения задач по информатике"...

Решение логических задач по информатике

           В материале рассматриваются два метода решения логических задач и с помощью хорошей презентации урок превращается в  в урок-игру по теме "Логически...

Элективный курс: Решение занимательных задач по информатике для обучающихся 5–6 классов

Факультативный курс «Решение занимательных задач по информатике» предназначен для обучающихся 5–6 классов и нацелен на:  развитие познавательных, интеллектуальных и творческих способно...

Элективный курс: Решение занимательных задач по информатике для обучающихся 5–6 классов

Факультативный курс «Решение занимательных задач по информатике» предназначен для обучающихся 5–6 классов и нацелен на:  развитие познавательных, интеллектуальных и творческих способно...

Логические задачи по информатике в презентациях

Логические задачи являются одним из эффективных средств развития мышления школьников. Здесь приводится решение нескольких задач, оформленные в презентацию....

Интерактивный задачник "Комбинаторные задачи" к учебному пособию Л.Л. Босовой "Занимательные задачи по информатике"

Данное учебное пособие можно использовать на уроках информатики, а также на дополнительных занятиях для работы с одаренными детьми....