|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
28.11.2010, 00:24 | #1 |
Новичок
Джуниор
Регистрация: 28.11.2010
Сообщений: 1
|
Перевод арабской цифры в цифру почтового индекса
Задание.
Разработать процедуры перевода арабской цифры в цифру почтового индекса (и обратно). Кто может помочь, отзовитесь. Есть код в Delphi. Перевод всего индекса. Необходимо в Ассемблере. program Project1; {$APPTYPE CONSOLE} uses SysUtils; const num:array[1..5,0..9] of string[3]=( ('###',' #','###','###','# #','###',' #','###','###','###'), ('# #',' ##',' #',' # ','# #','# ',' # ',' # ','# #','# #'), ('# #','# #',' #','###','###','###','###','# ','###','###'), ('# #',' #',' # ',' # ',' #',' #','# #','# ','# #',' # '), ('###',' #','###','# ',' #','###','###','# ','###','# ')); { ### # ### ### # # ### # ### ### ### # # ## # # # # # # # # # # # # # # # # ### ### ### ### # ### ### # # # # # # # # # # # # # ### # ### # # ### ### # ### # 111101101101111 0 001011101001001 1 111001001010111 2 111010111010100 3 101101111001001 4 111100111001111 5 001010111101111 6 111010100100100 7 111101111101111 8 111101111010100 9 } numbin:array[0..9] of integer =($7B6F,$1749,$7257,$75D4,$5BC9, $79CF,$15EF,$7524,$7BEF,$7BD4); var f,fo:TextFile; s:string; c,MaxI:integer; IndexNum:integer; IndexStr:string; OutIndex:array[1..5] of string; mask:array[1..20]of string[20]; outnum:array[1..20] of integer; i,j,y:integer; begin { TODO -oUser -cConsole Main : Insert code here } assignfile(f,'input.txt'); assignfile(fo,'output.txt'); reset(f); i:=0; while (i<5) and (not Eof(f)) do begin i:=i+1; readln(f,s); OutIndex[i]:=s; end; if i=1 then // число в индекс begin s:=Outindex[1]; for i:=1 to length(s) do begin c:=ord(s[i]); if (c>47) and (c<58) then begin MaxI:=i; outnum[MaxI]:=c-48; end else break; end; rewrite(fo); for j:=1 to 5 do begin for i:=1 to MaxI do write(fo,num[j,outnum[i]],' '); writeln(fo,' '); end; end else // индекс в число begin maxi:=(length(Outindex[1])+1) div 4; for i:=0 to maxi-1 do begin for j:=1 to 5 do for y:=(i*4)+1 to (i*4)+3 do mask[i+1]:=mask[i+1]+Outindex[j][y]; end; for i:=1 to maxi do begin y:=1; outnum[i]:=0; for j:=length(mask[i]) downto 1 do begin if mask[i][j]<>' ' then outnum[i]:=outnum[i]+y; y:=y*2; end; end; for i:=1 to maxi do begin for j:=0 to 9 do begin if outnum[i]=numbin[j] then begin outnum[i]:=j; break; end; end; end; rewrite(fo); for i:=1 to maxi do begin if outnum[i]>9 then break; write(fo,outnum[i]); end; end; close(f); close(fo); sleep(1000); writeln('ok'); // readln(s); end. |
Опции темы | Поиск в этой теме |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
ComboBox, номер индекса | _-Re@l-_ | Общие вопросы .NET | 2 | 21.11.2010 15:24 |
Выбор однозначного индекса | Vladymyr | Microsoft Office Access | 2 | 08.11.2010 18:31 |
Сортирует цифры по строкам, а надо чтобы сортировала цифры , записанные через пробелы | Алексей_xXx | Помощь студентам | 14 | 06.05.2009 17:42 |
Уникальность индекса в БД | spiteful41 | Помощь студентам | 7 | 27.05.2008 01:26 |