Вверх ↑
Этот топик читают: Гость
Ответов: 96
Рейтинг: 1
#1: 2010-11-01 19:08:41 ЛС | профиль | цитата
Подскажите как подсчитать сумму в строке.
например есть строка 01010101101 просуммировав ее элементы получим 0+1+0+1+0+1+0+1+1+0+1=6

У меня, что-то не получается
code_21350.txt
карма: 0

0
файлы: 1code_21350.txt [979B] [94]
Ответов: 397
Рейтинг: 34
#2: 2010-11-01 19:12:36 ЛС | профиль | цитата
Delimiter удали.
И вот так красивее:
Add(Edit,424797,413,119){
Left=20
Top=15
Width=85
Text="01010101101"
}
Add(Button,11139605,364,168)
{
Left=20
Top=70
Width=85
link(onClick,12446174:doEnum,[])
}
Add(Label,2154821,497,168)
{
Left=20
Top=125
Width=24
Height=4
Caption=""
}
Add(Str_Enum,12446174,413,168)
{
Delimiter=""
link(onEnum,6391282:doOperation,[])
link(String,424797:Text,[])
}
Add(Math,6391282,455,168)
{
link(onResult,2154821:doText,[])
link(Op2,6391282:Result,[(468,156)(493,156)(493,212)(461,212)])
}
карма: 0

0
Гость
Ответов: 17029
Рейтинг: 0
#3: 2010-11-01 19:13:06 правка | ЛС | профиль | цитата


Редактировалось 1 раз(а), последний 2017-03-06 02:31:00
карма: 0

0
Ответов: 96
Рейтинг: 1
#4: 2010-11-01 19:17:42 ЛС | профиль | цитата
Спасибо за ответ, но в этой схеме не работает

code_21351.txt
карма: 0

0
файлы: 1code_21351.txt [2.1KB] [94]
Ответов: 397
Рейтинг: 34
#5: 2010-11-01 19:25:50 ЛС | профиль | цитата
там наверно нужно Bin2Int и задержку какую...
карма: 0

0
Разработчик
Ответов: 26163
Рейтинг: 2127
#6: 2010-11-01 19:32:28 ЛС | профиль | цитата
301992, во-первых: нафиг там куча лишних связей не нужна
во-вторых:
Black-Light писал(а):
там наверно нужно Bin2Int и задержку какую...

Очистка накопителя там нужна, а не фигня всякая. Я думал ты сам додумаешься

<del>
карма: 22

0
Ответов: 397
Рейтинг: 34
#7: 2010-11-01 19:35:12 ЛС | профиль | цитата
nesco, и глянь что там считает...(я такой вариант пробовал )
карма: 0

0
Разработчик
Ответов: 26163
Рейтинг: 2127
#8: 2010-11-01 19:39:36 ЛС | профиль | цитата
Black-Light писал(а):
и глянь что там считает...

Вижу, что ты хреновый накопитель придумал, а я повелся
------------ Дoбавленo в 19.37:
Вот так надо



Add(MainForm,9386144,161,252)
{
Width=304
}
Add(Edit,1369988,343,252)
{
Left=85
Top=10
Width=90
Height=25
Text="23"
}
Add(ButtonRush,1465709,161,196)
{
Left=35
Top=10
Width=25
Caption="1"
Glyphs=[]
RoundWidth=100
RoundHeight=100
link(onClick,6237898:doEnum,[])
}
Add(StrList,16286429,217,133)
{
Strings=#2:72|2:23|2:44|2:72|2:23|2:44|2:72|2:23|2:44|2:72|2:23|2:44|2:72|2:23|2:44|2:72|2:23|2:44|2:33|2:22|2:11|2:12|2:13|2:14|2:15|2:42|2:66|2:78|2:99|2:88|2:65|2:46|
}
Add(Math,1770882,336,308)
{
OpType=6
link(onResult,10215552:doConvert,[])
link(Op2,1369988:Text,[])
}
Add(Memo,14043136,420,196)
{
Left=10
Top=55
Width=90
Height=185
ScrollBars=2
}
Add(ArrayEnum,6237898,231,196)
{
link(onItem,14140546:doEvent1,[])
link(Array,16286429:Array,[])
}
Add(Convertor,2122363,343,196)
{
Mode=8
link(onResult,14043136:doAdd,[])
}
Add(Hub,14140546,280,196)
{
link(onEvent1,2122363:doConvert,[])
link(onEvent2,1770882:doOperation,[(315,209)(315,314)])
}
Add(Memo,1325278,588,315)
{
Left=110
Top=55
Width=90
Height=185
ScrollBars=2
}
Add(Convertor,10215552,385,308)
{
Mode=8
link(onResult,7265244:doEvent1,[])
}
Add(Memo,1154660,574,434)
{
Left=210
Top=55
Width=65
Height=185
Color=8454016
ScrollBars=2
link(Str,530326:Var2,[])
}
Add(Hub,7265244,434,308)
{
OutCount=3
link(onEvent1,6391282:doClear,[(543,314)(543,391)])
link(onEvent2,1325278:doAdd,[])
link(onEvent3,12446174:doEnum,[(458,328)(458,384)])
}
Add(Str_Enum,12446174,476,378)
{
Delimiter=""
link(onEnum,6391282:doOperation,[])
link(onEndEnum,1154660:doAdd,[(519,391)(519,440)])
}
Add(Math,6391282,574,378)
{
ResultType=0
Point(doClear)
link(Op1,530326:Var1,[(580,366)(570,366)(570,418)])
}
Add(GetDataEx,530326,574,413)
{
link(Data,6391282:Result,[])
}

------------ Дoбавленo в 19.39:
Black-Light писал(а):
я такой вариант пробовал

