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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 22.03.2013, 15:57   #11
Aleks_006
Пользователь
 
Регистрация: 19.03.2013
Сообщений: 23
По умолчанию

Большое спасибо всем ответившим, я практически закончил её. Единственное, не могу врубиться, как сделать такой вывод??
Цитата:
если их несколько, то нужно определить всех
Если делать как обычно, получается вывод только одного числа:
Код:
 minT:=T[1];
 for i:=1 to n do
 if minT>T[i] then s:=i;
writeln('Раньше всех выйдет № ',s,' (' ,minT:3:1, ' сек)');
readkey; end.
Я попытался запилить вместо переменной массив, но ничего хорошего не вышло.
Код:
 minT:=T[1]; s[i]:=1; k:=1;
 for i:=1 to n do
 if (minT>T[i]) or (minT=T[i]) then begin s[k]:=i; k:=k+1; end;
writeln('Раньше всех выйдет(-ут) №№ ',s[k],' (' ,minT:3:1, 'сек)');
readkey; end.
Это сейчас неточный код, т.к. правильный я просто забыл - он на другом компе. Но смысл был такой: программа прекрасно выдавала 2 или 3 минимума (совпавших у нескольких роботов), но перестала работать в том случае, когда все числа разные! Выдала какой-то совершенно неверный бред, да ещё и циклом из трёх строк. Так вот, я не могу создать универсальный код. Чтобы выводила правильно и один минимум, и несколько.

Последний раз редактировалось Aleks_006; 22.03.2013 в 15:59.
Aleks_006 вне форума Ответить с цитированием
Старый 23.03.2013, 15:47   #12
Aleks_006
Пользователь
 
Регистрация: 19.03.2013
Сообщений: 23
По умолчанию

Если меня не поняли, вопрос вот в чём: как вывести несколько номеров минимумов (а не один) из любого массива?
Aleks_006 вне форума Ответить с цитированием
Старый 23.03.2013, 17:38   #13
s-andriano
Старожил
 
Аватар для s-andriano
 
Регистрация: 08.04.2012
Сообщений: 3,229
По умолчанию

Цитата:
Сообщение от Aleks_006 Посмотреть сообщение
Если меня не поняли, вопрос вот в чём: как вывести несколько номеров минимумов (а не один) из любого массива?
Существует, минимум два основных варианта (оптимизировать либо по памяти либо по скорости).
Который из них Вас интересует?
s-andriano вне форума Ответить с цитированием
Старый 23.03.2013, 21:08   #14
Aleks_006
Пользователь
 
Регистрация: 19.03.2013
Сообщений: 23
По умолчанию

Цитата:
Сообщение от s-andriano Посмотреть сообщение
Существует, минимум два основных варианта (оптимизировать либо по памяти либо по скорости).
Который из них Вас интересует?
По скорости... впрочем, я не совсем понял, о чём речь. Код будет отличаться?
Aleks_006 вне форума Ответить с цитированием
Старый 23.03.2013, 22:22   #15
s-andriano
Старожил
 
Аватар для s-andriano
 
Регистрация: 08.04.2012
Сообщений: 3,229
По умолчанию

А так бывает, чтобы алгоритмы разные, а код - не отличался?

Если по скорости, значит, в один проход (с оптимизацией по памяти - в два).
Заводим дополнительный массив (для определенности - с 0, назовем A) и число (назовем его N), показывающее, насколько этот массив заполнен, а также число, в которое будем записывать локальное значение минимума D (текущее значение, среди которых ищем минимум - B).
Дальше следующий алгоритм:
перебираем по I
- если N=0, то A(0) := I, N:=1, D := B.
- если B < D, то A(0) := I, D := В и N:=1.
- если B = D, то A(N) := I, N := N + 1;
s-andriano вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Программы на заказ Builder c++/Visual c++/Дельфи/php. Разработка торговых роботов Miller-1981 Фриланс 0 12.12.2012 17:24
Задача про графы nic-nic Помощь студентам 1 11.10.2012 20:24
Задача про файлы Fmk Помощь студентам 0 17.05.2012 19:16
Услуги по созданию торговых роботов AgentSmit Фриланс 0 04.01.2012 18:09
Программы на заказ Delphi/Builder c++/Visual c++ , для SEO/накрутки просмотров, торговых роботов. Miller-1981 Фриланс 0 08.02.2011 23:15