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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 16.06.2016, 16:41   #1
Just-Five
Пользователь
 
Регистрация: 16.06.2016
Сообщений: 11
По умолчанию Багаж пассажира характеризуется количеством вещей и общим весом вещей - Pascal ABC

Помогите решить задачу.
Багаж пассажира характеризуется количеством вещей и общим весом вещей. Дан файл f, содержащий информацию о багаже нескольких пассажиров. Дать сведения о багаже, число вещей в котором не меньше, чем в любом другом багаже, а вес вещей не больше, чем в любом другом багаже с этим же числом вещей.
Задача за типизированные файлы.
Just-Five вне форума Ответить с цитированием
Старый 16.06.2016, 17:16   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

основу можно взять тут - http://programmersforum.ru/showthread.php?t=55261
или тут - http://programmersforum.ru/showthread.php?t=205254

Цитата:
Дать сведения о багаже, число вещей в котором не меньше, чем в любом другом багаже, а вес вещей не больше, чем в любом другом багаже с этим же числом вещей.
перевожу на русский,
1) нужно найти запись с максимальным числом вещей.
2) нужно перебрать записи, которые имеют такое же число вещей, как запись из п1
и найти среди таких записей багаж с минимальным весом.

всё.

p.s. в принципе это можно за один проход по файлу получить.

Последний раз редактировалось Serge_Bliznykov; 16.06.2016 в 17:19.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 16.06.2016, 17:27   #3
Just-Five
Пользователь
 
Регистрация: 16.06.2016
Сообщений: 11
По умолчанию

Нужно написать 2 программы первая создает файл(ее сделал)вторая с решением задачи.Со 2 проблемы.
Вот 1:
Код:
type
  komp = record 
    fam: string[10]; 
    kol: integer;  
    ves: real;
  end;

var
  Fp: file of komp; 
  A: komp; 
  i, n: integer;

begin
  Assignfile(Fp, 'm.dta');
  rewrite(fp); 
  Writeln('Введите кол-во записей'); 
  Readln(n); 
  for i := 1 to N do 
  begin
    Write('Введите фамилию'); 
    Readln(A.fam); 
    write('Введите количество вещей'); 
    Readln(A.kol); 
    write('Введите вес вещей'); 
    Readln(A.ves);
    Write(fp, A); 
  end; 
  
end.
_____
Код программы нужно выделять (форматировать) тегами [CODE] (читать FAQ)
Модератор

Последний раз редактировалось Serge_Bliznykov; 16.06.2016 в 17:36.
Just-Five вне форума Ответить с цитированием
Старый 16.06.2016, 17:39   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

в конце желательно закрывать файл
Код:
  Close(fp);
а что со второй не получается?
я же расписал, как её решать.
В чём проблема?
Не умеете искать минимум/максимум?
Serge_Bliznykov вне форума Ответить с цитированием
Старый 16.06.2016, 17:55   #5
Just-Five
Пользователь
 
Регистрация: 16.06.2016
Сообщений: 11
По умолчанию

При попытке считать что либо выдает ошибку "Ожидалась переменная типа komp".
Just-Five вне форума Ответить с цитированием
Старый 16.06.2016, 17:59   #6
Just-Five
Пользователь
 
Регистрация: 16.06.2016
Сообщений: 11
По умолчанию

Очень прошу написать мне хотябы примерный код программы.Уже 3 день с ней мучаюсь.Заранее спасибо
Just-Five вне форума Ответить с цитированием
Старый 16.06.2016, 18:09   #7
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от Just-Five Посмотреть сообщение
При попытке считать что либо выдает ошибку "Ожидалась переменная типа komp".
Точно так! А Вы как считать пытаетесь?!

вот код по чтению файла:
Код:
type
  komp = record 
    fam: string[10]; 
    kol: integer;  
    ves: real;
  end;

var
  fp: file of komp; 
  A, maxA: komp; 

begin
  Assignfile(fp, 'm.dta');
  reset(fp); 

  maxA.kol := -1; {невозможное значение, 
              любое корректное количество вещей будет больше нуля и больше этого числа}
  while Not eof(fp) do begin
     Read(fp, A);
     if A.kol>maxA.kol then maxA := A
  end;
  Close(fp);

  if maxA.kol<0 
     then WriteLn('Файл пуст или заполнен некорректно!') 
     else WriteLn('Максимальное число вещей ',maxA.kol,' у пассажира ',maxA.fam);

  Readln;
end.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 16.06.2016, 18:29   #8
Just-Five
Пользователь
 
Регистрация: 16.06.2016
Сообщений: 11
По умолчанию

Спасибо за помощь!
Just-Five вне форума Ответить с цитированием
Старый 16.06.2016, 18:36   #9
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Just-Five, пожалуйста.

только обратите внимание, что это только половина решения вашей задачи.
вам нужно среди записей с максимальным числом вещей найти запись с минимальным весом!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 16.06.2016, 18:59   #10
Just-Five
Пользователь
 
Регистрация: 16.06.2016
Сообщений: 11
По умолчанию

Я понял.Оставшееся попробую решить своими силами.
Just-Five вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создать файл "Багаж", включающий в себя информацию:фамилия пассажира, количество и общий вес вещей, место следования. Регааа Паскаль, Turbo Pascal, PascalABC.NET 0 26.11.2014 16:23
Багаж пассажира характеризуется количеством вещей и их общим весом. Дано файл Bagaz, содержащий сведения о багаже ​​нескольких пас Casillas1 Помощь студентам 10 05.06.2014 16:47
Багаж пассажира характеризуется количеством вещей и их общим весом. Дано файл Bagazh, содержащий сведения о багаже ​​нескольких па Casillas1 Помощь студентам 6 17.05.2014 16:53
Работа с записями.Выяснить, имеются ли пассажиры с одинаковым количеством и общим весом вещей. naty7773 Помощь студентам 0 10.05.2012 16:07