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

Написать в vba, используя подпрограмму: натуральное число, в записи которого n цифр, называется числом амстронга, если сумма его цифр, возведенных в степень n равна самому числу. найти все эти числа от 1 до k.

👇
Ответ:
yourdream23
yourdream23
12.10.2021
Function IsArmstrong(m As Long) As Boolean
    Dim s As Long, n As Integer, i As Integer, m1 As Long
    Dim d(1 To 15) As Long
    m1 = m: n = 0
    Do While m1 > 0
        n = n + 1
        d(n) = m1 Mod 10
        m1 = Int(m1 / 10)
    Loop
    s = 0
    For i = 1 To n
        s = s + d(i) ^ n
    Next i
    IsArmstrong = (s = m)
End Function

Sub Test()
    Dim k As Long, i As Long, j As Integer
    Cells.Clear
    k = CLng(InputBox("Введите значение k"))
    j = 1
    For i = 0 To k
        If IsArmstrong(i) Then
            Cells(j, 1) = i
            j = j + 1
        End If
    Next i
End Sub
4,4(16 оценок)
Открыть все ответы
Ответ:
xujixixud
xujixixud
12.10.2021

1)

var num1, num2, i, res: integer;

begin

  Write('Введите числа >>> ');   {Нет -Ln, ввод чисел будет происходить на первой строке}

  ReadLn(num1, num2);   {Вводить числа через пробел, подряд}

  res:=0;   {Обнуляем счетчик, иначе результат будет неожиданный}

  for i:=1 to num2 do res:=res + num1;   {Прибавляем num1 к счетчику res num2 раз}

  Writeln(res); {Выводим}

  ReadLn

end.

2)

var a,b,P:integer;

   kv:String;

begin

writeln ('Введите геометрическую фигуру kv или pr');

Readln(kv);

if (kv = 'kv') then begin

write ('Введите сторону квадрата');

readln (a);

P:=a*4;

writeln('P= ',P);

end

else begin

writeln('ВВедите a и b');

readln(a,b);

P:=(a+b)*2;

writeln('P=',P);

end;

end.

3)

var

 a, b, c, P: real;

begin

 writeln('Введите два катета прямоугольного треугольника:');

 readln(a, b);

 P := a + b; { <-- сумма катетов }

 c := sqrt(sqr(a) + sqr(b)); { <-- гипотенуза с }

 P := P + c; { <-- периметр P }

 writeln('Результат:');

 writeln(' c = ', c:0:2);

 writeln(' P = ', P:0:2);

 readln

end.

4,4(29 оценок)
Ответ:
DiDUFC
DiDUFC
12.10.2021

много, где ошибки... должно быть так:

Объяснение:

const

 n = 5;

 m = 6;

var

 A: array [1..n, 1..m] of integer;

 i, j, sum, k: integer;

 sr: real;

begin

 randomize;

 sum := 0;

 k := 0;

 writeln('Массив A: ');

 for i := 1 to n do

 begin

   for j := 1 to m do

   begin

     A[i, j] := random(20) - 10;

     write(A[i, j]:3, ' ');

     if (A[i, j] >= -1) and (A[i, j] <= 1) then

     begin

       sum := sum + A[i, j];

       inc(k);

     end;

   end;

   writeln;

 end;

 writeln;

 if (k > 0) then

 begin

   sr := sum / k;

   writeln('Среднее = ', sr:2:2)

 end

 else

   writeln('Таких чисел нет');

end.

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