• Добро пожаловать на компьютерный форум Tehnari.ru. Здесь разбираемся с проблемами ПК и ноутбуков: Windows, драйверы, «железо», сборка и апгрейд, софт и безопасность. Форум работает много лет, сейчас он переехал на новый движок, но старые темы и аккаунты мы постарались сохранить максимально аккуратно.

    Форум не связан с магазинами и сервисами – мы ничего не продаём и не даём «рекламу под видом совета». Отвечают обычные участники и модераторы, которые следят за порядком и качеством подсказок.

    Если вы у нас впервые, загляните на страницу о форуме и правила – там коротко описано, как задать вопрос так, чтобы быстро получить ответ. Чтобы создавать темы и писать сообщения, сначала зарегистрируйтесь, а затем войдите под своим логином.

    Не знаете, с чего начать? Создайте тему с описанием проблемы – подскажем и при необходимости перенесём её в подходящий раздел.
    Задать вопрос Новые сообщения Как правильно спросить
    Если пришли по старой ссылке со старого Tehnari.ru – вы на нужном месте, просто продолжайте обсуждение.

Компоненты

  • Автор темы Автор темы PacMan
  • Дата начала Дата начала

PacMan

Новые
Регистрация
7 Фев 2011
Сообщения
14
Реакции
0
Баллы
0
Компоненты

Доброго времени суток, помогите с написанием программы. Определите структуру sportsmen со следующими компонентами: фамилия(отдельно Ф.И.О), пол, возраст, вес, рост.

Составить список участников соревновании из 10 человек с заданным структурным типом. Вывести список спортсменов моложе 25 лет, чей вес превышает 70 килограмм. Вывести отдельно списки мужчин и женщин по алфавиту. Найти среднии возраст спортсменов.
 
А не будете ли Вы столь любезны, чтобы снизойти до указания нам, неразумным, на каком из языков программирования задание сие выполнить потребно? Delphi аль Паскаля хватит? А то, знаете ли, экстрасенсы наши далече укатили, а уж когда назад возвернутся - так то нам неведомо...

Но вообще-то в любом случае шансов, что кто-то возьмется - не много. Потому что составление и обработка подобных баз - несложная, но долгая, нудная, рутинная работа. Я уже давно подобным не занимаюсь. Так что лучше всего, если Вы сами попробуете, а мы, если нужно, поможем, подправим и т.п. Удачи!
 
Эта программа нужна на паскале. Я постараюсь что нибудь сам сделать....
 
Доброго времени суток.... Я написал тут основу программы а вот дальше никак и данные не выводятся, только таблица пустая, ребят подскажите по этой программе как дальше плыть....
Код:
uses crt;
type
sportsmen=record
FirstName:string[15];
Patronymic:string[20];
LastName:string[20];
Floor:string[7];
Age:byte;
Weight:byte;
Growth:byte;
end;
sportsmens=array[1..10] of sportsmen;
var
i:byte;
w:byte;
sred:byte;
const
a:sportsmens=((FirstName:'Александр'; Patronymic:'Сергеевич'; LastName:'Ремнев'; Floor:'Мужской'; Age:22; Weight:68; Growth:173),
(FirstName:'Сергей'; Patronymic:'Петрович'; LastName:'Жовтяк'; Floor:'Мужской'; Age:23; Weight:65; Growth:170),
(FirstName:'Людмила'; Patronymic:'Петровна'; LastName:'Иванова'; Floor:'Женский'; Age:25; Weight:58; Growth:162),
(FirstName:'Любовь'; Patronymic:'Александровна'; LastName:'Французенко'; Floor:'Женский'; Age:20; Weight:58; Growth:165),
(FirstName:'Тимофей'; Patronymic:'Дмитриевич'; LastName:'Стибло'; Floor:'Мужской'; Age:19; Weight:61; Growth:167),
(FirstName:'Ольга'; Patronymic:'Владимировна'; LastName:'Егина'; Floor:'Женский'; Age:27; Weight:56; Growth:164),
(FirstName:'Виктория'; Patronymic:'Павловна'; LastName:'Дергачева'; Floor:'Женский'; Age:26; Weight:57; Growth:169),
(FirstName:'Валерий'; Patronymic:'Иванович'; LastName:'Чижков'; Floor:'Мужской'; Age:21; Weight:71; Growth:183),
(FirstName:'Геннадий'; Patronymic:'Викторович'; LastName:'Петров'; Floor:'Мужской'; Age:28; Weight:75; Growth:185),
(FirstName:'Мария'; Patronymic:'Витальевна'; LastName:'Смирнова'; Floor:'Женский'; Age:21; Weight:53; Growth:163));
begin
writeln('Имя':10, 'Отчество':10, 'Фамилия':10, 'Пол':10, 'Возраст':10, 'Вес':10, 'Рост':10,#10);
end.
 
конечно, не выводится. Вы же не написали оператор вывода на экран)

