elenarumack
?>

Задача1. Дано четырёхзначное число. Если число кратно 4, то найти произведение цифр, иначе десятки заменить на 2. задача2. Дано шестизначное число. Определить является ли сумму цифр двузначным числом​

Информатика

Ответы

vifslafes

96

Объяснение:

Сначала вспомним, что такое конъюнкция: это аналог логической операции И(в простонародье - операции умножения). В бинарной(двоичной) системе счисления она используется так :

0 и 0 = 0

1 и 0 = 0

0 и 1 = 0

1 и 1 = 1

Ну, а теперь возьмём пример

Адрес: 231.32.255.131

Маска: 255.255.240.0

Отлично. Посмотрим сразу на число 255, оно в двоичной системе выглядит так : 11111111. Это значит, что при побитовой конъюнкции любого числа, получается тоже самое число. Т.е. :

231 = 11100111, 255 = 11111111. (возьму первые 4 бита : 1*1=1,1*1=1,1*1=1,1*0=0)

Т.о. 231(логическое И)255=231.

Теперь адрес сети:

231*255=231

32*255=32

255*240=240

131*0=0

Вот и получили адрес сети : 231.32.240.0

Теперь решение задачи :

Тут нужно в обратную сторону. Есть IP адрес, есть узел.

Узел : 98.162.71.123

Адрес: 98.162.71.96

Надо найти правый байт. У узла он равен 123(в десятичной) -> 1111011(в двоичной). У адреса он равен 96(в десятичной) -> 1100000.

Ну, а теперь обратное действие, смотрим на байты узла, умножаем на x, получаем байты адреса. Вот так :

1111011*=1100000

1*х=1 -> x=1

1*x=1 -> x=1

1*x=0 -> x=0

... И так далее, но дальше считать нет смысла, ибо все остальные пять байтов будут равны нулю, т.к. правая часть вся равна нулю(по свойствам выше)

Получили =1100000, а это тоже самое, что и последний байт адреса сети, и равен он 96.

Получили маску : 255.255.255.96

stratocasterr34
//Pascal ABC.NET v3.1 сборка 1172

var
  ar: array of integer;
  n, k2, k3, k4, k5, i: integer;
  r: real;

begin
  write('Сколько учеников?');
  readln(n);
  setlength(ar, n);
  writeln('Введите оценки:');
  for i := 0 to n - 1 do
  begin
    readln(ar[i]);
    case ar[i] of
      2: inc(k2);
      3: inc(k3);
      4: inc(k4);
      5: inc(k5);
    else
      writeln('Не оценка');
      exit;
    end;
  end;
  writeln('2:', k2);
  writeln('3:', k3);
  writeln('4:', k4);
  writeln('5:', k5);
  write('Успеваемость=', (k3 + k4 + k5) / n * 100:0:1);
end.

Пример ввода:
Сколько учеников?6
Введите оценки:
2
2
3
4
5
5
Пример вывода:
2:2
3:1
4:1
5:2
Успеваемость=66.7

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

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

Задача1. Дано четырёхзначное число. Если число кратно 4, то найти произведение цифр, иначе десятки заменить на 2. задача2. Дано шестизначное число. Определить является ли сумму цифр двузначным числом​
Ваше имя (никнейм)*
Email*
Комментарий*