Перевод Pascal на VB
Формулировка задачи:
Это код вычитания двоичных чисел. Помогите пожалуйста перевести его на Visual Basic
Листинг программы
- var sr,sf,ss:string;
- { вычитание двоичных строк, первое число должно быть >= второго }
- function BinSub(s1,s2:string):string;
- var s:string; l,i,j:byte;
- begin
- {выравнивание строк по длине}
- if length(s1) > length(s2) then while length(s2) < length(s1) do s2:='0'+s2
- else while length(s1) < length(s2) do s1:='0'+s1;
- l:=length(s1); {начало алгоритма вычитания}
- s:='';
- for i:=l downto 1 do begin
- case s1[i] of
- '1': if s2[i]='0' then s:='1'+s else s:='0'+s;
- '0': if s2[i]='0' then s:='0'+s else begin
- s:='1'+s;
- if (s1[i-1]='1') then s1[i-1]:='0' else begin
- j:=1;
- while (i-j > 0) and (s1[i-j]='0') do begin
- s1[i-j]:='1';
- inc(j);
- end;
- s1[i-j]:='0';
- end;
- end;
- end;
- end;
- {Уничтожение передних нолей}
- while (length(s) > 1) and (s[1]='0') do delete(s,1,1);
- BinSub:=s;
- end;
- begin
- writeln('введите 1-е двоичное число:');
- readln(sf);
- writeln('введите 2-е двоичное число:');
- readln(ss);
- sr:=BinSub(sf,ss);
- writeln('результат вычитания = ',sr);
- end.
Решение задачи: «Перевод Pascal на VB»
textual
Листинг программы
- '{ вычитание двоичных строк, первое число должно быть >= второго }
- Function BinSub(s1 As String, s2 As String) As String
- Dim i As Long, j As Long
- '{выравнивание строк по длине}
- i = Len(s1) - Len(s2)
- If i > 0 Then
- s2 = String(i, "0") & s2
- ElseIf i < 0 Then s1 = String(-i, "0") & s1
- End If
- i = Len(s1) ' {начало алгоритма вычитания}
- BinSub = Space$(i)
- For i = i To 1 Step -1
- j = AscW(Mid$(s1, i, 1)) - AscW(Mid$(s2, i, 1)) - j
- If j < 0 Then
- Mid$(BinSub, i) = ChrW$(50 + j)
- j = 1
- Else
- Mid$(BinSub, i) = ChrW$(48 + j)
- j = 0
- End If
- Next
- ' {Уничтожение передних нолей}
- i = InStr(BinSub, "1")
- Select Case i
- Case 0: BinSub = "0"
- Case Is > 1: BinSub = Mid$(BinSub, i)
- End Select
- End Function
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д