Помощь - Поиск - Пользователи - Календарь
Полная версия: Поменять местами
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
Lady_Dark
Покопалась, никак не могу найти, все не то...
А у самой что-то не получается... unsure.gif wacko.gif
Помогите чем можете!..
volvo
Найти min/max можешь? А их индексы?
Lady_Dark
Мин и макс может и найду, smile.gif , а вот с индексами... че то я не знаю...

"Дан одномерный массив А, состоящий из 2n элементов. Поменять местами первую и вторую его половины" - вот это могу. А вот с размером 10... не догоню как
Lady_Dark
Можете подробно в коде самое важное написать?.. unsure.gif
мисс_граффити
покажи, как ты умеешь искать мин и макс smile.gif
там надо будет добавить по одной строчке - это будет запоминание их индексов.
а потом поменять 2 числа - думаю, это ты умеешь.
Lady_Dark
Вот:


const maxSize=50;
type vector=array [1..maxSize] of double;
type vector=array [1..minSize] of double;

var a: vector;
i,n,nMax,nMin,j,m: byte;
temp=double;
begin
write ('n=');
read (n);
{ввод массива}
for i:=1 to n do
begin
write ('a[',i,']=');
read (a[i]);
end;

begin
nMax:=1;
for i:=1 to n do
if a[i]>a[nMax]
then nMax:=i;
{если встретится больший элемент, то запомним его номер}
write ('номер=',nMax,'max значение=',a[nMax]:8:2);
end.


Malice
Делаешь тоже самое для nMin и меняешь так:
temp:=a[nMax]; a[nMax]:=a[nMin]; a[nMin]:=temp;
, где temp - переменная типа double.
volvo
Lady_Dark, прекрасно smile.gif ... Теперь проделываешь то же самое для нахождения номера минимального элемента, скажем, он у тебя будет называться nMin, и после того, как найдешь - меняешь местами элементы a[nMin] и a[nMax] через третью, буферную переменную...
Lady_Dark
Тупо, не так, да? dry.gif


const maxSize=50;
type vector=array [1..maxSize] of double;
type vector=array [1..minSize] of double;

var a: vector;
i,n,nMax,nMin,j,m: byte;
temp=double;
begin
write ('n=');
read (n);
{ввод массива}
for i:=1 to n do
begin
write ('a[',i,']=');
read (a[i]);
end;

begin
nMax:=1;
for i:=1 to n do
if a[i]>a[nMax]
then nMax:=i;
{если встретится больший элемент, то запомним его номер}
write ('номер=',nMax,'max значение=',a[nMax]:8:2);
end;

begin
write ('m=');
read (m);
{ввод массива}
for j:=1 to m do
begin
write ('a[',i,']=');
read (a[i]);
end;

begin
nMin:=1;
for j:=1 to m do
if a[i]>a[nMin]
then nMin:=j;
{если встретится больший элемент, то запомним его номер}
write ('номер=',nMin,'min значение=',a[nMin]:8:2);
end;

begin
temp:=a[nMax]; a[nMax]:=a[nMin]; a[nMin]:=temp;
end.


volvo
Цитата
if a[i]>a[nMin]
Знак на "меньше" забыла поменять...

Да и вводить массив во второй раз не нужно...
Lady_Dark
прога

бегин экспектед... =) =(

ААА! ИСПРАВЬТЕ МНЕ ЕЕ! =)))
Lapp
Цитата(Lady_Dark @ 14.11.2006 15:35) *

бегин экспектед... =) =(

ААА! ИСПРАВЬТЕ МНЕ ЕЕ! =)))

Ты написала coust вместо const во второй строчке..
Еще нужно убрать массу лишнего, типа повторный ввод массива, а также лишние begin'ы и end'ы.

И, пожалуйста, не нужно кричать (читай Правила, п.6)
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.