Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.12.2014, 22:44   #1
tata7393
Пользователь
 
Регистрация: 19.10.2012
Сообщений: 15
По умолчанию массив записей (В группе школьников n человек. про каждого известно фамилия, рост, вес...)

пожалуйста помогите решить задачу, очень срочно...
В группе школьников n человек. про каждого известно фамилия, рост, вес. Найти в классе самого толстого мальчика.
Вот код

Код:
type uchenik = record
    FIO: string[25];
    POL: string[25];
    VES: integer;
    max: integer;
  end;
var A: array[1..100] of uchenik;
  i, n: integer;
begin
  write('Введите кол-во учащихся: ');
  readln(n);
  for i := 1 to n do
  begin
    writeln('Введите информацию о ', i, '-ом ученике');
    write('Фамилия: ');
    readln(A[i].FIO);
    write('Пол: ');
    readln(A[i].POL);
    write('Вес: ');
    readln(A[i].VES);
  end;
  A[i].max := A[1].VES;
  Writeln('Самый толстый мальчик в классе:');
  for i := 2 to n do begin
    if A[i].POL = 'm' then
      if A[i].VES > A[i].max then
        A[i].max := A[i].VES;
    writeln(A[i].FIO, ' имеет вес: ', A[i].max, ' кг ');
  end;
end.
Не получается связать с полом, так как надо учитывать только мальчиков...




___________
Код нужно оформлять по правилам:
тегом [CODE]..[/СODE]
(кнопочка на панели форматирования с решёточкой #)
Не забывайте об этом!

Модератор.

Последний раз редактировалось Serge_Bliznykov; 25.12.2014 в 09:32.
tata7393 вне форума Ответить с цитированием
Старый 25.12.2014, 09:41   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

а почему у Вас POL строковый, да ещё и 25 символов длиной?!
на мой взгляд POL должен быть либо символом из заданного строго ограниченного набора ('F','M') или ('М','Ж') или ('М', 'Д') или числом (1-мальчик, 2-девочка).
у Вас же можно в это поле целую поэму написать! Зачем?!!


предлагаю такой вариант решения:
Код:
type uchenik = record
    FIO: string[25];
    POL: byte; {(1-мальчик, 2-девочка)}
    VES: integer;
    max: integer;
  end;
...

  ..... <ввод или чтение данных>

  maxFatBoyIndex := -1;  {изначально нет данных о максимальном весе}
  for i := 1 to n do begin
    if A[i].POL = 1 {если мальчик} then begin
       if  maxFatBoyIndex<0 then maxFatBoyIndex := i
       else
          if A[i].VES > A[maxFatBoyIndex].VES then maxFatBoyIndex := i
    end;
  end;

  if  maxFatBoyIndex < 0 then WriteLn('Пацанов в классе вообще нет!')
  else 
    Writeln('Самый толстый мальчик в классе: ', A[maxFatBoyIndex].FIO, 
                   ' имеет вес ', A[maxFatBoyIndex].VES   );

...
Serge_Bliznykov вне форума Ответить с цитированием
Старый 25.12.2014, 17:44   #3
tata7393
Пользователь
 
Регистрация: 19.10.2012
Сообщений: 15
По умолчанию

Спасибо, я уже вчера сделала данную программу))))
tata7393 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Файлы в Delphi: Список женихов и невест. Каждая запись списка содержит пол, имя, возраст, рост, вес, а также требования к партнеру denis32 Помощь студентам 1 03.04.2014 08:28
С++. Структуры и массивы структур. Дан массив записей, содержащий сведения о книгах: фамилия автора, название книги, год издания Beauty44 Помощь студентам 3 21.09.2013 13:14
Массив записей: распределить премиальный фонд прямо пропорционально коэффициенту трудового участия каждого рабочего Лераа Паскаль, Turbo Pascal, PascalABC.NET 0 18.12.2012 23:34
Программа заполняет массив из 10 записей с 3-мя полями (фамилия, имя, полное число лет) из файла. PasDeNom Паскаль, Turbo Pascal, PascalABC.NET 3 10.04.2012 14:27
Задача про рост студентов filimon_ok Помощь студентам 5 09.12.2010 22:41