Вверх ↑
Этот топик читают: Гость
Ответов: 315
Рейтинг: 1
#1: 2020-05-24 18:13:08 ЛС | профиль | цитата
На дистанционке задали написать консольное приложение, конвертор из разных систем счислений. Из шеснадцатиричной в двоичную, десятичную и обратно. Помогите!
И еще вопрос, нужно сделать скрининг, там нужен код, как из хиасма вытащить то, что он компилирует?

Add(Console,14431879,238,518)
{
Title="Console read"
link(onStart,7839409:doEvent1,[])
}
Add(LineBreakEx,7762255,63,518)
{
Caption="write"
Type=1
link(OnEvent,9772265:doCharset,[])
}
Add(DoData,5100121,630,490)
{
Data=String(Введите число...\n)
link(onEventData,5039690:doWork,[])
}
Add(Hub,4616001,553,525)
{
OutCount=3
link(onEvent1,5100121:doData,[(594,531)(594,496)])
link(onEvent2,11284574:doBits,[])
link(onEvent3,12150230:doString,[(969,545)(969,769)])
}
Add(LineBreakEx,5039690,679,490)
{
Caption="write"
}
Add(WaitObject,13558677,462,553)
{
link(ObjHandle,14477716:ObjHandle,[])
}
Add(Events,14477716,462,483)
{
Name=""
}
Add(Hub,7839409,357,518)
{
OutCount=3
link(onEvent1,14477716:doCreate,[(387,524)(387,489)])
link(onEvent2,4616001:doEvent1,[])
link(onEvent3,13558677:doWait,[(387,538)(387,559)])
}
Add(LineBreakEx,6479812,406,490)
{
Caption="exit"
Type=1
link(OnEvent,14477716:doSet,[])
}
Add(LineBreakEx,13601478,1295,763)
{
Caption="write"
}
Add(LineBreakEx,11811734,889,483)
{
Caption="read"
Type=2
}
Add(LineBreakEx,16443504,238,567)
{
Caption="read"
Type=3
link(_Data,14431879:Read,[])
}
Add(IntToBits,11284574,889,532)
{
link(Value,11811734:getVar,[])
link(onBit1,5593522:doValue,[(968,538)(968,496)])
link(onBit2,2537362:doValue,[(989,545)(989,510)])
link(onBit3,7201238:doValue,[(1007,552)(1007,524)])
link(onBit4,11070881:doValue,[(1024,559)(1024,531)])
link(onBit5,12587737:doValue,[(1080,566)(1080,552)])
link(onBit6,13529158:doValue,[(1059,573)(1059,587)])
link(onBit7,15909899:doValue,[(1077,580)(1077,601)])
link(onBit8,7043609:doValue,[(1094,587)(1094,629)])
}
Add(FormatStr,12150230,1169,763)
{
DataCount=8
Mask="%1%2%3%4%5%6%7%8"
link(onFString,13601478:doWork,[])
link(Str1,5593522:Value,[(1175,643)(1098,643)])
link(Str2,2537362:Value,[(1182,649)(1140,649)])
link(Str3,7201238:Value,[(1189,657)(1175,657)])
link(Str4,11070881:Value,[(1196,660)(1210,660)])
link(Str5,12587737:Value,[(1203,671)(1245,671)])
link(Str6,13529158:Value,[(1210,688)(1280,688)])
link(Str7,15909899:Value,[(1217,695)(1315,695)])
link(Str8,7043609:Value,[(1224,709)(1350,709)])
}
Add(Memory,5593522,1092,490)
{
}
Add(Memory,2537362,1134,504)
{
}
Add(Memory,7201238,1169,518)
{
}
Add(Memory,11070881,1204,525)
{
}
Add(Memory,12587737,1239,546)
{
}
Add(Memory,13529158,1274,581)
{
}
Add(Memory,15909899,1309,595)
{
}
Add(Memory,7043609,1344,623)
{
}
Add(Charset,9772265,126,518)
{
Type=1
link(onCharset,14431879:doWrite,[])
}


Редактировалось 1 раз(а), последний 2020-05-24 18:18:48
карма: 0

0
vip
#1.1контекстная реклама от партнеров
Ответов: 8593
Рейтинг: 795
#2: 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="Число в чужой системе"
}

карма: 18

0
Ответов: 315
Рейтинг: 1
#3: 2020-05-24 18:51:05 ЛС | профиль | цитата
Леонид, гляньте, пожалуйста мою прогу. что в не не так, почему не выдает результат?
карма: 0

0
Ответов: 8593
Рейтинг: 795
#4: 2020-05-24 19:31:24 ЛС | профиль | цитата
GS_Lab, вы не обозначили в свойствах выдаваемые при "0" и"1" символы
(Да и схему надо рисовать по-компактнее)
Add(MainForm,2953706,217,147)
{
}
Add(Hub,4616001,259,98)
{
link(onEvent1,11284574:doBits,[])
link(onEvent2,12150230:doString,[(283,111)(283,202)])
}
Add(IntToBits,11284574,294,98)
{
Data_0=Integer(0)
Data_1=Integer(1)
link(Value,8246092:Text,[])
link(onBit1,5593522:doValue,[])
link(onBit2,2537362:doValue,[])
link(onBit3,7201238:doValue,[])
link(onBit4,11070881:doValue,[])
link(onBit5,12587737:doValue,[])
link(onBit6,13529158:doValue,[])
link(onBit7,15909899:doValue,[])
link(onBit8,7043609:doValue,[])
}
Add(FormatStr,12150230,343,196)
{
DataCount=8
Mask="%8%7%6%5%4%3%2%1"
link(onFString,11916340:doText,[])
link(Str1,5593522:Value,[])
link(Str2,2537362:Value,[])
link(Str3,7201238:Value,[])
link(Str4,11070881:Value,[])
link(Str5,12587737:Value,[])
link(Str6,13529158:Value,[])
link(Str7,15909899:Value,[])
link(Str8,7043609:Value,[])
}
Add(Memory,5593522,343,98)
{
}
Add(Memory,2537362,350,105)
{
}
Add(Memory,7201238,357,112)
{
}
Add(Memory,11070881,364,119)
{
}
Add(Memory,12587737,371,126)
{
}
Add(Memory,13529158,378,133)
{
}
Add(Memory,15909899,385,140)
{
}
Add(Memory,7043609,392,147)
{
}
Add(Edit,8246092,294,49)
{
Left=15
Top=5
Width=110
Text="7"
DataType=2
}
Add(Edit,11916340,441,196)
{
Left=200
Top=5
Width=170
}
Add(Button,5480484,217,98)
{
Left=135
Top=5
link(onClick,4616001:doEvent1,[])
}


Редактировалось 1 раз(а), последний 2020-05-24 19:31:52
карма: 18

0
Ответов: 315
Рейтинг: 1
#5: 2020-05-24 19:39:15 ЛС | профиль | цитата
Леонид, На быструю руку рисовал... дело в том, что мне нужна именно консоль, в форме без проблем работает
карма: 0

0
Главный модератор
Ответов: 2945
Рейтинг: 386
#6: 2020-05-25 08:02:35 ЛС | профиль | цитата
GS_Lab писал(а):
мне нужна именно консоль

Просто не показывайте форму пользователю, аргументы командной строки получить можете, отправлять сообщения в консоль тоже. Чем Вам не "консольное" приложение?

Редактировалось 1 раз(а), последний 2020-05-25 08:03:17
карма: 7
Дорогу осилит идущий. Install/Update HiAsm.NET
0
6
Сообщение
...
Прикрепленные файлы
(файлы не залиты)