Pascal и одномерные массивы
Пользователи, просматривающие топик: none
|
Зашли как: Guest
|
Имя |
Сообщение |
<< Старые топики Новые топики >> |
|
|
Pascal и одномерные массивы - 2007-05-01 13:02:54.413333
|
|
|
jabahutt
Сообщений: 3
Оценки: 0
Присоединился: 2006-11-21 19:07:48.980000
|
Совсем уже забыл паскаль, но надо решить задачку, помогите плиз. Задача: поменять местами наибольший и наименьший элемент массива.
|
|
|
RE: Pascal и одномерные массивы - 2007-05-01 16:41:08.676666
|
|
|
blacksun
Сообщений: 2360
Оценки: 0
Присоединился: 2006-09-27 03:05:59.350000
|
А оч просто, проходишь по массиву в цикле, вычисляешь наименьшее значение и его позицию, наибольшее значие и его позицию, после чего присваеваешь наименьшему значению наибольше, а наибольшему наименьшее .. ниче сложного .. если сам не можешь - время будет - сделаю
|
|
|
RE: Pascal и одномерные массивы - 2007-05-01 17:11:30.060000
|
|
|
j0ker_
Сообщений: 609
Оценки: 0
Присоединился: 2005-03-07 15:09:25
|
Основная часть:
min:= arr[1];
max:= arr[1];
for i:=1 to length(arr) do
begin
if arr[i] > max then max_index:= i;
if arr[i] < min then min_index:= i;
end;
tmp:= arr[min_index];
arr[min_index]:= arr[max_index];
arr[max_index]:= tmp;
Вот как то так, если я не ошибся с функцией определения длины массива.
|
|
|
RE: Pascal и одномерные массивы - 2007-05-01 17:27:29.416666
|
|
|
xlinux
Сообщений: 20
Оценки: 0
Присоединился: 2007-05-01 13:48:21.030000
|
так у тебя в задаче обыкновенная сортировка…. такое могу сделать….
|
|
|
RE: Pascal и одномерные массивы - 2007-05-01 17:31:39.933333
|
|
|
xlinux
Сообщений: 20
Оценки: 0
Присоединился: 2007-05-01 13:48:21.030000
|
так у тебя в задаче обыкновенная сортировка…. такое могу сделать….
|
|
|
RE: Pascal и одномерные массивы - 2007-05-01 17:38:36.126666
|
|
|
xlinux
Сообщений: 20
Оценки: 0
Присоединился: 2007-05-01 13:48:21.030000
|
program sort1; uses graph,crt; const lim=10000; type tar=array[1..lim]of integer; function DihSearch(var m:tar;x:integer; var l:byte; r:integer; c:byte;q:boolean):boolean; begin q:=false; l:=1; r:=lim; repeat c:=(l+r)div 2; if x=m[c] then q:=true else if x<m[c] then r:=c-1 else l:=c+1 until q or (l>r); DihSearch:=q; end; procedure sort (var m:tar; n:byte); var i,j:byte; t:integer; sorted:boolean; begin i:=n; sorted:=false; while (i>0) and not sorted do begin sorted:=true; for j:=1 to i-1 do if m[j]>m[j+1] then begin sorted:=false; t:=m[j]; m[j]:=m[j+1]; m[j+1]:=t; end; dec(i) end end; var mas:tar; m,i:byte;o,u:longint; begin clrscr; begin randomize; write('Perviy vid sortirovki',' m=');readln(m); for i:=1 to m do mas:=2*random(1001)-1000; sort (mas,m); for i:=1 to m do write(mas,' '); writeln end; begin randomize; write('Vtoroy vid sortirovki',' m=');readln(m); for i:=1 to m do mas:=2*random(1001)-1000; sort (mas,m); for i:=1 to m do write(mas,' '); writeln; end; begin write('Tretiy vid sortirovki',' m='); readln(m); for i:=1 to m do begin write('m[',i,']='); readln(mas) end; sort(mas,m); for i:=1 to m do write(mas,' '); readln; end; end. поменяй значение CONST на то, которое тебя надо
|
|
|
RE: Pascal и одномерные массивы - 2007-05-01 17:40:46.423333
|
|
|
xlinux
Сообщений: 20
Оценки: 0
Присоединился: 2007-05-01 13:48:21.030000
|
я тут еще дехотомический поиск прибахал так что удачи…
|
|
|
|
|