Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.89/9: Рейтинг темы: голосов - 9, средняя оценка - 4.89
 Аватар для Julia1717
6 / 1 / 0
Регистрация: 10.01.2014
Сообщений: 10

Перевод Pascal на VB

01.04.2014, 13:54. Показов 1916. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Это код вычитания двоичных чисел. Помогите пожалуйста перевести его на Visual Basic

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
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.
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
01.04.2014, 13:54
Ответы с готовыми решениями:

Перевод программы с Turbo Pascal на Pascal ABC.NET
написала программу в паскаль турбо на рабочем компьютере. перенесла в паскаль авсNet так как дома стоит эта версия /перестала работать что...

Перевод программы с turbo pascal на Pascal ABC
Есть программа, которая строит треугольник Серпинского методом хаоса, но она конфликтует с графикой ABC. Важен именно этот метод. ...

Перевод из Pascal в C++
Перевод из Pascal в C++ Здравствуйте, помогите пожалуйста с переводом, сам нисколько не знаю паскаль, только в этом году начал...

4
15155 / 6428 / 1731
Регистрация: 24.09.2011
Сообщений: 9,999
02.04.2014, 17:20
Лучший ответ Сообщение было отмечено Julia1717 как решение

Решение

Что-то перенос тут дюже сложно организован. Упростил:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
'{ вычитание двоичных строк, первое число должно быть >= второго }
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
Добавлено через 5 минут
Вдогонку
Visual Basic
1
2
3
4
5
Sub main()
Dim s$()
s = Split(InputBox("Введите два двоичных числа, разделенных пробелом", , "10000 111"))
MsgBox "результат вычитания = " & BinSub(s(0), s(1))
End Sub
1
 Аватар для Julia1717
6 / 1 / 0
Регистрация: 10.01.2014
Сообщений: 10
02.04.2014, 18:22  [ТС]
Казанский, Спасибо большое
0
0 / 0 / 0
Регистрация: 28.10.2015
Сообщений: 3
18.12.2015, 02:55
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Procedure Counting (var A:IntArray;N,M:integer);
Var i:integer;
    Count,B:IntArray;
        Begin()
  For i:=0 to M do Count[i]:=0;
  For i:=1 to N do Inc (Count[A[i]+1]);
  For i:=1 to M do
      Count[i]:=Count[i]+Count[i-1];
  For i:=1 to N do
                        Begin()
        B[Count[A[i]]]:=A[i];
        Inc (Count[A[i]]);
      End;
  For i:=1 to N do A[i]:=B[i-1];
End;
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38173 / 21108 / 4307
Регистрация: 12.02.2012
Сообщений: 34,710
Записей в блоге: 14
18.12.2015, 11:49
А зачем это мучение со строками? Вот:

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
Function str2bin(Stri As String) As Integer
     For i% = 1 To Len(Stri)
         str2bin = str2bin * 2 + Val(Mid$(Stri, i%, 1))
     Next i%
End Function
Function bin2str(n As Integer) As String
     If n = 0 Then
        bin2str = "0"
     ElseIf n < 0 Then
        n = Abs(n)
        z$ = "-"
     End If
     Do
        If n = 0 Then Exit Do
        bin2str = CStr(n Mod 2) & bin2str
        n = n \ 2
     Loop
     bin2str = z$ & bin2str
End Function
Function binsub(s1 As String, s2 As String) As String
         n1% = str2bin(s1)
         n2% = str2bin(s2)
         nn% = n1% - n2%
         binsub = bin2str(nn%)
End Function
Sub Main()
    s1$ = "1001"
    s2$ = "101"
    Debug.Print binsub(s1$, s2$)
    Debug.Print binsub(s2$, s1$)
End Sub
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
18.12.2015, 11:49
Помогаю со студенческими работами здесь

Перевод из Pascal в C#
Пожалуйста переведите var x:integer; a,y:real; begin write('Введите коэффициент а='); readln(a); x:=1; y:=sin(a); ...

перевод с Pascal на C++
Const Max=1000; Eps=0.00001; Type Para=record X: integer;

Перевод из Pascal в C#
Переведите если не сложно, пожалуйста var a: array of integer; n, m, i, j, k, k_min, i_max, j_max, t: integer; begin ...

Перевод из Pascal в С++
Можно пожалуйста перевести в С++ и сделать ее рандомной. Еще у меня не получается вывести на печать номера столбцов в которых заданы...

Перевод из pascal в С
Program pr4_1; uses crt; var firstmaxpos, lastminpos, n, i :integer; x, MAX,MIN ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru