Nataliefremova2015808
?>

умоляю , , . напишите функцию double power (double a, int n) (c/c++), function power (a: real; n: longint): real (pascal), вычисляющую значение a ^n. входные данные вводится 2 числа - a (вещественное) и n (целое неотрицательное выходные данные необходимо вывести значение an.

Информатика

Ответы

Tatyana_Minullina
Function power (a:real; n:longint):real;
var
  i:longint;
  p:real;
begin
  if n=0 then power:=0
  else begin
    p:=a;
    for i:=2 to n do p:=p*a;
    power:=p
    end
end;

var
  a:real;
  n:integer;
begin
  Write('Введите основание и показатель степени: ');
  Read(a,n);
  Writeln('Результат: ',power(a,n))
end.

Пример
Введите основание и показатель степени: 13.64 6
Результат: 6440005.25769131
Moroshkina-Aristova2011

4 числа => каждое число = 32/4 = 8 бит

1. 11001100.10011000.10111110.01000111

2. 11011110.11000011.10100010.00110010

Сейчас переводим из двоичной в 10 по следующему алгоритму:

Записываем двоичное число: 11001100. Сейчас начиная с ПРАВОГО конца, помечаем разряды(начиная с 0!). Я буду отмечать в фигурных скобках. Получаем:

11001100 = 1{7} 1{6} 0{5} 0{4} 1{3} 1{2} 0{1} 0{0}

И сейчас, чтобы найти десятичный эквивалент двоичному числу, мы считаем сумму вида: берем двоичное число(1 или 0) и умножаем его на 2 в степени разряда. Т.е.:

11001100 = 1*2^7 + 1*2^6 + 0*2^5 + 0*2^4 + 1*2^3 + 1*2^2 + 0*2^1 + 0*2^0 = 128 + 64 + 0 + 0 + 8 + 4 + 0 + 0 = 204

Точно так же делаем для всех оставшихся чисел. Т.е.:

10011000 = 1*2^7 + 1*2^4 + 1*2^3 = 128 + 16 + 8 = 152

10111110 = 1*2^7 + 1*2^5 + 1*2^4 + 1*2^3 + 1*2^2 + 1*2^1 = 128 + 32 + 16 + 8 + 4 + 2 = 190

01000111 = 1*2^6 + 1*2^2 + 1*2^1 + 1*2^0 = 64 + 4 + 2 + 1 = 71

В итоге, получаем IP адрес: 204.152.190.71

Точно так же делаем и для второго адреса:

11011110 = 1*2^7 + 1*2^6 + 1*2^4 + 1*2^3 + 1*2^2 + 1*2^1 = 128 + 64 + 16 + 8 + 4 + 2 = 222

11000011 = 1*2^7 + 1*2^6 + 1*2^1 + 1*2^0 = 128 + 64 + 2 + 1 = 195

10100010 = 1*2^7 + 1*2^5 + 1*2^1 = 128 + 32 + 2 = 162

00110010 = 1*2^5 + 1*2^4 + 1*2^1 = 32 + 16 + 2 = 50

И получаем следующий адрес: 222.195.162.50

socofilesrus4

В двоичной системе счисления ip адрес представляется в виде четырех чисел по 8 бит:

11011110 11000011 10100010 00110010

Переведем каждое число в десятичную систему счисления:

11011110₁₀ = 1*2⁷+1*2⁶+0*2⁵+1*2⁴+1*2₃+1*2²+1*2¹+0*2⁰= 128+64+0+16+8+4+2+0 = 222₂

11000011₁₀ = 1*2⁷+1*2⁶+0*2⁵+0*2⁴+0*2³+0*2²+1*2¹+1*2⁰ = 128+64+0+0+0+0+2+1 = 195₂

10100010₁₀ = 1*2⁷+0*2⁶+1*2⁵+0*2⁴+0*2³+0*2²+1*2¹+0*2⁰ = 128+0+32+0+0+0+2+0 = 162₂

00110010₁₀ = 0*2⁷+0*2⁶+1*2⁵+1*2⁴+0*2³+0*2²+1*2¹+0*2⁰ = 0+0+32+16+0+0+2+0 = 50₂

Получим результат: 222.195.162.50

Ответить на вопрос

Поделитесь своими знаниями, ответьте на вопрос:

умоляю , , . напишите функцию double power (double a, int n) (c/c++), function power (a: real; n: longint): real (pascal), вычисляющую значение a ^n. входные данные вводится 2 числа - a (вещественное) и n (целое неотрицательное выходные данные необходимо вывести значение an.
Ваше имя (никнейм)*
Email*
Комментарий*

Популярные вопросы в разделе

PetrovDrozdov1785
annapiskun1
Rubber-soul
kosstroy
Семеновна-Павел
lilit-yan
Домрачев
mmctriitsk
Pochkun-Oleg
S.V. Zhoraevna1677
agaltsova86
gsktae7
manimen345
Alenachernika9111
zurabghiendzhoian886