Silva писал(а):
Сложная задачка?Tad писал(а):
Элементарно. Silva, а Tad не врёт
На паскале задачка пустяковая. Для примера с схемой от tig-rrr, (т.к Леонид отжёг по полной
Add(MainForm,12397248,77,49)
{
Width=709
Height=242
}
Add(Edit,13314783,147,49)
{
Left=30
Top=25
Width=295
Text="41021811320118 32151112065 26052018 1600"
}
Add(Edit,13965869,266,126)
{
Left=30
Top=75
Width=585
Text="0"
}
Add(Button,15874368,77,126)
{
Left=340
Top=25
link(onClick,8201177:doCalc,[])
}
Add(MultiElementEx,8201177,147,126)
{
link(onRes,12883073:doWork2,[])
link(String,11113532:Var2,[])
}
BEGIN_SDK
Add(EditMultiEx,12596441,21,21)
{
WorkCount=#6:doCalc|
EventCount=#5:onRes|
DataCount=#6:String|
Width=734
Height=417
VOffset=70
HOffset=70
link(doCalc,5462783:doEvent1,[(35,97)(35,83)])
}
Add(Str_Enum,389233,140,140)
{
Delimiter=""
link(onEnum,9024364:doConvert,[])
link(onEndEnum,14252911:doSort,[(184,153)(184,188)])
link(String,4506909:Var2,[])
}
Add(Convertor,9024364,189,140)
{
Mode=1
link(onResult,13089371:doCase,[])
}
Add(ArrayRW,2322341,273,126)
{
link(Array,11069843:Var2,[])
}
Add(IntegerArray,4591465,273,63)
{
IntArray=[]
}
Add(ArraySort,14252911,308,182)
{
ArrayType=1
link(onEndSort,815268:doCount,[])
link(Array,11069843:Var3,[(314,110)])
}
Add(GetDataEx,11069843,273,105)
{
link(Data,4591465:Array,[])
}
Add(Case,13089371,231,140)
{
Value=Integer(0)
link(onNextCase,2322341:doAdd,[])
}
Add(ArrayCountRepeats,815268,357,182)
{
ArrayType=1
link(onCount,9747463:doValue,[])
link(Array,14252911:ArraySort,[(363,170)(350,170)(350,228)(314,228)])
}
Add(MT_MultiMem,9747463,406,182)
{
link(onData,12300473:doCompare,[(474,188)(474,223)(401,223)(401,258)])
}
Add(If_else,12300473,413,252)
{
Op2=Integer(1)
link(onFalse,13579507:doEvent1,[])
link(Op1,9630900:Var2,[])
}
Add(Math,14873352,525,259)
{
OpType=2
link(onResult,11017156:doOperation,[])
link(Op1,16059183:Var2,[])
link(Op2,13830514:Var3,[(538,236)])
}
Add(GetDataEx,9630900,413,231)
{
link(Data,9747463:Value2,[])
}
Add(Math,11017156,637,259)
{
Point(doDefault)
link(Op1,753617:Var1,[(643,247)(625,247)(625,303)])
}
Add(For,12601497,490,308)
{
IncludeEnd=1
link(onEvent,2705495:doStrCat,[])
link(End,13830514:Var2,[])
}
Add(StrCat,2705495,574,308)
{
Point(doClear)
link(Str1,11299000:Var1,[(580,296)(555,296)(555,356)])
link(Str2,16059183:Var3,[(587,229)])
}
Add(Hub,13579507,455,259)
{
link(onEvent1,14873352:doOperation,[])
link(onEvent2,12601497:doFor,[(469,314)])
}
Add(GetDataEx,13830514,497,231)
{
Angle=3
link(Data,9630900:Var3,[])
}
Add(GetDataEx,16059183,525,224)
{
Angle=3
link(Data,9747463:Value1,[(412,229)])
}
Add(FormatStr,1600567,651,378)
{
DataCount=3
Mask="%1 %2 %3"
link(onFString,12596441:onRes,[(719,384)(719,97)])
link(Str1,4506909:Var3,[(657,117)])
link(Str2,11299000:Var3,[(664,356)])
link(Str3,753617:Var3,[(671,303)])
}
Add(Hub,5462783,49,77)
{
OutCount=5
link(onEvent1,4591465:doClear,[])
link(onEvent2,6405299:In,[])
link(onEvent3,9905071:In,[(95,97)(95,111)])
link(onEvent4,389233:doEnum,[(89,104)(89,146)])
link(onEvent5,1600567:doString,[(80,111)(80,384)])
}
Add(GetDataEx,4506909,140,112)
{
link(Data,12596441:String,[(146,66)(97,66)])
}
Add(GetDataEx,11299000,574,351)
{
link(Data,2705495:Result,[])
}
Add(GetDataEx,753617,637,298)
{
link(Data,11017156:Result,[])
}
Add(LineBreak,3362365,490,350)
{
link(Out,2705495:doClear,[(547,356)(547,321)])
Primary=[6405299,-385,-266]
}
Add(LineBreak,1541727,588,266)
{
link(Out,11017156:doDefault,[])
Primary=[9905071,-483,-161]
}
END_SDK
Add(InlineCode,396202,196,189)
{
WorkPoints=#6:doWork|
EventPoints=#5:onRes|
DataPoints=#5:inStr|
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|28: inStr,onRes: THI_Event;|48: procedure doWork(var dt: TData; idx: word);|0:|5: end;|0:|14:implementation|0:|55:procedure THiAsmClass.doWork(var dt: TData; idx: word);|35:var arrStr: array [1..9] of string;|52: sIn,sOut: string; chr: Char; i,iRes: integer; |5:begin|41: sIn := ToStringEvent(inStr); iRes := 0;|30: for i := 1 to Length(sIn) do|7: begin|18: chr := sIn[i];|15: case chr of|38: '1': arrStr[1] := arrStr[1] + chr;|38: '2': arrStr[2] := arrStr[2] + chr;|38: '3': arrStr[3] := arrStr[3] + chr;|38: '4': arrStr[4] := arrStr[4] + chr;|38: '5': arrStr[5] := arrStr[5] + chr;|38: '6': arrStr[6] := arrStr[6] + chr;|38: '7': arrStr[7] := arrStr[7] + chr;|86: '8': arrStr[8] := arrStr[8] + chr; |42: '9': arrStr[9] := arrStr[9] + chr; |8: end;|6: end;|10: |24: sOut := sIn + ' '; |2: |20: for i := 1 to 9 do|33: if Length(arrStr[i]) > 1 then|11: begin|33: sOut := sOut + arrStr[i];|45: iRes := iRes + (Length(arrStr[i])*i);|10: end;|53: _hi_OnEvent(onRes,sOut + ' ' + Int2Str(iRes)); |4:end;|0:|4:end.|
link(onRes,12883073:doWork3,[(242,195)])
link(inStr,11113532:Var3,[(202,103)])
}
Add(Button,1209941,77,189)
{
Left=30
Top=125
link(onClick,396202:doWork,[])
}
Add(GetDataEx,11113532,147,98)
{
link(Data,13314783:Text,[])
}
Add(HubEx,12883073,238,126)
{
link(onEvent,13965869:doText,[])
}



Поиск
Друзья
Администрация