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

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

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

Восстановить пароль

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 15.11.2011, 18:52   #1
gylayko
Форумчанин
 
Регистрация: 14.09.2011
Сообщений: 203
По умолчанию Как в паскале поменять местами максимальный элемент с восьмым в массиве?

Массив я создал, максимальный элемент нашел, нашел и минимальный, вывел их, но их нужно расположить посредине рядом, как это сделать?
Вот то, что у меня уже есть:
Код:
uses crt;
var B:array[1..16] of integer; j,i,max,min:integer;
begin
clrscr;
randomize;
for i:=1 to 16 do B[i]:=random(100);
write('* начальный массив');
for i:=1 to 16 do write(' ',B[i]);
min:=B[1];
for i:=2 to 16 do
  begin
    if B[i]<min then min:=B[i];
  end;
max:=B[16];
for i:=1 to 15 do
  begin
    if B[i]>max then max:=B[i];
  end;
writeln;
writeln('max=',max,' min=',min);
readln;
end.
Помогите пожалуйста!
gylayko вне форума
Старый 15.11.2011, 19:47   #2
IT-man
АльTRUEи$т
Форумчанин
 
Аватар для IT-man
 
Регистрация: 19.03.2009
Сообщений: 784
По умолчанию

Код:
min:=1;
for i:=2 to 16 do
  begin
    if B[i]<B[min] then min:=i;
  end;
tmp:=b[min];
b[min]:=b[8];
b[8]:=tmp;
c максимумом аналогично
Цитата:
«Никто не войдет в Рай, имея хотя бы крупицу гордыни в своем сердце». «Аллах Красив и любит красоту. Гордыня означает отказ от истины и высокомерие»
IT-man вне форума
Старый 15.11.2011, 19:57   #3
gylayko
Форумчанин
 
Регистрация: 14.09.2011
Сообщений: 203
По умолчанию

ты имеешь ввиду вот так?
Код:
uses crt;
var B:array[1..16] of integer; mini,maxy,x,j,i,max,min:integer;
begin
clrscr;
randomize;
for i:=1 to 16 do B[i]:=random(100);
write('*начальный массив');
for i:=1 to 16 do write(' ',B[i]);
min:=B[1];
for i:=1 to 16 do
   begin
     if B[i]<min then min:=B[i];
     mini:=B[i];
   end;
max:=B[16];
for i:=1 to 16 do
   begin
     if B[i]>max then max:=B[i];
     maxy:=B[i];
   end;
writeln;
writeln('max=',max,' min=',min);
x:=mini;
mini:=B[8];
B[8]:=x;
for i:=1 to 16 do
  write(' ',B[i]);
readln;
end.
ток там я только для минимального сделал, но для максимального сделать не проблема! проблема в том, что выводит точно такой же массив как и сначала! что я не так делаю?
gylayko вне форума
Старый 15.11.2011, 19:59   #4
IT-man
АльTRUEи$т
Форумчанин
 
Аватар для IT-man
 
Регистрация: 19.03.2009
Сообщений: 784
По умолчанию

потому что ты смотришь в книгу а видишь 0
у тебя
Код:
 if B[i]<min then min:=B[i];
     mini:=B[i];
у меня
Код:
 if B[i]<B[min] then min:=i;
почувствуй разницу
верный ответ :
я запоминаю индекс элемента а ты его значение
Цитата:
«Никто не войдет в Рай, имея хотя бы крупицу гордыни в своем сердце». «Аллах Красив и любит красоту. Гордыня означает отказ от истины и высокомерие»
IT-man вне форума
Старый 15.11.2011, 20:03   #5
gylayko
Форумчанин
 
Регистрация: 14.09.2011
Сообщений: 203
По умолчанию

так?
Код:
uses crt;
var B:array[1..16] of integer; mini,maxy,x,j,i,max,min:integer;
begin
clrscr;
randomize;
for i:=1 to 16 do B[i]:=random(100);
write('*начальный массив');
for i:=1 to 16 do write(' ',B[i]);
min:=B[1];
for i:=1 to 16 do
   begin
     if B[i]<B[min] then min:=i;
   end;
max:=B[16];
for i:=1 to 16 do
   begin
     if B[i]>max then max:=B[i];
   end;
writeln;
writeln('max=',max,' min=',min);
x:=B[min];
B[min]:=B[8];
B[8]:=x;
write('                ');
for i:=1 to 16 do
  write(' ',B[i]);
readln;
end.
gylayko вне форума
Старый 15.11.2011, 20:05   #6
IT-man
АльTRUEи$т
Форумчанин
 
Аватар для IT-man
 
Регистрация: 19.03.2009
Сообщений: 784
По умолчанию

