IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> Одномерный массив - вроде бы просто?
Petruxa
сообщение 14.03.2007 9:25
Сообщение #1


Гость






Ребят помогите пожалуйста, второй день голову ломаю, что-то никак не выходит!
Найти три наименьших по значению элемента одномерного массива (равные не учитывать) целых чисел, введеных с клавы. Заменить их на соответствующие им индексы.
Спасибо
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
volvo
сообщение 14.03.2007 12:15
Сообщение #2


Гость






Я бы сделал вот это (для общего случая, а не только для трех минимумов):
const
n = 11;
m = 3;

type
arrType = array[1 .. n] of integer;
minType = array[1 .. m] of integer;

const
a: arrType = (1, 2, 3, 4, 3, 2, 7, 6, 3, 3, 1);

var
found: boolean;
mins: minType;
i, j, k: integer;

begin
for i := 1 to m do mins[i] := -1;

for i := 1 to n do begin

{ Проверяем, было ли это значение уже обработано }
found := false;
for j := 1 to m do
if (mins[j] <> -1) and (a[i] = a[mins[j]]) then found := true;

{ если было - берем следующее }
if found then continue;

{ а тут, собственно, заполняем массив минимумов }
j := 1;
while (j <= m) and (mins[j] <> -1) and (a[mins[j]] < a[i]) do inc(j);
if j <= m then begin
for k := m downto j + 1 do mins[k] := mins[k - 1];
mins[j] := i;
end;

end;

{ и меняем индексы }
for i := 1 to m do
if mins[i] <> -1 then a[mins[i]] := mins[i];

end.
 К началу страницы 
+ Ответить 

Сообщений в этой теме
Petruxa   Одномерный массив - вроде бы просто?   14.03.2007 9:25
Lapp   Вот такой код, вроде, должен работать (не проверял...   14.03.2007 10:04
klem4   const n = 4; type TArray = array [1..n] of Inte...   14.03.2007 10:14
Petruxa   'klem4' - огромное спасибо, всё работает...   14.03.2007 10:36
Lapp   Да, схема Klem4 лучше.. :) Свою я исправил (надо и...   14.03.2007 10:33
Petruxa   а может лучше выложить Ваш код? очень интересно...   14.03.2007 10:38
Lapp   И еще одна: надо подсчитывать количество минимумов...   14.03.2007 10:40
Гость   помоему код klem4 проще и понятней, а особых изыск...   14.03.2007 11:32
Lapp   помоему код klem4 проще и понятней, а особых изыс...   14.03.2007 11:52
volvo   Я бы сделал вот это (для общего случая, а не тольк...   14.03.2007 12:15
Lapp   Пока смотрел код volvo, нашел еще одну ошибку у се...   14.03.2007 12:28
klem4   У меня то учитывается: Единственное можно еще...   14.03.2007 12:39
Lapp   Проверь на массиве 1, 2, 3, 4 Твоя прога выдает ин...   14.03.2007 12:46
klem4   Действительно, тогда вот что сочинил: for j := 1 ...   14.03.2007 13:09
Lapp   Действительно, тогда вот что сочинил: Можно и та...   14.03.2007 13:44


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 20.07.2025 13:51
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"