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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 19.12.2010, 17:02   #1
dima-intro
Пользователь
 
Аватар для dima-intro
 
Регистрация: 11.12.2010
Сообщений: 43
Сообщение Поставить мин. элемент вначало массива, а макс.-в конец

Вот моя процедура.
Подскажите пожалуйста что не так, а то что-то сортирует не правильно (массив типа real)
Код:
procedure MinMax(var a:TArray100; cnt:integer);
 var i,j,p,p1,k:integer; buf,buf1,min,max:real;
 begin
 min:=1;
 max:=1;
 for i:=1 to cnt do
  if a[i]>max then
  begin
  max:=a[i];
  p:=i;
  end;
   for j:=1 to cnt do
    if a[i]<min then
    begin
    min:=a[i];
    p1:=j;
    end;
     for k:=1 to cnt do
    begin
     buf:=a[1];
     a[1]:=min;
     a[p1]:=buf;
     buf1:=a[cnt];
     a[cnt]:=max;
     a[p]:=buf1;
    end;
  end;

Последний раз редактировалось Stilet; 19.12.2010 в 17:39.
dima-intro вне форума Ответить с цитированием
Старый 19.12.2010, 17:08   #2
Novi4ok_11
Форумчанин
 
Регистрация: 11.12.2010
Сообщений: 110
По умолчанию

Код:
procedure MinMax(var a:TArray100; cnt:integer);
var i,j,p,p1,k:integer; buf,buf1,min,max:real;
begin
min:=1;
max:=1;
  for i:=1 to cnt do
    begin
       if a[i]>max then 
        begin
          max:=a[i];
          p:=i;
        end;
    end;
  for j:=1 to cnt do
    begin
      if a[j]<min then
         begin
           min:=a[j];
           p1:=j;
         end;
    end;

buf:=a[p1];
a[p1]:=a[1];
a[1]:=buf;


buf1:=a[p];
a[p]:=a[cnt];
a[cnt]:=buf1;


end;

Последний раз редактировалось Novi4ok_11; 19.12.2010 в 17:21.
Novi4ok_11 вне форума Ответить с цитированием
Старый 19.12.2010, 17:14   #3
dima-intro
Пользователь
 
Аватар для dima-intro
 
Регистрация: 11.12.2010
Сообщений: 43
По умолчанию

все равно не то что-то
максимальный в конец ставит, а минимальный никак(
dima-intro вне форума Ответить с цитированием
Старый 19.12.2010, 17:22   #4
Novi4ok_11
Форумчанин
 
Регистрация: 11.12.2010
Сообщений: 110
По умолчанию

Исправил свой код выше, там Вы в циклах индексы не правильно поставили
Novi4ok_11 вне форума Ответить с цитированием
Старый 19.12.2010, 17:42   #5
dima-intro
Пользователь
 
Аватар для dima-intro
 
Регистрация: 11.12.2010
Сообщений: 43
По умолчанию

ничего, к сожалению(
dima-intro вне форума Ответить с цитированием
Старый 19.12.2010, 17:52   #6
Novi4ok_11
Форумчанин
 
Регистрация: 11.12.2010
Сообщений: 110
По умолчанию

Что именно? не чего не поменялось? минимальный в начало не ставит? если отак написать?

Код:
procedure MinMax(var a:TArray100; cnt:integer);
var i,j,p,p1,k:integer; buf,buf1,min,max:real;
begin
min:=1;
max:=1;
  for i:=1 to cnt do
    begin
       if a[i]>max then 
        begin
          max:=a[i];
          p:=i;
        end;
    end;
  for j:=1 to cnt do
    begin
      if a[j]<min then
         begin
           min:=a[j];
           p1:=j;
         end;
    end;

buf:=a[p1];
a[p1]:=a[1];
a[1]:=buf;


buf1:=a[p];
a[p]:=a[cnt];
a[cnt]:=buf1;


end;

Тогда просто отсортируйте Ваш массив по возрастанию - минимальный вначале максимальный вконце
Novi4ok_11 вне форума Ответить с цитированием
Старый 19.12.2010, 18:06   #7
andrewpalkin
Форумчанин
 
Аватар для andrewpalkin
 
Регистрация: 23.11.2010
Сообщений: 458
По умолчанию

Код:

procedure MinMax(var a:TArray100; cnt:integer);
var i :nteger; buf:real;
begin
  for i:=1 to cnt do
    begin
       if a[i]>a[cnt] then 
        begin
          buf:=a[cnt];
          a[cnt]:=a[i];
          a[i]:=buf;
        end;

       if a[i]<a[1] then 
        begin
          buf:=a[1];
          a[1]:=a[i];
          a[i]:=buf;
        end;
    end;
end;
--- Если я вам помог , то помогите и вы мне . Не просто просите решить задачу , а пробуйте ее сами решить ! Я не пишу программы с нуля , я помогаю поправить код ! ---
andrewpalkin вне форума Ответить с цитированием
Старый 19.12.2010, 18:23   #8
dima-intro
Пользователь
 
Аватар для dima-intro
 
Регистрация: 11.12.2010
Сообщений: 43
По умолчанию

вот за это спасибо большое. Помогли)
dima-intro вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Записать первый элемент массива в конец Pecho Помощь студентам 3 24.11.2010 23:14
нахождение мин и макс числа Данил1986 Паскаль, Turbo Pascal, PascalABC.NET 3 07.06.2010 05:46
мин,макс,нод,нок на делфи melville Помощь студентам 8 10.11.2009 00:20
Нахождение Мин И Макс элементов Массива не стандартным способом. gree Помощь студентам 5 17.06.2009 20:57
Ограничение формул МИН и МАКС Bu$ter Microsoft Office Excel 2 29.05.2008 09:21