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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 16.11.2008, 16:34   #1
xxBOBAHxx
 
Регистрация: 19.10.2008
Сообщений: 7
По умолчанию Pascal-процедуры и функции

1.Создать два одномерных массива А и В различной длины. Рассортировать числа до максимального значения по возрастанию. Результат вывести. Затем рассортировать числа, расположенные после максимального значения по возрастанию и снова вывести. И, наконец, рассортировать весь массив по возрастанию и снова вывести.

с применением процедур и функций.
Результаты выводить в отдельных окнах и различным цветом.
xxBOBAHxx вне форума Ответить с цитированием
Старый 16.11.2008, 17:27   #2
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 15,551
По умолчанию

И что, к чему это условие задачи, совсем не понятно...
Arigato вне форума Ответить с цитированием
Старый 17.11.2008, 20:03   #3
xxBOBAHxx
 
Регистрация: 19.10.2008
Сообщений: 7
По умолчанию

ПРИМЕР:
Даны два массива
1) 34 12 54 24 3 6

2) 34 56 67 3 4 0

Т.е необходимо:
а)отсортировать массив 1) по возрастанию до МАКСИМАЛЬНОГО ЗНАЧЕНИЯ = 54
таким образом чтобы получился массив 12 34 54 24 3 6
б)После этот же массив 1) необходимо отсортировать по возрастанию но уже ПОСЛЕ максимального элемента массива т.е. получится 34 12 54 3 6 24


Аналогичные опреации проделать с массивом 2)

Вот моя зарисовка.........

program PRIM_2;
const na=5; nb=10;
type mas=array[1..nb] of real;
var a, b:mas;
i:integer;
Procedure SOZD(var d:mas; k:integer);{создание массива}
begin
for i:=1 to k do
d[i]:=random*500;
end;
Procedure VIVOD(d:mas; k:integer; t:string);{вывод массива}
begin
writeln(t);
for i:=1 to k do
write(d[i]:0:0, ' ');
writeln;
end;
function max(d:mas; k:integer):real;{выявление максимального элемента массива}
var i:integer; m:real; c:real;
begin
m:=-maxint;
for i:=1 to k do
if d[i]>m then m:=d[i];
max:=m;
end;
procedure SORT(var d:mas; k:integer);{попытка отсортировать массив до
максимального элемента}
var c:real;
begin
i:=1;
repeat
if d[i]>d[i+1] then
begin
c:=d[i]; d[i]:=d[i+1]; d[i+1]:=c;
if i>1 then dec(i)
end
else inc(i);
until i>=k or d[i]=???;{так и не понял чему приравнять d[i] чтоб он прекпащал сортировку, т.е выходил из цикла когда d[i] равнялся бы максимальному значению в массиве}
end;
BEGIN
randomize;
SOZD(a, na); VIVOD(a, na, 'massiv A');
writeln('max_mas A=', max(a, na):0:0);
SORT(a, na); VIVOD(a, na, 'massiv A posle');
SOZD(b, nb); VIVOD(b, nb, 'massiv B');
writeln('max_mas B=', max(b, nb):0:0);
readln
END.


Больше всего меня интересует как отсортировать массив по возрастанию до максимального значения и после максимального значения....

P.S.за ранее благодарен за содействие))
xxBOBAHxx вне форума Ответить с цитированием
Старый 18.11.2008, 14:30   #4
alex_fcsm
Участник клуба
 
Аватар для alex_fcsm
 
Регистрация: 10.11.2008
Сообщений: 1,502
По умолчанию

1. найти индекс максимального элемента
2. Если самая простая пузырьковая, то
Код:
procedure Srt(var a:array of integer);
var i,j,max,temp:integer;

begin
 max:=a[0];
 temp:=0;
 for i:=1 to n-1 do
  if a[i]>max then begin
                    max:=a[i];
                    temp:=i;
                   end;
 max:=temp;

  for i:=1 to max do
    for j:=max downto i do
      if a[j-1]>a[j] then
        begin
          Temp:=a[j-1];
          a[j-1]:=a[j];
          a[j]:=temp;
        end;

    for i:=max+2 to n-1 do
    for j:=n-1 downto max+2 do
      if a[j-1]>a[j] then
        begin
          Temp:=a[j-1];
          a[j-1]:=a[j];
          a[j]:=temp;
        end;
writeln('------------');
 for i:=0 to n-1 do
  write(a[i],' ');
 end;
Нормальное состояние техники - нерабочее, все остальное частный случай.
alex_fcsm вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Процедуры и функции V25 Паскаль, Turbo Pascal, PascalABC.NET 1 17.11.2008 20:02
Функции и процедуры _Антон_ Помощь студентам 4 15.11.2008 19:58
Turbo Pascal. Задача на функции/процедуры Manchester Помощь студентам 8 14.11.2008 22:00
Процедуры и функции KulOle Паскаль, Turbo Pascal, PascalABC.NET 1 26.10.2008 14:18
Процедуры и функции 11111 Помощь студентам 10 26.11.2007 15:06