Код:
begin
  writeln('Имя':10, 'Отчество':14, 'Фамилия':12, 'Пол':10, 'Возраст':10, 'Вес':10, 'Рост':10,#10);

//моложе 25, тяжелее 70
  for i:= 1 to 10 do begin
    if (a[i].Age < 25) and (a[i].Weight > 70) then
      writeln(FirstName:10, Patronymic:14, LastName:12, Floor:10, Age:10, Weight:10, Growth:10,#10);
  end;

//средний возраст
  sred:= (a[1].Age + a[2].Age + a[3].Age + a[4].Age + a[5].Age + a[6].Age + a[7].Age + a[8].Age + a[9].Age + a[10].Age) / 10; //sred - типа Real, а не byte

end.
 
Ребят запускаю прогу пишет, неизвестный идентификатор FirstName, я же его объявил в начале проги???
 
Ребят запускаю прогу пишет, неизвестный идентификатор FirstName, я же его объявил в начале проги???
Нет, не подтверждаю. Оттранслировал и запустил вариант, выложенный в #4 - всё без сучка-задоринки, никаких ошибок. Выводит шапку таблицы, как и написано.

P.S. Несколько маленьких замечаний по идентификаторам.
1. Советую сменить идентификатор "Floor". Дело в том, что floor - это, в переводе с английского, действительно "пол", да только тот, который под ногами: досчатый, паркетный, бетонный, земляной. А который женский и мужской, тот по-английски "sex".
2. Примерно также и с "Growth". Да, это "рост", но как процесс, т.е. увеличение высоты. Рост, как параметр переводится "Height".
3. В английском языке множественное число от "man" (человек) есть "men" (люди), точно также "sportsman" (спортсмен) - "sportsmen" (спортсмены). В данном случае "s" на конце не ставится.
С учетом всего этого довёл я Вашу программу до ума. Она полностью отлажена и работает - по крайней мере, на моём Паскале. За возможные "задвиги" разных версий и реализаций транслятора - не отвечаю! :D
Код:
uses crt;
type
 sportsman=record
  FirstName:string[15];
  Patronymic:string[20];
  LastName:string[20];
  Sex:Char;
  Age:byte;
  Weight:byte;
  Height:byte;
 end;
 sportsmen=array[1..10] of sportsman;

var
 i,j,N_m,N_f:byte;
 sred:real;
 male,female:sportsmen;
 dummy:sportsman;
const
 a:sportsmen=((FirstName:'Александр'; Patronymic:'Сергеевич'; LastName:'Ремнев'; sex:'М'; Age:22; Weight:68; Height:173),
(FirstName:'Сергей'; Patronymic:'Петрович'; LastName:'Жовтяк'; sex:'М'; Age:23; Weight:65; Height:170),
(FirstName:'Людмила'; Patronymic:'Петровна'; LastName:'Иванова'; sex:'Ж'; Age:25; Weight:58; Height:162),
(FirstName:'Любовь'; Patronymic:'Александровна'; LastName:'Французенко'; sex:'Ж'; Age:20; Weight:58; Height:165),
(FirstName:'Тимофей'; Patronymic:'Дмитриевич'; LastName:'Стибло'; sex:'М'; Age:19; Weight:61; Height:167),
(FirstName:'Ольга'; Patronymic:'Владимировна'; LastName:'Егина'; sex:'Ж'; Age:27; Weight:56; Height:164),
(FirstName:'Виктория'; Patronymic:'Павловна'; LastName:'Дергачева'; sex:'Ж'; Age:26; Weight:57; Height:169),
(FirstName:'Валерий'; Patronymic:'Иванович'; LastName:'Чижков'; sex:'М'; Age:21; Weight:71; Height:183),
(FirstName:'Геннадий'; Patronymic:'Викторович'; LastName:'Петров'; sex:'М'; Age:28; Weight:75; Height:185),
(FirstName:'Мария'; Patronymic:'Витальевна'; LastName:'Смирнова'; sex:'Ж'; Age:21; Weight:53; Height:163));

begin
 clrscr;
 writeln('Полный список спортсменов:');
 writeln('Имя':15, 'Отчество':20, 'Фамилия':20, 'Пол':4, 'Возраст':8, 'Вес':4, 'Рост':5,#10);
 for i:=1 to 10 do
  with a[i] do
   writeln(FirstName:15,Patronymic:20,LastName:20,'   ',sex,Age:8,Weight:4,Height:5);
 writeln;
 writeln('Для продолжения нажмите "Enter"...');
 readln;
 writeln('Список тяжелых молодых спортсменов:');
 writeln('Имя':15, 'Отчество':20, 'Фамилия':20, 'Пол':4, 'Возраст':8, 'Вес':4, 'Рост':5,#10);
 for i:=1 to 10 do
  with a[i] do
   if (Age<25) and (Weight>70) then
    writeln(FirstName:15,Patronymic:20,LastName:20,'   ',sex,Age:8,Weight:4,Height:5);
 writeln;
 writeln('Для продолжения нажмите "Enter"...');
 readln;
 N_m:=0;
 N_f:=0;
 for i:=1 to 10 do
  with a[i] do
   begin
    if sex='М' then
     begin
      inc(N_m);
      male[N_m]:=a[i];
     end
    else
     begin
      inc(N_f);
      female[N_f]:=a[i];
     end;
   end;
 for i:=1 to N_m do
  for j:=1 to N_m-i do
   if ORD(male[j].LastName[1])>ORD(male[j+1].LastName[1]) then
    begin
     dummy:=male[j];
     male[j]:=male[j+1];
     male[j+1]:=dummy;
    end;
 writeln('Список мужчин по алфавиту:');
 writeln('Имя':15, 'Отчество':20, 'Фамилия':20, 'Пол':4, 'Возраст':8, 'Вес':4, 'Рост':5,#10);
 for i:=1 to N_m do
  with male[i] do
   writeln(FirstName:15,Patronymic:20,LastName:20,'   ',sex,Age:8,Weight:4,Height:5);
 writeln;
 for i:=1 to N_f do
  for j:=1 to N_f-i do
   if ORD(female[j].LastName[1])>ORD(female[j+1].LastName[1]) then
    begin
     dummy:=female[j];
     female[j]:=female[j+1];
     female[j+1]:=dummy;
    end;
 writeln('Список женщин по алфавиту:');
 writeln('Имя':15, 'Отчество':20, 'Фамилия':20, 'Пол':4, 'Возраст':8, 'Вес':4, 'Рост':5,#10);
 for i:=1 to N_m do
  with female[i] do
   writeln(FirstName:15,Patronymic:20,LastName:20,'   ',sex,Age:8,Weight:4,Height:5);
 writeln;
 writeln('Для продолжения нажмите "Enter"...');
 readln;
 writeln;
 sred:=0;
 for i:=1 to 10 do
  with a[i] do
   sred:=sred+0.1*Age;
 writeln('Средний возраст спортсменов - ',Round(sred));
 readln
end.
 
Все через гугл переводил, сам немецкий учил))))))) Спасибо)
 
Назад
Сверху