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

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

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

 
 Ответить  Открыть новую тему 
> Массив, Поменять местами минимальный и максимальный элемент массива
Софа
сообщение 7.05.2007 15:23
Сообщение #1





Группа: Пользователи
Сообщений: 9
Пол: Женский
Реальное имя: Софья

Репутация: -  0  +


Подскажите, как до ума довести такую задачку?
Поменять местами максимальный и минимальный элемент массива размера 10.
Задача вроде легкая, я нашла максимальный и минимальный элемент, а поменять их местами не получается

max:=a[1]; min:=a[1];
for i:=1 to n Do
begin
if max < a[i] then begin
max:=a[i]; end; end;

for i:=1 to n Do
begin
if min > a[i] then begin
min:=a[i];
end; end;

writeln (max,min);
writeln;
{for i:=1 to n Do

Vs:=max;
max:=min;
min:=Vs;} - что в этой части не так?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Tan
сообщение 7.05.2007 15:32
Сообщение #2


Профи
****

Группа: Пользователи
Сообщений: 559
Пол: Мужской
Реальное имя: Бруно

Репутация: -  10  +


Для начала надо знать, что делать если несколько маскимальных элементов встречается и минимальных ? (например если их количество одинаково, тут всё ясно, а если 3 максимальных и 2 минимальных или наобарот, то какие из них менять?)


--------------------
Цитата
Imagination is more important than knowledge.
Albert Einstein
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Адель
сообщение 7.05.2007 15:34
Сообщение #3


Иллюзия мира
***

Группа: Пользователи
Сообщений: 180
Пол: Женский

Репутация: -  4  +


for i:=1 to n do 
begin
if a[i]=min then a[i]:=max;
if a[i]=max then a[i]:=min;
end;

попробуй так
for i:=1 to n Do
begin
if min > a[i] then begin
min:=a[i];
end; end;

незачем столько ставить
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Софа
сообщение 7.05.2007 15:57
Сообщение #4





Группа: Пользователи
Сообщений: 9
Пол: Женский
Реальное имя: Софья

Репутация: -  0  +


Все равно не получается. А если использовать вспомогательную ячейку? И как это написать? Софа
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Адель
сообщение 7.05.2007 16:34
Сообщение #5


Иллюзия мира
***

Группа: Пользователи
Сообщений: 180
Пол: Женский

Репутация: -  4  +


for i:=1 to 5 do
begin
if a[i]=min then a[i]:=max
else
if a[i]=max then a[i]:=min;
end;

да, ошилась..
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 7.05.2007 16:41
Сообщение #6


Гость






Цитата
Задача вроде легкая, я нашла максимальный и минимальный элемент, а поменять их местами не получается
Чтобы их поменять местами, надо находить не сами макс./мин. элементы, а их индексы (назовем их, к примеру, i_min и i_max)... Тогда после того, как индексы найдены - делать так:

Vs:=a[i_max];
a[i_max]:=a[i_min];
a[i_min]:=Vs;
 К началу страницы 
+ Ответить 
Софа
сообщение 8.05.2007 10:52
Сообщение #7





Группа: Пользователи
Сообщений: 9
Пол: Женский
Реальное имя: Софья

Репутация: -  0  +


Получилось! Спасибо всем!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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

 



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