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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 10.11.2017, 17:09   #1
Sararans
Новичок
Джуниор
 
Регистрация: 10.11.2017
Сообщений: 1
По умолчанию Помогите дописать код. Множества.

Паскаль ABC
Какие циклы добавить, чтобы программа выводила еще сколько посылок ценой (value) выше 10 рублей было отправлено, а следующей строкой, кому отправлено больше 1 посылки. Т.е если в поле "кому адресована" (whom) будет "Иванов" при описании одной посылки, и также в следующей, а на выходе "Иванов получил 2 посылки". Последний шаг вообще возможно сделать?
Нужно чтобы в итоге было:
Количество посылок в город Москва:
Количество посылок больше 10 рублей:
"Иванов (к примеру)" получил "X(>1)" посылок.
Код:
const
  nmax = 10;
type
  Mail = record
    town : string;
    street : string;
    house : integer;
    flat : integer;
    Whom : string;
    value : integer;
  end;
  
var
  A : array [1..nmax] of Mail;
  B : array [1..nmax] of string;
  C : array [1..nmax] of string;
  i, n, m, j,sum, count : integer;
  
begin
Repeat
Write('Количество посылок (не более ', nmax, '): ');
Readln(n);
Until n in [1..nmax];
for i := 1 to n do
  with A[i] do
  begin
    Writeln('Информация о ', i, ' посылке: ');
    Write('Введите город: '); Readln(town);
    Write('Введите улицу: '); Readln(street);
    Write('Введите дом: '); Readln(house);
    Write('Введите квартиру: '); Readln(flat);
    Write('Введите кому адресована: '); Readln(whom);
    Write('Ценность: '); Readln(value);  
  end;
count := 0;
for i := 1 to n do
  if A[i].town = 'Москва' then inc(count);
Writeln('Количество посылок отправленных в город Москва: ', count);
readln;
end.
Sararans вне форума Ответить с цитированием
Старый 10.11.2017, 21:31   #2
СтудПом
Форумчанин
 
Регистрация: 08.11.2017
Сообщений: 347
По умолчанию

Ну для количества посылок больше 10 руб. нужен цикл аналогичный циклу "Москва".

Считать количество посылок для каждого получателя - проблема.
Правильно это делать через создание динамической структуры - списка получателей. На статических массивах делать такое неправильно.

Если очень надо, можно сделать так
-Цикл прохода по массиву
--Подцикл проверяющий наличие получателя в верхней части массива
---Если нет, тогда считаете подциклом появление получателей в нижней части массива
СтудПом вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
помогите код дописать kinash96 Помощь студентам 6 15.11.2013 10:02
Помогите дописать код.. CodeExpert Помощь студентам 3 09.11.2009 09:38
Помогите в Builder 6 дописать код!!! bee_uk C++ Builder 7 29.05.2009 23:56
Помогите дописать код Черничный Общие вопросы Delphi 2 24.10.2008 00:08
Помогите дописать мои код поиска! AlexII Общие вопросы Delphi 5 17.05.2008 20:07