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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 20.03.2016, 15:04   #1
zvygin1964
Старожил
 
Аватар для zvygin1964
 
Регистрация: 19.06.2013
Сообщений: 2,463
По умолчанию За числом 5 следующим большим будет 12

Создал числа:1, 2, 3, 5, 12, 56, 124, ..., они возрастают и integer.
Если они ссыпаны в кучу вот так: 1, 56,12, 5, 3, 124, 2, ..., то как мне узнать, что за числом 5 следующим большим будет 12.
А в другой раз я спрошу, какое число будет ещё больше (то есть 56).
Занести все числа в массив по очереди не хочу. (Мог бы их вызывать по очереди, по нарастанию номера в массиве)
Если буду дописывать числа в неизвестном пока для меня месте, то очередь в массиве будет ломаться.
В теме: Типичные задачи и примеры не нашел.
Может то, чего я хочу имеет название в Google для Delphi 7 ?
Репутация: полный "0"

Последний раз редактировалось zvygin1964; 20.03.2016 в 15:08.
zvygin1964 вне форума Ответить с цитированием
Старый 20.03.2016, 15:06   #2
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Что? Сортировка нужна что ли?
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 20.03.2016, 15:14   #3
zvygin1964
Старожил
 
Аватар для zvygin1964
 
Регистрация: 19.06.2013
Сообщений: 2,463
По умолчанию

Наверно нет. Надо от имеющегося числа узнать следущее большее из списка.
Код:
begin
 case max of
    100:  begin
           ..................
          end;

   200:  begin
            .............................
          end;

    300:  begin
            .................................
          end;

    301:  begin
            ......................
          end;

   1000:   begin
            Noop;
          end;

    23:   begin
            Noop;
          end;


  else Button3.Caption := '*не совпало';
  end;
 end;
Репутация: полный "0"
zvygin1964 вне форума Ответить с цитированием
Старый 20.03.2016, 15:20   #4
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Ну можно отсортировать и тогда следующее не сложно найти если есть позиция предыдущего.

Или просто обычный цикл для поиска минимального как в той теме на первой странице, только пропускать те, что <= этого числа.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 20.03.2016, 15:24   #5
zvygin1964
Старожил
 
Аватар для zvygin1964
 
Регистрация: 19.06.2013
Сообщений: 2,463
По умолчанию

Цитата:
Сообщение от Alex11223 Посмотреть сообщение
теме на первой странице
Это где?
Репутация: полный "0"
zvygin1964 вне форума Ответить с цитированием
Старый 20.03.2016, 15:27   #6
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 20.03.2016, 15:29   #7
newerow1989
Я самый любопытный
Участник клуба
 
Аватар для newerow1989
 
Регистрация: 24.07.2012
Сообщений: 1,949
По умолчанию

Код:
procedure TForm1.Button1Click(Sender: TObject);
var p:array of integer;
    i,i0,c,a,min:integer;
    s,s1:string;
begin
   c:=0;
   i0:=1;
   s:=Edit1.Text;
   s:=s+',';
   For i:=1 to Length(s) do
      If s[i]=',' then
      begin
         c:=c+1;
         SetLength(p,c);
         s1:=Copy(s,i0,i-i0);
         p[c-1]:=StrToInt(s1);
         i0:=i+1;
      end;
   Label1.Caption:='Проверка: ';
   For i:=0 to c-1 do
      Label1.Caption:=Label1.Caption+IntToStr(p[i])+' ';
   a:=StrToInt(Edit2.Text);
   min:=a;
   For i:=0 to c-1 do
   begin
      If (a=min) and (p[i]>a) then
         min:=p[i];
      If (a<min) and (min>p[i]) and (p[i]>a) then
         min:=p[i];
   end;
   Label2.Caption:='Найдено число: '+IntToStr(min);
end;
Вложения
Тип файла: rar Прога.rar (1.8 Кб, 6 просмотров)
С запрограммированным приветом, Неверов Евгений!
Сайт: http://newerow1989.ru
[Паскаль] [Delphi]
newerow1989 вне форума Ответить с цитированием
Старый 20.03.2016, 15:31   #8
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Цитата:
Если буду дописывать числа в неизвестном пока для меня месте, то очередь в массиве будет ломаться
Если в том массиве 100, 500 или 1000 чисел, то и не заметишь как самая простая сортировка по новой отработает. Да и в массив можно вставить не ломая порядок, это побыстрей чем пересортировать, но код чуть сложней
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию

Последний раз редактировалось Аватар; 20.03.2016 в 15:35.
Аватар вне форума Ответить с цитированием
Старый 20.03.2016, 15:36   #9
zvygin1964
Старожил
 
Аватар для zvygin1964
 
Регистрация: 19.06.2013
Сообщений: 2,463
По умолчанию

Значит всё таки только массив ? Очень хотелось без него вообще. Типа procedure перед
Код:
case max of
большее от имеющегося числа.
Репутация: полный "0"
zvygin1964 вне форума Ответить с цитированием
Старый 20.03.2016, 15:36   #10
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Цитата:
в том массиве 100, 500 или 1000 цифр
А я думал только 10 цифр бывает в десятичной системе счисления.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как объявить классовый массив, с большим числом? koker_007 Visual C++ 7 31.03.2015 19:46
Следующим президентом США будет республиканец Alar Свободное общение 18 17.04.2014 06:18
Написать программу, с помощью которой изображение будет разбиваться по пикселям и будет создаваться матрица andrey4515 Помощь студентам 2 08.01.2014 18:44
Точка с координатами х, у будет находиться в заштрихованной области, написать выражение которое будет истинным для данного рис. Polina S1 Помощь студентам 1 31.10.2013 16:38
Как работать с большим числом? phobos Общие вопросы C/C++ 2 21.04.2009 07:05