Задача по информатике
олимпиадные задания по информатике и икт (9 класс)
Подготовка к школьному и муниципальному этапу олимпиады по информатике
Скачать:
Вложение | Размер |
---|---|
olimpiadnaya_zadacha_basketbolnaya_komanda.doc | 37 КБ |
Предварительный просмотр:
Баскетбольная команда
Задача. Дан список претендентов в баскетбольную команду с указанием имени, фамилии, роста и возраста. Вывести список претендентов старше 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 классов и нацелен на: развитие познавательных, интеллектуальных и творческих способно...
Логические задачи по информатике в презентациях
Логические задачи являются одним из эффективных средств развития мышления школьников. Здесь приводится решение нескольких задач, оформленные в презентацию....
Интерактивный задачник "Комбинаторные задачи" к учебному пособию Л.Л. Босовой "Занимательные задачи по информатике"
Данное учебное пособие можно использовать на уроках информатики, а также на дополнительных занятиях для работы с одаренными детьми....