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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 20.12.2011, 20:41   #1
1Sol
студент, нуп)
Пользователь
 
Регистрация: 02.12.2011
Сообщений: 14
По умолчанию [Paskal]Одномерные массивы

Суть темы: как сделать так, чтобы после A[imax]:=max последующие элементы массива встали в обратном порядке?
N=6
задано стало
A[1]=3 A[1]=3
A[2]=6 A[2]=6
A[3]=1 A[3]=5
A[4]=2 A[4]=4
A[5]=4 A[5]=2
A[6]=5 A[6]=1
1Sol вне форума Ответить с цитированием
Старый 20.12.2011, 21:40   #2
VKorablev
Форумчанин
 
Аватар для VKorablev
 
Регистрация: 14.04.2011
Сообщений: 126
По умолчанию

Цитата:
Сообщение от 1Sol Посмотреть сообщение
Суть темы: как сделать так, чтобы после A[imax]:=max последующие элементы массива встали в обратном порядке?
Алгоритм "пузырька" вам в помощь.
Нам больше не нужно смотреть на мир сквозь замочную скважину 64Кб сегмента (с) ВалИк
VKorablev вне форума Ответить с цитированием
Старый 20.12.2011, 21:42   #3
Mad_Cat
Made In USSR!
Старожил
 
Аватар для Mad_Cat
 
Регистрация: 01.09.2010
Сообщений: 3,657
По умолчанию

Цитата:
Алгоритм "пузырька" вам в помощь.
зачем? тут же разворот а не сортировка
"...В жизни я встречал друзей и врагов.В жизни много всего перевидал.Солнце тело мое жгло, ветер волосы трепал,но я смысла жизни так и не узнал..."
(c) Юрий Клинских aka "Хой"
Mad_Cat вне форума Ответить с цитированием
Старый 20.12.2011, 21:48   #4
ByAlex
Форумчанин
 
Аватар для ByAlex
 
Регистрация: 15.03.2011
Сообщений: 465
По умолчанию

Вот -
Код:
program Project1;

{$APPTYPE CONSOLE}

uses
  SysUtils;
var
  a:array[1..10] of integer;
  i,j,max,pos,t:integer;
begin
  writeln('Vvedite massive A[10]:');
  for i := 1 to 10 do
  begin
    write('A[',i,'] = ');
    readln(a[i]);
  end;
  pos:=0;
  max:=a[1];
  for i := 1 to 10 do
    if a[i]>max then
    begin
      max:=a[i];
      pos:=i;
    end;
  writeln;
  for i := pos+1 to 10 do
  begin
    for j := pos+1 to 9 do
      if a[j]<a[j+1] then
      begin
        t:=a[j];
        a[j]:=a[j+1];
        a[j+1]:=t;
      end;
  end;
  write('Result = ');
  for i := 1 to 10 do
    write(a[i],' ');
  readln;
end.
Помог - жми на весы!
ByAlex89@mail.ru
ByAlex вне форума Ответить с цитированием
Старый 20.12.2011, 21:49   #5
ByAlex
Форумчанин
 
Аватар для ByAlex
 
Регистрация: 15.03.2011
Сообщений: 465
По умолчанию

Цитата:
Сообщение от Mad_Cat Посмотреть сообщение
зачем? тут же разворот а не сортировка
После наибольшего элемента в матрице расположить элементы за ним по убыванию, ему так надо!
Помог - жми на весы!
ByAlex89@mail.ru
ByAlex вне форума Ответить с цитированием
Старый 20.12.2011, 21:50   #6
Mad_Cat
Made In USSR!
Старожил
 
Аватар для Mad_Cat
 
Регистрация: 01.09.2010
Сообщений: 3,657
По умолчанию

Цитата:
последующие элементы массива встали в обратном порядке
а не по убыванию
то есть было 7 8 5 4 1 2 стало 7 8 2 1 4 5
"...В жизни я встречал друзей и врагов.В жизни много всего перевидал.Солнце тело мое жгло, ветер волосы трепал,но я смысла жизни так и не узнал..."
(c) Юрий Клинских aka "Хой"
Mad_Cat вне форума Ответить с цитированием
Старый 20.12.2011, 22:02   #7
ByAlex
Форумчанин
 
Аватар для ByAlex
 
Регистрация: 15.03.2011
Сообщений: 465
По умолчанию

Цитата:
Сообщение от Mad_Cat Посмотреть сообщение
а не по убыванию
то есть было 7 8 5 4 1 2 стало 7 8 2 1 4 5
Аааа, понял! Не внимательно прочитал. Ошибочка.
Помог - жми на весы!
ByAlex89@mail.ru
ByAlex вне форума Ответить с цитированием
Старый 20.12.2011, 22:14   #8
1Sol
студент, нуп)
Пользователь
 
Регистрация: 02.12.2011
Сообщений: 14
По умолчанию

Как сделать в обратном порядке, я понял.
for i:=1 to trunc(N/2) do
begin
buf := A[i];
A[i] := A[N-i+1];
A[N-i+1] := buf;
end;
А вот как заставить работать после определённого элемента - не знаю.
1Sol вне форума Ответить с цитированием
Старый 20.12.2011, 22:17   #9
Mad_Cat
Made In USSR!
Старожил
 
Аватар для Mad_Cat
 
Регистрация: 01.09.2010
Сообщений: 3,657
По умолчанию

Код:
for i:=imax to imax+(N-imax) div 2 do 
begin 
buf := A[i]; 
A[i] := A[N-i+1]; 
A[N-i+1] := buf; 
end;
"...В жизни я встречал друзей и врагов.В жизни много всего перевидал.Солнце тело мое жгло, ветер волосы трепал,но я смысла жизни так и не узнал..."
(c) Юрий Клинских aka "Хой"
Mad_Cat вне форума Ответить с цитированием
Старый 20.12.2011, 22:33   #10
1Sol
студент, нуп)
Пользователь
 
Регистрация: 02.12.2011
Сообщений: 14
По умолчанию

Цитата:
Сообщение от Mad_Cat Посмотреть сообщение
Код:
for i:=imax to imax+(N-imax) div 2 do 
begin 
buf := A[i]; 
A[i] := A[N-i+1]; 
A[N-i+1] := buf; 
end;
все элементы в обратном порядке, либо вообще не работает.
1Sol вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Paskal массивы Серней Помощь студентам 3 06.12.2010 21:32
Paskal про массивы TuuuZ Помощь студентам 3 12.01.2010 13:55
Paskal двумерные массивы TuuuZ Помощь студентам 4 10.01.2010 14:38
Paskal массивы TuuuZ Помощь студентам 2 07.01.2010 17:36
Даны одномерные массивы А и В. Сформировать массивы, состоящие из элемент LyaLya Помощь студентам 15 20.12.2009 14:12