Перевод Pascal на VB

Узнай цену своей работы

Формулировка задачи:

Это код вычитания двоичных чисел. Помогите пожалуйста перевести его на Visual Basic
Листинг программы
  1. var sr,sf,ss:string;
  2. { вычитание двоичных строк, первое число должно быть >= второго }
  3. function BinSub(s1,s2:string):string;
  4. var s:string; l,i,j:byte;
  5. begin
  6. {выравнивание строк по длине}
  7. if length(s1) > length(s2) then while length(s2) < length(s1) do s2:='0'+s2
  8. else while length(s1) < length(s2) do s1:='0'+s1;
  9. l:=length(s1); {начало алгоритма вычитания}
  10. s:='';
  11. for i:=l downto 1 do begin
  12. case s1[i] of
  13. '1': if s2[i]='0' then s:='1'+s else s:='0'+s;
  14. '0': if s2[i]='0' then s:='0'+s else begin
  15. s:='1'+s;
  16. if (s1[i-1]='1') then s1[i-1]:='0' else begin
  17. j:=1;
  18. while (i-j > 0) and (s1[i-j]='0') do begin
  19. s1[i-j]:='1';
  20. inc(j);
  21. end;
  22. s1[i-j]:='0';
  23. end;
  24. end;
  25. end;
  26. end;
  27. {Уничтожение передних нолей}
  28. while (length(s) > 1) and (s[1]='0') do delete(s,1,1);
  29. BinSub:=s;
  30. end;
  31. begin
  32. writeln('введите 1-е двоичное число:');
  33. readln(sf);
  34. writeln('введите 2-е двоичное число:');
  35. readln(ss);
  36. sr:=BinSub(sf,ss);
  37. writeln('результат вычитания = ',sr);
  38. end.

Решение задачи: «Перевод Pascal на VB»

textual
Листинг программы
  1. '{ вычитание двоичных строк, первое число должно быть >= второго }
  2. Function BinSub(s1 As String, s2 As String) As String
  3.  
  4. Dim i As Long, j As Long
  5. '{выравнивание строк по длине}
  6.    i = Len(s1) - Len(s2)
  7.     If i > 0 Then
  8.       s2 = String(i, "0") & s2
  9.     ElseIf i < 0 Then s1 = String(-i, "0") & s1
  10.     End If
  11.     i = Len(s1) ' {начало алгоритма вычитания}
  12.    BinSub = Space$(i)
  13.     For i = i To 1 Step -1
  14.       j = AscW(Mid$(s1, i, 1)) - AscW(Mid$(s2, i, 1)) - j
  15.       If j < 0 Then
  16.         Mid$(BinSub, i) = ChrW$(50 + j)
  17.         j = 1
  18.       Else
  19.         Mid$(BinSub, i) = ChrW$(48 + j)
  20.         j = 0
  21.       End If
  22.     Next
  23. '    {Уничтожение передних нолей}
  24.    i = InStr(BinSub, "1")
  25.     Select Case i
  26.     Case 0: BinSub = "0"
  27.     Case Is > 1: BinSub = Mid$(BinSub, i)
  28.     End Select
  29. End Function

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 3.786 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы