Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Assm - Перевод арабской цифры в цифру почтового индекса

Ответить
Настройки темы
Assm - Перевод арабской цифры в цифру почтового индекса

Новый участник


Сообщения: 1
Благодарности: 0

Профиль | Отправить PM | Цитировать


Задание.
Разработать процедуры перевода арабской цифры в цифру почтового индекса (и обратно).
Кто может помочь, отзовитесь. Есть код в 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.

Отправлено: 23:22, 27-11-2010

 


Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Assm - Перевод арабской цифры в цифру почтового индекса

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
[решено] снижение индекса производительности sharken Материнские платы и память 10 04-05-2010 20:25
Как перегнать виниловые диски в цифру samurai Видео и аудио: обработка и кодирование 4 25-05-2009 10:46
[решено] Аналоговое видео в цифру через TV карту не выходит... Offinbah Видео и аудио: обработка и кодирование 22 21-02-2009 11:45
Службы - Понижение индекса производительности Dabaduch Microsoft Windows Vista 0 26-01-2008 21:26
Драйвер - Зависимость индекса производительности от драйвера Simlion Microsoft Windows Vista 3 15-10-2007 07:52




 
Переход