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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 20.12.2011, 22:41   #1
Женька Good
Форумчанин
 
Регистрация: 15.03.2011
Сообщений: 126
По умолчанию Как заменить элемент элемент одномерного массива? Паскаль

Подскажите алгоритм, как заменить в одномерном массиве из 9 чисел 6 элемент на 5, т.е. 6 элемент должен принять значение 5
Женька Good вне форума Ответить с цитированием
Старый 20.12.2011, 23:01   #2
VIK_aka_TOR
Участник клуба
 
Аватар для VIK_aka_TOR
 
Регистрация: 30.01.2011
Сообщений: 1,578
По умолчанию

Код:
a[6]:=a[5]; // элемент массива a[6] принимает значение a[5]
шестый элемент принимает значение пятого, а пятый шестого...
Код:
buf:= a[5]';
a[5]:=a[6];
a[6]:=buf;
buf - буфер, переменная для временного хранения..
пишу код не только за печеньки
VIK_aka_TOR вне форума Ответить с цитированием
Старый 20.12.2011, 23:20   #3
Женька Good
Форумчанин
 
Регистрация: 15.03.2011
Сообщений: 126
По умолчанию

Цитата:
Сообщение от VIK_aka_TOR Посмотреть сообщение
Код:
a[6]:=a[5]; // элемент массива a[6] принимает значение a[5]
шестый элемент принимает значение пятого, а пятый шестого...
Код:
buf:= a[5]';
a[5]:=a[6];
a[6]:=buf;
buf - буфер, переменная для временного хранения..


Вот у мя есть программа, там есть посчитанные элементы( выделенные красным), нужно этими элементами заменить 4, 5, 6 элементы массива соответственно.Помогите, если не сложно.

И ещё вопросик, в вот этом элементе программы
Код:
    For j:=1 to n do
     If v[j]<min then
     min:=j;
     Writeln(min:5:0);
не находит минимальный элемент, а идет до конца массива, почему?

Код:
Program Shalene_Divchisko;
Uses CRT;
type mymasyv=array[1..9] of real;
     Const y:mymasyv=(-1.2,-0.1,8.3,-9.5,6.3,-2.7,9.9,-3.6,-2.8);
     Const n=9;
Var v:mymasyv;
    jnd,ind,j:integer;
    min,max:real;
    
Procedure transform(Var v:mymasyv);
Var j:integer;
Begin
   For j:=1 to n do
     begin
     v[j]:=3*y[j];
     Write(v[j]:7:1);
     end;
end;

Procedure detect(Var v:mymasyv);
Var buf,max,min:real;
    j,amin:integer;
Begin
max:=1;
min:=1;
amin:=1;
    For j:=1 to n do
     If v[j]>max then
     max:=j;
     writeln(max:5:0);


    For j:=1 to n do
     If v[j]<min then
     min:=j;
     Writeln(min:5:0);


    For j:=1 to n do
     If abs(v[j])<abs(v[amin]) then
     amin:=j;
     Writeln(amin:5);
     
        end;


Begin
 CLRSCR;
 transform(v);
 Writeln;
 detect(v);
 Readkey
end.
Женька Good вне форума Ответить с цитированием
Старый 20.12.2011, 23:31   #4
VIK_aka_TOR
Участник клуба
 
Аватар для VIK_aka_TOR
 
Регистрация: 30.01.2011
Сообщений: 1,578
По умолчанию

Код:
  For j:=1 to n do
     If v[j]<min then
     min:=v[j];
     Writeln(min:5:0);
присваивать min сам элемент массива, а не его индекс... + изначально присваивать min первый элемент массива (или любой другой). и что вы ищите? может и не верно тогда толкую...
а замена насколько я вас понял:

Код:
v[4]:=max;
v[5]:=min;
v[6]:=amin;
пишу код не только за печеньки

Последний раз редактировалось VIK_aka_TOR; 20.12.2011 в 23:34.
VIK_aka_TOR вне форума Ответить с цитированием
Старый 20.12.2011, 23:37   #5
Женька Good
Форумчанин
 
Регистрация: 15.03.2011
Сообщений: 126
По умолчанию

Цитата:
Сообщение от VIK_aka_TOR Посмотреть сообщение
Код:
  For j:=1 to n do
     If v[j]<min then
     min:=v[j];
     Writeln(min:5:0);
присваивать min сам элемент массива, а не его индекс... + изначально присваивать min первый элемент массива (или любой другой). и что вы ищите? может и не верно тогда толкую...
а замена насколько я вас понял:

Код:
v[4]:=max;
v[5]:=min;
v[6]:=amin;

Только вот парадокс

Код:
 max:=v[1];
    For j:=1 to n do
     If v[j]>max then
     max:=j;
     writeln(max:5:0);

     min:=v[1];
    For j:=1 to n do
     If v[j]<min then
     min:=j;
     Writeln(min:5:0);
максимальный находит, а минимальный нет
Женька Good вне форума Ответить с цитированием
Старый 21.12.2011, 00:07   #6
VIK_aka_TOR
Участник клуба
 
Аватар для VIK_aka_TOR
 
Регистрация: 30.01.2011
Сообщений: 1,578
По умолчанию

а если так?
Код:
Program Shalene_Divchisko;
Uses CRT;
type mymasyv=array[1..9] of real;
     Const y:mymasyv=(-1.2,-0.1,8.3,-9.5,6.3,-2.7,9.9,-3.6,-2.8);
     Const n=9;
Var v:mymasyv;
    jnd,ind,min,max:integer;

Procedure transform(Var v:mymasyv);
Var j:integer;
Begin
   For j:=1 to n do
     begin
     v[j]:=3*y[j];
     Write(v[j]:7:1);
     end;
end;

Procedure detect(Var v:mymasyv);
Var buf:real;
    j,amin:integer;
Begin
max:=1;
min:=1;
amin:=1;
    For j:=1 to n do
     If (v[j] > v[max]) then
     max:=j;
     writeln(max:5);


    For j:=1 to n do
     If v[j]< v[min] then
     min:=j;
     Writeln(min:5);


    For j:=1 to n do
     If abs(v[j])<abs(v[amin]) then
     amin:=j;
     Writeln(amin:5);
        end;


Begin
 CLRSCR;
 transform(v);
 Writeln;
 detect(v);
 Readkey
end.
то что нужно? ... помог - жмякни весы)
пишу код не только за печеньки
VIK_aka_TOR вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Одномерный массив. Необходимо заменить последний положительный элемент на второй элемент массива кумитэ Паскаль, Turbo Pascal, PascalABC.NET 1 19.12.2011 16:44
Найти наименьший элемент одномерного массива. Tory1106 Помощь студентам 3 28.06.2011 18:28
найти наибольший элемент из элементов одномерного массива,которые имеют парный номер soblaznitel Помощь студентам 0 26.05.2010 22:02
паскаль - Заменить каждый третий элемент массива на значение суммы всех его элементов. tanyalove Помощь студентам 4 26.05.2010 09:55
найти максимальный элемент одномерного массива Серый777 Паскаль, Turbo Pascal, PascalABC.NET 4 05.05.2010 20:54