Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.11.2010, 00:24   #1
balecki
Новичок
Джуниор
 
Регистрация: 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.
balecki вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
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