Да только
Код:
writeln('max=',max,' min=',B[min]);
и не
Код:
min:=B[1];
а
Код:
min:=1;
Цитата:
«Никто не войдет в Рай, имея хотя бы крупицу гордыни в своем сердце». «Аллах Красив и любит красоту. Гордыня означает отказ от истины и высокомерие»
IT-man вне форума
Старый 15.11.2011, 20:14   #7
gylayko
Форумчанин
 
Регистрация: 14.09.2011
Сообщений: 203
По умолчанию

Бред, вот код, который по идее должен подходить
Код:
uses crt;
var B:array[1..16] of integer; mini,maxy,x,y,j,i,max,min:integer;
begin
clrscr;
randomize;
for i:=1 to 16 do B[i]:=random(100);
write('*начальный массив');
for i:=1 to 16 do write(' ',B[i]);
min:=1;
for i:=1 to 16 do
   begin
     if B[i]<B[min] then min:=i;
   end;
 x:=B[min];
 B[min]:=B[8];
 B[8]:=x;
max:=16;
for i:=1 to 16 do
   begin
     if B[i]>B[max] then max:=i;
   end;
 y:=B[max];
 B[max]:=B[9];
 B[9]:=y;
writeln;
writeln('max=',B[max],' min=',B[min]);
write('                ');
for i:=1 to 16 do
  write(' ',B[i]);
readln;
end.
и что же? смотри, что получается
gylayko вне форума
Старый 15.11.2011, 20:17   #8
IT-man
АльTRUEи$т
Форумчанин
 
Аватар для IT-man
 
Регистрация: 19.03.2009
Сообщений: 784
По умолчанию

Код:
uses crt;
var B:array[1..16] of integer; mini,maxy,x,y,j,i,max,min:integer;
begin
clrscr;
randomize;
for i:=1 to 16 do B[i]:=random(100);
write('*начальный массив');
for i:=1 to 16 do write(' ',B[i]);
min:=1;
for i:=1 to 16 do
   begin
     if B[i]<B[min] then min:=i;
   end;
   

max:=16;
for i:=1 to 16 do
   begin
     if B[i]>B[max] then max:=i;
   end;
   writeln;
writeln('max=',B[max],' min=',B[min]);
 x:=B[min];
 B[min]:=B[8];
 B[8]:=x;
 y:=B[max];
 B[max]:=B[9];
 B[9]:=y;
writeln;
write('                ');
for i:=1 to 16 do
  write(' ',B[i]);
readln;
end.
Достал ты меня) зачем ты сначала меняешь элементы местами а потом выводишь максимум и минимум?

результат :
Цитата:
*начальный массив 81 8 3 43 22 55 77 37 68 38 96 13 17 1 67 66
max=96 min=1
81 8 3 43 22 55 77 1 96 38 68 13 17 37 67 66
Цитата:
«Никто не войдет в Рай, имея хотя бы крупицу гордыни в своем сердце». «Аллах Красив и любит красоту. Гордыня означает отказ от истины и высокомерие»
IT-man вне форума
Старый 15.11.2011, 20:20   #9
gylayko
Форумчанин
 
Регистрация: 14.09.2011
Сообщений: 203
По умолчанию

ну не вывожу я теперь максимум и минимум, и что? что-то меняется? убрал я это из кода, оно все равно не то меняет!
gylayko вне форума
Старый 15.11.2011, 20:24   #10
IT-man
АльTRUEи$т
Форумчанин
 
Аватар для IT-man
 
Регистрация: 19.03.2009
Сообщений: 784
По умолчанию

вот результат работы программы из поста N8
max был 11-м а Min --14
Цитата:
*начальный массив 81 8 3 43 22 55 77 37 68 38 96 13 17 1 67 66
max=96 min=1
81 8 3 43 22 55 77 1 96 38 68 13 17 37 67 66
А теперь Max стал 9-м а Min - 8-м как ты и просил
Цитата:
оно все равно не то меняет
Есть одно средство -- "Выпрямитель рук называется"
Цитата:
«Никто не войдет в Рай, имея хотя бы крупицу гордыни в своем сердце». «Аллах Красив и любит красоту. Гордыня означает отказ от истины и высокомерие»
IT-man вне форума
Закрытая тема


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
В заданной последовательности поменять местами максимальный и минимальный члены amegi Паскаль, Turbo Pascal, PascalABC.NET 2 22.01.2011 21:11
Паскаль! поменять местами максимальный и минимальный элемент матрицы. wrmarw Помощь студентам 4 08.05.2010 13:06
Максимальный элемент массива поменять местами с четвертым. Katie Помощь студентам 2 13.01.2010 05:59
задача поменять в массиве max элемент с первым, но меняет как то не так.. почему? Валюшка Помощь студентам 2 21.01.2009 01:46
Как поменять местами в массиве max и min элемент. Stager Общие вопросы C/C++ 2 13.01.2009 02:03