Вверх ↑
Ответов: 8886
Рейтинг: 823
#1: 2020-05-24 18:44:23 ЛС | профиль | цитата
GS_Lab, вспомнил, что в десятом году делал более сложную задачу -- любая система счисления в любую. Системы надо представлять символами по порядку. В консоль как-нибудь сам


Add(MainForm,12219262,266,154)
{
Left=20
Top=105
Width=379
Height=127
Caption="Перевод чисел в другие системы"
}
Add(MultiElementEx,9964527,378,154)
{
@Hint=#33:Основная задача #1: "Чужие" числа|13:Автор: Леонид|11:Версия: 1.0|
link(onNumber,5302895:doText,[])
link(alien_num,13164865:Text,[(384,142)(349,142)])
link(source_lang,4590749:Text,[])
link(target_lang,10086204:Text,[(398,142)(433,142)])
}
BEGIN_SDK
Add(EditMultiEx,14999505,21,21)
{
WorkCount=#8:doNumber|
EventCount=#8:onNumber|
DataCount=#9:alien_num|11:source_lang|11:target_lang|
Width=734
Height=438
link(doNumber,3484144:doWork1,[(25,27)(25,76)])
}
Add(GetDataEx,6479412,175,56)
{
link(Data,14999505:target_lang,[(181,30)(41,30)])
}
Add(MultiElement,3484144,42,70)
{
@Hint=#32:Проверка задания на корректность|
link(onEvent1,1692448:doEvent1,[(88,76)(88,170)(31,170)(31,160)])
link(onEvent2,6116706:doWork2,[(326,83)(326,27)])
link(Data1,11738762:Var2,[])
link(Data2,6271577:Var2,[])
link(Data3,6479412:Var1,[(62,61)])
}
BEGIN_SDK
Add(EditMulti,8984439,10,10)
{
EventCount=2
WorkCount=1
DataCount=3
VarCount=3
Width=762
Height=291
VOffset=46
HOffset=130
link(doWork1,12034852:doCopy,[(16,55)(16,62)])
link(Var1,2362952:Result,[(146,97)(209,97)])
link(Var2,5633068:Result,[(153,103)(363,103)])
link(Var3,2313525:Result,[(160,255)(510,255)])
}
Add(Length,2362952,203,56)
{
link(onLength,4618560:doCompare,[])
link(Str,6293195:Var1,[(209,37)])
}
Add(Length,5633068,357,56)
{
link(onLength,10661600:doCompare,[])
link(Str,2685681:Var2,[])
}
Add(Length,2313525,504,56)
{
link(onLength,2332167:doCompare,[])
link(Str,15801363:Var3,[(510,44)])
}
Add(If_else,2204744,308,56)
{
Type=1
Op2=Integer(5)
link(onTrue,5633068:doLength,[])
link(onFalse,14670249:doWork3,[(350,69)(350,108)(648,108)])
}
Add(If_else,13646232,595,56)
{
Type=1
Op2=Integer(17)
link(onTrue,15081392:doString,[(633,62)(633,132)(275,132)(275,146)])
link(onFalse,14670249:doWork1,[(648,69)])
}
Add(If_else,14599400,448,56)
{
Type=1
Op2=Integer(17)
link(onTrue,2313525:doLength,[])
link(onFalse,14670249:doWork2,[(496,69)(496,97)])
}
Add(HubEx,14670249,644,84)
{
link(onEvent,11132531:doClear,[])
}
Add(Memory,11132531,686,84)
{
Default=String(Превышение количества символов!)
link(onData,8984439:onEvent2,[(727,90)(727,62)])
}
Add(GetDataEx,6293195,259,28)
{
link(Data,8984439:Data1,[(272,29)(146,29)])
}
Add(GetDataEx,2685681,350,28)
{
link(Data,8984439:Data2,[(363,21)(153,21)])
}
Add(GetDataEx,15801363,476,35)
{
link(Data,8984439:Data3,[(489,12)(160,12)])
}
Add(FormatStr,15081392,287,140)
{
DataCount=3
Mask="%1%2%3"
Point(FString)
link(onFString,13513737:doLength,[])
link(Str1,6293195:Var2,[(293,43)(272,43)])
link(Str2,2685681:Var1,[(300,37)])
link(Str3,15801363:Var2,[(307,115)(489,115)])
}
Add(Copy,16701319,287,189)
{
Count=1
link(onCopy,13762504:doConvert,[])
link(Str,15081392:FString,[])
}
Add(For,10599308,224,189)
{
Start=1
onBreakEnable=0
Point(onBreak)
link(onEvent,16701319:doCopy,[])
link(onStop,8984439:onEvent1,[(260,202)(260,121)(723,121)(723,55)])
link(End,13513737:Result,[(237,181)(349,181)])
link(onBreak,3370743:doClear,[(272,209)(272,237)])
}
Add(Convertor,13762504,336,189)
{
Mode=3
link(onResult,4126123:doCompare,[])
}
Add(If_else,4126123,385,189)
{
Type=4
Op2=Integer(33)
link(onTrue,4634269:doCompare,[])
link(onFalse,5238967:doWork2,[(432,202)(432,230)])
}
Add(If_else,4634269,441,189)
{
Type=3
Op2=Integer(126)
link(onFalse,5238967:doWork1,[(487,202)])
}
Add(HubEx,5238967,483,217)
{
link(onEvent,10599308:doStop,[(502,230)(502,243)(215,243)(215,202)])
}
Add(Length,13513737,343,140)
{
link(onLength,10599308:doFor,[(387,146)(387,177)(215,177)(215,195)])
}
Add(Memory,3370743,546,224)
{
Default=String(Недопускаемые символы!)
link(onData,244346:doValue,[(590,230)(590,27)])
}
Add(If_else,4618560,245,56)
{
Type=2
Op2=Integer(0)
link(onTrue,2204744:doCompare,[])
link(onFalse,3764447:doWork1,[(285,69)(285,16)(585,16)])
}
Add(If_else,10661600,399,56)
{
Type=2
Op2=Integer(1)
link(onTrue,14599400:doCompare,[])
link(onFalse,3764447:doWork2,[(438,69)(438,34)])
}
Add(If_else,2332167,546,56)
{
Type=2
Op2=Integer(1)
link(onTrue,13646232:doCompare,[])
link(onFalse,3764447:doWork3,[(585,69)])
}
Add(HubEx,3764447,581,21)
{
link(onEvent,244346:doClear,[])
}
Add(Memory,244346,637,21)
{
Default=String(Мало количество символов!)
link(onData,11132531:doValue,[(677,27)(677,90)])
}
Add(Copy,14160306,105,56)
{
Position=1
Count=1
link(onCopy,4456705:doCompare,[])
link(Str,2685681:Var3,[(111,49)(373,49)(373,37)])
}
Add(Copy,12034852,21,56)
{
Position=1
Count=1
link(onCopy,15293824:doValue,[])
link(Str,6293195:Var3,[(27,46)(289,46)(289,37)])
}
Add(Memory,15293824,63,56)
{
link(onData,14160306:doCopy,[])
}
Add(If_else,4456705,147,56)
{
Type=5
link(onTrue,2362952:doLength,[])
link(onFalse,7078157:doClear,[(191,69)(191,125)])
link(Op1,15293824:Value,[(153,36)(100,36)(100,99)(69,99)])
}
Add(Memory,7078157,203,112)
{
Default=String(Не значащий "0"!)
link(onData,3370743:doValue,[(528,118)(528,230)])
}
END_SDK
Add(For,6958984,287,175)
{
Start=1
link(onEvent,9976666:doCopy,[])
link(End,10236693:Var2,[])
}
Add(Copy,13967922,609,168)
{
Count=1
link(onCopy,15245859:doStrCat,[])
link(Str,6479412:Var2,[(615,109)(181,109)])
}
Add(Copy,9976666,329,175)
{
Count=1
link(onCopy,16370867:doEvent1,[])
link(Str,6271577:Var3,[(335,115)(125,115)(125,39)])
}
Add(For,10017862,91,168)
{
Start=1
link(onEvent,868038:doCopy,[])
link(onStop,11259600:doData,[(135,181)(135,286)])
link(End,3484144:Var1,[(104,150)(48,150)])
}
Add(Copy,868038,140,168)
{
Count=1
Direction=1
link(onCopy,3009697:doEvent1,[])
link(Str,11738762:Var3,[(146,46)])
}
Add(MathParse,9738284,476,182)
{
DataCount=4
MathStr="%1 + %3 * %4^%2"
ResultType=0
Point(doClear)
link(onResult,6958984:doStop,[(518,188)(518,270)(275,270)(275,188)])
link(X1,11314068:Var1,[(482,170)(473,170)(473,229)])
link(X2,12727498:Result,[(489,163)(465,163)(465,263)(97,263)])
link(X3,14005575:Result,[(496,158)(459,158)(459,257)(293,257)])
link(X4,10236693:Var3,[(503,149)])
}
Add(InfoTip,9311144,28,119)
{
Info=#25:Десятичное значение числа|
Width=498
Height=158
}
Add(Memory,7338004,581,287)
{
Default=Integer(0)
}
Add(Hub,5723892,518,280)
{
OutCount=3
link(onEvent1,15245859:doClear,[(648,286)(648,181)])
link(onEvent2,8004577:doWork2,[])
link(onEvent3,16296330:doFor,[(542,300)(542,338)(464,338)(464,377)])
}
Add(MathParse,5538843,609,350)
{
MathStr="(%1 mod %2)+1"
ResultType=0
link(onResult,13967922:doCopy,[(655,356)(655,265)(597,265)(597,174)])
link(X1,7526882:Var3,[(615,334)])
link(X2,838879:Var3,[(622,324)])
}
Add(Math,12727498,91,217)
{
OpType=1
Op2=1
ResultType=0
link(Op1,10017862:Position,[])
}
Add(Hub,3009697,182,168)
{
link(onEvent1,12727498:doOperation,[(220,174)(220,208)(83,208)(83,223)])
link(onEvent2,3464969:doValue,[])
}
Add(Memory,3464969,231,175)
{
link(onData,6958984:doFor,[])
}
Add(GetDataEx,10236693,294,140)
{
link(Data,3484144:Var2,[(300,134)(55,134)])
}
Add(If_else,7987042,413,182)
{
link(onTrue,9738284:doCalc,[])
link(Op2,3464969:Value,[(426,167)(270,167)(270,219)(237,219)])
}
Add(Math,14005575,287,217)
{
OpType=1
Op2=1
ResultType=0
link(Op1,6958984:Position,[])
}
Add(Hub,16370867,371,175)
{
link(onEvent1,14005575:doOperation,[(408,181)(408,211)(282,211)(282,223)])
link(onEvent2,7987042:doCompare,[])
}
Add(GetDataEx,11314068,476,224)
{
link(Data,9738284:Result,[])
}
Add(DoData,11259600,476,280)
{
link(onEventData,5723892:doEvent1,[])
link(Data,11314068:Var2,[])
}
Add(Hub,1692448,42,154)
{
link(onEvent1,9738284:doClear,[(453,160)(453,195)])
link(onEvent2,10017862:doFor,[(84,167)(84,174)])
}
Add(HubEx,6116706,728,21)
{
link(onEvent,14999505:onNumber,[])
}
Add(Hub,15650862,525,371)
{
link(onEvent1,5538843:doCalc,[(554,377)(554,356)])
link(onEvent2,10875842:doCalc,[(555,384)(555,405)])
}
Add(MathParse,10875842,609,399)
{
MathStr="%1 div %2"
ResultType=0
link(onResult,16477247:doCompare,[])
link(X1,7526882:Var2,[(615,391)(587,391)])
link(X2,838879:Var2,[(622,384)(566,384)])
}
Add(For,16296330,476,371)
{
Start=1
End=28
link(onEvent,15650862:doEvent1,[])
link(onStop,9067198:doData,[(513,384)(513,230)])
}
Add(GetDataEx,7526882,581,329)
{
link(Data,7338004:Value,[])
}
Add(GetDataEx,838879,560,315)
{
link(Data,3484144:Var3,[(573,123)(62,123)])
}
Add(StrCat,15245859,658,168)
{
Point(doClear)
link(Str2,14449952:Var3,[(671,156)(699,156)(699,208)])
}
Add(If_else,16477247,651,399)
{
Type=2
Op2=Integer(0)
link(onTrue,8004577:doWork3,[(695,405)(695,340)(557,340)])
link(onFalse,16296330:doStop,[(695,412)(695,438)(464,438)(464,384)])
}
Add(HubEx,8004577,553,287)
{
link(onEvent,7338004:doValue,[])
}
Add(GetDataEx,14449952,658,203)
{
link(Data,15245859:Result,[])
}
Add(DoData,9067198,658,224)
{
link(onEventData,6116706:doWork3,[(732,230)])
link(Data,14449952:Var2,[])
}
Add(InfoTip,12458458,406,259)
{
Info=#24:Значение в чужой системе|
Width=330
Height=193
}
Add(GetDataEx,6271577,49,34)
{
Angle=3
link(Data,14999505:source_lang,[(34,39)])
}
Add(GetDataEx,11738762,42,41)
{
Angle=3
link(Data,14999505:alien_num,[(27,46)])
}
END_SDK
Add(Edit,13164865,343,98)
{
Left=40
Top=20
Width=55
Text="23"
}
Add(Edit,4590749,385,98)
{
Left=105
Top=20
Width=105
Text="01234567"
}
Add(Edit,10086204,427,98)
{
Left=220
Top=20
Width=110
Text="oF8"
}
Add(Button,3704188,322,154)
{
Left=40
Top=65
Caption=">>"
link(onClick,9964527:doNumber,[])
}
Add(Edit,5302895,427,154)
{
Left=120
Top=65
Width=210
Text=""
}
Add(Label,7878578,266,98)
{
Left=45
Width=36
Height=17
Caption="Число"
}
Add(Label,5468309,266,98)
{
Left=120
Width=78
Height=17
Caption="Наша система"
}
Add(Label,13725161,266,98)
{
Left=235
Width=83
Height=17
Caption="Чужая система"
}
Add(Label,6968574,266,98)
{
Left=155
Top=45
Width=124
Height=17
Caption="Число в чужой системе"
}

карма: 19

0