М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
olesia170202
olesia170202
12.10.2021 09:30 •  Информатика

Visual basic написать процедуру для нахождения отрицательных и положительных чисел из строки, состоящий из произвольного набора цифр и букв. *перевести полученное число в его двоичный код *найти максимальное из чисел

👇
Ответ:
rne
rne
12.10.2021
Язык VBA:

Function Bin(s As String, z As Integer) As String
Dim c As Integer
Dim oct As Integer
c = Val(s)
Do
    oc = c Mod 2
    c = c \ 2
    Bin = Bin & Str(oc)
Loop Until c = 0
Bin = StrReverse(Bin)
If z = -1 Then Bin = "-" & Bin
End Function

Sub z()
Dim s As String, s1 As String
Dim n As Integer, i As Integer, z As Integer
Dim max
s = InputBox("Введите строку: ")
max = Null
i = 1
Do While i <= Len(s)
    Select Case Mid(s, i, 1)
       Case 0 To 9
          If z = 0 And i > 1 Then
             z = IIf(Mid(s, i - 1, 1) = "-", -1, 1)
          Else: z = 1
          End If
          s1 = s1 + Mid(s, i, 1)
          If i = Len(s) Then GoSub 1
       Case Else:
         If s1 <> "" Then GoSub 1
    End Select
    i = i + 1
Loop
MsgBox ("max=" & max)
End
1:          n = z * Val(s1)
             MsgBox (n & "; двоичная форма: " & Bin(s1, z))
             If IsNull(max) Then max = n
             If max < n Then max = n
             z = 0
             s1 = ""
             Return
End Sub
4,7(72 оценок)
Открыть все ответы
Ответ:
Pon4ik11119999
Pon4ik11119999
12.10.2021

1.

var a:array [1..10] of integer;

i,k:integer;

begin

k:=0;

write('Массив: ');

for i:=1 to 10 do

begin

a[i]:=random(100);

write(a[i]:4);

if a[i] mod 2 = 1 then k:=k+1

end;

writeln;

if k>0 then writeln ('Количество нечетных чисел равно ',k)

else writeln ('Нечетных чисел нет')

end.

2.

var a:array [1..10] of integer;

i,m:integer;

begin

m:=99;

write('Массив: ');

for i:=1 to 10 do

begin

a[i]:=random(100);

write(a[i]:4);

if a[i] < m then m:=a[i]

end;

writeln;

writeln ('min = ',m)

end.

Объяснение:

var a:array [1..10] of integer;

i,k,m:integer;

begin

k:=0;

m:=99;

write('Массив: ');

for i:=1 to 10 do

begin

a[i]:=random(100);

write(a[i]:4);

if a[i] mod 2 = 1 then k:=k+1;

if a[i] < m then m:=a[i]

end;

writeln;

if k>0 then writeln ('Количество нечетных чисел равно ',k)

else writeln ('Нечетных чисел нет');

writeln ('min = ',m)

end.

4,4(89 оценок)
Ответ:
ghosts010
ghosts010
12.10.2021

Некоторые языки программирования это допускают, но правила разработки алгоритмов строго запрещают такие манипуляции, потому что нарушаются каноны современного программирования. В связи с этим большинство языков прямо запрещают модификацию параметра цикла в теле цикла.

Если нужно конкретно - в Pascal и Fortran оператор цикла с пратметром строгий, запрещающий менять значение параметра в теле цикла. Обнаруживается при компиляции, запустить на выполнение нельзя. В языках cемейства С оператор for нестрогий, цикл с параметром там моделируется и компилятор не отслеживает модификацию параметра цикла в теле цикла. В бейсиках также можно модифицировать параметр цикла в теле цикла.

4,4(72 оценок)
Это интересно:
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