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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 25.03.2009, 23:51   #1
serj-07
Пользователь
 
Аватар для serj-07
 
Регистрация: 07.03.2009
Сообщений: 68
По умолчанию одномерный массив. упорядочить

ЗДРАВСТВУЙТЕ.
Составить функцию, возвращающую значение TRUE, если все элементы одномерного массива длиной N элементов упорядочены по убыванию их значений, и FALSE в противном случае. Используя эту функцию, вывести заданный массив, если его элементы не упорядочены в порядке убывания их значений. В противном случае вывести сообщение "Упорядочен".
Заранее спасибо.
Мы все учились понемногу
Чему-нибудь и как-нибудь!!!
serj-07 вне форума Ответить с цитированием
Старый 25.03.2009, 23:57   #2
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Что не получается? Где ваши наработки?

Вкратце: идете в цикле по элементам от второго до последнего. Если текущий элемент больше или равен предыдущему, то возвращаем false и выходим из функции.
Если успешно дошли до конца, то возвращаем true.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 26.03.2009, 00:06   #3
spamer
Software Developer
Старожил
 
Аватар для spamer
 
Регистрация: 19.12.2008
Сообщений: 2,070
По умолчанию

Народ ну вы что? В гугле таких исходников много лежит, неужели так тяжело найти?
Будь проще и люди к тебе потянутся
spamer вне форума Ответить с цитированием
Старый 26.03.2009, 00:09   #4
DENCREAT
Пользователь
 
Регистрация: 20.03.2009
Сообщений: 32
По умолчанию

самое простое в паскале, да и вообще, это упорядочить одномерный массив
DENCREAT вне форума Ответить с цитированием
Старый 26.03.2009, 00:09   #5
serj-07
Пользователь
 
Аватар для serj-07
 
Регистрация: 07.03.2009
Сообщений: 68
По умолчанию

я сделал так но поня что сделал совсем неправельно.
Код:
type TA=array of real;

var Form1: TForm1; a:TA; n:longint;

implementation

{$R *.dfm}

function Elements(m:TA):boolean;
var i,n:longint;
begin
  n:=Length(m);
  result:=true;
  for i:=0 to n-1 do
   if m[i]<m[i+1] then
    result:=false
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
 n:=StrToInt(Trim(Edit1.Text));
 SetLength(a,n);
 StringGrid1.ColCount:=n;
 Button2.Enabled:=true
end;

procedure TForm1.Button2Click(Sender: TObject);
var i:longint; x:boolean;
begin
 for i:=0 to n-1 do
  a[i]:=StrToFloat(StringGrid1.cells[i,0]);
  x:=Elements(a);
  if x=false then
 ShowMessage(FloatToStr(a[0])+','+FloatToStr(a[n-1]))
 else
 ShowMessage('Упорядочен')
end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
 Finalize(a)
end;

end.
Мы все учились понемногу
Чему-нибудь и как-нибудь!!!
serj-07 вне форума Ответить с цитированием
Старый 26.03.2009, 00:19   #6
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Функция написана неверно.
Код:
function Elements(m:TA):boolean;
var i,n:longint;
begin
  n:=Length(m);
  result:=true;
  for i:=1 to n-1 do
   if m[i]>=m[i-1] then
    result:=false
end;
Остальное не проверял.

upd Проверил остальное - вроде, все верно.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]

Последний раз редактировалось Sazary; 26.03.2009 в 00:36.
Sazary вне форума Ответить с цитированием
Старый 26.03.2009, 00:22   #7
DENCREAT
Пользователь
 
Регистрация: 20.03.2009
Сообщений: 32
По умолчанию

Цитата:
Сообщение от serj-07 Посмотреть сообщение
Код:
function Elements(m:TA):boolean;
var i,n:longint;
begin
  n:=Length(m);
  result:=true;
  for i:=0 to n-1 do
   if m[i]<m[i+1] then
    result:=false
end;
у тебя же условие на убывание должно быть..
DENCREAT вне форума Ответить с цитированием
Старый 26.03.2009, 00:48   #8
serj-07
Пользователь
 
Аватар для serj-07
 
Регистрация: 07.03.2009
Сообщений: 68
По умолчанию

я немогу понять условие.
сначало надо отдельной функ. проверить массив. если он не упоряд. то этой-же функ. ее упоряд. или отдельно ее упорядочить, а функция только ее проверяет?
Всем спасибо.
Мы все учились понемногу
Чему-нибудь и как-нибудь!!!
serj-07 вне форума Ответить с цитированием
Старый 26.03.2009, 00:55   #9
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Цитата:
я немогу понять условие.
Кидаете массив в функцию. Если он упорядочен, то говорим "Упорядочен!", если нет, то просто его выводим.

То есть тогда обработчик второй кнопки будет выглядеть так:
Код:
procedure TForm1.Button2Click(Sender: TObject);
var i:longint; x:boolean;
s : string;
begin
 for i:=0 to n-1 do
  a[i]:=StrToFloat(StringGrid1.cells[i,0]);
  x:=Elements(a);
  if x=false then
   begin
   s := '';
   for i:=0 to n-1 do
    s := s + FloatToStr(a[i]) + ' ';
    ShowMessage(s);
   end
  else
  ShowMessage('Упорядочен')
end;
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 26.03.2009, 00:57   #10
DENCREAT
Пользователь
 
Регистрация: 20.03.2009
Сообщений: 32
По умолчанию

ты когда упорядочиваешь, ведь и так идёт проверка, если упорядочено то идёт проверка дальше. иначе упорядочивает(но при этом просто выведи, мол, не упорядочен и в итоге после выполнения программы получишь нужный массив)..
DENCREAT вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
одномерный массив Sjava Помощь студентам 7 02.11.2009 10:01
Требуется занести данные с клавиатуры в массив записей, упорядочить его по фамилиям в алфавитном порядке Ukkas Паскаль, Turbo Pascal, PascalABC.NET 3 17.01.2009 19:22
одномерный массив Кирилл17 Помощь студентам 5 22.12.2008 00:13
Упорядочить массив в порядке возрастания и напечатать входной и исходный массив. TheVenny Помощь студентам 3 26.11.2008 15:06
Одномерный массив SkyDreamer Помощь студентам 1 01.12.2007 21:22