Консультация № 159530
03.02.2009, 20:17
0.00 руб.
0 2 2
Уважаемые Эксперты помогите решить задачу, PascalABC: Из заданного списка спортсменов распечатать сведения о тех из них, кто занимается плаванием, указать возраст, сколько лет занимаются спортом и фамилию самого старшего.

Обсуждение

Неизвестный
03.02.2009, 22:02
общий
это ответ
Здравствуйте, Давыдов Артём Аркадьевич!

вот решение, только оно немного не до конца.

Приложение:
program vopros_159530;
const
Nmax=100;
var
kategory:array[1..Nmax] of string;
name:array[1..Nmax] of string;
vozrast:array[1..Nmax] of integer;
l,n,i,max:integer;
begin
max:=0;
repeat
writeln('введите кол-во спортсменов <= ',Nmax);
readln(n);
until (n>0)and(n<=Nmax);
writeln('введи фамилию,категорию и возраст спортсмена');
for i:=1 to n do begin
read(name[i]);
read(kategory[i]);
read(vozrast[i]);
end;
for i:=1 to n do begin
if kategory[i]='плавание' then begin writeln(name[i]);end;
if vozrast[i]>Max then begin Max:=vozrast[i];l:=i;end;
end;
writeln('самый старший');
writeln(name[l],' ',kategory[l],' ',vozrast[l]);
end.
давно
Профессор
401888
1232
04.02.2009, 13:23
общий
это ответ
Здравствуйте, Давыдов Артём Аркадьевич!
Вот решение с использованием типа записи, более эффективное, лишь один массив.


Приложение:
program Spisk;
uses crt;
type Tspis=record {тип запись с полями по условию}
fam:string[20];{фамилия}
vid:string[20]; {вид спорта}
voz:byte; {возраст}
stz:byte; {стаж}
end;
var sp:array[1..50] of Tspis;{массив записей-список спортсменов}
n,i,j,max,imax:byte;
begin
write('Kolichestvo sportsmenov n=');
readln(n);
for i:=1 to n do
begin
writeln('Sportsmen ',i); {заполняем список данными}
write('Familia: ');readln(sp[i].fam);
write('Vid sporta: ');readln(sp[i].vid);
write('Vozrast: ');readln(sp[i].voz);
write('Staz: ');readln(sp[i].stz);
end;
max:=0;imax:=0;
for i:=1 to n do
if (sp[i].vid='плавание')and(sp[i].voz>max) then
begin
max:=sp[i].voz;{находим старшего из пловцов}
imax:=i; {запоминаем его номер}
end;
clrscr;
Writeln('Список пловцов:':40); {выводим список}
writeln;
for i:=1 to n do
if sp[i].vid='плавание' then {если поле вид-плавание}
writeln(sp[i].fam,' возраст - ',sp[i].voz,' занимается - ',sp[i].stz);
writeln;
write('Самый старший - ',sp[imax].fam); {выводим старшего из пловцов}
end.
Форма ответа