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

Составить программу (желательно для libreoffice, но подойдет и для vba) : нужно составить программу s = pi - tg(pi/2) + tg(pi/4) - tg(pi/6) + tg(pi/8) - расчет производить до тех пор, пока слагаемое по абсолютной величине не станет меньше заданной точности е. подсчитать число слагаемых. значение е задать вводом.

👇
Ответ:
Nenormalnyi
Nenormalnyi
09.04.2021
Sub Iter()
    Dim s As Double, pi As Double, e As Double, a As Double
    Dim i As Long, znak As Integer, k As Long
    e = InputBox("введите значение eps")
    pi = 4 * Atn(1)
    s = pi
    i = 2
    znak = 1
    k = 0
    a = Tan(pi / (2 * i))
    Do While a >= e
        s = s + znak * a
        i = i + 1
        a = Tan(pi / (2 * i))
        znak = -znak
        k = k + 1
    Loop
    MsgBox "Сумма равна " + Str(s) + ", количество слагаемых " + Str(k)
End Sub
4,6(22 оценок)
Открыть все ответы
Ответ:
rom4il
rom4il
09.04.2021
Вариант №1 (не совсем удачный, как было отмечено в комментариях).

//PascalABC.NET (версия 3.1, сборка 1210 от 29.03.2016)
var n,i,m:integer;
flag:boolean;

begin
  readln(n);
  flag:=false;
  if (n mod 2<>0)then i:=n-1 else i:=n;
  while i>0 do begin  
    if power(2,i)<=n then begin
      write(power(2,i),' '); flag:=true;
    end;
    i:=i-2;
end;
if not flag then writeln(0);
end.

Тест №1
1025
1024 256 64 16 4

Тест №2
1
0

Вариант №2

var a,i,n: integer;
begin
  a:=1;readln(n);
  i:=trunc(log2(n)); //получим степень двойки для n
  //если i нечетное,
  //то первое искомое число получаем путем сдвига влево на i-1 в
  //двоичном представлении числа иначе сдвиг на i
  if (i mod 2)=1 then a:=a shl(i-1) else a:=a shl i;
  //далее получаем числа сдвигая вправо на 2 разряда
  //в двоичном представлении числа
  while a>=2 do begin
    write(a,' ');
    a:=a shr 2;
  end;
end.

Тестовое решение:
2147483647
1073741824 268435456 67108864 16777216 4194304 1048576 262144 65536 16384 4096 1024 256 64 16 4
4,5(60 оценок)
Ответ:
Алена0607
Алена0607
09.04.2021
1. Перевод из десятичной с/с в двоичную с/с осуществляется таким образом: делите число на основание с/c, пока число не будет меньше основания, смотрите на остатки справа налево и записываете их, получается нужное число в двоичной с/c, то есть: 
14/2 = 7, остаток 0, 7/2 = 3, остаток 1, 3/2 = 1, остаток 1, 1 < 2, остаток 1. Смотрим на остатки от деления (справа налево): 1110. Это и есть число 14 в двоичной. Запишем: 
14_{10} = 1110_{2} 

2.  Перевод из восьмеричной с/с в двоичную с/с осуществляется триадами. 3 в двоичной с/c = 11, т.к. триады, то 011 (0 перед числом здесь значения не имеет), 4 в двоичной с/с = 100. Запишем: 
34_{8} = 11100_{2} 
3. 1110_{123} \ \textless \ 11100_{123} ⇒ 14_{10} \ \textless \ 34_{8}
ответ: 14_{10} \ \textless \ 34_{8}  
4,4(50 оценок)
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