Плохо пробовал.
карма: 22

2
Голосовали:foksov, Black-Light
Ответов: 397
Рейтинг: 34
#9: 2010-11-01 19:39:50 ЛС | профиль | цитата
nesco, ага бывает
карма: 0

0
Ответов: 96
Рейтинг: 1
#10: 2010-11-02 19:06:02 ЛС | профиль | цитата
А можно сделать так, чтобы схема работала быстрее? И как?

code_21368.txt
карма: 0

0
файлы: 1code_21368.txt [6.9KB] [91]
Ответов: 16884
Рейтинг: 1239
#11: 2010-11-02 19:18:28 ЛС | профиль | цитата
301992, ну и что ты меряешь ? Посмотри внимательно.
А вообще-то, основное время жрёт вывод на экран.
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Разработчик
Ответов: 26163
Рейтинг: 2127
#12: 2010-11-02 19:22:46 ЛС | профиль | цитата
Я вот только одного не пойму -- на кой черт использовать Memo, если не предполагается редактировать данные, что, для этой цели, обычный ListBox не подходит
карма: 22

0
Ответов: 16884
Рейтинг: 1239
#13: 2010-11-02 20:29:09 ЛС | профиль | цитата
nesco, обрати внимание, что у него считает TimeCounter .
У меня вся схема отрабатывает за 456 мс.
Куда спешим ?
------------ Дoбавленo в 20.29:
Вот так наверное без учета вывода на экран.
project46a.rar
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
файлы: 1project46a.rar [1.2KB] [67]
Ответов: 8928
Рейтинг: 823
#14: 2010-11-02 20:45:02 ЛС | профиль | цитата
Ох, как можно быстрее в трёх случаях :D

Add(MainForm,2953706,196,28)
{
Width=588
Caption="Sum"
link(onCreate,1198026:doRandomize,[(238,48)(238,104)])
}
Add(InlineCode,3185247,245,196)
{
@Hint=#22:Расшифровка кода Морзе|
WorkPoints=#6:doWork|
EventPoints=#5:onRes|
Code=#15:unit HiAsmUnit;|0:|9:interface|0:|21:uses kol,Share,Debug;|0:|4:type|28: THiAsmClass = class(TDebug)|10: private|4: |9: public|25: _data_Data:THI_Event;|20: onRes:THI_Event;|50: procedure doWork(var _Data:TData; Index:word);|5: end;|0:|14:implementation|0:|29:procedure THiAsmClass.doWork;|14:var St:string;|20: Rs,Ln,i:integer;|5:begin|24: St:= ToString(_Data);|19: Ln:= Length(St);|9: Rs:=0;|47: for i:=1 to Ln do Rs:=Rs + str2int(St[i]);|25: _hi_onEvent(onRes,Rs);|4:end;|0:|4:end.|
Name="Sum"
link(onRes,12510832:doValue,[])
}
Add(Random,1198026,245,91)
{
Max=9
link(onRandom,14563948:doStrCat,[])
}
Add(For,779362,196,91)
{
Start=1
InData=0
link(onEvent,1198026:doRandom,[])
link(onStop,15769021:doData,[(233,104)(233,146)])
link(End,6562397:Var1,[(209,85)(190,85)])
}
Add(StrCat,14563948,294,91)
{
Point(doClear)
link(Str1,3275765:Var1,[(300,79)(288,79)(288,135)])
}
Add(Button,13146583,126,189)
{
Left=15
Top=240
Caption="Calc"
link(onClick,3501547:doEvent1,[])
}
Add(Memo,11355729,364,119)
{
Left=5
Top=25
Width=570
Height=205
ScrollBars=2
}
Add(DoData,13124005,196,196)
{
link(onEventData,3185247:doWork,[])
link(Data,3275765:Var2,[(202,154)(300,154)])
}
Add(TimeCounter,985869,329,189)
{
link(onStop,6478257:doString,[])
}
Add(Hub,3501547,168,189)
{
link(onEvent1,985869:doStart,[])
link(onEvent2,13124005:doData,[])
}
Add(Memory,12510832,287,196)
{
link(onData,985869:doStop,[])
}
Add(Label,9943096,420,196)
{
Left=85
Top=240
Width=4
Height=4
Caption=""
}
Add(FormatStr,6478257,378,196)
{
DataCount=3
Mask="Сумма %3 цифр равна %1 и подсчитана за %2 мсек"
link(onFString,9943096:doText,[])
link(Str1,12510832:Value,[(384,184)(369,184)(369,240)(293,240)])
link(Str3,6562397:Var2,[(398,177)(190,177)])
}
Add(GetDataEx,3275765,294,130)
{
link(Data,14563948:Result,[])
}
Add(DoData,15769021,315,140)
{
link(onEventData,11355729:doText,[])
link(Data,3275765:Var3,[(321,135)])
}
Add(Edit,14444265,126,70)
{
Left=135
Top=3
Text="100000"
DataType=2
link(onEnter,6604440:doEvent1,[])
}
Add(Label,3638808,126,28)
{
Left=5
Top=5
Width=133
Height=17
Caption="Сгенерировать строку из"
}
Add(Label,13592740,126,140)
{
Left=185
Top=5
Width=30
Height=17
Caption="цифр"
}
Add(Hub,6604440,168,77)
{
OutCount=3
link(onEvent1,14444265:doText2,[(193,83)(193,64)(114,64)(114,83)])
link(onEvent2,14563948:doClear,[(283,90)(283,104)])
link(onEvent3,779362:doFor,[])
}
Add(GetDataEx,6562397,184,108)
{
Angle=3
link(Data,14444265:Text,[(132,113)])
}

карма: 19

0
14
Сообщение
...
Прикрепленные файлы
(файлы не залиты)