HiAsm - Конструктор программ

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » HiAsm - Конструктор программ » Готовые схемы » Поиск максимального числа в списке


Поиск максимального числа в списке

Сообщений 1 страница 6 из 6

1

Искал компонент по максимальному и минимальному числу не нашел пришлось делать по пальцам.

Код:
Add(MainForm,2953706,49,336)
{
 Width=421
 Caption="Поиск максимального числа из списка"
}
Add(RichEdit,1401708,252,161)
{
 Left=50
 Top=20
 Height=180
 Strings=#1:6|2:18|2:20|2:17|1:5|2:22|2:16|2:31|2:25|1:8|2:21|2:19|
 Point(EndIdx)
}
Add(If_else,11494152,434,392)
{
 Type=2
 Op1=Integer(0)
 Op2=Integer(0)
 link(onTrue,16228229:doEvent1,[(480,398)(480,400)])
 link(Op1,15411398:Var,[(440,373)(412,373)])
 link(Op2,5059804:Value,[(447,356)(503,356)])
}
Add(For,5317812,161,280)
{
 link(onEvent,7047935:doEvent1,[(209,286)(209,287)])
 link(End,1401708:Count,[(174,261)(265,261)])
}
Add(Button,2034628,42,245)
{
 Left=145
 Top=35
 Width=165
 Height=80
 Caption="Поиск максимума из списка"
 link(onClick,11859324:doEvent1,[(86,251)(86,283)])
}
Add(ArrayRW,2254067,322,259)
{
 link(onRead,8238365:doValue,[])
 link(Array,1401708:Array,[(328,243)(272,243)])
 link(Index,16178231:Value,[])
}
Add(Memory,16178231,329,203)
{
}
Add(Hub,7047935,226,281)
{
 link(onEvent1,16178231:doValue,[(295,287)(295,209)])
 link(onEvent2,2254067:doRead,[(288,294)(288,265)])
}
Add(Memory,8238365,406,259)
{
 Point(Data)
 link(onData,15411398:doConvert,[(450,265)(450,297)(394,297)(394,328)])
}
Add(Memory,5059804,497,266)
{
}
Add(Hub,11859324,112,277)
{
 OutCount=3
 link(onEvent1,1162436:In,[(133,283)(133,237)])
 link(onEvent2,5317812:doFor,[(144,290)(144,286)])
}
Add(Hub,16228229,495,394)
{
 link(onEvent1,5059804:doValue,[(521,400)(521,343)(464,343)(464,272)])
 link(onEvent2,1225922:doText,[(524,407)(524,391)])
}
Add(ConvertorEx,15411398,406,322)
{
 Mode=1
 link(onResult,11494152:doCompare,[(450,328)(450,363)(422,363)(422,398)])
 link(Data,8238365:Value,[])
}
Add(Label,1225922,539,385)
{
 Left=180
 Top=145
 Width=85
 Height=35
 Font=[MS Sans Serif,14,0,255,1]
 Caption="MAX"
}
Add(LineBreak,5762225,441,231)
{
 Caption="Clear"
 link(Out,5059804:doClear,[(480,237)(480,279)])
 Primary=[1162436,-301,0]
}
Add(InfoTip,2688331,378,210)
{
 Info=#5:Поиск|
 Width=211
 Height=235
}
Add(InfoTip,8994702,84,28)
{
 Info=#67:Поиск максимального числа из списка работает по принципу что больше|82:и максимальное число всегда идёт на сравнение до тех пор пока строки не закончатся|64:но список это строковый параметр а условие работает на числовом |24:по этому стоит конвертор|86:Да можно было бы использоват компонент перебора ArrayEnum, но мы не ищем лёгких путей)|
 Width=526
 Height=116
}
Add(ArrayEnum,3235759,392,91)
{
}

0

2

HiAsm никогда не отличался гибкостью в построении алгоритмов. Помню времена когда пустяковая задача в обмене двумя переменными стаёт ужасной картинкой o.O
Поэтому нужно учить ЯВУ!

Phenix написал(а):

Искал компонент по максимальному и минимальному числу не нашел пришлось делать по пальцам.

Вот тебе заготовка на то что искал.

0

3

Дык есть у нас всё.

Код:
Add(MainForm,6257817,378,217)
{
 Width=549
 link(onCreate,11994920:doSort,[])
}
Add(RichEdit,1401708,476,147)
{
 Left=50
 Top=20
 Height=180
 Strings=#1:6|2:18|2:20|2:17|1:5|2:22|2:16|2:31|2:25|1:8|2:21|2:19|
 Point(EndIdx)
}
Add(Button,2034628,378,301)
{
 Left=145
 Top=35
 Width=165
 Height=80
 Caption="Поиск максимума из списка"
 link(onClick,9133550:doOperation,[])
}
Add(Label,1225922,546,301)
{
 Left=180
 Top=145
 Width=44
 Height=30
 Font=[MS Sans Serif,14,0,255,1]
 Caption="Max"
}
Add(Label,16322005,588,364)
{
 Left=180
 Top=185
 Width=38
 Height=30
 Font=[MS Sans Serif,14,0,255,1]
 Caption="Min"
}
Add(Button,5071038,378,364)
{
 Left=325
 Top=35
 Width=165
 Height=80
 Caption="Поиск миниимума из списка"
 link(onClick,4857793:doRead,[])
}
Add(ArraySort,11994920,490,231)
{
 ArrayType=1
 link(Array,1401708:Array,[])
}
Add(ArrayRW,4319355,490,301)
{
 link(onRead,1225922:doText,[])
 link(Array,5605829:Var2,[])
 link(Index,9133550:Result,[(503,289)(471,289)(471,345)(440,345)])
}
Add(Math,9133550,434,301)
{
 OpType=1
 Op2=1
 ResultType=0
 link(onResult,4319355:doRead,[])
 link(Op1,11994920:Count,[(440,282)(503,282)])
}
Add(ArrayRW,4857793,525,364)
{
 Index=Integer(0)
 link(onRead,16322005:doText,[])
 link(Array,5605829:Var3,[(531,278)])
}
Add(GetDataEx,5605829,490,273)
{
 link(Data,11994920:ArraySort,[])
}

Вот только за скорость на больших массивах не ручаюсь.

0

4

3042
Я всё же сторонник оптимизации логики и схем в целом, иначе зачем  я тогда делал к примеру ЭТО Ссылка
Если балончик может заменить пол ведра краски наверно разумное в этом что то есть.

0

5

Ну да, я тоже когда-то оптимизировал (вместе с Galkov'ым), правда, штатный компонент.
https://forum.hiasm.com/topic/66788/0
Слава богу, обновили на SVN, а то ведь новый диалог туда так и не попал...

0

6

3042, Shell вообще трудная тема для KOL, ноя я её прогрыз (ведь я же упёртый)  8-)  Ссылка

0


Вы здесь » HiAsm - Конструктор программ » Готовые схемы » Поиск максимального числа в списке


Рейтинг форумов | Создать форум бесплатно